核心升级: - Spring Boot 2.7.18 → 3.5.14 - MyBatis Plus 3.5.5 → 3.5.16 (spring-boot3-starter) - Springdoc 1.8.0 → 2.8.6 (OpenAPI 3) - Flowable 6.8.0 → 7.1.0 - Druid 1.2.x → 1.2.28 (boot3-starter) - kotlin-reflect 1.9.10 → 1.9.25 迁移适配: - javax → jakarta 命名空间 (620+ 文件) - Swagger 注解迁移到 OpenAPI 3 (@Tag/@Schema/@Operation/@Parameter) - Spring Security 6.2 适配 (antMatchers→requestMatchers, EnableMethodSecurity) - Druid 包名迁移 (boot→boot3) - Redis 配置路径迁移 (spring.redis→spring.data.redis) - Flyway 适配 (flyway-database-postgresql) - Flowable 7.x 适配 (MULE_TASK_IMAGE 移除) 修复: - spring-boot-maven-plugin 2.5.15→3.5.14 (SPI服务发现失效) - mybatis-plus-boot-starter 3.5.5→3.5.16 (kotlin-reflect+fastjson2冲突) - Flowable database-schema-update 启用自动建表 验证: 23/23 测试通过, 1374 API端点正常
119 lines
2.4 KiB
Vue
Executable File
119 lines
2.4 KiB
Vue
Executable File
<template>
|
|
<div>
|
|
<el-table
|
|
ref="medicineRef"
|
|
height="400"
|
|
:data="medicineList"
|
|
@cell-click="clickRow"
|
|
>
|
|
<el-table-column
|
|
label="项目编码"
|
|
align="center"
|
|
prop="itemBusNo"
|
|
width="150"
|
|
/>
|
|
<el-table-column
|
|
label="项目名称"
|
|
align="center"
|
|
prop="name"
|
|
width="250"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="项目类型"
|
|
align="center"
|
|
prop="itemType_enumText"
|
|
/>
|
|
<el-table-column
|
|
label="价格"
|
|
align="center"
|
|
prop="purchaseAmount"
|
|
/>
|
|
<el-table-column
|
|
label="包装单位"
|
|
align="center"
|
|
prop="unitCode_dictText"
|
|
/>
|
|
<el-table-column
|
|
label="最小单位"
|
|
align="center"
|
|
prop="minUnitCode_dictText"
|
|
/>
|
|
<el-table-column
|
|
label="规格"
|
|
align="center"
|
|
prop="volume"
|
|
/>
|
|
<!-- <el-table-column label="用法" align="center" prop="methodCode_dictText" />
|
|
<el-table-column label="单次剂量" align="center" prop="dose" />
|
|
<el-table-column
|
|
label="剂量单位"
|
|
align="center"
|
|
prop="doseUnitCode_dictText"
|
|
/> -->
|
|
<el-table-column
|
|
label="生产厂家"
|
|
align="center"
|
|
prop="manufacturerText"
|
|
/>
|
|
</el-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {getMedicineList} from "./api";
|
|
import {watch} from "vue";
|
|
import {throttle} from "lodash-es";
|
|
|
|
const props = defineProps({
|
|
searchKey: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
itemType: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
});
|
|
const emit = defineEmits(["selectRow"]);
|
|
const queryParams = ref({
|
|
pageNum: 1,
|
|
pageSize: 50,
|
|
itemType: props.itemType,
|
|
});
|
|
const medicineList = ref([]);
|
|
|
|
// 节流函数
|
|
const throttledGetList = throttle(
|
|
() => {
|
|
getList();
|
|
},
|
|
300,
|
|
{ leading: true, trailing: true }
|
|
);
|
|
|
|
watch(
|
|
() => props,
|
|
(newValue) => {
|
|
queryParams.value.searchKey = newValue.searchKey;
|
|
queryParams.value.itemType = newValue.itemType;
|
|
throttledGetList();
|
|
},
|
|
{ immdiate: true, deep: true }
|
|
);
|
|
|
|
getList();
|
|
function getList() {
|
|
queryParams.value.purchaseFlag = 1
|
|
getMedicineList(queryParams.value).then((res) => {
|
|
medicineList.value = res.data;
|
|
});
|
|
}
|
|
|
|
function clickRow(row) {
|
|
emit("selectRow", row);
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style> |