2025-12-25 18:13:21 +08:00
|
|
|
|
<!-- 修改界面 -->
|
2025-11-19 18:14:21 +08:00
|
|
|
|
<template>
|
2026-05-20 17:46:09 +08:00
|
|
|
|
<el-dialog v-model="visible" :title="title" width="40vw" :close-on-click-modal="false" :draggable="true">
|
2026-04-15 18:03:32 +08:00
|
|
|
|
|
2025-12-25 18:13:21 +08:00
|
|
|
|
<span class="text-span">项目信息:</span>
|
|
|
|
|
|
<el-divider style="margin: 5px 0;" />
|
2026-05-15 18:04:48 +08:00
|
|
|
|
<el-form ref="form" :model="formData" inline label-width="100px" class="query-form">
|
2025-12-25 18:13:21 +08:00
|
|
|
|
<el-form-item label="项目代号" prop="xmdh">
|
|
|
|
|
|
<el-input placeholder="项目代号" v-model="formData.xmdh"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="项目名称" prop="xmmc">
|
|
|
|
|
|
<el-input placeholder="项目名称" v-model="formData.xmmc"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="助记符" prop="zjf">
|
|
|
|
|
|
<el-input placeholder="助记符" v-model="formData.zjf"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="项目类别" prop="xmlb">
|
|
|
|
|
|
<el-input placeholder="项目类别" v-model="formData.xmlb"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="所属组" prop="xmz">
|
|
|
|
|
|
<el-input placeholder="所属组" v-model="formData.xmz"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="单位" prop="dw">
|
|
|
|
|
|
<el-input placeholder="单位" v-model="formData.dw"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="参考上限" prop="cksx">
|
|
|
|
|
|
<el-input placeholder="参考上限" v-model="formData.cksx"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="参考下限" prop="ckxx">
|
|
|
|
|
|
<el-input placeholder="参考下限" v-model="formData.ckxx"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="打印参考值" prop="dyckz">
|
|
|
|
|
|
<el-input placeholder="打印参考值" v-model="formData.dyckz"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="打印序号" prop="dyxh">
|
|
|
|
|
|
<el-input placeholder="打印序号" v-model="formData.dyxh"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="计算公式" prop="jsgs">
|
|
|
|
|
|
<el-input placeholder="计算公式" v-model="formData.jsgs"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="临床意义" prop="lcyy">
|
|
|
|
|
|
<el-input placeholder="临床意义" v-model="formData.lcyy"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="备注" prop="bz">
|
|
|
|
|
|
<el-input placeholder="备注" v-model="formData.bz"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="xsbz">
|
|
|
|
|
|
<el-checkbox v-model="xsbzCheck" label="显示标志"></el-checkbox>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
<span class="text-span">知识库条目:</span>
|
|
|
|
|
|
<el-divider style="margin: 5px 0;" />
|
|
|
|
|
|
<CustomTable ref="tableRefRight" :data="dataList" :columns="columnsRight" :enable-column-drag="true"
|
|
|
|
|
|
@column-drag-end="handleColumnDragEnd" :config="tableConfig" :show-overflow-tooltip="true">
|
|
|
|
|
|
<template #reserve="{ row }">
|
|
|
|
|
|
{{ reserve(row.reserve) }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template #textresult="{ row }">
|
|
|
|
|
|
<el-input v-model="row.textresult" type="textarea" class="full-width-input"></el-input>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template #zd="{ row }">
|
|
|
|
|
|
<el-input v-model="row.zd" type="textarea" class="full-width-input"></el-input>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</CustomTable>
|
|
|
|
|
|
<template #footer>
|
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
|
<el-button @click="handleCancel">取 消</el-button>
|
|
|
|
|
|
<el-button type="primary" @click="handleOk">确 定</el-button>
|
|
|
|
|
|
</div>
|
2025-11-21 18:02:02 +08:00
|
|
|
|
</template>
|
2025-12-25 18:13:21 +08:00
|
|
|
|
</el-dialog>
|
2025-11-20 18:16:03 +08:00
|
|
|
|
|
2025-11-19 18:14:21 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
2025-11-21 18:02:02 +08:00
|
|
|
|
import CustomTable from '@/components/elTable/index.vue'
|
|
|
|
|
|
import { addService } from '@/api/liswork/xmKnowledge/xmKnowledgeApi'
|
|
|
|
|
|
import { ElMessage } from 'element-plus'
|
2025-11-20 18:16:03 +08:00
|
|
|
|
|
|
|
|
|
|
const props = defineProps({
|
2025-12-25 18:13:21 +08:00
|
|
|
|
title: {
|
2025-11-20 18:16:03 +08:00
|
|
|
|
type: String,
|
|
|
|
|
|
default: ''
|
2025-11-21 18:02:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
type: {
|
|
|
|
|
|
type: String,
|
|
|
|
|
|
default: ''
|
2025-11-20 18:16:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
const visible = defineModel()
|
2025-11-21 18:02:02 +08:00
|
|
|
|
const emit = defineEmits(['closeWithReturn'])
|
2025-11-20 18:16:03 +08:00
|
|
|
|
|
|
|
|
|
|
const formData = ref({
|
|
|
|
|
|
xmdh: '',
|
|
|
|
|
|
xmmc: '',
|
|
|
|
|
|
zjf: '',
|
2025-12-25 18:13:21 +08:00
|
|
|
|
xmlb: '',
|
2025-11-20 18:16:03 +08:00
|
|
|
|
xmz: '',
|
|
|
|
|
|
dw: '',
|
|
|
|
|
|
cksx: '',
|
|
|
|
|
|
ckxx: '',
|
|
|
|
|
|
dyckz: '',
|
|
|
|
|
|
dyxh: '',
|
|
|
|
|
|
jsgs: '',
|
|
|
|
|
|
lcyy: '',
|
2025-12-25 18:13:21 +08:00
|
|
|
|
bz: '',
|
2025-11-20 18:16:03 +08:00
|
|
|
|
xsbz: ''
|
|
|
|
|
|
})
|
|
|
|
|
|
|
2025-11-21 18:02:02 +08:00
|
|
|
|
|
|
|
|
|
|
const columnsRight = ref([
|
2025-12-25 18:13:21 +08:00
|
|
|
|
{ prop: 'reserve', label: '类别', visible: true, align: 'center', slot: 'reserve', width: 50, showOverflowTooltip: false },
|
|
|
|
|
|
{ prop: 'textresult', label: '说明', visible: true, align: 'center', slot: 'textresult', width: 300, showOverflowTooltip: false },
|
2026-04-15 18:03:32 +08:00
|
|
|
|
{ prop: 'zd', label: '指导建议', visible: true, align: 'center', slot: 'zd', showOverflowTooltip: false },
|
2025-11-21 18:02:02 +08:00
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const tableConfig = ref({
|
|
|
|
|
|
border: true, // 边框
|
|
|
|
|
|
height: '40vh', // 高度
|
2026-05-20 17:46:09 +08:00
|
|
|
|
highlightCurrentRow: false, // 高亮当前行
|
2025-11-21 18:02:02 +08:00
|
|
|
|
// cellStyle: cellStyleHd
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
const xsbzCheck = computed({
|
|
|
|
|
|
get() {
|
|
|
|
|
|
return formData.value.xsbz === '1'
|
|
|
|
|
|
},
|
2025-12-25 18:13:21 +08:00
|
|
|
|
set(checked) {
|
2025-11-21 18:02:02 +08:00
|
|
|
|
formData.value.xsbz = checked ? '1' : '0';
|
|
|
|
|
|
}
|
2025-11-20 18:16:03 +08:00
|
|
|
|
})
|
|
|
|
|
|
|
2025-11-21 18:02:02 +08:00
|
|
|
|
//退拽属性
|
|
|
|
|
|
const handleColumnDragEnd = (data: any) => {
|
|
|
|
|
|
// 更新列配置
|
|
|
|
|
|
columnsRight.value = data.columns;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-05-20 17:46:09 +08:00
|
|
|
|
const dataList = ref<any>([
|
|
|
|
|
|
{ reserve: '1', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'H', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'L', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'P', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'Q', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'J', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'N', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
])
|
2025-11-21 18:02:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-12-25 18:13:21 +08:00
|
|
|
|
const reserve = (reserve: string) => {
|
|
|
|
|
|
switch (reserve) {
|
2025-11-21 18:02:02 +08:00
|
|
|
|
case '1':
|
|
|
|
|
|
return '综述'
|
|
|
|
|
|
case 'H':
|
|
|
|
|
|
return '偏高'
|
2025-12-25 18:13:21 +08:00
|
|
|
|
case 'L':
|
2025-11-21 18:02:02 +08:00
|
|
|
|
return '偏低'
|
|
|
|
|
|
case 'P':
|
|
|
|
|
|
return '阳性'
|
|
|
|
|
|
case 'Q':
|
|
|
|
|
|
return '弱阳性'
|
|
|
|
|
|
case 'J':
|
|
|
|
|
|
return '危机'
|
|
|
|
|
|
case 'N':
|
|
|
|
|
|
return '阴性'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-20 18:16:03 +08:00
|
|
|
|
const handleCancel = () => {
|
2025-11-21 18:02:02 +08:00
|
|
|
|
visible.value = false
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const handleOk = async () => {
|
|
|
|
|
|
//保存数据
|
|
|
|
|
|
console.log(formData.value)
|
|
|
|
|
|
await addService(formData.value);
|
|
|
|
|
|
ElMessage.success('保存成功!')
|
|
|
|
|
|
visible.value = false
|
2025-11-20 18:16:03 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-20 17:46:09 +08:00
|
|
|
|
const open = (row, dataListRight) => {
|
2025-12-25 18:13:21 +08:00
|
|
|
|
if (props.type === '新增') {
|
2025-11-21 18:02:02 +08:00
|
|
|
|
dataList.value = [
|
2025-12-25 18:13:21 +08:00
|
|
|
|
{ reserve: '1', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'H', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'L', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'P', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'Q', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'J', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
|
|
|
|
|
{ reserve: 'N', textresult: '', yxjs: '', cjyy: '', zd: '' },
|
2025-11-21 18:02:02 +08:00
|
|
|
|
]
|
2025-12-25 18:13:21 +08:00
|
|
|
|
} else {
|
2026-05-20 17:46:09 +08:00
|
|
|
|
formData.value = row
|
|
|
|
|
|
dataList.value = dataListRight
|
2025-11-21 18:02:02 +08:00
|
|
|
|
}
|
2025-12-25 18:13:21 +08:00
|
|
|
|
|
2025-11-20 18:16:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-20 17:46:09 +08:00
|
|
|
|
|
|
|
|
|
|
defineExpose({ open })
|
|
|
|
|
|
|
2025-11-19 18:14:21 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
2026-04-15 18:03:32 +08:00
|
|
|
|
.text-span {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #1f6dd3;
|
|
|
|
|
|
}
|
2025-11-19 18:14:21 +08:00
|
|
|
|
</style>
|