SpringBoot + Spring Cloud +Vue 管理系统前端搭建(二、visual studio code开发前端项目)

[开源]基于SpringCloud与Vue前后端分离,分布式架构OA系统开发平台 名称:JNPF OA系统开发平台 JNPF平台采用Java主流的微服务技术栈,是基于Spring Cloud Alibaba的微服务解决方案进行封装的快速开发平台,包含多种常用开箱即用功能的模块,通用技术组件与服务、微服务治理,具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动生成前后端代码、支持多种存储系统、分布式事务、分布式任务调度、多租户、单点登录、第三方登录等多个功能和模块,支持多业务系统(多服务)并行开发,平台设计灵活可扩展、可移植,可应用高并发需求,同时兼顾本地化、私有云、公有 阅读详情

我们打开visual studio code , 选择文件------------->将文件夹添加到工作区,导入我们的项目

 

安装Element

导入后,我们安装以下element

官网:https://element.eleme.cn/#/zh-CN/component/installation

安装命令:npm add element-ui或者也可以用yarn

安装完成后,我们在main.js中引入Element

import Vue from 'vue'

import App from './App'

import router from './router'

import ElementUI from 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

 

/* eslint-disable no-new */

Vue.use(ElementUI)

new Vue({

el: '#app',

router,

components: { App },

template: '<App/>'

})

页面路由

 我们把components改名为views,并在目录下添加3个页面:Login.vue、Home.vue、404.vue。

页面内容类似:

<template>

<div class="page">

<h2>Login Page</h2>

</div>

</template>

 

<script>

export default {

name: 'Login'

}

</script>

配置路由

打开router/index.js,添加3个路由分别对应主页、登录、404页面

import Vue from 'vue'

import Router from 'vue-router'

import Login from '@/views/Login'

import Home from '@/views/Home'

import NotFound from '@/views/404'

 

Vue.use(Router)

 

export default new Router({

routes: [

{

path: '/',

name: 'Home',

component: Home

}, {

path: '/login',

name: 'Login',

component: Login

}, {

path: '/404',

name: 'notFound',

component: NotFound

}

]

})

配置完后启动项目,在浏览器访问测试

http://localhost:8080/#/

http://localhost:8080/#/login

 

http://localhost:8080/#/404

说明我们的配置已经生效了

安装scss

安装依赖:

npm uninstall sass-loader //卸载当前版本) 
npm install sass-loader@7.3.1 --save-dev //卸了重新安装了一个低版本
npm install node-sass@4.14.1 --save-dev //安装node-sass 

安装的时候注意对应版本,版本不对应,启动会报错

安装后修改404页面

<template>

<div class="site-wrapper site-page--not-found">

<div class="site-content__wrapper">

<div class="site-content">

<h2 class="not-found-title">404</h2>

<p class="not-found-desc">抱歉!您访问的页面<em>失联</em>啦 ...</p>

<el-button @click="$router.go(-1)">返回上一页</el-button>

<el-button type="primary" class="not-found-btn-gohome" @click="$router.push('/')">进入首页</el-button>

</div>

</div>

</div>

</template>

 

<script>

export default {

name: '404'

}

</script>

 

<style lang="scss">

.site-wrapper.site-page--not-found {

position: absolute;

top: 60px;

right: 0;

bottom: 0;

left: 0;

overflow: hidden;

.site-content__wrapper {

padding: 0;

margin: 0;

background-color: #fff;

}

.site-content {

position: fixed;

top: 15%;

left: 50%;

z-index: 2;

padding: 30px;

text-align: center;

transform: translate(-50%, 0);

}

.not-found-title {

margin: 20px 0 15px;

font-size: 8em;

font-weight: 500;

color: rgb(55, 71, 79);

}

.not-found-desc {

margin: 0 0 30px;

font-size: 26px;

text-transform: uppercase;

color: rgb(118, 131, 143);

> em {

font-style: normal;

color: #ee8145;

}

}

.not-found-btn-gohome {

margin-left: 30px;

}

}

</style>

再浏览器访问http://localhost:8080/#/404

 

可以看到样式改变了

安装axios

命令:npm install axios

安装完成后修改Home页面,进行一个简单的测试

<template>

<div class="page">

<h2>Home Page</h2>

<el-button type="primary" @click="testAxios()">测试Axios调用</el-button>

</div>

</template>

 

<script>

import axios from 'axios'

import mock from '@/mock/mock.js'

export default {

name: 'Home',

methods: {

testAxios() {

axios.get('http://localhost:8080').then(res => { alert(res.data) })

}

}

}

</script>

可以看到我们的请求已经成功了

安装Mock.js

为了模拟后台接口提供页面需要的数据,引入mock.js

安装依赖:npm install mockjs -dev

安装完成,在src新建一个mock目录,创建mock.js,在里面模拟两个接口,分别拦截用户和菜单的请求并返回相应数据。

import Mock from 'mockjs'

 

Mock.mock('http://localhost:8080/user', {

'name': '@name', // 随机生成姓名

'name': '@email', // 随机生成邮箱

'age|1-12': 7, // 年龄1-12之间

})

Mock.mock('http://localhost:8080/menu', {

'id': '@increment', // id自增

'name': 'menu', // 名称为menu

'order|1-10': 6, // 排序1-10之间

})

修改Home.vue,在页面添加两个按钮,分别触发用户和菜单请求。成功后弹出返回结果

注意:要在页面引入mock    import mock from '@/mock/mock.js'

Home.vue

<template>
  <div class="page">
    <h2>Home Page</h2>
    <el-button type="primary" @click="testAxios()">测试Axios调用</el-button>
    <el-button type="primary" @click="getUser()">获取用户信息</el-button>
    <el-button type="primary" @click="getMenu()">获取菜单信息</el-button>
  </div>
</template>

<script>
import axios from 'axios'
import mock from '@/mock/mock.js'
export default {
  name: 'Home',
  methods: {
    testAxios() {
      axios.get('http://localhost:8080').then(res => { alert(res.data) })
    },
    getUser() {
      axios.get('http://localhost:8080/user').then(res => { alert(JSON.stringify(res.data)) })
    },
    getMenu() {
      axios.get('http://localhost:8080/menu').then(res => { alert(JSON.stringify(res.data)) })
    }
  }
}
</script>

访问http://localhost:8080/#/

点击获取用户信息

点击获取菜单信息

可以看到我们已经得到响应数据,这样mock就集成进来了

看完记得点赞哦

SpringBoot+Vue3+DeepSeek实战:一小时搭建AI健身管理系统 前后端分离架构是现代Web应用开发的核心模式,通过RESTful API实现前后端解耦,提升开发效率和系统可维护性。其技术原理基于HTTP协议和JSON数据交换,前端框架负责UI渲染,后端框架处理业务逻辑和数据持久化。这种架构的价值在于支持团队并行开发、技术栈灵活选型,并能更好地适应移动端和微服务演进。在实践层面,增删改查(CRUD)操作是管理系统的基石,而集成AI能力则为应用增添了智能交互维度。本教程以健身管理系统为例,演示如何将SpringBoot后端、Vue3前端与DeepSeek API高效整合,快 阅读详情

相关推荐

SpringBoot+Vue智能停车场管理系统:从环境搭建到核心功能测试全流程指南

这次我们来看一个基于 SpringBoot + Vue 的智能停车场管理系统。这是一个典型的 Java Web 毕业设计或课程大作业项目,提供了完整的源码、数据库脚本和文档。对于正在寻找实战项目来巩固 SpringBoot 和 Vue 技术栈,或者急需一个高质量毕设选题的同学来说,这类“开箱即用”的项目非常具有参考价值。 这个项目的核心是构建一个现代化的停车场管理平台,旨在解决传统停车场管理效率低下、数据统计困难、用户体验不佳等问题。它采用了当前企业级开发中最主流的前后端分离架构:后端使用 SpringBo

dianwei5413的博客 346

Visual Studio Code 运用vue2简单信息系统管理页面,内容实现页面基本布局、axios异步加载、vue路由

3.在views文件夹里创建 element文件夹,再在element文件夹里创建 DeptView.vue。2.在views文件夹下创建tlias文件夹,再在tlias文件夹里创建文件EmView.vue。4.在index.js文件里添加路由。1.main.js 导入所需要库。最后,展示一下结果,员工系统。

qq_62249633的博客 730

SpringBoot+Vue+MySQL学生宿舍报修系统全栈开发实战

最近在辅导学生毕业设计和指导新人项目时,发现很多同学在搭建一个完整的前后端分离项目时,常常感到无从下手。特别是像“学生宿舍报修系统”这类具有明确业务场景的管理系统,涉及用户角色、业务流程、数据交互等多个环节,技术栈的选择和整合往往成为第一道门槛。本文将围绕一个基于 SpringBoot + Vue + MySQL 的“学生宿舍报修信息管理系统”展开,从零开始,手把手带你完成从环境搭建、数据库设计、后端接口开发到前端页面实现的全过程。文章不仅提供完整的、可运行的源码思路,更会深入讲解每个环节的设计原理和常见“

weixin_33968104的博客 402

Visual Studio C++ 中小微企业信息管理系统设计与实现之开发财务管理系统

题目要求设计与实现包括人事管理、财务管理、原材料采购与库存管理、产品销售管理等功能的中小微企业信息管理系统,支持各类人员相关信息的增、删、改、查。 管理员具有用户建立、权限分配、基础信息维护等功能权限。人事部门用户具有人事信息维护功能权限。财务部门人员具有工资核算、成本核算、利润分析等功能权限。仓库管理人员具有入库登记、出库登记、库存清算等功能权限。销售人员具有销售登记、销售统计等功能权限。各级领...

Haypu的博客 1864

SpringBoot3+Vue3+微信小程序校园报修系统全栈开发实战

在校园信息化建设中,前后端分离架构已成为主流开发模式,它通过清晰的职责划分提升了开发效率和系统可维护性。其核心原理是将用户界面与业务逻辑解耦,前端负责数据展示与交互,后端提供RESTful API进行数据服务。这种模式的技术价值在于支持多端适配(如Web管理后台与移动端小程序)和团队并行开发。典型的应用场景包括各类校园管理系统,例如宿舍报修平台。本文聚焦于一个结合了SpringBoot 3后端、Vue 3管理后台与微信小程序三端的**校园宿舍报修系统**实战项目,详细拆解了从环境搭建、**核心功能模块**开

cqwmy840702的博客 487

基于SpringBoot+Vue的个性化英语学习系统毕业设计全栈实现

个性化推荐系统通过分析用户行为数据,为不同学习者提供定制化的内容与路径,其核心原理在于协同过滤、内容过滤等算法对用户-项目交互矩阵的挖掘。这项技术在教育、电商、内容平台等领域具有重要价值,能有效提升用户参与度与学习效率。在在线教育场景中,结合Java SpringBoot后端与Vue前端技术栈,可以构建高效、可扩展的个性化学习应用。本文以英语学习辅助系统为例,详细拆解了从需求分析、数据库设计、核心算法(如用户协同过滤)实现到前后端分离开发的全流程,并融入了热词hanlp分词在springboot进行内容分析

weixin_33984032的博客 461

SpringCloud微服务架构前后端分离项目实践

一款 Java 语言基于 SpringCloud、Vue、ElementUI、MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化、组件化、可插拔的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,目前框架已集成了完整的RBAC权限架构和常规基础模块,前端Vue端支持多主题切换,可以根据自己喜欢的风格选择想一个的主题的个性化呈现的需

weixin_50196917的博客 5687

基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇

如何高效学习Java? 毕业设计项目应该怎么做?入门实战项目应该怎么做? 做Java开发都应该学习哪些框架技术? 我想来跟你聊聊为什么要学习此专栏?我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,当你迷茫想努力没有方向时,最事半功倍的方法是:找人带你! 因为过来人,更懂得如何学、如何做、如何少走弯路! 那今天就给大家带来一门专栏课程,由 天罡gg 和 经海路大白狗 两位实力大牛合力打造的一款专栏,可以让你从0到1快速拥有企业级规范的项目实战经验!

天罡gg的专栏 2万+

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(二、visual studio code开发前端项目

我们打开visual studio code , 选择文件------------->将文件夹添加到工作区,导入我们的项目 安装Element 导入后,我们安装以下element 官网:https://element.eleme.cn/#/zh-CN/component/installation 安装命令:npm add element-ui或者也可以用yarn 安装完成后,我们在main.js中引入Element import Vue from 'vue' import App from './A

Django的博客 1万+

手把手教你配置SAP EWM HU类型及号段分配(含常见错误排查)

本文详细介绍了SAP EWM系统中HU类型及号段分配的配置方法,包括环境准备、包材主数据配置、存储类型关联及号段管理。通过实战案例和常见错误排查,帮助用户高效完成HU配置,提升仓储管理效率。重点讲解了EWM后台配置和号段配置的关键步骤与技巧。

weixin_33670786的博客 443

交流伺服电机绝对式位置控制实战指南

伺服电机控制是工业自动化的核心技术之一,其核心原理是通过闭环反馈实现精确位置控制。绝对值编码器作为关键传感器,能提供单圈内的绝对位置信息,避免了增量式编码器的累计误差问题。在工程实践中,电子齿轮比配置、位置环PID调节等技术直接影响系统动态性能。本文以包装机械为典型场景,详细解析了从硬件选型到参数整定的全流程实现方案,特别是针对单圈绝对值编码器初始化和限位保护等易错环节,给出了经过验证的解决方案。通过合理设置17位编码器的电子齿轮比和优化运动控制算法,最终实现了±0.05°的高精度定位。

weixin_42531588的博客 281

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(一、搭建前端环境)

我们前台用的是Vue,大家可以参看以下官网学习 Vue官网:https://cn.vuejs.org/ Vue教程:https://www.runoob.com/vue2/vue-tutorial.html Vue-Router教程:https://www.runoob.com/vue2/vue-tutorial.html Vuex教程:https://vuex.vuejs.org/zh/guide/ Element教程:https://element-plus.org/#/zh-CN 开.

Java 璐到底 1424

Calibre电子书阅读器个性化样式定制指南

本文详细介绍了如何通过Calibre电子书阅读器的用户样式表功能进行深度个性化样式定制。从修改全局字体、行距、背景配色(包括深色/浅色模式)到美化代码块、引用等特殊元素,本指南提供了完整的CSS代码示例与实战技巧,帮助用户打造专属的舒适阅读环境,显著提升电子书阅读体验。

vv45678的博客 920

SpringBoot+Vue考试报名系统:从环境搭建到二次开发的完整实战指南

如果你正在为毕业设计、课程设计或者个人练手项目寻找一个“既有完整功能,又能快速跑通”的Java Web项目,那么一个基于SpringBoot和Vue的考试报名系统,很可能就是你当前最需要的。 这个选题之所以经典,是因为它几乎涵盖了Web应用开发的核心流程:用户管理、权限控制、数据增删改查、表单提交、状态流转以及前后端分离架构。它不像一个简单的“学生管理系统”那样过于基础,也不像“电商秒杀系统”那样复杂到需要处理高并发和分布式事务。它处于一个完美的平衡点——既有足够的业务逻辑来展示你的技术能力,又不会因为过于

abcyan1235的博客 390

C#上位机通信层封装:西门子S7NetPlus库的优雅使用

支持S7-1200/1500(机架号0,槽号1)、S7-300/400(机架号/槽号需根据实际配置);支持位(Bit)、字节(Byte)、字(Word)、双字(DWord)、浮点数(Float/Double)等数据类型的读写;支持DB块、输入寄存器(I)、输出寄存器(Q)、内存寄存器(M)、定时器(T)、计数器(C)的操作;轻量无依赖,兼容.NET 5+。首先定义核心枚举和常量,统一规范参数类型,避免硬编码。/// 西门子PLC型号(对应不同的机架/槽号默认配置)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1085

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 212

SpringBoot+Vue3博客管理系统:从零部署到核心功能剖析

在JavaWeb开发领域,前后端分离已成为主流的架构模式,它通过清晰的职责划分提升了开发效率和系统可维护性。其核心原理在于前端与后端通过RESTful API进行数据交互,前端负责视图渲染与用户交互,后端专注于业务逻辑与数据持久化。这种模式的技术价值在于支持团队并行开发、技术栈灵活选型以及更好的用户体验。典型的应用场景包括内容管理系统、电商平台和中后台管理系统。本文聚焦于一个基于SpringBoot和Vue3的博客管理系统实战项目,详细阐述了如何从环境搭建、数据库配置到前后端联调,完成项目的本地运行,并深入

weixin_33912246的博客 924

[SV]SystemVerilog中,系统函数$cast()的作用是什么?

摘要:SystemVerilog中的$cast()系统函数用于安全的动态类型转换,主要在类层次结构中将父类句柄转换为子类句柄(向下转换)。它通过运行时类型检查确保转换合法性,成功时返回1并赋值句柄,失败则返回0。这种机制使得可以通过父类句柄访问子类特有成员,在多态场景(如UVM验证)中尤为重要。使用时需检查返回值处理转换失败情况。$cast()比静态转换更安全,但不能用于无关类或基本数据类型间的转换。

元直的博客 1213

SpringBoot+Vue+MySQL实战:台球厅管理系统全栈开发指南

在软件开发领域,前后端分离架构已成为构建现代化Web应用的主流范式。其核心原理是将用户界面(前端)与业务逻辑和数据(后端)解耦,通过API进行通信。这种架构模式的技术价值在于提升了开发效率、增强了系统可维护性,并支持多端复用。在实际应用场景中,诸如电商平台、内容管理系统以及各类后台管理系统都广泛采用此架构。本文聚焦于一个经典且实用的应用场景——台球厅管理系统,深入探讨如何运用SpringBoot、Vue和MySQL这三大主流技术栈,实现一个具备完整业务逻辑的实战项目。项目将涵盖从数据库设计、Restful

weixin_30634661的博客 337

SST专题(2-4)MMC-SST 输入级的环流分析

本文分析了模块化多电平换流器(iMMC-SST)的输入级等效电路、子模块电容电压波动特性及环流抑制机理。研究表明:1)子模块电容电压波动包含基频和二倍频分量,与传统换流器相比波动幅值更大;2)环流主要由子模块电容电压波动在桥臂电感上激发的偶次谐波电流构成,呈频率越高幅值越小的特性;3)可通过增大桥臂电感或采用调制策略叠加抑制电压分量来有效控制环流。研究结果为MMC系统设计提供了理论依据。

嵌入式老牛的博客 585

手把手教你从入门到精通C# MES通信

本文是C#与MES通信通信的目录,使用C#与各种MES系统通信的方法我都会在专栏中讲到,比如WebService、Http、Ftp、共享文件夹、串口通信等,绝对是上位机软件工程师实现与MES系统通信的必备教程!

qq_34059233的博客 8751

SpringBoot+Vue3智慧停车场管理系统:Java全栈实战开发指南

前后端分离架构是现代Web应用开发的核心模式,通过将前端展示层与后端业务逻辑解耦,实现了技术栈的灵活选择和独立部署。其技术原理基于RESTful API通信,前端负责用户交互体验,后端专注数据处理和安全保障。这种架构的价值在于提升开发效率、便于团队协作和系统维护。在实际应用场景中,企业级项目如智慧停车场管理系统正是前后端分离的典型实践,需要整合SpringBoot后端框架与Vue3前端技术栈。SpringBoot提供了快速启动和丰富生态,而Vue3的Composition API和性能优化则提升了开发体验。

csdndownload11123的博客 432

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringBoot3+Vue3全栈博客项目实战:从零构建企业级个人博客系统

在Web开发领域,前后端分离架构已成为构建现代应用的主流范式。其核心原理是将用户界面与业务逻辑解耦,前端负责视图渲染与用户交互,后端专注数据处理与API提供,通过HTTP协议进行通信。这种架构模式的技术价值在于提升开发效率、增强系统可维护性并支持团队并行协作。在众多应用场景中,个人博客系统是实践前后端分离理念的经典案例,它涵盖了用户认证、内容管理、数据持久化等常见需求。本实战项目基于SpringBoot3和Vue3技术栈,完整实现了这样一个企业级标准的博客系统。通过该项目,开发者不仅能深入理解RESTful

congsikuai0611的博客 385

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spring Boot + Vue 高校固定资产管理系统:毕业设计全栈实战指南

在软件开发领域,前后端分离架构已成为构建现代Web应用的主流范式,其核心原理是将用户界面与业务逻辑解耦,通过RESTful API进行数据交互。这种架构模式的技术价值在于提升了开发效率、增强了系统可维护性,并便于团队协作。它广泛应用于各类管理系统的开发,例如企业资源规划、客户关系管理以及高校资产管理系统。本文聚焦于一个典型的应用场景——高校固定资产管理,深入剖析如何利用Spring Boot与Vue.js技术栈,结合MySQL数据库,实现一个功能完备、文档齐全的毕业设计项目。通过拆解项目结构、环境配置、核心

weixin_33709219的博客 437

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring Boot个性化旅游攻略系统:毕业设计全栈实现指南

个性化推荐系统是现代Web应用的核心技术之一,其原理是通过分析用户行为数据(如浏览、收藏)和兴趣标签,构建用户画像,并运用协同过滤或基于内容的算法,为用户匹配最相关的内容。这项技术的价值在于能显著提升用户体验和平台粘性,广泛应用于电商、内容资讯和社交领域。在工程实践中,常采用Spring Boot作为后端框架,结合MySQL、Redis等数据库,快速构建高可用的微服务。本文聚焦于一个典型的应用场景——个性化旅游攻略定制,详细解析如何利用Spring Boot、Vue.js及基础推荐算法,实现一个包含用户管理

weixin_34174422的博客 563

基于SpringBoot+Vue的川菜店订餐系统(WebSocket实时通讯、支付宝沙盒支付、协同过滤算法、百度地图API、Echarts图形化分析)

系统亮点:WebSocket实时通讯、支付宝沙盒支付、协同过滤算法、百度地图API、Echarts图形化分析;

paopaokaka_luck的博客 389
上一篇: SpringBoot + Spring Cloud +Vue 管理系统前端搭建(一、搭建前端环境)
下一篇: socket 发送http请求
Java程序之猿
博客等级 码龄9年 2599粉丝 140原创
评论 38
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值