mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 16:37:18 +08:00
perf: 用户管理-上传头像中弹框关闭立刻销毁内部popover
,避免延迟关闭影响用户体验
This commit is contained in:
parent
ebea78f53b
commit
9f7d49d37a
@ -10,6 +10,7 @@ const props = defineProps({
|
|||||||
const emit = defineEmits(["cropper"]);
|
const emit = defineEmits(["cropper"]);
|
||||||
|
|
||||||
const infos = ref();
|
const infos = ref();
|
||||||
|
const popoverRef = ref();
|
||||||
const refCropper = ref();
|
const refCropper = ref();
|
||||||
const showPopover = ref(false);
|
const showPopover = ref(false);
|
||||||
const cropperImg = ref<string>("");
|
const cropperImg = ref<string>("");
|
||||||
@ -19,11 +20,22 @@ function onCropper({ base64, blob, info }) {
|
|||||||
cropperImg.value = base64;
|
cropperImg.value = base64;
|
||||||
emit("cropper", { base64, blob, info });
|
emit("cropper", { base64, blob, info });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hidePopover() {
|
||||||
|
popoverRef.value.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({ hidePopover });
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="!showPopover" element-loading-background="transparent">
|
<div v-loading="!showPopover" element-loading-background="transparent">
|
||||||
<el-popover :visible="showPopover" placement="right" width="18vw">
|
<el-popover
|
||||||
|
ref="popoverRef"
|
||||||
|
:visible="showPopover"
|
||||||
|
placement="right"
|
||||||
|
width="18vw"
|
||||||
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div class="w-[18vw]">
|
<div class="w-[18vw]">
|
||||||
<ReCropper
|
<ReCropper
|
||||||
|
@ -351,6 +351,7 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const cropRef = ref();
|
||||||
/** 上传头像 */
|
/** 上传头像 */
|
||||||
function handleUpload(row) {
|
function handleUpload(row) {
|
||||||
addDialog({
|
addDialog({
|
||||||
@ -360,6 +361,7 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
|||||||
closeOnClickModal: false,
|
closeOnClickModal: false,
|
||||||
contentRenderer: () =>
|
contentRenderer: () =>
|
||||||
h(croppingUpload, {
|
h(croppingUpload, {
|
||||||
|
ref: cropRef,
|
||||||
imgSrc: row.avatar,
|
imgSrc: row.avatar,
|
||||||
onCropper: info => (avatarInfo.value = info)
|
onCropper: info => (avatarInfo.value = info)
|
||||||
}),
|
}),
|
||||||
@ -368,7 +370,8 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
|||||||
// 根据实际业务使用avatarInfo.value和row里的某些字段去调用上传头像接口即可
|
// 根据实际业务使用avatarInfo.value和row里的某些字段去调用上传头像接口即可
|
||||||
done(); // 关闭弹框
|
done(); // 关闭弹框
|
||||||
onSearch(); // 刷新表格数据
|
onSearch(); // 刷新表格数据
|
||||||
}
|
},
|
||||||
|
closeCallBack: () => cropRef.value.hidePopover()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user