🐞 fix(分页): 修复版本不同导致的分页失效

This commit is contained in:
砂糖
2025-09-20 11:44:36 +08:00
parent c6d7d4b107
commit e816fcf889
21 changed files with 105 additions and 45 deletions

View File

@@ -69,8 +69,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -1,9 +1,35 @@
<template> <template>
<div v-if="bomInfo.length > 0"> <div v-if="bomInfo.length > 0">
<el-tooltip :content="bomInfo.map(item => item.attrKey + ':' + item.attrValue).join(',')" class="bom-info" <!-- 始终显示带溢出隐藏的文本 -->
placement="top"> <template v-if="props.detail">
<span>{{bomInfo.map(item => item.attrKey).join(',')}}</span> <!-- 当detail为true时显示可弹出的popover -->
</el-tooltip> <el-popover
placement="top"
trigger="hover"
:width="500"
>
<div>
<el-descriptions column="2" border>
<el-descriptions-item
v-for="item in bomInfo"
:key="item.attrKey"
:label="item.attrKey"
>
{{ item.attrValue }}
</el-descriptions-item>
</el-descriptions>
</div>
<template #reference>
<span class="bom-info">{{ bomInfo.map(item => item.attrKey).join(',') }}</span>
</template>
</el-popover>
</template>
<template v-else>
<!-- 当detail为false时仅显示文本不弹出popover -->
<span class="bom-info">{{ bomInfo.map(item => item.attrKey).join(',') }}</span>
</template>
</div> </div>
<div v-else> <div v-else>
@@ -13,6 +39,7 @@
<script setup> <script setup>
import { ref, watch } from 'vue'; import { ref, watch } from 'vue';
import useProductStore from '@/store/modules/product'; import useProductStore from '@/store/modules/product';
import { ElPopover, ElDescriptions, ElDescriptionsItem } from 'element-plus';
// 定义组件props // 定义组件props
const props = defineProps({ const props = defineProps({
@@ -27,6 +54,11 @@ const props = defineProps({
itemId: { itemId: {
type: [String, Number], type: [String, Number],
required: false required: false
},
detail: {
type: Boolean,
required: false,
default: true // 默认显示popover
} }
}); });
@@ -44,7 +76,6 @@ const getBomInfo = async () => {
let bomId = props.bomId; let bomId = props.bomId;
if (!bomId) { if (!bomId) {
// 这里假设productMap是productStore中的属性
bomId = productStore.productMap?.[props.itemId]?.bomId; bomId = productStore.productMap?.[props.itemId]?.bomId;
} }
@@ -74,10 +105,27 @@ watch(
<style scoped> <style scoped>
.bom-info { .bom-info {
cursor: pointer; cursor: pointer;
/* 溢出隐藏显示省略号 */ white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; max-width: 150px;
max-width: 100px; /* 当不需要弹出时,指针样式改为默认 */
&:not(:hover) {
cursor: default;
}
}
/* 弹窗样式优化 */
:deep(.el-popover) {
padding: 10px;
}
/* 描述列表样式优化 */
:deep(.el-descriptions) {
font-size: 14px;
}
:deep(.el-descriptions__label) {
font-weight: 600;
} }
</style> </style>

View File

@@ -135,8 +135,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -113,8 +113,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -222,8 +222,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -120,8 +120,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -6,8 +6,8 @@
<el-card class="list-container"> <el-card class="list-container">
<pagination <pagination
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<div <div

View File

@@ -141,8 +141,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -115,8 +115,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -76,7 +76,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 添加或修改资金日记账对话框 --> <!-- 添加或修改资金日记账对话框 -->

View File

@@ -26,8 +26,8 @@
</klp-list> </klp-list>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" class="mt-4" layout="total, pager" /> v-model:limit="queryParams.pageSize" @pagination="getList" class="mt-4" layout="total, pager" />
</el-col> </el-col>
<!-- 右侧详情区占18列 --> <!-- 右侧详情区占18列 -->

View File

@@ -113,8 +113,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -113,8 +113,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -68,8 +68,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -10,6 +10,9 @@
<el-form-item label="负责人" prop="salesManager"> <el-form-item label="负责人" prop="salesManager">
<el-input v-model="queryParams.owner" :multiple="false" placeholder="请填写负责人" /> <el-input v-model="queryParams.owner" :multiple="false" placeholder="请填写负责人" />
</el-form-item> </el-form-item>
<el-form-item label="展示BOM">
<el-checkbox v-model="showDetail" @change="handleQuery" />
</el-form-item>
<!-- <el-form-item label="是否启用" prop="isEnabled"> <!-- <el-form-item label="是否启用" prop="isEnabled">
<el-select v-model="queryParams.isEnabled" placeholder="请选择是否启用" clearable> <el-select v-model="queryParams.isEnabled" placeholder="请选择是否启用" clearable>
<el-option <el-option
@@ -57,7 +60,7 @@
</el-table-column> </el-table-column>
<el-table-column label="BOM" align="center"> <el-table-column label="BOM" align="center">
<template #default="scope"> <template #default="scope">
<BomInfoMini :bomId="scope.row.bomId" /> <BomInfoMini :bomId="scope.row.bomId" :detail="showDetail" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -71,8 +74,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination
@pagination="getList" /> v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改产品对话框 --> <!-- 添加或修改产品对话框 -->
<el-dialog :title="title" v-model="open" width="800px" append-to-body> <el-dialog :title="title" v-model="open" width="800px" append-to-body>
@@ -190,6 +198,8 @@ export default {
itemId: undefined, itemId: undefined,
installManualDialogVisible: false, installManualDialogVisible: false,
showDetail: false,
}; };
}, },
created() { created() {
@@ -217,7 +227,9 @@ export default {
}, },
/** 查询产品列表 */ /** 查询产品列表 */
getList() { getList() {
console.log('getList');
this.loading = true; this.loading = true;
console.log(this.queryParams);
listProduct(this.queryParams).then(response => { listProduct(this.queryParams).then(response => {
this.productList = response.rows; this.productList = response.rows;
this.total = response.total; this.total = response.total;

View File

@@ -77,8 +77,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -64,7 +64,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 添加或修改库存对话框保持不变 --> <!-- 添加或修改库存对话框保持不变 -->

View File

@@ -149,8 +149,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />

View File

@@ -156,8 +156,8 @@
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" v-model:page="queryParams.pageNum"
:limit.sync="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 操作按钮 --> <!-- 操作按钮 -->

View File

@@ -59,7 +59,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 操作按钮 --> <!-- 操作按钮 -->
<div style="margin-top: 20px; text-align: right;"> <div style="margin-top: 20px; text-align: right;">

View File

@@ -81,7 +81,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 添加或修改出入库单主对话框 --> <!-- 添加或修改出入库单主对话框 -->