diff --git a/.Screenshots/HomePage.png b/.Screenshots/HomePage.png new file mode 100644 index 0000000..d676681 Binary files /dev/null and b/.Screenshots/HomePage.png differ diff --git a/.Screenshots/InfoPage.png b/.Screenshots/InfoPage.png new file mode 100644 index 0000000..10af6c5 Binary files /dev/null and b/.Screenshots/InfoPage.png differ diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 0000000..a529aad --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,70 @@ +{ + "projectName": "exam-showboard-next", + "projectOwner": "ProjectCampus-CH", + "files": [ + "README.md" + ], + "commitType": "docs", + "commitConvention": "angular", + "contributorsPerLine": 7, + "contributors": [ + { + "login": "MKStoler4096", + "name": "MKStoler", + "avatar_url": "https://avatars.githubusercontent.com/u/178344462?v=4", + "profile": "http://qsgz.edicdn.eu.org", + "contributions": [ + "code", + "bug" + ] + }, + { + "login": "Jursin", + "name": "Jursin", + "avatar_url": "https://avatars.githubusercontent.com/u/127487914?v=4", + "profile": "https://github.com/Jursin", + "contributions": [ + "content", + "design" + ] + }, + { + "login": "hello8693DSZ", + "name": "Hello8693", + "avatar_url": "https://avatars.githubusercontent.com/u/88492699?v=4", + "profile": "https://github.com/hello8693DSZ", + "contributions": [ + "code" + ] + }, + { + "login": "fhzit", + "name": "fhzit", + "avatar_url": "https://avatars.githubusercontent.com/u/152045732?v=4", + "profile": "https://github.com/fhzit", + "contributions": [ + "code", + "bug", + "doc" + ] + }, + { + "login": "wjj-8283", + "name": "wjj-8283", + "avatar_url": "https://avatars.githubusercontent.com/u/82750345?v=4", + "profile": "https://github.com/wjj-8283", + "contributions": [ + "code" + ] + }, + { + "login": "dependabot", + "name": "Dependabot", + "avatar_url": "https://avatars.githubusercontent.com/u/27347476?v=4", + "profile": "https://github.com/features/security", + "contributions": [ + "code" + ] + } + ] +} diff --git a/.github/ISSUE_TEMPLATE/BugReport.yml b/.github/ISSUE_TEMPLATE/BugReport.yml new file mode 100644 index 0000000..9fed2f4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BugReport.yml @@ -0,0 +1,90 @@ +name: Bug 反馈 +description: 在使用考试看板 Next 的过程中遇到了 Bug 。 +title: (在这里输入你的标题) +labels: ['Bug', '未阅读'] +body: + - type: markdown + attributes: + value: | + 感谢您进行 Bug 反馈。请在上面的文本框⬆️起一个能够清晰描述您的问题的标题,便于开发者解决您的问题。 + + > [!important] + > + > 如果要提出**多个 Bug **,请为每一个 Bug 开一个单独的 issue。 + > + > 如果您不知道如何有效、精准地表述,建议先阅读[《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)。 + + - type: checkboxes + id: checklist + attributes: + label: 检查清单 + description: 在开始反馈这个问题之前,请先检查: + options: + - label: 我已更新到最新版 ![最新的版本号](https://img.shields.io/github/v/release/ProjectCampus-CH/dsz-exam-showboard-next?include_prereleases&style=flat) ,并看过[最新提交](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/commits/dev/),确认这一 Bug 还没有修复。 + required: true + - label: 我已在 [Issues](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/issues?q=label%3ABug) 中检索,确认这一 Bug 未被提交过。 + required: true + - label: 我已知晓并同意,此处仅用于汇报程序中存在的问题(关于其他非程序本身的问题应当在 Discussion 板块提出)。 + required: true + - type: markdown + attributes: + value: | + ### Bug 信息 + + 描述您遇到的 Bug。您可以附上截图、录屏、堆栈跟踪、日志等材料,便于开发者追踪问题。 + - type: textarea + id: excepted + attributes: + label: 期望的行为 + description: 详细的描述你期望发生的行为,突出与目前(可能不正确的)行为的不同。 + validations: + required: true + - type: textarea + id: what-happened + attributes: + label: 实际结果 + description: 实际发生的行为。 + validations: + required: true + - type: textarea + id: reproduce-steps + attributes: + label: 重现步骤 + description: | + 详细描述怎么操作能再次触发这个 Bug 。 + placeholder: | + 1. 首先…… + 2. 然后…… + 3. …… + validations: + required: true + - type: textarea + id: stacktrace + attributes: + label: 堆栈跟踪(可选) + description: 如果在遇到这个 Bug 时发生了崩溃(弹出崩溃提示),或者产生了错误日志,请将产生的堆栈跟踪信息粘贴到此处,便于开发者定位 Bug 。 + render: shell + - type: input + id: app_version + attributes: + label: 应用版本 + description: 您当前使用的考试看板 Next 版本号,可以在【关于】中查看。 + placeholder: 如:1.2.0 + validations: + required: true + - type: input + id: os_version + attributes: + label: 操作系统版本 + description: | + 您当前使用的 Windows 操作系统版本,可以运行 `winver.exe` 查看。 + 如果您不能肯定此 Bug 与操作系统无关,请填写此项。 + placeholder: 如:10.0.22000.0 + - type: checkboxes + id: revision + attributes: + label: 最后一步 + description: 回顾您的回答 + options: + - label: 我认为上述的描述已经足以详细,以允许开发人员能复现该问题。如果我的 issue 没有按照上述的要求填写,可能会被无条件关闭。 + required: true diff --git a/.github/ISSUE_TEMPLATE/FeatureRequest.yml b/.github/ISSUE_TEMPLATE/FeatureRequest.yml new file mode 100644 index 0000000..bef3ad2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FeatureRequest.yml @@ -0,0 +1,48 @@ +name: 功能请求 +description: 提出一项新的功能。 +title: (在这里输入你的标题) +labels: ['新功能', '未阅读'] +body: + - type: markdown + attributes: + value: | + 感谢您贡献您的想法。请在上面的文本框⬆️起一个能够清晰概括此功能的标题,便于开发者了解您的想法。 + + > [!important] + > 重要:如果您想要提出 **多项功能**,请为每一个功能开一个单独的 issue。 + - type: checkboxes + id: checklist + attributes: + label: 检查清单 + description: 在开始反馈这个问题之前,请先检查: + options: + - label: 我已将本应用更新到最新测试版 ![最新的版本号](https://img.shields.io/github/v/release/ProjectCampus-CH/dsz-exam-showboard-next?include_prereleases),并看过[最新提交](https://github.com/ClassIsland/ClassIsland/commits/dev/),确认我想要的功能还没有实现。 + required: true + - label: 我已在 [Issues](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/issues?q=label%3A新功能) 确认我想要的功能未被提交过。 + required: true + - label: 我认为我想要的功能是用户广泛需要的,且没有超出考试看板 Next 的开发目标,而非添加与之无关的内容。 + required: true + - label: 我已知晓由于开发者时间精力有限,加上已经积压了大量的功能请求,我提交的功能请求可能需要比较久的时间才能实现。 + required: true + - type: textarea + id: back + attributes: + label: 背景与动机 + description: 添加此功能的理由。 + validations: + required: true + - type: textarea + id: req + attributes: + label: 想要实现或优化的功能 + description: 详细地描述一下你想要的功能,描述的越具体,采纳的可能性越高。 + validations: + required: true + - type: checkboxes + id: revision + attributes: + label: 最后一步 + description: 回顾您的回答 + options: + - label: 我认为上述的描述已经足以详细,以便开发人员理解您想要的功能。如果我的 issue 没有按照上述的要求填写,可能会被无条件关闭。 + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..f259687 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: 讨论区 + url: https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/discussions + about: 使用中若遇到问题或有新点子新需求,请先在这里求助和征求意见。 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b417983 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 68798a6..ddb0696 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,9 +1,10 @@ -name: Build and Package Electron App +name: 推送时构建 on: push: branches: - master + - dev jobs: build: diff --git a/.github/workflows/inactive.yaml b/.github/workflows/inactive.yaml new file mode 100644 index 0000000..11292fc --- /dev/null +++ b/.github/workflows/inactive.yaml @@ -0,0 +1,26 @@ +name: 关闭不活跃 Issue 和 Pull Request +on: + workflow_dispatch: + + schedule: + - cron: "30 1 * * *" + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v9 + with: + any-of-labels: 进一步提供信息, 不正确 + days-before-issue-stale: 14 + days-before-issue-close: 7 + days-before-pr-stale: 14 + days-before-pr-close: 7 + stale-issue-label: "陈旧" + stale-pr-label: "陈旧" + stale-issue-message: "由于此 Issue 在 14 天内没有动态,已被标记为陈旧。如果此 Issue 没有更多动态(评论等),将在 7 天后被关闭。" + stale-pr-message: "由于此 Pull Request 在 14 天内没有动态,已被标记为陈旧。如果此 Pull Request 没有更多动态(评论等),将在 7 天后被关闭。" + repo-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/publish.yaml b/.github/workflows/package.yaml similarity index 63% rename from .github/workflows/publish.yaml rename to .github/workflows/package.yaml index d656a2e..54dcaa6 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/package.yaml @@ -1,14 +1,17 @@ -name: Release Build and Package +name: 打包并生成应用 on: + pull_request: release: types: [published] + workflow_dispatch: jobs: build: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [windows-latest, macos-latest, ubuntu-latest] node-version: [20.x] @@ -16,28 +19,25 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4.1.7 - if: github.event.release.prerelease == false || matrix.os == 'windows-latest' - name: Set up Node.js uses: actions/setup-node@v4 - if: github.event.release.prerelease == false || matrix.os == 'windows-latest' with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: yarn install - if: github.event.release.prerelease == false || matrix.os == 'windows-latest' - name: Build and package for Windows - if: github.event.release.prerelease == false && matrix.os == 'windows-latest' + if: matrix.os == 'windows-latest' run: yarn build:win - name: Build and package for macOS - if: github.event.release.prerelease == true && matrix.os == 'macos-latest' + if: matrix.os == 'macos-latest' run: yarn build:mac - name: Build and package for Linux - if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest' + if: matrix.os == 'ubuntu-latest' run: yarn build:linux - name: Upload artifact for Windows @@ -48,15 +48,26 @@ jobs: path: dist/*.exe - name: Upload artifact for macOS - if: github.event.release.prerelease == true && matrix.os == 'macos-latest' + if: matrix.os == 'macos-latest' uses: actions/upload-artifact@v4 with: name: ExamShowboard-macOS path: dist/*.dmg - name: Upload artifact for Linux - if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest' + if: matrix.os == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: ExamShowboard-Linux path: dist/*.AppImage + + - name: Upload assets to GitHub Release + if: github.event_name == 'release' && github.event.action == 'published' + uses: softprops/action-gh-release@v1 + with: + files: | + dist/*.exe + dist/*.dmg + dist/*.AppImage + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/similarity.yaml b/.github/workflows/similarity.yaml new file mode 100644 index 0000000..3a6a323 --- /dev/null +++ b/.github/workflows/similarity.yaml @@ -0,0 +1,21 @@ +name: 相似 Issues 分析 + +on: + issues: + types: [opened, edited] + +jobs: + similarity-analysis: + runs-on: ubuntu-latest + steps: + - name: analysis + uses: actions-cool/issues-similarity-analysis@v1 + with: + filter-threshold: 0.5 + comment-title: | + ### 相似 Issues + comment-body: '${index}. ${similarity} #${number}' + title-excludes: "(在这里输入你的标题),bug" + since-days: 365 + show-footer: false + show-mentioned: true \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 9c6b791..ac2bbdf 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,3 +4,5 @@ pnpm-lock.yaml LICENSE.md tsconfig.json tsconfig.*.json +.all-contributorsrc +.github/dependabot.yml \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index fa35abe..b8d881b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,5 +25,6 @@ "command": "extension.execute", "priority": 4 } - ] + ], + "Codegeex.RepoIndex": true } diff --git a/README.md b/README.md index 1dd90bf..88c12d0 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,120 @@ -# DSZ考试展板 +
-![view](image/README/view.png) +# ExamShowboard-Next -[![stars](https://img.shields.io/github/stars/hello8693DSZ/dsz-exam-showboard?label=Stars)](https://github.com/hello8693DSZ/dsz-exam-showboard) -[![Release](https://img.shields.io/github/downloads/hello8693DSZ/dsz-exam-showboard/total?style=social&label=Downloads&logo=github)](https://github.com/hello8693DSZ/dsz-exam-showboard/releases/latest) -[![Beta](https://img.shields.io/github/v/release/hello8693DSZ/dsz-exam-showboard?include_prereleases&style=social-square&label=测试版)](https://github.com/hello8693DSZ/dsz-exam-showboard/releases/) + -## 软件介绍 +> 下一代考试看板 -- 您可以查看下方的详细介绍 -- 使用Vue + TypeScript + JavaScript制作,使用Node.js+Electron完善系统级功能并打包。 -- 欢迎给作者点个右上角的Star或者给作者宣传一波 -- [【点我加群】DSZ考试看板QQ交流群: 901670561](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=TIGkmk-8lHUtUj_D4BVZ95tY-MMA1IwF&authKey=2TIKZ838Aq7vWGyiMKx9vwi%2B1MfHqpCv7NZ4XpTl4QhpAW03ac7x8Gc%2FnnOougVi&noverify=0&group_code=901670561) +[![stars](https://img.shields.io/github/stars/ProjectCampus-CH/exam-showboard-next?label=Stars)](https://github.com/ProjectCampus-CH/exam-showboard-next/stargazers) +[![forks](https://img.shields.io/github/forks/ProjectCampus-CH/exam-showboard-next?label=Forks)](https://github.com/ProjectCampus-CH/exam-showboard-next/forks) +[![Watchers](https://img.shields.io/github/watchers/ProjectCampus-CH/exam-showboard-next?style=social)](https://github.com/ProjectCampus-CH/exam-showboard-next/watchers) +[![Downloads](https://img.shields.io/github/downloads/ProjectCampus-CH/exam-showboard-next/total?style=social&label=Downloads&logo=github)](https://github.com/ProjectCampus-CH/exam-showboard-next/releases) +[![GitHub Issues](https://img.shields.io/github/issues-search/ProjectCampus-CH/exam-showboard-next?query=is%3Aopen&style=flat&logo=github&label=Issues&color=%233fb950)](https://github.com/ProjectCampus-CH/exam-showboard-next/issues) +[![GitHub Discussions](https://img.shields.io/github/discussions/ProjectCampus-CH/exam-showboard-next?style=flat&logo=Github&label=Discussions)](https://github.com/ProjectCampus-CH/exam-showboard-next/discussions) +[![创建d At](https://img.shields.io/github/created-at/ProjectCampus-CH/exam-showboard-next)](https://github.com/ProjectCampus-CH/exam-showboard-next) +[![Github Last Commit](https://img.shields.io/github/last-commit/ProjectCampus-CH/exam-showboard-next)](https://github.com/ProjectCampus-CH/exam-showboard-next/commits/master) +[![GitHub Language Count](https://img.shields.io/github/languages/count/ProjectCampus-CH/exam-showboard-next)](https://github.com/ProjectCampus-CH/exam-showboard-next) +[![GitHub Top Language](https://img.shields.io/github/languages/top/ProjectCampus-CH/exam-showboard-next)](https://github.com/ProjectCampus-CH/exam-showboard-next) + +[![LICENSE](https://img.shields.io/badge/License-GPL--3.0-red.svg 'LICENSE')](LICENSE) +[![QQ群](https://img.shields.io/badge/-QQ%E7%BE%A4%EF%BD%9C901670561-blue?style=flat&logo=TencentQQ&logoColor=white)](https://qm.qq.com/q/zDiEipHsaI) +[![All Contributors](https://img.shields.io/github/all-contributors/ProjectCampus-CH/exam-showboard-next?color=ee8449)](#贡献者) +[![Build and Package Electron App](https://github.com/ProjectCampus-CH/exam-showboard-next/actions/workflows/build.yaml/badge.svg)](https://github.com/ProjectCampus-CH/exam-showboard-next/actions/workflows/build.yaml) + +![HomePage](/.Screenshots/HomePage.png) +![InfoPage](/.Screenshots/InfoPage.png) + +一款显示当前时间与考试详细信息的看板类软件 + +| 下载 | [Releases](https://github.com/ProjectCampus-CH/exam-showboard-next/releases) | [Actions](https://github.com/ProjectCampus-CH/exam-showboard-next/actions) | +| ---- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | + +
+ +> [!tip] +> +> **本软件使用 `Vue` + `TypeScript` + `JavaScript` 制作,使用 `Node.js` + `Electron` 完善系统级功能并打包。** ## 功能 -### 展示考试信息 - -- [x] 展示考试名称 -- [x] 展示当前时间 -- [x] 展示当前考试科目名称 -- [x] 展示考试开始,结束时间 -- [x] 展示考试状态 - -### 其他功能 - -- [x] 考试结束十五分钟前预警 -- [ ] 集控管理(正在开发中) - -## 软件截图 - -### 主界面截图 - -![main](image/README/main.png) - -### 考试界面截图 - -![view](image/README/view.png) +- 起始页展示 `打开配置` 、 `直接进入看板` 按钮 +- 看板页面 + - 上方展示 `考试标题` 、 `信息` + - 左侧展示 `当前时间` 、 `当前科目` 、 `考试时间` 、 `考试状态` + - 右侧展示考试科目列表,包括 `科目` 、 `开始` 、 `结束` 、 `状态` + - 考试结束前15分钟黄字提醒 + - 集控功能(早期测试) + - 设置页面(正在开发) ## 开始使用 -### 下载 +- 下载安装程序并运行 -对于普通用户,可以在以下渠道下载到本软件 +默认安装路径 `AppData\Local\Programs\exam-showboard` -下载 [Realeases](https://github.com/hello8693DSZ/dsz-exam-showboard/releases) | [Actions](https://github.com/hello8693DSZ/dsz-exam-showboard/actions) +- 编写 `json` 配置文件
+ - 您可以前往[ `ExamShowBoardEditor`](https://github.com/ProjectCampus-CH/DSZExamShowBoardEditor/releases)获取生成软件
+ - 您可以按照[手动编写 `json` 配置文件](https://github.com/ProjectCampus-CH/exam-showboard-next/tree/master/doc/Manually-write-JSON-configuration-file.md)教程编写配置文件 -### 准备配置文件 -#### 新建格式为`json`的配置文件,模板如下 +- 打开软件,进入起始页面,点击 `打开配置` 按钮,选择配置文件 +- 或使用集控(仿照 [`ClassIsland` 集控使用方法](https://docs.classisland.tech/management/tutorial-create-management-config.html)) + - 新建 GitHub 公开存储仓库 + - 上传上面提到的 `exam_config.json` 文件 + - 复制 `Raw` 直链粘贴到应用`请求地址`文本框并保存 -```json -{ - "examName": "", - "message": "", - "examInfos": [ - { - "name": "", - "start": "XXXX-XX-XXTXX:XX:XX", - "end": "XXXX-XX-XXTXX:XX:XX" - } - ] -} -``` +> [!tip] +> +> 可以在 `Raw 文件` 前加上镜像源,如 +> +> ```txt +> https://github.moeyy.xyz/https://raw.githubusercontent.com/{owner}/{repo}/refs/heads/main/exam_config.json +> ``` -### 运行 +- 点击`请求配置`加载配置文件并进入看板(下次可直接点击`直接进入看板`加载上次配置文件) -下载完成后,将软件双击运行,等待进度条走完,双击运行桌面上的名为ExamShowboard的快捷方式 +## 遇到问题 -### 导入配置 +💡 如果您遇到 `Bug` ,或需要提出`优化`建议或新的`功能`,请提交 [`Issues`](https://github.com/ProjectCampus-CH/exam-showboard-next/issues) 或在 [`Discussions`](https://github.com/ProjectCampus-CH/exam-showboard-next/discussions) 中讨论。 -进入主界面后,点击打开配置按钮,选择您已配置好的配置文件,下次进入时可点击直接进入看板按钮进入考试看板,继续使用上次加载的配置文件。 +👥 您也可以加入 [`QQ群|901670561`](https://qm.qq.com/q/zDiEipHsaI)获取帮助或交流讨论。 + +🛠️ 欢迎为本软件进行改进或编写新功能提交 [`Pull Request`](https://github.com/ProjectCampus-CH/exam-showboard-next/pulls) ## 开发 -要在本地编译应用您需要安装以下负载和工具 +### 推荐开发环境 -- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) +- [VSCode](https://code.visualstudio.com/) + - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + - [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) -### 注意事项 +> [!Caution] +> +> **必须使用 Yarn 包管理。Node 版本要求为20。** -必须使用Yarn包管理。Node版本要求为20。 +### 工程构建 -### Project Setup - -#### 安装 +#### 配置 ```bash $ yarn ``` -#### Development +#### 开发 ```bash $ yarn dev +# 如果无法显示,可以尝试使用下面的命令(不支持热重载): +$ yarn start ``` +> [!important] +> +> **如果 dev 模式页面不显示或按钮点击无效等问题,请连续刷新至少3次后再进行操作。 build 后没有此问题。** + #### 构建 ```bash @@ -109,14 +128,41 @@ $ yarn build:mac $ yarn build:linux ``` -### 说明 +### 开发进度 -如果dev模式页面不显示或按钮点击无效等问题,请连续刷新至少3次后再进行操作。build后没有此问题。 +- 正在 [`master`](https://github.com/ProjectCampus-CH/exam-showboard-next/commits/master) 分支上维护`1.2-Yesod`版本。 -我们欢迎想要为本应用实现新功能或进行改进的同学提交 [Pull Request](https://github.com/hello8693DSZ/dsz-exam-showboard/pulls) +- 正在 [`dev`](https://github.com/ProjectCampus-CH/exam-showboard-next/commits/dev) 分支上开发`1.3-HOD`版本。 + +## 贡献者 + + + + + + + + + + + + + + + +
MKStoler
MKStoler

💻 🐛
Jursin
Jursin

🖋 🎨
Hello8693
Hello8693

💻
fhzit
fhzit

💻 🐛 📖
wjj-8283
wjj-8283

💻
Dependabot
Dependabot

💻
+ + + + + ## Stars 历史 -[![Star 历史](https://starchart.cc/hello8693DSZ/dsz-exam-showboard.svg?variant=adaptive)](https://starchart.cc/hello8693DSZ/dsz-exam-showboard) -
+ +[![Star 历史](https://starchart.cc/ProjectCampus-CH/exam-showboard-next.svg?variant=adaptive)](https://starchart.cc/ProjectCampus-CH/exam-showboard-next/stargazers) + +如果这个项目对您有帮助,请点亮 Star [⭐](#exam-showboard-next) + +
diff --git a/doc/Manually-write-JSON-configuration-file.md b/doc/Manually-write-JSON-configuration-file.md new file mode 100644 index 0000000..febdfe4 --- /dev/null +++ b/doc/Manually-write-JSON-configuration-file.md @@ -0,0 +1,34 @@ +# 手动编写json配置文件教程
+## 新建文件 `exam_config.json` ,模板如下 + +> [!warning] +> +> 请确保 `exam_config.json` 文件编码为 `UTF-8`,换行符为 `LF`,按照`json`文件格式填写。不然可能会出一些神奇的 Bug。 +> +> 不确定?可以使用 [VSCode](https://code.visualstudio.com/) 打开、编辑文件,右下角显示编码格式和换行方式,点击即可更改。 + +```json +{ + "examName": "考试名称", + "message": "信息", + "room": "考场号", + "examInfos": [ + { + "name": "科目", + "start": "2024-12-01T07:00:00", + "end": "2024-12-01T08:00:00" + }, + { + "name": "科目/科目", + "start": "2024-12-01T09:00:00", + "end": "2024-12-01T10:00:00" + } + ] +} +``` + +> [!tip] +> +> `message` 与 `room` 内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。 +> +> 如果有两个以"/"分隔的科目可以自动转化为双行显示 \ No newline at end of file diff --git a/image/README/main.png b/image/README/main.png deleted file mode 100644 index a8dfe79..0000000 Binary files a/image/README/main.png and /dev/null differ diff --git a/image/README/view.png b/image/README/view.png deleted file mode 100644 index ef22f6e..0000000 Binary files a/image/README/view.png and /dev/null differ diff --git a/package.json b/package.json index 8ba044f..1070e2e 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { - "name": "dsz-exam-showboard", - "version": "0.1.0", - "description": "An Electron application with Vue", + "name": "examshowboard", + "version": "1.2.5", + "description": "电子考试展示板", "main": "./out/main/index.js", - "author": "Hello8693 ", - "homepage": "https://dsz.hello8693.xyz/", + "author": "Hello8693&MKStoler ", + "homepage": "https://edicdn.eu.org/", "scripts": { "preinstall": "node -e \"if (process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('Use yarn for installing: https://yarnpkg.com/en/docs/install')\"", "format": "prettier --write .", @@ -46,7 +46,7 @@ "devDependencies": { "@commitlint/config-conventional": "^19.2.2", "@electron-toolkit/eslint-config": "^1.0.1", - "@electron-toolkit/eslint-config-ts": "^1.0.1", + "@electron-toolkit/eslint-config-ts": "^2.0.0", "@electron-toolkit/tsconfig": "^1.0.1", "@rushstack/eslint-patch": "^1.6.1", "@types/vue": "^2.0.0", @@ -60,11 +60,11 @@ "electron-icon-builder": "^2.0.1", "electron-vite": "^2.0.0", "eslint": "^8.56.0", - "eslint-plugin-vue": "^9.20.1", - "husky": "^9.1.5", + "eslint-plugin-vue": "^9.32.0", + "husky": "^9.1.7", "lint-staged": "^15.2.9", "pinia": "^2.1.7", - "prettier": "^3.2.4", + "prettier": "^3.4.2", "raw-loader": "^4.0.2", "roboto-fontface": "*", "sass": "^1.71.1", @@ -72,11 +72,11 @@ "unplugin-fonts": "^1.1.1", "unplugin-vue-components": "^0.27.3", "unplugin-vue-router": "^0.8.4", - "vite": "^5.0.12", + "vite": "^5.3.6", "vite-plugin-optimizer": "^1.4.3", "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-vue-layouts": "^0.11.0", - "vite-plugin-vuetify": "^2.0.3", + "vite-plugin-vuetify": "^2.0.4", "vue-router": "^4.3.0", "vue-tsc": "^1.8.27" }, diff --git a/src/renderer/index.html b/src/renderer/index.html index 8928959..39acc79 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -5,10 +5,20 @@ DSZ Exam Showboard + -
+
diff --git a/src/renderer/src/components/AppTopBar.vue b/src/renderer/src/components/AppTopBar.vue index e0a9d1b..d1170ff 100644 --- a/src/renderer/src/components/AppTopBar.vue +++ b/src/renderer/src/components/AppTopBar.vue @@ -1,46 +1,27 @@ + +function gotoHome() { + router.push({ path: '/mainWindow', query: { skipAutoEnter: true } }); +} + \ No newline at end of file diff --git a/src/renderer/src/components/ExamList.vue b/src/renderer/src/components/ExamList.vue index 9ba01a8..f296773 100644 --- a/src/renderer/src/components/ExamList.vue +++ b/src/renderer/src/components/ExamList.vue @@ -1,42 +1,51 @@