diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxjs/TsbzJxzxpxfaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxjs/TsbzJxzxpxfaController.java new file mode 100644 index 000000000..28a3c4b65 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxjs/TsbzJxzxpxfaController.java @@ -0,0 +1,111 @@ +package com.ruoyi.web.controller.jxjs; + +import java.util.List; + +import com.ruoyi.common.utils.SecurityUtils; +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.jxjs.domain.TsbzJxzxpxfa; +import com.ruoyi.jxjs.service.ITsbzJxzxpxfaService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 见习之星评选方案Controller + * + * @author ruoyi + * @date 2020-08-20 + */ +@RestController +@RequestMapping("/jxjs/jxzxpxfa") +public class TsbzJxzxpxfaController extends BaseController { + @Autowired + private ITsbzJxzxpxfaService tsbzJxzxpxfaService; + + /** + * 查询见习之星评选方案列表 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:list')") + @GetMapping("/list") + public TableDataInfo list(TsbzJxzxpxfa tsbzJxzxpxfa) { + startPage(); + List<TsbzJxzxpxfa> list = tsbzJxzxpxfaService.selectTsbzJxzxpxfaList(tsbzJxzxpxfa); + return getDataTable(list); + } + + /** + * 导出见习之星评选方案列表 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:export')") + @Log(title = "见习之星评选方案", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(TsbzJxzxpxfa tsbzJxzxpxfa) { + List<TsbzJxzxpxfa> list = tsbzJxzxpxfaService.selectTsbzJxzxpxfaList(tsbzJxzxpxfa); + ExcelUtil<TsbzJxzxpxfa> util = new ExcelUtil<TsbzJxzxpxfa>(TsbzJxzxpxfa.class); + return util.exportExcel(list, "jxzxpxfa"); + } + + /** + * 获取见习之星评选方案详细信息 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(tsbzJxzxpxfaService.selectTsbzJxzxpxfaById(id)); + } + + /** + * 新增见习之星评选方案 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:add')") + @Log(title = "见习之星评选方案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TsbzJxzxpxfa tsbzJxzxpxfa) { + System.out.println("time:" + tsbzJxzxpxfa.getFayxjssj()); + //创建人id + tsbzJxzxpxfa.setCreateuserid(SecurityUtils.getLoginUser().getUser().getUserId()); + return toAjax(tsbzJxzxpxfaService.insertTsbzJxzxpxfa(tsbzJxzxpxfa)); + } + + /** + * 修改见习之星评选方案 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:edit')") + @Log(title = "见习之星评选方案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TsbzJxzxpxfa tsbzJxzxpxfa) { + return toAjax(tsbzJxzxpxfaService.updateTsbzJxzxpxfa(tsbzJxzxpxfa)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:edit')") + @Log(title = "见习之星评选方案", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody TsbzJxzxpxfa tsbzJxzxpxfa) { + return toAjax(tsbzJxzxpxfaService.updateTsbzJxzxpxfa(tsbzJxzxpxfa)); + } + + /** + * 删除见习之星评选方案 + */ + @PreAuthorize("@ss.hasPermi('jxjs:jxzxpxfa:remove')") + @Log(title = "见习之星评选方案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(tsbzJxzxpxfaService.deleteTsbzJxzxpxfaByIds(ids)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxjs/domain/TsbzJxzxpxfa.java b/ruoyi-system/src/main/java/com/ruoyi/jxjs/domain/TsbzJxzxpxfa.java new file mode 100644 index 000000000..2dc1d8b26 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jxjs/domain/TsbzJxzxpxfa.java @@ -0,0 +1,192 @@ +package com.ruoyi.jxjs.domain; + +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; + +/** + * 见习之星评选方案对象 tsbz_jxzxpxfa + * + * @author ruoyi + * @date 2020-08-20 + */ +public class TsbzJxzxpxfa extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + private Long id; + + /** + * 方案名称 + */ + @Excel(name = "方案名称") + private String name; + + /** + * 方案文件 + */ + @Excel(name = "方案文件") + private String fawj; + + /** + * 方案状态 + */ + @Excel(name = "方案状态") + private String fazt; + + /** + * 方案有效开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "方案有效开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date fayxkssj; + + /** + * 方案有效结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "方案有效结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date fayxjssj; + + /** + * 所属年份 + */ + @Excel(name = "所属年份") + private String nf; + + /** + * 评选学段 + */ + @Excel(name = "评选学段") + private String pxxd; + + /** + * 评选学科 + */ + @Excel(name = "评选学科") + private String pxxk; + + /** + * 创建人 + */ + @Excel(name = "创建人") + private Long createuserid; + + /** + * 文件名称 + */ + @Excel(name = "文件名称") + private String wjmc; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setFawj(String fawj) { + this.fawj = fawj; + } + + public String getFawj() { + return fawj; + } + + public void setFazt(String fazt) { + this.fazt = fazt; + } + + public String getFazt() { + return fazt; + } + + public void setFayxkssj(Date fayxkssj) { + this.fayxkssj = fayxkssj; + } + + public Date getFayxkssj() { + return fayxkssj; + } + + public void setFayxjssj(Date fayxjssj) { + this.fayxjssj = fayxjssj; + } + + public Date getFayxjssj() { + return fayxjssj; + } + + public void setNf(String nf) { + this.nf = nf; + } + + public String getNf() { + return nf; + } + + public void setPxxd(String pxxd) { + this.pxxd = pxxd; + } + + public String getPxxd() { + return pxxd; + } + + public void setPxxk(String pxxk) { + this.pxxk = pxxk; + } + + public String getPxxk() { + return pxxk; + } + + public void setCreateuserid(Long createuserid) { + this.createuserid = createuserid; + } + + public Long getCreateuserid() { + return createuserid; + } + + public void setWjmc(String wjmc) { + this.wjmc = wjmc; + } + + public String getWjmc() { + return wjmc; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("fawj", getFawj()) + .append("fazt", getFazt()) + .append("fayxkssj", getFayxkssj()) + .append("fayxjssj", getFayxjssj()) + .append("nf", getNf()) + .append("pxxd", getPxxd()) + .append("pxxk", getPxxk()) + .append("createuserid", getCreateuserid()) + .append("createTime", getCreateTime()) + .append("wjmc", getWjmc()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxjs/mapper/TsbzJxzxpxfaMapper.java b/ruoyi-system/src/main/java/com/ruoyi/jxjs/mapper/TsbzJxzxpxfaMapper.java new file mode 100644 index 000000000..ecfd0f80e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jxjs/mapper/TsbzJxzxpxfaMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.jxjs.mapper; + +import java.util.List; +import com.ruoyi.jxjs.domain.TsbzJxzxpxfa; + +/** + * 见习之星评选方案Mapper接口 + * + * @author ruoyi + * @date 2020-08-20 + */ +public interface TsbzJxzxpxfaMapper +{ + /** + * 查询见习之星评选方案 + * + * @param id 见习之星评选方案ID + * @return 见习之星评选方案 + */ + public TsbzJxzxpxfa selectTsbzJxzxpxfaById(Long id); + + /** + * 查询见习之星评选方案列表 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 见习之星评选方案集合 + */ + public List<TsbzJxzxpxfa> selectTsbzJxzxpxfaList(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 新增见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + public int insertTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 修改见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + public int updateTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 删除见习之星评选方案 + * + * @param id 见习之星评选方案ID + * @return 结果 + */ + public int deleteTsbzJxzxpxfaById(Long id); + + /** + * 批量删除见习之星评选方案 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteTsbzJxzxpxfaByIds(Long[] ids); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/ITsbzJxzxpxfaService.java b/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/ITsbzJxzxpxfaService.java new file mode 100644 index 000000000..be741ee59 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/ITsbzJxzxpxfaService.java @@ -0,0 +1,61 @@ +package com.ruoyi.jxjs.service; + +import java.util.List; +import com.ruoyi.jxjs.domain.TsbzJxzxpxfa; + +/** + * 见习之星评选方案Service接口 + * + * @author ruoyi + * @date 2020-08-20 + */ +public interface ITsbzJxzxpxfaService +{ + /** + * 查询见习之星评选方案 + * + * @param id 见习之星评选方案ID + * @return 见习之星评选方案 + */ + public TsbzJxzxpxfa selectTsbzJxzxpxfaById(Long id); + + /** + * 查询见习之星评选方案列表 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 见习之星评选方案集合 + */ + public List<TsbzJxzxpxfa> selectTsbzJxzxpxfaList(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 新增见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + public int insertTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 修改见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + public int updateTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa); + + /** + * 批量删除见习之星评选方案 + * + * @param ids 需要删除的见习之星评选方案ID + * @return 结果 + */ + public int deleteTsbzJxzxpxfaByIds(Long[] ids); + + /** + * 删除见习之星评选方案信息 + * + * @param id 见习之星评选方案ID + * @return 结果 + */ + public int deleteTsbzJxzxpxfaById(Long id); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/impl/TsbzJxzxpxfaServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/impl/TsbzJxzxpxfaServiceImpl.java new file mode 100644 index 000000000..9c4e733f3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jxjs/service/impl/TsbzJxzxpxfaServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.jxjs.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.jxjs.mapper.TsbzJxzxpxfaMapper; +import com.ruoyi.jxjs.domain.TsbzJxzxpxfa; +import com.ruoyi.jxjs.service.ITsbzJxzxpxfaService; + +/** + * 见习之星评选方案Service业务层处理 + * + * @author ruoyi + * @date 2020-08-20 + */ +@Service +public class TsbzJxzxpxfaServiceImpl implements ITsbzJxzxpxfaService +{ + @Autowired + private TsbzJxzxpxfaMapper tsbzJxzxpxfaMapper; + + /** + * 查询见习之星评选方案 + * + * @param id 见习之星评选方案ID + * @return 见习之星评选方案 + */ + @Override + public TsbzJxzxpxfa selectTsbzJxzxpxfaById(Long id) + { + return tsbzJxzxpxfaMapper.selectTsbzJxzxpxfaById(id); + } + + /** + * 查询见习之星评选方案列表 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 见习之星评选方案 + */ + @Override + public List<TsbzJxzxpxfa> selectTsbzJxzxpxfaList(TsbzJxzxpxfa tsbzJxzxpxfa) + { + return tsbzJxzxpxfaMapper.selectTsbzJxzxpxfaList(tsbzJxzxpxfa); + } + + /** + * 新增见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + @Override + public int insertTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa) + { + tsbzJxzxpxfa.setCreateTime(DateUtils.getNowDate()); + return tsbzJxzxpxfaMapper.insertTsbzJxzxpxfa(tsbzJxzxpxfa); + } + + /** + * 修改见习之星评选方案 + * + * @param tsbzJxzxpxfa 见习之星评选方案 + * @return 结果 + */ + @Override + public int updateTsbzJxzxpxfa(TsbzJxzxpxfa tsbzJxzxpxfa) + { + return tsbzJxzxpxfaMapper.updateTsbzJxzxpxfa(tsbzJxzxpxfa); + } + + /** + * 批量删除见习之星评选方案 + * + * @param ids 需要删除的见习之星评选方案ID + * @return 结果 + */ + @Override + public int deleteTsbzJxzxpxfaByIds(Long[] ids) + { + return tsbzJxzxpxfaMapper.deleteTsbzJxzxpxfaByIds(ids); + } + + /** + * 删除见习之星评选方案信息 + * + * @param id 见习之星评选方案ID + * @return 结果 + */ + @Override + public int deleteTsbzJxzxpxfaById(Long id) + { + return tsbzJxzxpxfaMapper.deleteTsbzJxzxpxfaById(id); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/jxjs/TsbzJxzxpxfaMapper.xml b/ruoyi-system/src/main/resources/mapper/jxjs/TsbzJxzxpxfaMapper.xml new file mode 100644 index 000000000..16a9e3203 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/jxjs/TsbzJxzxpxfaMapper.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.jxjs.mapper.TsbzJxzxpxfaMapper"> + + <resultMap type="TsbzJxzxpxfa" id="TsbzJxzxpxfaResult"> + <result property="id" column="id"/> + <result property="name" column="name"/> + <result property="fawj" column="fawj"/> + <result property="fazt" column="fazt"/> + <result property="fayxkssj" column="fayxkssj"/> + <result property="fayxjssj" column="fayxjssj"/> + <result property="nf" column="nf"/> + <result property="pxxd" column="pxxd"/> + <result property="pxxk" column="pxxk"/> + <result property="createuserid" column="createuserid"/> + <result property="createTime" column="create_time"/> + <result property="wjmc" column="wjmc"/> + </resultMap> + + <sql id="selectTsbzJxzxpxfaVo"> + select id, name, fawj, fazt, fayxkssj, fayxjssj, nf, pxxd, pxxk, createuserid, create_time, wjmc from tsbz_jxzxpxfa + </sql> + + <select id="selectTsbzJxzxpxfaList" parameterType="TsbzJxzxpxfa" resultMap="TsbzJxzxpxfaResult"> + <include refid="selectTsbzJxzxpxfaVo"/> + <where> + <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if> + <if test="fawj != null and fawj != ''">and fawj = #{fawj}</if> + <if test="fazt != null and fazt != ''">and fazt = #{fazt}</if> + <if test="fayxkssj != null ">and fayxkssj = #{fayxkssj}</if> + <if test="fayxjssj != null ">and fayxjssj = #{fayxjssj}</if> + <if test="nf != null and nf != ''">and nf = #{nf}</if> + <if test="pxxd != null and pxxd != ''">and pxxd = #{pxxd}</if> + <if test="pxxk != null and pxxk != ''">and pxxk = #{pxxk}</if> + <if test="createuserid != null ">and createuserid = #{createuserid}</if> + <if test="wjmc != null and wjmc != ''">and wjmc = #{wjmc}</if> + </where> + </select> + + <select id="selectTsbzJxzxpxfaById" parameterType="Long" resultMap="TsbzJxzxpxfaResult"> + <include refid="selectTsbzJxzxpxfaVo"/> + where id = #{id} + </select> + + <insert id="insertTsbzJxzxpxfa" parameterType="TsbzJxzxpxfa" useGeneratedKeys="true" keyProperty="id"> + insert into tsbz_jxzxpxfa + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="name != null">name,</if> + <if test="fawj != null">fawj,</if> + <if test="fazt != null">fazt,</if> + <if test="fayxkssj != null">fayxkssj,</if> + <if test="fayxjssj != null">fayxjssj,</if> + <if test="nf != null">nf,</if> + <if test="pxxd != null">pxxd,</if> + <if test="pxxk != null">pxxk,</if> + <if test="createuserid != null">createuserid,</if> + <if test="createTime != null">create_time,</if> + <if test="wjmc != null">wjmc,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="name != null">#{name},</if> + <if test="fawj != null">#{fawj},</if> + <if test="fazt != null">#{fazt},</if> + <if test="fayxkssj != null">#{fayxkssj},</if> + <if test="fayxjssj != null">#{fayxjssj},</if> + <if test="nf != null">#{nf},</if> + <if test="pxxd != null">#{pxxd},</if> + <if test="pxxk != null">#{pxxk},</if> + <if test="createuserid != null">#{createuserid},</if> + <if test="createTime != null">#{createTime},</if> + <if test="wjmc != null">#{wjmc},</if> + </trim> + </insert> + + <update id="updateTsbzJxzxpxfa" parameterType="TsbzJxzxpxfa"> + update tsbz_jxzxpxfa + <trim prefix="SET" suffixOverrides=","> + <if test="name != null">name = #{name},</if> + <if test="fawj != null">fawj = #{fawj},</if> + <if test="fazt != null">fazt = #{fazt},</if> + <if test="fayxkssj != null">fayxkssj = #{fayxkssj},</if> + <if test="fayxjssj != null">fayxjssj = #{fayxjssj},</if> + <if test="nf != null">nf = #{nf},</if> + <if test="pxxd != null">pxxd = #{pxxd},</if> + <if test="pxxk != null">pxxk = #{pxxk},</if> + <if test="createuserid != null">createuserid = #{createuserid},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="wjmc != null">wjmc = #{wjmc},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteTsbzJxzxpxfaById" parameterType="Long"> + delete from tsbz_jxzxpxfa where id = #{id} + </delete> + + <delete id="deleteTsbzJxzxpxfaByIds" parameterType="String"> + delete from tsbz_jxzxpxfa where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + +</mapper> \ No newline at end of file diff --git a/ruoyi-ui/src/api/jxjs/jxzxpxfa.js b/ruoyi-ui/src/api/jxjs/jxzxpxfa.js new file mode 100644 index 000000000..6453d5b99 --- /dev/null +++ b/ruoyi-ui/src/api/jxjs/jxzxpxfa.js @@ -0,0 +1,66 @@ +import request from '@/utils/request' + +// 查询见习之星评选方案列表 +export function listJxzxpxfa(query) { + return request({ + url: '/jxjs/jxzxpxfa/list', + method: 'get', + params: query + }) +} + +// 查询见习之星评选方案详细 +export function getJxzxpxfa(id) { + return request({ + url: '/jxjs/jxzxpxfa/' + id, + method: 'get' + }) +} + +// 新增见习之星评选方案 +export function addJxzxpxfa(data) { + return request({ + url: '/jxjs/jxzxpxfa', + method: 'post', + data: data + }) +} + +// 修改见习之星评选方案 +export function updateJxzxpxfa(data) { + return request({ + url: '/jxjs/jxzxpxfa', + method: 'put', + data: data + }) +} + +// 删除见习之星评选方案 +export function delJxzxpxfa(id) { + return request({ + url: '/jxjs/jxzxpxfa/' + id, + method: 'delete' + }) +} + +// 导出见习之星评选方案 +export function exportJxzxpxfa(query) { + return request({ + url: '/jxjs/jxzxpxfa/export', + method: 'get', + params: query + }) +} + +// 修改方案状态 +export function changeStatus(id, fazt) { + const data = { + id, + fazt + } + return request({ + url: '/jxjs/jxzxpxfa/changeStatus', + method: 'put', + data: data + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/views/jxjs/jxjsjbxx/index.vue b/ruoyi-ui/src/views/jxjs/jxjsjbxx/index.vue index 4b7c0c819..880eb8b42 100644 --- a/ruoyi-ui/src/views/jxjs/jxjsjbxx/index.vue +++ b/ruoyi-ui/src/views/jxjs/jxjsjbxx/index.vue @@ -90,7 +90,7 @@ /> </el-select> </el-form-item> - <el-form-item label="是否师范生" prop="sfsfs"> + <el-form-item label="师范生" prop="sfsfs"> <el-select v-model="queryParams.sfsfs" placeholder="请选择是否师范生" clearable size="small"> <el-option v-for="dict in sfsfsOptions" diff --git a/ruoyi-ui/src/views/jxjs/jxzxpxfa/index.vue b/ruoyi-ui/src/views/jxjs/jxzxpxfa/index.vue new file mode 100644 index 000000000..d6aee86cd --- /dev/null +++ b/ruoyi-ui/src/views/jxjs/jxzxpxfa/index.vue @@ -0,0 +1,502 @@ +<template> + <div class="app-container"> + <el-form + :model="queryParams" + ref="queryForm" + :inline="true" + v-show="showSearch" + label-width="68px" + > + <el-form-item label="方案名称" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="请输入方案名称" + clearable + size="small" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="方案状态" prop="fazt"> + <el-select v-model="queryParams.fazt" placeholder="请选择方案状态"> + <el-option + v-for="dict in faztOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="所属年份" prop="nf"> + <el-select v-model="queryParams.nf" placeholder="请选择所属年份"> + <el-option + v-for="dict in nfOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="评选学段" prop="pxxd"> + <el-select v-model="queryParams.pxxd" placeholder="请选择评选学段" clearable size="small"> + <el-option + v-for="dict in pxxdOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + <el-form-item label="评选学科" prop="pxxk"> + <el-select v-model="queryParams.pxxk" placeholder="请选择评选学科" clearable size="small"> + <el-option + v-for="dict in pxxkOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['jxjs:jxzxpxfa:add']" + >新增</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['jxjs:jxzxpxfa:edit']" + >修改</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['jxjs:jxzxpxfa:remove']" + >删除</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="jxzxpxfaList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <!-- <el-table-column label="编号" align="center" prop="id" /> --> + <el-table-column label="方案名称" align="center" prop="name" /> + <el-table-column label="方案状态" align="center"> + <template slot-scope="scope"> + <el-switch + v-model="scope.row.fazt" + active-value="1" + inactive-value="0" + @change="handleStatusChange(scope.row)" + ></el-switch> + </template> + </el-table-column> + <el-table-column label="方案有效开始时间" align="center" prop="fayxkssj" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.fayxkssj, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label="方案有效结束时间" align="center" prop="fayxjssj" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.fayxjssj, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label="所属年份" align="center" prop="nf" /> + <el-table-column label="评选学段" align="center" prop="pxxd" /> + <el-table-column label="评选学科" align="center" prop="pxxk" /> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['jxjs:jxzxpxfa:edit']" + >修改</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['jxjs:jxzxpxfa:remove']" + >删除</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 添加或修改见习之星评选方案对话框 --> + <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="110px"> + <el-form-item label="方案名称" prop="name"> + <el-input v-model="form.name" placeholder="请输入方案名称" /> + </el-form-item> + <el-form-item label="方案文件" prop="fawj"> + <el-input v-model="form.fawj" v-if="false" /> + <el-upload + class="upload-demo" + :action="uploadFileUrl" + :headers="headers" + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="1" + :on-exceed="handleExceed" + :file-list="fileList" + :on-success="handleAvatarSuccess" + > + <el-button size="small" type="primary">选择文件</el-button> + </el-upload> + </el-form-item> + <el-form-item label="方案状态" prop="fazt"> + <el-radio-group v-model="form.fazt"> + <el-radio + v-for="dict in faztOptions" + :key="dict.dictValue" + :label="dict.dictValue" + >{{dict.dictLabel}}</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="方案有效时间" prop="fayxkssj"> + <el-date-picker + v-model="form.fayxkssj" + type="daterange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + ></el-date-picker> + </el-form-item> + <el-form-item label="所属年份" prop="nf"> + <el-select v-model="form.nf" placeholder="请选择所属年份"> + <el-option + v-for="dict in nfOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="评选学段" prop="pxxd"> + <el-select v-model="form.pxxd" placeholder="请选择评选学段"> + <el-option + v-for="dict in pxxdOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + <el-form-item label="评选学科" prop="pxxk"> + <el-select v-model="form.pxxk" placeholder="请选择评选学科"> + <el-option + v-for="dict in pxxkOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { + listJxzxpxfa, + getJxzxpxfa, + delJxzxpxfa, + addJxzxpxfa, + updateJxzxpxfa, + changeStatus, +} from "@/api/jxjs/jxzxpxfa"; + +import { getToken } from "@/utils/auth"; + +export default { + name: "Jxzxpxfa", + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + // 见习之星评选方案表格数据 + jxzxpxfaList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + //字典 + faztOptions: [], + nfOptions: [], + pxxkOptions: [], + pxxdOptions: [], + fileList: [], + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + name: null, + fawj: null, + fazt: null, + fayxkssj: null, + fayxjssj: null, + nf: null, + pxxd: null, + pxxk: null, + createuserid: null, + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + name: [ + { required: true, message: "方案名称不能为空", trigger: "blur" }, + ], + fawj: [ + { required: true, message: "方案文件不能为空", trigger: "blur" }, + ], + fazt: [ + { required: true, message: "方案状态不能为空", trigger: "blur" }, + ], + fayxkssj: [ + { required: true, message: "方案有效时间不能为空", trigger: "blur" }, + ], + nf: [{ required: true, message: "方案年份不能为空", trigger: "blur" }], + pxxd: [ + { required: true, message: "评选学段不能为空", trigger: "blur" }, + ], + pxxk: [ + { required: true, message: "评选学课不能为空", trigger: "blur" }, + ], + }, + uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 + headers: { + Authorization: "Bearer " + getToken(), + }, + }; + }, + created() { + this.getList(); + this.getDicts("sys_dm_rxnf").then((response) => { + this.nfOptions = response.data; + }); + this.getDicts("sys_dm_fazt").then((response) => { + this.faztOptions = response.data; + }); + this.getDicts("sys_dm_rjxk").then((response) => { + this.pxxkOptions = response.data; + }); + this.getDicts("sys_dm_rjxd").then((response) => { + this.pxxdOptions = response.data; + }); + }, + methods: { + handleAvatarSuccess(res, file) { + console.log(res, file); + if (res.code == "200") { + this.form.fawj = res.fileName; + this.form.wjmc = file.name; + } else { + this.msgError(res.msg); + } + }, + handleRemove(file, fileList) { + //console.log(file, fileList); + if (file.response.code == "200") { + this.form.fawj = ""; + } + }, + handlePreview(file) { + //console.log(file); + }, + handleExceed(files, fileList) { + this.$message.warning( + `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ + files.length + fileList.length + } 个文件` + ); + }, + beforeRemove(file, fileList) { + return this.$confirm(`确定移除 ${file.name}?`); + }, + /** 查询见习之星评选方案列表 */ + getList() { + this.loading = true; + listJxzxpxfa(this.queryParams).then((response) => { + this.jxzxpxfaList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + id: null, + name: null, + fawj: null, + fazt: "0", + fayxkssj: null, + fayxjssj: null, + nf: null, + pxxd: null, + pxxk: null, + createuserid: null, + createTime: null, + wjmc: null, + }; + this.resetForm("form"); + this.fileList = []; + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length !== 1; + this.multiple = !selection.length; + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加见习之星评选方案"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids; + getJxzxpxfa(id).then((response) => { + this.form = response.data; + this.open = true; + this.title = "修改见习之星评选方案"; + const time = []; + time.push(response.data.fayxkssj); + time.push(response.data.fayxjssj); + this.form.fayxkssj = time; + this.fileList.push({ + name: response.data.wjmc, + url: response.data.fawj, + }); + }); + }, + /** 提交按钮 */ + submitForm() { + this.$refs["form"].validate((valid) => { + if (valid) { + const time = this.form.fayxkssj; + this.form.fayxkssj = time[0]; + this.form.fayxjssj = time[1]; + if (this.form.id != null) { + updateJxzxpxfa(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("修改成功"); + this.open = false; + this.getList(); + } + }); + } else { + addJxzxpxfa(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("新增成功"); + this.open = false; + this.getList(); + } + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$confirm( + '是否确认删除见习之星评选方案编号为"' + ids + '"的数据项?', + "警告", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(function () { + return delJxzxpxfa(ids); + }) + .then(() => { + this.getList(); + this.msgSuccess("删除成功"); + }) + .catch(function () {}); + }, + // 状态修改 + handleStatusChange(row) { + let text = row.fazt === "1" ? "启用" : "停用"; + this.$confirm('确认要"' + text + '""' + row.name + '"方案吗?', "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(function () { + return changeStatus(row.id, row.fazt); + }) + .then(() => { + this.msgSuccess(text + "成功"); + }) + .catch(function () { + row.fazt = row.fazt === "1" ? "0" : "1"; + }); + }, + }, +}; +</script>