2025-01-10 14:16:18 +08:00
|
|
|
<template>
|
|
|
|
<div style="display: flex;display: -webkit-flex; align-items: center;-webkit-align-items: center;">
|
|
|
|
<div :style="{ fontSize: appStore.size === 'default' ? '14px' : '16px' }" style="display: flex;display: -webkit-flex;align-items: center;-webkit-align-items: center;">
|
|
|
|
共{{ total }}条</div>
|
2025-05-24 14:04:18 +08:00
|
|
|
<!-- <el-select @change="changesize" v-model="pcode" filterable class="product-input"
|
2025-01-10 14:16:18 +08:00
|
|
|
@keyup.enter="changeSize" allow-create style="margin-left: 10px;width: 80px;">
|
|
|
|
<el-option v-for="(item, index) in arr_product" :key="index" :label="item.lable" :value="item.value" />
|
2025-05-24 14:04:18 +08:00
|
|
|
</el-select> -->
|
|
|
|
<!-- <div
|
2025-01-10 14:16:18 +08:00
|
|
|
:style="{ fontSize: appStore.size === 'default' ? '14px' : '16px' }" style="margin-left:10px;display: flex;display: -webkit-flex;align-items: center; -webkit-align-items: center;">
|
|
|
|
<div>条/页</div>
|
2025-05-24 14:04:18 +08:00
|
|
|
</div> -->
|
2025-01-10 14:16:18 +08:00
|
|
|
<el-pagination style="margin-left: 10px;" background layout="prev, pager, next" :total="total"
|
|
|
|
v-model:current-page="currentPage" v-model:page-size="pageSize" @current-change="pagechange" />
|
|
|
|
<div
|
|
|
|
style="display: flex; display: -webkit-flex; align-items: center;-webkit-align-items: center; margin-left: 10px; " :style="{ fontSize: appStore.size === 'default' ? '14px' : '16px' }">
|
|
|
|
<div>前往</div><el-input v-model="inputgo" style="width:40px;margin-left:5px ; " @blur="sizechange($event)"
|
|
|
|
@keyup.enter="sizechange($event)" />
|
|
|
|
<div style="margin-left:5px ; ">页</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
import { ref, PropType, defineEmits, computed ,onMounted} from 'vue'
|
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
import { useAppStore } from '@/store/modules/app';
|
|
|
|
const appStore = useAppStore();
|
|
|
|
const props = defineProps({
|
|
|
|
total: {
|
|
|
|
required: true,
|
|
|
|
type: Number as PropType<number>,
|
|
|
|
default: 0
|
|
|
|
},
|
|
|
|
size: {
|
|
|
|
type: Number,
|
|
|
|
default: 1
|
|
|
|
},
|
|
|
|
current: {
|
|
|
|
type: Number,
|
|
|
|
default: 20
|
|
|
|
},
|
|
|
|
});
|
|
|
|
const pcode = ref(10)
|
|
|
|
const inputgo = ref()
|
|
|
|
const arr_product = ref([
|
|
|
|
{
|
|
|
|
lable: 10,
|
|
|
|
value: 10
|
|
|
|
},
|
|
|
|
{
|
|
|
|
lable: 20,
|
|
|
|
value: 20
|
|
|
|
},
|
|
|
|
{
|
|
|
|
lable: 30,
|
|
|
|
value: 30
|
|
|
|
},
|
|
|
|
{
|
|
|
|
lable: 40,
|
|
|
|
value: 40
|
|
|
|
}, {
|
|
|
|
lable: 50,
|
|
|
|
value: 50
|
|
|
|
}, {
|
|
|
|
lable: 100,
|
|
|
|
value: 100
|
|
|
|
}, {
|
|
|
|
lable: 300,
|
|
|
|
value: 300
|
|
|
|
}
|
|
|
|
])
|
|
|
|
const emit = defineEmits(['update:current', 'update:size', 'pagination']);
|
|
|
|
|
|
|
|
const currentPage = computed<number | undefined>({
|
|
|
|
get: () => props.current,
|
|
|
|
set: value => {
|
|
|
|
emit('update:current', value);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const pageSize = computed<number | undefined>({
|
|
|
|
get() {
|
|
|
|
return props.size;
|
|
|
|
},
|
|
|
|
set(val) {
|
|
|
|
emit('update:size', val);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
function changesize(val: any) {
|
|
|
|
if (val.length !== 0) {
|
|
|
|
pcode.value = val
|
|
|
|
emit('update:size', val);
|
|
|
|
emit('pagination');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function changeSize(event: any) {
|
|
|
|
if (event.target.value.length !== 0) {
|
|
|
|
pcode.value = event.target.value
|
|
|
|
emit('update:size', event.target.value);
|
|
|
|
emit('pagination');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function pagechange(val: any) {
|
|
|
|
emit('update:current', val);
|
|
|
|
emit('pagination');
|
|
|
|
}
|
|
|
|
function sizechange(event: any) {
|
|
|
|
if (event.target.value.length !== 0) {
|
|
|
|
if (event.target.value > Math.ceil(props.total / props.size) ) {
|
|
|
|
ElMessage({
|
|
|
|
message: '请输入正确的页数',
|
|
|
|
type: 'warning',
|
|
|
|
})
|
|
|
|
|
|
|
|
}else{
|
|
|
|
emit('update:current', event.target.value);
|
|
|
|
emit('pagination');
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
onMounted(()=>{
|
|
|
|
pcode.value = props.size
|
|
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
</style>
|
|
|
|
|