@@ -36,7 +36,6 @@ | |||||
<!-- 依赖声明 --> | <!-- 依赖声明 --> | ||||
<dependencyManagement> | <dependencyManagement> | ||||
<dependencies> | <dependencies> | ||||
<!-- SpringFramework的依赖配置--> | <!-- SpringFramework的依赖配置--> | ||||
<dependency> | <dependency> | ||||
<groupId>org.springframework</groupId> | <groupId>org.springframework</groupId> | ||||
@@ -118,19 +117,6 @@ | |||||
<version>${oshi.version}</version> | <version>${oshi.version}</version> | ||||
</dependency> | </dependency> | ||||
<!-- Swagger3依赖 --> | |||||
<dependency> | |||||
<groupId>io.springfox</groupId> | |||||
<artifactId>springfox-boot-starter</artifactId> | |||||
<version>${swagger.version}</version> | |||||
<exclusions> | |||||
<exclusion> | |||||
<groupId>io.swagger</groupId> | |||||
<artifactId>swagger-models</artifactId> | |||||
</exclusion> | |||||
</exclusions> | |||||
</dependency> | |||||
<!-- io常用工具类 --> | <!-- io常用工具类 --> | ||||
<dependency> | <dependency> | ||||
<groupId>commons-io</groupId> | <groupId>commons-io</groupId> | ||||
@@ -8,7 +8,7 @@ | |||||
<version>4.7.9</version> | <version>4.7.9</version> | ||||
</parent> | </parent> | ||||
<modelVersion>4.0.0</modelVersion> | <modelVersion>4.0.0</modelVersion> | ||||
<packaging>jar</packaging> | |||||
<packaging>war</packaging> | |||||
<artifactId>rwk-admin</artifactId> | <artifactId>rwk-admin</artifactId> | ||||
<description> | <description> | ||||
@@ -31,10 +31,10 @@ | |||||
</dependency> | </dependency> | ||||
<!-- swagger3--> | <!-- swagger3--> | ||||
<dependency> | |||||
<groupId>io.springfox</groupId> | |||||
<artifactId>springfox-boot-starter</artifactId> | |||||
</dependency> | |||||
<!-- <dependency>--> | |||||
<!-- <groupId>io.springfox</groupId>--> | |||||
<!-- <artifactId>springfox-boot-starter</artifactId>--> | |||||
<!-- </dependency>--> | |||||
<!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --> | <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --> | ||||
<dependency> | <dependency> | ||||
@@ -81,11 +81,6 @@ | |||||
<scope>test</scope> | <scope>test</scope> | ||||
<version>2.5.0</version> | <version>2.5.0</version> | ||||
</dependency> | </dependency> | ||||
<dependency> | |||||
<groupId>com.h2database</groupId> | |||||
<artifactId>h2</artifactId> | |||||
<scope>test</scope> | |||||
</dependency> | |||||
<dependency> | <dependency> | ||||
<groupId>org.junit.vintage</groupId> | <groupId>org.junit.vintage</groupId> | ||||
@@ -8,8 +8,7 @@ import com.rwk.common.core.domain.Ztree; | |||||
import com.rwk.common.core.domain.entity.SysDept; | import com.rwk.common.core.domain.entity.SysDept; | ||||
import com.rwk.common.core.domain.entity.SysUser; | import com.rwk.common.core.domain.entity.SysUser; | ||||
import com.rwk.common.utils.ShiroUtils; | import com.rwk.common.utils.ShiroUtils; | ||||
import com.rwk.system.domain.RwkAddressGroup; | |||||
import com.rwk.system.domain.RwkBookGroup; | |||||
import com.rwk.system.domain.*; | |||||
import com.rwk.system.service.IRwkAddressGroupService; | import com.rwk.system.service.IRwkAddressGroupService; | ||||
import com.rwk.system.service.IRwkBookGroupService; | import com.rwk.system.service.IRwkBookGroupService; | ||||
import org.apache.shiro.authz.annotation.RequiresPermissions; | import org.apache.shiro.authz.annotation.RequiresPermissions; | ||||
@@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.ResponseBody; | import org.springframework.web.bind.annotation.ResponseBody; | ||||
import com.rwk.common.annotation.Log; | import com.rwk.common.annotation.Log; | ||||
import com.rwk.common.enums.BusinessType; | import com.rwk.common.enums.BusinessType; | ||||
import com.rwk.system.domain.RwkAddressBook; | |||||
import com.rwk.system.service.IRwkAddressBookService; | import com.rwk.system.service.IRwkAddressBookService; | ||||
import com.rwk.common.core.controller.BaseController; | import com.rwk.common.core.controller.BaseController; | ||||
import com.rwk.common.core.domain.AjaxResult; | import com.rwk.common.core.domain.AjaxResult; | ||||
@@ -184,20 +182,21 @@ public class RwkAddressBookController extends BaseController | |||||
*/ | */ | ||||
@PostMapping("/address/move") | @PostMapping("/address/move") | ||||
@ResponseBody | @ResponseBody | ||||
public AjaxResult moveSave(String addressIds, String byGroupId,String groupIds) | |||||
public AjaxResult moveSave(RwkBookGroupVo vo) | |||||
{ | { | ||||
String[] addressIdArray = addressIds.split(","); | |||||
String[] groupIdArray = groupIds.split(","); | |||||
String[] addressIdArray = vo.getAddressIds().split(","); | |||||
String[] groupIdArray = vo.getGroupIds().split(","); | |||||
List<RwkBookGroup> list=new ArrayList<>(); | List<RwkBookGroup> list=new ArrayList<>(); | ||||
for (int i = 0; i < addressIdArray.length; i++){ | for (int i = 0; i < addressIdArray.length; i++){ | ||||
for (int j = 0; j < groupIdArray.length; j++){ | for (int j = 0; j < groupIdArray.length; j++){ | ||||
RwkBookGroup rbg= new RwkBookGroup(); | RwkBookGroup rbg= new RwkBookGroup(); | ||||
rbg.setBookId(Long.valueOf(addressIdArray[i])); | rbg.setBookId(Long.valueOf(addressIdArray[i])); | ||||
rbg.setGroupId(Long.valueOf(groupIdArray[j])); | rbg.setGroupId(Long.valueOf(groupIdArray[j])); | ||||
rbg.setByGroupId(Long.valueOf(vo.getByGroupId())); | |||||
list.add(rbg); | list.add(rbg); | ||||
} | } | ||||
} | } | ||||
return toAjax(rwkBookGroupService.insertRwkBookGroupList(list)); | |||||
return toAjax(rwkBookGroupService.updateRwkBookGroupList(list)); | |||||
} | } | ||||
/** | /** | ||||
@@ -244,7 +243,7 @@ public class RwkAddressBookController extends BaseController | |||||
mmap.put("groups", rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName())); | mmap.put("groups", rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName())); | ||||
mmap.put("addressIds", ids); | mmap.put("addressIds", ids); | ||||
mmap.put("byGroupId", byGroupId); | mmap.put("byGroupId", byGroupId); | ||||
return prefix + "/groupTree"; | |||||
return prefix + "/groupTreeMove"; | |||||
} | } | ||||
@@ -1,67 +1,67 @@ | |||||
package com.rwk.web.core.config; | |||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.context.annotation.Bean; | |||||
import org.springframework.context.annotation.Configuration; | |||||
import com.rwk.common.config.RuoYiConfig; | |||||
import io.swagger.annotations.ApiOperation; | |||||
import springfox.documentation.builders.ApiInfoBuilder; | |||||
import springfox.documentation.builders.PathSelectors; | |||||
import springfox.documentation.builders.RequestHandlerSelectors; | |||||
import springfox.documentation.service.ApiInfo; | |||||
import springfox.documentation.service.Contact; | |||||
import springfox.documentation.spi.DocumentationType; | |||||
import springfox.documentation.spring.web.plugins.Docket; | |||||
/** | |||||
* Swagger2的接口配置 | |||||
* | |||||
* @author ruoyi | |||||
*/ | |||||
@Configuration | |||||
public class SwaggerConfig | |||||
{ | |||||
/** 是否开启swagger */ | |||||
@Value("${swagger.enabled}") | |||||
private boolean enabled; | |||||
/** | |||||
* 创建API | |||||
*/ | |||||
@Bean | |||||
public Docket createRestApi() | |||||
{ | |||||
return new Docket(DocumentationType.OAS_30) | |||||
// 是否启用Swagger | |||||
.enable(enabled) | |||||
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) | |||||
.apiInfo(apiInfo()) | |||||
// 设置哪些接口暴露给Swagger展示 | |||||
.select() | |||||
// 扫描所有有注解的api,用这种方式更灵活 | |||||
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) | |||||
// 扫描指定包中的swagger注解 | |||||
//.apis(RequestHandlerSelectors.basePackage("com.rwk.project.tool.swagger")) | |||||
// 扫描所有 .apis(RequestHandlerSelectors.any()) | |||||
.paths(PathSelectors.any()) | |||||
.build(); | |||||
} | |||||
/** | |||||
* 添加摘要信息 | |||||
*/ | |||||
private ApiInfo apiInfo() | |||||
{ | |||||
// 用ApiInfoBuilder进行定制 | |||||
return new ApiInfoBuilder() | |||||
// 设置标题 | |||||
.title("标题:管理系统_接口文档") | |||||
// 描述 | |||||
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") | |||||
// 作者信息 | |||||
.contact(new Contact(RuoYiConfig.getName(), null, null)) | |||||
// 版本 | |||||
.version("版本号:" + RuoYiConfig.getVersion()) | |||||
.build(); | |||||
} | |||||
} | |||||
//package com.rwk.web.core.config; | |||||
// | |||||
//import org.springframework.beans.factory.annotation.Value; | |||||
//import org.springframework.context.annotation.Bean; | |||||
//import org.springframework.context.annotation.Configuration; | |||||
//import com.rwk.common.config.RuoYiConfig; | |||||
//import io.swagger.annotations.ApiOperation; | |||||
//import springfox.documentation.builders.ApiInfoBuilder; | |||||
//import springfox.documentation.builders.PathSelectors; | |||||
//import springfox.documentation.builders.RequestHandlerSelectors; | |||||
//import springfox.documentation.service.ApiInfo; | |||||
//import springfox.documentation.service.Contact; | |||||
//import springfox.documentation.spi.DocumentationType; | |||||
//import springfox.documentation.spring.web.plugins.Docket; | |||||
// | |||||
///** | |||||
// * Swagger2的接口配置 | |||||
// * | |||||
// * @author ruoyi | |||||
// */ | |||||
//@Configuration | |||||
//public class SwaggerConfig | |||||
//{ | |||||
// /** 是否开启swagger */ | |||||
// @Value("${swagger.enabled}") | |||||
// private boolean enabled; | |||||
// | |||||
// /** | |||||
// * 创建API | |||||
// */ | |||||
// @Bean | |||||
// public Docket createRestApi() | |||||
// { | |||||
// return new Docket(DocumentationType.OAS_30) | |||||
// // 是否启用Swagger | |||||
// .enable(enabled) | |||||
// // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) | |||||
// .apiInfo(apiInfo()) | |||||
// // 设置哪些接口暴露给Swagger展示 | |||||
// .select() | |||||
// // 扫描所有有注解的api,用这种方式更灵活 | |||||
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) | |||||
// // 扫描指定包中的swagger注解 | |||||
// //.apis(RequestHandlerSelectors.basePackage("com.rwk.project.tool.swagger")) | |||||
// // 扫描所有 .apis(RequestHandlerSelectors.any()) | |||||
// .paths(PathSelectors.any()) | |||||
// .build(); | |||||
// } | |||||
// | |||||
// /** | |||||
// * 添加摘要信息 | |||||
// */ | |||||
// private ApiInfo apiInfo() | |||||
// { | |||||
// // 用ApiInfoBuilder进行定制 | |||||
// return new ApiInfoBuilder() | |||||
// // 设置标题 | |||||
// .title("标题:管理系统_接口文档") | |||||
// // 描述 | |||||
// .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") | |||||
// // 作者信息 | |||||
// .contact(new Contact(RuoYiConfig.getName(), null, null)) | |||||
// // 版本 | |||||
// .version("版本号:" + RuoYiConfig.getVersion()) | |||||
// .build(); | |||||
// } | |||||
//} |
@@ -6,8 +6,8 @@ spring: | |||||
druid: | druid: | ||||
# 主库数据源 | # 主库数据源 | ||||
master: | master: | ||||
url: jdbc:dm://150.158.136.65:5236/TZB_RWK?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | |||||
username: TZB_RWK | |||||
url: jdbc:dm://150.158.136.65:5236/TZB_ZGC?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | |||||
username: TZB_ZGC | |||||
password: hk64335593 | password: hk64335593 | ||||
# 从库数据源 | # 从库数据源 | ||||
slave: | slave: | ||||
@@ -9,7 +9,7 @@ ruoyi: | |||||
# 实例演示开关 | # 实例演示开关 | ||||
demoEnabled: false | demoEnabled: false | ||||
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) | # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) | ||||
profile: D:/ruoyi/uploadPath | |||||
profile: /opt/data | |||||
# profile: /home/ruoyi/uploadPath | # profile: /home/ruoyi/uploadPath | ||||
# 获取ip地址开关 | # 获取ip地址开关 | ||||
addressEnabled: false | addressEnabled: false | ||||
@@ -17,7 +17,7 @@ ruoyi: | |||||
# 开发环境配置 | # 开发环境配置 | ||||
server: | server: | ||||
# 服务器的HTTP端口,默认为80 | # 服务器的HTTP端口,默认为80 | ||||
port: 8080 | |||||
port: 8088 | |||||
servlet: | servlet: | ||||
# 应用的访问路径 | # 应用的访问路径 | ||||
context-path: / | context-path: / | ||||
@@ -1,7 +1,7 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
<configuration> | <configuration> | ||||
<!-- 日志存放路径 --> | <!-- 日志存放路径 --> | ||||
<property name="log.path" value="/home/ruoyi/logs" /> | |||||
<property name="log.path" value="/opt" /> | |||||
<!-- 日志输出格式 --> | <!-- 日志输出格式 --> | ||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> | <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> | ||||
@@ -82,3 +82,55 @@ | |||||
text-align: right; | text-align: right; | ||||
margin-left: 14px; | margin-left: 14px; | ||||
} | } | ||||
/*.trapezoid {*/ | |||||
/* width: 0;*/ | |||||
/* height: 0;*/ | |||||
/* border-bottom: 100px solid red; !* 梯形的底边 *!*/ | |||||
/* border-left: 50px solid transparent; !* 左侧斜边 *!*/ | |||||
/* border-right: 50px solid transparent; !* 右侧斜边 *!*/ | |||||
/* transform: rotate(-90deg); !* 反方向旋转 90 度 *!*/ | |||||
/* transform-origin: top left; !* 设置旋转中心点 *!*/ | |||||
/*}*/ | |||||
.container { | |||||
position: relative; | |||||
width: 300px; /* Adjust the width as needed */ | |||||
height: 400px; /* Adjust the height as needed */ | |||||
background-color: white; | |||||
overflow: hidden; | |||||
} | |||||
.container::before { | |||||
content: ''; | |||||
position: absolute; | |||||
width: 2px; /* Thickness of the vertical line */ | |||||
height: 100%; | |||||
background-color: black; | |||||
left: 50%; /* Center the line */ | |||||
transform: translateX(-50%); | |||||
} | |||||
.container::after { | |||||
content: ''; | |||||
position: absolute; | |||||
width: 60px; /* Width of the irregular shape */ | |||||
height: 60px; /* Height of the irregular shape */ | |||||
background-color: black; | |||||
border-radius: 50%; /* Make it circular */ | |||||
top: 100px; /* Position it below the vertical line */ | |||||
left: calc(50% - 30px); /* Center it horizontally */ | |||||
transform: translateX(-50%); | |||||
} | |||||
.vertical-line { | |||||
width: 90px; | |||||
height: 10px; | |||||
background-color: #CECECE; | |||||
border-radius: 50% / 100% 100% 0 0; | |||||
transform: rotate(-90deg); | |||||
margin-top: 270px; | |||||
margin-left: -50px; | |||||
} | |||||
@@ -26,8 +26,8 @@ | |||||
<div class="col-sm-12"> | <div class="col-sm-12"> | ||||
<form id="signupForm" autocomplete="off"> | <form id="signupForm" autocomplete="off"> | ||||
<h4 class="no-margins" style="font-size: 20px;">登录:</h4> | <h4 class="no-margins" style="font-size: 20px;">登录:</h4> | ||||
<input type="text" name="username" class="form-control uname" placeholder="用户名" value="admin" /> | |||||
<input type="password" name="password" class="form-control pword" placeholder="密码" value="admin123" /> | |||||
<input type="text" name="username" class="form-control uname" placeholder="用户名" value="" /> | |||||
<input type="password" name="password" class="form-control pword" placeholder="密码" value="" /> | |||||
<div class="row m-t" th:if="${captchaEnabled==true}"> | <div class="row m-t" th:if="${captchaEnabled==true}"> | ||||
<div class="col-xs-6"> | <div class="col-xs-6"> | ||||
<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" /> | <input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" /> | ||||
@@ -32,7 +32,7 @@ | |||||
<div style="width: 40%;margin-left: 5px;margin-right: 5px;"> | <div style="width: 40%;margin-left: 5px;margin-right: 5px;"> | ||||
<div style="width:100%;display: flex;"> | <div style="width:100%;display: flex;"> | ||||
<div class="arrange div1"> | <div class="arrange div1"> | ||||
<div style="margin-top: 10px;">同年教育培训次数</div> | |||||
<div style="margin-top: 10px;">同年教育培训人次</div> | |||||
<div style="font-size: 26px;font-style: italic;margin-top: 6px;">5321</div> | <div style="font-size: 26px;font-style: italic;margin-top: 6px;">5321</div> | ||||
</div> | </div> | ||||
<div class="arrange div2"> | <div class="arrange div2"> | ||||
@@ -45,7 +45,7 @@ | |||||
</div> | </div> | ||||
<div class="arrange div3"> | <div class="arrange div3"> | ||||
<div> | <div> | ||||
<div>未参会率</div> | |||||
<div>知联之友</div> | |||||
<div style="font-size: 10px;"> | <div style="font-size: 10px;"> | ||||
<span style="font-size: 24px;font-style: italic;margin-right: 10px;color: #016BFF;">5</span>% | <span style="font-size: 24px;font-style: italic;margin-right: 10px;color: #016BFF;">5</span>% | ||||
</div> | </div> | ||||
@@ -79,6 +79,8 @@ | |||||
return; | return; | ||||
}else { | }else { | ||||
$.operate.save(prefix + "/address/add", $('#form-addressbook-add').serialize()); | $.operate.save(prefix + "/address/add", $('#form-addressbook-add').serialize()); | ||||
$.modal.close(); | |||||
parent.location.reload(true); | |||||
} | } | ||||
} | } | ||||
@@ -38,6 +38,8 @@ | |||||
return; | return; | ||||
}else { | }else { | ||||
$.operate.save(prefix + "/addgroup/add", $('#form-group-add').serialize()); | $.operate.save(prefix + "/addgroup/add", $('#form-group-add').serialize()); | ||||
$.modal.close(); | |||||
parent.location.reload(true); | |||||
} | } | ||||
} | } | ||||
</script> | </script> | ||||
@@ -10,7 +10,7 @@ | |||||
<div class="col-md-12 select-table" > | <div class="col-md-12 select-table" > | ||||
<div class="col-md-12 search-collapse" style="border:none;padding-right: 0;padding-left: 0;margin-bottom: 10px;"> | <div class="col-md-12 search-collapse" style="border:none;padding-right: 0;padding-left: 0;margin-bottom: 10px;"> | ||||
<form id="formId"> | <form id="formId"> | ||||
<div class="select-list"> | |||||
<div class="select-list" > | |||||
<ul> | <ul> | ||||
<li style="margin-left: 20px;"> | <li style="margin-left: 20px;"> | ||||
<label>通讯录:</label> | <label>通讯录:</label> | ||||
@@ -35,7 +35,7 @@ | |||||
<a class="btn btn-style1"> | <a class="btn btn-style1"> | ||||
导入联系人 | 导入联系人 | ||||
</a> | </a> | ||||
<a class="btn btn-style1"> | |||||
<a class="btn btn-style1" onclick="$.table.exportExcel()"> | |||||
导出联系人 | 导出联系人 | ||||
</a> | </a> | ||||
<a class="btn btn-style1"> | <a class="btn btn-style1"> | ||||
@@ -70,8 +70,8 @@ | |||||
<div style="border: 6px solid #F1F3F7;"></div> | <div style="border: 6px solid #F1F3F7;"></div> | ||||
</div> | </div> | ||||
<div class="col-md-12"> | <div class="col-md-12"> | ||||
<div class="col-md-3"> | |||||
<div id="groups" class="group-list"> | |||||
<div class="col-md-3" style="display: inline-block"> | |||||
<div id="groups" class="group-list" style="height: 520px; overflow: auto;"> | |||||
<ul> | <ul> | ||||
<li class="click click-bg" th:onclick="setOptionParam([[${item.id}]],[[${item.groupName}]])" th:if="${rwkAddressGroups != null}" th:each="item : ${allddressGroups}"> | <li class="click click-bg" th:onclick="setOptionParam([[${item.id}]],[[${item.groupName}]])" th:if="${rwkAddressGroups != null}" th:each="item : ${allddressGroups}"> | ||||
<div>[[${item.groupName}]](<span >[[${item.num}]]</span>)</div> | <div>[[${item.groupName}]](<span >[[${item.num}]]</span>)</div> | ||||
@@ -82,7 +82,10 @@ | |||||
</ul> | </ul> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class=" table-striped" style="float: right;width: 75%"> | |||||
<div style="background-color: #CECECE;;width: 3px;height: 560px;display: inline-block"> | |||||
<div class="vertical-line"></div> | |||||
</div> | |||||
<div class=" table-striped" style="width: 72%;display: inline-block;margin-left: -4px"> | |||||
<table id="bootstrap-table"></table> | <table id="bootstrap-table"></table> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -147,8 +150,6 @@ | |||||
yes: function (index, layero) { | yes: function (index, layero) { | ||||
var iframeWin = layero.find('iframe')[0]; | var iframeWin = layero.find('iframe')[0]; | ||||
iframeWin.contentWindow.submitHandler(index, layero); | iframeWin.contentWindow.submitHandler(index, layero); | ||||
$.modal.close(index); | |||||
window.location.reload(true); | |||||
} | } | ||||
}; | }; | ||||
$.modal.openOptions(options); | $.modal.openOptions(options); | ||||
@@ -169,8 +170,6 @@ | |||||
yes: function (index, layero) { | yes: function (index, layero) { | ||||
var iframeWin = layero.find('iframe')[0]; | var iframeWin = layero.find('iframe')[0]; | ||||
iframeWin.contentWindow.submitHandler(index, layero); | iframeWin.contentWindow.submitHandler(index, layero); | ||||
$.modal.close(index); | |||||
window.location.reload(true); | |||||
} | } | ||||
}; | }; | ||||
$.modal.openOptions(options); | $.modal.openOptions(options); | ||||
@@ -192,8 +191,6 @@ | |||||
yes: function (index, layero) { | yes: function (index, layero) { | ||||
var iframeWin = layero.find('iframe')[0]; | var iframeWin = layero.find('iframe')[0]; | ||||
iframeWin.contentWindow.submitHandler(index, layero); | iframeWin.contentWindow.submitHandler(index, layero); | ||||
$.modal.close(index); | |||||
window.location.reload(true); | |||||
} | } | ||||
}; | }; | ||||
$.modal.openOptions(options); | $.modal.openOptions(options); | ||||
@@ -212,15 +209,13 @@ | |||||
type:1, | type:1, | ||||
btn: ['确定','取消'], | btn: ['确定','取消'], | ||||
closeBtn: 0, | closeBtn: 0, | ||||
width: 750, | |||||
width: 320, | |||||
height: 520, | height: 520, | ||||
offset:'150px', | offset:'150px', | ||||
anim:2, | anim:2, | ||||
yes: function (index, layero) { | yes: function (index, layero) { | ||||
var iframeWin = layero.find('iframe')[0]; | var iframeWin = layero.find('iframe')[0]; | ||||
iframeWin.contentWindow.submitHandler(index, layero); | iframeWin.contentWindow.submitHandler(index, layero); | ||||
$.modal.close(index); | |||||
window.location.reload(true); | |||||
} | } | ||||
}; | }; | ||||
$.modal.openOptions(options); | $.modal.openOptions(options); | ||||
@@ -240,15 +235,13 @@ | |||||
type:1, | type:1, | ||||
btn: ['确定','取消'], | btn: ['确定','取消'], | ||||
closeBtn: 0, | closeBtn: 0, | ||||
width: 750, | |||||
width: 320, | |||||
height: 520, | height: 520, | ||||
offset:'150px', | offset:'150px', | ||||
anim:2, | anim:2, | ||||
yes: function (index, layero) { | yes: function (index, layero) { | ||||
var iframeWin = layero.find('iframe')[0]; | var iframeWin = layero.find('iframe')[0]; | ||||
iframeWin.contentWindow.submitHandler(index, layero); | iframeWin.contentWindow.submitHandler(index, layero); | ||||
$.modal.close(index); | |||||
window.location.reload(true); | |||||
} | } | ||||
}; | }; | ||||
$.modal.openOptions(options); | $.modal.openOptions(options); | ||||
@@ -271,6 +264,7 @@ | |||||
var options = { | var options = { | ||||
url: prefix + "/list", | url: prefix + "/list", | ||||
editUrl: prefix + "/edit/{id}", | editUrl: prefix + "/edit/{id}", | ||||
exportUrl: prefix + "/export", | |||||
height: 580, | height: 580, | ||||
pagination:false, | pagination:false, | ||||
sidePagination: "client", | sidePagination: "client", | ||||
@@ -62,6 +62,8 @@ | |||||
return; | return; | ||||
}else { | }else { | ||||
$.operate.save(prefix + "/address/edit", $('#form-addressbook-edit').serialize()); | $.operate.save(prefix + "/address/edit", $('#form-addressbook-edit').serialize()); | ||||
$.modal.close(); | |||||
parent.location.reload(true); | |||||
} | } | ||||
} | } | ||||
@@ -13,13 +13,12 @@ | |||||
<!-- <button class="btn btn-unite" onclick="submitHandler()">保存</button>--> | <!-- <button class="btn btn-unite" onclick="submitHandler()">保存</button>--> | ||||
<!-- </div>--> | <!-- </div>--> | ||||
<!-- </ul>--> | <!-- </ul>--> | ||||
<form class="form-group" id="form-group"> | <form class="form-group" id="form-group"> | ||||
<input hidden type="text" name="addressIds" id="addressIds" th:value="${addressIds}"> | <input hidden type="text" name="addressIds" id="addressIds" th:value="${addressIds}"> | ||||
<input hidden type="text" name="groupIds" id="groupIds" > | <input hidden type="text" name="groupIds" id="groupIds" > | ||||
<div class="col-md-12"> | <div class="col-md-12"> | ||||
<div class="col-md-3"> | <div class="col-md-3"> | ||||
<div id="groups" class="group-list"> | |||||
<div id="groups" class="group-list" style="height: 320px; overflow: auto;"> | |||||
<ul> | <ul> | ||||
<li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | ||||
<div>[[${item.groupName}]]</div> | <div>[[${item.groupName}]]</div> | ||||
@@ -60,6 +59,8 @@ | |||||
}else { | }else { | ||||
$('#groupIds').val(groupids.toString()); | $('#groupIds').val(groupids.toString()); | ||||
$.operate.save(prefix + "/address/copy", $('#form-group').serialize()); | $.operate.save(prefix + "/address/copy", $('#form-group').serialize()); | ||||
$.modal.close(); | |||||
parent.location.reload(true); | |||||
} | } | ||||
} | } | ||||
@@ -20,7 +20,7 @@ | |||||
<input hidden type="text" name="groupIds" id="groupIds" > | <input hidden type="text" name="groupIds" id="groupIds" > | ||||
<div class="col-md-12"> | <div class="col-md-12"> | ||||
<div class="col-md-3"> | <div class="col-md-3"> | ||||
<div id="groups" class="group-list"> | |||||
<div id="groups" class="group-list" style="height: 320px; overflow: auto;"> | |||||
<ul> | <ul> | ||||
<li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | ||||
<div>[[${item.groupName}]]</div> | <div>[[${item.groupName}]]</div> | ||||
@@ -42,18 +42,15 @@ | |||||
object.classList.add("click-bg"); | object.classList.add("click-bg"); | ||||
} | } | ||||
function hasClass (ele, className) { | |||||
var reg = new RegExp('(^|\\s)' + className + '(\\s|$)') | |||||
return reg.test(ele.className) | |||||
} | |||||
function submitHandler() { | function submitHandler() { | ||||
if (groupids.length==0){ | if (groupids.length==0){ | ||||
$.modal.alertWarning("请选择组名再提交!"); | $.modal.alertWarning("请选择组名再提交!"); | ||||
return; | return; | ||||
}else { | }else { | ||||
$('#groupIds').val(groupids.toString()); | $('#groupIds').val(groupids.toString()); | ||||
$.operate.update(prefix + "/address/move", $('#form-group').serialize()); | |||||
$.operate.save(prefix + "/address/move", $('#form-group').serialize()); | |||||
$.modal.close(); | |||||
parent.location.reload(true); | |||||
} | } | ||||
} | } | ||||
@@ -21,6 +21,12 @@ | |||||
<dependency> | <dependency> | ||||
<groupId>org.springframework.boot</groupId> | <groupId>org.springframework.boot</groupId> | ||||
<artifactId>spring-boot-starter-web</artifactId> | <artifactId>spring-boot-starter-web</artifactId> | ||||
<exclusions> | |||||
<exclusion> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter-tomcat</artifactId> | |||||
</exclusion> | |||||
</exclusions> | |||||
</dependency> | </dependency> | ||||
<!-- SpringBoot 拦截器 --> | <!-- SpringBoot 拦截器 --> | ||||
@@ -29,12 +29,10 @@ public class RwkAddressBook extends BaseEntity | |||||
private String information; | private String information; | ||||
/** 归属部门/个人 */ | /** 归属部门/个人 */ | ||||
@Excel(name = "归属部门/个人") | |||||
private Long addressGroup; | private Long addressGroup; | ||||
/** 创建时间 */ | /** 创建时间 */ | ||||
@JsonFormat(pattern = "yyyy-MM-dd") | @JsonFormat(pattern = "yyyy-MM-dd") | ||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") | |||||
private Date createDate; | private Date createDate; | ||||
/** email */ | /** email */ | ||||
@@ -23,6 +23,8 @@ public class RwkBookGroup extends BaseEntity | |||||
@Excel(name = "分组id") | @Excel(name = "分组id") | ||||
private Long groupId; | private Long groupId; | ||||
private Long byGroupId; | |||||
public void setBookId(Long bookId) | public void setBookId(Long bookId) | ||||
{ | { | ||||
this.bookId = bookId; | this.bookId = bookId; | ||||
@@ -33,6 +35,14 @@ public class RwkBookGroup extends BaseEntity | |||||
return bookId; | return bookId; | ||||
} | } | ||||
public Long getByGroupId() { | |||||
return byGroupId; | |||||
} | |||||
public void setByGroupId(Long byGroupId) { | |||||
this.byGroupId = byGroupId; | |||||
} | |||||
public Long getGroupId() { | public Long getGroupId() { | ||||
return groupId; | return groupId; | ||||
} | } | ||||
@@ -1,4 +1,32 @@ | |||||
package com.rwk.system.domain; | package com.rwk.system.domain; | ||||
public class RwkBookGroupVo { | public class RwkBookGroupVo { | ||||
private String addressIds; | |||||
private String byGroupId; | |||||
private String groupIds; | |||||
public String getAddressIds() { | |||||
return addressIds; | |||||
} | |||||
public void setAddressIds(String addressIds) { | |||||
this.addressIds = addressIds; | |||||
} | |||||
public String getByGroupId() { | |||||
return byGroupId; | |||||
} | |||||
public void setByGroupId(String byGroupId) { | |||||
this.byGroupId = byGroupId; | |||||
} | |||||
public String getGroupIds() { | |||||
return groupIds; | |||||
} | |||||
public void setGroupIds(String groupIds) { | |||||
this.groupIds = groupIds; | |||||
} | |||||
} | } |
@@ -45,6 +45,9 @@ public interface RwkBookGroupMapper | |||||
*/ | */ | ||||
public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | ||||
public int updateRwkBookGroupList(@Param("rwkBookGroupList") List<RwkBookGroup> rwkBookGroupList); | |||||
/** | /** | ||||
* 删除【请填写功能名称】 | * 删除【请填写功能名称】 | ||||
* | * | ||||
@@ -44,6 +44,9 @@ public interface IRwkBookGroupService | |||||
*/ | */ | ||||
public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | ||||
public int updateRwkBookGroupList(List<RwkBookGroup> rwkBookGroup); | |||||
/** | /** | ||||
* 批量删除【请填写功能名称】 | * 批量删除【请填写功能名称】 | ||||
* | * | ||||
@@ -81,6 +81,12 @@ public class RwkBookGroupServiceImpl implements IRwkBookGroupService | |||||
return rwkBookGroupMapper.updateRwkBookGroup(rwkBookGroup); | return rwkBookGroupMapper.updateRwkBookGroup(rwkBookGroup); | ||||
} | } | ||||
@Override | |||||
public int updateRwkBookGroupList(List<RwkBookGroup> rwkBookGroup) | |||||
{ | |||||
return rwkBookGroupMapper.updateRwkBookGroupList(rwkBookGroup); | |||||
} | |||||
/** | /** | ||||
* 批量删除【请填写功能名称】 | * 批量删除【请填写功能名称】 | ||||
* | * | ||||
@@ -55,6 +55,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
where book_id = #{bookId} | where book_id = #{bookId} | ||||
</update> | </update> | ||||
<update id="updateRwkBookGroupList" > | |||||
<foreach collection="rwkBookGroupList" item="rwkBookGroup" separator=";"> | |||||
update rwk_book_group set group_id=#{rwkBookGroup.groupId} where book_id = #{rwkBookGroup.bookId} and group_id=#{rwkBookGroup.byGroupId} | |||||
</foreach> | |||||
</update> | |||||
<delete id="deleteRwkBookGroupByBookId" parameterType="Long"> | <delete id="deleteRwkBookGroupByBookId" parameterType="Long"> | ||||
delete from rwk_book_group where book_id = #{bookId} | delete from rwk_book_group where book_id = #{bookId} | ||||
</delete> | </delete> | ||||