指标库新增web页面树形接口

This commit is contained in:
ly19960718 2021-04-15 10:50:27 +08:00
parent 0cb5a8ac4a
commit 6a009f67a0
16 changed files with 169 additions and 136 deletions

View File

@ -107,6 +107,12 @@
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>module-article</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>

View File

@ -93,9 +93,10 @@ public class IndexGeneralController extends DefaultBaseController {
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpage")
public SuccessResultList<List<IndexGeneralDTO>> listPage(ListPage page) {
@GetMapping("listpage/{indexLibId}")
public SuccessResultList<List<IndexGeneralDTO>> listPage(ListPage page,@PathVariable("indexLibId") String indexLibId) {
Map<String, Object> params = requestParams();
params.put("indexLibId",indexLibId);
page.setParams(params);
return indexGeneralService.listPage(page);
}

View File

@ -2,13 +2,12 @@ package com.tenlion.twoduty.controller.route;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.common.component.SecurityComponent;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@ -23,12 +22,15 @@ import org.springframework.web.servlet.ModelAndView;
@RestController
@RequestMapping()
public class indexWebController extends DefaultBaseController {
@Autowired
private SecurityComponent securityComponent;
@ApiOperation(value = "后台页面首页", notes = "后台页面首页接口")
@GetMapping("indexweb")
public ModelAndView indexweb(){
ModelAndView mv = new ModelAndView("index");
mv.addObject("userName",securityComponent.getCurrentUserIdInfo().getUserNameValue());
return mv;
}

View File

@ -16,6 +16,7 @@ public class IndexGeneralBO {
private String indexGeneralContent;
private String indexGeneralFile;
private String indexGeneralImage;
private Integer auditStatus;
private String gmtCreate;
private String creator;
private String gmtModified;
@ -70,6 +71,14 @@ public class IndexGeneralBO {
this.indexGeneralImage = indexGeneralImage;
}
public Integer getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(Integer auditStatus) {
this.auditStatus = auditStatus;
}
public String getGmtCreate() {
return gmtCreate == null ? "" : gmtCreate.trim();
}

View File

@ -28,7 +28,8 @@ public class IndexGeneralDTO {
private String indexGeneralFile;
@ApiModelProperty(name = "indexGeneralImage", value = "上报图片")
private String indexGeneralImage;
@ApiModelProperty(name = "auditStatus", value = "审核状态")
private Integer auditStatus;
public String getIndexGeneralId() {
return indexGeneralId == null ? "" : indexGeneralId.trim();
@ -87,6 +88,11 @@ public class IndexGeneralDTO {
}
public Integer getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(Integer auditStatus) {
this.auditStatus = auditStatus;
}
}

View File

@ -16,6 +16,7 @@ public class IndexGeneralPO {
private String indexGeneralContent;
private String indexGeneralFile;
private String indexGeneralImage;
private Integer auditStatus;
private String gmtCreate;
private String creator;
private String gmtModified;
@ -110,5 +111,11 @@ public class IndexGeneralPO {
this.isDelete = isDelete;
}
public Integer getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(Integer auditStatus) {
this.auditStatus = auditStatus;
}
}

View File

@ -31,8 +31,8 @@ public class IndexGeneralVO {
private String indexGeneralFile;
@ApiModelProperty(name = "indexGeneralImage", value = "上报图片")
private String indexGeneralImage;
@ApiModelProperty(name = "auditStatus", value = "审核状态")
private Integer auditStatus;
public String getIndexGeneralId() {
return indexGeneralId == null ? "" : indexGeneralId.trim();
@ -90,6 +90,11 @@ public class IndexGeneralVO {
this.indexGeneralImage = indexGeneralImage;
}
public Integer getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(Integer auditStatus) {
this.auditStatus = auditStatus;
}
}

View File

@ -9,6 +9,7 @@
<result column="index_general_content" property="indexGeneralContent"/>
<result column="index_general_file" property="indexGeneralFile"/>
<result column="index_general_image" property="indexGeneralImage"/>
<result column="audit_status" property="auditStatus"/>
</resultMap>
<resultMap id="indexGeneralBO" type="com.tenlion.twoduty.pojo.bos.indexgeneral.IndexGeneralBO">
@ -18,6 +19,7 @@
<result column="index_general_content" property="indexGeneralContent"/>
<result column="index_general_file" property="indexGeneralFile"/>
<result column="index_general_image" property="indexGeneralImage"/>
<result column="audit_status" property="auditStatus"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="creator" property="creator"/>
<result column="gmt_modified" property="gmtModified"/>
@ -32,6 +34,7 @@
<result column="index_general_content" property="indexGeneralContent"/>
<result column="index_general_file" property="indexGeneralFile"/>
<result column="index_general_image" property="indexGeneralImage"/>
<result column="audit_status" property="auditStatus"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="creator" property="creator"/>
<result column="gmt_modified" property="gmtModified"/>
@ -48,6 +51,7 @@
index_general_content,
index_general_file,
index_general_image,
audit_status,
gmt_create,
creator,
gmt_modified,
@ -60,6 +64,7 @@
#{indexGeneralContent},
#{indexGeneralFile},
#{indexGeneralImage},
#{auditStatus},
#{gmtCreate},
#{creator},
#{gmtModified},
@ -111,6 +116,9 @@
<if test="indexGeneralImage != null and indexGeneralImage != ''">
index_general_image = #{indexGeneralImage},
</if>
<if test="auditStatus != null and auditStatus != ''">
audit_status = #{auditStatus},
</if>
<if test="gmtModified != null and gmtModified != ''">
gmt_modified = #{gmtModified},
</if>
@ -130,6 +138,7 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.audit_status,
t1.index_general_id
FROM
duty_index_general t1
@ -150,6 +159,7 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.audit_status,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -174,6 +184,7 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.audit_status,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -197,7 +208,8 @@
t1.index_general_title,
t1.index_general_content,
t1.index_general_file,
t1.index_general_image
t1.index_general_image,
t1.audit_status
FROM
duty_index_general t1
WHERE
@ -226,6 +238,9 @@
<if test="indexLibId != null and indexLibId != ''">
AND t1.index_lib_id = #{indexLibId}
</if>
<if test="auditStatus != null and auditStatus != ''">
AND t1.audit_status = #{auditStatus}
</if>
</select>
<!-- 列表 -->
@ -237,6 +252,7 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.audit_status,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -278,6 +294,7 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.audit_status,
t1.gmt_create,
t1.creator,
t1.gmt_modified,

View File

@ -185,9 +185,6 @@
<if test="indexLibParentId != null and indexLibParentId != ''">
index_lib_parent_id = #{indexLibParentId},
</if>
<if test="indexTemplateId != null and indexTemplateId != ''">
index_template_id = #{indexTemplateId},
</if>
<if test="indexLibSort != null and indexLibSort != ''">
index_lib_sort = #{indexLibSort},
</if>
@ -197,6 +194,7 @@
<if test="indexLibState != null and indexLibState != ''">
index_lib_state = #{indexLibState},
</if>
index_template_id = #{indexTemplateId},
gmt_modified = #{gmtModified},
modifier = #{modifier}
WHERE

View File

@ -157,22 +157,12 @@ div.edui-box {
.edui-default .edui-editor-toolbarboxouter {
border-bottom: 1px solid #d4d4d4;
background-color: #fafafa;
background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
background-repeat: repeat-x;
background-color: #FFFFFF;
/*border: 1px solid #d4d4d4;*/
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
*zoom: 1;
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
}
.edui-default .edui-editor-toolbarboxinner {

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
/*可以在这里添加你自己的css*/
/*可以在这里添加你自己的css*/

View File

@ -33,19 +33,33 @@
, serverUrl: URL.replace(/assets\/js\/vendor\/ueditor\//gi, 'api/file/ueditor')
//工具栏上的所有的功能按钮和下拉框可以在new编辑器的实例时选择自己需要的重新定义
, toolbars: [[
'fullscreen', 'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', /*'gmap',*/ 'insertframe', /*'insertcode', 'webapp',*/ 'pagebreak', /*'template',*/ 'background', '|',
'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
'print', 'preview', 'searchreplace', 'drafts', /*'help'*/
]]
// , toolbars: [[
// 'fullscreen', 'source', '|', 'undo', 'redo', '|',
// 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
// 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
// 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
// 'directionalityltr', 'directionalityrtl', 'indent', '|',
// 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
// 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
// 'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', /*'gmap',*/ 'insertframe', /*'insertcode', 'webapp',*/ 'pagebreak', /*'template',*/ 'background', '|',
// 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
// 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
// 'print', 'preview', 'searchreplace', 'drafts', /*'help'*/
// ]]
, toolbars: [[
'fullscreen', 'source', '|',
'undo', 'redo', '|',
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', '|',
'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|',
'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|',
'link', 'unlink', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload', 'insertimage', 'insertvideo', 'attachment', '|',
'horizontal', 'spechars', '|',
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', '|',
'searchreplace',
]]
//当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准
//,labelMap:{
// 'anchor':'', 'undo':''
@ -58,8 +72,8 @@
//主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换当然前提条件是themes文件夹下存在对应的主题文件
//现有如下皮肤:default
//,theme:'default'
//,themePath:URL +"themes/"
// ,theme: 'style1'
// ,themePath:URL +"themes/"
//,zIndex : 900 //编辑器层级的基数,默认是900
@ -109,36 +123,36 @@
//,emotionLocalization:false //是否开启表情本地化默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹
//粘贴只保留标签,去除标签所有属性
//,retainOnlyLabelPasted: false
,retainOnlyLabelPasted: true
//,pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴true为使用纯文本粘贴
,pasteplain: false //是否默认为纯文本粘贴。false为不使用纯文本粘贴true为使用纯文本粘贴
//纯文本粘贴模式下的过滤规则
//'filterTxtRules' : function(){
// function transP(node){
// node.tagName = 'p';
// node.setStyle();
// }
// return {
// //直接删除及其字节点内容
// '-' : 'script style object iframe embed input select',
// 'p': {$:{}},
// 'br':{$:{}},
// 'div':{'$':{}},
// 'li':{'$':{}},
// 'caption':transP,
// 'th':transP,
// 'tr':transP,
// 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
// 'td':function(node){
// //没有内容的td直接删掉
// var txt = !!node.innerText();
// if(txt){
// node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'),node);
// }
// node.parentNode.removeChild(node,node.innerText())
// }
// }
//}()
,'filterTxtRules' : function(){
function transP(node){
node.tagName = 'p';
node.setStyle();
}
return {
//直接删除及其字节点内容
'-' : 'script style object iframe embed input select',
'p': {$:{}},
'br':{$:{}},
'div':{'$':{}},
'li':{'$':{}},
'caption':transP,
'th':transP,
'tr':transP,
'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
'td':function(node){
//没有内容的td直接删掉
var txt = !!node.innerText();
if(txt){
node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'),node);
}
node.parentNode.removeChild(node,node.innerText())
}
}
}()
//,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串
@ -430,69 +444,44 @@
};
function getUEBasePath(docUrl, confUrl) {
var basePath = getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath());
return basePath;
}
function getConfigFilePath() {
var configPath = document.getElementsByTagName('script');
configPath = configPath[ configPath.length - 1 ].src;
return configPath;
}
function getBasePath(docUrl, confUrl) {
var basePath = confUrl;
if (/^(\/|\\\\)/.test(confUrl)) {
basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, '');
} else if (!/^[a-z]+:/i.test(confUrl)) {
docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, '');
basePath = docUrl + "" + confUrl;
}
return optimizationPath(basePath);
}
function optimizationPath(path) {
var protocol = /^[a-z]+:\/\//.exec(path)[ 0 ],
tmp = null,
res = [];
path = path.replace(protocol, "").split("?")[0].split("#")[0];
path = path.replace(/\\/g, '/').split(/\//);
path[ path.length - 1 ] = "";
while (path.length) {
if (( tmp = path.shift() ) === "..") {
res.pop();
} else if (tmp !== ".") {
res.push(tmp);
}
}
return protocol + res.join("/");
}
window.UE = {
getUEBasePath: getUEBasePath
};
})();

View File

@ -31,20 +31,6 @@
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm" lay-event="saveEvent">
<i class="fa fa-lg fa-plus"></i> 新增
</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="updateEvent">
<i class="fa fa-lg fa-edit"></i> 编辑
</button>
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="removeEvent">
<i class="fa fa-lg fa-trash"></i> 删除
</button>
</div>
</script>
</div>
</div>
</div>
@ -65,14 +51,16 @@
var laydate = layui.laydate;
var common = layui.common;
var resizeTimeout = null;
var tableUrl = 'api/indexgeneral/listpage';
var tableUrl = 'api/indexgeneral/listpage/{indexLibId}';
var indexLibId = top.restAjax.params(window.location.href).indexLibId;
// 初始化表格
function initTable() {
table.render({
elem: '#dataTable',
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
url: top.restAjax.path(tableUrl, [indexLibId]),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
limit: 20,
@ -86,7 +74,7 @@
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'indexLibId', width: 180, title: '指标名称', align:'center',
{field: 'indexGeneralTitle', width: 250, title: '上报标题', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -95,16 +83,7 @@
return rowData;
}
},
{field: 'indexGeneralTitle', width: 180, title: '上报标题', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'indexGeneralContent', width: 180, title: '上报正文', align:'center',
{field: 'indexGeneralContent', width: 300, title: '上报正文', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -146,6 +125,34 @@
}
return downloadFile;
}
},
{field: 'auditStatus', width: 100, title: '状态', align:'center',fixed: 'right',
templet: function(row) {
var rowData = row[this.field];
if(0 === rowData){
return '未审核';
}
if(1 === rowData){
return '审核通过';
}
if(2 === rowData){
return '以归档';
}
if(-1 === rowData){
return '审核不通过';
}
return rowData;
}
},
{field: 'cz', width: 200, title: '操作', align:'center',fixed: 'right',
templet: function(row) {
var rowData = '<div class="layui-btn-group">' +
'<button type="button" class="layui-btn layui-btn-xs" lay-event="show">查看</button>' +
'<button type="button" class="layui-btn layui-btn-xs" lay-event="update">编辑</button>' +
'<button type="button" class="layui-btn layui-btn-xs" lay-event="auditList">审核记录</button>' +
'</div>';
return rowData;
}
}
]
],

View File

@ -25,8 +25,8 @@
<div class="layui-form-item">
<label class="layui-form-label">所属指标</label>
<div class="layui-input-block">
<input type="hidden" id="dutyIndexLibId" name="dutyIndexLibId">
<input type="text" id="dutyIndexLibName" name="dutyIndexLibName" class="layui-input" readonly="readonly">
<input type="hidden" id="indexLibId" name="indexLibId">
<input type="text" id="indexLibName" name="indexLibName" class="layui-input" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
@ -330,8 +330,8 @@
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/indexlib/get/{indexLibId}', [indexLibId]), {}, null, function(code, data) {
var dataFormData = {};
dataFormData['dutyIndexLibId'] = data.indexLibId;
dataFormData['dutyIndexLibName'] = data.indexLibName;
dataFormData['indexLibId'] = data.indexLibId;
dataFormData['indexLibName'] = data.indexLibName;
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initIndexGeneralFileUploadFile();

View File

@ -29,9 +29,6 @@
<input type="text" id="dutyIndexLibName" name="dutyIndexLibName" class="layui-input" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">上报标题</label>
<div class="layui-input-block">