默认参数
This commit is contained in:
parent
8ee0a90a5c
commit
04dd1d3f82
@ -33,6 +33,7 @@
|
|||||||
"mitt": "^3.0.1",
|
"mitt": "^3.0.1",
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"pinia": "2.1.7",
|
"pinia": "2.1.7",
|
||||||
|
"pinia-plugin-persistedstate": "^4.0.0",
|
||||||
"pinyin-pro": "^3.26.0",
|
"pinyin-pro": "^3.26.0",
|
||||||
"select2": "^4.1.0-rc.0",
|
"select2": "^4.1.0-rc.0",
|
||||||
"socket.io-client": "^4.8.1",
|
"socket.io-client": "^4.8.1",
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
<div class="select-table-container">
|
<div class="select-table-container">
|
||||||
<el-select ref="selectTable" v-model="selectShowValue" :placeholder="props.placeholder" :size="props.size"
|
<el-select ref="selectTable" v-model="selectShowValue" :placeholder="props.placeholder" :size="props.size"
|
||||||
:style="{ width: props.width }" @visible-change="visibleChange" @clear="clearHandle" :clearable="props.clearable"
|
:style="{ width: props.width }" @visible-change="visibleChange" @clear="clearHandle" :clearable="props.clearable"
|
||||||
:disabled="disabled">
|
:disabled="disabled" v-bind="$attrs">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<div class="select-table-dropdown">
|
<div class="select-table-dropdown">
|
||||||
<div style="text-align: left;">
|
<div style="text-align: left;">
|
||||||
@ -61,7 +61,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
width: "100%",
|
width: "100%",
|
||||||
dictType: '',
|
dictType: '',
|
||||||
clearable: true,
|
clearable: true,
|
||||||
objKey: ''
|
objKey: 'label'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
|
||||||
const store = createPinia()
|
const store = createPinia()
|
||||||
|
store.use(piniaPluginPersistedstate) // 注册持久化插件
|
||||||
|
|
||||||
export default store
|
export default store
|
||||||
@ -1,10 +1,16 @@
|
|||||||
//公共状态管理
|
//公共状态管理
|
||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
|
// 定义配置对象接口
|
||||||
|
interface DefaultConfig {
|
||||||
|
defaultinstr?: string //默认仪器
|
||||||
|
lisgroupid?: string //默认分组id
|
||||||
|
[key: string]: any // 允许其他属性
|
||||||
|
}
|
||||||
export const useCommonStore = defineStore('commonStore', {
|
export const useCommonStore = defineStore('commonStore', {
|
||||||
state: () => ({
|
state: () => ({
|
||||||
lxsrs: [] as string[], // 存储项目模板名称
|
lxsrs: [] as string[], // 存储项目模板名称
|
||||||
fingerprint: '',// 存储指纹信息
|
fingerprint: '',// 存储指纹信息
|
||||||
|
defaultConfig: {} as DefaultConfig, // 存储默认配置
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
setLxsrList(list: any[]) {
|
setLxsrList(list: any[]) {
|
||||||
@ -14,5 +20,18 @@ export const useCommonStore = defineStore('commonStore', {
|
|||||||
setFingerprint(fingerprint: string) {
|
setFingerprint(fingerprint: string) {
|
||||||
this.fingerprint = fingerprint
|
this.fingerprint = fingerprint
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setDefaultConfig(config: DefaultConfig) {
|
||||||
|
this.defaultConfig = config
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// 持久化配置
|
||||||
|
persist: {
|
||||||
|
// 指定要持久化的状态字段
|
||||||
|
paths: ['fingerprint', 'defaultConfig',],
|
||||||
|
// 可选配置:自定义存储键名(默认是store的id)
|
||||||
|
key: 'common_store',
|
||||||
|
// 可选配置:指定存储位置(默认是localStorage 也可以用sessionStorage)
|
||||||
|
storage: localStorage,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
15
src/types/pinia.d.ts
vendored
Normal file
15
src/types/pinia.d.ts
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import 'pinia'
|
||||||
|
|
||||||
|
declare module 'pinia' {
|
||||||
|
export interface DefineStoreOptionsBase<S, Store> {
|
||||||
|
// 允许在定义 store 时使用 persist 属性
|
||||||
|
persist?: boolean | PersistOptions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定义持久化配置的类型(根据插件实际参数调整)
|
||||||
|
interface PersistOptions {
|
||||||
|
paths?: string[]
|
||||||
|
key?: string
|
||||||
|
storage?: Storage
|
||||||
|
}
|
||||||
@ -121,10 +121,6 @@ const handleOk = () => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
await getDictData('XMGL', 'ITEMCLASS', 'YQDL', 'YQ');
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
@ -416,7 +416,7 @@ const rowChange = async (row: any) => {
|
|||||||
{
|
{
|
||||||
confirmButtonText: '保存',
|
confirmButtonText: '保存',
|
||||||
cancelButtonText: '不保存',
|
cancelButtonText: '不保存',
|
||||||
type: 'warning'
|
type: 'warning',
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
// 用户选择保存
|
// 用户选择保存
|
||||||
@ -434,6 +434,7 @@ const getInfo = async (row: any) => {
|
|||||||
tableConfig.value.highlightCurrentRow = true
|
tableConfig.value.highlightCurrentRow = true
|
||||||
selectRow.value = row;
|
selectRow.value = row;
|
||||||
const res = await queryXmInfoNewDetailService(row.xmid, row.yq, row.xmdh)
|
const res = await queryXmInfoNewDetailService(row.xmid, row.yq, row.xmdh)
|
||||||
|
res.data.xmInfoNew.xsws = res.data.xmInfoNew.xsws.toString()
|
||||||
selectDetailRow.value = res.data
|
selectDetailRow.value = res.data
|
||||||
changeActiveTab()
|
changeActiveTab()
|
||||||
initialModelParam.value = _.cloneDeep(modelParam.value);
|
initialModelParam.value = _.cloneDeep(modelParam.value);
|
||||||
@ -460,7 +461,7 @@ const changeActiveTab = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
getDictData('XMGL', 'ITEMCLASS', 'YQDL');
|
getDictData('XMGL', 'ITEMCLASS', 'YQDL', 'UT', 'MD', 'GBDM', 'YQ');
|
||||||
getList()
|
getList()
|
||||||
getYqConfig();
|
getYqConfig();
|
||||||
})
|
})
|
||||||
|
|||||||
@ -37,7 +37,7 @@ const emit = defineEmits(['refreshTabData'])
|
|||||||
const tableRef = ref<any>();
|
const tableRef = ref<any>();
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{ prop: 'qz', label: '取值', visible: true, align: 'center', slot: 'qz', showOverflowTooltip: false },
|
{ prop: 'qz', label: '取值', visible: true, align: 'center', slot: 'qz', showOverflowTooltip: false },
|
||||||
{ prop: 'srm', label: '快速输入码', visible: true, align: 'center', slot: 'srm' },
|
{ prop: 'srm', label: '快速输入码', visible: true, align: 'center', slot: 'srm', showOverflowTooltip: false },
|
||||||
{ prop: 'jgbz', label: '结果标志', visible: true, align: 'center', slot: 'jgbz', showOverflowTooltip: false }
|
{ prop: 'jgbz', label: '结果标志', visible: true, align: 'center', slot: 'jgbz', showOverflowTooltip: false }
|
||||||
]);
|
]);
|
||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
|
|||||||
@ -1,169 +1,170 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 基本资料 -->
|
<!-- 基本资料 -->
|
||||||
<div class="basic_info">
|
<div class="basic_info">
|
||||||
<el-form ref="formRef" :model="modelParam.basicData" :rules="rules" size="small" class="form-inline" inline
|
<el-form ref="formRef" :model="basicData" :rules="rules" size="small" class="form-inline" inline
|
||||||
label-width="6.25rem" label-position="right" :inline-message="false">
|
label-width="6.25rem" label-position="right" :inline-message="false">
|
||||||
<span class="text-span">基本参数:</span>
|
<span class="text-span">基本参数:</span>
|
||||||
<el-divider style="margin: .3125rem 0;" />
|
<el-divider style="margin: .3125rem 0;" />
|
||||||
<el-form-item label="项目类别" prop="xmgl">
|
<el-form-item label="项目类别" prop="xmgl">
|
||||||
<SelectTable v-model:data="modelParam.basicData.xmgl" :fields="xmglFields" :tableData="dictData.XMGL"
|
<SelectTable v-model:data="basicData.xmgl" :fields="xmglFields" :tableData="dictData.XMGL" label="label"
|
||||||
label="label" value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="项目ID" prop="xmid">
|
||||||
|
<el-input disabled v-model="basicData.xmid" style="width:8.2rem;" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="uflag">
|
||||||
|
<el-checkbox v-model="basicData.uflag" true-value="1" false-value="0">停用</el-checkbox>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="英文缩写" prop="xmdh">
|
<el-form-item label="英文缩写" prop="xmdh">
|
||||||
<el-input v-model="modelParam.basicData.xmdh" @input="xmdhInput" />
|
<el-input v-model="basicData.xmdh" @input="xmdhInput" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="项目名称" prop="xmmc">
|
|
||||||
<el-input v-model="modelParam.basicData.xmmc" @change="xmmcChange" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="单位" prop="dw">
|
<el-form-item label="单位" prop="dw">
|
||||||
<SelectTable v-model:data="modelParam.basicData.dw" :fields="xmglFields" :tableData="dictData.UT" label="label"
|
<SelectTable v-model:data="basicData.dw" :fields="xmglFields" :tableData="dictData.UT" label="label"
|
||||||
value="label" objKey="label" width="12.5rem" placeholder="" size="small" />
|
value="label" objKey="label" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="项目名称" prop="xmmc">
|
||||||
|
<el-input v-model="basicData.xmmc" @change="xmmcChange" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="结果类别" prop="xmlb">
|
<el-form-item label="结果类别" prop="xmlb">
|
||||||
<SelectTable v-model:data="modelParam.basicData.xmlb" :fields="xmglFields" :tableData="xmlbData" label="label"
|
<SelectTable v-model:data="basicData.xmlb" :fields="xmglFields" :tableData="xmlbData" label="label"
|
||||||
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="阴阳性" prop="mrz">
|
<el-form-item label="阴阳性" prop="mrz">
|
||||||
<SelectTable v-model:data="modelParam.basicData.mrz" :fields="xmglFields" :tableData="mrzData" label="label"
|
<SelectTable v-model:data="basicData.mrz" :fields="xmglFields" :tableData="mrzData" label="label" value="value"
|
||||||
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="仪器大类" prop="yqdl">
|
<el-form-item label="仪器大类" prop="yqdl">
|
||||||
<SelectTable v-model:data="modelParam.basicData.yqdl" :fields="xmglFields" :tableData="dictData.YQDL"
|
<SelectTable v-model:data="basicData.yqdl" :fields="xmglFields" :tableData="dictData.YQDL" label="label"
|
||||||
label="label" value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="允许CV(%)" prop="qccv">
|
<el-form-item label="允许CV(%)" prop="qccv">
|
||||||
<el-input type="number" v-model="modelParam.basicData.qccv" />
|
<el-input type="number" v-model="basicData.qccv" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="稀释倍数" prop="xsbs">
|
<el-form-item label="稀释倍数" prop="xsbs">
|
||||||
<el-input v-model="modelParam.basicData.xsbs" />
|
<el-input v-model="basicData.xsbs" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="whonet编码" prop="whocode">
|
<el-form-item label="whonet编码" prop="whocode">
|
||||||
<el-input v-model="modelParam.basicData.whocode" />
|
<el-input v-model="basicData.whocode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Gram" prop="germflag">
|
<el-form-item label="Gram" prop="germflag">
|
||||||
<el-input v-model="modelParam.basicData.germflag" />
|
<el-input v-model="basicData.germflag" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="英文名称" prop="yymc">
|
<el-form-item label="英文名称" prop="yymc">
|
||||||
<el-input v-model="modelParam.basicData.yymc" />
|
<el-input v-model="basicData.yymc" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目ID" prop="xmid">
|
|
||||||
<el-input disabled v-model="modelParam.basicData.xmid" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="知识库编码" prop="knowledge">
|
<el-form-item label="知识库编码" prop="knowledge">
|
||||||
<el-input v-model="modelParam.basicData.knowledge" />
|
<el-input v-model="basicData.knowledge" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="小数保留位数" prop="xsws">
|
<el-form-item label="小数保留位数" prop="xsws">
|
||||||
<SelectTable v-model:data="modelParam.basicData.xsws" :fields="xmglFields" :tableData="xswsData" label="label"
|
<SelectTable v-model:data="basicData.xsws" :fields="xmglFields" :tableData="xswsData" label="label"
|
||||||
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="打印形式" prop="dylx">
|
<el-form-item label="打印形式" prop="dylx">
|
||||||
<SelectTable v-model:data="modelParam.basicData.dylx" :fields="xmglFields" :tableData="dylxData" label="label"
|
<SelectTable v-model:data="basicData.dylx" :fields="xmglFields" :tableData="dylxData" label="label"
|
||||||
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总汇表代号" prop="zhbdh">
|
<el-form-item label="总汇表代号" prop="zhbdh">
|
||||||
<el-input v-model="modelParam.basicData.zhbdh" />
|
<el-input v-model="basicData.zhbdh" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="报告单代号" prop="bgdh">
|
<el-form-item label="报告单代号" prop="bgdh">
|
||||||
<el-input v-model="modelParam.basicData.bgdh" />
|
<el-input v-model="basicData.bgdh" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="价格" prop="jg">
|
<el-form-item label="价格" prop="jg">
|
||||||
<el-input type="number" v-model="modelParam.basicData.jg" />
|
<el-input type="number" v-model="basicData.jg" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="助记符" prop="zjf">
|
<el-form-item label="助记符" prop="zjf">
|
||||||
<el-input v-model="modelParam.basicData.zjf" />
|
<el-input v-model="basicData.zjf" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测试方法" prop="csff">
|
<el-form-item label="测试方法" prop="csff">
|
||||||
<SelectTable v-model:data="modelParam.basicData.csff" :fields="xmglFields" :tableData="dictData.MD"
|
<SelectTable v-model:data="basicData.csff" :fields="xmglFields" :tableData="dictData.MD" label="label"
|
||||||
label="label" value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分组打印组号" prop="fzdyxh">
|
<el-form-item label="分组打印组号" prop="fzdyxh">
|
||||||
<el-input type="number" v-model="modelParam.basicData.fzdyxh" />
|
<el-input type="number" v-model="basicData.fzdyxh" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="细菌项目类别" prop="itemclass">
|
<el-form-item label="细菌项目类别" prop="itemclass">
|
||||||
<SelectTable v-model:data="modelParam.basicData.itemclass" :fields="xmglFields" :tableData="dictData.ITEMCLASS"
|
<SelectTable v-model:data="basicData.itemclass" :fields="xmglFields" :tableData="dictData.ITEMCLASS"
|
||||||
label="label" value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
label="label" value="value" objKey="value" width="12.5rem" placeholder="" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="uflag">
|
|
||||||
<el-checkbox value="uflag">停用</el-checkbox>
|
|
||||||
</el-form-item>
|
|
||||||
<span class="text-span">结果参考值计算:</span>
|
<span class="text-span">结果参考值计算:</span>
|
||||||
<el-divider style="margin: .3125rem 0;" />
|
<el-divider style="margin: .3125rem 0;" />
|
||||||
<el-form-item label="参考下限" prop="ckxx">
|
<el-form-item label="参考下限" prop="ckxx">
|
||||||
<el-input v-model="modelParam.basicData.ckxx" @input="updatedyckz" />
|
<el-input v-model="basicData.ckxx" @input="updatedyckz" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参考上限" prop="cksx">
|
<el-form-item label="参考上限" prop="cksx">
|
||||||
<el-input v-model="modelParam.basicData.cksx" @input="updatedyckz" />
|
<el-input v-model="basicData.cksx" @input="updatedyckz" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参考值" prop="dyckz">
|
<el-form-item label="参考值" prop="dyckz">
|
||||||
<el-input v-model="modelParam.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="modelParam.basicData.jsgs" />
|
<el-input v-model="basicData.jsgs" />
|
||||||
<el-button v-show="modelParam.basicData.jsxm === 'Y'" type="primary" class="ml5"
|
<el-button v-show="basicData.jsxm === 'Y'" type="primary" class="ml5" @click="calcGuildeClick">向导...</el-button>
|
||||||
@click="calcGuildeClick">向导...</el-button>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-checkbox label="参考值与性别有关" v-model="ygxbCheck"></el-checkbox>
|
<el-checkbox label="参考值与性别有关" v-model="basicData.ygxb" true-value="Y" false-value="N"></el-checkbox>
|
||||||
<el-checkbox label="与年龄有关" v-model="ygnlCheck"></el-checkbox>
|
<el-checkbox label="与年龄有关" v-model="basicData.ygnl" true-value="Y" false-value="N"></el-checkbox>
|
||||||
<el-checkbox label="与标本有关" v-model="ygbbCheck"></el-checkbox>
|
<el-checkbox label="与标本有关" v-model="basicData.ygbb" true-value="Y" false-value="N"></el-checkbox>
|
||||||
<el-checkbox label="与生理周期有关" v-model="ygzqCheck"></el-checkbox>
|
<el-checkbox label="与生理周期有关" v-model="basicData.ygzq" true-value="Y" false-value="N"></el-checkbox>
|
||||||
<el-checkbox label="与诊断有关" v-model="ygzdCheck"></el-checkbox>
|
<el-checkbox label="与诊断有关" v-model="basicData.ygzd" true-value="Y" false-value="N"></el-checkbox>
|
||||||
<el-checkbox label="计算项目" v-model="jsxmCheck"></el-checkbox>
|
<el-checkbox label="计算项目" v-model="basicData.jsxm" true-value="Y" false-value="N"></el-checkbox>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<span class="text-span">医学审核条件:</span>
|
<span class="text-span">医学审核条件:</span>
|
||||||
<el-divider style="margin: .3125rem 0;" />
|
<el-divider style="margin: .3125rem 0;" />
|
||||||
<el-form-item label="项目结果不可能大于" prop="sjx" label-width="8.75rem">
|
<el-form-item label="项目结果不可能大于" prop="sjx" label-width="8.75rem">
|
||||||
<el-input v-model="modelParam.basicData.sjx" style="width:10rem" />
|
<el-input v-model="basicData.sjx" style="width:10rem" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="不可能小于" prop="xjx" label-width="7rem">
|
<el-form-item label="不可能小于" prop="xjx" label-width="7rem">
|
||||||
<el-input v-model="modelParam.basicData.xjx" style="width:10rem" />
|
<el-input v-model="basicData.xjx" style="width:10rem" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病人两次检验结果在" prop="jgjg" label-width="8.75rem">
|
<el-form-item label="病人两次检验结果在" prop="jgjg" label-width="8.75rem">
|
||||||
<el-input v-model="modelParam.basicData.jgjg" style="width:10rem" />
|
<el-input v-model="basicData.jgjg" style="width:10rem" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--计算属性-->
|
<!--计算属性-->
|
||||||
<el-form-item label="天内不可能相差" prop="cp_jgz" label-width="7rem">
|
<el-form-item label="天内不可能相差" prop="jgz" label-width="7rem">
|
||||||
<el-input v-model="modelParam.basicData.cp_jgz" style="width:10rem" />
|
<el-input v-model="basicData.jgz" style="width:10rem">
|
||||||
|
<template #append v-if="basicData.jgbz == '2'">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--报警条件-->
|
<!--报警条件-->
|
||||||
<span class="text-span">报警条件</span>
|
<span class="text-span">报警条件</span>
|
||||||
<el-divider style="margin: .3125rem 0;" />
|
<el-divider style="margin: .3125rem 0;" />
|
||||||
<el-form-item label="危急值">
|
<el-form-item label="危急值">
|
||||||
<el-input placeholder="上限极值" v-model="modelParam.basicData.hlimt" />
|
<el-input placeholder="上限极值" v-model="basicData.hlimit" />
|
||||||
<el-input placeholder="下限极值" v-model="modelParam.basicData.llimit" />
|
<el-input placeholder="下限极值" v-model="basicData.llimit" />
|
||||||
<el-button type="primary" class="ml5" @click="conditionClick">特定条件</el-button>
|
<el-button type="primary" class="ml5" @click="conditionClick">特定条件</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="复查">
|
<el-form-item label="复查">
|
||||||
<el-input placeholder="上限极值" v-model="modelParam.basicData.redoxx" />
|
<el-input placeholder="上限极值" v-model="basicData.redoxx" />
|
||||||
<el-input placeholder="下限极值" v-model="modelParam.basicData.redosx" />
|
<el-input placeholder="下限极值" v-model="basicData.redosx" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<span class="text-span">其他参数</span>
|
<span class="text-span">其他参数</span>
|
||||||
<el-divider style="margin: .3125rem 0;" />
|
<el-divider style="margin: .3125rem 0;" />
|
||||||
<el-form-item label="国标编码">
|
<el-form-item label="国标编码">
|
||||||
<SelectTable v-model:data="modelParam.basicData.val1" :fields="xmglFields" :tableData="dictData.GBDM"
|
<SelectTable v-model:data="basicData.val1" :fields="xmglFields" :tableData="dictData.GBDM" label="label"
|
||||||
label="label" value="value" objKey="value" width="12.5rem" placeholder="国标编码" size="small" />
|
value="value" objKey="value" width="12.5rem" placeholder="国标编码" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="外部代码2">
|
<el-form-item label="外部代码2">
|
||||||
<el-input v-model="modelParam.basicData.val2" />
|
<el-input v-model="basicData.val2" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="外部代码3">
|
<el-form-item label="外部代码3">
|
||||||
<el-input v-model="modelParam.basicData.val3" />
|
<el-input v-model="basicData.val3" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="外部代码4">
|
<el-form-item label="外部代码4">
|
||||||
<el-input v-model="modelParam.basicData.val4" />
|
<el-input v-model="basicData.val4" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="外部代码5">
|
<el-form-item label="外部代码5">
|
||||||
<el-input v-model="modelParam.basicData.val5" />
|
<el-input v-model="basicData.val5" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<MultiRef :refData="modelParam.basicData.dyckz || ''" v-model:dialog-table-visible="mulitDialogTableVisible"
|
<MultiRef :refData="basicData.dyckz || ''" v-model:dialog-table-visible="mulitDialogTableVisible"
|
||||||
@closeWithReturn="closeWithReturnMultiRef" />
|
@closeWithReturn="closeWithReturnMultiRef" />
|
||||||
<CalcGuilde v-model="calcDialogTableVisible" :form-data="modelParam.basicData" :text="modelParam.basicData.jsgs"
|
<CalcGuilde v-model="calcDialogTableVisible" :form-data="basicData" :text="basicData.jsgs"
|
||||||
@confirm="handleDialogConfirm" />
|
@confirm="handleDialogConfirm" />
|
||||||
<Condition v-model="conditionTabVisible" :form-data="modelParam.basicData" />
|
<Condition v-model="conditionTabVisible" :form-data="basicData" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -178,10 +179,20 @@ import Condition from './child/Condition.vue';
|
|||||||
import { getFirstLetter } from '@/utils/pinyin.js';
|
import { getFirstLetter } from '@/utils/pinyin.js';
|
||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage } from 'element-plus';
|
||||||
|
|
||||||
const modelParam = defineModel<any>()
|
|
||||||
|
|
||||||
|
const modelParam = defineModel<any>();
|
||||||
|
// 解构basicData 响应数据
|
||||||
|
const basicData = computed({
|
||||||
|
get() {
|
||||||
|
return modelParam.value.basicData;
|
||||||
|
},
|
||||||
|
set(newVal) {
|
||||||
|
modelParam.value.basicData = newVal;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
||||||
const mulitDialogTableVisible = ref(false)
|
const mulitDialogTableVisible = ref(false)
|
||||||
const calcDialogTableVisible = ref(false)
|
const calcDialogTableVisible = ref(false)
|
||||||
const conditionTabVisible = ref(false)
|
const conditionTabVisible = ref(false)
|
||||||
@ -218,75 +229,11 @@ const rules = ref({
|
|||||||
xmdh: [{ required: true, message: '请输入英文缩写', trigger: 'blur' }],
|
xmdh: [{ required: true, message: '请输入英文缩写', trigger: 'blur' }],
|
||||||
xmmc: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
|
xmmc: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
|
||||||
yqdl: [{ required: true, message: '请选择仪器大类', trigger: 'change' }],
|
yqdl: [{ required: true, message: '请选择仪器大类', trigger: 'change' }],
|
||||||
})
|
dylx: [{ required: true, message: '请选择仪打印方式', trigger: 'change' }],
|
||||||
|
|
||||||
computed(() => {
|
|
||||||
switch (modelParam.value.basicData.jgbz) {
|
|
||||||
case '1':
|
|
||||||
modelParam.value.basicData.cp_jgz = modelParam.value.basicData.jgz;
|
|
||||||
break;
|
|
||||||
case '2':
|
|
||||||
modelParam.value.basicData.cp_jgz = modelParam.value.basicData.jgz + '%';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const jsxmCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.jsxm === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.jsxm = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const ygzqCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.ygzq === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.ygzq = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const ygzdCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.ygzd === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.ygzd = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const ygbbCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.ygbb === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.ygbb = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const ygnlCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.ygnl === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.ygnl = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const ygxbCheck = computed({
|
|
||||||
get() {
|
|
||||||
return modelParam.value.basicData.ygxb === 'Y'
|
|
||||||
},
|
|
||||||
set(checked: boolean) {
|
|
||||||
modelParam.value.basicData.ygxb = checked ? 'Y' : 'N';
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const updatedyckz = () => {
|
const updatedyckz = () => {
|
||||||
modelParam.value.basicData.dyckz = !modelParam.value.basicData.ckxx && !modelParam.value.basicData.cksx ? '' : `${modelParam.value.basicData.ckxx}--${modelParam.value.basicData.cksx}`;
|
basicData.value.dyckz = !basicData.value.ckxx && !basicData.value.cksx ? '' : `${basicData.value.ckxx}--${basicData.value.cksx}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -296,47 +243,39 @@ const multiRefClick = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const closeWithReturnMultiRef = (val: string) => {
|
const closeWithReturnMultiRef = (val: string) => {
|
||||||
modelParam.value.basicData.dyckz = val;
|
basicData.value.dyckz = val;
|
||||||
mulitDialogTableVisible.value = false;
|
mulitDialogTableVisible.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleDialogConfirm = (val: string) => {
|
const handleDialogConfirm = (val: string) => {
|
||||||
modelParam.value.basicData.jsgs = val;
|
basicData.value.jsgs = val;
|
||||||
calcDialogTableVisible.value = false
|
calcDialogTableVisible.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
//计算向导
|
//计算向导
|
||||||
const calcGuildeClick = () => {
|
const calcGuildeClick = () => {
|
||||||
if (modelParam.value.basicData.jsxm) {
|
if (basicData.value.jsxm) {
|
||||||
calcDialogTableVisible.value = true
|
calcDialogTableVisible.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//危急值特定条件
|
//危急值特定条件
|
||||||
const conditionClick = () => {
|
const conditionClick = () => {
|
||||||
if (modelParam.value.basicData.xmid) {
|
if (basicData.value.xmid) {
|
||||||
conditionTabVisible.value = true
|
conditionTabVisible.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const xmdhInput = (val: string) => {
|
const xmdhInput = (val: string) => {
|
||||||
modelParam.value.basicData.zhbdh = val;
|
basicData.value.zhbdh = val;
|
||||||
modelParam.value.basicData.bgdh = val;
|
basicData.value.bgdh = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
const xmmcChange = (val: string) => {
|
const xmmcChange = (val: string) => {
|
||||||
modelParam.value.basicData.zjf = getFirstLetter(val);
|
basicData.value.zjf = getFirstLetter(val);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated(async () => {
|
|
||||||
await getDictData('XMGL', 'UT', 'YQDL', 'MD', 'ITEMCLASS', 'GBDM');
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 暴露验证方法(关键步骤)
|
// 暴露验证方法(关键步骤)
|
||||||
defineExpose({
|
defineExpose({
|
||||||
// 封装表单验证方法,返回 Promise
|
// 封装表单验证方法,返回 Promise
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
import CustomTable from '@/components/elTable/index.vue'
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
import { XmInfoVs } from '@/types';
|
import { XmInfoVs } from '@/types';
|
||||||
import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'
|
import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'
|
||||||
import { ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { deleteXmInfoVs } from '@/api/liswork/labItem/labItemApi';
|
import { deleteXmInfoVs } from '@/api/liswork/labItem/labItemApi';
|
||||||
|
|
||||||
|
|
||||||
@ -80,17 +80,17 @@ const onClickAdd = () => {
|
|||||||
modelParam.value.userInstrData.push(newData)
|
modelParam.value.userInstrData.push(newData)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onClickDel = async () => {
|
const onClickDel = () => {
|
||||||
if (selectRow.value) {
|
if (!selectRow.value.vsid) return ElMessage.warning('请选择要删除的行!')
|
||||||
await ElMessageBox.confirm('是否要删除选中的数据?', 'Warning',
|
ElMessageBox.confirm('是否要删除选中的数据?', '警告',
|
||||||
{
|
{
|
||||||
confirmButtonText: '确认',
|
confirmButtonText: '确认',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
});
|
}).then(async () => {
|
||||||
await deleteXmInfoVs({ vsid: selectRow.value.vsid || 0 })
|
await deleteXmInfoVs({ vsid: selectRow.value.vsid || 0 })
|
||||||
emit('refreshTabData', modelParam.value.basicData)
|
emit('refreshTabData', modelParam.value.basicData)
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const onRowClick = (row: any) => {
|
const onRowClick = (row: any) => {
|
||||||
|
|||||||
@ -273,10 +273,10 @@ const CellStyleHd = ({ row, column, rowIndex, columnIndex }: {
|
|||||||
rowIndex: number;
|
rowIndex: number;
|
||||||
columnIndex: number;
|
columnIndex: number;
|
||||||
}) => {
|
}) => {
|
||||||
if (column.label == "细菌/结果" && (row.alarm_flag ?? "").trim().length > 0) {
|
if (column.label == "细菌/结果" && row.alarm_flag) {
|
||||||
return { background: '#f00 !important', color: '#FFF' };
|
return { background: '#f00 !important', color: '#FFF' };
|
||||||
}
|
}
|
||||||
if (column.label == "危急值" && (row.alarm_flag ?? "").trim().length > 0) {
|
if (column.label == "危急值" && row.alarm_flag) {
|
||||||
return { background: '#f00 !important', color: '#FFF' };
|
return { background: '#f00 !important', color: '#FFF' };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -147,17 +147,18 @@ import PatientQueryForm from '@/components/selectSearch/index.vue'
|
|||||||
import BatchCode from './components/batchCode.vue';
|
import BatchCode from './components/batchCode.vue';
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { listUser } from '@/api/system/user.js'
|
import { listUser } from '@/api/system/user.js'
|
||||||
|
const mbStore = useCommonStore();
|
||||||
const aotuSize = classCom.useAutoSize();
|
const aotuSize = classCom.useAutoSize();
|
||||||
import { initWebSocket, sendWebSocketMessage, closeWebSocket, getWebSocketState } from '@/utils/webSocket';
|
import { initWebSocket, sendWebSocketMessage, closeWebSocket, getWebSocketState } from '@/utils/webSocket';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
const previewShow = ref(false);
|
const previewShow = ref(false);
|
||||||
const lbFlag = ref(false);
|
const lbFlag = ref(false);
|
||||||
const queryParams = ref({
|
const queryParams = ref({
|
||||||
jyrq: '2025-08-20',
|
jyrq: dayjs().format('YYYY-MM-DD'), //'2025-08-20'
|
||||||
yq: '46',
|
|
||||||
ybh: '1',
|
ybh: '1',
|
||||||
instrGroup: '02',
|
instrGroup: mbStore.defaultConfig.lisgroupid,
|
||||||
|
yq: mbStore.defaultConfig.defaultinstr,
|
||||||
problemId: 0,
|
problemId: 0,
|
||||||
days: 0,
|
days: 0,
|
||||||
yhdh: ''
|
yhdh: ''
|
||||||
@ -302,13 +303,14 @@ const handleinstrGroupChange = (val: any) => {
|
|||||||
// labPat.value = {}
|
// labPat.value = {}
|
||||||
getYqConfig()
|
getYqConfig()
|
||||||
}
|
}
|
||||||
const mbStore = useCommonStore();
|
|
||||||
const yqHandleChange = (val: any) => {
|
const yqHandleChange = (val: any) => {
|
||||||
labResuts.value = []
|
labResuts.value = []
|
||||||
labPat.value = {}
|
labPat.value = {}
|
||||||
mbStore.setLxsrList([]);
|
mbStore.setLxsrList([]);
|
||||||
getSysList()
|
getSysList()
|
||||||
fetchlabPatList()
|
fetchlabPatList()
|
||||||
|
sendMessage()
|
||||||
}
|
}
|
||||||
const instrGroupFields = ref([
|
const instrGroupFields = ref([
|
||||||
{ prop: 'zddh', label: '代号', width: 80, enablePinyinSearch: true },
|
{ prop: 'zddh', label: '代号', width: 80, enablePinyinSearch: true },
|
||||||
@ -320,8 +322,6 @@ const loadinstrGroupOptions = () => {
|
|||||||
getComDicts({ zdlb: 'GROUP' }).then((res: any) => {
|
getComDicts({ zdlb: 'GROUP' }).then((res: any) => {
|
||||||
instrGroupOptions.value = res.data
|
instrGroupOptions.value = res.data
|
||||||
instrGroupOptions.value.push({ zddh: 'ALL', zdmc: '所有仪器' })
|
instrGroupOptions.value.push({ zddh: 'ALL', zdmc: '所有仪器' })
|
||||||
queryParams.value.instrGroup = '02'
|
|
||||||
queryParams.value.yq = '46'
|
|
||||||
getYqConfig()
|
getYqConfig()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -349,7 +349,6 @@ const resultsHandle = (flag: boolean) => {
|
|||||||
}
|
}
|
||||||
fetchLabResults()
|
fetchLabResults()
|
||||||
}
|
}
|
||||||
|
|
||||||
const highlightRowIndex = ref(-1)
|
const highlightRowIndex = ref(-1)
|
||||||
const labPatListRef = ref()
|
const labPatListRef = ref()
|
||||||
//样本列表点击切换样本信息,同步载入左边样本信息表单和中间结果表单
|
//样本列表点击切换样本信息,同步载入左边样本信息表单和中间结果表单
|
||||||
@ -604,6 +603,7 @@ const fetchlabPatList = () => {
|
|||||||
selectJob(res.data[0])
|
selectJob(res.data[0])
|
||||||
getTotals()
|
getTotals()
|
||||||
} else {
|
} else {
|
||||||
|
handleCreate()
|
||||||
ybs.value = 0
|
ybs.value = 0
|
||||||
ws.value = 0
|
ws.value = 0
|
||||||
wjs.value = 0
|
wjs.value = 0
|
||||||
|
|||||||
@ -108,7 +108,8 @@ import Cookies from "js-cookie";
|
|||||||
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
||||||
import useUserStore from '@/store/modules/user';
|
import useUserStore from '@/store/modules/user';
|
||||||
import FloatingLines from '@/components/Ballpit/index.vue';
|
import FloatingLines from '@/components/Ballpit/index.vue';
|
||||||
|
import { useCommonStore } from '@/store/modules/commonStore'
|
||||||
|
const mbStore = useCommonStore();
|
||||||
// 初始化响应式变量
|
// 初始化响应式变量
|
||||||
const activeName = ref('first');
|
const activeName = ref('first');
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
@ -218,6 +219,7 @@ const Localconfig = (localid) => {
|
|||||||
getLocalconfig({ localid }).then(res => {
|
getLocalconfig({ localid }).then(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
const { localconfig, hosplist, oem: oemData } = res;
|
const { localconfig, hosplist, oem: oemData } = res;
|
||||||
|
mbStore.setDefaultConfig(localconfig)
|
||||||
// 修复:赋值oem数据,显示动态标题
|
// 修复:赋值oem数据,显示动态标题
|
||||||
if (oemData) oem.value = oemData;
|
if (oemData) oem.value = oemData;
|
||||||
// console.log('oemData', oemData);
|
// console.log('oemData', oemData);
|
||||||
@ -231,6 +233,8 @@ const Localconfig = (localid) => {
|
|||||||
}
|
}
|
||||||
getCookie();
|
getCookie();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
console.error("获取本地配置失败:", err);
|
console.error("获取本地配置失败:", err);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user