|
@@ -5,6 +5,7 @@
|
|
|
<a-modal :visible="visible" :ok-button-props="{ style: { display: 'none' } }"
|
|
|
wrap-class-name="full-modal" style="text-align: center"
|
|
|
cancel-text="关闭" @cancel="visible = !visible">
|
|
|
+ <input type="file" @change="changeHandle"/>
|
|
|
<a-spin tip="加载中..." size="small" :spinning="spinning">
|
|
|
<vue-office-excel v-if="fileSuffix=='xlsx'" :src="previewUrl" style="height: 90vh;"
|
|
|
@rendered="rendered" @error="renderedError"/>
|
|
@@ -46,7 +47,7 @@ export default defineComponent({
|
|
|
setup(props) {
|
|
|
const visible = ref<boolean>(false);
|
|
|
const spinning = ref<boolean>(false);
|
|
|
- const previewUrl = ref<Blob>();
|
|
|
+ const previewUrl = ref<any>();
|
|
|
const fileSuffix = ref("");
|
|
|
|
|
|
function loadFile() {
|
|
@@ -54,7 +55,6 @@ export default defineComponent({
|
|
|
let filePath = stripHtmlTags(props.filePath);
|
|
|
fileSuffix.value = fileName?.substring(fileName?.lastIndexOf('.') + 1).toLowerCase();
|
|
|
|
|
|
- debugger
|
|
|
if (props.accept?.indexOf(fileSuffix.value) < 0) {
|
|
|
$message.error("不支持预览的文件格式!");
|
|
|
return;
|
|
@@ -65,7 +65,8 @@ export default defineComponent({
|
|
|
fileName: fileName,
|
|
|
filePath: filePath
|
|
|
}, "获取文件失败!").then(res => {
|
|
|
- previewUrl.value = res.data;
|
|
|
+ previewUrl.value = new Blob([res.data], {type: "application/octet-stream"});
|
|
|
+ // previewUrl.value = res.data;
|
|
|
if (previewUrl.value == undefined) {
|
|
|
$message.error("文件加载失败!");
|
|
|
return;
|
|
@@ -73,7 +74,14 @@ export default defineComponent({
|
|
|
visible.value = true;
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+ function changeHandle(event) {
|
|
|
+ let file = event.target.files[0]
|
|
|
+ let fileReader = new FileReader()
|
|
|
+ fileReader.readAsArrayBuffer(file)
|
|
|
+ fileReader.onload = () => {
|
|
|
+ previewUrl.value = fileReader.result;
|
|
|
+ }
|
|
|
+ }
|
|
|
function stripHtmlTags(htmlString: string): string {
|
|
|
return htmlString.replace(/<[^>]+>/g, '');
|
|
|
}
|
|
@@ -92,7 +100,7 @@ export default defineComponent({
|
|
|
visible, fileSuffix,
|
|
|
previewUrl,
|
|
|
loadFile,
|
|
|
- rendered, renderedError,
|
|
|
+ rendered, renderedError,changeHandle,
|
|
|
spinning,
|
|
|
};
|
|
|
}
|