first commit
This commit is contained in:
commit
3360394872
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
3
.vscode/extensions.json
vendored
Normal file
3
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
||||
}
|
18
README.md
Normal file
18
README.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Vue 3 + TypeScript + Vite
|
||||
|
||||
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
|
||||
|
||||
## Type Support For `.vue` Imports in TS
|
||||
|
||||
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
|
||||
|
||||
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
|
||||
|
||||
1. Disable the built-in TypeScript Extension
|
||||
1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
|
||||
2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
|
||||
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
|
13
index.html
Normal file
13
index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/logo.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>营养与健康数据管理处理平台</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
24
package.json
Normal file
24
package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "yingyang-server-fe",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --host",
|
||||
"build": "vue-tsc && vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@handsontable/vue3": "^14.0.0",
|
||||
"view-ui-plus": "^1.3.15",
|
||||
"vue": "^3.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.5",
|
||||
"@vitejs/plugin-vue": "^4.1.0",
|
||||
"sass": "^1.69.5",
|
||||
"typescript": "^5.0.2",
|
||||
"vite": "^4.3.2",
|
||||
"vue-tsc": "^1.4.2"
|
||||
}
|
||||
}
|
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
public/logo.png
Normal file
BIN
public/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
101
src/App.vue
Normal file
101
src/App.vue
Normal file
@ -0,0 +1,101 @@
|
||||
<script setup lang="ts">
|
||||
import {onMounted, ref} from "vue";
|
||||
|
||||
import Login from "./components/login/index.vue";
|
||||
import DataFields from "./components/data-fields/index.vue";
|
||||
import {MenuItem, Menu, Icon} from "view-ui-plus";
|
||||
import Layout from "./components/layout/index.vue"
|
||||
|
||||
const page_data = ref({
|
||||
showLogin: false,
|
||||
})
|
||||
// 登录相关
|
||||
const LOGIN_SESSION_KEY = 'x-yy-js-data-user';
|
||||
const onLoginSuccess = () => {
|
||||
page_data.value.showLogin = false
|
||||
localStorage.setItem(LOGIN_SESSION_KEY, Date.now().toString(16));
|
||||
}
|
||||
onMounted(() => {
|
||||
const loginSession = localStorage.getItem(LOGIN_SESSION_KEY);
|
||||
console.log('loginSession', loginSession)
|
||||
if (!loginSession || (Date.now() - parseInt(loginSession, 16) > 3600 * 24 * 1000)) {
|
||||
page_data.value.showLogin = true
|
||||
}
|
||||
})
|
||||
const MENU_LIST = [
|
||||
{title:'药品管理',name:'products',icon:'ios-cube'},
|
||||
{title:'数据项管理',name:'fields',icon:'ios-apps'},
|
||||
{title:'数据管理',name:'product_value',icon:'ios-paper'},
|
||||
{title:'计算结果',name:'result',icon:'ios-calculator'},
|
||||
]
|
||||
const activeMenu = ref(MENU_LIST[0].name)
|
||||
const onMenuSelect = (name:string)=>activeMenu.value = name
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<Login v-if="page_data.showLogin" @login-success="onLoginSuccess"/>
|
||||
<!-- <Layout />-->
|
||||
<div class="app-header">
|
||||
<div class="app-logo">
|
||||
<img class="logo" src="./assets/images/logo.png" alt="" />
|
||||
</div>
|
||||
<div class="app-menu">
|
||||
<Menu mode="horizontal" :active-name="activeMenu" @on-select="onMenuSelect">
|
||||
<MenuItem v-for="m in MENU_LIST" :key="m.name" :name="m.name">
|
||||
<Icon :type="m.icon" size="20" />
|
||||
<span>{{ m.title }}</span>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-content">
|
||||
<DataFields v-if="activeMenu == 'product_value'"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.app-header{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: solid 1px #dcdee2;
|
||||
box-shadow: 0 0 5px rgba(0,0,0,0.2);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
padding: 0 50px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.app-menu{
|
||||
.ivu-menu{
|
||||
&:after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.app-content{
|
||||
padding: 20px 50px;
|
||||
}
|
||||
.app-logo{
|
||||
padding: 10px;
|
||||
margin-right: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
body {
|
||||
background: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 34px;
|
||||
will-change: filter;
|
||||
transition: filter 300ms;
|
||||
}
|
||||
|
||||
</style>
|
BIN
src/assets/images/logo-1.png
Normal file
BIN
src/assets/images/logo-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/images/logo.png
Normal file
BIN
src/assets/images/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
1
src/assets/vue.svg
Normal file
1
src/assets/vue.svg
Normal file
@ -0,0 +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>
|
After Width: | Height: | Size: 496 B |
159
src/components/data-fields/index.vue
Normal file
159
src/components/data-fields/index.vue
Normal file
@ -0,0 +1,159 @@
|
||||
<script setup lang="ts">
|
||||
import {ref} from "vue";
|
||||
import {fields, getProductValues} from '../../service/data'
|
||||
import {Button, Input} from "view-ui-plus";
|
||||
|
||||
// type ProductValue = {
|
||||
// name: string;
|
||||
// values: number[];
|
||||
// }
|
||||
//
|
||||
// const config = {
|
||||
// fields: [
|
||||
// '能量密度',
|
||||
// '蛋白Pro',
|
||||
// 'Glu',
|
||||
// 'Fat',
|
||||
// '纤维素',
|
||||
// 'Na',
|
||||
// 'K',
|
||||
// 'Ca',
|
||||
// 'P',
|
||||
// 'Mg',
|
||||
// ],
|
||||
// product: [
|
||||
// '爱伦多',
|
||||
// '维沃',
|
||||
// '佳维体',
|
||||
// '伊力佳',
|
||||
// ]
|
||||
// }
|
||||
//
|
||||
//
|
||||
// const values: ProductValue[] = [];
|
||||
// config.product.forEach(product => {
|
||||
// values.push({
|
||||
// name: product,
|
||||
// values: Array(config.fields.length).fill(0)
|
||||
// });
|
||||
// })
|
||||
const values = getProductValues()
|
||||
const productValues = ref(values)
|
||||
const onInputPaste = (e: ClipboardEvent, pIndex: number, fIndex: number) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
const values = JSON.parse(JSON.stringify(productValues.value))
|
||||
const rows = e.clipboardData!.getData('text/plain').trim().split(/\n/);
|
||||
rows.forEach((line, rIndex) => {
|
||||
const cols = line.trim().split(/\t/);
|
||||
const rowIndex = pIndex + rIndex;
|
||||
cols.forEach((value, cIndex) => {
|
||||
const colIndex = fIndex + cIndex;
|
||||
console.log(value, rowIndex, colIndex)
|
||||
if (rowIndex < values.length && colIndex < values[rowIndex].values.length) {
|
||||
values[rowIndex].values[colIndex].value = Number(value)
|
||||
}
|
||||
})
|
||||
})
|
||||
console.log(JSON.stringify(values))
|
||||
productValues.value = values;
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="data-container">
|
||||
<div class="data-fields">
|
||||
<div class="row">
|
||||
<div class="item item-field item-header item-header-empty"></div>
|
||||
<div class="item item-field item-header" v-for="(field,f_index) in fields" :key="f_index">
|
||||
{{ field.name }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" v-for="(p,p_index) in productValues" :key="p_index">
|
||||
<div class="item item-product item-header">{{ p.product.name }}</div>
|
||||
<div class="item item-field " v-for="(v,f_index) in p.values" :key="f_index">
|
||||
<input type="text" v-model="v.value" @paste="onInputPaste($event,p_index,f_index)"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<Button type="primary" @click="console.log(values.map(s=>s.values))">保存数据</Button>
|
||||
</div>
|
||||
<div class="calculator">
|
||||
<Input type="textarea" :rows="4" placeholder="请输入计算公式"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.data-container {
|
||||
overflow: auto;
|
||||
--width: 130px;
|
||||
--height: 40px;
|
||||
--border: solid 1px #eee;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.data-fields {
|
||||
height: auto;
|
||||
border-top: var(--border);
|
||||
}
|
||||
|
||||
.controls {
|
||||
padding: 20px 20px 20px var(--width);
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
border-left: var(--border);
|
||||
|
||||
//border-right: solid 1px #eee;
|
||||
//border-bottom: solid 1px #eee;
|
||||
|
||||
&:hover {
|
||||
.item:not(.item-header) {
|
||||
background: #fafafa;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-header {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.item {
|
||||
width: var(--width);
|
||||
height: var(--height);
|
||||
text-align: center;
|
||||
line-height: var(--height);
|
||||
border-bottom: var(--border);
|
||||
border-right: var(--border);
|
||||
|
||||
&:focus {
|
||||
border-color: rgba(100, 148, 234, 1);
|
||||
}
|
||||
|
||||
input {
|
||||
outline: none;
|
||||
border: none;
|
||||
width: var(--width);
|
||||
height: var(--height);
|
||||
text-align: center;
|
||||
background: none;
|
||||
box-sizing: border-box;
|
||||
//transform: translateX(-1px) translateY(-1px);
|
||||
|
||||
&:focus {
|
||||
box-shadow: 0 0 5px rgba(87, 116, 189, 0.5) inset;
|
||||
//box-shadow: 0 0 1px rgb(0, 0, 0) inset;
|
||||
//outline: solid 1px rgb(87, 116, 189);
|
||||
//border-color: #ccc;
|
||||
//background: rgba(87,87,189,0.15);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
91
src/components/layout/index.vue
Normal file
91
src/components/layout/index.vue
Normal file
@ -0,0 +1,91 @@
|
||||
<script setup lang="ts">
|
||||
import DataFields from "@/components/data-fields/index.vue";
|
||||
import {Breadcrumb, BreadcrumbItem, Card, Content, Header, Icon, Layout, Menu, MenuItem} from "view-ui-plus";
|
||||
import {ref} from "vue";
|
||||
|
||||
const MENU_LIST = [
|
||||
{title:'药品管理',name:'products',icon:'ios-cube'},
|
||||
{title:'数据项管理',name:'fields',icon:'ios-apps'},
|
||||
{title:'数据管理',name:'product_value',icon:'ios-paper'},
|
||||
{title:'计算结果',name:'result',icon:'ios-calculator'},
|
||||
]
|
||||
const activeMenu = ref(MENU_LIST[0].name)
|
||||
const onMenuSelect = (name:string)=>activeMenu.value = name
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Layout class="layout">
|
||||
<Header>
|
||||
<div class="layout-logo">
|
||||
<img class="logo" src="../../assets/images/logo.png" alt="" />
|
||||
</div>
|
||||
<div class="layout-nav">
|
||||
<Menu mode="horizontal" :active-name="activeMenu" @on-select="onMenuSelect">
|
||||
<MenuItem v-for="m in MENU_LIST" :key="m.name" :name="m.name">
|
||||
<Icon :type="m.icon" size="20" />
|
||||
<span>{{ m.title }}</span>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</div>
|
||||
</Header>
|
||||
<Content :style="{padding: '0 50px'}">
|
||||
<Breadcrumb :style="{margin: '20px 0'}">
|
||||
<BreadcrumbItem>Home</BreadcrumbItem>
|
||||
<BreadcrumbItem>Components</BreadcrumbItem>
|
||||
<BreadcrumbItem>Layout</BreadcrumbItem>
|
||||
</Breadcrumb>
|
||||
<Card>
|
||||
<div style="min-height: 200px;">
|
||||
<DataFields v-if="activeMenu == 'product_value'"/>
|
||||
</div>
|
||||
</Card>
|
||||
</Content>
|
||||
<Footer class="layout-footer-center">2011-2016 © View Design</Footer>
|
||||
</Layout>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.layout{
|
||||
border: 1px solid #d7dde4;
|
||||
background: #f5f7f9;
|
||||
position: relative;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
.ivu-layout-header {
|
||||
background: #fff;
|
||||
}
|
||||
.ivu-menu{
|
||||
&:after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.layout-logo{
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
border-radius: 3px;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 15px;
|
||||
left: 20px;
|
||||
}
|
||||
.layout-nav{
|
||||
width: 420px;
|
||||
margin: 0 20px 0 auto;
|
||||
}
|
||||
.layout-footer-center{
|
||||
text-align: center;
|
||||
}
|
||||
.layout-topMiddleBottom .ivu-menu-light{
|
||||
background:none;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 34px;
|
||||
will-change: filter;
|
||||
transition: filter 300ms;
|
||||
}
|
||||
|
||||
</style>
|
83
src/components/login/index.vue
Normal file
83
src/components/login/index.vue
Normal file
@ -0,0 +1,83 @@
|
||||
<script lang="ts" setup>
|
||||
import {Login as LoginForm, UserName, Password, Submit, Message} from 'view-ui-plus';
|
||||
import {onMounted} from "vue";
|
||||
|
||||
type LoginModel = {
|
||||
username: string;
|
||||
password: string;
|
||||
}
|
||||
//const emits = defineEmits(['loginSuccess'])
|
||||
const emits = defineEmits<{
|
||||
(e: 'loginSuccess'): void
|
||||
}>()
|
||||
const handleSubmit = (valid: true, params: LoginModel) => {
|
||||
if (valid) {
|
||||
if (params.username == 'admin' && params.password == 'admin') {
|
||||
emits('loginSuccess')
|
||||
} else {
|
||||
Message.error('登录信息不正确')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="mask"></div>
|
||||
<div class="login-wrapper">
|
||||
<div class="login-container">
|
||||
<div class="logo">
|
||||
<img src="../../assets/images/logo.png" alt="">
|
||||
</div>
|
||||
<p class="desc">营养与健康数据管理处理平台</p>
|
||||
<LoginForm @on-submit="handleSubmit">
|
||||
<UserName name="username" enterkeyhint/>
|
||||
<Password name="password" enterkeyhint/>
|
||||
<div class="submit">
|
||||
<Submit/>
|
||||
</div>
|
||||
</LoginForm>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped lang="scss">
|
||||
.login-wrapper {
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
z-index: 101;
|
||||
}
|
||||
|
||||
.logo {
|
||||
img {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.desc {
|
||||
margin-bottom: 30px;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.submit {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.login-container {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.mask {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: url("https://bing.biturl.top/?resolution=1920&format=image&index=0&mkt=zh-CN") #fff;
|
||||
z-index: 100;
|
||||
filter: blur(5px);
|
||||
}
|
||||
</style>
|
9
src/main.ts
Normal file
9
src/main.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { createApp } from 'vue'
|
||||
// import ViewUIPlus from 'view-ui-plus'
|
||||
import 'view-ui-plus/dist/styles/viewuiplus.css'
|
||||
import './style.css'
|
||||
import App from './App.vue'
|
||||
|
||||
createApp(App)
|
||||
// .use(ViewUIPlus)
|
||||
.mount('#app')
|
184
src/service/data.ts
Normal file
184
src/service/data.ts
Normal file
@ -0,0 +1,184 @@
|
||||
export type BaseModel = {
|
||||
id: number;
|
||||
name: string;
|
||||
alias?: string;
|
||||
}
|
||||
export type ProductFieldValue = {
|
||||
id: number;
|
||||
alias?: string;
|
||||
product_id: number;
|
||||
field_id: number;
|
||||
value: number;
|
||||
}
|
||||
export type ProductValue = {
|
||||
product: BaseModel;
|
||||
values: ProductFieldValue[]
|
||||
}
|
||||
export const fields: BaseModel[] = [
|
||||
{id: 1, name: '能量密度', alias: 'power'},
|
||||
{id: 2, name: '蛋白Pro', alias: 'protein'},
|
||||
{id: 3, name: 'Glu', alias: 'glu'},
|
||||
{id: 4, name: 'Fat', alias: 'fat'},
|
||||
{id: 5, name: '纤维素', alias: 'cellulose'},
|
||||
{id: 6, name: 'Na', alias: 'na'},
|
||||
{id: 7, name: 'K', alias: 'k'},
|
||||
{id: 8, name: 'Ca', alias: 'ca'},
|
||||
{id: 9, name: 'P', alias: 'p'},
|
||||
{id: 10, name: 'Mg', alias: 'mg'},
|
||||
]
|
||||
export const products: BaseModel[] = [
|
||||
{id: 1, name: '爱伦多', alias: 'ailunduo'},
|
||||
{id: 2, name: '维沃', alias: 'weiwo'},
|
||||
{id: 3, name: '佳维体', alias: 'jiaweiti'},
|
||||
{id: 4, name: '伊力佳', alias: 'yilijia'},
|
||||
]
|
||||
|
||||
export const product_values: ProductFieldValue[] = [
|
||||
{
|
||||
"id": 1,
|
||||
"product_id": 1,
|
||||
"field_id": 1,
|
||||
"value": 0,
|
||||
"alias": "ailunduo_power"
|
||||
}, {"id": 2, "product_id": 1, "field_id": 2, "value": 0, "alias": "ailunduo_protein"}, {
|
||||
"id": 3,
|
||||
"product_id": 1,
|
||||
"field_id": 3,
|
||||
"value": 0,
|
||||
"alias": "ailunduo_glu"
|
||||
}, {"id": 4, "product_id": 1, "field_id": 4, "value": 0, "alias": "ailunduo_fat"}, {
|
||||
"id": 5,
|
||||
"product_id": 1,
|
||||
"field_id": 5,
|
||||
"value": 0,
|
||||
"alias": "ailunduo_cellulose"
|
||||
}, {"id": 6, "product_id": 1, "field_id": 6, "value": 0, "alias": "ailunduo_na"}, {
|
||||
"id": 7,
|
||||
"product_id": 1,
|
||||
"field_id": 7,
|
||||
"value": 0,
|
||||
"alias": "ailunduo_k"
|
||||
}, {"id": 8, "product_id": 1, "field_id": 8, "value": 0, "alias": "ailunduo_ca"}, {
|
||||
"id": 9,
|
||||
"product_id": 1,
|
||||
"field_id": 9,
|
||||
"value": 0,
|
||||
"alias": "ailunduo_p"
|
||||
}, {"id": 10, "product_id": 1, "field_id": 10, "value": 0, "alias": "ailunduo_mg"}, {
|
||||
"id": 11,
|
||||
"product_id": 2,
|
||||
"field_id": 1,
|
||||
"value": 0,
|
||||
"alias": "weiwo_power"
|
||||
}, {"id": 12, "product_id": 2, "field_id": 2, "value": 0, "alias": "weiwo_protein"}, {
|
||||
"id": 13,
|
||||
"product_id": 2,
|
||||
"field_id": 3,
|
||||
"value": 0,
|
||||
"alias": "weiwo_glu"
|
||||
}, {"id": 14, "product_id": 2, "field_id": 4, "value": 0, "alias": "weiwo_fat"}, {
|
||||
"id": 15,
|
||||
"product_id": 2,
|
||||
"field_id": 5,
|
||||
"value": 0,
|
||||
"alias": "weiwo_cellulose"
|
||||
}, {"id": 16, "product_id": 2, "field_id": 6, "value": 0, "alias": "weiwo_na"}, {
|
||||
"id": 17,
|
||||
"product_id": 2,
|
||||
"field_id": 7,
|
||||
"value": 0,
|
||||
"alias": "weiwo_k"
|
||||
}, {"id": 18, "product_id": 2, "field_id": 8, "value": 0, "alias": "weiwo_ca"}, {
|
||||
"id": 19,
|
||||
"product_id": 2,
|
||||
"field_id": 9,
|
||||
"value": 0,
|
||||
"alias": "weiwo_p"
|
||||
}, {"id": 20, "product_id": 2, "field_id": 10, "value": 0, "alias": "weiwo_mg"}, {
|
||||
"id": 21,
|
||||
"product_id": 3,
|
||||
"field_id": 1,
|
||||
"value": 0,
|
||||
"alias": "jiaweiti_power"
|
||||
}, {"id": 22, "product_id": 3, "field_id": 2, "value": 0, "alias": "jiaweiti_protein"}, {
|
||||
"id": 23,
|
||||
"product_id": 3,
|
||||
"field_id": 3,
|
||||
"value": 0,
|
||||
"alias": "jiaweiti_glu"
|
||||
}, {"id": 24, "product_id": 3, "field_id": 4, "value": 0, "alias": "jiaweiti_fat"}, {
|
||||
"id": 25,
|
||||
"product_id": 3,
|
||||
"field_id": 5,
|
||||
"value": 0,
|
||||
"alias": "jiaweiti_cellulose"
|
||||
}, {"id": 26, "product_id": 3, "field_id": 6, "value": 0, "alias": "jiaweiti_na"}, {
|
||||
"id": 27,
|
||||
"product_id": 3,
|
||||
"field_id": 7,
|
||||
"value": 0,
|
||||
"alias": "jiaweiti_k"
|
||||
}, {"id": 28, "product_id": 3, "field_id": 8, "value": 0, "alias": "jiaweiti_ca"}, {
|
||||
"id": 29,
|
||||
"product_id": 3,
|
||||
"field_id": 9,
|
||||
"value": 0,
|
||||
"alias": "jiaweiti_p"
|
||||
}, {"id": 30, "product_id": 3, "field_id": 10, "value": 0, "alias": "jiaweiti_mg"}, {
|
||||
"id": 31,
|
||||
"product_id": 4,
|
||||
"field_id": 1,
|
||||
"value": 0,
|
||||
"alias": "yilijia_power"
|
||||
}, {"id": 32, "product_id": 4, "field_id": 2, "value": 0, "alias": "yilijia_protein"}, {
|
||||
"id": 33,
|
||||
"product_id": 4,
|
||||
"field_id": 3,
|
||||
"value": 0,
|
||||
"alias": "yilijia_glu"
|
||||
}, {"id": 34, "product_id": 4, "field_id": 4, "value": 0, "alias": "yilijia_fat"}, {
|
||||
"id": 35,
|
||||
"product_id": 4,
|
||||
"field_id": 5,
|
||||
"value": 0,
|
||||
"alias": "yilijia_cellulose"
|
||||
}, {"id": 36, "product_id": 4, "field_id": 6, "value": 0, "alias": "yilijia_na"}, {
|
||||
"id": 37,
|
||||
"product_id": 4,
|
||||
"field_id": 7,
|
||||
"value": 0,
|
||||
"alias": "yilijia_k"
|
||||
}, {"id": 38, "product_id": 4, "field_id": 8, "value": 0, "alias": "yilijia_ca"}, {
|
||||
"id": 39,
|
||||
"product_id": 4,
|
||||
"field_id": 9,
|
||||
"value": 0,
|
||||
"alias": "yilijia_p"
|
||||
}, {"id": 40, "product_id": 4, "field_id": 10, "value": 0, "alias": "yilijia_mg"}]
|
||||
|
||||
|
||||
export function getProductValues() {
|
||||
const values: Record<number, ProductFieldValue[]> = {}
|
||||
product_values.forEach(s => {
|
||||
if(!values[s.product_id]) values[s.product_id]= [];
|
||||
values[s.product_id].push(s);
|
||||
})
|
||||
const results: ProductValue[] = products.map(product=>({product,values: values[product.id]}));
|
||||
return results;
|
||||
}
|
||||
|
||||
// const product_values: ProductFieldValue[] = []
|
||||
// let id = 1;
|
||||
// products.forEach(p => {
|
||||
// fields.forEach(f => {
|
||||
// product_values.push({
|
||||
// id: id++,
|
||||
// product_id: p.id,
|
||||
// field_id: f.id,
|
||||
// value: 0,
|
||||
// alias: `${p.alias}_${f.alias}`
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
// console.log(JSON.stringify(product_values))
|
||||
|
11
src/style.css
Normal file
11
src/style.css
Normal file
@ -0,0 +1,11 @@
|
||||
:root {
|
||||
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
font-weight: 400;
|
||||
|
||||
font-synthesis: none;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
1
src/vite-env.d.ts
vendored
Normal file
1
src/vite-env.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
/// <reference types="vite/client" />
|
28
tsconfig.json
Normal file
28
tsconfig.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"module": "ESNext",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"skipLibCheck": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "preserve",
|
||||
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }],
|
||||
"ts-node": {
|
||||
"esm": true
|
||||
}
|
||||
}
|
10
tsconfig.node.json
Normal file
10
tsconfig.node.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"],
|
||||
}
|
33
vite.config.ts
Normal file
33
vite.config.ts
Normal file
@ -0,0 +1,33 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import path from 'path'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
build: {
|
||||
// 小于10kb直接base64
|
||||
assetsInlineLimit: 10240,
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks(id) {
|
||||
// console.log('chunk id',id)
|
||||
if (id.includes('view-ui-plus')) {
|
||||
return 'view-ui'
|
||||
}
|
||||
if (id.includes('vue')) {
|
||||
return 'vue'
|
||||
}
|
||||
if (id.includes('node_modules')) {
|
||||
return id.toString().split('node_modules/')[1].split('/')[0].toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
resolve:{
|
||||
alias:{
|
||||
'@': path.resolve(__dirname,"./src")
|
||||
}
|
||||
}
|
||||
})
|
656
yarn.lock
Normal file
656
yarn.lock
Normal file
@ -0,0 +1,656 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@babel/parser@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz"
|
||||
integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
|
||||
|
||||
"@esbuild/android-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
|
||||
integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
|
||||
|
||||
"@esbuild/android-arm@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
|
||||
integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
|
||||
|
||||
"@esbuild/android-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
|
||||
integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
|
||||
|
||||
"@esbuild/darwin-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
|
||||
integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
|
||||
|
||||
"@esbuild/darwin-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
|
||||
integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
|
||||
integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
|
||||
|
||||
"@esbuild/freebsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
|
||||
integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
|
||||
integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
|
||||
|
||||
"@esbuild/linux-arm@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
|
||||
integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
|
||||
|
||||
"@esbuild/linux-ia32@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
|
||||
integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
|
||||
|
||||
"@esbuild/linux-loong64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
|
||||
integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
|
||||
|
||||
"@esbuild/linux-mips64el@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
|
||||
integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
|
||||
|
||||
"@esbuild/linux-ppc64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
|
||||
integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
|
||||
|
||||
"@esbuild/linux-riscv64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
|
||||
integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
|
||||
|
||||
"@esbuild/linux-s390x@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
|
||||
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
|
||||
|
||||
"@esbuild/linux-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz"
|
||||
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
|
||||
|
||||
"@esbuild/netbsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
|
||||
integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
|
||||
|
||||
"@esbuild/openbsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
|
||||
integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
|
||||
|
||||
"@esbuild/sunos-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
|
||||
integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
|
||||
|
||||
"@esbuild/win32-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
|
||||
integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
|
||||
|
||||
"@esbuild/win32-ia32@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
|
||||
integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
|
||||
|
||||
"@esbuild/win32-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
|
||||
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
|
||||
|
||||
"@handsontable/vue3@^14.0.0":
|
||||
version "14.0.0"
|
||||
resolved "https://registry.npmmirror.com/@handsontable/vue3/-/vue3-14.0.0.tgz#7c62091cc3393cb556771d9678cced4622095f1c"
|
||||
integrity sha512-4/XuCxXw+8d3fHB3/v0zbb9PYgyjJfU6Tol+dsxRHk0L8FGUFCM8WIDFn3DCb5PHtE2peQBIUl/HvnsCpPpEMg==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.15":
|
||||
version "1.4.15"
|
||||
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
|
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||
|
||||
"@types/node@^20.10.5":
|
||||
version "20.10.5"
|
||||
resolved "https://registry.npmmirror.com/@types/node/-/node-20.10.5.tgz"
|
||||
integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
|
||||
"@vitejs/plugin-vue@^4.1.0":
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.0.tgz"
|
||||
integrity sha512-XHuyFdAikWRmHuAd89FOyUGIjrBU5KlxJtyi2hVeR9ySGFxQwE0bl5xAQju/ArMq5azdBivY4d+D2yPKwoYWUg==
|
||||
|
||||
"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz"
|
||||
integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==
|
||||
dependencies:
|
||||
"@volar/source-map" "1.11.1"
|
||||
|
||||
"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz"
|
||||
integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==
|
||||
dependencies:
|
||||
muggle-string "^0.3.1"
|
||||
|
||||
"@volar/typescript@~1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz"
|
||||
integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==
|
||||
dependencies:
|
||||
"@volar/language-core" "1.11.1"
|
||||
path-browserify "^1.0.1"
|
||||
|
||||
"@vue/compiler-core@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.0.tgz"
|
||||
integrity sha512-cw4S15PkNGTKkP9OFFl4wnQoJJk+HqaYBafgrpDnSukiQGpcYJeRpzmqnCVCIkl6V6Eqsv58E0OAdl6b592vuA==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.23.6"
|
||||
"@vue/shared" "3.4.0"
|
||||
entities "^4.5.0"
|
||||
estree-walker "^2.0.2"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
"@vue/compiler-dom@3.4.0", "@vue/compiler-dom@^3.3.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.0.tgz"
|
||||
integrity sha512-E957uOhpoE48YjZGWeAoLmNYd3UeU4oIP8kJi8Rcsb9l2tV8Z48Jn07Zgq1aW0v3vuhlmydEKkKKbhLpADHXEA==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
"@vue/compiler-sfc@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.0.tgz"
|
||||
integrity sha512-PWE0mE2yW7bJS7PmaCrVDEG6KPaDJo0pb4AKnCxJ5lRRDO4IwL/fswBGhCpov+v/c+N/e+hQHpXNwvqU9BtUXg==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.23.6"
|
||||
"@vue/compiler-core" "3.4.0"
|
||||
"@vue/compiler-dom" "3.4.0"
|
||||
"@vue/compiler-ssr" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.30.5"
|
||||
postcss "^8.4.32"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
"@vue/compiler-ssr@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.0.tgz"
|
||||
integrity sha512-+oXKy105g9DIYQKDi3Gwung0xqQX5gJHr0GR+Vf7yK/WkNDM6q61ummcKmKAB85EIst8y3vj2PA9z9YU5Oc4DQ==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
"@vue/language-core@1.8.27":
|
||||
version "1.8.27"
|
||||
resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz"
|
||||
integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==
|
||||
dependencies:
|
||||
"@volar/language-core" "~1.11.1"
|
||||
"@volar/source-map" "~1.11.1"
|
||||
"@vue/compiler-dom" "^3.3.0"
|
||||
"@vue/shared" "^3.3.0"
|
||||
computeds "^0.0.1"
|
||||
minimatch "^9.0.3"
|
||||
muggle-string "^0.3.1"
|
||||
path-browserify "^1.0.1"
|
||||
vue-template-compiler "^2.7.14"
|
||||
|
||||
"@vue/reactivity@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.0.tgz"
|
||||
integrity sha512-X6BvQjNcgKKHWPQzlRJjZvIu72Kkn8xJSv6VNptqWh8dToMknD0Hch1l4N7llKgVt6Diq4lMeUnErbZFvuGlAA==
|
||||
dependencies:
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
"@vue/runtime-core@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.0.tgz"
|
||||
integrity sha512-NYrj/JgMMqnSWcIud8lLzDQrBLu+EVEeQ56QE9DYJeKG2eFrnQy8o/h57R9nCprafHs0uImKL3xsdXjHseYVxw==
|
||||
dependencies:
|
||||
"@vue/reactivity" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
"@vue/runtime-dom@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.0.tgz"
|
||||
integrity sha512-1ZoHEsA5l77qbx2F+SWo/hQdBksPuOmww1t/jznidDG+xMB/iidafEFvo2ZTtZii0JfTIrlDhjshfYUvQC17wQ==
|
||||
dependencies:
|
||||
"@vue/runtime-core" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
csstype "^3.1.3"
|
||||
|
||||
"@vue/server-renderer@3.4.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.0.tgz"
|
||||
integrity sha512-GuOVCyLDlWPu8nKo5AUxb8B+iB/Ik4I1WwqAlBqf5+y48z6D6rvKshp7KR3cJea+pte1tdTsb0+Ja82KizMZOw==
|
||||
dependencies:
|
||||
"@vue/compiler-ssr" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
"@vue/shared@3.4.0", "@vue/shared@^3.3.0":
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.0.tgz"
|
||||
integrity sha512-Nhh3ed3G1R6HDAWiG6YYFt0Zmq/To6u5vjzwa9TIquGheCXPY6nEdIAO8ZdlwXsWqC2yNLj700FOvShpYt5CEA==
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz"
|
||||
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
async-validator@^3.3.0:
|
||||
version "3.5.2"
|
||||
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz"
|
||||
integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
batch-processor@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz"
|
||||
integrity sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz"
|
||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||
|
||||
brace-expansion@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz"
|
||||
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
|
||||
braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
"chokidar@>=3.0.0 <4.0.0":
|
||||
version "3.5.3"
|
||||
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.2"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.6.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
computeds@^0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz"
|
||||
integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==
|
||||
|
||||
countup.js@^1.9.3:
|
||||
version "1.9.3"
|
||||
resolved "https://registry.npmmirror.com/countup.js/-/countup.js-1.9.3.tgz"
|
||||
integrity sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==
|
||||
|
||||
csstype@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz"
|
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||
|
||||
dayjs@^1.11.0:
|
||||
version "1.11.10"
|
||||
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz"
|
||||
integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
|
||||
|
||||
de-indent@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz"
|
||||
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
|
||||
|
||||
deepmerge@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-2.2.1.tgz"
|
||||
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
|
||||
|
||||
element-resize-detector@^1.2.0:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz"
|
||||
integrity sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==
|
||||
dependencies:
|
||||
batch-processor "1.0.0"
|
||||
|
||||
entities@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
|
||||
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
|
||||
|
||||
esbuild@^0.18.10:
|
||||
version "0.18.20"
|
||||
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz"
|
||||
integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
|
||||
optionalDependencies:
|
||||
"@esbuild/android-arm" "0.18.20"
|
||||
"@esbuild/android-arm64" "0.18.20"
|
||||
"@esbuild/android-x64" "0.18.20"
|
||||
"@esbuild/darwin-arm64" "0.18.20"
|
||||
"@esbuild/darwin-x64" "0.18.20"
|
||||
"@esbuild/freebsd-arm64" "0.18.20"
|
||||
"@esbuild/freebsd-x64" "0.18.20"
|
||||
"@esbuild/linux-arm" "0.18.20"
|
||||
"@esbuild/linux-arm64" "0.18.20"
|
||||
"@esbuild/linux-ia32" "0.18.20"
|
||||
"@esbuild/linux-loong64" "0.18.20"
|
||||
"@esbuild/linux-mips64el" "0.18.20"
|
||||
"@esbuild/linux-ppc64" "0.18.20"
|
||||
"@esbuild/linux-riscv64" "0.18.20"
|
||||
"@esbuild/linux-s390x" "0.18.20"
|
||||
"@esbuild/linux-x64" "0.18.20"
|
||||
"@esbuild/netbsd-x64" "0.18.20"
|
||||
"@esbuild/openbsd-x64" "0.18.20"
|
||||
"@esbuild/sunos-x64" "0.18.20"
|
||||
"@esbuild/win32-arm64" "0.18.20"
|
||||
"@esbuild/win32-ia32" "0.18.20"
|
||||
"@esbuild/win32-x64" "0.18.20"
|
||||
|
||||
estree-walker@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
|
||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz"
|
||||
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
fsevents@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||
|
||||
glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
he@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz"
|
||||
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz"
|
||||
integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz"
|
||||
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz"
|
||||
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
||||
|
||||
is-glob@^4.0.1, is-glob@~4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz"
|
||||
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
js-calendar@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.npmmirror.com/js-calendar/-/js-calendar-1.2.3.tgz"
|
||||
integrity sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw==
|
||||
|
||||
lodash.chunk@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz"
|
||||
integrity sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==
|
||||
|
||||
lodash.throttle@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz"
|
||||
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
|
||||
|
||||
lru-cache@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz"
|
||||
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
magic-string@^0.30.5:
|
||||
version "0.30.5"
|
||||
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz"
|
||||
integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
|
||||
minimatch@^9.0.3:
|
||||
version "9.0.3"
|
||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz"
|
||||
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
muggle-string@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz"
|
||||
integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==
|
||||
|
||||
nanoid@^3.3.7:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz"
|
||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
numeral@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz"
|
||||
integrity sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==
|
||||
|
||||
path-browserify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz"
|
||||
integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
popper.js@^1.14.6:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz"
|
||||
integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
|
||||
|
||||
postcss@^8.4.27, postcss@^8.4.32:
|
||||
version "8.4.32"
|
||||
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz"
|
||||
integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==
|
||||
dependencies:
|
||||
nanoid "^3.3.7"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz"
|
||||
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
rollup@^3.27.1:
|
||||
version "3.29.4"
|
||||
resolved "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz"
|
||||
integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
sass@^1.69.5:
|
||||
version "1.69.6"
|
||||
resolved "https://registry.npmmirror.com/sass/-/sass-1.69.6.tgz"
|
||||
integrity sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
source-map-js ">=0.6.2 <2.0.0"
|
||||
|
||||
select@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz"
|
||||
integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
|
||||
|
||||
semver@^7.5.4:
|
||||
version "7.5.4"
|
||||
resolved "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz"
|
||||
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
||||
tinycolor2@^1.4.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz"
|
||||
integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz"
|
||||
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
typescript@^5.0.2:
|
||||
version "5.3.3"
|
||||
resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz"
|
||||
integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==
|
||||
|
||||
undici-types@~5.26.4:
|
||||
version "5.26.5"
|
||||
resolved "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz"
|
||||
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||
|
||||
v-click-outside-x@^3.7.1:
|
||||
version "3.7.1"
|
||||
resolved "https://registry.npmmirror.com/v-click-outside-x/-/v-click-outside-x-3.7.1.tgz"
|
||||
integrity sha512-WmUgmcIXr9clVpm1AYS/FgHtcDicfnfoxgQCNg4O6vfk9GVnxA0vSqO321ogUo0b7czYTidj7fQENvWFMWOkUg==
|
||||
|
||||
view-ui-plus@^1.3.15:
|
||||
version "1.3.15"
|
||||
resolved "https://registry.npmmirror.com/view-ui-plus/-/view-ui-plus-1.3.15.tgz"
|
||||
integrity sha512-dbi3uTk8twgtpino0QFIvCb3Gck135czbnvxs2M0lOmUQMKAK7GqJ3m8IobwyWXAxkoA1+Ek8QMeC3a+InOWpQ==
|
||||
dependencies:
|
||||
async-validator "^3.3.0"
|
||||
countup.js "^1.9.3"
|
||||
dayjs "^1.11.0"
|
||||
deepmerge "^2.2.1"
|
||||
element-resize-detector "^1.2.0"
|
||||
js-calendar "^1.2.3"
|
||||
lodash.chunk "^4.2.0"
|
||||
lodash.throttle "^4.1.1"
|
||||
numeral "^2.0.6"
|
||||
popper.js "^1.14.6"
|
||||
select "^1.1.2"
|
||||
tinycolor2 "^1.4.1"
|
||||
v-click-outside-x "^3.7.1"
|
||||
|
||||
vite@^4.3.2:
|
||||
version "4.5.1"
|
||||
resolved "https://registry.npmmirror.com/vite/-/vite-4.5.1.tgz"
|
||||
integrity sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==
|
||||
dependencies:
|
||||
esbuild "^0.18.10"
|
||||
postcss "^8.4.27"
|
||||
rollup "^3.27.1"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
vue-template-compiler@^2.7.14:
|
||||
version "2.7.16"
|
||||
resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz"
|
||||
integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==
|
||||
dependencies:
|
||||
de-indent "^1.0.2"
|
||||
he "^1.2.0"
|
||||
|
||||
vue-tsc@^1.4.2:
|
||||
version "1.8.27"
|
||||
resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz"
|
||||
integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==
|
||||
dependencies:
|
||||
"@volar/typescript" "~1.11.1"
|
||||
"@vue/language-core" "1.8.27"
|
||||
semver "^7.5.4"
|
||||
|
||||
vue@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmmirror.com/vue/-/vue-3.4.0.tgz"
|
||||
integrity sha512-iTE9Ve/7DO/H39+gXHrNkRdnh1jDwPe/fap4brbPKkp1APMkS03OiZ+UY0dwpqtRX0iPWQTkh8Fu3hKgLtaxfA==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.4.0"
|
||||
"@vue/compiler-sfc" "3.4.0"
|
||||
"@vue/runtime-dom" "3.4.0"
|
||||
"@vue/server-renderer" "3.4.0"
|
||||
"@vue/shared" "3.4.0"
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz"
|
||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
Loading…
x
Reference in New Issue
Block a user