当前位置: 首页 > 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.jsqmd.com/news/512575/

相关文章:

  • 2026年探讨荣仪达信息技术服务有限公司,浙江认证服务费用多少钱 - 工业品牌热点
  • 分数规划
  • ThreadLocal在Handler机制中的作用
  • 养龙虾-------【openclaw 对接小红书 】---自动化小红书
  • C语言写量子芯片驱动前必须做的7步接口压力测试:从单光子探测器误触发到多QPU并发访问崩溃的完整复现路径
  • CAIE注册人工智能工程师认证,正在成为AI职场的新晋“硬通货”
  • 2026年认证服务哪家好,浙江荣仪达信息技术服务有限公司可信度高吗 - 工业推荐榜
  • 微店商品详情接口实战:从合规调用到数据结构化解析(2026 实战版)
  • Linux系统基础知识1
  • YOLO26实战宝典第12篇:实时视频流分析与结构化输出——从单帧检测到智能监控全流程
  • 847-便捷视频剪切-视频片段删除合并工具V1.0
  • ssm+java2026年毕设身心健康分析系统【源码+论文】
  • CAIE注册人工智能工程师认证:传统行业转型的“硬核适配器”
  • 2026年浙江认证机构哪家好:分析荣仪达的市场定位准确与否 - myqiye
  • 计算机中的浮点数 - 十进制的浮点数转化为二进制
  • 直流微网混合储能系统的电池优先级与直流母线电压稳定性研究
  • 避坑指南:MATLAB插值函数interp1的4种方法到底怎么选?附刹车距离仿真
  • 思墨讯灵AIGEO靠谱吗能解决企业获客难题吗 - mypinpai
  • html界面上位机开发
  • ssm+java2026年毕设深夜食堂app【源码+论文】
  • stm32进阶-FLASH存储优化
  • NSIS自定义.nsisbin文件教程
  • Python接口测试之接口关键字封装
  • AI赋能 车行无忧|腾视科技ES10终端,为车辆装上“智慧大脑”
  • Topsis算法实战:用Python替代MATLAB完成综合评价(附完整代码)
  • 【Hung-yi Lee】《Introduction to Generative Artificial Intelligence》(3)
  • Matlab仿真实验研究:基于扩展卡尔曼滤波器与无迹卡尔曼滤波器对电力系统状态估计的影响及验证
  • 使用Natapp解决内网穿透问题
  • 机器学习个人笔记(第一节)
  • CMOS反相器的版图绘制与仿真