chore: 初始化项目基础结构和资源文件

- 添加项目图标文件(app-icon.png、各平台图标)
- 配置开发环境文件(.env、.nvmrc、.npmrc)
- 添加静态资源文件(背景图片、字体、音频)
- 初始化Tauri后端结构(build.rs、main.rs、模块文件)
- 配置前端项目结构(TypeScript、Vue组件、样式)
- 添加Node.js API服务基础结构
- 配置构建和开发工具(vite、prettier、gitignore)
This commit is contained in:
2026-03-13 10:03:05 +08:00
commit 78af453fe1
357 changed files with 70605 additions and 0 deletions

154
index.html Normal file
View File

@ -0,0 +1,154 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="transparent" />
<link rel="icon" href="icons/64x64.png" type="image/png" />
<title>智评会议</title>
<style>
html,
body {
margin: 0;
padding: 0;
height: 100vh;
width: 100vw;
overflow: hidden;
}
body > .html-body-app {
margin: 0;
padding: 0;
height: 100vh;
width: 100vw;
overflow: hidden;
border-radius: 8px;
}
body > .html-body-app > .first-loading-wrp > .text-box > .text {
font-size: 28px;
color: #333333;
}
body > .html-body-app > .first-loading-wrp {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 90vh;
min-height: 100vh;
background: transparent;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp {
display: flex;
align-items: center;
justify-content: center;
padding: 98px;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot {
position: relative;
box-sizing: border-box;
display: inline-block;
width: 96px;
height: 96px;
overflow: hidden;
font-size: 96px;
transform: rotate(45deg);
animation: ant-rotate 1s infinite;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot > i {
position: absolute;
display: block;
width: 48px;
height: 48px;
background: #1890ff;
border-radius: 100%;
opacity: 0.3;
transform: scale(0.75);
transform-origin: 50% 50%;
animation: ant-spin-move 1s infinite linear alternate;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot > i:nth-child(1) {
top: 0;
left: 0;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot > i:nth-child(2) {
top: 0;
right: 0;
animation-delay: 0.4s;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot > i:nth-child(3) {
right: 0;
bottom: 0;
animation-delay: 0.8s;
}
body > .html-body-app > .first-loading-wrp > .loading-wrp > .dot > i:nth-child(4) {
bottom: 0;
left: 0;
animation-delay: 1.2s;
}
body > .html-body-app.dark > .first-loading-wrp {
background: #151a30;
}
body > .html-body-app.dark > .first-loading-wrp > .text-box > .text {
font-size: 28px;
color: #e2e2e2;
}
@keyframes ant-rotate {
100% {
transform: rotate(405deg);
}
}
@keyframes ant-spin-move {
100% {
opacity: 1;
}
}
</style>
</head>
<script type="module">
import { type } from '@tauri-apps/plugin-os';
import { isTauri } from '@tauri-apps/api/core';
import { getCurrentWindow } from '@tauri-apps/api/window';
if (isTauri()) {
let currentWindow = getCurrentWindow();
if (currentWindow.label === 'main') {
document.body.querySelector('body > #app').style.background = '#ffffff';
}
document.body.style.borderRadius = '8px';
document.body.style.overflow = 'hidden';
if (currentWindow.label === 'drawing-board') {
currentWindow.show();
}
}
</script>
<body class="devtool" style="margin: 0; width: 100vw !important">
<div id="app" class="html-body-app">
<!-- 加载中 -->
<div class="first-loading-wrp" id="index-html-loading-wrp" data-tauri-drag-region>
<div class="loading-wrp">
<span class="dot dot-spin">
<i></i>
<i></i>
<i></i>
<i></i>
</span>
</div>
<div class="text-box">
<h2 class="text">欢迎使用 —— 智评会议</h2>
</div>
</div>
</div>
<script type="module" src="./src/main.ts"></script>
</body>
</html>