在澳洋信息管理平台现有框架下开发新的界面,本次以“委外维修单位”维护界面为例,表中存储委外维修公司名称,删除采用逻辑删除而非物理删除。
创建数据库表
-- ITSM_MAINTENANCE_COM 委外维修单位表
create table ITSM_MAINTENANCE_COM(
MAINTENANCE_COM_ID VARCHAR2(32)PRIMARY KEY,-- 主键
MAINTENANCE_COM_NAME VARCHAR2(255 ),-- 委外维修单位名称
DEL_STATUS VARCHAR2(2), -- 删除状态码:1表示删除 0表示可用
CREATION_DATE VARCHAR2(32), -- 创建日期
CREATION_BY VARCHAR2(255), -- 创建人
LAST_UPDATE_DATE VARCHAR2(32), -- 更新日期
LAST_UPDATE_BY VARCHAR2(255) -- 更改人
);
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.MAINTENANCE_COM_ID IS '主键';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.MAINTENANCE_COM_NAME IS '委外维修单位名称';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.DEL_STATUS IS '删除状态码: 0为未删除,1为已删除';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.CREATION_DATE IS '创建日期';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.CREATION_BY IS '创建人';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.LAST_UPDATE_DATE IS '修改日期';
COMMENT ON COLUMN ITSM_MAINTENANCE_COM.LAST_UPDATE_BY IS '修改人';
代码生成器
登陆本地网址 http://localhost:9090/wxapp/main/index
进入前台页面:系统工具-->代码生成器-->正向生成
上级包名:itsm,处理类名:Maintenance,表前缀:ITSM_,
- 系统会将表前缀和Maintenance的大写进行拼接,作为要处理的表名ITSM_MAINTENANCE;
- 系统创建文件夹itsm-->maintenance内,再把controller、service放入其中,方便用户直接复制到Eclipse中,免去创建包名的操作,
- 在下面逐一添加表的字段名;
- 点击生成代码,会生成代码压缩包code.zip并下载下来。
- 将压缩包解压,并将controller、service、mybatis_mysql、jsp复制到对应目录中,
因为 Controller 是放在 wxapp 项目包中,
所以以 MaintenanceController 中的 list() 为例,对应网址是 http://localhost:9090/wxapp/maintenance/list.do
/wxapp/src/main/java/com/aoyang/wxapp/controller/itsm/maintenance/MaintenanceController.java
/wx-itsm-api/src/main/java/com/aoyang/wxapp/service/itsm/maintenance/MaintenanceManager.java
/wx-itsm-service/src/main/java/com/aoyang/wxapp/service/itsm/maintenance/MaintenanceService.java
/wxapp/src/main/resources/mybatis1/itsm/MaintenanceMapper.xml
/wxapp/src/main/webapp/WEB-INF/jsp/itsm/maintenance/maintenance_edit.jsp
/wxapp/src/main/webapp/WEB-INF/jsp/itsm/maintenance/maintenance_list.jsp
另外其中的数据库脚本,也是创建表的SQL语句
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `ITSM_MAINTENANCE`
-- ----------------------------
DROP TABLE IF EXISTS `ITSM_MAINTENANCE`;
CREATE TABLE `ITSM_MAINTENANCE` (
`MAINTENANCE_ID` varchar(100) NOT NULL,
`MAINTENANCE_COM_ID` varchar(32) DEFAULT NULL COMMENT '表ID',
`MAINTENANCE_COM_NAME` varchar(255) DEFAULT NULL COMMENT '委外维修单位名称',
`DEL_STATUS` varchar(2) DEFAULT NULL COMMENT '删除状态码',
`CREATION_DATE` varchar(32) DEFAULT NULL COMMENT '创建日期',
`CREATION_BY` varchar(255) DEFAULT NULL COMMENT '创建人',
`LAST_UPDATE_DATE` varchar(32) DEFAULT NULL COMMENT '修改日期',
`LAST_UPDATE_BY` varchar(255) DEFAULT NULL COMMENT '修改人',
PRIMARY KEY (`MAINTENANCE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建页面菜单
进入前台页面:系统管理-->菜单管理,在合适的菜单下点击新增菜单,
此案例选择在 ITSM-->基础配置 下创建新菜单,
填写菜单名称、主页面链接、序号,并选择“显示”,点击保存即可创建新菜单,
配置权限
前台页面:在角色(基础权限)菜单,对需要查看新菜单的角色勾选菜单权限。
之后退出管理员账号,登陆已经分配好菜单权限的角色即可查看。
登陆对应用户并完善代码
登陆已经分配权限的账号,可以看到前台界面,然后进行前端界面与后台的联调。
代码示例
/wxapp/src/main/java/com/aoyang/wxapp/controller/itsm/maintenance/MaintenanceController.java
/**
* Project Name: 澳洋信息系统微信管理平台
* Date:2019-09-18
* Copyright(c) 2016 All Rights Reserved
*/
package com.aoyang.wxapp.controller.itsm.maintenance;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.aoyang.wxapp.controller.BaseController;
import com.aoyang.wxapp.entity.Page;
import com.aoyang.wxapp.service.itsm.maintenance.MaintenanceManager;
import com.aoyang.wxapp.service.oastaff.OaStaffManager;
import com.aoyang.wxapp.service.oastaff.OaStaffService;
import com.aoyang.wxapp.util.AppUtil;
import com.aoyang.wxapp.util.DateUtil;
import com.aoyang.wxapp.util.Jurisdiction;
import com.aoyang.wxapp.util.ObjectExcelView;
import com.aoyang.wxapp.util.PageData;
/**
* 委外维修单位
*/
@Controller
@RequestMapping(value="/maintenance")
public class MaintenanceController extends BaseController {
String menuUrl = "maintenance/list.do"; //菜单地址(权限用)
@Resource(name="maintenanceService")
private MaintenanceManager maintenanceService;
@Resource(name="oaStaffService")
private OaStaffManager oaStaffService;
/**
* 保存
*
* @throws Exception
*/
@RequestMapping(value="/save")
public ModelAndView save() throws Exception{
if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
ModelAndView mv = this.getModelAndView();
PageData pd = this.getPageData();
pd.put("MAINTENANCE_COM_ID", this.get32UUID()); //主键
pd.put("CREATION_DATE", DateUtil.getTime());
pd.put("CREATION_BY", getCurrentUserId());
maintenanceService.save(pd);
mv.addObject("msg","success");
mv.setViewName("save_result");
return mv;
}
/**
* 删除.
* @param out
* @throws Exception
*/
@RequestMapping(value="/delete")
public void delete(PrintWriter out) throws Exception{
if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
PageData pd = this.getPageData();
pd.put("LAST_UPDATE_DATE",DateUtil.getTime());
pd.put("LAST_UPDATE_BY", getCurrentUserId());
maintenanceService.delete(pd);
out.write("success");
out.close();
}
/**
* 修改.
*
* @throws Exception
*/
@RequestMapping(value="/edit")
public ModelAndView edit() throws Exception{
if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
ModelAndView mv = this.getModelAndView();
PageData pd = this.getPageData();
pd.put("LAST_UPDATE_DATE", DateUtil.getTime());
pd.put("LAST_UPDATE_BY", getCurrentUserId());
maintenanceService.edit(pd);
mv.addObject("msg","success");
mv.setViewName("save_result");
return mv;
}
/**
* 列表.
*
* @param page
* @throws Exception
*/
@RequestMapping(value="/list")
public ModelAndView list(Page page) throws Exception{
//if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
ModelAndView mv = this.getModelAndView();
PageData pd = this.getPageData();
String keywords = pd.getString("keywords"); //关键词检索条件
if(!StringUtils.isEmpty(keywords)){
pd.put("keywords", keywords.trim());
}
page.setPd(pd);
List<PageData> varList = maintenanceService.list(page); //列出Maintenance列表
mv.setViewName("itsm/maintenance/maintenance_list");
mv.addObject("varList", varList);
mv.addObject("pd", pd);
mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
return mv;
}
/**
* 去新增页面.
*
* @param
* @throws Exception
*/
@RequestMapping(value="/goAdd")
public ModelAndView goAdd()throws Exception{
ModelAndView mv = this.getModelAndView();
PageData pd = this.getPageData();
mv.setViewName("itsm/maintenance/maintenance_add");
mv.addObject("msg", "save");
mv.addObject("pd", pd);
return mv;
}
/**
* 去修改页面.
*
* @param
* @throws Exception
*/
@RequestMapping(value="/goEdit")
public ModelAndView goEdit()throws Exception{
ModelAndView mv = this.getModelAndView();
PageData pd = this.getPageData();
pd = maintenanceService.findById(pd); //根据ID读取
String CREATION_BY_ID = (String)pd.get("CREATION_BY");
String CREATION_BY_NAME = (String) oaStaffService.personInfoById(CREATION_BY_ID).get("PERSONNAME");
String CREATION_BY = CREATION_BY_ID.concat(" "+CREATION_BY_NAME);
pd.put("CREATION_BY", CREATION_BY);
String LAST_UPDATE_BY_ID = (String)pd.get("LAST_UPDATE_BY");
if(!StringUtils.isEmpty(LAST_UPDATE_BY_ID)) {
String LAST_UPDATE_BY_NAME = (String) oaStaffService.personInfoById(LAST_UPDATE_BY_ID).get("PERSONNAME");
String LAST_UPDATE_BY = LAST_UPDATE_BY_ID.concat(" "+LAST_UPDATE_BY_NAME);
pd.put("LAST_UPDATE_BY",LAST_UPDATE_BY);
}
mv.setViewName("itsm/maintenance/maintenance_edit");
mv.addObject("msg", "edit");
mv.addObject("pd", pd);
return mv;
}
/**
* 批量删除.
* @param
* @throws Exception
*/
@RequestMapping(value="/deleteAll")
@ResponseBody
public Object deleteAll() throws Exception{
if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
PageData pd = this.getPageData();
Map<String,Object> map = new HashMap<String,Object>();
List<PageData> pdList = new ArrayList<PageData>();
String DATA_IDS = pd.getString("DATA_IDS");
if(!StringUtils.isEmpty(DATA_IDS)){
String ArrayDATA_IDS[] = DATA_IDS.split(",");
pd.put("ArrayDATA_IDS", ArrayDATA_IDS);
pd.put("LAST_UPDATE_DATE", DateUtil.getTime());
pd.put("LAST_UPDATE_BY", getCurrentUserId());
maintenanceService.deleteAll(pd);
pd.put("msg", "ok");
}else{
pd.put("msg", "no");
}
pdList.add(pd);
map.put("list", pdList);
return AppUtil.returnObject(pd, map);
}
/**
* 导出到excel.
*
* @param
* @throws Exception
*/
@RequestMapping(value="/excel")
public ModelAndView exportExcel() throws Exception{
if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
ModelAndView mv = new ModelAndView();
PageData pd = this.getPageData();
Map<String,Object> dataMap = new HashMap<String,Object>();
List<String> titles = new ArrayList<String>();
titles.add("表ID"); //1
titles.add("委外维修单位名称"); //2
titles.add("删除状态码"); //3
titles.add("创建日期"); //4
titles.add("创建人"); //5
titles.add("修改日期"); //6
titles.add("修改人"); //7
dataMap.put("titles", titles);
List<PageData> varOList = maintenanceService.listAll();
List<PageData> varList = new ArrayList<PageData>();
for(int i=0;i<varOList.size();i++){
PageData vpd = new PageData();
vpd.put("var1", varOList.get(i).getString("MAINTENANCE_COM_ID")); //1
vpd.put("var2", varOList.get(i).getString("MAINTENANCE_COM_NAME")); //2
vpd.put("var3", varOList.get(i).getString("DEL_STATUS")); //3
vpd.put("var4", varOList.get(i).getString("CREATION_DATE")); //4
vpd.put("var5", varOList.get(i).getString("CREATION_BY")); //5
vpd.put("var6", varOList.get(i).getString("LAST_UPDATE_DATE")); //6
vpd.put("var7", varOList.get(i).getString("LAST_UPDATE_BY")); //7
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv,dataMap);
return mv;
}
@InitBinder
public void initBinder(WebDataBinder binder){
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
}
}
/wx-itsm-api/src/main/java/com/aoyang/wxapp/service/itsm/maintenance/MaintenanceManager.java
/**
* Project Name: 澳洋信息系统微信管理平台
* Date:2019-09-18
* Copyright(c) 2016 All Rights Reserved
*/
package com.aoyang.wxapp.service.itsm.maintenance;
import java.util.List;
import com.aoyang.wxapp.entity.Page;
import com.aoyang.wxapp.util.PageData;
/**
* 委外维修单位接口.
*/
public interface MaintenanceManager{
/**
* 新增
* @param pd
* @throws Exception
*/
public void save(PageData pd)throws Exception;
/**删除
* @param pd
* @throws Exception
*/
public void delete(PageData pd)throws Exception;
/**修改
* @param pd
* @throws Exception
*/
public void edit(PageData pd)throws Exception;
/**
* 列表.
*
* @param page
* @throws Exception
*/
public List<PageData> list(Page page)throws Exception;
/**
* 列表(全部).
*
* @param pd
* @throws Exception
*/
public List<PageData> listAll()throws Exception;
/**
* 通过id获取数据.
*
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd)throws Exception;
/**
* 批量删除.
*
* @param ArrayDATA_IDS
* @throws Exception
*/
public void deleteAll(PageData pd)throws Exception;
}
/wx-itsm-service/src/main/java/com/aoyang/wxapp/service/itsm/maintenance/MaintenanceService.java
/**
* Project Name: 澳洋信息系统微信管理平台
* Date:2019-09-18
* Copyright(c) 2016 All Rights Reserved
*/
package com.aoyang.wxapp.service.itsm.maintenance.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.aoyang.wxapp.dao.DaoSupport;
import com.aoyang.wxapp.entity.Page;
import com.aoyang.wxapp.service.itsm.maintenance.MaintenanceManager;
import com.aoyang.wxapp.util.PageData;
/**
* 委外维修单位
*/
@Service("maintenanceService")
public class MaintenanceService implements MaintenanceManager{
@Resource(name = "daoSupport")
private DaoSupport dao;
/**
* 新增.
* @param pd
* @throws Exception
*/
public void save(PageData pd)throws Exception{
dao.save("MaintenanceMapper.save", pd);
}
/**
* 删除.
*
* @param pd
* @throws Exception
*/
public void delete(PageData pd)throws Exception{
dao.delete("MaintenanceMapper.delete", pd);
}
/**
* 修改.
*
* @param pd
* @throws Exception
*/
public void edit(PageData pd)throws Exception{
dao.update("MaintenanceMapper.edit", pd);
}
/**
* 列表.
*
* @param page
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<PageData> list(Page page)throws Exception{
return (List<PageData>)dao.findForList("MaintenanceMapper.datalistPage", page);
}
/**
* 列表(全部).
* @param pd
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<PageData> listAll()throws Exception{
return (List<PageData>)dao.findForList("MaintenanceMapper.listAll", null);
}
/**
* 通过id获取数据.
*
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd)throws Exception{
return (PageData)dao.findForObject("MaintenanceMapper.findById", pd);
}
/**
* 批量删除.
*
* @param ArrayDATA_IDS
* @throws Exception
*/
public void deleteAll(PageData pd)throws Exception{
dao.delete("MaintenanceMapper.deleteAll", pd);
}
}
/wxapp/src/main/resources/mybatis1/itsm/MaintenanceMapper.xml
<?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="MaintenanceMapper">
<!--表名 -->
<sql id="tableName">
"ITSM_MAINTENANCE_COM"
</sql>
<!-- 字段 -->
<sql id="Field">
"MAINTENANCE_COM_ID",
"MAINTENANCE_COM_NAME",
"DEL_STATUS",
"CREATION_DATE",
"CREATION_BY",
"LAST_UPDATE_DATE",
"LAST_UPDATE_BY"
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{MAINTENANCE_COM_ID},
#{MAINTENANCE_COM_NAME},
#{DEL_STATUS},
#{CREATION_DATE},
#{CREATION_BY},
#{LAST_UPDATE_DATE},
#{LAST_UPDATE_BY}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
MAINTENANCE_COM_ID,
MAINTENANCE_COM_NAME,
DEL_STATUS,
CREATION_DATE,
CREATION_BY,
LAST_UPDATE_DATE,
LAST_UPDATE_BY
) values (
#{MAINTENANCE_COM_ID},
#{MAINTENANCE_COM_NAME},
'0',
#{CREATION_DATE},
#{CREATION_BY},
#{CREATION_DATE},
#{CREATION_BY}
)
</insert>
<!-- 删除,采用逻辑删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
"DEL_STATUS" = '1',
"LAST_UPDATE_DATE" = #{LAST_UPDATE_DATE},
"LAST_UPDATE_BY" = #{LAST_UPDATE_BY}
where
"MAINTENANCE_COM_ID" = #{MAINTENANCE_COM_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
"MAINTENANCE_COM_NAME" = #{MAINTENANCE_COM_NAME},
"LAST_UPDATE_DATE" = #{LAST_UPDATE_DATE},
"LAST_UPDATE_BY" = #{LAST_UPDATE_BY}
where
"MAINTENANCE_COM_ID" = #{MAINTENANCE_COM_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
where
"MAINTENANCE_COM_ID" = #{MAINTENANCE_COM_ID}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
where DEL_STATUS = '0'
<if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
and
(
<!-- 根据需求自己加检索条件
字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
or
字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
-->
)
</if>
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
where
DEL_STATUS = '0'
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="pd">
update
<include refid="tableName"></include>
set
"DEL_STATUS" = '1',
"LAST_UPDATE_DATE" = #{LAST_UPDATE_DATE},
"LAST_UPDATE_BY" = #{LAST_UPDATE_BY}
where
"MAINTENANCE_COM_ID" in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
</mapper>
/wxapp/src/main/webapp/WEB-INF/jsp/itsm/maintenance/maintenance_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<base href="<%=basePath%>">
<!-- 下拉框 -->
<link rel="stylesheet" href="static/ace/css/chosen.css" />
<!-- jsp文件头和头部 -->
<%@ include file="../../system/index/top.jsp"%>
<!-- 日期框 -->
<link rel="stylesheet" href="static/ace/css/datepicker.css" />
</head>
<body class="no-skin">
<!-- /section:basics/navbar.layout -->
<div class="main-container" id="main-container">
<!-- /section:basics/sidebar -->
<div class="main-content">
<div class="main-content-inner">
<div class="page-content">
<div class="row">
<div class="col-xs-12">
<!-- 检索 -->
<form action="maintenance/list.do" method="post" name="Form" id="Form">
<table style="margin-top:5px;">
<tr>
<td>
<div class="nav-search">
<span class="input-icon">
<input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
<i class="ace-icon fa fa-search nav-search-icon"></i>
</span>
</div>
</td>
<td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
<td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
<td style="vertical-align:top;padding-left:2px;">
<select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
<option value=""></option>
<option value="">全部</option>
<option value="">1</option>
<option value="">2</option>
</select>
</td>
<c:if test="${QX.cha == 1 }">
<td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
</c:if>
<c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
</tr>
</table>
<!-- 检索 -->
<table id="simple-table" class="table table-striped table-bordered table-hover" style="margin-top:5px;">
<thead>
<tr>
<th class="center" style="width:35px;">
<label class="pos-rel"><input type="checkbox" class="ace" id="zcheckbox" /><span class="lbl"></span></label>
</th>
<th class="center" style="width:50px;">序号</th>
<th class="center">委外维修单位名称</th>
<th class="center">创建日期</th>
<th class="center">创建人</th>
<th class="center">修改日期</th>
<th class="center">修改人</th>
<th class="center">操作</th>
</tr>
</thead>
<tbody>
<!-- 开始循环 -->
<c:choose>
<c:when test="${not empty varList}">
<%-- <c:if test="${QX.cha == 1 }"> --%>
<c:forEach items="${varList}" var="var" varStatus="vs">
<tr>
<td class='center'>
<label class="pos-rel"><input type='checkbox' name='ids' value="${var.MAINTENANCE_COM_ID}" class="ace" /><span class="lbl"></span></label>
</td>
<td class='center' style="width: 30px;">${vs.index+1}</td>
<td class='center'>${var.MAINTENANCE_COM_NAME}</td>
<td class='center'>${var.CREATION_DATE}</td>
<td class='center'>${var.CREATION_BY}</td>
<td class='center'>${var.LAST_UPDATE_DATE}</td>
<td class='center'>${var.LAST_UPDATE_BY}</td>
<td class="center">
<%-- <c:if test="${QX.edit != 1 && QX.del != 1 }"> --%>
<!-- <span class="label label-large label-grey arrowed-in-right arrowed-in"><i class="ace-icon fa fa-lock" title="无权限"></i></span> -->
<%-- </c:if> --%>
<div class="hidden-sm hidden-xs btn-group">
<%-- <c:if test="${QX.edit == 1 }"> --%>
<a class="btn btn-xs btn-success" title="编辑" onclick="edit('${var.MAINTENANCE_COM_ID}');">
<i class="ace-icon fa fa-pencil-square-o bigger-120" title="编辑"></i>
</a>
<%-- </c:if> --%>
<%-- <c:if test="${QX.del == 1 }"> --%>
<a class="btn btn-xs btn-danger" onclick="del('${var.MAINTENANCE_COM_ID}');">
<i class="ace-icon fa fa-trash-o bigger-120" title="删除"></i>
</a>
<%-- </c:if> --%>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-cog icon-only bigger-110"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<%-- <c:if test="${QX.edit == 1 }"> --%>
<li>
<a style="cursor:pointer;" onclick="edit('${var.MAINTENANCE_COM_ID}');" class="tooltip-success" data-rel="tooltip" title="修改">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<%-- </c:if> --%>
<%-- <c:if test="${QX.del == 1 }"> --%>
<li>
<a style="cursor:pointer;" onclick="del('${var.MAINTENANCE_COM_ID}');" class="tooltip-error" data-rel="tooltip" title="删除">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
<%-- </c:if> --%>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
<%-- </c:if> --%>
<c:if test="${QX.cha == 0 }">
<tr>
<td colspan="100" class="center">您无权查看</td>
</tr>
</c:if>
</c:when>
<c:otherwise>
<tr class="main_info">
<td colspan="100" class="center" >没有相关数据</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
<div class="page-header position-relative">
<table style="width:100%;">
<tr>
<td style="vertical-align:top;">
<%-- <c:if test="${QX.add == 1 }"> --%>
<a class="btn btn-mini btn-success" onclick="add();">新增</a>
<%-- </c:if> --%>
<%-- <c:if test="${QX.del == 1 }"> --%>
<a class="btn btn-mini btn-danger" onclick="makeAll('确定要删除选中的数据吗?');" title="批量删除" ><i class='ace-icon fa fa-trash-o bigger-120'></i></a>
<%-- </c:if> --%>
</td>
<td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div></td>
</tr>
</table>
</div>
</form>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!-- /.page-content -->
</div>
</div>
<!-- /.main-content -->
<!-- 返回顶部 -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div>
<!-- /.main-container -->
<!-- basic scripts -->
<!-- 页面底部js¨ -->
<%@ include file="../../system/index/foot.jsp"%>
<!-- 删除时确认窗口 -->
<script src="static/ace/js/bootbox.js"></script>
<!-- ace scripts -->
<script src="static/ace/js/ace/ace.js"></script>
<!-- 下拉框 -->
<script src="static/ace/js/chosen.jquery.js"></script>
<!-- 日期框 -->
<script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
<!--提示框-->
<script type="text/javascript" src="static/js/jquery.tips.js"></script>
<script type="text/javascript">
$(top.hangge());//关闭加载状态
//检索
function tosearch(){
top.jzts();
$("#Form").submit();
}
$(function() {
//日期框
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
});
//下拉框
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
});
}).trigger('resize.chosen');
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
});
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
//复选框全选控制
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
});
//新增
function add(){
top.jzts();
var diag = new top.Dialog();
diag.Drag=true;
diag.Title ="新增";
diag.URL = '<%=basePath%>maintenance/goAdd.do';
diag.Width = 450;
diag.Height = 355;
diag.Modal = true; //有无遮罩窗口
diag. ShowMaxButton = true; //最大化按钮
diag.ShowMinButton = true; //最小化按钮
diag.CancelEvent = function(){ //关闭事件
if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
if('${page.currentPage}' == '0'){
top.jzts();
setTimeout("self.location=self.location",100);
}else{
nextPage(${page.currentPage});
}
}
diag.close();
};
diag.show();
}
//删除
function del(Id){
bootbox.confirm("确定要删除吗?", function(result) {
if(result) {
top.jzts();
var url = "<%=basePath%>maintenance/delete.do?MAINTENANCE_COM_ID="+Id;
$.get(url,function(data){
nextPage(${page.currentPage});
});
}
});
}
//修改
function edit(Id){
top.jzts();
var diag = new top.Dialog();
diag.Drag=true;
diag.Title ="编辑";
diag.URL = '<%=basePath%>maintenance/goEdit.do?MAINTENANCE_COM_ID='+Id;
diag.Width = 450;
diag.Height = 355;
diag.Modal = true; //有无遮罩窗口
diag. ShowMaxButton = true; //最大化按钮
diag.ShowMinButton = true; //最小化按钮
diag.CancelEvent = function(){ //关闭事件
if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
nextPage(${page.currentPage});
}
diag.close();
};
diag.show();
}
//批量操作
function makeAll(msg){
bootbox.confirm(msg, function(result) {
if(result) {
var str = '';
for(var i=0;i < document.getElementsByName('ids').length;i++){
if(document.getElementsByName('ids')[i].checked){
if(str=='') str += document.getElementsByName('ids')[i].value;
else str += ',' + document.getElementsByName('ids')[i].value;
}
}
if(str==''){
bootbox.dialog({
message: "<span class='bigger-110'>您没有选择任何内容!</span>",
buttons:
{ "button":{ "label":"确定", "className":"btn-sm btn-success"}}
});
$("#zcheckbox").tips({
side:1,
msg:'点这里全选',
bg:'#AE81FF',
time:8
});
return;
}else{
if(msg == '确定要删除选中的数据吗?'){
top.jzts();
$.ajax({
type: "POST",
url: '<%=basePath%>maintenance/deleteAll.do?',
data: {DATA_IDS:str},
dataType:'json',
//beforeSend: validateData,
cache: false,
success: function(data){
$.each(data.list, function(i, list){
nextPage(${page.currentPage});
});
}
});
}
}
}
});
};
//导出excel
function toExcel(){
window.location.href='<%=basePath%>maintenance/excel.do';
}
</script>
</body>
</html>
/wxapp/src/main/webapp/WEB-INF/jsp/itsm/maintenance/maintenance_edit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<base href="<%=basePath%>">
<!-- 下拉框 -->
<link rel="stylesheet" href="static/ace/css/chosen.css" />
<!-- jsp文件头和头部 -->
<%@ include file="../../system/index/top.jsp"%>
<!-- 日期框 -->
<link rel="stylesheet" href="static/ace/css/datepicker.css" />
</head>
<body class="no-skin">
<!-- /section:basics/navbar.layout -->
<div class="main-container" id="main-container">
<!-- /section:basics/sidebar -->
<div class="main-content">
<div class="main-content-inner">
<div class="page-content">
<div class="row">
<div class="col-xs-12">
<form action="maintenance/${msg }.do" name="Form" id="Form" method="post">
<input type="hidden" name="MAINTENANCE_COM_ID" id="MAINTENANCE_COM_ID" value="${pd.MAINTENANCE_COM_ID}"/>
<div id="zhongxin" style="padding-top: 13px;">
<table id="table_report" class="table table-striped table-bordered table-hover">
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">表ID:</td>
<td><input type="text" readonly="readonly" name="MAINTENANCE_COM_ID" id="MAINTENANCE_COM_ID" value="${pd.MAINTENANCE_COM_ID}" maxlength="32" placeholder="这里输入表ID" title="表ID" style="width:98%;"/></td>
</tr>
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">委外维修单位名称:</td>
<td><input type="text" name="MAINTENANCE_COM_NAME" id="MAINTENANCE_COM_NAME" value="${pd.MAINTENANCE_COM_NAME}" maxlength="255" placeholder="这里输入委外维修单位名称" title="委外维修单位名称" style="width:98%;"/></td>
</tr>
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">创建日期:</td>
<td><input type="text" readonly="readonly" name="CREATION_DATE" id="CREATION_DATE" value="${pd.CREATION_DATE}" maxlength="32" placeholder="这里输入创建日期" title="创建日期" style="width:98%;"/></td>
</tr>
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">创建人:</td>
<td><input type="text" readonly="readonly" name="CREATION_BY" id="CREATION_BY" value="${pd.CREATION_BY}" maxlength="255" placeholder="这里输入创建人" title="创建人" style="width:98%;"/></td>
</tr>
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">修改日期:</td>
<td><input type="text" readonly="readonly" name="LAST_UPDATE_DATE" id="LAST_UPDATE_DATE" value="${pd.LAST_UPDATE_DATE}" maxlength="32" placeholder="无" title="修改日期" style="width:98%;"/></td>
</tr>
<tr>
<td style="width:75px;text-align: right;padding-top: 13px;">修改人:</td>
<td><input type="text" readonly="readonly" name="LAST_UPDATE_BY" id="LAST_UPDATE_BY" value="${pd.LAST_UPDATE_BY}" maxlength="255" placeholder="无" title="修改人" style="width:98%;"/></td>
</tr>
<tr>
<td style="text-align: center;" colspan="10">
<a class="btn btn-mini btn-primary" onclick="save();">保存</a>
<a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
</td>
</tr>
</table>
</div>
<div id="zhongxin2" class="center" style="display:none"><br/><br/><br/><br/><br/><img src="static/images/jiazai.gif" /><br/><h4 class="lighter block green">提交中...</h4></div>
</form>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!-- /.page-content -->
</div>
</div>
<!-- /.main-content -->
</div>
<!-- /.main-container -->
<!-- 页面底部js¨ -->
<%@ include file="../../system/index/foot.jsp"%>
<!-- 下拉框 -->
<script src="static/ace/js/chosen.jquery.js"></script>
<!-- 日期框 -->
<script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
<!--提示框-->
<script type="text/javascript" src="static/js/jquery.tips.js"></script>
<script type="text/javascript">
$(top.hangge());
//保存
function save(){
if($("#MAINTENANCE_COM_NAME").val()==""){
$("#MAINTENANCE_COM_NAME").tips({
side:3,
msg:'请输入委外维修单位名称',
bg:'#AE81FF',
time:2
});
$("#MAINTENANCE_COM_NAME").focus();
return false;
}
$("#Form").submit();
$("#zhongxin").hide();
$("#zhongxin2").show();
}
$(function() {
//日期框
$('.date-picker').datepicker({autoclose: true,todayHighlight: true});
});
</script>
</body>
</html>