核心升级: - 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端点正常
143 lines
3.2 KiB
Vue
Executable File
143 lines
3.2 KiB
Vue
Executable File
<template>
|
|
<div>
|
|
<el-table
|
|
ref="medicineRef"
|
|
height="400"
|
|
:data="medicineList"
|
|
@cell-click="clickRow"
|
|
>
|
|
<el-table-column
|
|
label="项目名称"
|
|
align="center"
|
|
prop="name"
|
|
width="200"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="项目类型"
|
|
align="center"
|
|
prop="itemType_enumText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="包装单位"
|
|
align="center"
|
|
prop="unitCode_dictText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="最小单位"
|
|
align="center"
|
|
prop="minUnitCode_dictText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="规格"
|
|
align="center"
|
|
prop="volume"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="产品批号"
|
|
align="center"
|
|
prop="lotNumber"
|
|
/>
|
|
<!-- <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-column
|
|
label="编码"
|
|
align="center"
|
|
prop="ybNo"
|
|
/>
|
|
</el-table>
|
|
<!-- <pagination
|
|
v-show="total > 0"
|
|
:total="total"
|
|
v-model:page="queryParams.pageNo"
|
|
v-model:limit="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/> -->
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {getMedicineList} from "./api";
|
|
import {ref, watch} from "vue";
|
|
import {throttle} from "lodash-es";
|
|
|
|
const router = useRouter();
|
|
const route = useRoute();
|
|
const total = ref(0)
|
|
const props = defineProps({
|
|
searchKey: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
itemType: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
purposeLocationId:{
|
|
type: String,
|
|
default: "",
|
|
},
|
|
|
|
});
|
|
const emit = defineEmits(["selectRow"]);
|
|
const queryParams = ref({
|
|
// pageNum: 1,
|
|
// pageSize: 50,
|
|
itemType: props.itemType,
|
|
orgLocationId:props.purposeLocationId,
|
|
purchaseFlag:0
|
|
});
|
|
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;
|
|
queryParams.value.orgLocationId=newValue.purposeLocationId;
|
|
queryParams.value.purchaseFlag = 0
|
|
throttledGetList();
|
|
},
|
|
{ immdiate: true, deep: true }
|
|
);
|
|
|
|
getList();
|
|
function getList() {
|
|
console.log(queryParams.value,"queryParams.value")
|
|
getMedicineList(queryParams.value).then((res) => {
|
|
medicineList.value = res.data.records?res.data.records:res.data
|
|
total.value = res.data.total?res.data.total:medicineList.value.length
|
|
console.log(medicineList.value,"medicineList.value ")
|
|
});
|
|
}
|
|
|
|
function clickRow(row) {
|
|
emit("selectRow", row);
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style> |