ananzhusen пре 2 година
родитељ
комит
99acb19ea4

BIN
public/view/favicon.ico


+ 18 - 0
public/view/index.css

@@ -0,0 +1,18 @@
+* {
+  padding: 0;
+  margin: 0;
+  outline: none;
+  box-sizing: border-box;
+  word-break: break-all;
+  word-break: break-word;
+}
+
+html, body {
+  width: 100%;
+  height: 100%;
+}
+
+#meta2d {
+  height: 100%;
+  overflow: hidden;
+}

+ 28 - 0
public/view/index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title i18n>meta2d</title>
+    <meta charset="UTF-8" />
+    <meta name="format-detection" content="telephone=no" />
+    <meta name="msapplication-tap-highlight" content="no" />
+    <meta
+      name="viewport"
+      content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"
+    />
+
+    <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
+    <link href="index.css" rel="stylesheet" />
+  </head>
+
+  <body>
+    <div class="meta2d" id="meta2d"></div>
+
+    <script src="js/meta2d.js"></script>
+    <script src="js/lcjs.iife.js"></script>
+    <script src="js/marked.min.js"></script>
+    <script crossorigin="anonymous" integrity="sha512-ppWbHq6q2f7HAwS481w6qikuC0XEeBnmkRg6KWnWg3zSIbJwWWBgsCDMAxzSB7SVqXzWwSYQ2s8TSJKjnaikMg==" src="https://lib.baomitu.com/echarts/5.1.2/echarts.min.js"></script>
+    <script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
+    <script src="http://cdn.hcharts.cn/highcharts/highcharts-more.js"></script>
+    <script src="js/index.js"></script>
+  </body>
+</html>

+ 36 - 0
public/view/js/index.js

@@ -0,0 +1,36 @@
+const meta2d = new Meta2d('meta2d');
+
+registerCommonDiagram();
+
+function getQueryVariable(variable) {
+  var query = window.location.search.substring(1);
+  var vars = query.split('&');
+  for (var i = 0; i < vars.length; i++) {
+    var pair = vars[i].split('=');
+    if (pair[0] == variable) {
+      return pair[1];
+    }
+  }
+  return false;
+}
+
+function _fetch(url, cb) {
+  var xhr = new XMLHttpRequest();
+  xhr.open('GET', url, true);
+  xhr.send();
+  xhr.onreadystatechange = function() {
+    if (xhr.readyState == 4 && xhr.status == 200) {
+      cb && cb(xhr.responseText);
+    }
+  };
+}
+
+var id = getQueryVariable('id');
+if (!id) {
+  id = 'data';
+}
+_fetch(id + '.json', function(text) {
+  var data = JSON.parse(text);
+  data.locked = 1;
+  meta2d.open(data);
+});

Разлика између датотеке није приказан због своје велике величине
+ 14 - 0
public/view/js/lcjs.iife.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
public/view/js/marked.min.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
public/view/js/meta2d.js


+ 20 - 0
public/view/react/Meta2d.css

@@ -0,0 +1,20 @@
+html,
+body {
+  height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+
+.content {
+  position: relative;
+  background-color: #f4f4f4;
+  height: 100vh;
+}
+
+#meta2d {
+  position: absolute !important;
+  width: 100%;
+  height: 100%;
+  touch-action: none;
+  overflow: hidden;
+}

+ 42 - 0
public/view/react/Meta2d.jsx

@@ -0,0 +1,42 @@
+import React from "react";
+import "./Meta2d.css";
+
+let meta2d = null;
+export default class Meta2d extends React.Component {
+  constructor(props) {
+    super(props);
+  }
+
+  componentDidMount() {
+    meta2d = new window.Meta2d("meta2d");
+    window.registerCommonDiagram();
+    this._fetch("/json/data.json", function (text) {
+      var data = JSON.parse(text);
+      data.locked = 1;
+      meta2d.open(data);
+    });
+  }
+
+  componentWillUnmount() {
+    meta2d?.destroy();
+  }
+
+  _fetch(url, cb) {
+    var xhr = new XMLHttpRequest();
+    xhr.open("GET", url, true);
+    xhr.send();
+    xhr.onreadystatechange = function () {
+      if (xhr.readyState == 4 && xhr.status == 200) {
+        cb && cb(xhr.responseText);
+      }
+    };
+  }
+
+  render() {
+    return (
+      <div className="content">
+        <div id="meta2d"></div>
+      </div>
+    );
+  }
+}

+ 68 - 0
public/view/vue2/Meta2d.vue

@@ -0,0 +1,68 @@
+<!--  -->
+<template>
+  <div class="content">
+    <div id="meta2d"></div>
+  </div>
+</template>
+
+<script>
+let meta2d = null;
+
+export default {
+  name: 'meta2d',
+  data() {
+    return {};
+  },
+  mounted() {
+    this.initMeta2d();
+  },
+  destroyed() {
+    meta2d?.destroy();
+  },
+  methods: {
+    initMeta2d() {
+      meta2d = new window.Meta2d("meta2d");
+      window.registerCommonDiagram();
+
+      this._fetch("/json/data.json", function (text) {
+        var data = JSON.parse(text);
+        data.locked = 1;
+        meta2d.open(data);
+      });
+    },
+
+    _fetch(url, cb) {
+      var xhr = new XMLHttpRequest();
+      xhr.open("GET", url, true);
+      xhr.send();
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState == 4 && xhr.status == 200) {
+          cb && cb(xhr.responseText);
+        }
+      };
+    },
+  },
+};
+</script>
+<style>
+html,
+body {
+  height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+
+.content {
+  position: relative;
+  background-color: #f4f4f4;
+  height: 100vh;
+}
+
+#meta2d {
+  position: absolute !important;
+  width: 100%;
+  height: 100%;
+  touch-action: none;
+  overflow: hidden;
+}
+</style>

+ 58 - 0
public/view/vue3/Meta2d.vue

@@ -0,0 +1,58 @@
+<template>
+  <div class="content">
+    <div id="meta2d"></div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { onMounted, onUnmounted } from 'vue';
+let meta2d: any = null;
+
+onMounted(async () => {
+  meta2d = new (window as any).Meta2d('meta2d');
+  (window as any).registerCommonDiagram();
+
+  _fetch('/json/data.json', function (text) {
+    var data = JSON.parse(text);
+    data.locked = 1;
+    meta2d.open(data);
+  });
+});
+
+function _fetch(url, cb) {
+  var xhr = new XMLHttpRequest();
+  xhr.open('GET', url, true);
+  xhr.send();
+  xhr.onreadystatechange = function () {
+    if (xhr.readyState == 4 && xhr.status == 200) {
+      cb && cb(xhr.responseText);
+    }
+  };
+}
+
+onUnmounted(() => {
+  meta2d?.destroy();
+});
+</script>
+
+<style lang="scss" scoped>
+html,
+body {
+  height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+
+.content {
+  position: relative;
+  background-color: #f4f4f4;
+  height: 100vh;
+  #meta2d {
+    position: absolute !important;
+    width: 100%;
+    height: 100%;
+    touch-action: none;
+    overflow: hidden;
+  }
+}
+</style>

+ 75 - 0
public/view/使用说明.md

@@ -0,0 +1,75 @@
+# meta2d-view
+
+le5le meta2d 预览页.
+
+# 如何使用
+## 下载为Vue2
+
+- 将zip文件解压;
+- 将vue2/meta2d.vue放到 vue2项目 的views文件夹(作为一个独立的页面);
+- 配置meta2d页面路由;
+- 将data.json文件放到 vue2项目 公共资源目录下public/json/;
+- 将js、image和png文件夹放到 vue2项目 public下;
+- 参考index.html文件,将script标签引入资源的代码复制到 vue2项目 的index.html中(src="js/index.js"除外);
+
+(如果js下没有核心包(meta2d.js),请用npm下载依赖包(npm install meta2d.js),拿到依赖包里面的meta2d.js文件并引入)
+
+
+## 下载为Vue3
+
+- 将zip文件解压;
+- 将vue3/meta2d.vue放到 vue3项目 的views文件夹(作为一个独立的页面);
+- 在 vue3项目 中配置meta2d页面路由,如下:
+
+```ts
+  {
+    path: '/meta2d',
+    component: () => import('@/views/Meta2d.vue'),
+  }
+```
+
+- 将data.json文件放到 vue3项目 公共资源目录下public/json/;
+- 将js、image和png文件夹放到 vue3项目 public下;
+- 参考index.html文件,将script标签引入资源的代码复制到 vue3项目 的index.html中(src="js/index.js"除外);
+
+
+(如果js下没有核心包(meta2d.js),请用npm下载依赖包(npm install meta2d.js),拿到依赖包里面的meta2d.js文件并引入)
+
+
+## 下载为React
+
+- 将zip文件解压;
+- 将react文件夹下的文件放到 react项目 的views文件夹(作为一个独立的页面);
+- 配置mata2d页面路由;
+- 将data.json文件放到 react项目 公共资源目录下public/json下;
+- 将js、image和png文件夹放到 react项目 public下;
+- 参考index.html文件,将script标签引入资源的代码复制到 react项目 的index.html中(src="js/index.js"除外);
+
+
+(如果js下没有核心包(meta2d.js),请用npm下载依赖包(npm install meta2d.js),拿到依赖包里面的meta2d.js文件并引入)
+
+
+# 生产环境
+
+用 nginx 静态代理即可,例如:
+
+```
+server {
+    listen       80;
+    server_name  域名.le5le.com;
+
+    #access_log  /var/log/nginx/host.access.log  main;
+
+    root /root/web/静态文件夹名;
+
+    location / {
+        index index.html;
+        rewrite ^/.*/$ / last;
+        rewrite ^([^.]*[^/])$ $1/ permanent;
+    }
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+}
+```

BIN
public/view/使用说明.pdf


+ 5 - 5
src/views/components/Header.vue

@@ -413,7 +413,7 @@ const openZip = async (file: File, isNew: boolean = false) => {
     return;
   }
 
-  if (!user.vipExpired) {
+  if (user.vipExpired) {
     // vipVisible.value = true;
     gotoAccount();
     return;
@@ -573,7 +573,7 @@ const downloadZip = async () => {
     return;
   }
 
-  if (!user.vipExpired) {
+  if (user.vipExpired) {
     gotoAccount();
     return;
   }
@@ -608,7 +608,7 @@ const downloadHtml = async () => {
     return;
   }
 
-  if (!user.vipExpired) {
+  if (user.vipExpired) {
     gotoAccount();
     return;
   }
@@ -662,7 +662,7 @@ async function downloadAsFrame(type: Frame) {
     return;
   }
 
-  if (!user.vipExpired) {
+  if (user.vipExpired) {
     gotoAccount();
     return;
   }
@@ -753,7 +753,7 @@ async function zipFiles(zip: JSZip) {
 }
 
 async function zipFile(zip: JSZip, filePath: string) {
-  const res: Blob = await axios.get(cdn + '/2d' + filePath, {
+  const res: Blob = await axios.get((cdn ? cdn + '/2d' : '') + filePath, {
     responseType: 'blob',
   });
   zip.file(filePath.replace('/view', ''), res, { createFolders: true });

Неке датотеке нису приказане због велике количине промена