当前位置: 首页 > news >正文

OJ前端页面开发

Markdown编辑器

推荐的 Md 编辑器:https://github.com/bytedance/bytemd
阅读官方文档,下载编辑器主体、以及 gfm(表格支持)插件、highlight 代码高亮插件
npm i @bytemd/vue-next npm i @bytemd/plugin-highlight @bytemd/plugin-gfm
新建 MdEditor 组件,编写代码:

隐藏编辑器中不需要的操作图标(比如 GitHub 图标):

要把 MdEditor 当前输入的值暴露给父组件,便于父组件去使用,同时也是提高组件的通用
性,需要定义属性,把 value 和 handleChange 事件交给父组件去管理:
MdEditor 示例代码:

代码编辑器

微软官方编辑器:https://github.com/microsoft/monaco-editor
官方提供的整合教程:https://github.com/microsoft/monaco-editor/blob/main/docs/
integrate-esm.md
安装编辑器
vue-cli 项目(webpack 项目)整合 monaco-editor。
先安装 monaco-editor-webpack-pluginhttps://github.com/microsoft/monaco
editor/blob/main/webpack-plugin/README.md
在 vue.config.js 中配置 webpack 插件:
全量加载:
按需加载:
如何使用 Monaco Editor?查看示例教程:
https://microsoft.github.io/monaco-editor/playground.html?
source=v0.40.0#example-creating-the-editor-hello-world<https://
microsoft.github.io/monaco-editor/playground.html?source=v0.40.0#example
creating-the-editor-hello-world>
整合教程参考:http://chart.zhenglinglu.cn/pages/2244bd/#%E5%9C%A8-vue-
%E4%B8%AD%E4%BD%BF%E7%94%A8<http://chart.zhenglinglu.cn/pages/2244bd/
#%E5%9C%A8-vue-%E4%B8%AD%E4%BD%BF%E7%94%A8>
注意,monaco editor 在读写值的时候,要使用 toRaw(编辑器实例)的语法来执行操作,否
则会卡死。
示例整合代码如下:
通 Md 编辑器一样,也要接受父组件的传值,把显示的输入交给父组件去控制,从而能够让父
组件实时得到用户输入的代码:

页面开发

创建题目页面

重新根据后端生成前端请求代码:
openapi -- input http://localhost:8121/api/v2/api-docs -- output ./generated -- client axios
在 JetBrains 系列编辑器中打开设置,搜索 live Templates,先创建一个自定义模板组,在组
下创建代码模板。
效果:输入缩写,即可生成模板代码。
示例模板:
<template> <div id="$ID$"></div> </template> <script setup lang="ts"> $END$ </script> <style scoped> #$ID$ { } </style>
注意,其中的 ID 是根据表达式自动生成的:camelCase(fileNameWithoutExtension())
使用表单组件,先复制示例代码,再修改:https://arco.design/vue/component/form
此处我用到了
嵌套表单:https://arco.design/vue/component/form#nest
动态增减表单:https://arco.design/vue/component/form#dynamic
注意,自定义的代码编辑器组件不会被组件库识别,需要手动指定 value 和
handleChange 函数。
题目管理页面开发
1)使用表格组件:https://arco.design/vue/component/table#custom<https://
arco.design/vue/component/table#custom>(需要找到自定义操作的示例)
2)查询数据
3)定义表格列
4)加载数据
5)调整格式
比如 json 格式不好看,有 2 种方法调整:
1.使用组件库自带的语法,自动格式化(更方便)
2.完全自定义渲染,想展示什么就展示什么(更灵活)
6)添加删除、更新操作
删除后要执行 loadData 刷新数据
如果想学习 React And Design 框架的管理页面开发,去看用户中心项目
http://www.cnnetsun.cn/news/1402954.html

相关文章:

  • PaddleOCR系列——《文本检测、文本识别》模型训练
  • LangBot:企业级即时通讯 AI 机器人平台 介绍篇
  • 【超详细】2026年OpenClaw云端零基础1分钟部署及使用教程
  • 告别机械音!Qwen3-TTS实测:97ms低延迟生成真人级语音
  • 【上位机心法】别让传感器数据卡死你的 UI!撕碎 Qt/QML 渲染黑盒,用 C++ 后端打造 144Hz 零延迟工业仪表盘
  • 小白也能玩转DeepSeek-OCR:图文并茂的部署使用教程
  • Qwen3-TTS语音合成生产环境部署:高并发流式API服务搭建实践
  • S12SD紫外线传感器在MSPM0G3507上的低功耗模拟接口移植
  • csdn访问量越来越低-----可能要做好转移数据的准备
  • NEC红外协议串口模块:5字节指令实现红外编解码
  • 光储融合的深度重构:2024年电站建设方案的数字基因与商业进化(WORD)
  • ESP32驱动0.96寸TFT屏幕避坑指南:ST7735初始化与坐标偏移实战
  • AI气候影响小于预期,或助力绿色技术创新
  • 一文讲清全面质量管理是什么意思?全面质量管理的核心是什么?
  • 计算机毕业设计springboot高校学生学业预警系统 基于SpringBoot的高校学业风险监测与干预平台 SpringBoot框架下大学生学业状态智能追踪与预警平台
  • CentOS 7下GTK2开发环境搭建全攻略(附常见错误解决方案)
  • 功能测试、自动化测试、性能测试的区别?
  • 【Dify企业级私有化部署终极指南】:5大架构选型对比、3类典型故障复盘与2024年生产环境落地 checklist
  • Qwen3-32B-Chat镜像部署教程:transformers tokenizer.pad_token_id设置要点
  • Cosmos-Reason1-7B模型部署避坑指南:解决403 Forbidden等常见API访问错误
  • CANoe新手必看:如何用VN7640实现双通道CAN报文互发(附实物接线图)
  • K8s内存监控避坑指南:为什么container_memory_working_set_bytes会骗人?
  • 保姆级教程:在CentOS 7上从Node.js到RustDesk Server的完整自建流程(含防火墙配置)
  • HB100微波雷达嵌入式驱动设计与消抖实现
  • SHT20温湿度传感器驱动开发与I²C通信实战
  • Stripe跨境收款实战:从注册到提现的全流程解析
  • netsh winsock reset真的有用吗?深度解析Windows网络重置的适用场景与注意事项
  • Alibaba DASD-4B Thinking 对话工具 C 盘清理方案智能分析与自动化脚本建议
  • 曾经有个人把别人的声音申请为个人的版权作为个人私有财产之后收到了国内外无数的律师函
  • IBM MQ安装包全版本解析:从试用版到正式版,如何选择最适合你的版本?