Merge branch 'master' of e.coding.net:tsteam/zhonglijianduyulianggezhairen/twoduty

This commit is contained in:
wans 2021-04-15 14:57:56 +08:00
commit 097d0326ce
17 changed files with 645 additions and 140 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,16 @@ 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.getCurrentUser().getUserName());
mv.addObject("userUserName",securityComponent.getCurrentUser().getUserUsername());
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,6 +28,12 @@ public class IndexGeneralDTO {
private String indexGeneralFile;
@ApiModelProperty(name = "indexGeneralImage", value = "上报图片")
private String indexGeneralImage;
@ApiModelProperty(name = "auditStatus", value = "审核状态")
private Integer auditStatus;
@ApiModelProperty(name = "gmtCreate", value = "创建时间")
private String gmtCreate;
@ApiModelProperty(name = "creatorName", value = "创建人")
private String creatorName;
public String getIndexGeneralId() {
@ -87,6 +93,27 @@ public class IndexGeneralDTO {
}
public Integer getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(Integer auditStatus) {
this.auditStatus = auditStatus;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
}

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

@ -5,10 +5,14 @@
<resultMap id="indexGeneralDTO" type="com.tenlion.twoduty.pojo.dtos.indexgeneral.IndexGeneralDTO">
<result column="index_general_id" property="indexGeneralId"/>
<result column="index_lib_id" property="indexLibId"/>
<result column="index_lib_name" property="indexLibName"/>
<result column="index_general_title" property="indexGeneralTitle"/>
<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="creator_name" property="creatorName"/>
<result column="gmt_create" property="gmtCreate"/>
</resultMap>
<resultMap id="indexGeneralBO" type="com.tenlion.twoduty.pojo.bos.indexgeneral.IndexGeneralBO">
@ -18,6 +22,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 +37,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 +54,7 @@
index_general_content,
index_general_file,
index_general_image,
audit_status,
gmt_create,
creator,
gmt_modified,
@ -60,6 +67,7 @@
#{indexGeneralContent},
#{indexGeneralFile},
#{indexGeneralImage},
#{auditStatus},
#{gmtCreate},
#{creator},
#{gmtModified},
@ -111,6 +119,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,9 +141,15 @@
t1.index_general_content,
t1.index_general_file,
t1.index_general_image,
t1.index_general_id
t1.audit_status,
t1.index_general_id,
t1.gmt_create,
t1.creator,
t2.index_lib_name
FROM
duty_index_general t1
LEFT JOIN duty_index_lib t2
ON t1.index_lib_id = t2.index_lib_id
WHERE
t1.is_delete = 0
<if test="indexGeneralId != null and indexGeneralId != ''">
@ -150,6 +167,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 +192,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,15 +216,20 @@
t1.index_general_title,
t1.index_general_content,
t1.index_general_file,
t1.index_general_image
t1.index_general_image,
t1.audit_status,
t1.gmt_create,
t1.creator,
t2.index_lib_name
FROM
duty_index_general t1
LEFT JOIN duty_index_lib t2
ON t1.index_lib_id = t2.index_lib_id
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
<!-- 这里添加其他条件 -->
t1.id LIKE CONCAT('%', #{keywords}, '%')
t1.index_general_title LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="startTime != null and startTime != ''">
@ -226,6 +250,10 @@
<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>
ORDER BY t1.gmt_create DESC
</select>
<!-- 列表 -->
@ -237,6 +265,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 +307,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

@ -26,25 +26,20 @@
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
</div>
<div class="layui-inline search-item layui-form">
<select name="auditStatus" id="auditStatus">
<option value="">全部</option>
<option value="0">待审核</option>
<option value="1">审核通过</option>
<option value="2">归档</option>
<option value="-1" >审核不通过</option>
</select>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</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 +60,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,
@ -84,9 +81,9 @@
},
cols: [
[
{type:'checkbox', fixed: 'left'},
/*{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: 'indexLibName', width: 250, title: '指标名称', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -95,7 +92,7 @@
return rowData;
}
},
{field: 'indexGeneralTitle', 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 == '') {
@ -104,7 +101,7 @@
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 +143,55 @@
}
return downloadFile;
}
},
{field: 'creatorName', width: 100, title: '上报人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'gmtCreate', width: 200, title: '上报时间', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{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 auditStatus = row['auditStatus'];
var rowData = '<div class="layui-btn-group">';
rowData +='<button type="button" class="layui-btn layui-btn-xs" lay-event="show">查看</button>';
if (auditStatus === -1) {
rowData +='<button type="button" class="layui-btn layui-btn-xs" lay-event="update">编辑</button>';
}
rowData +='<button type="button" class="layui-btn layui-btn-xs" lay-event="audithistory">审核记录</button>'
rowData +='</div>';
return rowData;
}
}
]
],
@ -163,11 +209,12 @@
// 重载表格
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, []),
url: top.restAjax.path(tableUrl, [indexLibId]),
where: {
keywords: $('#keywords').val(),
startTime: $('#startTime').val(),
endTime: $('#endTime').val()
endTime: $('#endTime').val(),
auditStatus: $('#auditStatus').val()
},
page: {
curr: currentPage
@ -274,6 +321,68 @@
}
}
});
table.on('tool(dataTable)', function(obj) {
var layEvent = obj.event;
var data = obj.data;
if(layEvent === 'show') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/indexGeneral/show.html?indexGeneralId={indexGeneralId}', [data.indexGeneralId]),
end: function() {
reloadTable();
}
});
} else if(layEvent === 'update') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/indexgeneral/update.html?indexGeneralId={indexGeneralId}', [data.indexGeneralId]),
end: function() {
reloadTable();
}
});
} else if (layEvent === 'audithistory') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('', [data.indexGeneralId]),
end: function() {
reloadTable();
}
});
}
// else if(layEvent === 'removeEvent') {
// if(checkDatas.length === 0) {
// top.dialog.msg(top.dataMessage.table.selectDelete);
// } else {
// var ids = '';
// for(var i = 0, item; item = checkDatas[i++];) {
// if(i > 1) {
// ids += '_';
// }
// ids += item['indexGeneralId'];
// }
// removeData(ids);
// }
// }
});
});
</script>
</body>

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

@ -0,0 +1,341 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">上级列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>查看内容</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">所属指标</label>
<div class="layui-input-block">
<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">
<label class="layui-form-label">上报标题</label>
<div class="layui-input-block">
<input type="text" id="indexGeneralTitle" name="indexGeneralTitle" class="layui-input" value="" placeholder="请输入上报标题" maxlength="255" readonly="readonly">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">上报正文</label>
<div class="layui-input-block">
<textarea id="indexGeneralContent" name="indexGeneralContent" class="layui-textarea" placeholder="请输入上报正文" readonly="readonly"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">上报文件</label>
<div class="layui-input-block">
<input type="hidden" id="indexGeneralFile" name="indexGeneralFile">
<div class="layui-btn-container" id="indexGeneralFileFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="indexGeneralFileFileDownload" type="text/html">
{{# var fileName = 'indexGeneralFile'; }}
{{# if(d[fileName] != '') { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<span class="layui-btn-group">
<div class="upload-file-box">
<a class="upload-file-a" href="route/file/download/false/{{item.fileId}}" title="{{item.fileName}} - 点击下载">
{{# if(item.fileType == 'doc' || item.fileType == 'docx') { }}
<img src="assets/images/filetype/word.png"/>
{{# } else if(item.fileType == 'xls' || item.fileType == 'xlsx') { }}
<img src="assets/images/filetype/excel.png"/>
{{# } else if(item.fileType == 'ppt' || item.fileType == 'pptx') { }}
<img src="assets/images/filetype/ppt.png"/>
{{# } else if(item.fileType == 'apk') { }}
<img src="assets/images/filetype/apk.png"/>
{{# } else if(item.fileType == 'pdf') { }}
<img src="assets/images/filetype/pdf.png"/>
{{# } else if(item.fileType == 'rar') { }}
<img src="assets/images/filetype/rar.png"/>
{{# } else if(item.fileType == 'zip') { }}
<img src="assets/images/filetype/zip.png"/>
{{# } else if(item.fileType == 'txt') { }}
<img src="assets/images/filetype/txt.png"/>
{{# } else { }}
<img src="assets/images/filetype/file.png"/>
{{# } }}
</a>
<span class="upload-file-title">{{item.fileName}}</span>
<!--<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-file" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="indexGeneralFileRemoveFile">-->
<!--<i class="fa fa-trash-o"></i>-->
<!--</a>-->
</div>
</span>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 9) { }}
<!--<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">-->
<!--<a href="javascript:void(0);" lay-form-button data-explain="上报文件" data-name="indexGeneralFile" lay-filter="indexGeneralFileUploadFile">-->
<!--<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>-->
<!--</a>-->
<!--</div>-->
{{# } }}
</script>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">上报图片</label>
<div class="layui-input-block">
<input type="hidden" id="indexGeneralImage" name="indexGeneralImage">
<div class="layui-btn-container" id="indexGeneralImageFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="indexGeneralImageFileDownload" type="text/html">
{{# var fileName = 'indexGeneralImage'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<!--<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="indexGeneralImageRemoveFile">-->
<!--<i class="fa fa-trash-o"></i>-->
<!--</a>-->
</div>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 9) { }}
<!--<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">-->
<!--<a href="javascript:void(0);" lay-form-button data-explain="上报图片" data-name="indexGeneralImage" lay-filter="indexGeneralImageUploadFile">-->
<!--<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>-->
<!--</a>-->
<!--</div>-->
{{# } }}
</script>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var indexGeneralId = top.restAjax.params(window.location.href).indexGeneralId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化上报文件文件上传
function initIndexGeneralFileUploadFile() {
var files = $('#indexGeneralFile').val();
initFileList('indexGeneralFile', files);
form.on('button(indexGeneralFileUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'file',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function() {});
}
}
});
});
form.on('button(indexGeneralFileRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files);
});
}
// 初始化上报图片图片上传
function initIndexGeneralImageUploadFile() {
var files = $('#indexGeneralImage').val();
initFileList('indexGeneralImage', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
viewerObj[fileName] = viewer;
});
form.on('button(indexGeneralImageUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
}
}
});
});
form.on('button(indexGeneralImageRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
});
}
// 初始化内容
function initData() {
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/indexgeneral/get/{indexGeneralId}', [indexGeneralId]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initIndexGeneralFileUploadFile();
initIndexGeneralImageUploadFile();
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
initData();
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -25,13 +25,10 @@
<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">
<label class="layui-form-label">上报标题</label>
<div class="layui-input-block">
@ -125,12 +122,6 @@
</script>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="text" id="gmtCreate" name="gmtCreate" class="layui-input" value="" placeholder="请选择" lay-verify="required" readonly style="cursor: pointer;">
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">