Changes
This commit is contained in:
parent
8af8f4ffc4
commit
d130f9f6e4
@ -1,13 +1,13 @@
|
||||
package cn.wzpmc.pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.*;
|
||||
import top.xinsin.enums.MessageTypes;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wzp
|
||||
@ -23,42 +23,15 @@ public class Message {
|
||||
private String content;
|
||||
private String sender;
|
||||
private int recall;
|
||||
private String sendtime;
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date sendtime;
|
||||
private String base64;
|
||||
private MessageTypes type;
|
||||
public Message(int id){
|
||||
this.id = id;
|
||||
}
|
||||
public Message(int id, String content, String sender, int recall, String sendtime, String type, String base64){
|
||||
this.content = content;
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.recall = recall;
|
||||
this.type = MessageTypes.valueOf(type);
|
||||
this.sendtime = sendtime;
|
||||
this.base64 = base64;
|
||||
}
|
||||
public Message(String content, String sender,String type){
|
||||
this.content = content;
|
||||
this.sender = sender;
|
||||
this.type = MessageTypes.valueOf(type);
|
||||
Calendar calendar= Calendar.getInstance();
|
||||
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");
|
||||
this.sendtime = dateFormat.format(calendar.getTime());
|
||||
}
|
||||
public Message(String content, String sender,String type,String sendtime){
|
||||
this.content = content;
|
||||
this.sender = sender;
|
||||
this.type = MessageTypes.valueOf(type);
|
||||
this.sendtime = sendtime;
|
||||
}
|
||||
public Message(int id,String content,String sender,int recall,String type,String sendtime){
|
||||
this.content = content;
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.recall = recall;
|
||||
this.type = MessageTypes.valueOf(type);
|
||||
this.sendtime = sendtime;
|
||||
this.sendtime = new Date();
|
||||
}
|
||||
}
|
||||
|
||||
|
1
web/.env.build
Normal file
1
web/.env.build
Normal file
@ -0,0 +1 @@
|
||||
VITE_URL = 'AUTO'
|
1
web/.env.run
Normal file
1
web/.env.run
Normal file
@ -0,0 +1 @@
|
||||
VITE_URL = 'https://wzp.moyijiangnan.cn'
|
5
web/auto-imports.d.ts
vendored
5
web/auto-imports.d.ts
vendored
@ -1,5 +0,0 @@
|
||||
// Generated by 'unplugin-auto-import'
|
||||
export {}
|
||||
declare global {
|
||||
|
||||
}
|
BIN
web/bun.lockb
BIN
web/bun.lockb
Binary file not shown.
18
web/components.d.ts
vendored
18
web/components.d.ts
vendored
@ -1,18 +0,0 @@
|
||||
// generated by unplugin-vue-components
|
||||
// We suggest you to commit this file into source control
|
||||
// Read more: https://github.com/vuejs/core/pull/3399
|
||||
import '@vue/runtime-core'
|
||||
|
||||
export {}
|
||||
|
||||
declare module '@vue/runtime-core' {
|
||||
export interface GlobalComponents {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
Message: typeof import('./src/components/Message.vue')['default']
|
||||
NotFound: typeof import('./src/components/NotFound.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
User: typeof import('./src/components/User.vue')['default']
|
||||
}
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<link href="/logo.png" rel="icon"/>
|
||||
<link href="/HangZhouIcon.png" rel="icon"/>
|
||||
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport'>
|
||||
<meta content='yes' name='apple-mobile-web-app-capable'>
|
||||
<meta content='black' name='apple-mobile-web-app-status-bar-style'>
|
||||
|
3075
web/package-lock.json
generated
3075
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -4,27 +4,24 @@
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vue-tsc --noEmit && vite build",
|
||||
"dev": "vite --mode=run",
|
||||
"build": "vue-tsc --noEmit && vite build --mode=build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.10",
|
||||
"axios": "^1.1.3",
|
||||
"element-plus": "^2.2.17",
|
||||
"pinia": "^2.0.28",
|
||||
"sass": "^1.71.1",
|
||||
"axios": "^1.6.8",
|
||||
"element-plus": "^2.7.0",
|
||||
"pinia": "^2.1.7",
|
||||
"ts-md5": "^1.3.1",
|
||||
"vue": "^3.2.37",
|
||||
"vue-router": "^4.1.6",
|
||||
"vue3-slide-verify": "^1.1.4"
|
||||
"vue": "^3.4.21",
|
||||
"vue-router": "^4.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^3.1.0",
|
||||
"typescript": "^4.6.4",
|
||||
"unplugin-auto-import": "^0.11.4",
|
||||
"unplugin-vue-components": "^0.22.9",
|
||||
"vite": "^3.1.0",
|
||||
"vue-tsc": "^0.40.4"
|
||||
"@vitejs/plugin-vue": "^5.0.4",
|
||||
"typescript": "^5.4.5",
|
||||
"unplugin-auto-import": "^0.17.5",
|
||||
"unplugin-vue-components": "^0.26.0",
|
||||
"vite": "^5.2.8",
|
||||
"vue-tsc": "^2.0.13"
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 167 KiB |
BIN
web/public/HangZhouIcon.png
Normal file
BIN
web/public/HangZhouIcon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 252 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.5 MiB |
Binary file not shown.
Before Width: | Height: | Size: 9.5 KiB |
@ -1,22 +1,19 @@
|
||||
import axios, {AxiosRequestConfig, AxiosResponse} from "axios";
|
||||
import axios, {AxiosResponse, InternalAxiosRequestConfig} from "axios";
|
||||
const instance = axios.create({
|
||||
baseURL: "https://wzp.moyijiangnan.cn"/*window.location.protocol + '//' + window.location.hostname + ":" + window.location.port*/
|
||||
baseURL: import.meta.env.VITE_URL === 'AUTO' ? window.location.protocol + '//' + window.location.hostname + ":" + window.location.port : import.meta.env.VITE_URL
|
||||
});
|
||||
const responseInterceptors = (response: AxiosResponse): AxiosResponse => {
|
||||
let token = response.headers.token;
|
||||
if (token) {
|
||||
window.localStorage.setItem("token", token);
|
||||
const responseInterceptors = (response: AxiosResponse<any, any>): AxiosResponse<any, any> => {
|
||||
if (response.headers){
|
||||
if (response.headers['token']){
|
||||
window.localStorage.setItem("token", response.headers['token']);
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
instance.interceptors.response.use(responseInterceptors,)
|
||||
const requestInterceptors = (request: AxiosRequestConfig): AxiosRequestConfig => {
|
||||
instance.interceptors.response.use(responseInterceptors)
|
||||
const requestInterceptors = (request: InternalAxiosRequestConfig<any>): InternalAxiosRequestConfig<any> => {
|
||||
let token = window.localStorage.getItem("token");
|
||||
if (request.headers) {
|
||||
request.headers["Access-Token"] = token;
|
||||
} else {
|
||||
request.headers = {"Access-Token": token}
|
||||
}
|
||||
request.headers.set("Access-Token",token, false);
|
||||
return request;
|
||||
}
|
||||
instance.interceptors.request.use(requestInterceptors);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,131 +1,93 @@
|
||||
<template>
|
||||
<div class="message">
|
||||
<div :class="div_class">
|
||||
<el-avatar class="avatar" :src='"data:image/png;base64," + props.data.base64' style="margin-top: 15px"/>
|
||||
<div :class="in_div_class">
|
||||
<div>
|
||||
<el-tag v-if="show" :type="tag_type">{{ props.data.sender }}</el-tag>
|
||||
<!-- el-tag v-if="show" :type="tag_type">发送时间 : {{ props.data.sendtime }}</el-tag -->
|
||||
</div>
|
||||
<div :style="message_box_style"><img v-if="self" alt="" class="angle" src="/95ec69.svg"/>
|
||||
<img v-else alt="" class="angle" src="/ffffff.svg">
|
||||
<div :class="message_div">
|
||||
<el-popover :visible="visible" placement="top" :width="160">
|
||||
<el-link type="info" @click="recall">撤回</el-link>
|
||||
<template #reference>
|
||||
<div style="border: 5px solid rgba(255,255,255,0%);" @click="visibleMethod">{{ props.data.content }}</div>
|
||||
</template>
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="messageDivClassList">
|
||||
<el-avatar :src="`data:image/png;base64,${props.data.base64}`" />
|
||||
<div class="message-user">
|
||||
<div :class="tagBoxClassList">
|
||||
<el-tag :type="tagType">{{ props.data.sender }}</el-tag>
|
||||
<el-tag :type="tagType">{{ props.data.sendtime }}</el-tag>
|
||||
</div>
|
||||
<el-popover
|
||||
trigger="contextmenu"
|
||||
>
|
||||
<el-link type="info" @click="recall">撤回</el-link>
|
||||
<template #reference>
|
||||
<div :class="messageContentBoxClassList">
|
||||
<div :class="arrowDivClassList"></div>
|
||||
<div :class="messageBoxDivClassList">{{props.data.content}}</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {isSelf, MessageData} from "../entities/MessageData";
|
||||
import {ref} from "vue";
|
||||
import {useStore} from "../store";
|
||||
|
||||
const store = useStore();
|
||||
|
||||
const visibleMethod = () =>{
|
||||
let name = null;
|
||||
if (store.userinfo != null){
|
||||
name = store.userinfo.username;
|
||||
}
|
||||
if (name === props.data.sender){
|
||||
visible.value = visible.value != true;
|
||||
}
|
||||
}
|
||||
const visible = ref(false)
|
||||
import {MessageData, isSelf} from "../entities/MessageData";
|
||||
import {computed} from "vue";
|
||||
const props = defineProps<{data: MessageData}>()
|
||||
const emit = defineEmits(["remove"])
|
||||
const tag_type = ref<string>("success");
|
||||
const div_class = ref<string>("message-out-div");
|
||||
const in_div_class = ref<string>("message-in-div");
|
||||
const message_div = ref<string>("message-div");
|
||||
const message_box_style = ref<string>("display:flex; flex-direction: row;");
|
||||
const show = ref<boolean>(false);
|
||||
let self = isSelf(props.data);
|
||||
if (self) {
|
||||
tag_type.value = "danger"
|
||||
div_class.value = "message-out-div self";
|
||||
in_div_class.value = "message-in-div self-in";
|
||||
message_div.value = "message-div message-self"
|
||||
message_box_style.value = "display:flex; flex-direction: row-reverse;"
|
||||
}
|
||||
show.value = true;
|
||||
const self = computed<boolean>(() => isSelf(props.data));
|
||||
const messageDivClassList = computed<string[]>(() => ['message', self.value ? 'message-self' : '']);
|
||||
const messageBoxDivClassList = computed<string[]>(() => ['message-box', self.value ? 'message-box-self' : '']);
|
||||
const messageContentBoxClassList = computed<string[]>(() => ['message-content-box', self.value ? 'message-content-box-self' : '']);
|
||||
const arrowDivClassList = computed<string[]>(() => ['arrow', self.value ? 'arrow-self' : '']);
|
||||
const tagBoxClassList = computed<string[]>(() => ['tag-box', self.value ? 'tag-box-self' : '']);
|
||||
const tagType = computed<string>(() => self.value ? 'danger' : 'success');
|
||||
const recall = () => {
|
||||
emit("remove", props.data.id);
|
||||
visible.value = false;
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
div.message-out-div {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
margin-top: 20px;
|
||||
margin-left: 5px;
|
||||
align-items: flex-start;
|
||||
.message {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.message-in-div {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
margin-left: 7px;
|
||||
align-items: flex-start;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
div.self {
|
||||
flex-direction: row-reverse;
|
||||
margin-left: 0;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
div.self-in {
|
||||
flex-direction: column;
|
||||
margin-left: 0;
|
||||
margin-right: 5px;
|
||||
flex-direction: row;
|
||||
margin-bottom: 20px;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
div.message-div {
|
||||
margin-top: 10px;
|
||||
font-size: 2vh;
|
||||
border-radius: 0 4px 4px 4px;
|
||||
background-color: #FFFFFF;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.message-self {
|
||||
display: flex;
|
||||
.message-self {
|
||||
flex-direction: row-reverse;
|
||||
border-radius: 4px 0 4px 4px;
|
||||
}
|
||||
.message-box {
|
||||
padding: 4px;
|
||||
width: fit-content;
|
||||
height: fit-content;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
.message-box-self{
|
||||
background-color: #71c346;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
img.angle {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-top: 10px;
|
||||
.arrow {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background-image: url("/ffffff.svg");
|
||||
}
|
||||
.message {
|
||||
margin-bottom: 10px;
|
||||
.arrow-self {
|
||||
background-image: url("/95ec69.svg");
|
||||
}
|
||||
.avatar {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
.message-content-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.message-content-box-self {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
.message-user {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.tag-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.tag-box-self {
|
||||
align-items: flex-end;
|
||||
}
|
||||
.tag-box > span {
|
||||
margin-bottom: 5px;
|
||||
width: min-content;
|
||||
}
|
||||
</style>
|
@ -1,16 +0,0 @@
|
||||
<template>
|
||||
<img alt="" class="bg" src="../../public/404.png"/>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
</script>
|
||||
<style scoped>
|
||||
.bg {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
background-size: 100% 100%;
|
||||
-moz-background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
</style>
|
@ -3,7 +3,6 @@ export {IceServer};
|
||||
|
||||
const IceServer: RTCIceServer = {
|
||||
"credential": "123456",
|
||||
"credentialType": "password",
|
||||
"urls": "turn:cloud.wzpmc.cn:3478",
|
||||
"username": "wzp"
|
||||
}
|
@ -20,10 +20,10 @@ export interface MessageData {
|
||||
type: MessageTypes | undefined;
|
||||
}
|
||||
export const isSelf = (message: MessageData): boolean => {
|
||||
const store = useStore();
|
||||
const {userinfo} = useStore();
|
||||
let name = null;
|
||||
if (store.userinfo !== null){
|
||||
name = store.userinfo.username
|
||||
if (userinfo !== null){
|
||||
name = userinfo.username
|
||||
}
|
||||
return message.sender === name;
|
||||
}
|
@ -3,9 +3,7 @@ import App from './App.vue'
|
||||
import 'element-plus/dist/index.css'
|
||||
import router from './router'
|
||||
import { createPinia, PiniaPluginContext } from 'pinia'
|
||||
import ElementPlus from "element-plus";
|
||||
|
||||
const app = createApp(App)
|
||||
const app = createApp(App);
|
||||
const piniaPlugin = (context: PiniaPluginContext) => {
|
||||
const { store } = context;
|
||||
// $subscribe state值发生变化时会执行传入的回调
|
||||
|
@ -19,26 +19,18 @@ const router = createRouter({
|
||||
meta: {
|
||||
title: '注册',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/404',
|
||||
name: '404',
|
||||
component: () => import(`../components/NotFound.vue`),
|
||||
meta: {
|
||||
title: '哎呦,页面找不到了',
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
// 全局路由守卫
|
||||
router.beforeEach((to, from)=>{
|
||||
router.beforeEach((to)=>{
|
||||
// 设置网页标题
|
||||
document.title = "电子职高校内交流平台-" + `${to.meta.title}`;
|
||||
// 获取状态管理器
|
||||
let store = useStore();
|
||||
let routers = router.getRoutes();
|
||||
// 判断用户是否已登陆,并且刷新页面
|
||||
if (store.userinfo !== null && routers.length === 3){
|
||||
if (store.userinfo !== null && routers.length === 2){
|
||||
router.addRoute({path: '/home', name: 'home', component: () => import("../views/home/index.vue"), meta: {title: '首页'}});
|
||||
router.addRoute("home",{path: 'chat', name:'chat', component: () => import("../views/chat/index.vue"), meta: {title: '聊天频道'}})
|
||||
router.addRoute("home",{path: 'file', name:'file', component: () => import("../views/file/index.vue"), meta: {title: '文件分享'}})
|
||||
@ -55,17 +47,13 @@ router.beforeEach((to, from)=>{
|
||||
}
|
||||
// 验证用户是否输入了正确的地址
|
||||
// 如果当前路由没有该地址,则跳转至404
|
||||
let num = 0;
|
||||
for (let i = 0; i < routers.length; i++) {
|
||||
if (routers[i].name === to.name){
|
||||
continue;
|
||||
}else{
|
||||
num++;
|
||||
}
|
||||
if (num === routers.length && to.name !== "404"){
|
||||
return {name:'404'}
|
||||
for (let route of routers) {
|
||||
if (route.name === to.name){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
ElMessage.warning("页面找不到,返回主页");
|
||||
return {name: store.userinfo === null ? 'login' : 'home'};
|
||||
})
|
||||
|
||||
export default router
|
@ -1,5 +1,9 @@
|
||||
<template>
|
||||
<div ref="messageDiv" class="messages">
|
||||
<div class="alert">
|
||||
<el-alert title="右键自己的消息可以撤回" type="warning" />
|
||||
<el-alert title="Alt+回车可以发送消息" type="warning" />
|
||||
</div>
|
||||
<Message v-for="(item,index) in messages" :key="index" :data="item" @remove="removeMessage"/>
|
||||
<!--div class="new-message-counter">
|
||||
TODO 新消息提醒
|
||||
@ -107,16 +111,24 @@
|
||||
}
|
||||
}
|
||||
const GetCallback = (message: Array<MessageData>) => {
|
||||
message = message.sort((a,b) => Date.parse(a.sendtime!) - Date.parse(b.sendtime!))
|
||||
console.log(message)
|
||||
message = message.sort((a,b) => Date.parse(a.sendtime!) - Date.parse(b.sendtime!));
|
||||
let scrollToBottom = false;
|
||||
if (messages.value.length === 0){
|
||||
scrollToBottom = true;
|
||||
}
|
||||
messages.value = message.concat(messages.value);
|
||||
idMax.value = messages.value[0].id! - 1;
|
||||
idMin.value = 0;
|
||||
if(idMax.value >= 10){
|
||||
idMin.value = idMax.value - 10;
|
||||
}
|
||||
const beforeHeight = messageDiv.value?.scrollHeight ? messageDiv.value.scrollHeight : -1;
|
||||
nextTick(() => {
|
||||
messageDiv.value!.scrollTop = messageDiv.value!.scrollWidth
|
||||
if (scrollToBottom){
|
||||
messageDiv.value?.scrollTo({top: messageDiv.value.scrollHeight});
|
||||
}else {
|
||||
messageDiv.value?.scrollTo({top: messageDiv.value.scrollHeight - beforeHeight});
|
||||
}
|
||||
})
|
||||
}
|
||||
const CountCallback = (count: number) => {
|
||||
@ -142,6 +154,7 @@
|
||||
const SendCallback = (message: MessageData) => {
|
||||
messages.value.push(message);
|
||||
nextTick(() => {
|
||||
// noinspection JSSuspiciousNameCombination
|
||||
messageDiv.value!.scrollTop = messageDiv.value!.scrollWidth
|
||||
})
|
||||
}
|
||||
@ -230,6 +243,8 @@
|
||||
scrollbar-width: thin;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
background: rgba(250,250,250);
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.input-area {
|
||||
@ -252,4 +267,10 @@
|
||||
height: 64px;
|
||||
z-index: 9999;
|
||||
}
|
||||
.alert {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
@ -50,7 +50,7 @@
|
||||
:before-upload="fileUploadBefore"
|
||||
:on-progress="fileUploadProgress"
|
||||
>
|
||||
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
||||
<el-icon class="el-icon--upload"><UploadFilled /></el-icon>
|
||||
<div class="el-upload__text">
|
||||
将文件拖到此处或者 <em>点击来上传</em>
|
||||
</div>
|
||||
@ -72,8 +72,8 @@
|
||||
import {onMounted, reactive, ref} from "vue";
|
||||
import {fileDelete, getFiles, getShowFile} from "../../api/file";
|
||||
import {useStore} from "../../store";
|
||||
import {ElMessage, UploadProgressEvent} from "element-plus";
|
||||
import {MessageHandler} from "element-plus/es/components/message/src/message";
|
||||
import {ElMessage, UploadProgressEvent, MessageHandler} from "element-plus";
|
||||
import {UploadFilled} from "@element-plus/icons-vue";
|
||||
|
||||
const files = ref([]);
|
||||
const pageCount = ref<number>(1)
|
||||
|
@ -2,29 +2,10 @@
|
||||
<el-container>
|
||||
<el-header class="header">
|
||||
<div class="logo">
|
||||
<el-icon><img alt="" class="logo" src="/logo.png"/></el-icon>
|
||||
<el-icon><img alt="" class="logo" src="/HangZhouIcon.png"/></el-icon>
|
||||
</div>
|
||||
<div class="weather">
|
||||
电子职高校内交流平台
|
||||
<!-- <span v-if="weather.city === undefined" style="color: #f56c6c">未查询到您当地的天气信息</span>
|
||||
<span v-if="weather.city !== undefined">
|
||||
<span style="color: #FFCC33">
|
||||
{{weather.city}}
|
||||
</span>
|
||||
今日天气:
|
||||
<span style="color: #FFFFCC">
|
||||
{{weather.weather}}
|
||||
</span>
|
||||
温度:
|
||||
<span style="color: #FFFF66">
|
||||
{{weather.temperature}}度
|
||||
</span>
|
||||
风向:
|
||||
<span style="color: #9933CC">
|
||||
{{weather.winddirection}}风
|
||||
{{weather.windpower}}级
|
||||
</span>
|
||||
</span>-->
|
||||
</div>
|
||||
<div class="user">
|
||||
<el-avatar :size="50" :src="headimgBase64" style="margin-right: 10px"/>
|
||||
@ -92,7 +73,6 @@ import {onBeforeMount, onMounted, ref} from 'vue'
|
||||
import {ElMessage} from "element-plus";
|
||||
import {useStore} from "../../store";
|
||||
import {useRouter} from "vue-router";
|
||||
import {Weather} from "../../entities/Weather";
|
||||
|
||||
const maxWidth = ref<number>(200);
|
||||
const active = ref<string>("/home/chat");
|
||||
@ -227,5 +207,6 @@ div.user {
|
||||
height: 90vh;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
/*background: rgba(250,250,250);*/
|
||||
}
|
||||
</style>
|
@ -1,184 +0,0 @@
|
||||
<template>
|
||||
<div class="background">
|
||||
<div id="window" class="login-window">
|
||||
<h1 ref="title" class="title">电子职高校内交流平台·登录</h1>
|
||||
<el-input v-model="username" ref="usernameRef" placeholder="请在此输入昵称" :minlength="5" :maxlength="16" step="0" type="text" @input="verify('u')" class="input">
|
||||
<template #prepend>昵称</template>
|
||||
</el-input>
|
||||
<el-input v-model="password" ref="passwordRef" placeholder="请在此输入密码" :minlength="5" :maxlength="64" show-password type="text" step="0" @input="verify('p')" class="input">
|
||||
<template #prepend>密码</template>
|
||||
</el-input>
|
||||
<el-button plain size="large" style="width: 10vh" type="primary" @click="Login">登录</el-button>
|
||||
</div>
|
||||
<el-dialog v-model="showSlideWindow" :width="440" style="background-color: rgba(255,255,255,75%);" title="滑动验证">
|
||||
<slide-verify ref="slider" :accuracy="5" :h="150" :w="400" slider-text="向右滑动验证" :imgs="imgVerify" @success="onSlideSuccess"/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {onMounted, ref} from "vue";
|
||||
import SlideVerify, {SlideVerifyInstance} from "vue3-slide-verify";
|
||||
import "vue3-slide-verify/dist/style.css";
|
||||
import {login, autoLogin} from '../../api/user'
|
||||
import {ElInput, ElMessage} from "element-plus";
|
||||
import {useStore} from "../../store";
|
||||
import {UserInfo} from "../../entities/UserInfo";
|
||||
import {useRouter} from "vue-router";
|
||||
|
||||
const imgVerify = ref<Array<string>>(['02617ba25be35ff28689995f5821d6ae.jpg','ad7d7c80f9505796ab3e2465e00c858e.jpg','f0ddf46430d752898b2c46a340de3fd5.jpg','d6d19b44fd9b56f8a5223c605634d1da.jpg','22af7b742d345eb796ce674e6d361380.jpg','c47a5f40ee82590286671257b919731b.jpg','3816a03ec25f53d3b7a3e33154a903b2.jpg','c7b21ed210925d148e964c38849c3a4d.jpg','4270f5260dca57d79d3582dc2d5c836b.jpg','390d7533f19c5e30b25f807fe23beac9.jpg','dec0262729e957cf8ef57ba61d29a89f.jpg','f846386254ae59b5af12d86a84db0fab.jpg','360877981c0a5d9ba1d0acf472a68915.jpg','11e8042b6d8f575b96591507ab5e4a88.jpg','f9a994c3c31b5ecebc31887c6344eee7.jpg','9312caaaa8c05cb1a2fe53cfcbbad548.jpg','854a0868a7425edabb112726d511844d.jpg','233ae109c1aa5f2aaeffdf42411c01ad.jpg','c88a182c2d0850f7b96fdb36c2710905.jpg','69987215f5e25c69987c502255cc0913.jpg','dac3f67eb7f95f28b54991e0200304f4.jpg','014ab90f547e50658baa369bf025f0d2.jpg','b97ff9e2b1e1506aab69bd3f0ef7cdcc.jpg','078269643e5a54379a7d451862a0c592.jpg','9911ea72c55554eb9e1b212a40e0c669.jpg','782524b7fc595cc4bb4c39368bf7e457.jpg','07ed176ace0b52b5b0945a8377f715c3.jpg','1d211f4e950a5d3f8b2a1505abb027eb.jpg','dcdb182c378053a3be596613c68c5169.jpg','d2f841cfb89256c4af25263b84ad7f7b.jpg','ed1104e6782f5cc290b7d77db6a07c78.jpg','facf57a84191525b98d1849e0ef4da1c.jpg','8fb9d56cbc98558d9ee156cdd936d013.jpg','914cfe208dcb5244a2e0176082f27f62.jpg','a9a2d74a4c7859509f8c5b508e947466.jpg','5c9586dbf7235b7d935e3f42570a1353.jpg','c2478f2557d8564a95ee26666bc8f3c5.jpg','5388021c454c5390b811e9be5b9adc54.jpg','ac32c6127ab35dfc93e0d610caac9d66.jpg','4e624b9210765c41a1970925de52927b.jpg','9ca5c7fb2da457d28a46c32e5057005b.jpg','2cc36492d02356aebad5f7ecf077a70a.jpg','b6c25268e3525f878dfd6f7b5533b8aa.jpg','66efbada1df65bb394e9c152133b1d32.jpg','792e0ffcec85508bbb70a5caecec7f75.jpg','516fa62dbf9c583493f963ab60b2c8b5.jpg','fb11b0594fea5b7a8cf4dc17e2a5b19f.jpg','dbdfffb42755508e956d595c98047f6d.jpg','99fa72f1224454cc91d59c0075281259.jpg','70ffb1a7705358d693fc39729489f670.jpg','b3c4b61e9d9257839058696e3d7ae360.jpg','f7cc4d1aea445d9da146c322ba655ca6.jpg','0367b9092bf35dd6993b7f70a750cf3e.jpg','819d5a4e4a80553eaf95147d8fda67f8.jpg','d26dc6ba7eb45008809ebfa4cbc52443.jpg','abaa28bbd29d53d295696f0fa3a4303e.jpg','892b3074fe8251a69c1b3508820b0421.jpg','a44a83bef8ea5d439cc78160f077ee87.jpg','51dd13be04e058ae8a8c05116f938763.jpg','03c9b1640f1951b8b3a3f52e0888551e.jpg','a5f418f0a53d51828fa0eaffaa5d20d1.jpg','bb1f33c1bbc65b48a27a020fc1f1b5b1.jpg','e9875fe427aa5680a44a44fb4f9a2bc8.jpg','277eb95c7bb6550d83b1309c5c9359f1.jpg','0cbf1fd6a0a2580cbbcb18244fffc7d7.jpg','bf26bf4390eb5da5bca53f92fbf24356.jpg','d27219b949ad50e9b69d2d2e3b12bed8.jpg','248d57f0ebc35898b66390eb7b548b74.jpg','9daccf59b56d536aa8ad0411b37b7bd5.jpg','080b3e9f4f8954aca7bb6d6925536911.jpg'].map((v) => "/static/verify/" + v));
|
||||
const username = ref<string>();
|
||||
const password = ref<string>();
|
||||
const showSlideWindow = ref<boolean>();
|
||||
const slider = ref<SlideVerifyInstance>();
|
||||
const title = ref<HTMLDivElement>();
|
||||
// const tipPassword= ref<string>("_-~!@#$%^&*+=:><,./");
|
||||
|
||||
const usernameRef = ref<InstanceType<typeof ElInput>>();
|
||||
const passwordRef = ref<InstanceType<typeof ElInput>>();
|
||||
|
||||
const store = useStore();
|
||||
const router = useRouter();
|
||||
|
||||
// 对输入的账号密码进行正则验证
|
||||
const verify = (type:string) => {
|
||||
if (type === "u"){
|
||||
if (username.value){
|
||||
const verifyUsername = /.{3,16}/;
|
||||
if (verifyUsername.test(username.value)) {
|
||||
usernameRef.value!.input!.style.color = "black"
|
||||
return true;
|
||||
}
|
||||
}
|
||||
usernameRef.value!.input!.style.color = "red"
|
||||
}
|
||||
if (type === "p"){
|
||||
if (password.value){
|
||||
const verifyPassword = /^[a-zA-Z0-9_-~!@#$%^&*+=:><,./]{5,128}$/;
|
||||
if (verifyPassword.test(password.value)) {
|
||||
passwordRef.value!.input!.style.color = "black"
|
||||
return true;
|
||||
}
|
||||
}
|
||||
passwordRef.value!.input!.style.color = "red"
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 登陆验证
|
||||
const Login = () => {
|
||||
if (username.value !== '' && password.value !== '') {
|
||||
if (verify('u') && verify('p')){
|
||||
// 打开模态框进行图形验证码验证
|
||||
showSlideWindow.value = true;
|
||||
slider.value?.refresh();
|
||||
}else{
|
||||
ElMessage.error("请输入正确的格式")
|
||||
}
|
||||
} else {
|
||||
ElMessage.error("请输入账号密码!")
|
||||
}
|
||||
}
|
||||
// 用户登录成功后跳转之前操作
|
||||
const push = async (data:any) => {
|
||||
// 将用户数据存入store中
|
||||
store.$patch({
|
||||
userinfo: {
|
||||
username:data.username,
|
||||
headimg:data.base64,
|
||||
auth:data.auth,
|
||||
exclusiveColor:data.exclusiveColor,
|
||||
id:data.id
|
||||
} as UserInfo
|
||||
})
|
||||
await router.push("/home/chat");
|
||||
}
|
||||
onMounted(async () => {
|
||||
// 当用户不正常退出时,进行本地搜索token,进行验证
|
||||
let token = window.localStorage.getItem("token");
|
||||
if (token){
|
||||
autoLogin().then(res =>{
|
||||
let data = res.data.data;
|
||||
if (data.status){
|
||||
ElMessage.success("已为您自动登录成功,即将进行跳转");
|
||||
push(data);
|
||||
}else{
|
||||
ElMessage.error("自动登录失败,请重新输入账号和密码进行登陆")
|
||||
}
|
||||
}).catch(res =>{
|
||||
ElMessage.warning(res.response.data.data);
|
||||
window.localStorage.clear();
|
||||
store.$reset()
|
||||
})
|
||||
}
|
||||
// 获取每日一言
|
||||
/* await getHitokoto().then(async (data) => {
|
||||
title.value!.innerText = data.data.hitokoto;
|
||||
});
|
||||
// 全局监听按下回车键
|
||||
document.addEventListener("keydown", ev => {
|
||||
if ((ev.key) === 'Enter') {
|
||||
Login()
|
||||
}
|
||||
})*/
|
||||
})
|
||||
// 图形验证码成功回调方法
|
||||
const onSlideSuccess = () =>{
|
||||
login(username.value as string, password.value as string).then(res => {
|
||||
showSlideWindow.value = false;
|
||||
let canLogin: boolean = res.data.data.canLogin;
|
||||
if (canLogin) {
|
||||
push(res.data.data);
|
||||
ElMessage.success("登录成功!");
|
||||
} else {
|
||||
ElMessage.error("用户名或密码错误!");
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.login-window {
|
||||
border: 2px var(--el-border-color);
|
||||
border-radius: var(--el-border-radius-round);
|
||||
box-shadow: var(--el-box-shadow-dark);
|
||||
background-color: rgba(255, 255, 255, 50%);
|
||||
backdrop-filter: blur(6px);
|
||||
display: flex;
|
||||
margin: 0 auto;
|
||||
width: 40vmax;
|
||||
height: 40vh;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
.input {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
/*背景图层*/
|
||||
.background {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("/img.png");
|
||||
background-size: 100% 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.title {
|
||||
font-size: max(26px, 2%);
|
||||
}
|
||||
@media screen and (max-width: 1000px) {
|
||||
.background {
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 400px){
|
||||
.title {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -4,20 +4,17 @@
|
||||
<div class="container">
|
||||
<div class="main">
|
||||
<div class="schoolIcon">
|
||||
<img src="../../../public/HangZhouIcon.png" alt="杭州电子信息技术职业学校">
|
||||
<img src="/HangZhouIcon.png" alt="杭州电子信息技术职业学校">
|
||||
<span>杭州电子信息技术职业学校</span>
|
||||
</div>
|
||||
<div id="sign-in-p" class="page active max">
|
||||
<form>
|
||||
<form @submit="Login">
|
||||
<h2>用户名</h2>
|
||||
<input class="entry" type="text" placeholder="用户名">
|
||||
<input class="entry" type="text" placeholder="用户名" v-model="username">
|
||||
<h2>密码</h2>
|
||||
<input class="entry" type="password" placeholder="密码">
|
||||
<input class="entry" type="password" placeholder="密码" v-model="password">
|
||||
<input class="submit" type="submit" value="登录">
|
||||
</form>
|
||||
<div class="forgot">
|
||||
<a href="#"><h3>忘记密码?</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -26,10 +23,92 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {onMounted, ref} from 'vue';
|
||||
import {login, autoLogin} from '../../api/user';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import {useStore} from "../../store";
|
||||
import {useRouter} from 'vue-router';
|
||||
|
||||
const username = ref<string>();
|
||||
const password = ref<string>();
|
||||
const store = useStore();
|
||||
const router = useRouter();
|
||||
|
||||
// 验证用户名和密码的格式
|
||||
const verify = () => {
|
||||
let valid = true;
|
||||
if (!username.value || !/^[a-zA-Z0-9_-]{3,16}$/.test(username.value)) {
|
||||
ElMessage.error("用户名格式不正确,应为3-16位字母或数字及下划线!");
|
||||
valid = false;
|
||||
}
|
||||
if (!password.value || !/^[a-zA-Z0-9_-~!@#$%^&*+=:><,./]{5,128}$/.test(password.value)) {
|
||||
ElMessage.error("密码格式不正确,应为5-128位允许的特殊字符!");
|
||||
valid = false;
|
||||
}
|
||||
return valid;
|
||||
};
|
||||
|
||||
// 登录函数
|
||||
const Login = () => {
|
||||
if (username.value && password.value) {
|
||||
if (verify()) {
|
||||
login(username.value, password.value).then(res => {
|
||||
let canLogin = res.data.data.canLogin;
|
||||
if (canLogin) {
|
||||
// 登录成功,进行用户数据处理并跳转
|
||||
store.$patch({
|
||||
userinfo: {
|
||||
username: res.data.data.username,
|
||||
headimg: res.data.data.base64,
|
||||
auth: res.data.data.auth,
|
||||
exclusiveColor: res.data.data.exclusiveColor,
|
||||
id: res.data.data.id
|
||||
}
|
||||
});
|
||||
router.push("/home/chat");
|
||||
ElMessage.success("登录成功!");
|
||||
} else {
|
||||
ElMessage.error("用户名或密码错误!");
|
||||
}
|
||||
}).catch(() => {
|
||||
ElMessage.error("登录请求失败!");
|
||||
});
|
||||
}
|
||||
} else {
|
||||
ElMessage.error("请输入用户名和密码!");
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
let token = window.localStorage.getItem("token");
|
||||
if (token) {
|
||||
autoLogin().then(res => {
|
||||
let data = res.data.data;
|
||||
if (data.status) {
|
||||
ElMessage.success("已为您自动登录成功, 即将进行跳转");
|
||||
store.$patch({
|
||||
userinfo: data.userinfo
|
||||
});
|
||||
router.push("/home/chat");
|
||||
} else {
|
||||
ElMessage.error("自动登录失败,请重新输入账号和密码进行登录");
|
||||
}
|
||||
}).catch(() => {
|
||||
window.localStorage.clear();
|
||||
store.$reset();
|
||||
ElMessage.error("自动登录错误,请重新登录");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keydown", event => {
|
||||
if (event.key === 'Enter') {
|
||||
Login();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style scoped>
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@ -142,7 +221,7 @@ li:after {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 0%;
|
||||
width: 0;
|
||||
border-bottom: 2px solid #FFFFFF;
|
||||
transition: 0.4s;
|
||||
}
|
||||
@ -179,10 +258,6 @@ li:after {
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
#sign-up-p {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
.entry {
|
||||
width: 100%;
|
||||
height: 2.3em;
|
||||
@ -192,7 +267,6 @@ li:after {
|
||||
|
||||
.entry {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
border: none;
|
||||
color: white;
|
||||
border: 2px solid rgba(255, 255, 255, 0);
|
||||
transition: 0.6s;
|
||||
|
@ -1,4 +1,7 @@
|
||||
<template>
|
||||
<div class="alert">
|
||||
<el-alert title="此页面为语音通话" type="warning" />
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="audios-div">
|
||||
<User ref="userComponents" v-for="(username, index) in users" :key="index" :username="username" :media-stream="localMediaStream" :web-socket="webSocketConnection" />
|
||||
@ -394,12 +397,15 @@ onUnmounted(unmounted)
|
||||
display: flex;
|
||||
border: #63ACE5 solid 2px;
|
||||
padding: 10px;
|
||||
min-width: 30%;
|
||||
min-width: 50%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.control-panel-settings {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.control-panel-settings:nth-child(2){
|
||||
width: 60%;
|
||||
}
|
||||
.control-panel-join {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
@ -14,7 +14,8 @@
|
||||
"ESNext",
|
||||
"DOM"
|
||||
],
|
||||
"skipLibCheck": true
|
||||
"skipLibCheck": true,
|
||||
"types": ["vite/client"]
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
|
@ -1,17 +0,0 @@
|
||||
// vite.config.ts
|
||||
import {defineConfig} from "vite";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import AutoImport from "unplugin-auto-import/vite";
|
||||
import Components from "unplugin-vue-components/vite";
|
||||
import {ElementPlusResolver} from "unplugin-vue-components/resolvers";
|
||||
|
||||
var vite_config_default = defineConfig({
|
||||
plugins: [vue(), AutoImport({resolvers: [ElementPlusResolver()]}), Components({resolvers: [ElementPlusResolver()]})],
|
||||
server: {
|
||||
port: 8081
|
||||
}
|
||||
});
|
||||
export {
|
||||
vite_config_default as default
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFwzMzU3MlxcXFxJZGVhUHJvamVjdHNcXFxcd2l0c1RhbGtcXFxcd2ViXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFwzMzU3MlxcXFxJZGVhUHJvamVjdHNcXFxcd2l0c1RhbGtcXFxcd2ViXFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9DOi9Vc2Vycy8zMzU3Mi9JZGVhUHJvamVjdHMvd2l0c1RhbGsvd2ViL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHtkZWZpbmVDb25maWd9IGZyb20gJ3ZpdGUnXHJcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xyXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xyXG5pbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJ1xyXG5pbXBvcnQge0VsZW1lbnRQbHVzUmVzb2x2ZXJ9IGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVycydcclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbdnVlKCksIEF1dG9JbXBvcnQoe3Jlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sfSksIENvbXBvbmVudHMoe3Jlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sfSksXSxcclxuICBzZXJ2ZXI6IHtcclxuICAgIHBvcnQ6IDgwODFcclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1QsU0FBUSxvQkFBbUI7QUFDalYsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVEsMkJBQTBCO0FBRWxDLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsV0FBVyxFQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFFO0FBQUEsRUFDdEgsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLEVBQ1I7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=
|
926
web/yarn.lock
926
web/yarn.lock
@ -1,926 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@antfu/utils@^0.6.0":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.6.3.tgz"
|
||||
integrity sha512-sEYpyyKUPOew9QsXZ8feRVMzW6DWLviwOl+/ap06UQW02A8Srbc95CPHVm4eUbiBzBgD46eyIT+przv//KSSlQ==
|
||||
|
||||
"@babel/parser@^7.15.8", "@babel/parser@^7.16.4":
|
||||
version "7.19.3"
|
||||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.19.3.tgz"
|
||||
integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==
|
||||
|
||||
"@ctrl/tinycolor@^3.4.1":
|
||||
version "3.4.1"
|
||||
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz"
|
||||
integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==
|
||||
|
||||
"@element-plus/icons-vue@^2.0.10", "@element-plus/icons-vue@^2.0.6":
|
||||
version "2.0.10"
|
||||
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz"
|
||||
integrity sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==
|
||||
|
||||
"@floating-ui/core@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.1.tgz"
|
||||
integrity sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==
|
||||
|
||||
"@floating-ui/dom@^1.0.1":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.2.tgz"
|
||||
integrity sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA==
|
||||
dependencies:
|
||||
"@floating-ui/core" "^1.0.1"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
||||
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
|
||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||
|
||||
"@nodelib/fs.walk@^1.2.3":
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
|
||||
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
||||
dependencies:
|
||||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
|
||||
version "2.11.7"
|
||||
resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
|
||||
integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
|
||||
|
||||
"@rollup/pluginutils@^5.0.2":
|
||||
version "5.0.2"
|
||||
resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz"
|
||||
integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.0"
|
||||
estree-walker "^2.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
"@types/estree@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz"
|
||||
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
|
||||
|
||||
"@types/lodash-es@*", "@types/lodash-es@^4.17.6":
|
||||
version "4.17.6"
|
||||
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz"
|
||||
integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==
|
||||
dependencies:
|
||||
"@types/lodash" "*"
|
||||
|
||||
"@types/lodash@*", "@types/lodash@^4.14.182":
|
||||
version "4.14.186"
|
||||
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.186.tgz"
|
||||
integrity sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==
|
||||
|
||||
"@types/web-bluetooth@^0.0.15":
|
||||
version "0.0.15"
|
||||
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz"
|
||||
integrity sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==
|
||||
|
||||
"@vitejs/plugin-vue@^3.1.0":
|
||||
version "3.1.2"
|
||||
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz"
|
||||
integrity sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==
|
||||
|
||||
"@volar/code-gen@0.40.13":
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.40.13.tgz"
|
||||
integrity sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==
|
||||
dependencies:
|
||||
"@volar/source-map" "0.40.13"
|
||||
|
||||
"@volar/source-map@0.40.13":
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.40.13.tgz"
|
||||
integrity sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==
|
||||
dependencies:
|
||||
"@vue/reactivity" "3.2.38"
|
||||
|
||||
"@volar/typescript-faster@0.40.13":
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz"
|
||||
integrity sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==
|
||||
dependencies:
|
||||
semver "^7.3.7"
|
||||
|
||||
"@volar/vue-language-core@0.40.13":
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz"
|
||||
integrity sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==
|
||||
dependencies:
|
||||
"@volar/code-gen" "0.40.13"
|
||||
"@volar/source-map" "0.40.13"
|
||||
"@vue/compiler-core" "^3.2.38"
|
||||
"@vue/compiler-dom" "^3.2.38"
|
||||
"@vue/compiler-sfc" "^3.2.38"
|
||||
"@vue/reactivity" "^3.2.38"
|
||||
"@vue/shared" "^3.2.38"
|
||||
|
||||
"@volar/vue-typescript@0.40.13":
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz"
|
||||
integrity sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==
|
||||
dependencies:
|
||||
"@volar/code-gen" "0.40.13"
|
||||
"@volar/typescript-faster" "0.40.13"
|
||||
"@volar/vue-language-core" "0.40.13"
|
||||
|
||||
"@vue/compiler-core@^3.2.38", "@vue/compiler-core@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.40.tgz"
|
||||
integrity sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/shared" "3.2.40"
|
||||
estree-walker "^2.0.2"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-dom@^3.2.38", "@vue/compiler-dom@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz"
|
||||
integrity sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
"@vue/compiler-sfc@^3.2.38", "@vue/compiler-sfc@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz"
|
||||
integrity sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/compiler-core" "3.2.40"
|
||||
"@vue/compiler-dom" "3.2.40"
|
||||
"@vue/compiler-ssr" "3.2.40"
|
||||
"@vue/reactivity-transform" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.25.7"
|
||||
postcss "^8.1.10"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-ssr@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz"
|
||||
integrity sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
"@vue/devtools-api@^6.4.5":
|
||||
version "6.4.5"
|
||||
resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz"
|
||||
integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==
|
||||
|
||||
"@vue/reactivity-transform@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz"
|
||||
integrity sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/compiler-core" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.25.7"
|
||||
|
||||
"@vue/reactivity@^3.2.38", "@vue/reactivity@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.40.tgz"
|
||||
integrity sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==
|
||||
dependencies:
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
"@vue/reactivity@3.2.38":
|
||||
version "3.2.38"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.38.tgz"
|
||||
integrity sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==
|
||||
dependencies:
|
||||
"@vue/shared" "3.2.38"
|
||||
|
||||
"@vue/runtime-core@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.40.tgz"
|
||||
integrity sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==
|
||||
dependencies:
|
||||
"@vue/reactivity" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
"@vue/runtime-dom@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.40.tgz"
|
||||
integrity sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==
|
||||
dependencies:
|
||||
"@vue/runtime-core" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
csstype "^2.6.8"
|
||||
|
||||
"@vue/server-renderer@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.40.tgz"
|
||||
integrity sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==
|
||||
dependencies:
|
||||
"@vue/compiler-ssr" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
"@vue/shared@^3.2.38", "@vue/shared@3.2.40":
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.40.tgz"
|
||||
integrity sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==
|
||||
|
||||
"@vue/shared@3.2.38":
|
||||
version "3.2.38"
|
||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.38.tgz"
|
||||
integrity sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==
|
||||
|
||||
"@vueuse/core@*", "@vueuse/core@^9.1.0":
|
||||
version "9.3.0"
|
||||
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.3.0.tgz"
|
||||
integrity sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==
|
||||
dependencies:
|
||||
"@types/web-bluetooth" "^0.0.15"
|
||||
"@vueuse/metadata" "9.3.0"
|
||||
"@vueuse/shared" "9.3.0"
|
||||
vue-demi "*"
|
||||
|
||||
"@vueuse/metadata@9.3.0":
|
||||
version "9.3.0"
|
||||
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.3.0.tgz"
|
||||
integrity sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==
|
||||
|
||||
"@vueuse/shared@9.3.0":
|
||||
version "9.3.0"
|
||||
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.3.0.tgz"
|
||||
integrity sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==
|
||||
dependencies:
|
||||
vue-demi "*"
|
||||
|
||||
acorn@^8.8.0:
|
||||
version "8.8.1"
|
||||
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz"
|
||||
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz"
|
||||
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
async-validator@^4.2.5:
|
||||
version "4.2.5"
|
||||
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
|
||||
integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
|
||||
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
|
||||
|
||||
axios@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmmirror.com/axios/-/axios-1.1.3.tgz"
|
||||
integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.0"
|
||||
form-data "^4.0.0"
|
||||
proxy-from-env "^1.1.0"
|
||||
|
||||
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==
|
||||
|
||||
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, 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.5.3, "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"
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
|
||||
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
csstype@^2.6.8:
|
||||
version "2.6.21"
|
||||
resolved "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz"
|
||||
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
|
||||
|
||||
dayjs@^1.11.3:
|
||||
version "1.11.5"
|
||||
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz"
|
||||
integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==
|
||||
|
||||
debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||
|
||||
element-plus@^2.2.17:
|
||||
version "2.2.17"
|
||||
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.17.tgz"
|
||||
integrity sha512-MGwMIE/q+FFD3kgS23x8HIe5043tmD1cTRwjhIX9o6fim1avFnUkrsfYRvybbz4CkyqSb185EheZS5AUPpXh2g==
|
||||
dependencies:
|
||||
"@ctrl/tinycolor" "^3.4.1"
|
||||
"@element-plus/icons-vue" "^2.0.6"
|
||||
"@floating-ui/dom" "^1.0.1"
|
||||
"@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7"
|
||||
"@types/lodash" "^4.14.182"
|
||||
"@types/lodash-es" "^4.17.6"
|
||||
"@vueuse/core" "^9.1.0"
|
||||
async-validator "^4.2.5"
|
||||
dayjs "^1.11.3"
|
||||
escape-html "^1.0.3"
|
||||
lodash "^4.17.21"
|
||||
lodash-es "^4.17.21"
|
||||
lodash-unified "^1.0.2"
|
||||
memoize-one "^6.0.0"
|
||||
normalize-wheel-es "^1.2.0"
|
||||
|
||||
esbuild-windows-64@0.15.10:
|
||||
version "0.15.10"
|
||||
resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz"
|
||||
integrity sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==
|
||||
|
||||
esbuild@^0.15.6:
|
||||
version "0.15.10"
|
||||
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.10.tgz"
|
||||
integrity sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==
|
||||
optionalDependencies:
|
||||
"@esbuild/android-arm" "0.15.10"
|
||||
"@esbuild/linux-loong64" "0.15.10"
|
||||
esbuild-android-64 "0.15.10"
|
||||
esbuild-android-arm64 "0.15.10"
|
||||
esbuild-darwin-64 "0.15.10"
|
||||
esbuild-darwin-arm64 "0.15.10"
|
||||
esbuild-freebsd-64 "0.15.10"
|
||||
esbuild-freebsd-arm64 "0.15.10"
|
||||
esbuild-linux-32 "0.15.10"
|
||||
esbuild-linux-64 "0.15.10"
|
||||
esbuild-linux-arm "0.15.10"
|
||||
esbuild-linux-arm64 "0.15.10"
|
||||
esbuild-linux-mips64le "0.15.10"
|
||||
esbuild-linux-ppc64le "0.15.10"
|
||||
esbuild-linux-riscv64 "0.15.10"
|
||||
esbuild-linux-s390x "0.15.10"
|
||||
esbuild-netbsd-64 "0.15.10"
|
||||
esbuild-openbsd-64 "0.15.10"
|
||||
esbuild-sunos-64 "0.15.10"
|
||||
esbuild-windows-32 "0.15.10"
|
||||
esbuild-windows-64 "0.15.10"
|
||||
esbuild-windows-arm64 "0.15.10"
|
||||
|
||||
escape-html@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
|
||||
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
|
||||
|
||||
escape-string-regexp@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz"
|
||||
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||
|
||||
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==
|
||||
|
||||
fast-glob@^3.2.12:
|
||||
version "3.2.12"
|
||||
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz"
|
||||
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "^2.0.2"
|
||||
"@nodelib/fs.walk" "^1.2.3"
|
||||
glob-parent "^5.1.2"
|
||||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.4"
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz"
|
||||
integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
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"
|
||||
|
||||
follow-redirects@^1.15.0:
|
||||
version "1.15.2"
|
||||
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz"
|
||||
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
|
||||
|
||||
form-data@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz"
|
||||
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
|
||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||
|
||||
glob-parent@^5.1.2, 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"
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz"
|
||||
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.3.5"
|
||||
resolved "https://registry.npmmirror.com/immutable/-/immutable-4.3.5.tgz"
|
||||
integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==
|
||||
|
||||
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-core-module@^2.9.0:
|
||||
version "2.10.0"
|
||||
resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz"
|
||||
integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
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==
|
||||
|
||||
jsonc-parser@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz"
|
||||
integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
|
||||
|
||||
local-pkg@^0.4.2:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz"
|
||||
integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==
|
||||
|
||||
lodash-es@*, lodash-es@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
|
||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||
|
||||
lodash-unified@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz"
|
||||
integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
|
||||
|
||||
lodash@*, lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
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.25.7:
|
||||
version "0.25.9"
|
||||
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz"
|
||||
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
|
||||
dependencies:
|
||||
sourcemap-codec "^1.4.8"
|
||||
|
||||
magic-string@^0.26.7:
|
||||
version "0.26.7"
|
||||
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz"
|
||||
integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==
|
||||
dependencies:
|
||||
sourcemap-codec "^1.4.8"
|
||||
|
||||
memoize-one@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz"
|
||||
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
|
||||
|
||||
merge2@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
|
||||
micromatch@^4.0.4:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.52.0:
|
||||
version "1.52.0"
|
||||
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
|
||||
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||
|
||||
mime-types@^2.1.12:
|
||||
version "2.1.35"
|
||||
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
|
||||
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||
dependencies:
|
||||
mime-db "1.52.0"
|
||||
|
||||
minimatch@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz"
|
||||
integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
mlly@^0.5.16:
|
||||
version "0.5.16"
|
||||
resolved "https://registry.npmmirror.com/mlly/-/mlly-0.5.16.tgz"
|
||||
integrity sha512-LaJ8yuh4v0zEmge/g3c7jjFlhoCPfQn6RCjXgm9A0Qiuochq4BcuOxVfWmdnCoLTlg2MV+hqhOek+W2OhG0Lwg==
|
||||
dependencies:
|
||||
acorn "^8.8.0"
|
||||
pathe "^0.3.8"
|
||||
pkg-types "^0.3.5"
|
||||
ufo "^0.8.5"
|
||||
|
||||
ms@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
nanoid@^3.3.4:
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz"
|
||||
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
|
||||
|
||||
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==
|
||||
|
||||
normalize-wheel-es@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz"
|
||||
integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
|
||||
|
||||
path-parse@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
pathe@^0.3.8, pathe@^0.3.9:
|
||||
version "0.3.9"
|
||||
resolved "https://registry.npmmirror.com/pathe/-/pathe-0.3.9.tgz"
|
||||
integrity sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==
|
||||
|
||||
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, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pinia@^2.0.28:
|
||||
version "2.0.28"
|
||||
resolved "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz"
|
||||
integrity sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.4.5"
|
||||
vue-demi "*"
|
||||
|
||||
pkg-types@^0.3.5:
|
||||
version "0.3.6"
|
||||
resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-0.3.6.tgz"
|
||||
integrity sha512-uQZutkkh6axl1GxDm5/+8ivVdwuJ5pyDGqJeSiIWIUWIqYiK3p9QKozN/Rv6eVvFoeSWkN1uoYeSDBwwBJBtbg==
|
||||
dependencies:
|
||||
jsonc-parser "^3.2.0"
|
||||
mlly "^0.5.16"
|
||||
pathe "^0.3.9"
|
||||
|
||||
postcss@^8.1.10, postcss@^8.4.16:
|
||||
version "8.4.17"
|
||||
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.17.tgz"
|
||||
integrity sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==
|
||||
dependencies:
|
||||
nanoid "^3.3.4"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
|
||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz"
|
||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
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"
|
||||
|
||||
resolve@^1.22.1:
|
||||
version "1.22.1"
|
||||
resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz"
|
||||
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||
dependencies:
|
||||
is-core-module "^2.9.0"
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rollup@^1.20.0||^2.0.0||^3.0.0, rollup@~2.78.0:
|
||||
version "2.78.1"
|
||||
resolved "https://registry.npmmirror.com/rollup/-/rollup-2.78.1.tgz"
|
||||
integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz"
|
||||
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
sass@*, sass@^1.71.1:
|
||||
version "1.75.0"
|
||||
resolved "https://registry.npmmirror.com/sass/-/sass-1.75.0.tgz"
|
||||
integrity sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
source-map-js ">=0.6.2 <2.0.0"
|
||||
|
||||
scule@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.npmmirror.com/scule/-/scule-0.3.2.tgz"
|
||||
integrity sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==
|
||||
|
||||
semver@^7.3.7:
|
||||
version "7.3.7"
|
||||
resolved "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz"
|
||||
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
source-map-js@^1.0.2, "source-map-js@>=0.6.2 <2.0.0":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
||||
source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
sourcemap-codec@^1.4.8:
|
||||
version "1.4.8"
|
||||
resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
|
||||
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
|
||||
|
||||
strip-literal@^0.4.2:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.npmmirror.com/strip-literal/-/strip-literal-0.4.2.tgz"
|
||||
integrity sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==
|
||||
dependencies:
|
||||
acorn "^8.8.0"
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
|
||||
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"
|
||||
|
||||
ts-md5@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.npmmirror.com/ts-md5/-/ts-md5-1.3.1.tgz"
|
||||
integrity sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==
|
||||
|
||||
typescript@*, typescript@^4.6.4, typescript@>=4.4.4:
|
||||
version "4.8.4"
|
||||
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.8.4.tgz"
|
||||
integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
|
||||
|
||||
ufo@^0.8.5:
|
||||
version "0.8.6"
|
||||
resolved "https://registry.npmmirror.com/ufo/-/ufo-0.8.6.tgz"
|
||||
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
|
||||
|
||||
unimport@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.npmmirror.com/unimport/-/unimport-0.7.0.tgz"
|
||||
integrity sha512-Cr0whz4toYVid3JHlni/uThwavDVVCk6Zw0Gxnol1c7DprTA+Isr4T+asO6rDGkhkgV7r3vSdSs5Ym8F15JA+w==
|
||||
dependencies:
|
||||
"@rollup/pluginutils" "^5.0.2"
|
||||
escape-string-regexp "^5.0.0"
|
||||
fast-glob "^3.2.12"
|
||||
local-pkg "^0.4.2"
|
||||
magic-string "^0.26.7"
|
||||
mlly "^0.5.16"
|
||||
pathe "^0.3.9"
|
||||
pkg-types "^0.3.5"
|
||||
scule "^0.3.2"
|
||||
strip-literal "^0.4.2"
|
||||
unplugin "^0.10.2"
|
||||
|
||||
unplugin-auto-import@^0.11.4:
|
||||
version "0.11.4"
|
||||
resolved "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.11.4.tgz"
|
||||
integrity sha512-lh/bRDRYwgnb9Cm5ur8TlTMGxA1GRZvgzCvBIf0vyuVRy7ebWcWefFElpUDpr8vLl+ZRGsPVCOGiYJ8TCR625Q==
|
||||
dependencies:
|
||||
"@antfu/utils" "^0.6.0"
|
||||
"@rollup/pluginutils" "^5.0.2"
|
||||
local-pkg "^0.4.2"
|
||||
magic-string "^0.26.7"
|
||||
unimport "^0.7.0"
|
||||
unplugin "^0.10.2"
|
||||
|
||||
unplugin-vue-components@^0.22.9:
|
||||
version "0.22.9"
|
||||
resolved "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.9.tgz"
|
||||
integrity sha512-qBvooq3EgpjtYicxeccRUGUBBQCCw9rJ0kHPZPOSJd8TBZViSv86vuKLTRDHPyjWtclwOIkVStZJfPdJFhYUMw==
|
||||
dependencies:
|
||||
"@antfu/utils" "^0.6.0"
|
||||
"@rollup/pluginutils" "^5.0.2"
|
||||
chokidar "^3.5.3"
|
||||
debug "^4.3.4"
|
||||
fast-glob "^3.2.12"
|
||||
local-pkg "^0.4.2"
|
||||
magic-string "^0.26.7"
|
||||
minimatch "^5.1.0"
|
||||
resolve "^1.22.1"
|
||||
unplugin "^0.10.1"
|
||||
|
||||
unplugin@^0.10.1, unplugin@^0.10.2:
|
||||
version "0.10.2"
|
||||
resolved "https://registry.npmmirror.com/unplugin/-/unplugin-0.10.2.tgz"
|
||||
integrity sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA==
|
||||
dependencies:
|
||||
acorn "^8.8.0"
|
||||
chokidar "^3.5.3"
|
||||
webpack-sources "^3.2.3"
|
||||
webpack-virtual-modules "^0.4.5"
|
||||
|
||||
vite@^3.0.0, vite@^3.1.0:
|
||||
version "3.1.4"
|
||||
resolved "https://registry.npmmirror.com/vite/-/vite-3.1.4.tgz"
|
||||
integrity sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==
|
||||
dependencies:
|
||||
esbuild "^0.15.6"
|
||||
postcss "^8.4.16"
|
||||
resolve "^1.22.1"
|
||||
rollup "~2.78.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
vue-demi@*:
|
||||
version "0.13.11"
|
||||
resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz"
|
||||
integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
|
||||
|
||||
vue-router@^4.1.6:
|
||||
version "4.1.6"
|
||||
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz"
|
||||
integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.4.5"
|
||||
|
||||
vue-tsc@^0.40.4:
|
||||
version "0.40.13"
|
||||
resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.40.13.tgz"
|
||||
integrity sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==
|
||||
dependencies:
|
||||
"@volar/vue-language-core" "0.40.13"
|
||||
"@volar/vue-typescript" "0.40.13"
|
||||
|
||||
"vue@^2.6.14 || ^3.2.0", "vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.2.37, "vue@2 || 3", vue@3.2.40:
|
||||
version "3.2.40"
|
||||
resolved "https://registry.npmmirror.com/vue/-/vue-3.2.40.tgz"
|
||||
integrity sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.2.40"
|
||||
"@vue/compiler-sfc" "3.2.40"
|
||||
"@vue/runtime-dom" "3.2.40"
|
||||
"@vue/server-renderer" "3.2.40"
|
||||
"@vue/shared" "3.2.40"
|
||||
|
||||
vue3-slide-verify@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.npmmirror.com/vue3-slide-verify/-/vue3-slide-verify-1.1.4.tgz"
|
||||
integrity sha512-er2d9TSPsF5CcmoxBfP6eSkc4IHROwXu6Ytghkwf52apXpXy2ZtW3tOgHnmFWb3GHESKxZ9bsFXqSX+fJ6hjrg==
|
||||
dependencies:
|
||||
vue "^3.2.25"
|
||||
|
||||
webpack-sources@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz"
|
||||
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||
|
||||
webpack-virtual-modules@^0.4.5:
|
||||
version "0.4.6"
|
||||
resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz"
|
||||
integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==
|
||||
|
||||
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