问题优化

This commit is contained in:
wuyy 2026-09-16 17:45:38 +08:00
parent 1863b7ded6
commit 867a46d933
7 changed files with 36 additions and 14 deletions

View File

@ -152,7 +152,8 @@ const processTableData = (data: TableRowItem[]) => {
// 所有列都生成拼音用于检索
props.columnList.forEach((field) => {
if (item[field.prop]) {
pinyinMap[field.prop] = getFirstLetter(item[field.prop]).toLowerCase();
//处理列数据是数组时,不处理
pinyinMap[field.prop] = Array.isArray(item[field.prop]) ? item[field.prop] : getFirstLetter(item[field.prop]).toLowerCase();
}
});
return { ...item, pinyinMap };

View File

@ -1,8 +1,8 @@
/**
* @file index.vue
* @description: 交叉配血
* @description: 临床发血
* @author: w
* @since: 2026-06-18
* @since: 2026-06-20
*/
<template>
<div class="box-container">
@ -44,7 +44,7 @@
{{ formatDict(row.dept_id, 'ks') }}
</template>
<template #blood_breed="{ row }">
{{bloodBreed.find(v => v.value == row.blood_breed)?.label || row.blood_breed}}
{{ formatBreed(row.blood_breed) }}
</template>
</DropdownTableSelect>
</el-form-item>
@ -846,6 +846,12 @@ const getSqdInfo = () => {
})
}
const formatBreed = (breeds: Array<string>) => {
return breeds.map(item => {
const match = bloodBreed.value.find(v => v.value === item)
return match ? match.label : item
}).join('、')
}
onMounted(() => {
getDictData('ks', 'bq', 'sxmd', 'billApplyStatus', 'ktsx', 'abotype', 'subgroup', 'sxzz', 'rhtype', 'pxff', 'pxjg', 'zccc', 'test_result')

View File

@ -41,7 +41,7 @@
{{ formatDict(row.dept_id, 'ks') }}
</template>
<template #blood_breed="{ row }">
{{bloodBreed.find(v => v.value == row.blood_breed)?.label || row.blood_breed}}
{{ formatBreed(row.blood_breed) }}
</template>
</DropdownTableSelect>
</el-form-item>
@ -106,7 +106,6 @@
</el-col>
<el-col :span="6">
<el-form-item label="Rh(D)">
<!-- <el-input v-model="formData.rh_type" placeholder="" disabled /> -->
<div class="blood-type-group">
<div :class="['blood-type-tag', 'rh',]">
<span :class="[formData.rh_type == '+' ? '' : formData.rh_type == '-' ? 'red' : '']">
@ -779,6 +778,7 @@ const saveBloodApply = () => {
saveBloodData(params).then(res => {
saveLoading.value = false
if (res.code == 0) {
bloodInfo.value.bill_no = res.data
handleRefresh()
ElMessage.success(res.msg)
}
@ -864,7 +864,12 @@ const searchApply = () => {
})
}
const formatBreed = (breeds: Array<string>) => {
return breeds.map(item => {
const match = bloodBreed.value.find(v => v.value === item)
return match ? match.label : item
}).join('、')
}
onMounted(() => {

View File

@ -43,13 +43,14 @@
<el-col :span="6">
<el-form-item label="申请单号">
<DropdownTableSelect v-model="form.bill_no" :column-list="applyColumns" labelField="bill_no"
:showSearch="false" tableWidth="550px" :table-data="applyTableData" @open="loadApplyData"
:showSearch="false" tableWidth="800px" :table-data="applyTableData" @open="loadApplyData"
@search="onSearch" @change="onSearch" :disabled="!!(xkCheckBloodtype.bill_no)">
<template #dept_id="{ row }">
{{ formatDict(row.dept_id, 'ks') }}
</template>
<template #blood_breed="{ row }">
{{bloodBreed.find(v => v.value == row.blood_breed)?.label || row.blood_breed}}
<!-- {{bloodBreed.find(v => v.value == row.blood_breed)?.label || row.blood_breed}} -->
{{ formatBreed(row.blood_breed) }}
</template>
</DropdownTableSelect>
</el-form-item>
@ -477,7 +478,7 @@ const applyColumns = ref<TableColumnItem[]>([
{ label: '申请单号', prop: 'bill_no' },
{ label: '患者姓名', prop: 'patient_name' },
{ label: '科室', prop: 'dept_id', slotName: 'dept_id' },
{ label: '申请品种', prop: 'blood_breed', slotName: 'blood_breed' }
{ label: '申请品种', prop: 'blood_breed', slotName: 'blood_breed', width: 250 }
])
const applyTableData = ref<TableRowItem[]>([])
@ -680,6 +681,13 @@ const getTime = () => {
})
}
const formatBreed = (breeds: Array<string>) => {
return breeds.map(item => {
const match = bloodBreed.value.find(v => v.value === item)
return match ? match.label : item
}).join('、')
}
onMounted(() => {
getDictData('ks', 'bq', 'abotype', 'rhtype', 'sxmd', 'sxzz', 'billApplyStatus', 'subgroup', 'ktsx')
getUserData()

View File

@ -22,7 +22,7 @@
<el-col :span="4">
<el-form-item label="血型复核单">
<DropdownTableSelect v-model="form.billNo" :column-list="applyColumns" labelField="applyBillNo"
:table-data="applyTableData" @open="loadApplyData" @search="handleApplySearch" />
tableWidth="500px" :table-data="applyTableData" @open="loadApplyData" @search="handleApplySearch" />
</el-form-item>
</el-col>
<el-col :span="4">

View File

@ -1052,9 +1052,11 @@ const goHistoryBlood = () => {
// 打开新增弹窗
const openBloodDialog = () => {
editIndex.value = -1
resetBloodForm()
bloodForm.apply_bloodtype = xkPatientInfo.value.abo
bloodDialogVisible.value = true
resetBloodForm()
bloodForm.intent = bloodList.value.length ? bloodList.value[0].intent : ''
bloodForm.causalis = bloodList.value.length ? bloodList.value[0].causalis : ''
bloodForm.apply_bloodtype = xkPatientInfo.value.abo
}
// 重置弹窗表单
const resetBloodForm = () => {

View File

@ -48,7 +48,7 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
"/dev-api": {
// target: "http://47.97.125.165:8905",
// target: "http://localhost:8907",
target: "http://47.97.125.165:8907",
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""),