评估内容部分代码

This commit is contained in:
sk1551 2020-10-17 18:58:24 +08:00
parent d2b50c0d72
commit 47369fc805
8 changed files with 252 additions and 69 deletions

View File

@ -2,52 +2,61 @@ import request from '@/utils/request'
// 查询评估内容列表 // 查询评估内容列表
export function listAssessmentcontent(query) { export function listAssessmentcontent(query) {
return request({ return request({
url: '/benyi/assessmentcontent/list', url: '/benyi/assessmentcontent/list',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 查询部门下拉树结构
export function treeselect() {
return request({
url: '/benyi/assessmentcontent/treeselect',
method: 'get'
})
}
// 查询评估内容详细 // 查询评估内容详细
export function getAssessmentcontent(id) { export function getAssessmentcontent(id) {
return request({ return request({
url: '/benyi/assessmentcontent/' + id, url: '/benyi/assessmentcontent/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增评估内容 // 新增评估内容
export function addAssessmentcontent(data) { export function addAssessmentcontent(data) {
return request({ return request({
url: '/benyi/assessmentcontent', url: '/benyi/assessmentcontent',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改评估内容 // 修改评估内容
export function updateAssessmentcontent(data) { export function updateAssessmentcontent(data) {
return request({ return request({
url: '/benyi/assessmentcontent', url: '/benyi/assessmentcontent',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除评估内容 // 删除评估内容
export function delAssessmentcontent(id) { export function delAssessmentcontent(id) {
return request({ return request({
url: '/benyi/assessmentcontent/' + id, url: '/benyi/assessmentcontent/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出评估内容 // 导出评估内容
export function exportAssessmentcontent(query) { export function exportAssessmentcontent(query) {
return request({ return request({
url: '/benyi/assessmentcontent/export', url: '/benyi/assessmentcontent/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

View File

@ -54,8 +54,6 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="编号" align="center" prop="id" /> -->
<!-- <el-table-column label="父id" align="center" prop="parentid" /> -->
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
<el-table-column label="是否元素" align="center" prop="iselement" :formatter="iselementFormat" /> <el-table-column label="是否元素" align="center" prop="iselement" :formatter="iselementFormat" />
<el-table-column label="适用范围" align="center" prop="scope" :formatter="scopeFormat" /> <el-table-column label="适用范围" align="center" prop="scope" :formatter="scopeFormat" />
@ -90,15 +88,13 @@
<!-- 添加或修改评估内容对话框 --> <!-- 添加或修改评估内容对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属模块" prop="parentid"> <el-form-item label="所属模块" prop="parentId">
<el-select v-model="form.parentid" placeholder="请输入所属模块"> <treeselect
<el-option v-model="form.parentId"
v-for="dict in parentidOptions" :options="parentidOptions"
:key="dict.id" :normalizer="normalizer"
:label="dict.name" placeholder="选择上级部门"
:value="dict.id" />
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="form.name" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.name" type="textarea" placeholder="请输入内容" />
@ -114,7 +110,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="适用范围" prop="scope"> <el-form-item label="适用范围" prop="scope">
<el-select v-model="form.scope" placeholder="请选择元素适用范围" > <el-select v-model="form.scope" placeholder="请选择元素适用范围">
<el-option <el-option
v-for="dict in scopeOptions" v-for="dict in scopeOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -140,9 +136,12 @@ import {
addAssessmentcontent, addAssessmentcontent,
updateAssessmentcontent updateAssessmentcontent
} from "@/api/benyi/assessmentcontent"; } from "@/api/benyi/assessmentcontent";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Assessmentcontent", name: "Assessmentcontent",
components: { Treeselect },
data() { data() {
return { return {
// //
@ -171,7 +170,7 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
parentid: undefined, parentId: undefined,
name: undefined, name: undefined,
iselement: undefined, iselement: undefined,
scope: undefined scope: undefined
@ -180,18 +179,14 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
parentid: [ parentId: [
{ required: true, message: "所属模块不能为空", trigger: "blur" } { required: true, message: "所属模块不能为空", trigger: "blur" }
], ],
name: [ name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
{ required: true, message: "名称不能为空", trigger: "blur" }
],
iselement: [ iselement: [
{ required: true, message: "是否元素不能为空", trigger: "blur" } { required: true, message: "是否元素不能为空", trigger: "blur" }
], ],
scope: [ scope: [{ required: true, message: "范围不能为空", trigger: "blur" }]
{ required: true, message: "范围不能为空", trigger: "blur" }
],
} }
}; };
}, },
@ -203,7 +198,6 @@ export default {
this.getDicts("sys_yes_no").then(response => { this.getDicts("sys_yes_no").then(response => {
this.iselementOptions = response.data; this.iselementOptions = response.data;
}); });
this.getPartntid();
}, },
methods: { methods: {
// //
@ -224,13 +218,27 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
getPartntid() {
/** 查询部门下拉树结构 */
getTreeselect() {
listAssessmentcontent(null).then(response => { listAssessmentcontent(null).then(response => {
this.parentidOptions = response.rows; this.parentidOptions = this.handleTree(response.rows, "id");
console.log(this.parentidOptions); console.log(this.parentidOptions);
}); });
}, },
/** 转换部门数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children
};
},
// //
cancel() { cancel() {
this.open = false; this.open = false;
@ -240,7 +248,7 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: undefined, id: undefined,
parentid: undefined, parentId: undefined,
name: undefined, name: undefined,
iselement: undefined, iselement: undefined,
scope: undefined, scope: undefined,
@ -265,14 +273,19 @@ export default {
this.multiple = !selection.length; this.multiple = !selection.length;
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd(row) {
this.reset(); this.reset();
this.getTreeselect();
if (row != undefined) {
this.form.parentId = row.id;
}
this.open = true; this.open = true;
this.title = "添加评估内容"; this.title = "添加评估内容";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.getTreeselect();
const id = row.id || this.ids; const id = row.id || this.ids;
getAssessmentcontent(id).then(response => { getAssessmentcontent(id).then(response => {
this.form = response.data; this.form = response.data;

View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.project.benyi.domain.ByAssessmentcontent;
import com.ruoyi.project.benyi.domain.ByDayFlowDetail; import com.ruoyi.project.benyi.domain.ByDayFlowDetail;
import com.ruoyi.project.benyi.domain.ByMath; import com.ruoyi.project.benyi.domain.ByMath;
import com.ruoyi.project.benyi.domain.ByTheme; import com.ruoyi.project.benyi.domain.ByTheme;
@ -37,6 +38,13 @@ public class TreeSelect implements Serializable
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
} }
public TreeSelect(ByAssessmentcontent byAssessmentcontent)
{
this.id = byAssessmentcontent.getId();
this.label = byAssessmentcontent.getName();
this.children = byAssessmentcontent.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
public TreeSelect(SysMenu menu) public TreeSelect(SysMenu menu)
{ {
this.id = menu.getMenuId(); this.id = menu.getMenuId();

View File

@ -1,6 +1,10 @@
package com.ruoyi.project.benyi.controller; package com.ruoyi.project.benyi.controller;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.security.service.TokenService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -32,6 +36,8 @@ public class ByAssessmentcontentController extends BaseController
{ {
@Autowired @Autowired
private IByAssessmentcontentService byAssessmentcontentService; private IByAssessmentcontentService byAssessmentcontentService;
@Autowired
private TokenService tokenService;
/** /**
* 查询评估内容列表 * 查询评估内容列表
@ -68,6 +74,18 @@ public class ByAssessmentcontentController extends BaseController
return AjaxResult.success(byAssessmentcontentService.selectByAssessmentcontentById(id)); return AjaxResult.success(byAssessmentcontentService.selectByAssessmentcontentById(id));
} }
/**
* 获取部门下拉树列表
*/
@GetMapping("/treeselect")
public AjaxResult treeselect(ByAssessmentcontent byAssessmentcontent) {
List<ByAssessmentcontent> byAssessmentcontents = byAssessmentcontentService.selectByAssessmentcontentList(byAssessmentcontent);
return AjaxResult.success(byAssessmentcontentService.buildByAssessmentcontentTreeSelect(byAssessmentcontents));
}
/** /**
* 新增评估内容 * 新增评估内容
*/ */

View File

@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity; import com.ruoyi.framework.web.domain.BaseEntity;
import java.util.ArrayList;
import java.util.List;
/** /**
* 评估内容对象 by_assessmentcontent * 评估内容对象 by_assessmentcontent
* *
@ -23,7 +26,7 @@ public class ByAssessmentcontent extends BaseEntity {
* 父id * 父id
*/ */
@Excel(name = "父id") @Excel(name = "父id")
private Long parentid; private Long parentId;
/** /**
* 名称 * 名称
@ -37,6 +40,28 @@ public class ByAssessmentcontent extends BaseEntity {
@Excel(name = "是否元素") @Excel(name = "是否元素")
private String iselement; private String iselement;
public String getParentName() {
return parentName;
}
public void setParentName(String parentName) {
this.parentName = parentName;
}
public List<ByAssessmentcontent> getChildren() {
return children;
}
public void setChildren(List<ByAssessmentcontent> children) {
this.children = children;
}
/** 父部门名称 */
private String parentName;
/** 子部门 */
private List<ByAssessmentcontent> children = new ArrayList<ByAssessmentcontent>();
/** /**
* 元素才有适用范围;应该以幼儿的岁数为准 * 元素才有适用范围;应该以幼儿的岁数为准
*/ */
@ -51,14 +76,6 @@ public class ByAssessmentcontent extends BaseEntity {
return id; return id;
} }
public void setParentid(Long parentid) {
this.parentid = parentid;
}
public Long getParentid() {
return parentid;
}
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
@ -87,11 +104,19 @@ public class ByAssessmentcontent extends BaseEntity {
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("id", getId())
.append("parentid", getParentid()) .append("parentId", getParentId())
.append("name", getName()) .append("name", getName())
.append("iselement", getIselement()) .append("iselement", getIselement())
.append("scope", getScope()) .append("scope", getScope())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.toString(); .toString();
} }
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
} }

View File

@ -2,6 +2,7 @@ package com.ruoyi.project.benyi.service;
import java.util.List; import java.util.List;
import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.benyi.domain.ByAssessmentcontent; import com.ruoyi.project.benyi.domain.ByAssessmentcontent;
/** /**
@ -27,6 +28,22 @@ public interface IByAssessmentcontentService {
*/ */
public List<ByAssessmentcontent> selectByAssessmentcontentList(ByAssessmentcontent byAssessmentcontent); public List<ByAssessmentcontent> selectByAssessmentcontentList(ByAssessmentcontent byAssessmentcontent);
/**
* 构建前端所需要树结构
*
* @param byAssessmentcontents 部门列表
* @return 树结构列表
*/
List<ByAssessmentcontent> buildbyAssessmentcontentTree(List<ByAssessmentcontent> byAssessmentcontents);
/**
* 构建前端所需要下拉树结构
*
* @param byAssessmentcontents 部门列表
* @return 下拉树结构列表
*/
public List<TreeSelect> buildByAssessmentcontentTreeSelect(List<ByAssessmentcontent> byAssessmentcontents);
/** /**
* 新增评估内容 * 新增评估内容
* *

View File

@ -1,8 +1,13 @@
package com.ruoyi.project.benyi.service.impl; package com.ruoyi.project.benyi.service.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.domain.TreeSelect;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.project.benyi.mapper.ByAssessmentcontentMapper; import com.ruoyi.project.benyi.mapper.ByAssessmentcontentMapper;
@ -42,6 +47,44 @@ public class ByAssessmentcontentServiceImpl implements IByAssessmentcontentServi
return byAssessmentcontentMapper.selectByAssessmentcontentList(byAssessmentcontent); return byAssessmentcontentMapper.selectByAssessmentcontentList(byAssessmentcontent);
} }
/**
* 构建前端所需要树结构
*
* @param byAssessmentcontents 部门列表
* @return 树结构列表
*/
@Override
public List<ByAssessmentcontent> buildbyAssessmentcontentTree(List<ByAssessmentcontent> byAssessmentcontents)
{
List<ByAssessmentcontent> returnList = new ArrayList<ByAssessmentcontent>();
List<Long> tempList = new ArrayList<Long>();
for (ByAssessmentcontent byAssessmentcontent : byAssessmentcontents)
{
tempList.add(byAssessmentcontent.getId());
}
for (Iterator<ByAssessmentcontent> iterator = byAssessmentcontents.iterator(); iterator.hasNext();)
{
ByAssessmentcontent byAssessmentcontent = (ByAssessmentcontent) iterator.next();
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(byAssessmentcontent.getParentId()))
{
recursionFn(byAssessmentcontents, byAssessmentcontent);
returnList.add(byAssessmentcontent);
}
}
if (returnList.isEmpty())
{
returnList = byAssessmentcontents;
}
return returnList;
}
@Override
public List<TreeSelect> buildByAssessmentcontentTreeSelect(List<ByAssessmentcontent> byAssessmentcontents) {
List<ByAssessmentcontent> byAssessmentcontentTrees = buildbyAssessmentcontentTree(byAssessmentcontents);
return byAssessmentcontentTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
/** /**
* 新增评估内容 * 新增评估内容
* *
@ -86,4 +129,54 @@ public class ByAssessmentcontentServiceImpl implements IByAssessmentcontentServi
public int deleteByAssessmentcontentById(Long id) { public int deleteByAssessmentcontentById(Long id) {
return byAssessmentcontentMapper.deleteByAssessmentcontentById(id); return byAssessmentcontentMapper.deleteByAssessmentcontentById(id);
} }
/**
* 递归列表
*/
private void recursionFn(List<ByAssessmentcontent> list, ByAssessmentcontent t)
{
// 得到子节点列表
List<ByAssessmentcontent> childList = getChildList(list, t);
t.setChildren(childList);
for (ByAssessmentcontent tChild : childList)
{
if (hasChild(list, tChild))
{
// 判断是否有子节点
Iterator<ByAssessmentcontent> it = childList.iterator();
while (it.hasNext())
{
ByAssessmentcontent n = (ByAssessmentcontent) it.next();
recursionFn(list, n);
}
}
}
}
/**
* 得到子节点列表
*/
private List<ByAssessmentcontent> getChildList(List<ByAssessmentcontent> list, ByAssessmentcontent t)
{
List<ByAssessmentcontent> tlist = new ArrayList<ByAssessmentcontent>();
Iterator<ByAssessmentcontent> it = list.iterator();
while (it.hasNext())
{
ByAssessmentcontent n = (ByAssessmentcontent) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue())
{
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<ByAssessmentcontent> list, ByAssessmentcontent t)
{
return getChildList(list, t).size() > 0 ? true : false;
}
} }

View File

@ -6,7 +6,7 @@
<resultMap type="ByAssessmentcontent" id="ByAssessmentcontentResult"> <resultMap type="ByAssessmentcontent" id="ByAssessmentcontentResult">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="parentid" column="parentId"/> <result property="parentId" column="parentId"/>
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="iselement" column="iselement"/> <result property="iselement" column="iselement"/>
<result property="scope" column="scope"/> <result property="scope" column="scope"/>
@ -21,7 +21,7 @@
resultMap="ByAssessmentcontentResult"> resultMap="ByAssessmentcontentResult">
<include refid="selectByAssessmentcontentVo"/> <include refid="selectByAssessmentcontentVo"/>
<where> <where>
<if test="parentid != null ">and parentId = #{parentid}</if> <if test="parentId != null ">and parentId = #{parentId}</if>
<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if> <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
<if test="iselement != null and iselement != ''">and iselement = #{iselement}</if> <if test="iselement != null and iselement != ''">and iselement = #{iselement}</if>
<if test="scope != null and scope != ''">and scope = #{scope}</if> <if test="scope != null and scope != ''">and scope = #{scope}</if>
@ -36,14 +36,14 @@
<insert id="insertByAssessmentcontent" parameterType="ByAssessmentcontent" useGeneratedKeys="true" keyProperty="id"> <insert id="insertByAssessmentcontent" parameterType="ByAssessmentcontent" useGeneratedKeys="true" keyProperty="id">
insert into by_assessmentcontent insert into by_assessmentcontent
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="parentid != null ">parentId,</if> <if test="parentId != null ">parentId,</if>
<if test="name != null and name != ''">name,</if> <if test="name != null and name != ''">name,</if>
<if test="iselement != null and iselement != ''">iselement,</if> <if test="iselement != null and iselement != ''">iselement,</if>
<if test="scope != null and scope != ''">scope,</if> <if test="scope != null and scope != ''">scope,</if>
<if test="createTime != null ">create_time,</if> <if test="createTime != null ">create_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="parentid != null ">#{parentid},</if> <if test="parentId != null ">#{parentId},</if>
<if test="name != null and name != ''">#{name},</if> <if test="name != null and name != ''">#{name},</if>
<if test="iselement != null and iselement != ''">#{iselement},</if> <if test="iselement != null and iselement != ''">#{iselement},</if>
<if test="scope != null and scope != ''">#{scope},</if> <if test="scope != null and scope != ''">#{scope},</if>
@ -54,7 +54,7 @@
<update id="updateByAssessmentcontent" parameterType="ByAssessmentcontent"> <update id="updateByAssessmentcontent" parameterType="ByAssessmentcontent">
update by_assessmentcontent update by_assessmentcontent
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="parentid != null ">parentId = #{parentid},</if> <if test="parentId != null ">parentId = #{parentId},</if>
<if test="name != null and name != ''">name = #{name},</if> <if test="name != null and name != ''">name = #{name},</if>
<if test="iselement != null and iselement != ''">iselement = #{iselement},</if> <if test="iselement != null and iselement != ''">iselement = #{iselement},</if>
<if test="scope != null and scope != ''">scope = #{scope},</if> <if test="scope != null and scope != ''">scope = #{scope},</if>