更新vxetable框架并升级前端组件框架

This commit is contained in:
2026-06-03 11:19:52 +08:00
parent 5b6b23331d
commit 5a2050a736
385 changed files with 19691 additions and 21188 deletions

View File

@@ -1,4 +1,4 @@
<template>
<template>
<el-dialog
v-model="dialogVisible"
:title="dialogTitle"
@@ -105,32 +105,31 @@
</el-button>
</div>
<el-table
<vxe-table
ref="prescriptionRef"
max-height="650"
:data="prescriptionList"
row-key="uniqueKey"
:row-config="{ keyField: 'uniqueKey', expandRowKeys: expandOrder }"
border
:expand-row-keys="expandOrder"
@cell-click="clickRow"
@selection-change="handleSelectionChange"
@checkbox-change="handleSelectionChange"
>
<el-table-column
type="selection"
<vxe-column
type="checkbox"
width="55"
:selectable="isRowSelectable"
/>
<el-table-column
label="组"
<vxe-column
title="组"
align="center"
width="60"
>
<template #default="scope">
<span v-if="scope.row.groupId">{{ getGroupIcon(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column
label="类型"
</vxe-column>
<vxe-column
title="类型"
align="center"
width="120"
>
@@ -154,11 +153,11 @@
}}
</span>
</template>
</el-table-column>
<el-table-column
label="医嘱"
</vxe-column>
<vxe-column
title="医嘱"
align="center"
prop="productName"
field="productName"
width="300"
>
<template #default="scope">
@@ -177,13 +176,13 @@
/>
<template #reference>
<el-input
:ref="'adviceRef' + scope.$index"
:ref="'adviceRef' + scope.rowIndex"
v-model="scope.row.adviceName"
style="width: 100%"
placeholder="请选择项目"
@input="(value) => handleInput(value, scope.row, scope.$index)"
@click="handleFocus(scope.row, scope.$index)"
@keyup.enter.stop="handleFocus(scope.row, scope.$index)"
@input="(value) => handleInput(value, scope.row, scope.rowIndex)"
@click="handleFocus(scope.row, scope.rowIndex)"
@keyup.enter.stop="handleFocus(scope.row, scope.rowIndex)"
@keydown="
(e) => {
if (!scope.row.showPopover) return;
@@ -200,13 +199,13 @@
</template>
<span v-else>{{ scope.row.adviceName }}</span>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="单次剂量"
<vxe-column
title="单次剂量"
align="center"
width="250"
prop="sortNumber"
field="sortNumber"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -255,13 +254,13 @@
<span v-else>-</span>
</template>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="给药途径"
<vxe-column
title="给药途径"
align="center"
width="150"
prop="sortNumber"
field="sortNumber"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -287,13 +286,13 @@
<span v-else>-</span>
</template>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="用药频次"
<vxe-column
title="用药频次"
align="center"
width="150"
prop="sortNumber"
field="sortNumber"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -319,13 +318,13 @@
<span v-else>-</span>
</template>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="用药天数"
<vxe-column
title="用药天数"
align="center"
width="100"
prop="sortNumber"
field="sortNumber"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -342,13 +341,13 @@
<span v-else>-</span>
</template>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="总量/执行次数"
<vxe-column
title="总量/执行次数"
align="center"
width="150"
prop="sortNumber"
field="sortNumber"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -361,13 +360,13 @@
</template>
<span v-else>{{ scope.row.sortNumber }}</span>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="单位"
<vxe-column
title="单位"
align="center"
width="120"
prop="unitCode"
field="unitCode"
>
<template #default="scope">
<template v-if="!scope.row.groupPackageId">
@@ -392,10 +391,10 @@
</template>
<span>{{ scope.row.unitCodeName }}</span>
</template>
</el-table-column>
</vxe-column>
<el-table-column
label="操作"
<vxe-column
title="操作"
align="center"
width="80"
>
@@ -405,11 +404,11 @@
icon="Delete"
circle
size="small"
@click="handleDeleteRow(scope.$index, scope.row)"
@click="handleDeleteRow(scope.rowIndex, scope.row)"
/>
</template>
</el-table-column>
</el-table>
</vxe-column>
</vxe-table>
<template #footer>
<el-button @click="dialogVisible = false">

View File

@@ -1,76 +1,76 @@
<template>
<template>
<div
ref="tableWrapper"
tabindex="0"
class="table-container"
@keyup="handleKeyDown"
>
<el-table
<vxe-table
ref="adviceBaseRef"
v-loading="loading"
height="350"
:data="adviceBaseList"
highlight-current-row
row-key="patientId"
:row-config="{ keyField: 'patientId' }"
@current-change="handleCurrentChange"
@cell-click="clickRow"
>
<el-table-column
label="名称"
<vxe-column
title="名称"
align="center"
prop="adviceName"
field="adviceName"
/>
<el-table-column
label="类型"
<vxe-column
title="类型"
align="center"
prop="activityType_enumText"
field="activityType_enumText"
/>
<el-table-column
label="包装单位"
<vxe-column
title="包装单位"
align="center"
prop="unitCode_dictText"
field="unitCode_dictText"
/>
<el-table-column
label="最小单位"
<vxe-column
title="最小单位"
align="center"
prop="minUnitCode_dictText"
field="minUnitCode_dictText"
/>
<el-table-column
label="规格"
<vxe-column
title="规格"
align="center"
prop="volume"
field="volume"
/>
<el-table-column
label="用法"
<vxe-column
title="用法"
align="center"
prop="methodCode_dictText"
field="methodCode_dictText"
/>
<el-table-column
label="频次"
<vxe-column
title="频次"
align="center"
prop="rateCode_dictText"
field="rateCode_dictText"
/>
<el-table-column
label="单次剂量"
<vxe-column
title="单次剂量"
align="center"
prop="dose"
field="dose"
/>
<el-table-column
label="剂量单位"
<vxe-column
title="剂量单位"
align="center"
prop="doseUnitCode_dictText"
field="doseUnitCode_dictText"
/>
<el-table-column
label="注射药品"
<vxe-column
title="注射药品"
align="center"
prop="injectFlag_enumText"
field="injectFlag_enumText"
/>
<el-table-column
label="皮试"
<vxe-column
title="皮试"
align="center"
prop="skinTestFlag_enumText"
field="skinTestFlag_enumText"
/>
</el-table>
</vxe-table>
<!-- 分页组件 -->
<div class="pagination-wrapper">
<el-pagination
@@ -295,7 +295,7 @@ const handleKeyDown = (event) => {
const setCurrentRow = (row) => {
adviceBaseRef.value.setCurrentRow(row);
// 滚动到选中行
const tableBody = adviceBaseRef.value.$el.querySelector('.el-table__body-wrapper');
const tableBody = adviceBaseRef.value.$el.querySelector('.vxe-table--body-wrapper');
const currentRowEl = adviceBaseRef.value.$el.querySelector('.current-row');
if (tableBody && currentRowEl) {
currentRowEl.scrollIntoView({ behavior: 'smooth', block: 'nearest' });