mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-01-25 02:58:43 +08:00
Feat/cancel event (#2593)
* feat(excel): add cancel event for import excel * feat(excel): add cancel emits
This commit is contained in:
parent
a78c3a305b
commit
714a351036
@ -37,10 +37,11 @@
|
|||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
emits: ['success', 'error'],
|
emits: ['success', 'error', 'cancel'],
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
const inputRef = ref<HTMLInputElement | null>(null);
|
const inputRef = ref<HTMLInputElement | null>(null);
|
||||||
const loadingRef = ref<Boolean>(false);
|
const loadingRef = ref<Boolean>(false);
|
||||||
|
const cancelRef = ref<Boolean>(true);
|
||||||
|
|
||||||
function shapeWorkSheel(sheet: XLSX.WorkSheet, range: XLSX.Range) {
|
function shapeWorkSheel(sheet: XLSX.WorkSheet, range: XLSX.Range) {
|
||||||
let str = ' ',
|
let str = ' ',
|
||||||
@ -184,6 +185,7 @@
|
|||||||
|
|
||||||
if (!rawFile) return;
|
if (!rawFile) return;
|
||||||
|
|
||||||
|
cancelRef.value = false;
|
||||||
if (props.isReturnFile) {
|
if (props.isReturnFile) {
|
||||||
emit('success', rawFile);
|
emit('success', rawFile);
|
||||||
return;
|
return;
|
||||||
@ -191,12 +193,29 @@
|
|||||||
upload(rawFile);
|
upload(rawFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 文件选择器关闭后,判断取消状态
|
||||||
|
*/
|
||||||
|
function handleFocusChange() {
|
||||||
|
const timeId = setInterval(() => {
|
||||||
|
if (cancelRef.value === true) {
|
||||||
|
emit('cancel');
|
||||||
|
}
|
||||||
|
clearInterval(timeId);
|
||||||
|
window.removeEventListener('focus', handleFocusChange);
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 点击上传按钮
|
* @description: 点击上传按钮
|
||||||
*/
|
*/
|
||||||
function handleUpload() {
|
function handleUpload() {
|
||||||
const inputRefDom = unref(inputRef);
|
const inputRefDom = unref(inputRef);
|
||||||
inputRefDom && inputRefDom.click();
|
if (inputRefDom) {
|
||||||
|
cancelRef.value = true;
|
||||||
|
inputRefDom.click();
|
||||||
|
window.addEventListener('focus', handleFocusChange);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return { handleUpload, handleInputClick, inputRef };
|
return { handleUpload, handleInputClick, inputRef };
|
||||||
|
Loading…
Reference in New Issue
Block a user