diff --git a/package.json b/package.json
index 83921dd..dc7b9ad 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"date-fns": "^3.0.6",
"easy-speech": "^2.2.0",
"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",
@@ -43,11 +44,11 @@
"worker-timers": "^7.0.80"
},
"devDependencies": {
+ "@types/eslint": "^8",
"@typescript-eslint/parser": "^6.16.0",
"@vicons/ionicons5": "^0.12.0",
"@vitejs/plugin-vue-jsx": "^3.1.0",
"@vue/eslint-config-typescript": "^12.0.0",
- "eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-vue": "^9.19.2",
"naive-ui": "^2.36.0",
diff --git a/src/api/account.ts b/src/api/account.ts
index 3d03d03..76ca34c 100644
--- a/src/api/account.ts
+++ b/src/api/account.ts
@@ -147,3 +147,50 @@ export async function UploadConfig(name: string, data: unknown) {
}
return false
}
+export async function EnableFunction(func: FunctionTypes) {
+ if (ACCOUNT.value) {
+ if (ACCOUNT.value.settings.enableFunctions.includes(func)) {
+ return true
+ } else {
+ ACCOUNT.value.settings.enableFunctions.push(func)
+ if (await updateFunctionEnable()) {
+ return true
+ } else {
+ ACCOUNT.value.settings.enableFunctions.splice(ACCOUNT.value.settings.enableFunctions.indexOf(func), 1)
+ return false
+ }
+ }
+ }
+ return false
+}
+export async function DisableFunction(func: FunctionTypes) {
+ if (ACCOUNT.value) {
+ if (!ACCOUNT.value.settings.enableFunctions.includes(func)) {
+ return true
+ } else {
+ ACCOUNT.value.settings.enableFunctions.splice(ACCOUNT.value.settings.enableFunctions.indexOf(func), 1)
+ if (await updateFunctionEnable()) {
+ return true
+ } else {
+ ACCOUNT.value.settings.enableFunctions.push(func)
+ return false
+ }
+ }
+ }
+ return false
+}
+async function updateFunctionEnable() {
+ if (ACCOUNT.value) {
+ try {
+ const data = await SaveEnableFunctions(ACCOUNT.value.settings.enableFunctions)
+ if (data.code == 200) {
+ return true
+ } else {
+ return false
+ }
+ } catch (err) {
+ console.log(err)
+ return false
+ }
+ }
+}
diff --git a/src/api/api-models.ts b/src/api/api-models.ts
index 129a055..9381b79 100644
--- a/src/api/api-models.ts
+++ b/src/api/api-models.ts
@@ -173,6 +173,7 @@ export enum FunctionTypes {
Schedule,
SongRequest,
Queue,
+ Point
}
export interface SongAuthorInfo {
name: string
@@ -499,3 +500,29 @@ export enum FeedbackStatus {
Reject,
Developing,
}
+export interface TagInfo
+{
+ name: string
+ color: string
+}
+export enum GoodsStatus
+{
+ Normal, // 商品正常
+ //OutOfStock, // 商品无货
+ Discontinued // 商品下架
+}
+export enum GoodsTypes {
+ Physical,
+ Virtual,
+}
+export interface ResponsePointGoodModel {
+ id: number
+ name: string
+ count: number
+ price: number
+ tags: TagInfo[]
+ cover?: string
+ images: string[]
+ status: GoodsStatus
+ type: GoodsTypes
+}
\ No newline at end of file
diff --git a/src/components/EventFetcherStatusCard.vue b/src/components/EventFetcherStatusCard.vue
index e5ae1ec..9b37361 100644
--- a/src/components/EventFetcherStatusCard.vue
+++ b/src/components/EventFetcherStatusCard.vue
@@ -10,8 +10,7 @@ const status = computed(() => {
if (!accountInfo.value) return 'error'
if (accountInfo.value.eventFetcherOnline == true) {
if (accountInfo.value.eventFetcherStatus) {
- if (accountInfo.value.eventFetcherStatus == 'ok') return 'success'
- else return 'warning'
+ return 'warning'
} else if (Object.keys(accountInfo.value.eventFetcherStatusV3 ?? {}).length > 0) {
return 'warning'
} else {
@@ -31,7 +30,7 @@ const status = computed(() => {
- 这是一个可以持续监听直播间内的 Superchat 和上舰事件并上传到本站进行记录的 Nodejs/.Net 程序
+ 这是一个可以持续监听直播间内的 Superchat 和上舰事件并上传到本站进行记录的 .Net 程序
事件上传到本站后允许按照自定义范围进行查询, 并导出为 CSV 之类的表格
@@ -39,11 +38,22 @@ const status = computed(() => {
- 运行中
-
- 异常: {{ accountInfo.eventFetcherStatus }}
+
+ 此版本已过期, 请更新
+
+
+ 关于
+
+ Node.js 版已不再更新, 如果是 Docker 的话请切换至 ghcr.io/megghy/vtsurueventfetcher.net, 其他环境请下载 https://github.com/Megghy/VtsuruEventFetcher.Net/releases/latest
+
+
+
+ 运行中
+
+ 异常: {{ Object.values(accountInfo.eventFetcherStatusV3).join('; ') }}
+
+ 未连接
- 未连接
diff --git a/src/components/PointGoodItem.vue b/src/components/PointGoodItem.vue
new file mode 100644
index 0000000..e69de29
diff --git a/src/data/constants.ts b/src/data/constants.ts
index 553de1a..20b71fa 100644
--- a/src/data/constants.ts
+++ b/src/data/constants.ts
@@ -33,6 +33,7 @@ export const LIVE_API_URL = { toString: () => `${BASE_API()}live/` }
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 ScheduleTemplateMap = {
'': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) },
diff --git a/src/router/manage.ts b/src/router/manage.ts
index 37e5e3f..69cc80f 100644
--- a/src/router/manage.ts
+++ b/src/router/manage.ts
@@ -159,5 +159,13 @@ export default //管理页面
title: '反馈',
},
},
+ {
+ path: 'point',
+ name: 'manage-point',
+ component: () => import('@/views/manage/PointManage.vue'),
+ meta: {
+ title: '积分',
+ },
+ },
],
}
diff --git a/src/views/ManageLayout.vue b/src/views/ManageLayout.vue
index 5866727..27e3df8 100644
--- a/src/views/ManageLayout.vue
+++ b/src/views/ManageLayout.vue
@@ -528,7 +528,7 @@ onMounted(() => {
listFolded
@ended="musicRquestStore.onMusicEnd"
@play="musicRquestStore.onMusicPlay"
- style="flex: 1;min-width: 400px;"
+ style="flex: 1; min-width: 400px"
/>
队列: {{ musicRquestStore.waitingMusics.length }}
diff --git a/src/views/manage/PointManage.vue b/src/views/manage/PointManage.vue
new file mode 100644
index 0000000..04afc3b
--- /dev/null
+++ b/src/views/manage/PointManage.vue
@@ -0,0 +1,59 @@
+
+
+
+
+ 启用积分系统
+
+
+
+ 此功能需要部署
+ VtsuruEventFetcher
+
+
+
+
+
+
+
+
+
+
diff --git a/vue.config.js b/vue.config.js
index 9eec3d3..e69de29 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,5 +0,0 @@
-const { defineConfig } = require('@vue/cli-service')
-
-module.exports = defineConfig({
- transpileDependencies: true,
-})
diff --git a/yarn.lock b/yarn.lock
index 6dbc7b2..bb173c5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -603,13 +603,13 @@ __metadata:
linkType: hard
"@humanwhocodes/config-array@npm:^0.11.13":
- version: 0.11.13
- resolution: "@humanwhocodes/config-array@npm:0.11.13"
+ version: 0.11.14
+ resolution: "@humanwhocodes/config-array@npm:0.11.14"
dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.1"
- debug: "npm:^4.1.1"
+ "@humanwhocodes/object-schema": "npm:^2.0.2"
+ debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
- checksum: d76ca802d853366094d0e98ff0d0994117fc8eff96649cd357b15e469e428228f597cd2e929d54ab089051684949955f16ee905bb19f7b2f0446fb377157be7a
+ checksum: 66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541
languageName: node
linkType: hard
@@ -620,10 +620,10 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/object-schema@npm:^2.0.1":
- version: 2.0.1
- resolution: "@humanwhocodes/object-schema@npm:2.0.1"
- checksum: 9dba24e59fdb4041829d92b693aacb778add3b6f612aaa9c0774f3b650c11a378cc64f042a59da85c11dae33df456580a3c36837b953541aed6ff94294f97fac
+"@humanwhocodes/object-schema@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@humanwhocodes/object-schema@npm:2.0.2"
+ checksum: 6fd83dc320231d71c4541d0244051df61f301817e9f9da9fd4cb7e44ec8aacbde5958c1665b0c419401ab935114fdf532a6ad5d4e7294b1af2f347dd91a6983f
languageName: node
linkType: hard
@@ -851,7 +851,24 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:^7.0.12":
+"@types/eslint@npm:^8":
+ version: 8.56.2
+ resolution: "@types/eslint@npm:8.56.2"
+ dependencies:
+ "@types/estree": "npm:*"
+ "@types/json-schema": "npm:*"
+ checksum: e33ca87a30a9454ba9943e1270ac759996f5fe598a1c1afbaec1d1e7346a339e20bf2a9d81f177067116bbaa6cfa4f748993cb338f57978ae862ad38ffae56fe
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:*":
+ version: 1.0.5
+ resolution: "@types/estree@npm:1.0.5"
+ checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d
+ languageName: node
+ linkType: hard
+
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
checksum: a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
@@ -1926,7 +1943,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
+"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
version: 4.3.4
resolution: "debug@npm:4.3.4"
dependencies:
@@ -4864,6 +4881,7 @@ __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"