参数设置
This commit is contained in:
parent
f0c3aaa59b
commit
4d3c05c762
@ -5,112 +5,144 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
|
|
||||||
//获取列表数据
|
//获取列表数据
|
||||||
export function queryXmInfoNewService(query: any){
|
export function queryXmInfoNewService(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/query',
|
url: '/xminfo/query',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取明细数据
|
//获取明细数据
|
||||||
export function queryXmInfoNewDetailService(xmid: any, yq: any, xmdh: any){
|
export function queryXmInfoNewDetailService(xmid: any, yq: any, xmdh: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/queryDetail',
|
url: '/xminfo/queryDetail',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {
|
params: {
|
||||||
xmid,
|
xmid,
|
||||||
yq,
|
yq,
|
||||||
xmdh
|
xmdh
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取项目基本信息
|
//获取项目基本信息
|
||||||
export function queryXmInfoNew(xmgl: any){
|
export function queryXmInfoNew(xmgl: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/queryXmInfoNew',
|
url: '/xminfo/queryXmInfoNew',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {
|
params: {
|
||||||
xmgl
|
xmgl
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取危急值特定判断条件数据
|
//获取危急值特定判断条件数据
|
||||||
export function queryXmAlarmdetailNew(xmid:number){
|
export function queryXmAlarmdetailNew(xmid: number) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/queryXmAlarmdetailNew',
|
url: '/xminfo/queryXmAlarmdetailNew',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {xmid}
|
params: { xmid }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//新增危急值特定判断条件数据
|
//新增危急值特定判断条件数据
|
||||||
export function addXmAlarmdetailNew(query:any){
|
export function addXmAlarmdetailNew(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/addXmAlarmdetailNew',
|
url: '/xminfo/addXmAlarmdetailNew',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//新增危急值特定判断条件数据
|
//新增危急值特定判断条件数据
|
||||||
export function delXmAlarmdetailNew(xmid:number,seq:number){
|
export function delXmAlarmdetailNew(xmid: number, seq: number) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/delXmAlarmdetailNew',
|
url: '/xminfo/delXmAlarmdetailNew',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {
|
params: {
|
||||||
xmid,
|
xmid,
|
||||||
seq
|
seq
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//保存数据
|
//保存数据
|
||||||
export function saveDataService(query:any){
|
export function saveDataService(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/update',
|
url: '/xminfo/update',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除常用取值
|
//删除常用取值
|
||||||
export function delXmValNewService(query:any){
|
export function delXmValNewService(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/delXmValNew',
|
url: '/xminfo/delXmValNew',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//删除常见描述
|
//删除常见描述
|
||||||
export function delXmTextresultNew(query:any){
|
export function delXmTextresultNew(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/delXmTextresultNew',
|
url: '/xminfo/delXmTextresultNew',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//删除仪器对照
|
//删除仪器对照
|
||||||
export function deleteXmInfoVs(query:any){
|
export function deleteXmInfoVs(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/delvs',
|
url: '/xminfo/delvs',
|
||||||
method: 'delete',
|
method: 'delete',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//删除检验项目
|
//删除检验项目
|
||||||
export function deleteXmInfoService(query:any){
|
export function deleteXmInfoService(query: any) {
|
||||||
return request({
|
return request({
|
||||||
url: '/xminfo/del',
|
url: '/xminfo/del',
|
||||||
method: 'delete',
|
method: 'delete',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
//删除参考值明细
|
||||||
|
export function delXmRefNew(query: any) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/delXmRefNew',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//查询批量数据
|
||||||
|
export function queryBatchList(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/queryBatch',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//批量新增数据
|
||||||
|
export function addBatch(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/addBatch',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//批量删除数据
|
||||||
|
export function delBatch(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/delBatch',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
}
|
}
|
||||||
@ -44,10 +44,34 @@ export function paramTree(query?: Object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询某个参数
|
// 查询某个参数
|
||||||
export function queryOneService(yq: string,xxdh: string) {
|
export function queryOneService(yq: string, xxdh: string) {
|
||||||
return request({
|
return request({
|
||||||
url: '/param/queryOne',
|
url: '/param/queryOne',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {yq,xxdh}
|
params: { yq, xxdh }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 查询滤光片波长对照表
|
||||||
|
export function queryFilter(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/queryFilter',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 新增滤光片波长对照表
|
||||||
|
export function addXmFilter(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/addXmFilter',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 删除滤光片波长对照表
|
||||||
|
export function delXmFilter(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/delXmFilter',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -336,18 +336,26 @@ aside {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tabs_box>.el-tabs__header {
|
.tabs_box {
|
||||||
height: 1.875rem !important;
|
.el-tabs__header {
|
||||||
margin-bottom: 0px;
|
|
||||||
font-size: .875rem;
|
|
||||||
|
|
||||||
.el-tabs__item {
|
|
||||||
height: 1.875rem !important;
|
height: 1.875rem !important;
|
||||||
padding: 0 .625rem;
|
margin-bottom: 0px;
|
||||||
|
font-size: .875rem;
|
||||||
|
|
||||||
&.is-active {
|
.el-tabs__item {
|
||||||
border-bottom: .125rem solid #409eff !important;
|
height: 1.875rem !important;
|
||||||
background-color: #e9f1fb;
|
padding: 0 .625rem;
|
||||||
|
|
||||||
|
&.is-active {
|
||||||
|
border-bottom: .125rem solid #409eff !important;
|
||||||
|
background-color: #e9f1fb;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-tabs__nav-next,
|
||||||
|
.el-tabs__nav-prev {
|
||||||
|
line-height: 1.875rem;
|
||||||
|
color: #1f6dd3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, defineProps, defineEmits, nextTick, watch } from 'vue'
|
import { ref, nextTick, watch } from 'vue'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
|
|
||||||
// 定义下拉选项类型
|
// 定义下拉选项类型
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
:height="scrollYConfig.height" @checkbox-change="handleCheckboxChange" :row-config="rowConfig"
|
:height="scrollYConfig.height" @checkbox-change="handleCheckboxChange" :row-config="rowConfig"
|
||||||
:show-overflow="showOverflow" @current-change="handleRowClick" ref="tableRef" :size="size"
|
:show-overflow="showOverflow" @current-change="handleRowClick" ref="tableRef" :size="size"
|
||||||
:current-row="currentRow" :highlight-current-row="highlightCurrentRow" :scroll-y="scrollYConfig"
|
:current-row="currentRow" :highlight-current-row="highlightCurrentRow" :scroll-y="scrollYConfig"
|
||||||
|
:tooltip-config="{ appendToBody: true, zIndex: 3000 }"
|
||||||
:header-cell-class-name="enableColumnDrag ? 'el-table-header-cell' : ''" v-bind="$attrs">
|
:header-cell-class-name="enableColumnDrag ? 'el-table-header-cell' : ''" v-bind="$attrs">
|
||||||
<!-- 动态渲染列 -->
|
<!-- 动态渲染列 -->
|
||||||
<template v-for="(column, i) in columns" :key="`${column.field}-${i}`">
|
<template v-for="(column, i) in columns" :key="`${column.field}-${i}`">
|
||||||
|
|||||||
@ -121,6 +121,7 @@ service.interceptors.response.use(res => {
|
|||||||
return res.data
|
return res.data
|
||||||
}
|
}
|
||||||
if (code == -1) {
|
if (code == -1) {
|
||||||
|
ElMessage.error(msg);
|
||||||
return Promise.resolve(res.data)
|
return Promise.resolve(res.data)
|
||||||
}
|
}
|
||||||
if (code === 401) {
|
if (code === 401) {
|
||||||
|
|||||||
@ -157,7 +157,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<el-table ref="diaTableRef" :data="compareTableData" style="width: 100%" @row-click="handleRowClick"
|
<el-table ref="diaTableRef" :data="compareTableData" style="width: 100%" @row-click="handleRowClick"
|
||||||
highlight-current-row border max-height="350px">
|
highlight-current-row border height="350px">
|
||||||
<el-table-column prop="xmdh" label="项目编号" fixed align="center" width="150px" />
|
<el-table-column prop="xmdh" label="项目编号" fixed align="center" width="150px" />
|
||||||
<el-table-column prop="xmmc" label="项目名称" fixed align="center" />
|
<el-table-column prop="xmmc" label="项目名称" fixed align="center" />
|
||||||
<template v-for="(period) in periods" :key="period">
|
<template v-for="(period) in periods" :key="period">
|
||||||
@ -382,8 +382,9 @@ const printPdf = () => {
|
|||||||
const printStore = usePrintStore();
|
const printStore = usePrintStore();
|
||||||
const selections = tableRefs.value.allSelection()
|
const selections = tableRefs.value.allSelection()
|
||||||
if (selections.length <= 0) return ElMessage.warning('请选择要打印的数据!')
|
if (selections.length <= 0) return ElMessage.warning('请选择要打印的数据!')
|
||||||
|
const arr = [...new Set(selections.map((item: any) => { return item.brdh }))]
|
||||||
|
if (arr.length > 1) return ElMessage.warning('只能选中一个病人的报告单打印!')
|
||||||
const merge = selections.map((item: any) => { return `${item.jyrqname.replace(/-/g, '')}_${item.yq.trim()}_${item.ybh}` })
|
const merge = selections.map((item: any) => { return `${item.jyrqname.replace(/-/g, '')}_${item.yq.trim()}_${item.ybh}` })
|
||||||
|
|
||||||
reportPrintPdf(merge).then((res: any) => {
|
reportPrintPdf(merge).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
if (!res.data) return ElMessage.warning('未找到打印文件')
|
if (!res.data) return ElMessage.warning('未找到打印文件')
|
||||||
@ -393,6 +394,8 @@ const printPdf = () => {
|
|||||||
// } else {
|
// } else {
|
||||||
// classCom.printBase64PDF(res.data)
|
// classCom.printBase64PDF(res.data)
|
||||||
// }
|
// }
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,36 +1,64 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 批量仪器对应 -->
|
<!-- 批量仪器对应 -->
|
||||||
<el-dialog title="批量项目对应" width="1000px" v-model="batchInstrVsModel.visible" @close="onClose">
|
<el-dialog title="批量项目对应" width="72vw" v-model="batchInstrVsModel.visible" draggable :close-on-click-modal="false"
|
||||||
<el-form :model="formData" inline>
|
@close="onClose">
|
||||||
|
<el-form :model="formData" inline label-width="80px">
|
||||||
<el-form-item label="项目类别" prop="xmgl">
|
<el-form-item label="项目类别" prop="xmgl">
|
||||||
<!-- <el-input placeholder="项目类别" v-model="formData.xmgl"></el-input> -->
|
<!-- <el-input placeholder="项目类别" v-model="formData.xmgl"></el-input> -->
|
||||||
<SelectTable v-model:data="formData.xmgl" :fields="xmglFields" :tableData="dictData.XMGL" label="label"
|
<SelectTable v-model:data="formData.xmgl" :fields="xmglFields" :tableData="dictData.XMGL" label="label"
|
||||||
value="value" objKey="value" width="140px" placeholder="项目类别" />
|
clearable value="value" objKey="value" width="200px" placeholder="项目类别" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="快速查找" prop="inputcode">
|
<el-form-item label="快速查找" prop="inputcode">
|
||||||
<el-input placeholder="快速查找" v-model="formData.inputcode"></el-input>
|
<el-input placeholder="快速查找" v-model="formData.inputcode" style="width: 200px;"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="细菌标志" prop="itemclass">
|
<el-form-item label="细菌标志" prop="itemclass">
|
||||||
<SelectTable v-model:data="formData.xmgl" :fields="xmglFields" :tableData="dictData.ITEMCLASS" label="label"
|
<SelectTable v-model:data="formData.itemclass" :fields="xmglFields" :tableData="dictData.ITEMCLASS"
|
||||||
value="value" objKey="value" width="140px" placeholder="细菌标志" />
|
label="label" clearable value="value" objKey="value" width="200px" placeholder="细菌标志" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="仪器大类" prop="yqdl">
|
<el-form-item label="仪器大类" prop="yqdl">
|
||||||
<SelectTable v-model:data="formData.xmgl" :fields="xmglFields" :tableData="dictData.YQDL" label="label"
|
<SelectTable v-model:data="formData.yqdl" :fields="xmglFields" :tableData="dictData.YQDL" label="label"
|
||||||
value="value" objKey="value" width="140px" placeholder="仪器大类" />
|
clearable value="value" objKey="value" width="200px" placeholder="仪器大类" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="仪器" prop="yq">
|
<el-form-item label="仪器" prop="yq">
|
||||||
<YQSelectTable v-model:data="formData.yq" width="200px" placeholder="请输入仪器名称" />
|
<YQSelectTable v-model:data="formData.yq" width="200px" placeholder="请输入仪器名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-checkbox v-model="formData.wsw" label="隐藏微生物"></el-checkbox>
|
<el-checkbox v-model="formData.wsw" label="隐藏微生物" true-value="1" false-value="0"></el-checkbox>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-radio-group v-model="formData.queryDylx" @change="getList">
|
||||||
|
<el-radio value="1">未对应</el-radio>
|
||||||
|
<el-radio value="2">已对应</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="getList">搜索</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :enable-column-drag="true"
|
<div style="height: 60vh;">
|
||||||
@column-drag-end="handleColumnDragEnd" :config="tableConfig" @row-click="rowClick">
|
<VxeTable ref="tableRef" :loading="loading" :data="tableData" :columns="columns" :enable-column-drag="true"
|
||||||
</CustomTable>
|
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" @column-drag-end="handleColumnDragEnd"
|
||||||
|
:config="tableConfig" @current-change="rowClick" class="mytable-style" @selection-change="selecChange">
|
||||||
|
<template #xmgl="{ row }">
|
||||||
|
{{ formatDict(row.xmgl, 'XMGL') }}
|
||||||
|
</template>
|
||||||
|
<template #xmlb="{ row }">
|
||||||
|
{{ xmlbObj[row.xmlb] }}
|
||||||
|
</template>
|
||||||
|
<template #jsxm="{ row }">
|
||||||
|
{{ row.jsxm === 'Y' ? '是' : '否' }}
|
||||||
|
</template>
|
||||||
|
<template #uflag="{ row }">
|
||||||
|
{{ row.uflag === '0' ? '否' : '是' }}
|
||||||
|
</template>
|
||||||
|
<template #yqdl="{ row }">
|
||||||
|
{{ formatDict(row.yqdl, 'YQDL') }}
|
||||||
|
</template>
|
||||||
|
</VxeTable>
|
||||||
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button @click="handleCancel">取 消</el-button>
|
<el-button @click="onClose">取 消</el-button>
|
||||||
<el-button type="primary" @click="handleOk">确 定</el-button>
|
<el-button type="primary" @click="handleOk">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -39,19 +67,28 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getDictData, dictData } from '@/hooks';
|
import { formatDict, getDictData, dictData } from '@/hooks';
|
||||||
import SelectTable from '@/components/SelectTable/index.vue'
|
import SelectTable from '@/components/SelectTable/index.vue'
|
||||||
import CustomTable from '@/components/elTable/index.vue'
|
import VxeTable from '@/components/vxeTable/index.vue'
|
||||||
import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'
|
import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'
|
||||||
|
import { queryBatchList, addBatch, delBatch } from '@/api/liswork/labItem/labItemApi'
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
xmgl: '',
|
xmgl: '',
|
||||||
inputcode: '',
|
inputcode: '',
|
||||||
itemclass: '',
|
itemclass: '',
|
||||||
yqdl: '',
|
yqdl: '',
|
||||||
wsw: false,
|
wsw: '0',
|
||||||
yq: ''
|
yq: '',
|
||||||
|
queryDylx: '1'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const xmlbObj: any = {
|
||||||
|
1: '数值型',
|
||||||
|
2: '文字型',
|
||||||
|
3: '阴阳性型',
|
||||||
|
4: '数值文字混合型'
|
||||||
|
}
|
||||||
const tableData = ref()
|
const tableData = ref()
|
||||||
const batchInstrVsModel = defineModel<any>()
|
const batchInstrVsModel = defineModel<any>()
|
||||||
|
|
||||||
@ -61,33 +98,39 @@ const xmglFields = ref([
|
|||||||
])
|
])
|
||||||
|
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{ prop: 'xmgl', label: '项目类别', visible: true, align: 'center', width: 50 },
|
{ type: 'selection', field: '', title: '', resizable: true, align: 'center', width: 40 },
|
||||||
{ prop: 'xmdh', label: '英文缩写', visible: true, align: 'center', width: 100 },
|
{ field: 'xmgl', title: '项目类别', resizable: true, align: 'center', width: 80, slotName: "xmgl" },
|
||||||
{ prop: 'xmmc', label: '名称', visible: true, align: 'center', width: 200 },
|
{ field: 'xmdh', title: '英文缩写', resizable: true, align: 'center', width: 60 },
|
||||||
{ prop: 'dyckz', label: '参考值', visible: true, align: 'center', width: 100 },
|
{ field: 'xmmc', title: '名称', resizable: true, align: 'center', width: 200 },
|
||||||
{ prop: 'dw', label: '单位', visible: true, align: 'center', width: 100 },
|
{ field: 'dyckz', title: '参考值', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'xmlb', label: '结果类型', visible: true, align: 'center', width: 100 },
|
{ field: 'dw', title: '单位', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'jsxm', label: '计算项目', visible: true, align: 'center', width: 100 },
|
{ field: 'xmlb', title: '结果类型', resizable: true, align: 'center', width: 100, slotName: "xmlb" },
|
||||||
{ prop: 'dyxh', label: '序号', visible: true, align: 'center', width: 100 },
|
{ field: 'jsxm', title: '计算项目', resizable: true, align: 'center', width: 80, slotName: "jsxm" },
|
||||||
{ prop: 'xs', label: '调整系数', visible: true, align: 'center', width: 50 },
|
{ field: 'dyxh', title: '序号', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'xsws', label: '小数位数', visible: true, align: 'center', width: 50 },
|
{ field: 'xs', title: '调整系数', resizable: true, align: 'center', width: 60 },
|
||||||
{ prop: 'xsbs', label: '稀释倍数', visible: true, align: 'center', width: 50 },
|
{ field: 'xsws', title: '小数位数', resizable: true, align: 'center', width: 60 },
|
||||||
{ prop: 'uflag', label: '停用', visible: true, align: 'center', width: 50 },
|
{ field: 'xsbs', title: '稀释倍数', resizable: true, align: 'center', width: 60 },
|
||||||
{ prop: 'yqdl', label: '仪器大类', visible: true, align: 'center', width: 100 },
|
{ field: 'uflag', title: '停用', resizable: true, align: 'center', width: 60, slotName: "uflag" },
|
||||||
{ prop: 'xmid', label: '项目ID', visible: true, align: 'center', width: 100 },
|
{ field: 'yqdl', title: '仪器大类', resizable: true, align: 'center', width: 80, slotName: "yqdl" },
|
||||||
{ prop: 'knowledge', label: '项目编码', visible: true, align: 'center', width: 100 },
|
{ field: 'xmid', title: '项目ID', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'val1', label: '外部代码1', visible: true, align: 'center', width: 100 },
|
{ field: 'knowledge', title: '项目编码', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'val2', label: '外部代码2', visible: true, align: 'center', width: 100 },
|
{ field: 'val1', title: '外部代码1', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'val3', label: '外部代码3', visible: true, align: 'center', width: 100 },
|
{ field: 'val2', title: '外部代码2', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'yymc', label: '英文名称', visible: true, align: 'center', width: 100 },
|
{ field: 'val3', title: '外部代码3', resizable: true, align: 'center', width: 80 },
|
||||||
{ prop: 'qccv', label: '允许CA(%)', visible: true, align: 'center', width: 100 },
|
{ field: 'yymc', title: '英文名称', resizable: true, align: 'center', width: 80 },
|
||||||
|
{ field: 'qccv', title: '允许CA(%)', resizable: true, align: 'center', width: 80 },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
border: true, // 边框
|
// 复选框配置
|
||||||
height: '60vh', // 高度
|
checkboxConfig: {
|
||||||
highlightCurrentRow: true, // 高亮当前行
|
// 可选配置项
|
||||||
// cellStyle: cellStyleHd
|
checkField: 'checked', // 绑定数据中的字段(默认:checked)
|
||||||
|
range: false, // 是否支持范围选择(按住 Shift 连续选择)
|
||||||
|
disabled: false, // 是否禁用全部复选框
|
||||||
|
reserve: false, // 是否保留勾选状态(分页/筛选时)
|
||||||
|
highlight: false // 是否高亮选中行
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -104,23 +147,54 @@ const rowClick = () => {
|
|||||||
|
|
||||||
const onClose = () => {
|
const onClose = () => {
|
||||||
batchInstrVsModel.value.visible = false;
|
batchInstrVsModel.value.visible = false;
|
||||||
|
formData.value = {
|
||||||
|
xmgl: '',
|
||||||
|
inputcode: '',
|
||||||
|
itemclass: '',
|
||||||
|
yqdl: '',
|
||||||
|
wsw: '0',
|
||||||
|
yq: '',
|
||||||
|
queryDylx: '1'
|
||||||
|
}
|
||||||
|
tableData.value = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const loading = ref(false);
|
||||||
|
|
||||||
//刷新数据
|
//刷新数据
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
|
loading.value = true;
|
||||||
|
queryBatchList(formData.value).then((res: any) => {
|
||||||
|
loading.value = false;
|
||||||
|
tableData.value = res.data;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const selecRows: any = ref([])
|
||||||
|
const selecChange = (rows: any[]) => {
|
||||||
|
selecRows.value = rows
|
||||||
}
|
}
|
||||||
|
|
||||||
//取消
|
|
||||||
const handleCancel = () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//确定
|
//确定
|
||||||
const handleOk = () => {
|
const handleOk = () => {
|
||||||
|
if (formData.value.queryDylx == '1') {
|
||||||
|
addBatch(selecRows.value).then((res: any) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('操作成功!')
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (formData.value.queryDylx == '2') {
|
||||||
|
let arr = []
|
||||||
|
arr = selecRows.value.map((item: any) => { return item.vsid })
|
||||||
|
delBatch(arr).then((res: any) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('操作成功!')
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
{{ formatDict(row.xmgl, 'XMGL') }}
|
{{ formatDict(row.xmgl, 'XMGL') }}
|
||||||
</template>
|
</template>
|
||||||
<template #xmlb="{ row }">
|
<template #xmlb="{ row }">
|
||||||
{{xmlbList.find(item => item.value === row.xmlb)?.label}}
|
{{ xmlbObj[row.xmlb] }}
|
||||||
</template>
|
</template>
|
||||||
<template #jsxm="{ row }">
|
<template #jsxm="{ row }">
|
||||||
{{ row.jsxm === 'Y' ? '是' : '否' }}
|
{{ row.jsxm === 'Y' ? '是' : '否' }}
|
||||||
@ -112,12 +112,12 @@ import _ from 'lodash';
|
|||||||
import { classCom } from '@/utils/classCom';
|
import { classCom } from '@/utils/classCom';
|
||||||
const autoSize = classCom.useAutoSize()
|
const autoSize = classCom.useAutoSize()
|
||||||
|
|
||||||
const xmlbList = ref<Array<any>>([
|
const xmlbObj: any = {
|
||||||
{ label: '数值型', value: '1' },
|
1: '数值型',
|
||||||
{ label: '文字型', value: '2' },
|
2: '文字型',
|
||||||
{ label: '阴阳性型', value: '3' },
|
3: '阴阳性型',
|
||||||
{ label: '数值文字混合型', value: '4' }
|
4: '数值文字混合型'
|
||||||
])
|
}
|
||||||
const dataList = ref<Array<any>>([])
|
const dataList = ref<Array<any>>([])
|
||||||
const queryParams = ref({
|
const queryParams = ref({
|
||||||
xmgl: '', //项目归类
|
xmgl: '', //项目归类
|
||||||
@ -230,7 +230,7 @@ const hasUnsavedChanges = ref(false);
|
|||||||
// 保存初始数据快照用于比较
|
// 保存初始数据快照用于比较
|
||||||
const initialModelParam = ref<any>(null);
|
const initialModelParam = ref<any>(null);
|
||||||
const batchInstrVsModel = ref<any>({
|
const batchInstrVsModel = ref<any>({
|
||||||
visible: false
|
visible: true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -97,11 +97,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参考值" prop="dyckz">
|
<el-form-item label="参考值" prop="dyckz">
|
||||||
<el-input v-model="basicData.dyckz" />
|
<el-input v-model="basicData.dyckz" />
|
||||||
<el-button type="primary" class="ml5" @click="multiRefClick">多行参考值向导...</el-button>
|
<el-button type="primary" class="ml5" @click="multiRefClick">多行参考值向导</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="公式" prop="jsgs">
|
<el-form-item label="公式" prop="jsgs">
|
||||||
<el-input v-model="basicData.jsgs" />
|
<el-input v-model="basicData.jsgs" />
|
||||||
<el-button v-show="basicData.jsxm === 'Y'" type="primary" class="ml5" @click="calcGuildeClick">向导...</el-button>
|
<el-button v-show="basicData.jsxm === 'Y'" type="primary" class="ml5" @click="calcGuildeClick">向导</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-checkbox label="参考值与性别有关" v-model="basicData.ygxb" true-value="Y" false-value="N"></el-checkbox>
|
<el-checkbox label="参考值与性别有关" v-model="basicData.ygxb" true-value="Y" false-value="N"></el-checkbox>
|
||||||
|
|||||||
@ -7,7 +7,9 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" @row-click="rowHandle"
|
<el-input v-model="searchKey" ref="searchInput" size="small" placeholder="快速搜索(支持简拼)" class="mb10" clearable
|
||||||
|
@clear="filterDataHandle" @input="filterDataHandle" />
|
||||||
|
<CustomTable ref="tableRefs" :data="filterData" :columns="columns" :config="tableConfig" @row-click="rowHandle"
|
||||||
:enableColumnDrag="true" @column-drag-end="handleColumnDragEnd" />
|
:enableColumnDrag="true" @column-drag-end="handleColumnDragEnd" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" class="right">
|
<el-col :span="12" class="right">
|
||||||
@ -38,6 +40,9 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import CustomTable from '@/components/elTable/index.vue'
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
import { queryXmInfoNew } from '@/api/liswork/labItem/labItemApi'
|
import { queryXmInfoNew } from '@/api/liswork/labItem/labItemApi'
|
||||||
|
// @ts-ignore
|
||||||
|
import { getFirstLetter } from '@/utils/pinyin.js';
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
formData: {
|
formData: {
|
||||||
@ -46,11 +51,13 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let visible = ref<boolean>()
|
let visible = ref<boolean>()
|
||||||
|
const currentIndex = ref(0)
|
||||||
|
const searchKey = ref('');
|
||||||
|
const filterData = ref<{ [key: string]: any; pinyinMap: Record<string, string> }[]>([]);
|
||||||
const tableData = ref()
|
const tableData = ref()
|
||||||
const inputText = ref('')
|
const inputText = ref('')
|
||||||
|
const tableRefs = ref()
|
||||||
const emit = defineEmits(['update:model-value', 'confirm'])
|
const emit = defineEmits(['update:model-value', 'confirm'])
|
||||||
|
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
@ -83,6 +90,8 @@ const handleColumnDragEnd = (newColumns: any) => {
|
|||||||
columns.value = newColumns.columns
|
columns.value = newColumns.columns
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const rowHandle = (row: any) => {
|
const rowHandle = (row: any) => {
|
||||||
inputText.value += '[' + row.xmdh + ']'
|
inputText.value += '[' + row.xmdh + ']'
|
||||||
}
|
}
|
||||||
@ -143,9 +152,55 @@ const bClickAge = () => {
|
|||||||
|
|
||||||
const onOpen = async () => {
|
const onOpen = async () => {
|
||||||
const res = await queryXmInfoNew(props.formData.xmgl);
|
const res = await queryXmInfoNew(props.formData.xmgl);
|
||||||
tableData.value = res.data
|
tableData.value = processTableData(res.data)
|
||||||
//inputText.value = props.text
|
filterData.value = [...tableData.value]
|
||||||
}
|
}
|
||||||
|
// 预处理数据:生成拼音信息
|
||||||
|
const processTableData = (data: object[]) => {
|
||||||
|
return data.map((item: any) => {
|
||||||
|
const pinyinMap: Record<string, string> = {};
|
||||||
|
// 处理label字段拼音
|
||||||
|
if (item.xmmc) {
|
||||||
|
pinyinMap.xmmc = getFirstLetter(item.xmmc).toLowerCase();
|
||||||
|
}
|
||||||
|
if (item.xmdh) {
|
||||||
|
pinyinMap.xmdh = getFirstLetter(item.xmdh).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
return { ...item, pinyinMap };
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 搜索过滤逻辑
|
||||||
|
const filterDataHandle = () => {
|
||||||
|
const key = searchKey.value.trim().toLowerCase();
|
||||||
|
|
||||||
|
if (!key) {
|
||||||
|
// 空搜索时显示全部预处理数据
|
||||||
|
filterData.value = [...tableData.value];
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
currentIndex.value = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
filterData.value = tableData.value.filter((item: any) => {
|
||||||
|
// 1. 原文本匹配
|
||||||
|
const matchLabel = item.xmmc?.toString().toLowerCase().includes(key);
|
||||||
|
const matchValue = item.xmdh?.toString().toLowerCase().includes(key);
|
||||||
|
|
||||||
|
// 2. 拼音匹配
|
||||||
|
const matchLabelPinyin = item.pinyinMap.xmmc?.includes(key);
|
||||||
|
const matchValuePinyin = item.pinyinMap.xmdh?.includes(key);
|
||||||
|
|
||||||
|
return matchLabel || matchValue || matchLabelPinyin || matchValuePinyin;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (filterData.value.length > 0) {
|
||||||
|
tableRefs.value.setScrollTop(0)
|
||||||
|
tableRefs.value.setCurrentRow(filterData.value[0]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
<el-button type="primary" @click="onAddClick">增加</el-button>
|
<el-button type="primary" @click="onAddClick">增加</el-button>
|
||||||
<el-button type="primary" @click="onDelClick">删除</el-button>
|
<el-button type="primary" @click="onDelClick">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
<CustomTable ref="tableRef" :data="modelParam.commonDescriptionsData" :columns="columns" :enable-column-drag="true"
|
<CustomTable ref="tableRef" :data="modelParam.commonDescriptionsData" :columns="columns" :config="tableConfig"
|
||||||
@column-drag-end="handleColumnDragEnd" :config="tableConfig" @row-click="rowClick">
|
@row-click="rowClick">
|
||||||
<template #textresult="{ row }">
|
<template #textresult="{ row }">
|
||||||
<el-input type="textarea" v-model="row.textresult" class="full-width-input" autosize></el-input>
|
<el-input type="textarea" v-model="row.textresult" class="full-width-input" autosize></el-input>
|
||||||
</template>
|
</template>
|
||||||
@ -34,16 +34,12 @@ const columns = ref([
|
|||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
border: true, // 边框
|
border: true, // 边框
|
||||||
height: '78vh', // 高度
|
height: '78vh', // 高度
|
||||||
// highlightCurrentRow: true, // 高亮当前行
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
// cellStyle: cellStyleHd
|
// cellStyle: cellStyleHd
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
//退拽属性
|
|
||||||
const handleColumnDragEnd = (data: any) => {
|
|
||||||
// 更新列配置
|
|
||||||
columns.value = data.columns;
|
|
||||||
}
|
|
||||||
|
|
||||||
const selectRow = ref()
|
const selectRow = ref()
|
||||||
const emit = defineEmits(['refreshTabData'])
|
const emit = defineEmits(['refreshTabData'])
|
||||||
|
|||||||
@ -1,86 +1,90 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 参数设置 -->
|
<!-- 参数设置 -->
|
||||||
<div>
|
<div>
|
||||||
<el-form ref="form" :model="formData" :rules="rules" label-width="80px" size="small" class="form-inline" inline>
|
<el-form ref="form" :model="formData" :rules="rules" label-width="80px" size="small" class="form-inline" inline>
|
||||||
<el-row>
|
<el-row>
|
||||||
<span>说明:公式中阴阳对照请用NC,PC表示</span>
|
<span>说明:公式中阴阳对照请用NC,PC表示</span>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="测试波长" prop="csbc">
|
<el-form-item label="测试波长" prop="csbc">
|
||||||
<el-input placeholder="测试波长" v-model="formData.csbc"></el-input>
|
<el-input placeholder="测试波长" v-model="formData.csbc"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参考波长" prop="ckbc">
|
<el-form-item label="参考波长" prop="ckbc">
|
||||||
<el-input placeholder="参考波长" v-model="formData.ckbc"></el-input>
|
<el-input placeholder="参考波长" v-model="formData.ckbc"></el-input>
|
||||||
<el-button type="primary" @click="">滤光片波长对照表...</el-button>
|
<el-button type="primary" @click="">滤光片波长对照表...</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="阳性判断公式" prop="yxgs" label-width="100px">
|
<el-form-item label="阳性判断公式" prop="yxgs" label-width="100px">
|
||||||
<el-input placeholder="阳性判断公式" v-model="formData.yxgs" style="width: 400px;"></el-input>
|
<el-input placeholder="阳性判断公式" v-model="formData.yxgs" style="width: 400px;"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="上灰区" prop="shq">
|
<el-form-item label="上灰区" prop="shq">
|
||||||
<el-input placeholder="上灰区" v-model="formData.shq"></el-input>%
|
<el-input placeholder="上灰区" v-model="formData.shq">
|
||||||
</el-form-item>
|
<template #append>% </template>
|
||||||
<el-form-item label="下灰区" prop="xhq">
|
</el-input>
|
||||||
<el-input placeholder="下灰区" v-model="formData.xhq"></el-input>%
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="下灰区" prop="xhq">
|
||||||
<el-form-item label="阴性对照下限" prop="negxx" label-width="100px">
|
<el-input placeholder="下灰区" v-model="formData.xhq">
|
||||||
<el-input placeholder="阴性对照下限" v-model="formData.negxx" style="width: 100px;"></el-input>
|
<template #append>% </template>
|
||||||
</el-form-item>
|
</el-input>
|
||||||
<el-form-item label="阳性对照下限" prop="posxx" label-width="100px">
|
</el-form-item>
|
||||||
<el-input placeholder="阳性对照下限" v-model="formData.posxx"></el-input>
|
<el-form-item label="阴性对照下限" prop="negxx" label-width="100px">
|
||||||
</el-form-item>
|
<el-input placeholder="阴性对照下限" v-model="formData.negxx" style="width: 100px;"></el-input>
|
||||||
<el-form-item label="阴性对照上限" prop="negsx" label-width="100px">
|
</el-form-item>
|
||||||
<el-input placeholder="阴性对照上限" v-model="formData.negsx" style="width: 100px;"></el-input>
|
<el-form-item label="阳性对照下限" prop="posxx" label-width="100px">
|
||||||
</el-form-item>
|
<el-input placeholder="阳性对照下限" v-model="formData.posxx"></el-input>
|
||||||
<el-form-item label="阳性对照上限" prop="possx" label-width="100px">
|
</el-form-item>
|
||||||
<el-input placeholder="阳性对照上限" v-model="formData.possx"></el-input>
|
<el-form-item label="阴性对照上限" prop="negsx" label-width="100px">
|
||||||
</el-form-item>
|
<el-input placeholder="阴性对照上限" v-model="formData.negsx" style="width: 100px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="阳性对照上限" prop="possx" label-width="100px">
|
||||||
|
<el-input placeholder="阳性对照上限" v-model="formData.possx"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-divider></el-divider>
|
<el-divider></el-divider>
|
||||||
<el-form-item label="项目性质" prop="xmxz">
|
<el-form-item label="项目性质" prop="xmxz">
|
||||||
<el-radio-group v-model="formData.xmxz">
|
<el-radio-group v-model="formData.xmxz">
|
||||||
<el-radio value="1">定性</el-radio>
|
<el-radio value="1">定性</el-radio>
|
||||||
<el-radio value="2">定量</el-radio>
|
<el-radio value="2">定量</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="移动模式" prop="ydfs">
|
<el-form-item label="移动模式" prop="ydfs">
|
||||||
<el-radio-group v-model="formData.ydfs">
|
<el-radio-group v-model="formData.ydfs">
|
||||||
<el-radio value="1">连续</el-radio>
|
<el-radio value="1">连续</el-radio>
|
||||||
<el-radio value="2">步进</el-radio>
|
<el-radio value="2">步进</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测试模式" prop="csms">
|
<el-form-item label="测试模式" prop="csms">
|
||||||
<el-radio-group v-model="formData.csms">
|
<el-radio-group v-model="formData.csms">
|
||||||
<el-radio value="1">终点法</el-radio>
|
<el-radio value="1">终点法</el-radio>
|
||||||
<el-radio value="2">两点法</el-radio>
|
<el-radio value="2">两点法</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="振板频率" prop="zbpl">
|
<el-form-item label="振板频率" prop="zbpl">
|
||||||
<el-radio-group v-model="formData.zbpl">
|
<el-radio-group v-model="formData.zbpl">
|
||||||
<el-radio value="1">高</el-radio>
|
<el-radio value="1">高</el-radio>
|
||||||
<el-radio value="2">中</el-radio>
|
<el-radio value="2">中</el-radio>
|
||||||
<el-radio value="3">低</el-radio>
|
<el-radio value="3">低</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="空白形式" prop="kbms">
|
<el-form-item label="空白形式" prop="kbms">
|
||||||
<el-radio-group v-model="formData.kbms">
|
<el-radio-group v-model="formData.kbms">
|
||||||
<el-radio value="1">空气</el-radio>
|
<el-radio value="1">空气</el-radio>
|
||||||
<el-radio value="2">试剂</el-radio>
|
<el-radio value="2">试剂</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="振板时间" prop="zbsj">
|
<el-form-item label="振板时间" prop="zbsj">
|
||||||
<el-input placeholder="振板时间" v-model="formData.zbsj"></el-input>秒
|
<el-input placeholder="振板时间" v-model="formData.zbsj"></el-input>秒
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-divider></el-divider>
|
<el-divider></el-divider>
|
||||||
<el-form-item label="默认模板" prop="mrmb">
|
<el-form-item label="默认模板" prop="mrmb">
|
||||||
<el-input placeholder="默认模板" v-model="formData.mrmb"></el-input>
|
<el-input placeholder="默认模板" v-model="formData.mrmb"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="默认试剂" prop="mrsjph">
|
<el-form-item label="默认试剂" prop="mrsjph">
|
||||||
<el-input placeholder="默认试剂" v-model="formData.mrsjph"></el-input>
|
<el-input placeholder="默认试剂" v-model="formData.mrsjph"></el-input>
|
||||||
<el-button type="primary" @click="">试剂维护</el-button>
|
<el-button type="primary" @click="">试剂维护</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@ -130,9 +134,11 @@ const props = defineProps({
|
|||||||
padding: 10px;
|
padding: 10px;
|
||||||
background-color: #f5f7fa;
|
background-color: #f5f7fa;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
.el-input {
|
.el-input {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
<CustomTable ref="tableRefUp" :data="modelParam.referenceValueDetailsData" :columns="columnsUp"
|
<CustomTable ref="tableRefUp" :data="modelParam.referenceValueDetailsData" :columns="columnsUp"
|
||||||
:enable-column-drag="true" @column-drag-end="handleColumnDragEnd" :config="tableConfig" @row-click="rowClick">
|
:enable-column-drag="true" @column-drag-end="handleColumnDragEnd" :config="tableConfig" @row-click="rowClick">
|
||||||
<template #xb="{ row }">
|
<template #xb="{ row }">
|
||||||
<el-select v-model="row.xb" clearable>
|
<el-select v-model="row.xb" clearable class="full-width-input">
|
||||||
<el-option v-for="item in optionsXb" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
<el-option v-for="item in optionsXb" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -16,7 +16,7 @@
|
|||||||
<el-input v-model="row.nl1" class="full-width-input"></el-input>
|
<el-input v-model="row.nl1" class="full-width-input"></el-input>
|
||||||
</template>
|
</template>
|
||||||
<template #cp_nldw1="{ row }">
|
<template #cp_nldw1="{ row }">
|
||||||
<el-select v-model="row.nldw" clearable>
|
<el-select v-model="row.nldw" clearable class="full-width-input">
|
||||||
<el-option v-for="item in optionsNLDW" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
<el-option v-for="item in optionsNLDW" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -24,16 +24,16 @@
|
|||||||
<el-input v-model="row.nl2" class="full-width-input"></el-input>
|
<el-input v-model="row.nl2" class="full-width-input"></el-input>
|
||||||
</template>
|
</template>
|
||||||
<template #cp_nldw2="{ row }">
|
<template #cp_nldw2="{ row }">
|
||||||
<el-select v-model="row.nldw" clearable>
|
<el-select v-model="row.nldw" clearable class="full-width-input">
|
||||||
<el-option v-for="item in optionsNLDW" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
<el-option v-for="item in optionsNLDW" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<template #bblx="{ row }">
|
<template #bblx="{ row }">
|
||||||
<SelectTable v-model:data="row.bblx" :fields="fields" :tableData="dictData.BT" label="label" value="label"
|
<SelectTable v-model:data="row.bblx" :fields="fields" :tableData="dictData.BT" label="label" value="label"
|
||||||
objKey="label" :border="true" />
|
objKey="label" :border="true" class="full-width-input" />
|
||||||
</template>
|
</template>
|
||||||
<template #slzq="{ row }">
|
<template #slzq="{ row }">
|
||||||
<el-select v-model="row.slzq" clearable>
|
<el-select v-model="row.slzq" clearable class="full-width-input">
|
||||||
<el-option v-for="item in dictData.SLZQ" :key="item.value" :label="item.label"
|
<el-option v-for="item in dictData.SLZQ" :key="item.value" :label="item.label"
|
||||||
:value="item.value"></el-option>
|
:value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -74,12 +74,14 @@ import CustomTable from '@/components/elTable/index.vue'
|
|||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { getDictData, dictData } from '@/hooks'
|
import { getDictData, dictData } from '@/hooks'
|
||||||
import SelectTable from '@/components/SelectTable/index.vue'
|
import SelectTable from '@/components/SelectTable/index.vue'
|
||||||
import { ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
|
import { delXmRefNew } from '@/api/liswork/labItem/labItemApi';
|
||||||
|
|
||||||
const modelParam = defineModel<any>()
|
const modelParam = defineModel<any>()
|
||||||
const emit = defineEmits(['refreshTabData'])
|
const emit = defineEmits(['refreshTabData'])
|
||||||
|
watch(() => modelParam.value.referenceValueDetailsData, (val) => {
|
||||||
|
selectRow.value = null
|
||||||
|
})
|
||||||
const optionsXb = [
|
const optionsXb = [
|
||||||
{ value: '1', label: '男' },
|
{ value: '1', label: '男' },
|
||||||
{ value: '2', label: '女' },
|
{ value: '2', label: '女' },
|
||||||
@ -100,17 +102,17 @@ const fields = ref(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
// const dataListUp = ref();
|
// const dataListUp = ref();
|
||||||
const dataListDown = ref();
|
const dataListDown = ref([]);
|
||||||
const columnsUp = ref([
|
const columnsUp = ref([
|
||||||
{ prop: 'xmid', label: 'xmid', visible: false, align: 'center' },
|
{ prop: 'xmid', label: 'xmid', visible: false, align: 'center' },
|
||||||
{ prop: 'xh', label: '序号', visible: false, align: 'center' },
|
{ prop: 'xh', label: '序号', visible: false, align: 'center' },
|
||||||
{ prop: 'xb', label: '性别', visible: true, align: 'center', slot: 'xb', width: 70 },
|
{ prop: 'xb', label: '性别', visible: true, align: 'center', slot: 'xb', width: 80, showOverflowTooltip: false },
|
||||||
{ prop: 'nl1', label: '年龄下限', visible: true, align: 'center', slot: 'nl1', width: 70 },
|
{ prop: 'nl1', label: '年龄下限', visible: true, align: 'center', slot: 'nl1', width: 70 },
|
||||||
{ prop: 'nldw', label: '年龄单位', visible: true, align: 'center', slot: 'cp_nldw1', width: 70 },
|
{ prop: 'nldw', label: '年龄单位', visible: true, align: 'center', slot: 'cp_nldw1', width: 80, showOverflowTooltip: false },
|
||||||
{ prop: 'nl2', label: '年龄上限', visible: true, align: 'center', slot: 'nl2', width: 70 },
|
{ prop: 'nl2', label: '年龄上限', visible: true, align: 'center', slot: 'nl2', width: 70 },
|
||||||
{ prop: 'nldw', label: '年龄单位', visible: true, align: 'center', slot: 'cp_nldw2', width: 70 },
|
{ prop: 'nldw', label: '年龄单位', visible: true, align: 'center', slot: 'cp_nldw2', width: 80, showOverflowTooltip: false },
|
||||||
{ prop: 'bblx', label: '标本类型', visible: true, align: 'center', slot: 'bblx', width: 100 },
|
{ prop: 'bblx', label: '标本类型', visible: true, align: 'center', slot: 'bblx', width: 100, showOverflowTooltip: false },
|
||||||
{ prop: 'slzq', label: '生理周期', visible: true, align: 'center', slot: 'slzq', width: 100 },
|
{ prop: 'slzq', label: '生理周期', visible: true, align: 'center', slot: 'slzq', width: 100, showOverflowTooltip: false },
|
||||||
{ prop: 'zd', label: '诊断', visible: true, align: 'center', slot: 'zd', width: 100 },
|
{ prop: 'zd', label: '诊断', visible: true, align: 'center', slot: 'zd', width: 100 },
|
||||||
{ prop: 'ckxx', label: '参考下限', visible: true, align: 'center', slot: 'ckxx', width: 100 },
|
{ prop: 'ckxx', label: '参考下限', visible: true, align: 'center', slot: 'ckxx', width: 100 },
|
||||||
{ prop: 'cksx', label: '参考上限', visible: true, align: 'center', slot: 'cksx', width: 100 },
|
{ prop: 'cksx', label: '参考上限', visible: true, align: 'center', slot: 'cksx', width: 100 },
|
||||||
@ -167,12 +169,17 @@ const onAddClick = () => {
|
|||||||
modelParam.value.referenceValueDetailsData.push(newData)
|
modelParam.value.referenceValueDetailsData.push(newData)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onDelClick = async () => {
|
const onDelClick = () => {
|
||||||
if (selectRow.value) {
|
if (!selectRow.value) return ElMessage.warning('请选择要删除的数据!');
|
||||||
await ElMessageBox.confirm('是否要删除选中的数据?', '警告',
|
ElMessageBox.confirm('是否要删除选中的数据?', '警告',
|
||||||
{ confirmButtonText: 'OK', cancelButtonText: 'Cancel', type: 'warning', });
|
{ confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', }).then(() => {
|
||||||
emit('refreshTabData', modelParam.value.basicData)
|
delXmRefNew({ xmid: modelParam.value.basicData.xmid, xh: selectRow.value.xh }).then((res: any) => {
|
||||||
}
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('删除成功!')
|
||||||
|
emit('refreshTabData', modelParam.value.basicData)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const rowClick = (row: any) => {
|
const rowClick = (row: any) => {
|
||||||
|
|||||||
286
src/views/liswork/xtwh/comopt/components/sysParameter.vue
Normal file
286
src/views/liswork/xtwh/comopt/components/sysParameter.vue
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
<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">
|
||||||
|
<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-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-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-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-input v-model="formData.mrmb" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<el-form-item label="默认试剂" prop="mrsjph">
|
||||||
|
<el-input v-model="formData.mrsjph" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-button type="primary" @click="">试剂维护</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<!-- 波长对照表 -->
|
||||||
|
<el-dialog v-model="dialogVisible" title="滤光波长对照表" draggable :close-on-click-modal="false" width="500px">
|
||||||
|
<div class="mb5">
|
||||||
|
<el-button type="primary" @click="savaItem">保存</el-button>
|
||||||
|
<el-button type="primary" @click="addItem">新增</el-button>
|
||||||
|
<el-button type="danger" @click="delItem">删除</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table :data="dzList" style="width: 100%" height="450" border highlight-current-row
|
||||||
|
@row-click="handleRowClick">
|
||||||
|
<el-table-column type="index" width="50" label="No" align="center" />
|
||||||
|
<el-table-column label="滤光片号" prop="lgph">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.lgph" class="full-width-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="波长" prop="bc">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.bc" class="full-width-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { queryFilter, addXmFilter, delXmFilter } from '@/api/liswork/xtwh/ComOpt'
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
import { get } from 'lodash';
|
||||||
|
const yq = defineModel<string>()
|
||||||
|
|
||||||
|
const dialogVisible = ref(false)
|
||||||
|
const formData = ref({
|
||||||
|
csbc: '',
|
||||||
|
ckbc: '',
|
||||||
|
yxgs: '',
|
||||||
|
shq: '',
|
||||||
|
xhq: '',
|
||||||
|
negxx: '',
|
||||||
|
posxx: '',
|
||||||
|
negsx: '',
|
||||||
|
possx: '',
|
||||||
|
xmxz: '1',
|
||||||
|
ydfs: '1',
|
||||||
|
csms: '1',
|
||||||
|
zbpl: '1',
|
||||||
|
kbms: '1',
|
||||||
|
zbsj: '',
|
||||||
|
mrmb: '',
|
||||||
|
mrsjph: ''
|
||||||
|
});
|
||||||
|
const rules = ref({
|
||||||
|
csbc: [
|
||||||
|
{ required: true, message: '请选择测试波长', trigger: 'change' }
|
||||||
|
],
|
||||||
|
yxgs: [
|
||||||
|
{ required: true, message: '请输入阳性判断公式', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
const form = ref();
|
||||||
|
const handleSave = () => {
|
||||||
|
console.log('保存')
|
||||||
|
form.value.validate((valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log('submit!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const handleCancelEdit = () => {
|
||||||
|
console.log('取消修改')
|
||||||
|
}
|
||||||
|
const handleRestoreDefault = () => {
|
||||||
|
console.log('还原默认')
|
||||||
|
}
|
||||||
|
const dzList = ref<Array<{ lgph: string, bc: string, yq?: string }>>([])
|
||||||
|
const getDzList = () => {
|
||||||
|
selectRow.value = null
|
||||||
|
queryFilter({ yq: yq.value }).then((res: any) => {
|
||||||
|
dzList.value = res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectRow = ref()
|
||||||
|
const handleRowClick = (row: any) => {
|
||||||
|
selectRow.value = row
|
||||||
|
}
|
||||||
|
const openDz = () => {
|
||||||
|
getDzList()
|
||||||
|
dialogVisible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
const savaItem = () => {
|
||||||
|
const flag = dzList.value.every(item => item.bc && item.lgph)
|
||||||
|
if (!flag) return ElMessage.warning('请检查滤光片号和波长填写!')
|
||||||
|
addXmFilter(dzList.value).then((res: any) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('保存成功!')
|
||||||
|
getDzList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const addItem = () => {
|
||||||
|
dzList.value.push({ lgph: '', bc: '', yq: yq.value })
|
||||||
|
}
|
||||||
|
const delItem = () => {
|
||||||
|
if (!selectRow.value) return ElMessage.warning('请选择要删除的行!')
|
||||||
|
if (selectRow.value.lgph) {
|
||||||
|
delXmFilter(selectRow.value)
|
||||||
|
}
|
||||||
|
dzList.value = dzList.value.filter(item => item.lgph != selectRow.value.lgph)
|
||||||
|
selectRow.value = null
|
||||||
|
}
|
||||||
|
watch(yq, (newVal) => {
|
||||||
|
getDzList()
|
||||||
|
}, { immediate: true })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.table-toolbar {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
height: 36px;
|
||||||
|
line-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #409eff;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<!-- 右侧列表区域 -->
|
<!-- 右侧列表区域 -->
|
||||||
<el-col :span="20" :xs="24" class="table-col">
|
<el-col :span="20" :xs="24" class="table-col">
|
||||||
<el-row :gutter="10" class="yq-title-row">
|
<el-row :gutter="10" class="yq-title-row">
|
||||||
<h1 class="yq-title">仪器:{{ yqmc }}</h1>
|
<h1 class="yq-title">仪器: {{ yqmc }}</h1>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-tabs v-model="activeName" type="card" class="tabs_box">
|
<el-tabs v-model="activeName" type="card" class="tabs_box">
|
||||||
<el-tab-pane v-for="tab in tabList" :key="tab.key" :label="tab.label" :name="tab.key" />
|
<el-tab-pane v-for="tab in tabList" :key="tab.key" :label="tab.label" :name="tab.key" />
|
||||||
@ -49,6 +49,7 @@ import { getFirstLetter } from '@/utils/pinyin.js'
|
|||||||
import SysGlobal from './components/sysGlobal.vue'
|
import SysGlobal from './components/sysGlobal.vue'
|
||||||
import SysInput from './components/sysInput.vue'
|
import SysInput from './components/sysInput.vue'
|
||||||
import SysReport from './components/sysReport.vue'
|
import SysReport from './components/sysReport.vue'
|
||||||
|
import SysParameter from './components/sysParameter.vue'
|
||||||
|
|
||||||
// ========== TypeScript 类型定义 ==========
|
// ========== TypeScript 类型定义 ==========
|
||||||
interface InstrTreeNode {
|
interface InstrTreeNode {
|
||||||
@ -105,9 +106,10 @@ const queryParams = ref<QueryParams>({
|
|||||||
const tabList = [
|
const tabList = [
|
||||||
{ key: 'SysGlobal', label: '全局设定', component: SysGlobal },
|
{ key: 'SysGlobal', label: '全局设定', component: SysGlobal },
|
||||||
{ key: 'SysInput', label: '界面设定', component: SysInput },
|
{ key: 'SysInput', label: '界面设定', component: SysInput },
|
||||||
|
{ key: 'SysParameter', label: '参数', component: SysParameter },
|
||||||
{ key: 'SysReport', label: '报告单设置', component: SysReport },
|
{ key: 'SysReport', label: '报告单设置', component: SysReport },
|
||||||
]
|
]
|
||||||
const activeName = ref('SysGlobal')
|
const activeName = ref('SysParameter')
|
||||||
|
|
||||||
// 计算当前要渲染的组件
|
// 计算当前要渲染的组件
|
||||||
const currentComponent = computed(() => {
|
const currentComponent = computed(() => {
|
||||||
@ -336,6 +338,7 @@ getDeptTree()
|
|||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
|
|
||||||
.yq-title {
|
.yq-title {
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
font-size: 16px; // 缩小h1字体(默认24px→16px)
|
font-size: 16px; // 缩小h1字体(默认24px→16px)
|
||||||
color: #409eff; // 蓝色(Element Plus主题色)
|
color: #409eff; // 蓝色(Element Plus主题色)
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user