|
|
@ -42,13 +42,13 @@ |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
<div class="pagination-container"> |
|
|
|
<div class="pagination-info"> |
|
|
|
<!-- <div class="pagination-info"> |
|
|
|
<select v-model="pageSize" @change="handlePageSizeChange" class="custom-select" style="font-size:14px;width:120px"> |
|
|
|
<option v-for="size in pageSizeList" :key="size" :value="size" style="font-size:10px"> |
|
|
|
{{ size }} 条/页 |
|
|
|
</option> |
|
|
|
</select> |
|
|
|
</div> |
|
|
|
</div> --> |
|
|
|
<div class="pagination-buttons"> |
|
|
|
<button @click="prevPage" :disabled="currentPage === 1"> |
|
|
|
上一页 |
|
|
@ -101,14 +101,14 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<Confirm :isLoading="confirmVisible" :confirmInfo="confirmInfo"></Confirm> |
|
|
|
</div> |
|
|
|
</teleport> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
import { ref, computed, watch, onMounted } from 'vue' |
|
|
|
import { getIdCardList } from '@/services/index' |
|
|
|
import { getIdCardList, delCard } from '@/services/index' |
|
|
|
import type { ItemData } from '@/types/Index' |
|
|
|
import { useConsumablesStore } from '@/store' |
|
|
|
const consumableStore = useConsumablesStore() |
|
|
@ -116,7 +116,6 @@ const props = defineProps({ |
|
|
|
modelValue: Boolean, |
|
|
|
}) |
|
|
|
const emit = defineEmits(['update:modelValue']) |
|
|
|
const pageSizeList:number[] = [5,10,20] |
|
|
|
const visible = ref(props.modelValue) |
|
|
|
//总条数 |
|
|
|
let totalPage = ref(0) |
|
|
@ -128,12 +127,28 @@ watch( |
|
|
|
) |
|
|
|
const confirmDeleteVisible = ref(false) // 控制删除确认层的显示 |
|
|
|
const confirmExistVisible = ref(false) // 控制删除确认层的显示 |
|
|
|
const confirmVisible = ref(false) |
|
|
|
const confirmInfo = ref({}) |
|
|
|
|
|
|
|
// 打开删除确认层 |
|
|
|
const handleDelete = () => { |
|
|
|
if(!selectedItems.value.length){ |
|
|
|
return |
|
|
|
} |
|
|
|
if(selectedItems.value.length > 1){ |
|
|
|
confirmVisible.value = true; |
|
|
|
confirmInfo.value = { |
|
|
|
title: '提示', |
|
|
|
message: '不可批量操作', |
|
|
|
OkBtn: '确认', |
|
|
|
confirmCallback:async()=>{ |
|
|
|
confirmVisible.value = false |
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
//检查删除的卡与现有的耗材批次,如果存在则不参删除 |
|
|
|
let lotList = selectedItems.value.map(item => item.lotId) |
|
|
|
//获取耗材数据 |
|
|
@ -146,7 +161,6 @@ const handleDelete = () => { |
|
|
|
isExist = true; |
|
|
|
} |
|
|
|
} |
|
|
|
console.log('isExist--', isExist) |
|
|
|
if(isExist){ |
|
|
|
confirmExistVisible.value = true; |
|
|
|
return; |
|
|
@ -155,13 +169,17 @@ const handleDelete = () => { |
|
|
|
} |
|
|
|
|
|
|
|
// 确认删除操作 |
|
|
|
const confirmDelete = () => { |
|
|
|
tableData.value = tableData.value.filter( |
|
|
|
(item) => !selectedItems.value.includes(item), |
|
|
|
) |
|
|
|
const confirmDelete = async() => { |
|
|
|
// tableData.value = tableData.value.filter( |
|
|
|
// (item) => !selectedItems.value.includes(item), |
|
|
|
// ) |
|
|
|
let ids = selectedItems.value.map(item => item.id) |
|
|
|
await delCard(ids[0]) |
|
|
|
selectedItems.value = [] // 清空已选中项 |
|
|
|
selectAll.value = false // 取消全选状态 |
|
|
|
confirmDeleteVisible.value = false // 关闭确认删除层 |
|
|
|
getCardList() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 取消删除操作 |
|
|
@ -182,7 +200,7 @@ const getCardList = async () => { |
|
|
|
} |
|
|
|
tableData.value = res.data.list |
|
|
|
totalItems.value = res.data.list.length |
|
|
|
totalPage.value = res.data.totalPage; |
|
|
|
totalPage.value = res.data.total; |
|
|
|
console.log('tableData.value===', tableData.value) |
|
|
|
} |
|
|
|
|
|
|
@ -203,7 +221,7 @@ const handleConfirm = () => { |
|
|
|
emit('update:modelValue', false) |
|
|
|
console.log('已选择的项目:', selectedItems.value) |
|
|
|
} |
|
|
|
let defaultSize = 5 |
|
|
|
let defaultSize = 10 |
|
|
|
const currentPage = ref(1) |
|
|
|
const pageSize = ref(defaultSize) |
|
|
|
const tableData = ref<ItemData[]>([]) |
|
|
@ -211,7 +229,7 @@ const totalItems = ref(0) |
|
|
|
const selectedItems = ref<ItemData[]>([]) // 选中的项目数组 |
|
|
|
const selectAll = ref(false) // 全选状态 |
|
|
|
|
|
|
|
const totalPages = computed(() => Math.ceil(totalItems.value / pageSize.value)) |
|
|
|
const totalPages = computed(() => Math.ceil(totalPage.value / pageSize.value)) |
|
|
|
//搜索 |
|
|
|
// const _searchValue = ref<string>('') |
|
|
|
const prevPage = () => { |
|
|
@ -234,6 +252,8 @@ const formatDate = (date: any) => new Date(date).toLocaleDateString() |
|
|
|
// 显示的页码按钮逻辑 |
|
|
|
const displayedPages = computed(() => { |
|
|
|
const pages:any = []; |
|
|
|
console.log('totalPages---', totalPages) |
|
|
|
console.log('currentPage---', currentPage) |
|
|
|
if (totalPages.value <= 5) { |
|
|
|
for (let i = 1; i <= totalPages.value; i++) { |
|
|
|
pages.push(i) |
|
|
@ -294,11 +314,13 @@ const handlePageSizeChange = () => { |
|
|
|
/* 弹窗主体样式 */ |
|
|
|
.modal { |
|
|
|
background: white; |
|
|
|
width: 1000px; |
|
|
|
width: 90%; |
|
|
|
padding: 20px; |
|
|
|
border-radius: 8px; |
|
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); |
|
|
|
|
|
|
|
.modal-body{ |
|
|
|
height:42rem; |
|
|
|
} |
|
|
|
.modal-header { |
|
|
|
display: flex; |
|
|
|
width: 100%; |
|
|
@ -428,16 +450,15 @@ const handlePageSizeChange = () => { |
|
|
|
} |
|
|
|
|
|
|
|
.pagination-container { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
margin-top: 10px; |
|
|
|
|
|
|
|
text-align: right; |
|
|
|
.pagination-buttons button { |
|
|
|
margin: 0 2px; |
|
|
|
padding: 5px 10px; |
|
|
|
font-size: 26px; |
|
|
|
|
|
|
|
|
|
|
|
&.active { |
|
|
|
background: #007bff; |
|
|
|
color: white; |
|
|
|