Files
his/backup/vxetable-migration-20260602/medicationmanagement/adjustmentProfitLossRecord/index.vue
华佗 1d21661a78 feat: Spring Boot 3.5.14 全量升级 + 组件升级
核心升级:
- 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端点正常
2026-06-04 22:39:49 +08:00

291 lines
6.2 KiB
Vue
Executable File

<template>
<div class="app-container">
<el-form
v-show="showSearch"
ref="queryRef"
:model="queryParams"
:inline="true"
label-width="100px"
>
<el-form-item
label="开始时间"
prop="startTime"
>
<el-date-picker
v-model="queryParams.startTime"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd"
clearable
/>
</el-form-item>
<el-form-item
label="结束时间"
prop="startTime"
>
<el-date-picker
v-model="queryParams.endTime"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd"
clearable
/>
</el-form-item>
<el-form-item
label="药房名称"
prop="pharmacyId"
label-width="100px"
>
<el-select
v-model="queryParams.pharmacyId"
placeholder="请输入"
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [
{ id: '1', name: '药房1' },
{ id: '2', name: '药房2' },
]"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label="药品名称"
prop="medicineName"
label-width="100px"
>
<el-input
v-model="queryParams.medicineName"
placeholder="请输入"
clearable
/>
</el-form-item>
<el-form-item
label="药品类型"
prop="medicineType"
>
<el-select
v-model="queryParams.medicineType"
placeholder="请选择"
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [
{ id: '1', name: '药品1' },
{ id: '2', name: '药品2' },
{ id: '3', name: '药品3' },
{ id: '4', name: '药品4' },
{ id: '5', name: '药品5' },
{ id: '6', name: '药品6' },
{ id: '7', name: '药品7' },
{ id: '8', name: '药品8' },
]"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="Search"
@click="handleQuery"
>
搜索
</el-button>
<el-button
icon="Refresh"
@click="resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter="10"
class="mb8"
>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
>
新增
</el-button>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
min-height="200"
max-height="500"
:data="tableData"
style="width: 100%"
lab
>
<el-table-column
prop="name"
label="库房名称"
align="center"
/>
<el-table-column
prop="age"
label="药品名称"
align="center"
/>
<el-table-column
prop="address"
label="包装规格"
align="center"
/>
<el-table-column
prop="address"
label="包装单位"
align="center"
/>
<el-table-column
prop="address"
label="最小包装单位"
align="center"
width="150px"
/>
<el-table-column
prop="address"
label="厂家"
align="center"
/>
<el-table-column
prop="address"
label="类型"
align="center"
/>
<el-table-column
prop="address"
label="单位数量"
align="center"
/>
<el-table-column
prop="address"
label="最小单位数量"
align="center"
width="150px"
/>
<el-table-column
prop="address"
label="原批发价"
align="center"
/>
<el-table-column
prop="address"
label="现批发价"
align="center"
/>
<el-table-column
prop="address"
label="原批发拆分价"
align="center"
width="150px"
/>
<el-table-column
prop="address"
label="现批发拆分价"
align="center"
width="150px"
/>
<el-table-column
prop="address"
label="批价盈亏"
align="center"
/>
<el-table-column
prop="address"
label="原售价"
align="center"
/>
<el-table-column
prop="address"
label="现售价"
align="center"
/>
<el-table-column
prop="address"
label="原零售价"
align="center"
/>
<el-table-column
prop="address"
label="现零售价"
align="center"
/>
<el-table-column
prop="address"
label="零价盈亏"
align="center"
/>
<el-table-column
prop="address"
label="执行时间"
align="center"
/>
</el-table>
<pagination
v-show="total > 0"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
</div>
</template>
<script setup>
import {ref} from 'vue';
const { proxy } = getCurrentInstance();
const queryParams = ref({
pageNo: 1,
pageSize: 10,
startTime: undefined,
endTime: undefined,
});
const refreshTable = ref(true);
const loading = ref(false);
const tableData = ref([]);
const getList = () => {
console.log(queryParams.value);
};
const showSearch = ref(true);
const reset = () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
};
};
const handleQuery = () => {
queryParams.value.pageNo = 1;
console.log(queryParams.value, 'queryParams');
getList();
};
const resetQuery = () => {
reset();
handleQuery();
};
onMounted(() => {
getList();
});
</script>
<style>
</style>