mirror of
https://github.com/Megghy/vtsuru.live.git
synced 2025-12-06 18:36:55 +08:00
update eventfetcher info display
This commit is contained in:
42
package.json
42
package.json
@@ -8,50 +8,52 @@
|
||||
"lint": "vite lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^20.10.6",
|
||||
"@typescript-eslint/eslint-plugin": "^6.16.0",
|
||||
"@types/node": "^20.11.5",
|
||||
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
||||
"@vicons/fluent": "^0.12.0",
|
||||
"@vitejs/plugin-vue": "^5.0.1",
|
||||
"@vueuse/core": "^10.7.1",
|
||||
"@vueuse/router": "^10.7.1",
|
||||
"date-fns": "^3.0.6",
|
||||
"easy-speech": "^2.2.0",
|
||||
"@vitejs/plugin-vue": "^5.0.3",
|
||||
"@vueuse/core": "^10.7.2",
|
||||
"@vueuse/router": "^10.7.2",
|
||||
"date-fns": "^3.2.0",
|
||||
"easy-speech": "^2.3.1",
|
||||
"echarts": "^5.4.3",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-oxlint": "^0.2.0",
|
||||
"eslint-plugin-prettier": "^5.1.2",
|
||||
"fast-xml-parser": "^4.3.2",
|
||||
"eslint-plugin-oxlint": "^0.2.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"fast-xml-parser": "^4.3.3",
|
||||
"file-saver": "^2.0.5",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"html2canvas": "^1.4.1",
|
||||
"linqts": "^1.15.0",
|
||||
"mitt": "^3.0.1",
|
||||
"pinia": "^2.1.7",
|
||||
"prettier": "^3.1.1",
|
||||
"prettier": "^3.2.4",
|
||||
"qrcode.vue": "^3.4.1",
|
||||
"queue-typescript": "^1.0.1",
|
||||
"vite": "^5.0.10",
|
||||
"uuid": "^9.0.1",
|
||||
"vite": "^5.0.12",
|
||||
"vite-svg-loader": "^5.1.0",
|
||||
"vue": "^3.4.1",
|
||||
"vue": "^3.4.15",
|
||||
"vue-echarts": "^6.6.8",
|
||||
"vue-request": "^2.0.4",
|
||||
"vue-router": "^4.2.5",
|
||||
"vue-turnstile": "^1.0.6",
|
||||
"vue-turnstile": "^1.0.7",
|
||||
"vue3-aplayer": "^1.7.3",
|
||||
"vue3-marquee": "^4.1.0",
|
||||
"vue3-marquee": "^4.2.0-beta.1",
|
||||
"vueuc": "^0.4.58",
|
||||
"worker-timers": "^7.0.80"
|
||||
"worker-timers": "^7.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/eslint": "^8",
|
||||
"@typescript-eslint/parser": "^6.16.0",
|
||||
"@types/eslint": "^8.56.2",
|
||||
"@types/uuid": "^9",
|
||||
"@typescript-eslint/parser": "^6.19.0",
|
||||
"@vicons/ionicons5": "^0.12.0",
|
||||
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
||||
"@vue/eslint-config-typescript": "^12.0.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-vue": "^9.19.2",
|
||||
"naive-ui": "^2.36.0",
|
||||
"eslint-plugin-vue": "^9.20.1",
|
||||
"naive-ui": "^2.37.3",
|
||||
"stylus": "^0.62.0",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
|
||||
14
src/App.vue
14
src/App.vue
@@ -6,12 +6,14 @@
|
||||
<Suspense>
|
||||
<TempComponent>
|
||||
<NLayoutContent style="height: 100%" v-if="layout != 'obs'">
|
||||
<ViewerLayout v-if="layout == 'viewer'" />
|
||||
<ManageLayout v-else-if="layout == 'manage'" />
|
||||
<OpenLiveLayout v-else-if="layout == 'open-live'" />
|
||||
<template v-else-if="layout == ''">
|
||||
<RouterView />
|
||||
</template>
|
||||
<NElement>
|
||||
<ViewerLayout v-if="layout == 'viewer'" />
|
||||
<ManageLayout v-else-if="layout == 'manage'" />
|
||||
<OpenLiveLayout v-else-if="layout == 'open-live'" />
|
||||
<template v-else-if="layout == ''">
|
||||
<RouterView />
|
||||
</template>
|
||||
</NElement>
|
||||
</NLayoutContent>
|
||||
<RouterView v-else />
|
||||
</TempComponent>
|
||||
|
||||
@@ -71,3 +71,12 @@ export function downloadImage(imageSrc: string, filename: string) {
|
||||
}
|
||||
image.src = imageSrc
|
||||
}
|
||||
export function getBase64(file: File | undefined | null): Promise<string | undefined> {
|
||||
if (!file) return new Promise((resolve) => resolve(undefined))
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.readAsDataURL(file)
|
||||
reader.onload = () => resolve(reader.result?.toString().split(',')[1] || undefined)
|
||||
reader.onerror = (error) => reject(error)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@ export interface AccountInfo extends UserInfo {
|
||||
eventFetcherOnline: boolean
|
||||
eventFetcherStatus: string
|
||||
eventFetcherStatusV3: { [errorCode: string]: string }
|
||||
eventFetcherTodayReceive: number
|
||||
eventFetcherVersion?: string
|
||||
|
||||
nextSendEmailTime?: number
|
||||
isServerFetcherOnline: boolean
|
||||
@@ -525,4 +527,19 @@ export interface ResponsePointGoodModel {
|
||||
images: string[]
|
||||
status: GoodsStatus
|
||||
type: GoodsTypes
|
||||
}
|
||||
|
||||
export interface PointGoodsModel {
|
||||
id?: number
|
||||
name: string
|
||||
count: number
|
||||
price: number
|
||||
tags: TagInfo[]
|
||||
coverImageBase64?: string
|
||||
status: GoodsStatus
|
||||
type: GoodsTypes
|
||||
collectUrl?: string
|
||||
embedCollectUrl?: boolean
|
||||
description: string
|
||||
content?: string
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { useAccount } from '@/api/account'
|
||||
import { Info24Filled } from '@vicons/fluent'
|
||||
import { NAlert, NButton, NDivider, NIcon, NTag, NTooltip } from 'naive-ui'
|
||||
import { FlashCheckmark16Filled, Info24Filled } from '@vicons/fluent'
|
||||
import { NAlert, NButton, NDivider, NIcon, NTag, NText, NTooltip } from 'naive-ui'
|
||||
import { computed } from 'vue'
|
||||
|
||||
const accountInfo = useAccount()
|
||||
@@ -37,8 +37,18 @@ const status = computed(() => {
|
||||
<NButton type="info" size="small" tag="a" href="https://www.yuque.com/megghy/dez70g/vfvcyv3024xvaa1p" target="_blank"> 关于 EVENT-FETCHER </NButton>
|
||||
</NTooltip>
|
||||
</template>
|
||||
<NTooltip v-if="status != 'info'">
|
||||
<template #trigger>
|
||||
<NTag size="small" :color="{ borderColor: 'white', textColor: 'white', color: '#4b6159' }">
|
||||
<NIcon :component="FlashCheckmark16Filled" />
|
||||
{{ accountInfo?.eventFetcherVersion ?? '未知' }}
|
||||
</NTag>
|
||||
</template>
|
||||
你所使用的版本
|
||||
</NTooltip>
|
||||
<NDivider vertical/>
|
||||
<NTag :type="status">
|
||||
<template v-if="accountInfo?.eventFetcherStatus">
|
||||
<template v-if="accountInfo?.eventFetcherOnline == true && accountInfo?.eventFetcherStatus">
|
||||
此版本已过期, 请更新
|
||||
<NTooltip trigger="click">
|
||||
<template #trigger>
|
||||
@@ -48,7 +58,13 @@ const status = computed(() => {
|
||||
</NTooltip>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="status == 'success'"> 运行中 </template>
|
||||
<template v-if="status == 'success'">
|
||||
运行中 | 今日已接收
|
||||
<NText color="white" strong>
|
||||
{{ accountInfo?.eventFetcherTodayReceive }}
|
||||
</NText>
|
||||
条
|
||||
</template>
|
||||
<template v-else-if="status == 'warning'">
|
||||
<template v-if="accountInfo?.eventFetcherStatusV3"> 异常: {{ Object.values(accountInfo.eventFetcherStatusV3).join('; ') }} </template>
|
||||
</template>
|
||||
|
||||
@@ -34,6 +34,11 @@ function onClick() {
|
||||
<NText depth="3" style="font-size: 13px">
|
||||
<NTime :time="item.createAt" />
|
||||
</NText>
|
||||
<br/>
|
||||
<NText depth="3" style="font-size: 13px">
|
||||
结束:
|
||||
<NTime :time="item.endAt" />
|
||||
</NText>
|
||||
<br />
|
||||
<NText depth="3">
|
||||
<NEllipsis>
|
||||
|
||||
20
src/components/manage/PointGoodsItem.vue
Normal file
20
src/components/manage/PointGoodsItem.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<script setup lang="ts">
|
||||
import { ResponsePointGoodModel } from '@/api/api-models'
|
||||
import { NCard } from 'naive-ui'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = defineProps<{
|
||||
goods: ResponsePointGoodModel
|
||||
}>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NCard>
|
||||
<template #cover>
|
||||
<img :src="goods.cover" />
|
||||
</template>
|
||||
<template #header>
|
||||
{{ goods.name }}
|
||||
</template>
|
||||
</NCard>
|
||||
</template>
|
||||
@@ -34,6 +34,7 @@ export const FEEDBACK_API_URL = { toString: () => `${BASE_API()}feedback/` }
|
||||
export const MUSIC_REQUEST_API_URL = { toString: () => `${BASE_API()}music-request/` }
|
||||
export const VTSURU_API_URL = { toString: () => `${BASE_API()}vtsuru/` }
|
||||
export const POINT_API_URL = { toString: () => `${BASE_API()}point/` }
|
||||
export const BILI_AUTH_API_URL = { toString: () => `${BASE_API()}bili-auth/` }
|
||||
|
||||
export const ScheduleTemplateMap = {
|
||||
'': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) },
|
||||
|
||||
@@ -66,6 +66,15 @@ const routes: Array<RouteRecordRaw> = [
|
||||
keepAlive: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/bili-auth',
|
||||
name: 'bili-auth',
|
||||
component: () => import('@/views/BiliAuthView.vue'),
|
||||
meta: {
|
||||
title: 'Bilibili 账户认证',
|
||||
keepAlive: true,
|
||||
},
|
||||
},
|
||||
manage,
|
||||
user,
|
||||
obs,
|
||||
|
||||
165
src/views/BiliAuthView.vue
Normal file
165
src/views/BiliAuthView.vue
Normal file
@@ -0,0 +1,165 @@
|
||||
<script setup lang="ts">
|
||||
import { GetSelfAccount, useAccount } from '@/api/account'
|
||||
import { QueryGetAPI } from '@/api/query'
|
||||
import { BILI_API_URL, BILI_AUTH_API_URL } from '@/data/constants'
|
||||
import { useStorage } from '@vueuse/core'
|
||||
import { randomUUID } from 'crypto'
|
||||
import { NFlex, NAlert, NButton, NCard, NCountdown, NInput, NInputGroup, NInputNumber, NSpace, NSpin, NText, useMessage, NTimeline, NTimelineItem, NSteps, NStep } from 'naive-ui'
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
type AuthStartModel = {
|
||||
code: string
|
||||
endAt: number
|
||||
startAt: number
|
||||
targetRoomId: number
|
||||
}
|
||||
|
||||
const message = useMessage()
|
||||
|
||||
const guidKey = useStorage('Bili.Auth.Key', uuidv4())
|
||||
const biliToken = useStorage<string>('Bili.Auth.Token', null)
|
||||
|
||||
const startModel = ref<AuthStartModel>()
|
||||
|
||||
const currentStep = ref(biliToken.value ? 2 : 0)
|
||||
|
||||
const isStart = computed(() => {
|
||||
return currentStep.value > 0
|
||||
})
|
||||
const timeLeft = ref(0)
|
||||
const timeOut = ref(false)
|
||||
|
||||
const timer = ref()
|
||||
|
||||
function onStartVerify() {
|
||||
QueryGetAPI<AuthStartModel>(BILI_AUTH_API_URL + 'start', {
|
||||
key: guidKey.value,
|
||||
}).then((data) => {
|
||||
if (data.code == 200) {
|
||||
message.info('已开始认证流程, 请前往直播间发送认证码')
|
||||
checkStatus()
|
||||
currentStep.value = 1
|
||||
timer.value = setInterval(checkStatus, 2500)
|
||||
startModel.value = data.data
|
||||
}
|
||||
})
|
||||
}
|
||||
async function checkStatus() {
|
||||
const data = await QueryGetAPI(BILI_AUTH_API_URL + 'status', {
|
||||
key: guidKey.value,
|
||||
})
|
||||
if (data.code == 201) {
|
||||
startModel.value = data.data as AuthStartModel
|
||||
checkTimeLeft()
|
||||
return true
|
||||
} else if (data.code == 200) {
|
||||
clearInterval(timer.value)
|
||||
message.success('认证成功')
|
||||
|
||||
biliToken.value = data.data as string
|
||||
currentStep.value = 2
|
||||
|
||||
return true
|
||||
} else if (data.code == 400 && isStart.value) {
|
||||
timeOut.value = true
|
||||
clearInterval(timer.value)
|
||||
message.error('认证超时')
|
||||
return false
|
||||
}
|
||||
return false
|
||||
}
|
||||
function checkTimeLeft() {
|
||||
if (startModel.value) {
|
||||
timeLeft.value = startModel.value.endAt - Date.now()
|
||||
if (timeLeft.value <= 0) {
|
||||
timeOut.value = true
|
||||
}
|
||||
}
|
||||
}
|
||||
function copyCode() {
|
||||
if (navigator.clipboard) {
|
||||
navigator.clipboard.writeText(startModel.value?.code ?? '')
|
||||
message.success('已复制认证码到剪切板')
|
||||
} else {
|
||||
message.warning('当前环境不支持自动复制, 请手动选择并复制')
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
if (!biliToken.value) {
|
||||
if (await checkStatus()) {
|
||||
currentStep.value = 1
|
||||
timer.value = setInterval(checkStatus, 5000)
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NFlex justify="center" align="center" style="height: 100vh">
|
||||
<NCard embedded style="margin: 20px">
|
||||
<template #header> Bilibili 身份验证 </template>
|
||||
<NFlex :wrap="false">
|
||||
<NSteps :current="currentStep + 1" vertical style="max-width: 300px">
|
||||
<NStep title="准备认证" description="就是开始认证前的一个步骤" />
|
||||
<NStep title="进行认证" description="你需要在指定直播间输入一串验证码来证明自己的身份" />
|
||||
<NStep title="认证完成" description="现在就已经通过了认证!" />
|
||||
</NSteps>
|
||||
<template v-if="currentStep == 1">
|
||||
<NSpace vertical justify="center" align="center" style="width: 100%">
|
||||
<template v-if="!timeOut">
|
||||
<NSpin />
|
||||
<span> 剩余 <NCountdown :duration="timeLeft - Date.now()" /> </span>
|
||||
<NInputGroup>
|
||||
<NInput :value="startModel?.code" :allow-input="() => false" />
|
||||
<NButton @click="copyCode"> 复制认证码 </NButton>
|
||||
</NInputGroup>
|
||||
<NButton type="primary" tag="a" :href="'https://live.bilibili.com/' + startModel?.targetRoomId" target="_blank"> 前往直播间 </NButton>
|
||||
</template>
|
||||
<NAlert v-else type="error">
|
||||
认证超时
|
||||
<NButton
|
||||
@click="
|
||||
() => {
|
||||
currentStep = 0
|
||||
timeOut = false
|
||||
}
|
||||
"
|
||||
type="error"
|
||||
>
|
||||
重新开始
|
||||
</NButton>
|
||||
</NAlert>
|
||||
</NSpace>
|
||||
</template>
|
||||
<template v-else-if="currentStep == 0">
|
||||
<NSpace vertical justify="center" align="center" style="width: 100%">
|
||||
<NAlert type="info">
|
||||
<NText>
|
||||
点击
|
||||
<NText type="primary" strong> 开始认证 </NText>
|
||||
后请在 2 分钟之内使用
|
||||
<NText strong type="primary"> 需要认证的账户 </NText>
|
||||
在指定的直播间直播间内发送给出的验证码
|
||||
</NText>
|
||||
</NAlert>
|
||||
<NText depth="3" style="font-size: 15px"> 准备好了吗? </NText>
|
||||
<NButton size="large" type="primary" @click="onStartVerify"> 开始认证 </NButton>
|
||||
</NSpace>
|
||||
</template>
|
||||
<template v-else-if="currentStep == 2">
|
||||
<NFlex justify="center" align="center" vertical style="width: 100%">
|
||||
<NAlert type="success"> 你已完成验证! 请妥善保存你的登陆链接, 请勿让其他人获取. 丢失后可以再次通过认证流程获得 </NAlert>
|
||||
<NText> 你的登陆链接为: </NText>
|
||||
<NInputGroup>
|
||||
<NInput :value="`https://vtsuru.live/point?auth=${biliToken}`" type="textarea" :allow-input="() => false" />
|
||||
<NButton @click="copyCode" type="info" style="height: 100%;"> 复制登陆链接 </NButton>
|
||||
</NInputGroup>
|
||||
<NButton @click="" type="primary"> 前往个人中心 </NButton>
|
||||
</NFlex>
|
||||
</template>
|
||||
</NFlex>
|
||||
</NCard>
|
||||
</NFlex>
|
||||
</template>
|
||||
@@ -550,7 +550,7 @@ onMounted(() => {
|
||||
<RegisterAndLogin style="max-width: 500px; min-width: 350px" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<NSpin :loading="isLoadingAccount"> 正在请求账户数据... </NSpin>
|
||||
<NSpin :loading="isLoadingAccount" style="overflow: hidden;"> 正在请求账户数据... </NSpin>
|
||||
</template>
|
||||
</NLayoutContent>
|
||||
</template>
|
||||
|
||||
@@ -1,19 +1,100 @@
|
||||
<script setup lang="ts">
|
||||
import { getBase64 } from '@/Utils'
|
||||
import { DisableFunction, EnableFunction, useAccount } from '@/api/account'
|
||||
import { ResponsePointGoodModel, FunctionTypes } from '@/api/api-models'
|
||||
import { QueryGetAPI } from '@/api/query'
|
||||
import { ResponsePointGoodModel, FunctionTypes, PointGoodsModel, GoodsTypes, GoodsStatus, TagInfo } from '@/api/api-models'
|
||||
import { QueryGetAPI, QueryPostAPI } from '@/api/query'
|
||||
import { POINT_API_URL } from '@/data/constants'
|
||||
import { NAlert, NButton, NDivider, NModal, NSwitch, NTabPane, NTabs, NText, useMessage } from 'naive-ui'
|
||||
import { ref } from 'vue'
|
||||
import { Info24Filled } from '@vicons/fluent'
|
||||
import { List } from 'linqts'
|
||||
import {
|
||||
NAlert,
|
||||
NButton,
|
||||
NDivider,
|
||||
NForm,
|
||||
NFormItem,
|
||||
NInput,
|
||||
NModal,
|
||||
NSwitch,
|
||||
NTabPane,
|
||||
NTabs,
|
||||
NText,
|
||||
useMessage,
|
||||
NFlex,
|
||||
NInputNumber,
|
||||
NRadioGroup,
|
||||
NRadio,
|
||||
NTooltip,
|
||||
NIcon,
|
||||
NCheckbox,
|
||||
NRadioButton,
|
||||
NUpload,
|
||||
UploadFileInfo,
|
||||
FormItemRule,
|
||||
NScrollbar,
|
||||
FormValidationError,
|
||||
NSelect,
|
||||
} from 'naive-ui'
|
||||
import { computed, ref } from 'vue'
|
||||
|
||||
const message = useMessage()
|
||||
const accountInfo = useAccount()
|
||||
|
||||
const goods = ref<ResponsePointGoodModel[]>(await getGoods())
|
||||
const addGoodsModel = ref<PointGoodsModel>({
|
||||
type: GoodsTypes.Virtual,
|
||||
status: GoodsStatus.Normal,
|
||||
} as PointGoodsModel)
|
||||
|
||||
const showAddGoodsModal = ref(false)
|
||||
|
||||
const isAllowedPrivacyPolicy = ref(false)
|
||||
|
||||
const fileList = ref<UploadFileInfo[]>([])
|
||||
|
||||
const rules = {
|
||||
name: {
|
||||
required: true,
|
||||
message: '请输入礼物名称',
|
||||
},
|
||||
price: {
|
||||
required: true,
|
||||
message: '请输入礼物价格',
|
||||
},
|
||||
content: {
|
||||
required: true,
|
||||
message: '请输入虚拟礼物的具体内容',
|
||||
validator: (rule: FormItemRule, value: string) => {
|
||||
return addGoodsModel.value.type != GoodsTypes.Virtual || (value?.length ?? 0) > 0
|
||||
},
|
||||
},
|
||||
privacy: {
|
||||
required: true,
|
||||
message: '需要阅读并同意本站隐私政策',
|
||||
validator: (rule: FormItemRule, value: boolean) => {
|
||||
return (addGoodsModel.value.type != GoodsTypes.Physical && addGoodsModel.value.collectUrl != undefined) || isAllowedPrivacyPolicy.value
|
||||
},
|
||||
},
|
||||
}
|
||||
const formRef = ref()
|
||||
|
||||
const existTags = computed(() => {
|
||||
//获取所有已存在商品的tags并去重
|
||||
const tempSet = new Set<TagInfo>()
|
||||
for (let i = 0; i < goods.value.length; i++) {
|
||||
for (let j = 0; j < goods.value[i].tags.length; j++) {
|
||||
tempSet.add(goods.value[i].tags[j])
|
||||
}
|
||||
}
|
||||
return Array.from(tempSet).map((item) => {
|
||||
return { label: item.name, value: item.id }
|
||||
})
|
||||
})
|
||||
|
||||
async function getGoods() {
|
||||
try {
|
||||
var resp = await QueryGetAPI<ResponsePointGoodModel[]>(POINT_API_URL + 'get-goods')
|
||||
var resp = await QueryGetAPI<ResponsePointGoodModel[]>(POINT_API_URL + 'get-goods', {
|
||||
id: accountInfo.value?.id,
|
||||
})
|
||||
if (resp.code == 200) {
|
||||
return resp.data
|
||||
} else {
|
||||
@@ -37,6 +118,42 @@ async function setFunctionEnable(enable: boolean) {
|
||||
message.error('无法' + (enable ? '启用' : '禁用') + '积分系统')
|
||||
}
|
||||
}
|
||||
async function updateGoods(e: MouseEvent) {
|
||||
e.preventDefault()
|
||||
if (!formRef.value) return
|
||||
await formRef.value
|
||||
.validate()
|
||||
.then(async () => {
|
||||
if (fileList.value.length > 0) {
|
||||
addGoodsModel.value.coverImageBase64 = await getBase64(fileList.value[0].file)
|
||||
}
|
||||
await QueryPostAPI<ResponsePointGoodModel>(POINT_API_URL + 'update-goods', addGoodsModel.value)
|
||||
.then((data) => {
|
||||
if (data.code == 200) {
|
||||
message.success('成功')
|
||||
} else {
|
||||
message.error('失败: ' + data.message)
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error('失败: ' + err)
|
||||
console.error(err)
|
||||
})
|
||||
})
|
||||
.catch((err: unknown) => {
|
||||
console.log(err)
|
||||
message.error('表单验证失败')
|
||||
})
|
||||
}
|
||||
function OnFileListChange(files: UploadFileInfo[]) {
|
||||
if (files.length == 1) {
|
||||
var file = files[0]
|
||||
if ((file.file?.size ?? 0) > 10 * 1024 * 1024) {
|
||||
message.error('文件大小不能超过10MB')
|
||||
fileList.value = []
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -50,10 +167,94 @@ async function setFunctionEnable(enable: boolean) {
|
||||
</NText>
|
||||
</NAlert>
|
||||
<NTabs>
|
||||
<NTabPane name="goods" tab="商品">
|
||||
<NTabPane name="goods" tab="礼物">
|
||||
<NFlex>
|
||||
<NButton type="primary" @click="showAddGoodsModal = true"> 添加礼物 </NButton>
|
||||
</NFlex>
|
||||
<NDivider />
|
||||
</NTabPane>
|
||||
</NTabs>
|
||||
|
||||
<NModal> </NModal>
|
||||
<NModal v-model:show="showAddGoodsModal" preset="card" style="width: 600px; max-width: 90%" title="添加礼物">
|
||||
<NScrollbar style="max-height: 80vh">
|
||||
<NForm ref="formRef" :model="addGoodsModel" :rules="rules">
|
||||
<NFormItem path="name" label="名称" required>
|
||||
<NInput v-model:value="addGoodsModel.name" placeholder="填写礼物名称" />
|
||||
</NFormItem>
|
||||
<NFormItem path="price" label="所需积分" required>
|
||||
<NInputNumber v-model:value="addGoodsModel.price" placeholder="填写需要的积分" min="0" />
|
||||
</NFormItem>
|
||||
<NFormItem path="description" label="描述" type="textarea">
|
||||
<NInput v-model:value="addGoodsModel.description" placeholder="填写礼物描述" />
|
||||
</NFormItem>
|
||||
<NFormItem path="tags" label="标签">
|
||||
<NSelect v-model:value="addGoodsModel.tags" filterable multiple clearable tag placeholder="可选,按回车确认" :options="existTags" />
|
||||
</NFormItem>
|
||||
<NFormItem path="cover" label="封面" type="textarea">
|
||||
<NUpload
|
||||
:max="1"
|
||||
accept=".png,.jpg,.jpeg,.gif,.svg,.webp,.ico,.bmp,.tif,.tiff,.jfif,.jpe,.jp,.psd,."
|
||||
list-type="image-card"
|
||||
:default-upload="false"
|
||||
v-model:file-list="fileList"
|
||||
@update:file-list="OnFileListChange"
|
||||
>
|
||||
+ 上传图片
|
||||
</NUpload>
|
||||
</NFormItem>
|
||||
<NFormItem path="type" label="类型">
|
||||
<NRadioGroup v-model:value="addGoodsModel.type">
|
||||
<NRadioButton :value="GoodsTypes.Virtual">虚拟礼物</NRadioButton>
|
||||
<NRadioButton :value="GoodsTypes.Physical">实体礼物</NRadioButton>
|
||||
</NRadioGroup>
|
||||
</NFormItem>
|
||||
<template v-if="addGoodsModel.type == GoodsTypes.Physical">
|
||||
<NFormItem path="collectUrl" label="收货地址">
|
||||
<NFlex vertical>
|
||||
<NRadioGroup :value="addGoodsModel.collectUrl == undefined ? 0 : 1" @update:value="(v) => (addGoodsModel.collectUrl = v == 1 ? '' : undefined)">
|
||||
<NRadioButton :value="0">通过本站收集收货地址</NRadioButton>
|
||||
<NRadioButton :value="1">
|
||||
使用站外链接收集地址
|
||||
<NTooltip>
|
||||
<template #trigger>
|
||||
<NIcon :component="Info24Filled" />
|
||||
</template>
|
||||
用腾讯文档等工具收集收货地址
|
||||
</NTooltip>
|
||||
</NRadioButton>
|
||||
</NRadioGroup>
|
||||
</NFlex>
|
||||
</NFormItem>
|
||||
<template v-if="addGoodsModel.collectUrl != undefined">
|
||||
<NFormItem path="url" label="收集链接">
|
||||
<NInput v-model:value="addGoodsModel.collectUrl" placeholder="用于给用户填写自己收货地址的表格的分享链接" />
|
||||
</NFormItem>
|
||||
<NFormItem label="内嵌收集链接">
|
||||
<NCheckbox v-model:checked="addGoodsModel.embedCollectUrl"> 尝试将收集链接嵌入到网页中 </NCheckbox>
|
||||
</NFormItem>
|
||||
</template>
|
||||
<template v-else>
|
||||
<NFormItem path="privacy" label="隐私策略" required>
|
||||
<NCheckbox v-model:checked="isAllowedPrivacyPolicy"> 同意本站隐私策略 </NCheckbox>
|
||||
</NFormItem>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<NFormItem path="content" label="礼物内容" required>
|
||||
<NInput
|
||||
v-model:value="addGoodsModel.content"
|
||||
style="min-height: 100px"
|
||||
type="textarea"
|
||||
placeholder="虚拟礼物的具体内容, 网盘链接什么之类的"
|
||||
maxlength="10000"
|
||||
show-count
|
||||
autosize
|
||||
clearable
|
||||
/>
|
||||
</NFormItem>
|
||||
</template>
|
||||
<NButton @click="updateGoods" type="primary"> 添加 </NButton>
|
||||
</NForm>
|
||||
</NScrollbar>
|
||||
</NModal>
|
||||
</template>
|
||||
|
||||
@@ -153,7 +153,7 @@ const gridRender = (type: 'padding' | 'reject' | 'accept') => {
|
||||
cover: () =>
|
||||
h('div', { style: 'position: relative;height: 150px;' }, [
|
||||
h('img', {
|
||||
src: v.video.cover,
|
||||
src: v.video.cover.replace('http://', 'https://'),
|
||||
referrerpolicy: 'no-referrer',
|
||||
style: 'max-height: 100%; object-fit: contain;cursor: pointer',
|
||||
onClick: () => window.open('https://www.bilibili.com/video/' + v.info.bvid, '_blank'),
|
||||
@@ -307,7 +307,7 @@ function saveQRCode() {
|
||||
<NButton type="success" size="small" @click="shareModalVisiable = true"> 分享 </NButton>
|
||||
<NButton type="info" size="small" @click="editModalVisiable = true"> 更新 </NButton>
|
||||
<NButton type="warning" size="small" @click="closeTable"> {{ videoDetail.table.isFinish ? '开启表' : '关闭表' }} </NButton>
|
||||
<NButton size="small" @click="$router.push({ name: 'video-collect-list', params: { id: videoDetail.table.id } })"> 结果表 </NButton>
|
||||
<NButton size="small" @click="$router.push({ name: 'video-collect-list', params: { id: videoDetail.table.id } })"> 结果页面 </NButton>
|
||||
<NPopconfirm :on-positive-click="deleteTable">
|
||||
<template #trigger>
|
||||
<NButton type="error" size="small"> 删除 </NButton>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// vite.config.ts
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx';
|
||||
import path from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
import svgLoader from 'vite-svg-loader';
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import path from 'path'
|
||||
import { defineConfig } from 'vite'
|
||||
import svgLoader from 'vite-svg-loader'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
@@ -24,4 +24,7 @@ export default defineConfig({
|
||||
define: {
|
||||
'process.env': {},
|
||||
},
|
||||
optimizeDeps: {
|
||||
include: ['@vicons/fluent', '@vicons/ionicons5', 'vue', 'vue-router'],
|
||||
},
|
||||
})
|
||||
|
||||
537
yarn.lock
537
yarn.lock
@@ -325,7 +325,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.5, @babel/runtime@npm:^7.23.6":
|
||||
"@babel/runtime@npm:^7.21.0":
|
||||
version: 7.23.6
|
||||
resolution: "@babel/runtime@npm:7.23.6"
|
||||
dependencies:
|
||||
@@ -334,6 +334,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.23.8":
|
||||
version: 7.23.8
|
||||
resolution: "@babel/runtime@npm:7.23.8"
|
||||
dependencies:
|
||||
regenerator-runtime: "npm:^0.14.0"
|
||||
checksum: ba5e8fbb32ef04f6cab5e89c54a0497c2fde7b730595cc1af93496270314f13ff2c6a9360fdb2f0bdd4d6b376752ce3cf85642bd6b876969a6a62954934c2df8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5":
|
||||
version: 7.22.15
|
||||
resolution: "@babel/template@npm:7.22.15"
|
||||
@@ -851,7 +860,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/eslint@npm:^8":
|
||||
"@types/eslint@npm:^8.56.2":
|
||||
version: 8.56.2
|
||||
resolution: "@types/eslint@npm:8.56.2"
|
||||
dependencies:
|
||||
@@ -905,12 +914,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^20.10.6":
|
||||
version: 20.10.6
|
||||
resolution: "@types/node@npm:20.10.6"
|
||||
"@types/node@npm:^20.11.5":
|
||||
version: 20.11.5
|
||||
resolution: "@types/node@npm:20.11.5"
|
||||
dependencies:
|
||||
undici-types: "npm:~5.26.4"
|
||||
checksum: 6692ccfa8552ef60c4069fda3c8de726c23e8d403cdf788e3c7efa769987e80fbda5f02723dd857f9de7df24a5fa40b3ed4580ec3c5cbac04eba44cf7b2ab1dc
|
||||
checksum: 6d18cec852f5cfbed3ec42b5c01c026e7a3f9da540d6e3d6738d4cee9979fb308cf27b6df7ba40a6553e7bc82e678f0ef53ba6e6ad52e5b86bd97b7783c2a42c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -921,6 +930,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/uuid@npm:^9":
|
||||
version: 9.0.7
|
||||
resolution: "@types/uuid@npm:9.0.7"
|
||||
checksum: b329ebd4f9d1d8e08d4f2cc211be4922d70d1149f73d5772630e4a3acfb5170c6d37b3d7a39a0412f1a56e86e8a844c7f297c798b082f90380608bf766688787
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/web-bluetooth@npm:^0.0.20":
|
||||
version: 0.0.20
|
||||
resolution: "@types/web-bluetooth@npm:0.0.20"
|
||||
@@ -928,15 +944,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:^6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:6.16.0"
|
||||
"@typescript-eslint/eslint-plugin@npm:^6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:6.19.0"
|
||||
dependencies:
|
||||
"@eslint-community/regexpp": "npm:^4.5.1"
|
||||
"@typescript-eslint/scope-manager": "npm:6.16.0"
|
||||
"@typescript-eslint/type-utils": "npm:6.16.0"
|
||||
"@typescript-eslint/utils": "npm:6.16.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.16.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.19.0"
|
||||
"@typescript-eslint/type-utils": "npm:6.19.0"
|
||||
"@typescript-eslint/utils": "npm:6.19.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.19.0"
|
||||
debug: "npm:^4.3.4"
|
||||
graphemer: "npm:^1.4.0"
|
||||
ignore: "npm:^5.2.4"
|
||||
@@ -949,7 +965,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: c8a68e0953d8b94f6b85d3a82090e61e670bcb0945cbee4d741321c56db727429ad47c48b8403ad1dab3b0842689bd2d4b85c99b76c51ac4f5be7f5f61c4c314
|
||||
checksum: ab1a5ace6663b0c6d2418e321328fa28aa4bdc4b5fae257addec01346fb3a9c2d3a2960ade0f7114e6974c513a28632c9e8e602333cc0fab3135c445babdef59
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -978,21 +994,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/parser@npm:^6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/parser@npm:6.16.0"
|
||||
"@typescript-eslint/parser@npm:^6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/parser@npm:6.19.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": "npm:6.16.0"
|
||||
"@typescript-eslint/types": "npm:6.16.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.16.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.16.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.19.0"
|
||||
"@typescript-eslint/types": "npm:6.19.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.19.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.19.0"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 9d573d14df4ec661dccaca785223a8a330d64f50a9279ff9170b1da22198ff91b9afa3ee7d3d7127c0cbc148c86831e76b33fc5b47d630799e98940ef666bfe0
|
||||
checksum: d547bfb1aaed112cfc0f9f0be8506a280952ba3b61be42b749352139361bd94e4a47fa043d819e19c6a498cacbd8bb36a46e3628c436a7e2009e7ac27afc8861
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1024,13 +1040,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:6.16.0"
|
||||
"@typescript-eslint/scope-manager@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:6.19.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.16.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.16.0"
|
||||
checksum: 3b275e528d19f4f36c4acd6cb872b5f004175512dce30cef0ac7a9121bb23d21e5e0f4b62658dbfea2b15851e7fa930372696f25a6c87492f863171ab56f5364
|
||||
"@typescript-eslint/types": "npm:6.19.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.19.0"
|
||||
checksum: 1ec7b9dedca7975f0aa4543c1c382f7d6131411bd443a5f9b96f137acb6adb450888ed13c95f6d26546b682b2e0579ce8a1c883fdbe2255dc0b61052193b8243
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1051,12 +1067,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/type-utils@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/type-utils@npm:6.16.0"
|
||||
"@typescript-eslint/type-utils@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/type-utils@npm:6.19.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree": "npm:6.16.0"
|
||||
"@typescript-eslint/utils": "npm:6.16.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.19.0"
|
||||
"@typescript-eslint/utils": "npm:6.19.0"
|
||||
debug: "npm:^4.3.4"
|
||||
ts-api-utils: "npm:^1.0.1"
|
||||
peerDependencies:
|
||||
@@ -1064,7 +1080,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: a5339cc1375d12411fcb242249143b28401fb18890bb2a1cff5275ba946affb4a2066cd8203e83ac383bd9d791a79ea6ee1cbf7a30deed5c832ed002897bbf82
|
||||
checksum: 5b146b985481e587122026c703ac9f537ad7e90eee1dca814971bca0d7e4a5d4ff9861fb4bf749014c28c6a4fbb4a01a4527355961315eb9501f3569f8e8dd38
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1075,10 +1091,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/types@npm:6.16.0"
|
||||
checksum: 74d9a8b7fd1b85fd1824295c92bc2f506148e450c9897f65ddaa089091017df4e25676c5b098b75c8f00529b84492f303a6b1870bb0ffee83997081325891d53
|
||||
"@typescript-eslint/types@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/types@npm:6.19.0"
|
||||
checksum: 6f81860a3c14df55232c2e6dec21fb166867b9f30b3c3369b325aef5ee1c7e41e827c0504654daa49c8ff1a3a9ca9d9bfe76786882b6212a7c1b58991a9c80b9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1100,12 +1116,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:6.16.0"
|
||||
"@typescript-eslint/typescript-estree@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:6.19.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.16.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.16.0"
|
||||
"@typescript-eslint/types": "npm:6.19.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.19.0"
|
||||
debug: "npm:^4.3.4"
|
||||
globby: "npm:^11.1.0"
|
||||
is-glob: "npm:^4.0.3"
|
||||
@@ -1115,7 +1131,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: c7109e90b40b3c8f1042beb7f1a7a97eeba3b6a903acd82df4947900d68bd31d04b530a190c099666c5ca4886efc162de7b42de754a44b189e41237210797d9e
|
||||
checksum: 5b365f009e43c7beafdbb7d8ecad78ee1087b0a4338cd9ec695eed514b7b4c1089e56239761139ddae629ec0ce8d428840c6ebfeea3618d2efe00c84f8794da5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1136,20 +1152,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/utils@npm:6.16.0"
|
||||
"@typescript-eslint/utils@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/utils@npm:6.19.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||
"@types/json-schema": "npm:^7.0.12"
|
||||
"@types/semver": "npm:^7.5.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.16.0"
|
||||
"@typescript-eslint/types": "npm:6.16.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.16.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.19.0"
|
||||
"@typescript-eslint/types": "npm:6.19.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.19.0"
|
||||
semver: "npm:^7.5.4"
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
checksum: 586c4c0e1ca249daf9958f0d88df3af010a7592a19db1a7dc198754542b584314896536fe56ea9c93dd0ddd531154e7697002643d46e24a8d3a459721a626e91
|
||||
checksum: 343ff4cd4f7e102df8c46b41254d017a33d95df76455531fda679fdb92aebb9c111df8ee9ab54972e73c1e8fad9dd7e421001233f0aee8115384462b0821852e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1163,13 +1179,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:6.16.0":
|
||||
version: 6.16.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:6.16.0"
|
||||
"@typescript-eslint/visitor-keys@npm:6.19.0":
|
||||
version: 6.19.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:6.19.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.16.0"
|
||||
"@typescript-eslint/types": "npm:6.19.0"
|
||||
eslint-visitor-keys: "npm:^3.4.1"
|
||||
checksum: 13c4d90355e288eac432d2845e37bb2acc03dab6d8568564558c1914a9aa44352f2a7ff29d0f50e0b3e68d66cca5f27b2732af5ff193b82571b4366309842880
|
||||
checksum: bb34e922e018aadf34866995ea5949d6623f184cc4f6470ab05767dd208ffabb003b7dc3872199714574b7f10afe89d49c6f89a4e8d086edea82be73e189f1bb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1208,13 +1224,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitejs/plugin-vue@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "@vitejs/plugin-vue@npm:5.0.1"
|
||||
"@vitejs/plugin-vue@npm:^5.0.3":
|
||||
version: 5.0.3
|
||||
resolution: "@vitejs/plugin-vue@npm:5.0.3"
|
||||
peerDependencies:
|
||||
vite: ^5.0.0
|
||||
vue: ^3.2.25
|
||||
checksum: 93a28a3f7b16b5e060237a4bdda4e67d80cdfd7fb818d6f7f73e500c848914b0042b369e01d3fc46f089254b8540d07020451ad9c338142f0ab4f668007d27d8
|
||||
checksum: b03f9bd0bb5f75f133ec25599802c4563f85860fb5cd2774372988ae18727150d7aa2f7de97aa3f2100e362013942a95cbed5b53a0c0e31b84e7c85b6944a65b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1244,53 +1260,53 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-core@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/compiler-core@npm:3.4.1"
|
||||
"@vue/compiler-core@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/compiler-core@npm:3.4.15"
|
||||
dependencies:
|
||||
"@babel/parser": "npm:^7.23.6"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
entities: "npm:^4.5.0"
|
||||
estree-walker: "npm:^2.0.2"
|
||||
source-map-js: "npm:^1.0.2"
|
||||
checksum: 99c7e774a6bd5b6e96aae0cf4e803e0718741f7e295009d3777ec517f0bef06e03ba3d1196cf67b479e84ed53df9129fc1c54bfcef0e95fe1329829e236a5abb
|
||||
checksum: 151dd9c1a4fae826c53ec60536d14298266baf81f8ed1729b1cbcd082d06410234ee951336c5f43aeaf00febafc0fdd7f82934d747a052b7435be0c2e89b8f2e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-dom@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/compiler-dom@npm:3.4.1"
|
||||
"@vue/compiler-dom@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/compiler-dom@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/compiler-core": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
checksum: 96545322c9f1dc5004c646ed759b9d17619aaaa66a32a3adb97e390fa5fec1135dc456bc7a7c81dc68f70a13a8256e8668680393fd92b709735625e252765e4c
|
||||
"@vue/compiler-core": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
checksum: d9339ca83f4e2e8fe21435c278e28b8551650d6ab09f0df1ba4afe983b4d692e07d753e70738dffee71e0d04af000eaafd7efebb8c4de5981b2e756ce03c3719
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-sfc@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/compiler-sfc@npm:3.4.1"
|
||||
"@vue/compiler-sfc@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/compiler-sfc@npm:3.4.15"
|
||||
dependencies:
|
||||
"@babel/parser": "npm:^7.23.6"
|
||||
"@vue/compiler-core": "npm:3.4.1"
|
||||
"@vue/compiler-dom": "npm:3.4.1"
|
||||
"@vue/compiler-ssr": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
"@vue/compiler-core": "npm:3.4.15"
|
||||
"@vue/compiler-dom": "npm:3.4.15"
|
||||
"@vue/compiler-ssr": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
estree-walker: "npm:^2.0.2"
|
||||
magic-string: "npm:^0.30.5"
|
||||
postcss: "npm:^8.4.32"
|
||||
postcss: "npm:^8.4.33"
|
||||
source-map-js: "npm:^1.0.2"
|
||||
checksum: a3bd342b49cc588c96a21f930f96a355faf0ccba9780d12c52ac5a322fd446f88d16572ed9ec55ef414426b789ab8f8bb480e5f3ea487f28543c7b1da55d7595
|
||||
checksum: 8643f2b6114927034195c06e13b872d186e3b5ae8e84041ea697932613cdd6e848e9253ecf4cfb13302b81a120906e0673b0adf97d07a5e1a731b96aa43f3f75
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-ssr@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/compiler-ssr@npm:3.4.1"
|
||||
"@vue/compiler-ssr@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/compiler-ssr@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/compiler-dom": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
checksum: 313acb00b4351755b751e2b6d91311fae038ce40b865ab217335883b4e11f781a53c693db596ab3af0319cb8db49f81873e05195a9dde9a53783f3db766ab88f
|
||||
"@vue/compiler-dom": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
checksum: c71c4df64c1df81f0b0e0e99236135a3e3989ba5d6204eb3c0fac804f7a927a0eb6f6ea67f96df63263ba3667f3a833adb20d76866236124befdf7652ca7a8cd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1319,92 +1335,92 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/reactivity@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/reactivity@npm:3.4.1"
|
||||
"@vue/reactivity@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/reactivity@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
checksum: 379e584c5949a000933363adc073d55839fc5ae15c2e982179509169974eb9afdca6553f6d8714e0519e5a8443fdc4d05438c06df1f5b72b0674eaa4709ab0e7
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
checksum: 2eb51e6f642817d5078ebc36ae5b0f94712403448f26794bedbefd05ec23f229dcf7b2512e609170b9d31e1c80bd17c5ff40cc9f82e50d6f0d41c3d542955d01
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/runtime-core@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/runtime-core@npm:3.4.1"
|
||||
"@vue/runtime-core@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/runtime-core@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/reactivity": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
checksum: 84778625a75f7e5e100a2b2cb7f4197955fa80243c562c647e192f816c430092ce161e88a41facd0086225f42b334120962dc6164ce1b688af9e4d97c23c0a37
|
||||
"@vue/reactivity": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
checksum: f8784c2b65bb8bec705a0e1723f7b47079604c1d1c075497af6f303f81fa5e228d3ca56da2fac3e6e303a42ab26febfcc7a3be5b932a3c0a2f588f1256b9af38
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/runtime-dom@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/runtime-dom@npm:3.4.1"
|
||||
"@vue/runtime-dom@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/runtime-dom@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/runtime-core": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
"@vue/runtime-core": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
csstype: "npm:^3.1.3"
|
||||
checksum: 57e39934f1c742d64eede4d419ca1a10e2fcead4dc3e1491c701161538867aa707788b8e5b3fa2da2d9e8d6429c879fbfc756d64bca2e490640fc034caddeb2a
|
||||
checksum: e9202ca15481e72dce4f2dce2c29401afc82ee89e7f01f2989cee2a94d7689b75139e900717e3c8bfb59b741f403051a02664b5784e5389a49d639f919e234c4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/server-renderer@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/server-renderer@npm:3.4.1"
|
||||
"@vue/server-renderer@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/server-renderer@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/compiler-ssr": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
"@vue/compiler-ssr": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
peerDependencies:
|
||||
vue: 3.4.1
|
||||
checksum: 6dda9537d4582d48323d0132d69bfc433346429b8b1677624e4c5ebd588b850fd4686fa07a98e802c24b48a52edff6b4c8b4a8350b218ba8c90d467ebd6f2bde
|
||||
vue: 3.4.15
|
||||
checksum: 43f86060774b8fa7331c672c564402ec58363642f0457147492b7b69c44fb1c26515968dc72d2ca0be053e838e9c2cf8f274356f982bb2bf9e886b1f4916ecaf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/shared@npm:3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "@vue/shared@npm:3.4.1"
|
||||
checksum: 7dd1c253527197909434db04d350fddaff8a9bd6cb3df11975e68f4aab6c88ff7b4e833e892a451787ceeb43ef68efdc56c166d8a7df1bff59f8671a8920d6d6
|
||||
"@vue/shared@npm:3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "@vue/shared@npm:3.4.15"
|
||||
checksum: eddcc1c82e8e550d9f3d622e33fd841c0c3b5c6f04f21f1cb10d3415068daabac0746279c88031861183d75d7a082fb599eec9201757d457de177d86989a9bc7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vueuse/core@npm:^10.7.1":
|
||||
version: 10.7.1
|
||||
resolution: "@vueuse/core@npm:10.7.1"
|
||||
"@vueuse/core@npm:^10.7.2":
|
||||
version: 10.7.2
|
||||
resolution: "@vueuse/core@npm:10.7.2"
|
||||
dependencies:
|
||||
"@types/web-bluetooth": "npm:^0.0.20"
|
||||
"@vueuse/metadata": "npm:10.7.1"
|
||||
"@vueuse/shared": "npm:10.7.1"
|
||||
"@vueuse/metadata": "npm:10.7.2"
|
||||
"@vueuse/shared": "npm:10.7.2"
|
||||
vue-demi: "npm:>=0.14.6"
|
||||
checksum: 789d1f641d28533ee756d2b0f98fd9a9df1fa7fb1b6940fe2f27cf3dd94cbf1ea96fdc91b829e53e1e78bdf104367e5586adb53879aa6913891cb9e32bcc3df7
|
||||
checksum: ec9f0f4980058ced484c047db2a6c88c051bb0f3081588390269f2be14c42cd8cae842188d38b7294195d84f93d98c7c62d3822550010279c5eb4c4bdafdd2f2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vueuse/metadata@npm:10.7.1":
|
||||
version: 10.7.1
|
||||
resolution: "@vueuse/metadata@npm:10.7.1"
|
||||
checksum: ccd2d66d99bcfd9f02f9cae012b3c369fa8760b79aadc2c39e44f6bafe87eb995f044c8381bc4c147a01b99e3f466f703572341643d866559b9980a51332b318
|
||||
"@vueuse/metadata@npm:10.7.2":
|
||||
version: 10.7.2
|
||||
resolution: "@vueuse/metadata@npm:10.7.2"
|
||||
checksum: 091301ca9730fdab20a962f9774f066bbf92ebffd46097fab923efe50883306b94f6f33599cad6df25d18127100da135613a65cf214867d5eec9d907e87ba217
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vueuse/router@npm:^10.7.1":
|
||||
version: 10.7.1
|
||||
resolution: "@vueuse/router@npm:10.7.1"
|
||||
"@vueuse/router@npm:^10.7.2":
|
||||
version: 10.7.2
|
||||
resolution: "@vueuse/router@npm:10.7.2"
|
||||
dependencies:
|
||||
"@vueuse/shared": "npm:10.7.1"
|
||||
"@vueuse/shared": "npm:10.7.2"
|
||||
vue-demi: "npm:>=0.14.6"
|
||||
peerDependencies:
|
||||
vue-router: ">=4.0.0-rc.1"
|
||||
checksum: 12a1f515611db6f28f6a49ef00e65593bbbd21433abcb34d0f0157dbafb106218f01a074f05b11e3fb1522c7f5d1f4b978cd71be15469b06149e77648fac0b58
|
||||
checksum: 1caddae08255a629e44b7fef0f94c60d2e0d9f4dfa2145ac6caf5b1a7086fe9707cbb9afeed661a0c0aefe589fcdfdc0ba9c8a0790929935b8b57f7b9653a671
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vueuse/shared@npm:10.7.1":
|
||||
version: 10.7.1
|
||||
resolution: "@vueuse/shared@npm:10.7.1"
|
||||
"@vueuse/shared@npm:10.7.2":
|
||||
version: 10.7.2
|
||||
resolution: "@vueuse/shared@npm:10.7.2"
|
||||
dependencies:
|
||||
vue-demi: "npm:>=0.14.6"
|
||||
checksum: 3f7e8499b6a9749c01eb8cc965b6154bbef49405066bbed6cdc770230a347eb3065351f50af00e5731cde8952e022387aac251b8d37986d0f51f9bf0b6b2efbd
|
||||
checksum: 293984b39fa616f6cd0ae958bd1a2a792071a23015309f6342788134aa053da56b301832ddb605d7155fe73803f3e18bd13c3a2f38ad1fcf1b1230c81bae4360
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1936,10 +1952,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"date-fns@npm:^3.0.6":
|
||||
version: 3.0.6
|
||||
resolution: "date-fns@npm:3.0.6"
|
||||
checksum: ca6ac81aca623fd6d12a43da59cc216e13a75a2eecf7fac692654524fca625e073f5cd36951ef0deac9621ead564eb06b4c3723f77b34e86f21ca3c0c3b32ff7
|
||||
"date-fns@npm:^3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "date-fns@npm:3.2.0"
|
||||
checksum: f93e987f785d7f2b7349986d150b014ce21fa6425e2e1edea6f0e01731dceef68deabf0f723689c28604e857648ac708a52b924cb7584e4321835686aa665371
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2065,10 +2081,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"easy-speech@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "easy-speech@npm:2.2.0"
|
||||
checksum: 944a174d5372e497b27ab201824d25d015ee93492e1b6258d29adf7b2f97ad8927aa53e2a889f671b40308a0af6bafa00a4e3b4606dc1005a3e06cd65b6a94a2
|
||||
"easy-speech@npm:^2.3.1":
|
||||
version: 2.3.1
|
||||
resolution: "easy-speech@npm:2.3.1"
|
||||
checksum: 4affdd443c4bc5b80748745b913380d9e7a1b2645942996f49d5eec4019f83ae6636824f3347e9decd3ff0e128701dc8a4a24649553e7da08ea0df8ebb61fa54
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2380,16 +2396,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-oxlint@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "eslint-plugin-oxlint@npm:0.2.0"
|
||||
checksum: fc0d6b56e9e93129b16f46f5ddfd2bf7233292b6a643efeda4c421d2796ee009333ca3bada4241b14dcd14b21eb757ead4aaa84671af73da925042eabed425d8
|
||||
"eslint-plugin-oxlint@npm:^0.2.1":
|
||||
version: 0.2.1
|
||||
resolution: "eslint-plugin-oxlint@npm:0.2.1"
|
||||
checksum: 45821ae3a3e847d8200c99d415552746b2b1b61ec0329fd4fbb6cde96edc71fb918c4ee8e169496c998c472a927a819b0a5833580538dc67935d72689bf3b8c0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-prettier@npm:^5.1.2":
|
||||
version: 5.1.2
|
||||
resolution: "eslint-plugin-prettier@npm:5.1.2"
|
||||
"eslint-plugin-prettier@npm:^5.1.3":
|
||||
version: 5.1.3
|
||||
resolution: "eslint-plugin-prettier@npm:5.1.3"
|
||||
dependencies:
|
||||
prettier-linter-helpers: "npm:^1.0.0"
|
||||
synckit: "npm:^0.8.6"
|
||||
@@ -2403,24 +2419,24 @@ __metadata:
|
||||
optional: true
|
||||
eslint-config-prettier:
|
||||
optional: true
|
||||
checksum: e16c9fbb0e9f8da45bdbb1cf6e4a190266235c3686deede3815196d2604bbe2bac531d1fc9adc3c0b9a03d88b55bd3bfaa4f9d85e34e73dc040d545a1931fab9
|
||||
checksum: f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-vue@npm:^9.19.2":
|
||||
version: 9.19.2
|
||||
resolution: "eslint-plugin-vue@npm:9.19.2"
|
||||
"eslint-plugin-vue@npm:^9.20.1":
|
||||
version: 9.20.1
|
||||
resolution: "eslint-plugin-vue@npm:9.20.1"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||
natural-compare: "npm:^1.4.0"
|
||||
nth-check: "npm:^2.1.1"
|
||||
postcss-selector-parser: "npm:^6.0.13"
|
||||
semver: "npm:^7.5.4"
|
||||
vue-eslint-parser: "npm:^9.3.1"
|
||||
vue-eslint-parser: "npm:^9.4.0"
|
||||
xml-name-validator: "npm:^4.0.0"
|
||||
peerDependencies:
|
||||
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||
checksum: b48c24c6aedcc690b4cf2432df08da62fba6f7f24f3a561d7a2592329c2c947d01ba51b49b2a256f65735dcea4f73b44cbffc0c373fec461f49f5a02a078561e
|
||||
checksum: 97c75d8ac0351c6e7d7edb364af176ab1890e5bf8eeb525b9379f0ed88205d889c4297b107d1b196dc45ed14c1b9ccdb7fe9890c6fccd33d9b5aa00502882afa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2594,24 +2610,24 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-unique-numbers@npm:^8.0.12":
|
||||
version: 8.0.12
|
||||
resolution: "fast-unique-numbers@npm:8.0.12"
|
||||
"fast-unique-numbers@npm:^8.0.13":
|
||||
version: 8.0.13
|
||||
resolution: "fast-unique-numbers@npm:8.0.13"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.5"
|
||||
"@babel/runtime": "npm:^7.23.8"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: d7ba9dbbe85704fcef47277df6f182db48937bce1846801e17c1176eda02ee089be06ebf2c55c8c78c0f9d2dfc4be546595c9feb165a302f24c6e3b9813cd5cb
|
||||
checksum: bf826d92345083c3146debf44e7dc93414d428eb81bd095dd46fcc6654f77977e0d04a2f65bccfcf0b9fc495a4276259afe99dbee009f463d19a1503f4e9bfac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-xml-parser@npm:^4.3.2":
|
||||
version: 4.3.2
|
||||
resolution: "fast-xml-parser@npm:4.3.2"
|
||||
"fast-xml-parser@npm:^4.3.3":
|
||||
version: 4.3.3
|
||||
resolution: "fast-xml-parser@npm:4.3.3"
|
||||
dependencies:
|
||||
strnum: "npm:^1.0.5"
|
||||
bin:
|
||||
fxparser: src/cli/cli.js
|
||||
checksum: 7c1611349384656ec4faa9802fbc8cf8c01206a1b79193d5cd54586307801562509007f6cf16e5da7d43da4fa4639770f38959a285b9466aa98dab0a9b8ca171
|
||||
checksum: 420d15f315dbafac68be8a6bfa6a26c42d3e846c336a4d0c9a901f0a0903b0ab642379766fe7574d1602da2914c5d7481f78edf47c0712ab9078871e26cab296
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3675,9 +3691,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"naive-ui@npm:^2.36.0":
|
||||
version: 2.36.0
|
||||
resolution: "naive-ui@npm:2.36.0"
|
||||
"naive-ui@npm:^2.37.3":
|
||||
version: 2.37.3
|
||||
resolution: "naive-ui@npm:2.37.3"
|
||||
dependencies:
|
||||
"@css-render/plugin-bem": "npm:^0.15.12"
|
||||
"@css-render/vue3-ssr": "npm:^0.15.12"
|
||||
@@ -3686,6 +3702,7 @@ __metadata:
|
||||
"@types/lodash-es": "npm:^4.17.9"
|
||||
async-validator: "npm:^4.2.5"
|
||||
css-render: "npm:^0.15.12"
|
||||
csstype: "npm:^3.1.3"
|
||||
date-fns: "npm:^2.30.0"
|
||||
date-fns-tz: "npm:^2.0.0"
|
||||
evtd: "npm:^0.2.4"
|
||||
@@ -3696,10 +3713,10 @@ __metadata:
|
||||
treemate: "npm:^0.3.11"
|
||||
vdirs: "npm:^0.1.8"
|
||||
vooks: "npm:^0.2.12"
|
||||
vueuc: "npm:^0.4.54"
|
||||
vueuc: "npm:^0.4.58"
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
checksum: 7040d38e47c43c76296f187aebc46ac28b69e583a31d594757413d3f1a0ade77ba6e784d7f7ec0c64abeeeb9e01dbb8b170965eaa00aaa49fd65b376419496dd
|
||||
checksum: 9c8fec1ba18e61c91a3ef24e3f387796449a510fdf92030de0cd4a9acf11f3e98f070e9c8e09f87bf29de95f5fb2ee09c2676ce177484a36946097e3a3654861
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3991,6 +4008,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:^8.4.33":
|
||||
version: 8.4.33
|
||||
resolution: "postcss@npm:8.4.33"
|
||||
dependencies:
|
||||
nanoid: "npm:^3.3.7"
|
||||
picocolors: "npm:^1.0.0"
|
||||
source-map-js: "npm:^1.0.2"
|
||||
checksum: 16eda83458fcd8a91bece287b5920c7f57164c3ea293e6c80d0ea71ce7843007bcd8592260a5160b9a7f02693e6ac93e2495b02d8c7596d3f3f72c1447e3ba79
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prelude-ls@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "prelude-ls@npm:1.2.1"
|
||||
@@ -4007,12 +4035,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "prettier@npm:3.1.1"
|
||||
"prettier@npm:^3.2.4":
|
||||
version: 3.2.4
|
||||
resolution: "prettier@npm:3.2.4"
|
||||
bin:
|
||||
prettier: bin/prettier.cjs
|
||||
checksum: facc944ba20e194ff4db765e830ffbcb642803381f0d2033ed397e79904fa4ccc877dc25ad68f42d36985c01d051c990ca1b905fb83d2d7d65fe69e4386fa1a3
|
||||
checksum: 88dfeb78ac6096522c9a5b81f1413d875f568420d9bb6a5e5103527912519b993f2bcdcac311fcff5718d5869671d44e4f85827d3626f3a6ce32b9abc65d88e0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4804,6 +4832,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"uuid@npm:^9.0.1":
|
||||
version: 9.0.1
|
||||
resolution: "uuid@npm:9.0.1"
|
||||
bin:
|
||||
uuid: dist/bin/uuid
|
||||
checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vdirs@npm:^0.1.4, vdirs@npm:^0.1.8":
|
||||
version: 0.1.8
|
||||
resolution: "vdirs@npm:0.1.8"
|
||||
@@ -4826,9 +4863,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:^5.0.10":
|
||||
version: 5.0.10
|
||||
resolution: "vite@npm:5.0.10"
|
||||
"vite@npm:^5.0.12":
|
||||
version: 5.0.12
|
||||
resolution: "vite@npm:5.0.12"
|
||||
dependencies:
|
||||
esbuild: "npm:^0.19.3"
|
||||
fsevents: "npm:~2.3.3"
|
||||
@@ -4862,7 +4899,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: d666b2760d2a7ea1d0d35f67c042053e562144f80554be4e4dc58e607fd5f62193cd203d73ab2e315df66830d8b9d9a2e3509d0208bdef1b2e92e0a5c364df84
|
||||
checksum: c51b8e458851943c903fddde6973e720099ef8a5f364fb107cddade59c9e90f6d9ad98b61a7419cdfa0c6374236e10bff965d0c2d9e7b1790c68b874e5e7950c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4881,50 +4918,52 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "vtsuru.live@workspace:."
|
||||
dependencies:
|
||||
"@types/eslint": "npm:^8"
|
||||
"@types/node": "npm:^20.10.6"
|
||||
"@typescript-eslint/eslint-plugin": "npm:^6.16.0"
|
||||
"@typescript-eslint/parser": "npm:^6.16.0"
|
||||
"@types/eslint": "npm:^8.56.2"
|
||||
"@types/node": "npm:^20.11.5"
|
||||
"@types/uuid": "npm:^9"
|
||||
"@typescript-eslint/eslint-plugin": "npm:^6.19.0"
|
||||
"@typescript-eslint/parser": "npm:^6.19.0"
|
||||
"@vicons/fluent": "npm:^0.12.0"
|
||||
"@vicons/ionicons5": "npm:^0.12.0"
|
||||
"@vitejs/plugin-vue": "npm:^5.0.1"
|
||||
"@vitejs/plugin-vue": "npm:^5.0.3"
|
||||
"@vitejs/plugin-vue-jsx": "npm:^3.1.0"
|
||||
"@vue/eslint-config-typescript": "npm:^12.0.0"
|
||||
"@vueuse/core": "npm:^10.7.1"
|
||||
"@vueuse/router": "npm:^10.7.1"
|
||||
date-fns: "npm:^3.0.6"
|
||||
easy-speech: "npm:^2.2.0"
|
||||
"@vueuse/core": "npm:^10.7.2"
|
||||
"@vueuse/router": "npm:^10.7.2"
|
||||
date-fns: "npm:^3.2.0"
|
||||
easy-speech: "npm:^2.3.1"
|
||||
echarts: "npm:^5.4.3"
|
||||
eslint: "npm:^8.56.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
eslint-plugin-import: "npm:^2.29.1"
|
||||
eslint-plugin-oxlint: "npm:^0.2.0"
|
||||
eslint-plugin-prettier: "npm:^5.1.2"
|
||||
eslint-plugin-vue: "npm:^9.19.2"
|
||||
fast-xml-parser: "npm:^4.3.2"
|
||||
eslint-plugin-oxlint: "npm:^0.2.1"
|
||||
eslint-plugin-prettier: "npm:^5.1.3"
|
||||
eslint-plugin-vue: "npm:^9.20.1"
|
||||
fast-xml-parser: "npm:^4.3.3"
|
||||
file-saver: "npm:^2.0.5"
|
||||
grapheme-splitter: "npm:^1.0.4"
|
||||
html2canvas: "npm:^1.4.1"
|
||||
linqts: "npm:^1.15.0"
|
||||
mitt: "npm:^3.0.1"
|
||||
naive-ui: "npm:^2.36.0"
|
||||
naive-ui: "npm:^2.37.3"
|
||||
pinia: "npm:^2.1.7"
|
||||
prettier: "npm:^3.1.1"
|
||||
prettier: "npm:^3.2.4"
|
||||
qrcode.vue: "npm:^3.4.1"
|
||||
queue-typescript: "npm:^1.0.1"
|
||||
stylus: "npm:^0.62.0"
|
||||
typescript: "npm:^5.3.3"
|
||||
vite: "npm:^5.0.10"
|
||||
uuid: "npm:^9.0.1"
|
||||
vite: "npm:^5.0.12"
|
||||
vite-svg-loader: "npm:^5.1.0"
|
||||
vue: "npm:^3.4.1"
|
||||
vue: "npm:^3.4.15"
|
||||
vue-echarts: "npm:^6.6.8"
|
||||
vue-request: "npm:^2.0.4"
|
||||
vue-router: "npm:^4.2.5"
|
||||
vue-turnstile: "npm:^1.0.6"
|
||||
vue-turnstile: "npm:^1.0.7"
|
||||
vue3-aplayer: "npm:^1.7.3"
|
||||
vue3-marquee: "npm:^4.1.0"
|
||||
vue3-marquee: "npm:^4.2.0-beta.1"
|
||||
vueuc: "npm:^0.4.58"
|
||||
worker-timers: "npm:^7.0.80"
|
||||
worker-timers: "npm:^7.1.1"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -4997,6 +5036,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue-eslint-parser@npm:^9.4.0":
|
||||
version: 9.4.0
|
||||
resolution: "vue-eslint-parser@npm:9.4.0"
|
||||
dependencies:
|
||||
debug: "npm:^4.3.4"
|
||||
eslint-scope: "npm:^7.1.1"
|
||||
eslint-visitor-keys: "npm:^3.3.0"
|
||||
espree: "npm:^9.3.1"
|
||||
esquery: "npm:^1.4.0"
|
||||
lodash: "npm:^4.17.21"
|
||||
semver: "npm:^7.3.6"
|
||||
peerDependencies:
|
||||
eslint: ">=6.0.0"
|
||||
checksum: c77ddaf69ef076f69164cb52fd1295cc73b002f99bf5bcde25dcbce2c3bba66decdc2abd29ce73434720dd3fca20323073b6044f84fec219c629f7b9276abce6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue-loader@npm:^16.1.2":
|
||||
version: 16.8.3
|
||||
resolution: "vue-loader@npm:16.8.3"
|
||||
@@ -5036,12 +5092,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue-turnstile@npm:^1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "vue-turnstile@npm:1.0.6"
|
||||
"vue-turnstile@npm:^1.0.7":
|
||||
version: 1.0.7
|
||||
resolution: "vue-turnstile@npm:1.0.7"
|
||||
peerDependencies:
|
||||
vue: ^3.2.45
|
||||
checksum: 7d8f705885ac4572ff0261aa48f8f3e8bdaaa7dbcda965673e9950f409fcb2b575f48fa404ec43fd9e3be8a414b0e154f130ee33b62e44254e00eda8c09b940c
|
||||
checksum: e4c1f8c28e7b7e9e20e856a9deeb5589b48098d9c880b81d0d3f8236f1a92d8f3d4d552d51aaf26fd1cc2bf5de848d26e9b1bac88b91179f3cf810c87659a3a1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5056,47 +5112,30 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue3-marquee@npm:^4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "vue3-marquee@npm:4.1.0"
|
||||
"vue3-marquee@npm:^4.2.0-beta.1":
|
||||
version: 4.2.0-beta.1
|
||||
resolution: "vue3-marquee@npm:4.2.0-beta.1"
|
||||
peerDependencies:
|
||||
vue: ^3.2
|
||||
checksum: 8ea39d0c01268353fe5cfe0fea47aba18f602248c81ff28576fde978c275bb1363e3eaf6b1c11b6fb1bd05c2520f96ff00f40046ba2c4ac8d8abd889fabae403
|
||||
checksum: 053d0d9c5e2edc07e6bcb6feca27c026b196d1c802e010ce3f983a6dbfd13abd25588f0e7686fd0cc766183a089a0aa7efac92f55af266a0fb92751db3a36f83
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue@npm:^3.4.1":
|
||||
version: 3.4.1
|
||||
resolution: "vue@npm:3.4.1"
|
||||
"vue@npm:^3.4.15":
|
||||
version: 3.4.15
|
||||
resolution: "vue@npm:3.4.15"
|
||||
dependencies:
|
||||
"@vue/compiler-dom": "npm:3.4.1"
|
||||
"@vue/compiler-sfc": "npm:3.4.1"
|
||||
"@vue/runtime-dom": "npm:3.4.1"
|
||||
"@vue/server-renderer": "npm:3.4.1"
|
||||
"@vue/shared": "npm:3.4.1"
|
||||
"@vue/compiler-dom": "npm:3.4.15"
|
||||
"@vue/compiler-sfc": "npm:3.4.15"
|
||||
"@vue/runtime-dom": "npm:3.4.15"
|
||||
"@vue/server-renderer": "npm:3.4.15"
|
||||
"@vue/shared": "npm:3.4.15"
|
||||
peerDependencies:
|
||||
typescript: "*"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: bb638915ded71671233c7585793d876c0f6c8956a5d72c01b18f3c3000176ff52e769b539f9aedc6a162eb71546b766c4c56c40b0e89f8f3a7451db35c555626
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vueuc@npm:^0.4.54":
|
||||
version: 0.4.56
|
||||
resolution: "vueuc@npm:0.4.56"
|
||||
dependencies:
|
||||
"@css-render/vue3-ssr": "npm:^0.15.10"
|
||||
"@juggle/resize-observer": "npm:^3.3.1"
|
||||
css-render: "npm:^0.15.10"
|
||||
evtd: "npm:^0.2.4"
|
||||
seemly: "npm:^0.3.6"
|
||||
vdirs: "npm:^0.1.4"
|
||||
vooks: "npm:^0.2.4"
|
||||
peerDependencies:
|
||||
vue: ^3.0.11
|
||||
checksum: 6dcbd8f638a398d02c66e3791e56f576a9a8e1b7549f8d85410a6b2b87b6e49a12cb2803414a497112d7e55c9d36e6a27f0eb2da24573eb2f8ff00c168eba228
|
||||
checksum: 7410135553f38d390ece3d5edcb6e2c158c3717e002a4e0766a95f6054f0ab7a8ce69000f5e29ff41f631f3cc7211123fbe34ab591b43b14f4af77c4ac01d116
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5165,37 +5204,37 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"worker-timers-broker@npm:^6.0.100":
|
||||
version: 6.0.100
|
||||
resolution: "worker-timers-broker@npm:6.0.100"
|
||||
"worker-timers-broker@npm:^6.1.1":
|
||||
version: 6.1.1
|
||||
resolution: "worker-timers-broker@npm:6.1.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
fast-unique-numbers: "npm:^8.0.12"
|
||||
"@babel/runtime": "npm:^7.23.8"
|
||||
fast-unique-numbers: "npm:^8.0.13"
|
||||
tslib: "npm:^2.6.2"
|
||||
worker-timers-worker: "npm:^7.0.64"
|
||||
checksum: 2503ad4cf55ffee9aa6366d6463c84eae0c1a89ebbc0a9ad3089063e899dbea5bdd830b573e928141e9e553f14ca1f67ef693b2e790a19b54c8b05e2a145fa61
|
||||
worker-timers-worker: "npm:^7.0.65"
|
||||
checksum: 619698e5860840c9a6e9971c72a7b0d59fd2291b4d571bd5de01488bd9ede5f45b9cbc3606b98290fa2baee01aab90aa5620dd9098c96b5e7300c398c11c01b1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"worker-timers-worker@npm:^7.0.64":
|
||||
version: 7.0.64
|
||||
resolution: "worker-timers-worker@npm:7.0.64"
|
||||
"worker-timers-worker@npm:^7.0.65":
|
||||
version: 7.0.65
|
||||
resolution: "worker-timers-worker@npm:7.0.65"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@babel/runtime": "npm:^7.23.8"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: ec44679f60c183573ac2777d2c2db9a046fa8a11dd0ca413ea478c85e99557775d784774ba44c4e7e75b5b9bea6bcc919824d55fe44efd95417ea069ac615f06
|
||||
checksum: 3599287cce1f578c7e710181b95e5a83273acdcc737f40fadc707e9d894b8938153b45ae1057b08a43c9d1cecbeb085e6cef621edb4bd9e046ab9e93050965a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"worker-timers@npm:^7.0.80":
|
||||
version: 7.0.80
|
||||
resolution: "worker-timers@npm:7.0.80"
|
||||
"worker-timers@npm:^7.1.1":
|
||||
version: 7.1.1
|
||||
resolution: "worker-timers@npm:7.1.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@babel/runtime": "npm:^7.23.8"
|
||||
tslib: "npm:^2.6.2"
|
||||
worker-timers-broker: "npm:^6.0.100"
|
||||
worker-timers-worker: "npm:^7.0.64"
|
||||
checksum: 24a8f015374f0c14c1c2ba88de0cde6d92ec9a6daa250e8e843c5a7bc1832cf894904496e8be1fef2ac17adb56a29db7ed5c9171ec70e4d3fdbce7de46db7f7f
|
||||
worker-timers-broker: "npm:^6.1.1"
|
||||
worker-timers-worker: "npm:^7.0.65"
|
||||
checksum: cbc3dd073d5244ed0accc8a1252f5a5134a1df07982bb277f298771ff934975bd4e7db0c6bce3d051983384ed0988fa0c151d5b703266802fcbf38f922875e59
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user