From e1a891843568c30c5307eefb0e2b0bbba0a6c46c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Tue, 18 Feb 2025 11:01:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TestStudentsController.java | 104 ++++++ .../com/ruoyi/system/domain/TestStudents.java | 125 +++++++ .../system/domain/TestStudentsScores.java | 79 +++++ .../system/mapper/TestStudentsMapper.java | 87 +++++ .../system/service/ITestStudentsService.java | 61 ++++ .../service/impl/TestStudentsServiceImpl.java | 131 +++++++ .../mapper/system/TestStudentsMapper.xml | 112 ++++++ ruoyi-ui/.env.development | 4 +- ruoyi-ui/.env.production | 4 +- ruoyi-ui/.env.staging | 4 +- ruoyi-ui/package.json | 2 +- ruoyi-ui/public/favicon.ico | Bin 5663 -> 894 bytes ruoyi-ui/src/api/system/students.js | 44 +++ ruoyi-ui/src/views/index.vue | 2 +- ruoyi-ui/src/views/system/students/index.vue | 335 ++++++++++++++++++ ruoyi-ui/vue.config.js | 2 +- 16 files changed, 1087 insertions(+), 9 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/controller/TestStudentsController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudents.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudentsScores.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TestStudentsMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/ITestStudentsService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestStudentsServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/TestStudentsMapper.xml create mode 100644 ruoyi-ui/src/api/system/students.js create mode 100644 ruoyi-ui/src/views/system/students/index.vue diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/TestStudentsController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/TestStudentsController.java new file mode 100644 index 0000000..8ecc2e0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/TestStudentsController.java @@ -0,0 +1,104 @@ +package com.ruoyi.system.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.TestStudents; +import com.ruoyi.system.service.ITestStudentsService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 学生Controller + * + * @author ruoyi + * @date 2025-02-18 + */ +@RestController +@RequestMapping("/system/students") +public class TestStudentsController extends BaseController +{ + @Autowired + private ITestStudentsService testStudentsService; + + /** + * 查询学生列表 + */ + @PreAuthorize("@ss.hasPermi('system:students:list')") + @GetMapping("/list") + public TableDataInfo list(TestStudents testStudents) + { + startPage(); + List list = testStudentsService.selectTestStudentsList(testStudents); + return getDataTable(list); + } + + /** + * 导出学生列表 + */ + @PreAuthorize("@ss.hasPermi('system:students:export')") + @Log(title = "学生", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TestStudents testStudents) + { + List list = testStudentsService.selectTestStudentsList(testStudents); + ExcelUtil util = new ExcelUtil(TestStudents.class); + util.exportExcel(response, list, "学生数据"); + } + + /** + * 获取学生详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:students:query')") + @GetMapping(value = "/{studentId}") + public AjaxResult getInfo(@PathVariable("studentId") Long studentId) + { + return success(testStudentsService.selectTestStudentsByStudentId(studentId)); + } + + /** + * 新增学生 + */ + @PreAuthorize("@ss.hasPermi('system:students:add')") + @Log(title = "学生", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TestStudents testStudents) + { + return toAjax(testStudentsService.insertTestStudents(testStudents)); + } + + /** + * 修改学生 + */ + @PreAuthorize("@ss.hasPermi('system:students:edit')") + @Log(title = "学生", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TestStudents testStudents) + { + return toAjax(testStudentsService.updateTestStudents(testStudents)); + } + + /** + * 删除学生 + */ + @PreAuthorize("@ss.hasPermi('system:students:remove')") + @Log(title = "学生", businessType = BusinessType.DELETE) + @DeleteMapping("/{studentIds}") + public AjaxResult remove(@PathVariable Long[] studentIds) + { + return toAjax(testStudentsService.deleteTestStudentsByStudentIds(studentIds)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudents.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudents.java new file mode 100644 index 0000000..3cc4dbc --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudents.java @@ -0,0 +1,125 @@ +package com.ruoyi.system.domain; + +import java.util.List; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 学生对象 test_students + * + * @author ruoyi + * @date 2025-02-18 + */ +public class TestStudents extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 学生ID */ + private Long studentId; + + /** 学生姓名 */ + @Excel(name = "学生姓名") + private String name; + + /** 学生年龄 */ + @Excel(name = "学生年龄") + private Long age; + + /** 性别 */ + @Excel(name = "性别") + private String gender; + + /** 专业 */ + @Excel(name = "专业") + private String major; + + /** 入学日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "入学日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date enrollmentDate; + + /** 学生成绩信息 */ + private List testStudentsScoresList; + + public void setStudentId(Long studentId) + { + this.studentId = studentId; + } + + public Long getStudentId() + { + return studentId; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setAge(Long age) + { + this.age = age; + } + + public Long getAge() + { + return age; + } + public void setGender(String gender) + { + this.gender = gender; + } + + public String getGender() + { + return gender; + } + public void setMajor(String major) + { + this.major = major; + } + + public String getMajor() + { + return major; + } + public void setEnrollmentDate(Date enrollmentDate) + { + this.enrollmentDate = enrollmentDate; + } + + public Date getEnrollmentDate() + { + return enrollmentDate; + } + + public List getTestStudentsScoresList() + { + return testStudentsScoresList; + } + + public void setTestStudentsScoresList(List testStudentsScoresList) + { + this.testStudentsScoresList = testStudentsScoresList; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("studentId", getStudentId()) + .append("name", getName()) + .append("age", getAge()) + .append("gender", getGender()) + .append("major", getMajor()) + .append("enrollmentDate", getEnrollmentDate()) + .append("testStudentsScoresList", getTestStudentsScoresList()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudentsScores.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudentsScores.java new file mode 100644 index 0000000..a5252c3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TestStudentsScores.java @@ -0,0 +1,79 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 学生成绩对象 test_students_scores + * + * @author ruoyi + * @date 2025-02-18 + */ +public class TestStudentsScores extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 分数ID */ + private Long scoreId; + + /** 学生ID */ + @Excel(name = "学生ID") + private Long studentId; + + /** 课程名称 */ + @Excel(name = "课程名称") + private String courseName; + + /** 课程分数 */ + @Excel(name = "课程分数") + private Long score; + + public void setScoreId(Long scoreId) + { + this.scoreId = scoreId; + } + + public Long getScoreId() + { + return scoreId; + } + public void setStudentId(Long studentId) + { + this.studentId = studentId; + } + + public Long getStudentId() + { + return studentId; + } + public void setCourseName(String courseName) + { + this.courseName = courseName; + } + + public String getCourseName() + { + return courseName; + } + public void setScore(Long score) + { + this.score = score; + } + + public Long getScore() + { + return score; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("scoreId", getScoreId()) + .append("studentId", getStudentId()) + .append("courseName", getCourseName()) + .append("score", getScore()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TestStudentsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TestStudentsMapper.java new file mode 100644 index 0000000..3242202 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TestStudentsMapper.java @@ -0,0 +1,87 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.TestStudents; +import com.ruoyi.system.domain.TestStudentsScores; + +/** + * 学生Mapper接口 + * + * @author ruoyi + * @date 2025-02-18 + */ +public interface TestStudentsMapper +{ + /** + * 查询学生 + * + * @param studentId 学生主键 + * @return 学生 + */ + public TestStudents selectTestStudentsByStudentId(Long studentId); + + /** + * 查询学生列表 + * + * @param testStudents 学生 + * @return 学生集合 + */ + public List selectTestStudentsList(TestStudents testStudents); + + /** + * 新增学生 + * + * @param testStudents 学生 + * @return 结果 + */ + public int insertTestStudents(TestStudents testStudents); + + /** + * 修改学生 + * + * @param testStudents 学生 + * @return 结果 + */ + public int updateTestStudents(TestStudents testStudents); + + /** + * 删除学生 + * + * @param studentId 学生主键 + * @return 结果 + */ + public int deleteTestStudentsByStudentId(Long studentId); + + /** + * 批量删除学生 + * + * @param studentIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTestStudentsByStudentIds(Long[] studentIds); + + /** + * 批量删除学生成绩 + * + * @param studentIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTestStudentsScoresByStudentIds(Long[] studentIds); + + /** + * 批量新增学生成绩 + * + * @param testStudentsScoresList 学生成绩列表 + * @return 结果 + */ + public int batchTestStudentsScores(List testStudentsScoresList); + + + /** + * 通过学生主键删除学生成绩信息 + * + * @param studentId 学生ID + * @return 结果 + */ + public int deleteTestStudentsScoresByStudentId(Long studentId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ITestStudentsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITestStudentsService.java new file mode 100644 index 0000000..136dde4 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITestStudentsService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.TestStudents; + +/** + * 学生Service接口 + * + * @author ruoyi + * @date 2025-02-18 + */ +public interface ITestStudentsService +{ + /** + * 查询学生 + * + * @param studentId 学生主键 + * @return 学生 + */ + public TestStudents selectTestStudentsByStudentId(Long studentId); + + /** + * 查询学生列表 + * + * @param testStudents 学生 + * @return 学生集合 + */ + public List selectTestStudentsList(TestStudents testStudents); + + /** + * 新增学生 + * + * @param testStudents 学生 + * @return 结果 + */ + public int insertTestStudents(TestStudents testStudents); + + /** + * 修改学生 + * + * @param testStudents 学生 + * @return 结果 + */ + public int updateTestStudents(TestStudents testStudents); + + /** + * 批量删除学生 + * + * @param studentIds 需要删除的学生主键集合 + * @return 结果 + */ + public int deleteTestStudentsByStudentIds(Long[] studentIds); + + /** + * 删除学生信息 + * + * @param studentId 学生主键 + * @return 结果 + */ + public int deleteTestStudentsByStudentId(Long studentId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestStudentsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestStudentsServiceImpl.java new file mode 100644 index 0000000..b8e75f0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestStudentsServiceImpl.java @@ -0,0 +1,131 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import com.ruoyi.common.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.system.domain.TestStudentsScores; +import com.ruoyi.system.mapper.TestStudentsMapper; +import com.ruoyi.system.domain.TestStudents; +import com.ruoyi.system.service.ITestStudentsService; + +/** + * 学生Service业务层处理 + * + * @author ruoyi + * @date 2025-02-18 + */ +@Service +public class TestStudentsServiceImpl implements ITestStudentsService +{ + @Autowired + private TestStudentsMapper testStudentsMapper; + + /** + * 查询学生 + * + * @param studentId 学生主键 + * @return 学生 + */ + @Override + public TestStudents selectTestStudentsByStudentId(Long studentId) + { + return testStudentsMapper.selectTestStudentsByStudentId(studentId); + } + + /** + * 查询学生列表 + * + * @param testStudents 学生 + * @return 学生 + */ + @Override + public List selectTestStudentsList(TestStudents testStudents) + { + return testStudentsMapper.selectTestStudentsList(testStudents); + } + + /** + * 新增学生 + * + * @param testStudents 学生 + * @return 结果 + */ + @Transactional + @Override + public int insertTestStudents(TestStudents testStudents) + { + int rows = testStudentsMapper.insertTestStudents(testStudents); + insertTestStudentsScores(testStudents); + return rows; + } + + /** + * 修改学生 + * + * @param testStudents 学生 + * @return 结果 + */ + @Transactional + @Override + public int updateTestStudents(TestStudents testStudents) + { + testStudentsMapper.deleteTestStudentsScoresByStudentId(testStudents.getStudentId()); + insertTestStudentsScores(testStudents); + return testStudentsMapper.updateTestStudents(testStudents); + } + + /** + * 批量删除学生 + * + * @param studentIds 需要删除的学生主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteTestStudentsByStudentIds(Long[] studentIds) + { + testStudentsMapper.deleteTestStudentsScoresByStudentIds(studentIds); + return testStudentsMapper.deleteTestStudentsByStudentIds(studentIds); + } + + /** + * 删除学生信息 + * + * @param studentId 学生主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteTestStudentsByStudentId(Long studentId) + { + testStudentsMapper.deleteTestStudentsScoresByStudentId(studentId); + return testStudentsMapper.deleteTestStudentsByStudentId(studentId); + } + + /** + * 新增学生成绩信息 + * + * @param testStudents 学生对象 + */ + public void insertTestStudentsScores(TestStudents testStudents) + { + List testStudentsScoresList = testStudents.getTestStudentsScoresList(); + Long studentId = testStudents.getStudentId(); + if (StringUtils.isNotNull(testStudentsScoresList)) + { + List list = new ArrayList(); + for (TestStudentsScores testStudentsScores : testStudentsScoresList) + { + testStudentsScores.setStudentId(studentId); + list.add(testStudentsScores); + } + if (list.size() > 0) + { + testStudentsMapper.batchTestStudentsScores(list); + } + } + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/TestStudentsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TestStudentsMapper.xml new file mode 100644 index 0000000..70f1724 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/TestStudentsMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select student_id, name, age, gender, major, enrollment_date from test_students + + + + + + + + + + insert into test_students + + name, + age, + gender, + major, + enrollment_date, + + + #{name}, + #{age}, + #{gender}, + #{major}, + #{enrollmentDate}, + + + + + update test_students + + name = #{name}, + age = #{age}, + gender = #{gender}, + major = #{major}, + enrollment_date = #{enrollmentDate}, + + where student_id = #{studentId} + + + + delete from test_students where student_id = #{studentId} + + + + delete from test_students where student_id in + + #{studentId} + + + + + delete from test_students_scores where student_id in + + #{studentId} + + + + + delete from test_students_scores where student_id = #{studentId} + + + + insert into test_students_scores( score_id, student_id, course_name, score) values + + ( #{item.scoreId}, #{item.studentId}, #{item.courseName}, #{item.score}) + + + \ No newline at end of file diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 302ecd1..d868248 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -1,10 +1,10 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 研筑机试管理 # 开发环境配置 ENV = 'development' -# 若依管理系统/开发环境 +# 研筑机试管理/开发环境 VUE_APP_BASE_API = '/dev-api' # 路由懒加载 diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index b4893b0..9246565 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -1,8 +1,8 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 研筑机试管理 # 生产环境配置 ENV = 'production' -# 若依管理系统/生产环境 +# 研筑机试管理/生产环境 VUE_APP_BASE_API = '/prod-api' diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging index 209b64e..b4c1755 100644 --- a/ruoyi-ui/.env.staging +++ b/ruoyi-ui/.env.staging @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 研筑机试管理 BABEL_ENV = production @@ -8,5 +8,5 @@ NODE_ENV = production # 测试环境配置 ENV = 'staging' -# 若依管理系统/测试环境 +# 研筑机试管理/测试环境 VUE_APP_BASE_API = '/stage-api' diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 392d7db..9195d4d 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.9", - "description": "若依管理系统", + "description": "研筑机试管理", "author": "若依", "license": "MIT", "scripts": { diff --git a/ruoyi-ui/public/favicon.ico b/ruoyi-ui/public/favicon.ico index e26376026420542212ed58d90d0ed34f554fa4ae..d92e0b8c4963f1ae81021bbed63e94c2699dea66 100644 GIT binary patch literal 894 zcmZQzU<5(|0R|u`!H~hsz#zuJz@P!dKp_SNAO?x!2k(<*|Mp73(S^ghaCG}W3micV zd6}gJRR66~2Cn|nK^;8mfr=prt{%vMt3Q887jFKoe=I;N;Of6uAgs8$R~xS7)?Ze* z7G(86jaaP!YD8B5HAMw(#m^dPxRwit(0u_9G`M>FR>0MN^(+15GZl&w=KiVL1wn6T z6kkZ}DT8x=g_XnA|4v>HSO33$3S12u1Fjy#fSC_upeciM zfBAL8wfs)p0oU^X|9`j|GzMHfvK44*kh#ACs}Nd}*5GjrTo*z;*cWhd@)!pg85kNs n7^oeNfqano0bpKwAP>a+3=AJYn4N*)2ax^&6#E0jpkM$1?7KMX literal 5663 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

若依后台管理框架

- 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 + 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了研筑机试管理,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。

当前版本: v{{ version }} diff --git a/ruoyi-ui/src/views/system/students/index.vue b/ruoyi-ui/src/views/system/students/index.vue new file mode 100644 index 0000000..0f5d289 --- /dev/null +++ b/ruoyi-ui/src/views/system/students/index.vue @@ -0,0 +1,335 @@ + + + diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 8afb50b..12126da 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -7,7 +7,7 @@ function resolve(dir) { const CompressionPlugin = require('compression-webpack-plugin') -const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 +const name = process.env.VUE_APP_TITLE || '研筑机试管理' // 网页标题 const port = process.env.port || process.env.npm_config_port || 80 // 端口