fix table 前台分页重复刷新卡死问题
This commit is contained in:
parent
d9127dfd42
commit
d2f4a1b2be
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -47,7 +47,16 @@ const emit = defineEmits([
|
|||||||
"update:selectedKeys",
|
"update:selectedKeys",
|
||||||
"update:selectedKey",
|
"update:selectedKey",
|
||||||
]);
|
]);
|
||||||
|
function toThousands(num: number | string) {
|
||||||
|
if(typeof num == "string"){
|
||||||
|
num = parseFloat(num || '0')
|
||||||
|
}
|
||||||
|
let xs = num.toString().split(".")[1]
|
||||||
|
let zs = num.toString().split(".")[0]
|
||||||
|
let jg = (zs || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + (xs ? "." + xs : "");
|
||||||
|
console.log(jg)
|
||||||
|
return jg;
|
||||||
|
}
|
||||||
const props = withDefaults(defineProps<TableRowProps>(), {
|
const props = withDefaults(defineProps<TableRowProps>(), {
|
||||||
checkbox: false,
|
checkbox: false,
|
||||||
childrenColumnName: "children",
|
childrenColumnName: "children",
|
||||||
@ -606,12 +615,13 @@ const radioProps = props.getRadioProps(props.data, props.index);
|
|||||||
:content="data[column.key]"
|
:content="data[column.key]"
|
||||||
:isAutoShow="true"
|
:isAutoShow="true"
|
||||||
>
|
>
|
||||||
{{ data[column.key] }}
|
|
||||||
|
{{ column.qfw ? toThousands(data[column.key]) : data[column.key] }}
|
||||||
</lay-tooltip>
|
</lay-tooltip>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<template v-if="column.edit">
|
<template v-if="column.edit">
|
||||||
<span v-if="!editIndex[columnIndex]">
|
<span v-if="!editIndex[columnIndex]">
|
||||||
{{ data[column.key] }}
|
{{ column.qfw ? toThousands(data[column.key]) : data[column.key] }}
|
||||||
</span>
|
</span>
|
||||||
<lay-input
|
<lay-input
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
@ -621,7 +631,7 @@ const radioProps = props.getRadioProps(props.data, props.index);
|
|||||||
@blur="editIndex[columnIndex] = false"
|
@blur="editIndex[columnIndex] = false"
|
||||||
></lay-input>
|
></lay-input>
|
||||||
</template>
|
</template>
|
||||||
<span v-else> {{ data[column.key] }} </span>
|
<span v-else> {{ column.qfw ? toThousands(data[column.key]) : data[column.key] }} </span>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
@ -99,6 +99,7 @@ const tableRef = ref();
|
|||||||
|
|
||||||
const datalist = ref([...props.dataSource]);
|
const datalist = ref([...props.dataSource]);
|
||||||
console.log(datalist.value, 97);
|
console.log(datalist.value, 97);
|
||||||
|
console.log("表格初始化", 97);
|
||||||
const s = "";
|
const s = "";
|
||||||
const allChecked = ref(false);
|
const allChecked = ref(false);
|
||||||
const hasChecked = ref(false);
|
const hasChecked = ref(false);
|
||||||
@ -272,6 +273,7 @@ const tableSelectedKey: WritableComputedRef<string> = computed({
|
|||||||
watch(
|
watch(
|
||||||
() => props.dataSource,
|
() => props.dataSource,
|
||||||
() => {
|
() => {
|
||||||
|
console.log("table数据更新")
|
||||||
tableDataSource.value = [...props.dataSource];
|
tableDataSource.value = [...props.dataSource];
|
||||||
// if(!props.page){
|
// if(!props.page){
|
||||||
// datalist.value = [...props.dataSource]
|
// datalist.value = [...props.dataSource]
|
||||||
@ -344,18 +346,13 @@ watch(tableDataSource, () => {
|
|||||||
tmp.total = tableDataSource.value.length;
|
tmp.total = tableDataSource.value.length;
|
||||||
emit("update:page", tmp);
|
emit("update:page", tmp);
|
||||||
// tableDataSource.value = endlist
|
// tableDataSource.value = endlist
|
||||||
|
sxlist.value = []
|
||||||
change({
|
change({
|
||||||
limit: props.page.limit,
|
limit: props.page.limit,
|
||||||
current: pagecurrent || props.page.current,
|
current: pagecurrent || props.page.current
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
watch(
|
|
||||||
() => props.page,
|
|
||||||
() => {
|
|
||||||
console.log(props.page, 342);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
let pagecurrent: number;
|
let pagecurrent: number;
|
||||||
const change = function (page: any) {
|
const change = function (page: any) {
|
||||||
if (props.serverpage) {
|
if (props.serverpage) {
|
||||||
@ -762,7 +759,7 @@ const soultop = ref(0);
|
|||||||
const soulleft = ref(0);
|
const soulleft = ref(0);
|
||||||
const selcolumn = ref<any>({});
|
const selcolumn = ref<any>({});
|
||||||
const soulkey = ref("");
|
const soulkey = ref("");
|
||||||
const sxlist: any = ref({});
|
const sxlist: any = ref([]);
|
||||||
function showsoul(event: MouseEvent, column: any, key: string) {
|
function showsoul(event: MouseEvent, column: any, key: string) {
|
||||||
console.log(event);
|
console.log(event);
|
||||||
soulleft.value = event.pageX;
|
soulleft.value = event.pageX;
|
||||||
@ -786,10 +783,17 @@ function desc(event: any) {
|
|||||||
function sx(e: any) {
|
function sx(e: any) {
|
||||||
sxlist.value[e.key] = e.list;
|
sxlist.value[e.key] = e.list;
|
||||||
}
|
}
|
||||||
|
watch(sxlist,()=>{
|
||||||
|
console.log("sxlist更新")
|
||||||
|
})
|
||||||
watch(
|
watch(
|
||||||
sxlist,
|
[sxlist,()=>props.dataSource],
|
||||||
() => {
|
(old,new1) => {
|
||||||
// tableDataSource
|
// tableDataSource
|
||||||
|
// console.log(JSON.stringify(sxlist.value),JSON.stringify(props.dataSource),old[0] == new1[0],old[1] == new1[1])
|
||||||
|
if(sxlist.value.length == 0){
|
||||||
|
return
|
||||||
|
}
|
||||||
let list: any = [...props.dataSource];
|
let list: any = [...props.dataSource];
|
||||||
let endlist: any = [];
|
let endlist: any = [];
|
||||||
for (let i in sxlist.value) {
|
for (let i in sxlist.value) {
|
||||||
@ -806,19 +810,20 @@ watch(
|
|||||||
endlist.push(i);
|
endlist.push(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!props.page) {
|
if (!props.page || props.serverpage) {
|
||||||
|
nextTick(()=>{
|
||||||
datalist.value = endlist;
|
datalist.value = endlist;
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
tableDataSource.value = endlist;
|
tableDataSource.value = endlist;
|
||||||
change({
|
change({
|
||||||
limit: props.page.limit,
|
limit: props.page.limit,
|
||||||
current: pagecurrent || props.page.current,
|
current: pagecurrent || props.page.current,
|
||||||
|
isReload: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log("筛选", endlist);
|
},{
|
||||||
},
|
deep: true
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
window.addEventListener("click", heddin);
|
window.addEventListener("click", heddin);
|
||||||
|
@ -169,4 +169,5 @@ function shubiao(event: any) {
|
|||||||
selshow.value = false;
|
selshow.value = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user