|
@@ -16,10 +16,10 @@
|
|
|
<t-dropdown-item @click="newFile">
|
|
|
<a>新建文件</a>
|
|
|
</t-dropdown-item>
|
|
|
- <t-dropdown-item @click="openFile">
|
|
|
+ <t-dropdown-item @click="load(true)">
|
|
|
<a>打开文件</a>
|
|
|
</t-dropdown-item>
|
|
|
- <t-dropdown-item divider="true" @click="loadFile">
|
|
|
+ <t-dropdown-item divider="true" @click="load">
|
|
|
<a>导入文件</a>
|
|
|
</t-dropdown-item>
|
|
|
<t-dropdown-item>
|
|
@@ -295,19 +295,20 @@ import JSZip from 'jszip';
|
|
|
import axios from 'axios';
|
|
|
import { switchTheme } from '@/services/theme';
|
|
|
import { noLoginTip } from '@/services/utils';
|
|
|
-import { useDot, autoSave, delAttrs } from '@/services/common';
|
|
|
import {
|
|
|
save,
|
|
|
+ blank,
|
|
|
newFile,
|
|
|
SaveType,
|
|
|
onScaleView,
|
|
|
onScaleWindow,
|
|
|
showMagnifier,
|
|
|
showMap,
|
|
|
- newfile,
|
|
|
drawPen,
|
|
|
map,
|
|
|
magnifier,
|
|
|
+ useDot,
|
|
|
+ delAttrs,
|
|
|
} from '@/services/common';
|
|
|
|
|
|
const router = useRouter();
|
|
@@ -387,27 +388,43 @@ onUnmounted(() => {
|
|
|
meta2d.off('opened', initMeta2dName);
|
|
|
});
|
|
|
|
|
|
-function login() {
|
|
|
+const login = () => {
|
|
|
return `${assets.account}?cb=${encodeURIComponent(location.href)}`;
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
-function load(newT: boolean = false) {
|
|
|
+function load(isNew = false) {
|
|
|
const input = document.createElement('input');
|
|
|
input.type = 'file';
|
|
|
input.onchange = (event) => {
|
|
|
const elem = event.target as HTMLInputElement;
|
|
|
if (elem.files && elem.files[0]) {
|
|
|
- newT && newfile(true);
|
|
|
+ blank();
|
|
|
// 路由跳转 可能在 openFile 后执行
|
|
|
if (elem.files[0].name.endsWith('.json')) {
|
|
|
openJson(elem.files[0]);
|
|
|
+ if (isNew) {
|
|
|
+ router.push({
|
|
|
+ path: '/',
|
|
|
+ query: {
|
|
|
+ r: Date.now() + '',
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
} else if (elem.files[0].name.endsWith('.svg')) {
|
|
|
MessagePlugin.info(
|
|
|
'可二次编辑但转换存在损失,若作为图片使用,请使用右侧属性面板的上传图片功能'
|
|
|
);
|
|
|
openSvg(elem.files[0]);
|
|
|
} else if (elem.files[0].name.endsWith('.zip')) {
|
|
|
- openZip(elem.files[0]);
|
|
|
+ router.push({
|
|
|
+ path: '/',
|
|
|
+ query: {
|
|
|
+ r: Date.now() + '',
|
|
|
+ },
|
|
|
+ });
|
|
|
+ setTimeout(() => {
|
|
|
+ openZip(elem.files[0]);
|
|
|
+ }, 500);
|
|
|
} else {
|
|
|
MessagePlugin.info('打开文件只支持 json,svg,zip 格式');
|
|
|
}
|
|
@@ -581,17 +598,6 @@ const openZip = async (file: File) => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-async function loadFile(newT: boolean = false) {
|
|
|
- autoSave();
|
|
|
- setTimeout(() => {
|
|
|
- load(newT);
|
|
|
- }, 1000);
|
|
|
-}
|
|
|
-
|
|
|
-async function openFile() {
|
|
|
- loadFile(true);
|
|
|
-}
|
|
|
-
|
|
|
const downloadJson = () => {
|
|
|
const data: Meta2dBackData = meta2d.data();
|
|
|
if (data._id) delete data._id;
|