档案继续教育培训平台搭建及收费标准配置全流程

一、环境准备与项目初始化

在开始构建档案继续教育培训收费系统之前,必须先配置好基础的运行环境。本指南采用Node.js作为后端运行环境,Vue 3作为前端框架,MySQL作为数据存储,确保系统轻量且易于部署。

1. 安装基础环境

请确保你的开发机上已安装以下软件,若未安装请执行对应命令:

  • Node.js (v18.x及以上): 访问 https://nodejs.org/ 下载LTS版本并安装,安装完成后在终端运行 node -v 确认版本。
  • MySQL (8.0及以上): 访问 https://dev.mysql.com/downloads/mysql/ 下载并安装,设置root密码为 123456(生产环境请修改)。

2. 初始化后端项目

在终端中执行以下命令创建项目目录并安装必要的依赖包:

```bash mkdir archive-training-system cd archive-training-system mkdir server cd server npm init -y npm install express mysql2 cors body-parser ```

上述命令安装了 express (Web框架)、mysql2 (数据库驱动)、cors (跨域处理) 和 body-parser (请求体解析)。

3. 初始化前端项目

回到项目根目录,使用Vite创建Vue 3项目:

```bash cd .. npm create vite@latest client -- --template vue cd client npm install npm install element-plus axios ```

这里安装了 element-plus UI组件库和 axios HTTP客户端,用于快速构建管理界面。

二、数据库设计与收费标准表结构

为了灵活配置档案行业的培训收费标准,我们需要设计一张专门的标准配置表。该表需要支持不同职称级别(如初级、中级、高级)和不同培训类型的差异化定价。

1. 创建数据库与数据表

登录MySQL数据库,执行以下SQL脚本。该脚本不仅创建了表结构,还预置了档案行业常见的收费参考数据。

```sql CREATE DATABASE IF NOT EXISTS archive_training_db; USE archive_training_db; CREATE TABLE IF NOT EXISTS fee_standards ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', standard_name VARCHAR(100) NOT NULL COMMENT '标准名称,如:2024年度继续教育', target_level VARCHAR(50) NOT NULL COMMENT '适用级别:初级/中级/副高/正高', course_type VARCHAR(50) NOT NULL COMMENT '课程类型:必修/选修', price_per_hour DECIMAL(10, 2) NOT NULL COMMENT '每学时单价(元)', material_fee DECIMAL(10, 2) DEFAULT 0.00 COMMENT '教材资料费(元)', exam_fee DECIMAL(10, 2) DEFAULT 0.00 COMMENT '考核认证费(元)', is_active TINYINT(1) DEFAULT 1 COMMENT '是否启用:1-启用,0-停用', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案培训收费标准表'; -- 插入初始演示数据 INSERT INTO fee_standards (standard_name, target_level, course_type, price_per_hour, material_fee, exam_fee) VALUES ('2024年度档案专业人员继续教育', '初级', '必修', 5.00, 50.00, 30.00), ('2024年度档案专业人员继续教育', '中级', '必修', 7.00, 50.00, 30.00), ('2024年度档案专业人员继续教育', '高级', '必修', 10.00, 80.00, 50.00); ```

2. 字段设计说明

  • target_level: 档案行业通常按职称分级别,收费标准往往随级别提升而增加。
  • price_per_hour: 核心收费字段,继续教育通常按学时计费。
  • material_feeexam_fee: 独立字段,方便财务核算和后续可能的发票拆分需求。

三、后端接口开发:收费规则与计算逻辑

后端需要提供两个核心接口:一个是获取和更新收费标准的CRUD接口,另一个是根据学时自动计算总费用的接口。在 server 目录下创建 index.js 文件,并写入以下完整代码:

```javascript const express = require('express'); const mysql = require('mysql2'); const cors = require('cors'); const bodyParser = require('body-parser'); const app = express(); app.use(cors()); app.use(bodyParser.json()); // 数据库连接配置 const db = mysql.createPool({ host: 'localhost', user: 'root', password: '123456', database: 'archive_training_db', waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); // 1. 获取所有收费标准 app.get('/api/standards', (req, res) => { const sql = 'SELECT FROM fee_standards ORDER BY target_level ASC'; db.query(sql, (err, result) => { if (err) return res.status(500).json({ error: err.message }); res.json(result); }); }); // 2. 更新收费标准 app.post('/api/standards/update', (req, res) => { const { id, price_per_hour, material_fee, exam_fee } = req.body; if (!id) return res.status(400).json({ error: '缺少ID' }); const sql = 'UPDATE fee_standards SET price_per_hour = ?, material_fee = ?, exam_fee = ? WHERE id = ?'; db.query(sql, [price_per_hour, material_fee, exam_fee, id], (err, result) => { if (err) return res.status(500).json({ error: err.message }); res.json({ success: true, message: '收费标准已更新' }); }); }); // 3. 费用计算接口(核心业务逻辑) app.post('/api/calculate', (req, res) => { const { level, required_hours, elective_hours } = req.body; // level: '初级', '中级'... // 获取对应级别的必修和选修单价 const sql = 'SELECT FROM fee_standards WHERE target_level = ? AND is_active = 1'; db.query(sql, [level], (err, results) => { if (err) return res.status(500).json({ error: err.message }); if (results.length === 0) return res.status(404).json({ error: '未找到该级别收费标准' }); let total_fee = 0; let details = []; // 分离必修和选修标准 const standard = results[0]; // 简化逻辑,假设必修选修单价一致或取第一条,实际可按course_type区分 // 计算必修费用 const required_cost = (required_hours || 0) standard.price_per_hour; // 计算选修费用 const elective_cost = (elective_hours || 0) standard.price_per_hour; // 总费用 = (必修学时+选修学时)单价 + �材材费 + 考试费 total_fee = required_cost + elective_cost + Number(standard.material_fee) + Number(standard.exam_fee); res.json({ level: level, breakdown: { required_tuition: required_cost, elective_tuition: elective_cost, material_fee: standard.material_fee, exam_fee: standard.exam_fee }, total_fee: total_fee.toFixed(2) }); }); }); const PORT = 3000; app.listen(PORT, () => { console.log(`后端服务运行于 http://localhost:${PORT}`); }); ```

档案继续教育培训平台搭建及收费标准配置全流程

启动后端服务

server 目录下执行:

```bash node index.js ```

四、前端页面开发:收费标准可视化配置

前端将提供一个管理界面,允许管理员直接在表格中修改价格,并提供一个模拟计算器来验证收费标准。修改 client/src/App.vue 文件,内容如下:

```html ```

同时,需要在 client/src/main.js 中引入 Element Plus:

```javascript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' createApp(App).use(ElementPlus).mount('app') ```

五、系统运行与验证

至此,所有代码已编写完毕。现在启动前端服务进行验证。

1. 启动前端

client 目录下执行:

```bash npm run dev ```

终端会输出访问地址,通常是 http://localhost:5173

2. 功能验证步骤

  • 查看数据: 打开浏览器访问前端地址,应能看到数据库中预置的“初级”、“中级”、“高级”收费标准表格。
  • 修改价格: 直接在表格输入框中将“初级”的学时单价修改为 6,点击右侧“保存”按钮。观察右上角提示“更新成功”。
  • 费用计算: 在下方的“费用试算工具”中,选择级别为“初级”,设置必修学时 30,选修学时 10。点击“立即计算”。
  • 结果核对: 系统应显示计算结果。根据逻辑:(30+10)6(新单价) + 50(教材) + 30(考试) = 240 + 80 = 320元。请核对界面显示的总金额是否为 320.00

通过以上步骤,你已经完成了一个针对档案行业的继续教育培训收费系统的核心开发。该系统具备数据库层面的灵活配置、后端层面的自动计费逻辑以及前端层面的可视化管理,完全满足实际业务中对收费标准的精细化管理需求。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统