accounting-page 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/index.html +13 -0
- package/package.json +26 -0
- package/public/favicon.svg +1 -0
- package/public/icons.svg +24 -0
- package/src/App.vue +20 -0
- package/src/assets/hero.png +0 -0
- package/src/assets/vite.svg +1 -0
- package/src/assets/vue.svg +1 -0
- package/src/components/HelloWorld.vue +95 -0
- package/src/main.ts +18 -0
- package/src/router/index.ts +16 -0
- package/src/style.css +296 -0
- package/src/views/BalanceSheet.vue +82 -0
- package/src/views/VoucherCreate.vue +221 -0
- package/tsconfig.app.json +14 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +26 -0
- package/version.txt +1 -0
- package/vite.config.ts +16 -0
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Vue 3 + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3
|
|
4
|
+
`<script setup>` SFCs, check out
|
|
5
|
+
the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
|
6
|
+
|
|
7
|
+
Learn more about the recommended Project Setup and IDE Support in
|
|
8
|
+
the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
|
9
|
+
|
|
10
|
+
## Run
|
|
11
|
+
|
|
12
|
+
### 环境
|
|
13
|
+
|
|
14
|
+
```shell
|
|
15
|
+
$$env:PATH+=";"+$env:USERPROFILE+"\AppData\Roaming\JetBrains\IntelliJIdea2026.1\node\versions\24.13.0\"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 新的开发
|
|
19
|
+
|
|
20
|
+
```shell
|
|
21
|
+
$$env:INVEST_VERSION = (Get-Content "./version.txt" -Raw).Trim()
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```shell
|
|
25
|
+
echo "已设置版本:$env:INVEST_VERSION"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```shell
|
|
29
|
+
git add .
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```shell
|
|
33
|
+
git commit -m "#1 简易记账"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```shell
|
|
37
|
+
git tag -a v$env:INVEST_VERSION -m "发布版本$env:INVEST_VERSION"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```shell
|
|
41
|
+
git push origin v$env:INVEST_VERSION
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```shell
|
|
45
|
+
git push origin dev_chixh
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 发布
|
|
49
|
+
|
|
50
|
+
```shell
|
|
51
|
+
npm publish
|
|
52
|
+
```
|
package/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>accounting-page</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
<script type="module" src="/src/main.ts"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "accounting-page",
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "vite",
|
|
7
|
+
"build": "vue-tsc -b && vite build",
|
|
8
|
+
"npm-install": "npm install",
|
|
9
|
+
"preview": "vite preview",
|
|
10
|
+
"update-check": "npm install --no-save npm-check && npm-check -u"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"axios": "^1.15.2",
|
|
14
|
+
"vant": "^4.9.24",
|
|
15
|
+
"vue": "^3.5.32",
|
|
16
|
+
"vue-router": "^5.0.6"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/node": "^24.12.2",
|
|
20
|
+
"@vitejs/plugin-vue": "^6.0.6",
|
|
21
|
+
"@vue/tsconfig": "^0.9.1",
|
|
22
|
+
"typescript": "~6.0.2",
|
|
23
|
+
"vite": "^8.0.10",
|
|
24
|
+
"vue-tsc": "^3.2.7"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
|
package/public/icons.svg
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<symbol id="bluesky-icon" viewBox="0 0 16 17">
|
|
3
|
+
<g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
|
|
4
|
+
<defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
|
|
5
|
+
</symbol>
|
|
6
|
+
<symbol id="discord-icon" viewBox="0 0 20 19">
|
|
7
|
+
<path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
|
|
8
|
+
</symbol>
|
|
9
|
+
<symbol id="documentation-icon" viewBox="0 0 21 20">
|
|
10
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
|
|
11
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
|
|
12
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
|
|
13
|
+
</symbol>
|
|
14
|
+
<symbol id="github-icon" viewBox="0 0 19 19">
|
|
15
|
+
<path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
|
|
16
|
+
</symbol>
|
|
17
|
+
<symbol id="social-icon" viewBox="0 0 20 20">
|
|
18
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
|
|
19
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
|
|
20
|
+
</symbol>
|
|
21
|
+
<symbol id="x-icon" viewBox="0 0 19 19">
|
|
22
|
+
<path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
|
|
23
|
+
</symbol>
|
|
24
|
+
</svg>
|
package/src/App.vue
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
|
|
4
|
+
const active = ref("voucher")
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<template>
|
|
8
|
+
<router-view />
|
|
9
|
+
<van-tabbar v-model="active">
|
|
10
|
+
<van-tabbar-item icon="orders" to="/voucher" name="voucher">凭证记账</van-tabbar-item>
|
|
11
|
+
<van-tabbar-item icon="balance" to="/balance-sheet" name="balance-sheet">资产负债表</van-tabbar-item>
|
|
12
|
+
</van-tabbar>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<style>
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
}
|
|
20
|
+
</style>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="77" height="47" fill="none" aria-labelledby="vite-logo-title" viewBox="0 0 77 47"><title id="vite-logo-title">Vite</title><style>.parenthesis{fill:#000}@media (prefers-color-scheme:dark){.parenthesis{fill:#fff}}</style><path fill="#9135ff" d="M40.151 45.71c-.663.844-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.493c-.92 0-1.457-1.04-.92-1.788l7.479-10.471c1.07-1.498 0-3.578-1.842-3.578H15.443c-.92 0-1.456-1.04-.92-1.788l9.696-13.576c.213-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.472c-1.07 1.497 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.087.89 1.83L40.153 45.712z"/><mask id="a" width="48" height="47" x="14" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M40.047 45.71c-.663.843-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.389c-.92 0-1.457-1.04-.92-1.788l7.479-10.472c1.07-1.497 0-3.578-1.842-3.578H15.34c-.92 0-1.456-1.04-.92-1.788l9.696-13.575c.213-.297.556-.474.92-.474H53.93c.92 0 1.456 1.04.92 1.788L47.37 13.03c-1.07 1.498 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.088.89 1.831L40.049 45.712z"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#eee6ff" rx="5.508" ry="14.704" transform="rotate(269.814 20.96 11.29)scale(-1 1)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#eee6ff" rx="10.399" ry="29.851" transform="rotate(89.814 -16.902 -8.275)scale(1 -1)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#8900ff" rx="5.508" ry="30.487" transform="rotate(89.814 -19.197 -7.127)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.928 4.177)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.738 5.52)scale(1 -1)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#eee6ff" rx="14.072" ry="22.078" transform="rotate(93.35 31.245 55.578)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx="14.592" cy="9.743" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(39.51 14.592 9.743)"/></g><g filter="url(#k)"><ellipse cx="61.728" cy="-5.321" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 61.728 -5.32)"/></g><g filter="url(#l)"><ellipse cx="55.618" cy="7.104" fill="#00c2ff" rx="5.971" ry="9.665" transform="rotate(37.892 55.618 7.104)"/></g><g filter="url(#m)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#n)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#o)"><ellipse cx="49.857" cy="30.678" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 49.857 30.678)"/></g><g filter="url(#p)"><ellipse cx="52.623" cy="33.171" fill="#00c2ff" rx="5.971" ry="15.297" transform="rotate(37.892 52.623 33.17)"/></g></g><path d="M6.919 0c-9.198 13.166-9.252 33.575 0 46.789h6.215c-9.25-13.214-9.196-33.623 0-46.789zm62.424 0h-6.215c9.198 13.166 9.252 33.575 0 46.789h6.215c9.25-13.214 9.196-33.623 0-46.789" class="parenthesis"/><defs><filter id="b" width="60.045" height="41.654" x="-5.564" y="16.92" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-40.407" y="-6.762" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-35.435" y="2.801" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-30.84" y="20.8" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-29.307" y="21.949" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="29.961" y="-17.13" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-13.43" y="-22.082" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="34.321" y="-37.644" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="38.847" y="-10.552" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="22.45" y="-1.645" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="32.919" y="11.36" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import viteLogo from '../assets/vite.svg'
|
|
4
|
+
import heroImg from '../assets/hero.png'
|
|
5
|
+
import vueLogo from '../assets/vue.svg'
|
|
6
|
+
|
|
7
|
+
const count = ref(0)
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<section id="center">
|
|
12
|
+
<div class="hero">
|
|
13
|
+
<img :src="heroImg" class="base" width="170" height="179" alt="" />
|
|
14
|
+
<img :src="vueLogo" class="framework" alt="Vue logo" />
|
|
15
|
+
<img :src="viteLogo" class="vite" alt="Vite logo" />
|
|
16
|
+
</div>
|
|
17
|
+
<div>
|
|
18
|
+
<h1>Get started</h1>
|
|
19
|
+
<p>Edit <code>src/App.vue</code> and save to test <code>HMR</code></p>
|
|
20
|
+
</div>
|
|
21
|
+
<button type="button" class="counter" @click="count++">
|
|
22
|
+
Count is {{ count }}
|
|
23
|
+
</button>
|
|
24
|
+
</section>
|
|
25
|
+
|
|
26
|
+
<div class="ticks"></div>
|
|
27
|
+
|
|
28
|
+
<section id="next-steps">
|
|
29
|
+
<div id="docs">
|
|
30
|
+
<svg class="icon" role="presentation" aria-hidden="true">
|
|
31
|
+
<use href="/icons.svg#documentation-icon"></use>
|
|
32
|
+
</svg>
|
|
33
|
+
<h2>Documentation</h2>
|
|
34
|
+
<p>Your questions, answered</p>
|
|
35
|
+
<ul>
|
|
36
|
+
<li>
|
|
37
|
+
<a href="https://vite.dev/" target="_blank">
|
|
38
|
+
<img class="logo" :src="viteLogo" alt="" />
|
|
39
|
+
Explore Vite
|
|
40
|
+
</a>
|
|
41
|
+
</li>
|
|
42
|
+
<li>
|
|
43
|
+
<a href="https://vuejs.org/" target="_blank">
|
|
44
|
+
<img class="button-icon" :src="vueLogo" alt="" />
|
|
45
|
+
Learn more
|
|
46
|
+
</a>
|
|
47
|
+
</li>
|
|
48
|
+
</ul>
|
|
49
|
+
</div>
|
|
50
|
+
<div id="social">
|
|
51
|
+
<svg class="icon" role="presentation" aria-hidden="true">
|
|
52
|
+
<use href="/icons.svg#social-icon"></use>
|
|
53
|
+
</svg>
|
|
54
|
+
<h2>Connect with us</h2>
|
|
55
|
+
<p>Join the Vite community</p>
|
|
56
|
+
<ul>
|
|
57
|
+
<li>
|
|
58
|
+
<a href="https://github.com/vitejs/vite" target="_blank">
|
|
59
|
+
<svg class="button-icon" role="presentation" aria-hidden="true">
|
|
60
|
+
<use href="/icons.svg#github-icon"></use>
|
|
61
|
+
</svg>
|
|
62
|
+
GitHub
|
|
63
|
+
</a>
|
|
64
|
+
</li>
|
|
65
|
+
<li>
|
|
66
|
+
<a href="https://chat.vite.dev/" target="_blank">
|
|
67
|
+
<svg class="button-icon" role="presentation" aria-hidden="true">
|
|
68
|
+
<use href="/icons.svg#discord-icon"></use>
|
|
69
|
+
</svg>
|
|
70
|
+
Discord
|
|
71
|
+
</a>
|
|
72
|
+
</li>
|
|
73
|
+
<li>
|
|
74
|
+
<a href="https://x.com/vite_js" target="_blank">
|
|
75
|
+
<svg class="button-icon" role="presentation" aria-hidden="true">
|
|
76
|
+
<use href="/icons.svg#x-icon"></use>
|
|
77
|
+
</svg>
|
|
78
|
+
X.com
|
|
79
|
+
</a>
|
|
80
|
+
</li>
|
|
81
|
+
<li>
|
|
82
|
+
<a href="https://bsky.app/profile/vite.dev" target="_blank">
|
|
83
|
+
<svg class="button-icon" role="presentation" aria-hidden="true">
|
|
84
|
+
<use href="/icons.svg#bluesky-icon"></use>
|
|
85
|
+
</svg>
|
|
86
|
+
Bluesky
|
|
87
|
+
</a>
|
|
88
|
+
</li>
|
|
89
|
+
</ul>
|
|
90
|
+
</div>
|
|
91
|
+
</section>
|
|
92
|
+
|
|
93
|
+
<div class="ticks"></div>
|
|
94
|
+
<section id="spacer"></section>
|
|
95
|
+
</template>
|
package/src/main.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createApp } from 'vue'
|
|
2
|
+
import './style.css'
|
|
3
|
+
import App from './App.vue'
|
|
4
|
+
|
|
5
|
+
const app = createApp(App)
|
|
6
|
+
|
|
7
|
+
import Vant from 'vant'
|
|
8
|
+
import 'vant/lib/index.css'
|
|
9
|
+
import axios from 'axios'
|
|
10
|
+
|
|
11
|
+
app.use(Vant)
|
|
12
|
+
|
|
13
|
+
// 配置后端接口地址
|
|
14
|
+
axios.defaults.baseURL = '/api'
|
|
15
|
+
app.config.globalProperties.$axios = axios
|
|
16
|
+
import router from './router'
|
|
17
|
+
app.use(router)
|
|
18
|
+
app.mount('#app')
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createRouter, createWebHistory } from 'vue-router'
|
|
2
|
+
import VoucherCreate from '../views/VoucherCreate.vue'
|
|
3
|
+
import BalanceSheet from '../views/BalanceSheet.vue'
|
|
4
|
+
|
|
5
|
+
const routes = [
|
|
6
|
+
{ path: '/', redirect: '/voucher' },
|
|
7
|
+
{ path: '/voucher', component: VoucherCreate },
|
|
8
|
+
{ path: '/balance-sheet', component: BalanceSheet }
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
const router = createRouter({
|
|
12
|
+
history: createWebHistory(),
|
|
13
|
+
routes
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
export default router
|
package/src/style.css
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--text: #6b6375;
|
|
3
|
+
--text-h: #08060d;
|
|
4
|
+
--bg: #fff;
|
|
5
|
+
--border: #e5e4e7;
|
|
6
|
+
--code-bg: #f4f3ec;
|
|
7
|
+
--accent: #aa3bff;
|
|
8
|
+
--accent-bg: rgba(170, 59, 255, 0.1);
|
|
9
|
+
--accent-border: rgba(170, 59, 255, 0.5);
|
|
10
|
+
--social-bg: rgba(244, 243, 236, 0.5);
|
|
11
|
+
--shadow:
|
|
12
|
+
rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
|
|
13
|
+
|
|
14
|
+
--sans: system-ui, 'Segoe UI', Roboto, sans-serif;
|
|
15
|
+
--heading: system-ui, 'Segoe UI', Roboto, sans-serif;
|
|
16
|
+
--mono: ui-monospace, Consolas, monospace;
|
|
17
|
+
|
|
18
|
+
font: 18px/145% var(--sans);
|
|
19
|
+
letter-spacing: 0.18px;
|
|
20
|
+
color-scheme: light dark;
|
|
21
|
+
color: var(--text);
|
|
22
|
+
background: var(--bg);
|
|
23
|
+
font-synthesis: none;
|
|
24
|
+
text-rendering: optimizeLegibility;
|
|
25
|
+
-webkit-font-smoothing: antialiased;
|
|
26
|
+
-moz-osx-font-smoothing: grayscale;
|
|
27
|
+
|
|
28
|
+
@media (max-width: 1024px) {
|
|
29
|
+
font-size: 16px;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (prefers-color-scheme: dark) {
|
|
34
|
+
:root {
|
|
35
|
+
--text: #9ca3af;
|
|
36
|
+
--text-h: #f3f4f6;
|
|
37
|
+
--bg: #16171d;
|
|
38
|
+
--border: #2e303a;
|
|
39
|
+
--code-bg: #1f2028;
|
|
40
|
+
--accent: #c084fc;
|
|
41
|
+
--accent-bg: rgba(192, 132, 252, 0.15);
|
|
42
|
+
--accent-border: rgba(192, 132, 252, 0.5);
|
|
43
|
+
--social-bg: rgba(47, 48, 58, 0.5);
|
|
44
|
+
--shadow:
|
|
45
|
+
rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#social .button-icon {
|
|
49
|
+
filter: invert(1) brightness(2);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
body {
|
|
54
|
+
margin: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
h1,
|
|
58
|
+
h2 {
|
|
59
|
+
font-family: var(--heading);
|
|
60
|
+
font-weight: 500;
|
|
61
|
+
color: var(--text-h);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
h1 {
|
|
65
|
+
font-size: 56px;
|
|
66
|
+
letter-spacing: -1.68px;
|
|
67
|
+
margin: 32px 0;
|
|
68
|
+
@media (max-width: 1024px) {
|
|
69
|
+
font-size: 36px;
|
|
70
|
+
margin: 20px 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
h2 {
|
|
74
|
+
font-size: 24px;
|
|
75
|
+
line-height: 118%;
|
|
76
|
+
letter-spacing: -0.24px;
|
|
77
|
+
margin: 0 0 8px;
|
|
78
|
+
@media (max-width: 1024px) {
|
|
79
|
+
font-size: 20px;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
p {
|
|
83
|
+
margin: 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
code,
|
|
87
|
+
.counter {
|
|
88
|
+
font-family: var(--mono);
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
border-radius: 4px;
|
|
91
|
+
color: var(--text-h);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
code {
|
|
95
|
+
font-size: 15px;
|
|
96
|
+
line-height: 135%;
|
|
97
|
+
padding: 4px 8px;
|
|
98
|
+
background: var(--code-bg);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.counter {
|
|
102
|
+
font-size: 16px;
|
|
103
|
+
padding: 5px 10px;
|
|
104
|
+
border-radius: 5px;
|
|
105
|
+
color: var(--accent);
|
|
106
|
+
background: var(--accent-bg);
|
|
107
|
+
border: 2px solid transparent;
|
|
108
|
+
transition: border-color 0.3s;
|
|
109
|
+
margin-bottom: 24px;
|
|
110
|
+
|
|
111
|
+
&:hover {
|
|
112
|
+
border-color: var(--accent-border);
|
|
113
|
+
}
|
|
114
|
+
&:focus-visible {
|
|
115
|
+
outline: 2px solid var(--accent);
|
|
116
|
+
outline-offset: 2px;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.hero {
|
|
121
|
+
position: relative;
|
|
122
|
+
|
|
123
|
+
.base,
|
|
124
|
+
.framework,
|
|
125
|
+
.vite {
|
|
126
|
+
inset-inline: 0;
|
|
127
|
+
margin: 0 auto;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.base {
|
|
131
|
+
width: 170px;
|
|
132
|
+
position: relative;
|
|
133
|
+
z-index: 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.framework,
|
|
137
|
+
.vite {
|
|
138
|
+
position: absolute;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.framework {
|
|
142
|
+
z-index: 1;
|
|
143
|
+
top: 34px;
|
|
144
|
+
height: 28px;
|
|
145
|
+
transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
|
|
146
|
+
scale(1.4);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.vite {
|
|
150
|
+
z-index: 0;
|
|
151
|
+
top: 107px;
|
|
152
|
+
height: 26px;
|
|
153
|
+
width: auto;
|
|
154
|
+
transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
|
|
155
|
+
scale(0.8);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
#app {
|
|
160
|
+
width: 1126px;
|
|
161
|
+
max-width: 100%;
|
|
162
|
+
margin: 0 auto;
|
|
163
|
+
text-align: center;
|
|
164
|
+
border-inline: 1px solid var(--border);
|
|
165
|
+
min-height: 100svh;
|
|
166
|
+
display: flex;
|
|
167
|
+
flex-direction: column;
|
|
168
|
+
box-sizing: border-box;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#center {
|
|
172
|
+
display: flex;
|
|
173
|
+
flex-direction: column;
|
|
174
|
+
gap: 25px;
|
|
175
|
+
place-content: center;
|
|
176
|
+
place-items: center;
|
|
177
|
+
flex-grow: 1;
|
|
178
|
+
|
|
179
|
+
@media (max-width: 1024px) {
|
|
180
|
+
padding: 32px 20px 24px;
|
|
181
|
+
gap: 18px;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
#next-steps {
|
|
186
|
+
display: flex;
|
|
187
|
+
border-top: 1px solid var(--border);
|
|
188
|
+
text-align: left;
|
|
189
|
+
|
|
190
|
+
& > div {
|
|
191
|
+
flex: 1 1 0;
|
|
192
|
+
padding: 32px;
|
|
193
|
+
@media (max-width: 1024px) {
|
|
194
|
+
padding: 24px 20px;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.icon {
|
|
199
|
+
margin-bottom: 16px;
|
|
200
|
+
width: 22px;
|
|
201
|
+
height: 22px;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@media (max-width: 1024px) {
|
|
205
|
+
flex-direction: column;
|
|
206
|
+
text-align: center;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
#docs {
|
|
211
|
+
border-right: 1px solid var(--border);
|
|
212
|
+
|
|
213
|
+
@media (max-width: 1024px) {
|
|
214
|
+
border-right: none;
|
|
215
|
+
border-bottom: 1px solid var(--border);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
#next-steps ul {
|
|
220
|
+
list-style: none;
|
|
221
|
+
padding: 0;
|
|
222
|
+
display: flex;
|
|
223
|
+
gap: 8px;
|
|
224
|
+
margin: 32px 0 0;
|
|
225
|
+
|
|
226
|
+
.logo {
|
|
227
|
+
height: 18px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
a {
|
|
231
|
+
color: var(--text-h);
|
|
232
|
+
font-size: 16px;
|
|
233
|
+
border-radius: 6px;
|
|
234
|
+
background: var(--social-bg);
|
|
235
|
+
display: flex;
|
|
236
|
+
padding: 6px 12px;
|
|
237
|
+
align-items: center;
|
|
238
|
+
gap: 8px;
|
|
239
|
+
text-decoration: none;
|
|
240
|
+
transition: box-shadow 0.3s;
|
|
241
|
+
|
|
242
|
+
&:hover {
|
|
243
|
+
box-shadow: var(--shadow);
|
|
244
|
+
}
|
|
245
|
+
.button-icon {
|
|
246
|
+
height: 18px;
|
|
247
|
+
width: 18px;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
@media (max-width: 1024px) {
|
|
252
|
+
margin-top: 20px;
|
|
253
|
+
flex-wrap: wrap;
|
|
254
|
+
justify-content: center;
|
|
255
|
+
|
|
256
|
+
li {
|
|
257
|
+
flex: 1 1 calc(50% - 8px);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
a {
|
|
261
|
+
width: 100%;
|
|
262
|
+
justify-content: center;
|
|
263
|
+
box-sizing: border-box;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
#spacer {
|
|
269
|
+
height: 88px;
|
|
270
|
+
border-top: 1px solid var(--border);
|
|
271
|
+
@media (max-width: 1024px) {
|
|
272
|
+
height: 48px;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.ticks {
|
|
277
|
+
position: relative;
|
|
278
|
+
width: 100%;
|
|
279
|
+
|
|
280
|
+
&::before,
|
|
281
|
+
&::after {
|
|
282
|
+
content: '';
|
|
283
|
+
position: absolute;
|
|
284
|
+
top: -4.5px;
|
|
285
|
+
border: 5px solid transparent;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
&::before {
|
|
289
|
+
left: 0;
|
|
290
|
+
border-left-color: var(--border);
|
|
291
|
+
}
|
|
292
|
+
&::after {
|
|
293
|
+
right: 0;
|
|
294
|
+
border-right-color: var(--border);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="page">
|
|
3
|
+
<van-nav-bar title="资产负债表" fixed />
|
|
4
|
+
|
|
5
|
+
<van-cell-group>
|
|
6
|
+
<van-field
|
|
7
|
+
v-model="startDate"
|
|
8
|
+
label="开始日期"
|
|
9
|
+
type="date"
|
|
10
|
+
value-format="YYYY-MM-DD"
|
|
11
|
+
/>
|
|
12
|
+
<van-field
|
|
13
|
+
v-model="endDate"
|
|
14
|
+
label="结束日期"
|
|
15
|
+
type="date"
|
|
16
|
+
value-format="YYYY-MM-DD"
|
|
17
|
+
/>
|
|
18
|
+
</van-cell-group>
|
|
19
|
+
|
|
20
|
+
<van-button
|
|
21
|
+
type="primary"
|
|
22
|
+
block
|
|
23
|
+
@click="loadData"
|
|
24
|
+
style="margin: 15px"
|
|
25
|
+
>
|
|
26
|
+
查询报表
|
|
27
|
+
</van-button>
|
|
28
|
+
|
|
29
|
+
<van-cell-group title="资产">
|
|
30
|
+
<van-cell
|
|
31
|
+
v-for="item in assets"
|
|
32
|
+
:key="item.code"
|
|
33
|
+
:title="item.name"
|
|
34
|
+
:value="item.balance"
|
|
35
|
+
/>
|
|
36
|
+
</van-cell-group>
|
|
37
|
+
|
|
38
|
+
<van-cell-group title="负债">
|
|
39
|
+
<van-cell
|
|
40
|
+
v-for="item in liabilities"
|
|
41
|
+
:key="item.code"
|
|
42
|
+
:title="item.name"
|
|
43
|
+
:value="item.balance"
|
|
44
|
+
/>
|
|
45
|
+
</van-cell-group>
|
|
46
|
+
|
|
47
|
+
<van-cell-group title="权益">
|
|
48
|
+
<van-cell
|
|
49
|
+
v-for="item in equity"
|
|
50
|
+
:key="item.code"
|
|
51
|
+
:title="item.name"
|
|
52
|
+
:value="item.balance"
|
|
53
|
+
/>
|
|
54
|
+
</van-cell-group>
|
|
55
|
+
</div>
|
|
56
|
+
</template>
|
|
57
|
+
|
|
58
|
+
<script lang="ts" setup>
|
|
59
|
+
import { ref } from 'vue'
|
|
60
|
+
import axios from 'axios'
|
|
61
|
+
|
|
62
|
+
const startDate = ref('2025-01-01')
|
|
63
|
+
const endDate = ref('2025-12-31')
|
|
64
|
+
|
|
65
|
+
const assets = ref<Array<{ code: string; name: string; balance: number }>>([])
|
|
66
|
+
const liabilities = ref<Array<{ code: string; name: string; balance: number }>>([])
|
|
67
|
+
const equity = ref<Array<{ code: string; name: string; balance: number }>>([])
|
|
68
|
+
|
|
69
|
+
const loadData = () => {
|
|
70
|
+
axios.get('/balance-sheet', {
|
|
71
|
+
params: { startDate: startDate.value, endDate: endDate.value }
|
|
72
|
+
}).then(res => {
|
|
73
|
+
assets.value = res.data.assets
|
|
74
|
+
liabilities.value = res.data.liabilities
|
|
75
|
+
equity.value = res.data.equity
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
</script>
|
|
79
|
+
|
|
80
|
+
<style scoped>
|
|
81
|
+
.page { padding: 46px 0 0; }
|
|
82
|
+
</style>
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="page">
|
|
3
|
+
<van-nav-bar title="凭证记账" fixed />
|
|
4
|
+
|
|
5
|
+
<van-form class="form" @submit="submit">
|
|
6
|
+
<van-field
|
|
7
|
+
v-model="voucher.voucherNo"
|
|
8
|
+
label="凭证号"
|
|
9
|
+
placeholder="自动生成"
|
|
10
|
+
readonly
|
|
11
|
+
/>
|
|
12
|
+
<van-field
|
|
13
|
+
v-model="voucher.voucherDate"
|
|
14
|
+
label="日期"
|
|
15
|
+
type="date"
|
|
16
|
+
value-format="YYYY-MM-DD"
|
|
17
|
+
/>
|
|
18
|
+
<van-field
|
|
19
|
+
v-model="voucher.description"
|
|
20
|
+
label="摘要"
|
|
21
|
+
placeholder="输入备注"
|
|
22
|
+
/>
|
|
23
|
+
|
|
24
|
+
<div class="title">凭证明细(可添加多笔)</div>
|
|
25
|
+
|
|
26
|
+
<div
|
|
27
|
+
v-for="(entry, index) in entries"
|
|
28
|
+
:key="index"
|
|
29
|
+
class="entry-group"
|
|
30
|
+
>
|
|
31
|
+
<van-cell-group :border="false">
|
|
32
|
+
<van-field
|
|
33
|
+
:model-value="entry.accountName"
|
|
34
|
+
label="科目"
|
|
35
|
+
placeholder="点击选择科目"
|
|
36
|
+
is-link
|
|
37
|
+
@click="openAccountPicker(index)"
|
|
38
|
+
/>
|
|
39
|
+
<van-field
|
|
40
|
+
v-model="entry.debit"
|
|
41
|
+
label="借方金额"
|
|
42
|
+
type="digit"
|
|
43
|
+
@change="calcTotal"
|
|
44
|
+
/>
|
|
45
|
+
<van-field
|
|
46
|
+
v-model="entry.credit"
|
|
47
|
+
label="贷方金额"
|
|
48
|
+
type="digit"
|
|
49
|
+
@change="calcTotal"
|
|
50
|
+
/>
|
|
51
|
+
</van-cell-group>
|
|
52
|
+
|
|
53
|
+
<div style="text-align: right; padding: 0 10px">
|
|
54
|
+
<van-button
|
|
55
|
+
size="small"
|
|
56
|
+
type="danger"
|
|
57
|
+
plain
|
|
58
|
+
@click="removeEntry(index)"
|
|
59
|
+
>
|
|
60
|
+
删除此行
|
|
61
|
+
</van-button>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<van-button
|
|
66
|
+
type="primary"
|
|
67
|
+
plain
|
|
68
|
+
block
|
|
69
|
+
@click="addEntry"
|
|
70
|
+
style="margin: 10px 0"
|
|
71
|
+
>
|
|
72
|
+
+ 添加一笔分录
|
|
73
|
+
</van-button>
|
|
74
|
+
|
|
75
|
+
<van-cell-group>
|
|
76
|
+
<van-cell title="借方合计" :value="totalDebit" />
|
|
77
|
+
<van-cell title="贷方合计" :value="totalCredit" />
|
|
78
|
+
</van-cell-group>
|
|
79
|
+
|
|
80
|
+
<van-button
|
|
81
|
+
type="primary"
|
|
82
|
+
block
|
|
83
|
+
native-type="submit"
|
|
84
|
+
style="margin-top: 20px"
|
|
85
|
+
>
|
|
86
|
+
保存凭证(借贷必须相等)
|
|
87
|
+
</van-button>
|
|
88
|
+
</van-form>
|
|
89
|
+
|
|
90
|
+
<van-popup v-model:show="showAccountPicker" position="bottom" :style="{ height: '40%' }">
|
|
91
|
+
<van-picker
|
|
92
|
+
:columns="accountList"
|
|
93
|
+
@confirm="onSelectAccount"
|
|
94
|
+
title="选择科目"
|
|
95
|
+
/>
|
|
96
|
+
</van-popup>
|
|
97
|
+
</div>
|
|
98
|
+
</template>
|
|
99
|
+
|
|
100
|
+
<script lang="ts" setup>
|
|
101
|
+
import { ref, reactive, onMounted } from 'vue'
|
|
102
|
+
import { showToast } from 'vant'
|
|
103
|
+
import axios from 'axios'
|
|
104
|
+
|
|
105
|
+
const showAccountPicker = ref(false)
|
|
106
|
+
const accountList = ref([])
|
|
107
|
+
const currentEntryIndex = ref(0)
|
|
108
|
+
|
|
109
|
+
const voucher = reactive<Voucher>({
|
|
110
|
+
voucherNo: 'PZ' + new Date().getTime(),
|
|
111
|
+
voucherDate: new Date().toISOString().slice(0, 10),
|
|
112
|
+
description: '',
|
|
113
|
+
status: '草稿',
|
|
114
|
+
ifrsBasis: 'IFRS',
|
|
115
|
+
entries: []
|
|
116
|
+
})
|
|
117
|
+
interface Voucher {
|
|
118
|
+
voucherNo: string
|
|
119
|
+
voucherDate: string
|
|
120
|
+
description: string
|
|
121
|
+
status: string
|
|
122
|
+
ifrsBasis: string
|
|
123
|
+
entries: any[]
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
const entries = ref([
|
|
128
|
+
{ accountName: '', accountId: null, debit: 0, credit: 0, remark: '' }
|
|
129
|
+
])
|
|
130
|
+
|
|
131
|
+
const totalDebit = ref(0)
|
|
132
|
+
const totalCredit = ref(0)
|
|
133
|
+
|
|
134
|
+
onMounted(() => {
|
|
135
|
+
axios.get('/account/accounts').then(res => {
|
|
136
|
+
accountList.value = res.data.map((item: { code: string; name: string; id: number }) => ({
|
|
137
|
+
text: `${item.code} ${item.name}`,
|
|
138
|
+
value: item.id
|
|
139
|
+
}))
|
|
140
|
+
})
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
const openAccountPicker = (index: number) => {
|
|
144
|
+
currentEntryIndex.value = index
|
|
145
|
+
showAccountPicker.value = true
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const onSelectAccount = ({ selectedOptions }: { selectedOptions: any[] }) => {
|
|
149
|
+
const entry = entries.value[currentEntryIndex.value]
|
|
150
|
+
entry.accountName = selectedOptions[0].text
|
|
151
|
+
entry.accountId = selectedOptions[0].value
|
|
152
|
+
showAccountPicker.value = false
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const addEntry = () => {
|
|
156
|
+
entries.value.push({
|
|
157
|
+
accountName: '', accountId: null, debit: 0, credit: 0, remark: ''
|
|
158
|
+
})
|
|
159
|
+
}
|
|
160
|
+
const removeEntry = (index: number) => {
|
|
161
|
+
if (entries.value.length === 1) {
|
|
162
|
+
showToast('至少保留一笔分录')
|
|
163
|
+
return
|
|
164
|
+
}
|
|
165
|
+
entries.value.splice(index, 1)
|
|
166
|
+
calcTotal()
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const calcTotal = () => {
|
|
170
|
+
let debit = 0
|
|
171
|
+
let credit = 0
|
|
172
|
+
entries.value.forEach(e => {
|
|
173
|
+
debit += Number(e.debit || 0)
|
|
174
|
+
credit += Number(e.credit || 0)
|
|
175
|
+
})
|
|
176
|
+
totalDebit.value = debit
|
|
177
|
+
totalCredit.value = credit
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const submit = () => {
|
|
181
|
+
calcTotal()
|
|
182
|
+
if (totalDebit.value !== totalCredit.value) {
|
|
183
|
+
showToast('❌ 借贷必须相等!')
|
|
184
|
+
return
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
voucher.entries = entries.value.map(e => ({
|
|
188
|
+
account: { id: e.accountId },
|
|
189
|
+
debit: e.debit,
|
|
190
|
+
credit: e.credit,
|
|
191
|
+
description: voucher.description
|
|
192
|
+
}))
|
|
193
|
+
|
|
194
|
+
axios.post('/voucher/create', voucher).then(() => {
|
|
195
|
+
showToast('✅ 凭证保存成功')
|
|
196
|
+
}).catch(err => {
|
|
197
|
+
showToast('❌ 保存失败')
|
|
198
|
+
console.error(err)
|
|
199
|
+
})
|
|
200
|
+
}
|
|
201
|
+
</script>
|
|
202
|
+
|
|
203
|
+
<style scoped>
|
|
204
|
+
.page {
|
|
205
|
+
padding: 46px 10px 80px; /* 修复被底部导航遮挡 */
|
|
206
|
+
}
|
|
207
|
+
.title {
|
|
208
|
+
padding: 10px;
|
|
209
|
+
font-weight: bold;
|
|
210
|
+
color: #323233;
|
|
211
|
+
}
|
|
212
|
+
.form {
|
|
213
|
+
margin-top: 10px;
|
|
214
|
+
}
|
|
215
|
+
.entry-group {
|
|
216
|
+
background: #f7f8fa;
|
|
217
|
+
border-radius: 8px;
|
|
218
|
+
padding: 10px;
|
|
219
|
+
margin-bottom: 10px;
|
|
220
|
+
}
|
|
221
|
+
</style>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
5
|
+
"types": ["vite/client"],
|
|
6
|
+
|
|
7
|
+
/* Linting */
|
|
8
|
+
"noUnusedLocals": true,
|
|
9
|
+
"noUnusedParameters": true,
|
|
10
|
+
"erasableSyntaxOnly": true,
|
|
11
|
+
"noFallthroughCasesInSwitch": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
|
|
14
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
+
"target": "es2023",
|
|
5
|
+
"lib": ["ES2023"],
|
|
6
|
+
"module": "esnext",
|
|
7
|
+
"types": ["node"],
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
|
|
10
|
+
/* Bundler mode */
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"allowImportingTsExtensions": true,
|
|
13
|
+
"verbatimModuleSyntax": true,
|
|
14
|
+
"moduleDetection": "force",
|
|
15
|
+
"noEmit": true,
|
|
16
|
+
|
|
17
|
+
/* Linting */
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"erasableSyntaxOnly": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true
|
|
22
|
+
},
|
|
23
|
+
"include": [
|
|
24
|
+
"vite.config.ts"
|
|
25
|
+
]
|
|
26
|
+
}
|
package/version.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.9
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineConfig } from 'vite'
|
|
2
|
+
import vue from '@vitejs/plugin-vue'
|
|
3
|
+
|
|
4
|
+
// https://vite.dev/config/
|
|
5
|
+
export default defineConfig({
|
|
6
|
+
plugins: [vue()],
|
|
7
|
+
server: {
|
|
8
|
+
host: "0.0.0.0",
|
|
9
|
+
port: 5011,
|
|
10
|
+
proxy: {
|
|
11
|
+
"/api": {
|
|
12
|
+
target: "http://[::1]:5001",
|
|
13
|
+
},
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
})
|