前后端项目-part03

news2025/2/27 20:41:01

文章目录

      • 5.4.4 机构名称
        • 5.4.4.1 创建实体类Company
        • 5.4.4.2 创建实体类CompanyMapper
        • 5.4.4.3 创建实体类CompanyService
        • 5.4.4.4 创建实体类CompanyController
        • 5.4.4.5 后端测试
        • 5.4.4.6 修改basic.js
        • 5.4.4.7 修改course.vue
        • 5.4.4.8 测试
      • 5.4.5 课程标签
        • 5.4.5.1 效果
        • 5.4.5.2 修改course.vue
      • 5.4.6 课程图片上传
        • 5.4.6.1 前端开发
        • 5.4.6.2 后端开发
        • 5.4.6.3 测试
        • 5.4.6.4 补充
    • 6

5.4.4 机构名称

5.4.4.1 创建实体类Company
package com.zx.system.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Accessors(chain = true)
@TableName("tb_company")
public class Company {
   
    private Integer id;
    private String name;//名称
    private String orgType;//c机构 p个人
    private String phone;//联系方式
    private String linkname;//联系人名称
    private String handPhotos;//手持证件照
    private String address;//机构地址
    private String logo;//机构logo
    private String email;//邮箱
    private String promiseLetter;//承诺书
    private String trademarkPic;//商标注册证
    private String intro;//简介
    private String briefIntro;
    private String mainCategory;//主营类目
    private String identityPic;//身份证照片
    private String workType;//工具性质
    private String businessPic;//营业执照
    private Date businessTerm;//营业执照有效期
    private String businessRegistNo;//营业执照注册号
    private String eduCertImg;//教育资质/学历证书照片
    private String eduCertTerm;//教育资质证书有效期
    private String eduCertNo;//教育资质/学历编号
    private String approvalStatus;//审核状态
    private String approvalComment;//审批意见
    private String approvalPeople;//审批人
    private Date approvalDate;//审批日期
    private Integer approvalNums;//审核次数
    private String remark;//备注
    private Date createDate;
    private Date changeDate;
    private Integer tenantId;//租户ID
    private String idCard;//身份证号
    private String teacherCertImg;//教师资格证照片
    private String teacherCertNo;//教师资格证号码
    private Integer status;//状态
    private String majorCertImg;//专业证件照片
    private String majorCertNo;//专业证件号码
    private String workExperience;//教学工作经历
    private String workResults;//教学工作成果
    private String title;//机构名称
}

5.4.4.2 创建实体类CompanyMapper
package com.zx.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zx.system.entity.Company;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface CompanyMapper extends BaseMapper<Company> {
   
}

5.4.4.3 创建实体类CompanyService
package com.zx.system.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zx.system.entity.Company;
import com.zx.system.mapper.CompanyMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CompanyService extends ServiceImpl<CompanyMapper, Company> {
   
    @Autowired
    private CompanyMapper companyMapper;

    public List<Company> selectAll(){
   
        QueryWrapper qw = new QueryWrapper();
        qw.select("id","name","org_type","phone","linkname");//查询指定列
        qw.eq("status",1);//1正常0停用
        qw.orderByDesc("create_date");//倒序
        return companyMapper.selectList(qw);
    }

}

5.4.4.4 创建实体类CompanyController
package com.zx.system.controller;

import com.zx.system.entity.Company;
import com.zx.system.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/system/company")
public class CompanyController {
   
    @Autowired
    private CompanyService companyService;

    @GetMapping("/selectAll")
    public List<Company> selectAll(){
   
        return companyService.selectAll();
    }
}

5.4.4.5 后端测试

在这里插入图片描述

5.4.4.6 修改basic.js
// 课程管理CRUD
import axios from '../axios.js'

//获取分类信息
const zx_basic = 'http://localhost:9999/basic'

//去后台,获取所有分类的三级树
export const AllCategory = async ()=>{
   
	const res = await axios.get(zx_basic+"/category/getTree")
	return res
}

//去后台,获取一级分类
export const Level1Category = async ()=>{
   
	const res = await axios.get(zx_basic+"/category/level1Category")
	return res
}

//根据字典编号,获取字典信息
export const GetDict = async (code)=>{
   
	const res = await axios.get(zx_basic+"/dictionary/getDicItems/"+code)
	return res
}

//去后台//获取所有机构信息
const zx_system = 'http://localhost:8888/system'
export const GetCompany = async ()=>{
   
	const res = await axios.get(zx_system+"/company/selectAll")
	return res
}

5.4.4.7 修改course.vue
<template>
	<el-card shadow="always">
		<h3><el-icon><ElementPlus /></el-icon>课程管理</h3>
	
		<el-row style="padding:10px;" gutter="3">
			<el-col span="8">
				<el-button type="primary" size="small" @click="toAdd">
					<el-icon><CirclePlus /></el-icon>&nbsp;新增
				</el-button>
				<el-button v-if="multipleSelection.length" type="danger" size="small" @click="handlerMuchDel">删除多条</el-button>
			</el-col>
			<el-col span="16">
				<el-input size="small" v-model="searchName" placeholder="按课程名称搜索">
					<template #append><el-icon><Search/></el-icon></template>
				</el-input>
			</el-col>
		</el-row>
		
		<el-table :data="filterData" @selection-change="handleSelectionChange" border>
			<el-table-column prop="id" type="selection" width="55"></el-table-column>
			<el-table-column prop="planNum" label="计划数量" heder-align="center"></el-table-column>
			<el-table-column prop="companyName" label="公司名称" heder-align="center" ></el-table-column>
			<el-table-column prop="name" label="课程名称" heder-align="center"></el-table-column>
			<el-table-column prop="tags" label="课程标签" heder-align="center" ></el-table-column>
			<el-table-column prop="mtName" label="大分类名称" heder-align="center" ></el-table-column>
			<el-table-column prop="stName" label="小分类名称" heder-align="center" ></el-table-column>
			<el-table-column prop="grade" label="课程等级" heder-align="center" ></el-table-column>
			<el-table-column prop="teachmode" label="教学模式" heder-align="center" ></el-table-column>
			<el-table-column prop="auditStatus" label="审核状态" heder-align="center" ></el-table-column>
			<el-table-column prop="coursePubId" label="发布标识" heder-align="center" ></el-table-column>
			<el-table-column prop="price" label="课程单价" heder-align="center" ></el-table-column>
			<el-table-column prop="createDate" label="创建时间" :formatter="formatDate" align="center"/>
			<el-table-column prop="auditDate" label="审核时间" :formatter="formatDate" align="center"/>
			
			<el-table-column label="操作" align="center">
				<template #default="scope">
					<el-button @click="toEdit(scope.$index)" type="success" size="small"><el-icon><EditPen/></el-icon>修改</el-button>
					<el-button @click="handleDel(scope.row.id)" type="danger" size="small"><el-icon><Delete/></el-icon>删除</el-button>
					<el-button @click="handlePub(scope.row.id)" type="danger" size="small"><el-icon><Delete/></el-icon>发布</el-button>
					<el-button @click="handleDown(scope.row.id)" type="danger" size="small"><el-icon><Delete/></el-icon>下架</el-button>
				</template>
			</el-table-column>
		</el-table>
		
		<!-- 分页条 -->
		<div style="">
			<el-pagination :current-page="page.pageNum" :page-size="page.pageSize" :page-sizes="[5,10,50,100]"
				layout="total,sizes,prev,pager,next,jumper" :total="page.total" 
					@size-change="handleSizeChange" @current-change="handleCurrentChange">
			</el-pagination>
		</div>
	</el-card>
	
	<!-- 设置对话框 -->
	<el-dialog v-model="dialogVisible" draggable>
		<template #header>
			<h4><el-icon><Brush/></el-icon> {
  {dialogType==='add'?'新增':'修改'}}课程管理</h4>
		</template>
		
		<el-form :model="form.data" label-position="left" label-width="120px">
			<el-form-item label="机构名称">
				<el-select v-model="form.data.companyId" placeholder="请选择">
					<el-option v-for="item in companyOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
				</el-select>
			</el-form-item>
			<el-form-item label="课程名称">
				<el-input v-model="form.data.name" show-word-limit maxlength="100"></el-input>
			</el-form-item>
			<el-form-item label="适用人群">
				<el-input v-model="form.data.users" type="textarea"
							show-word-limit maxlength="500" :autosize="{minRows:2,maxRows:4}"></el-input>
			</el-form-item>
			
			<el-form-item label="课程标签">
				<el-input v-model="form.data.tags"></el-input>
			</el-form-item>
			
			<!-- 4个下拉框 -->
			<el-form-item label="一级分类">
				<el-select v-model="form.data.mt" placeholder="请选择">
					<el-option v-for="item in mtOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
				</el-select>
			</el-form-item>
			
			<el-form-item label="二级分类"><!-- 二级分类树 -->
				<el-select v-model="form.data.st" placeholder="请选择">
					<el-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1477183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Web 过滤器使用常见错误(上)

我们都知道&#xff0c;过滤器是 Servlet 的重要标准之一&#xff0c;其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中&#xff0c;我们主要就是配合使用ServletComponentScan 和 WebFilter 这两个注解来构建过滤器。 说起…

企业计算机服务器中了_locked勒索病毒怎么办,_locked勒索病毒解密数据恢复

在企业的生产运营工作中&#xff0c;网络的力量非常强大&#xff0c;可以为企业带来极大的便利性&#xff0c;越来越多的企业通过网络的力量开展各项工作&#xff0c;扩大业务范围&#xff0c;但在工作过程中&#xff0c;人们也需要警惕网络威胁的存在。近期&#xff0c;云天数…

向日葵、Todesk、teamviewer等工具远程连接电脑时第三方应用显示白屏

问题描述&#xff1a;用向日葵远程等桌面时&#xff0c;当把显示器断电或者就没有显示器时或者笔记本盖子合住时&#xff0c;第三方软件显示白屏或显示不出来的问题。 原因&#xff1a;某些显卡在断开屏幕时自动降为低功耗模式。 解决 1、下载工具 https://www.amyuni.com/d…

Vue.js入门指南:简介、环境配置与Yarn创建项目

一、Vue.js简介 Vue.js&#xff0c;一个流行的JavaScript框架&#xff0c;以其直观、灵活和高效的特点&#xff0c;在前端开发者中赢得了广泛的赞誉。Vue.js的核心库专注于视图层&#xff0c;使得开发者能够构建出响应式的数据绑定和组合的视图组件。Vue.js的目标是通过尽可能简…

IntelliJ IDEA 常用快捷键和下载链接

下载链接&#xff08;windows&#xff09; 下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 编码时&#xff1a; 跳转到引用方法的地方 &#xff08;有多个引用时会出现下拉列表&#xff09; ctrl鼠标左键 跳转后回到原来的地方 …

JVM运行时数据区——运行时数据区及线程概述

文章目录 1、运行时数据区概述2、线程3、小结 内存是非常重要的系统资源&#xff0c;是硬盘和CPU的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时运行。JVM在程序执行期间把它所管理的内存分为若干个不同的数据区域。这些不同的数据区域可以分为两种类型&#xff…

接口测试报错“REQUEST JSON PARSING FAILED”

经验分享&#xff1a;json文本通过微信发送会自动添加空格&#xff0c;复制粘贴的之后需要注意&#xff0c;先把空格去掉再请求。 1.问题现象&#xff1a;接口测试的时候请求响应提示json格式错误 2.问题排查&#xff1a;JSON在线解析及格式化验证 - JSON.cn 利用第三方json解…

Flutter Dio进阶:使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新

Flutter笔记 使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article…

pclpy 拉格朗日乘子法拟合平面

pclpy 拉格朗日乘子法拟合平面 一、算法原理1.算法步骤 二、代码三、结果1.左边原点云数据&#xff0c;右边将点云拉格朗日乘子法拟合平面投影在该平面 四、相关数据 一、算法原理 1.算法步骤 对k一近邻点拟合平面&#xff0c;最小二乘法&#xff08;平面过重心&#xff09;&…

金三银四面试必问:Redis真的是单线程吗?

文章目录 01 Redis中的多线程1&#xff09;redis-server&#xff1a;2&#xff09;jemalloc_bg_thd3&#xff09;bio_xxx&#xff1a; 02 I/O多线程03 Redis中的多进程04 结论▼延伸阅读 由面试题“Redis是否为单线程”引发的思考 作者&#xff1a;李乐 来源&#xff1a;IT阅读…

【MySQL】数据管理——DML操作数据

目录 DML&#xff08;数据操作语言&#xff09;添加数据插入单行语法插入多行语法SQL示例将查询结果插入到新表中语法1&#xff1a;语法2&#xff1a; 修改数据语法示例关于SQL的运算符算术运算符比较运算符逻辑运算符 案例 删除数据DELETE命令语法 TRUNCATE TABLE 命令语法代码…

数据卷(Data Volumes)自定义镜像(Dockerfile)

目录 一.数据卷(Data Volumes) 二.自定义镜像(Dockerfile) 自定义centos 一.数据卷(Data Volumes) 数据卷(Data Volumes)是一个可供一个或多个容器使用的特殊目录&#xff0c;它将主机操作系统目录直接映射进容器&#xff0c;它可以提供很多有用的特性&#xff1a; 1.数据卷…

[DEBUG] spring boot-如何处理链接中的空格等特殊字符

问题&#xff1a; get或者post中提交的内容可能有空格、#等特殊字符&#xff0c;不做处理的话可能解析错误。 解决&#xff1a; html中&#xff1a; <a th:href"{/listSgrna(id${item.getGeneId()},geneName${item.getGeneName()},genome${genome},sgrnaNum${sgrnaN…

Java开发的核心模式 - MVC

文章目录 1、MVC设计模式2、Web开发本质3、服务器的性能瓶颈 1、MVC设计模式 MVC设计模式示意图 在整个Java学习之旅中&#xff0c;MVC&#xff08;Model-View-Controller&#xff09;设计模式无疑占据着极其重要的地位&#xff0c;堪称理解和掌握Java项目开发精髓的钥匙。如…

2024最新Android面试题目,【设计思想解读开源框架】

前言 从18年毕业至今&#xff0c;就职过两家公司&#xff0c;大大小小项目做了几个&#xff0c;非常感谢我的两位老大&#xff0c;在我的android成长路上给予我很多指导&#xff0c;亦师亦友的关系。 从年前至今参加面试了很多公司&#xff0c;也收到了几家巨头的offer&#…

【React架构 - Scheduler中的MessageChannel】

前序 我们都知道JS代码是在浏览器5个进程(下面有介绍)中渲染进程中的Js引擎线程执行的&#xff0c;其他还有GUI渲染线程、定时器线程等&#xff0c;而页面的布局和绘制是在GUI线程中完成的&#xff0c;这些线程之间是互斥的&#xff0c;所以在执行Js的同时会阻塞页面的渲染绘制…

Python实现向量自回归模型(VAR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 向量自回归模型&#xff08;Vector Autoregression&#xff0c;简称VAR&#xff09;是一种多元时间序列…

国内 永远不会倒闭的四个行业

据教育部公布的数据&#xff0c;2024届高校毕业生人数预计将达到1187万人&#xff0c;较2023年增加29万&#xff0c;再创历史新高。 同时&#xff0c;受全球经济形势的影响&#xff0c;一些行业和领域的就业形势并不乐观&#xff0c;比如房地产、传统零售业、传统金融业、低技能…

Python 从文件中读取JSON 数据并解析转存

文章目录 文章开篇Json简介Json数据类型Json硬性规则Json数据转化网站Json和Dict类型转换json模块的使用Python数据和Json数据的类型映射json.dumps1.字典数据中含有**存在中文**2.json数据通过缩进符**美观输出**3.对Python数据类型中键进行**排序输出**4.json数据**分隔符的控…

Rocky Linux 运维工具 tar

一、tar的简介 tar​命令是Linux操作系统中用于打包和解压文件的工具。通过 ​tar​可以将多个文件或目录打包成一个归档文件&#xff0c;也可以解压这些归档文件。 二、tar的参数说明 -c 用于将指定的文件或目录打包成一个归档文件&#xff0c;即压缩归档文件 -f 用于指定归档…