完成百度网格功能模块、网格绘制、网格种类管理、网格信息管理、网格员列表
This commit is contained in:
parent
416cc38ad5
commit
1fd2dcb70c
@ -83,6 +83,14 @@ public class GridController extends DefaultBaseController {
|
|||||||
return gridService.list(params);
|
return gridService.list(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "网格(排除查询网格)列表", notes = "网格(排除查询网格)列表接口")
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@GetMapping("list/except/{gridId}")
|
||||||
|
public List<GridDTO> listExcept(@PathVariable("gridId") String gridId) {
|
||||||
|
Map<String, Object> params = requestParams();
|
||||||
|
return gridService.listExcept(gridId, params);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "网格分页列表", notes = "网格分页列表接口")
|
@ApiOperation(value = "网格分页列表", notes = "网格分页列表接口")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
|
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
|
||||||
|
@ -0,0 +1,91 @@
|
|||||||
|
package ink.wgink.module.map.controller.api.grid;
|
||||||
|
|
||||||
|
import ink.wgink.annotation.CheckRequestBodyAnnotation;
|
||||||
|
import ink.wgink.common.base.DefaultBaseController;
|
||||||
|
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||||
|
import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO;
|
||||||
|
import ink.wgink.module.map.service.grid.IGridUserService;
|
||||||
|
import ink.wgink.pojo.ListPage;
|
||||||
|
import ink.wgink.pojo.result.ErrorResult;
|
||||||
|
import ink.wgink.pojo.result.SuccessResult;
|
||||||
|
import ink.wgink.pojo.result.SuccessResultList;
|
||||||
|
import ink.wgink.pojo.vos.IdsVO;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: GridUserController
|
||||||
|
* @Description: 网格用户
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 5:42 下午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "网格用户接口")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(ISystemConstant.API_PREFIX + "/grid/user")
|
||||||
|
public class GridUserController extends DefaultBaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IGridUserService gridUserService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除网格用户", notes = "删除网格用户接口")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3")
|
||||||
|
})
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@DeleteMapping("delete/{gridId}/{ids}")
|
||||||
|
public SuccessResult delete(@PathVariable("gridId") String gridId, @PathVariable("ids") String ids) {
|
||||||
|
gridUserService.delete(gridId, Arrays.asList(ids.split("\\_")));
|
||||||
|
return new SuccessResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "修改网格用户", notes = "修改网格用户接口")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "gridIdId", value = "网格ID", paramType = "path")
|
||||||
|
})
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@PutMapping("update/{gridId}")
|
||||||
|
@CheckRequestBodyAnnotation
|
||||||
|
public SuccessResult update(@PathVariable("gridId") String gridId, @RequestBody IdsVO idsVO) throws Exception {
|
||||||
|
gridUserService.update(gridId, idsVO);
|
||||||
|
return new SuccessResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "网格用户ID列表", notes = "网格用户ID列表接口")
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@GetMapping("list-user-id/{gridId}")
|
||||||
|
public List<String> listUserId(@PathVariable("gridId") String gridId) {
|
||||||
|
Map<String, Object> params = requestParams();
|
||||||
|
return gridUserService.listUserId(gridId, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "网格用户列表", notes = "网格用户列表接口")
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@GetMapping("list/{gridId}")
|
||||||
|
public List<GridUserDTO> list(@PathVariable("gridId") String gridId) {
|
||||||
|
Map<String, Object> params = requestParams();
|
||||||
|
return gridUserService.list(gridId, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "网格用户分页列表", notes = "网格用户分页列表接口")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
|
||||||
|
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
|
||||||
|
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
|
||||||
|
})
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@GetMapping("listpage/{gridId}")
|
||||||
|
public SuccessResultList<List<GridUserDTO>> listPage(@PathVariable("gridId") String gridId, ListPage page) {
|
||||||
|
Map<String, Object> params = requestParams();
|
||||||
|
page.setParams(params);
|
||||||
|
return gridUserService.listPage(gridId, page);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -14,7 +14,7 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
* @Date: 2021/10/19 11:54 下午
|
* @Date: 2021/10/19 11:54 下午
|
||||||
* @Version: 1.0
|
* @Version: 1.0
|
||||||
*/
|
*/
|
||||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "网格组接口")
|
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格组")
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid-group")
|
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid-group")
|
||||||
public class GridGroupRouteController {
|
public class GridGroupRouteController {
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
package ink.wgink.module.map.controller.route.grid;
|
||||||
|
|
||||||
|
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: GridRouteController
|
||||||
|
* @Description: 网格路由
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 9:33 上午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格")
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid")
|
||||||
|
public class GridRouteController {
|
||||||
|
|
||||||
|
@GetMapping("save")
|
||||||
|
public ModelAndView save() {
|
||||||
|
return new ModelAndView("grid/grid/save");
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("update")
|
||||||
|
public ModelAndView update() {
|
||||||
|
return new ModelAndView("grid/grid/update");
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("get")
|
||||||
|
public ModelAndView get() {
|
||||||
|
return new ModelAndView("grid/grid/get");
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("list")
|
||||||
|
public ModelAndView list() {
|
||||||
|
return new ModelAndView("grid/grid/list");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package ink.wgink.module.map.controller.route.grid;
|
||||||
|
|
||||||
|
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: GridUserRouteController
|
||||||
|
* @Description: 网格用户路由
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 5:44 下午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格用户")
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid/user")
|
||||||
|
public class GridUserRouteController {
|
||||||
|
|
||||||
|
@GetMapping("list")
|
||||||
|
public ModelAndView list() {
|
||||||
|
return new ModelAndView("grid/grid/user/list");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package ink.wgink.module.map.controller.staticfile;
|
||||||
|
|
||||||
|
import ink.wgink.util.ResourceUtil;
|
||||||
|
import ink.wgink.util.request.StaticResourceRequestUtil;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: BaiduMapStaticController
|
||||||
|
* @Description: 百度地图静态文件
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 10:13 上午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("static/baidu-map")
|
||||||
|
public class BaiduMapStaticController {
|
||||||
|
|
||||||
|
@GetMapping("{fileName}")
|
||||||
|
public void root(HttpServletResponse httpServletResponse, @PathVariable("fileName") String fileName) throws IOException {
|
||||||
|
File file = ResourceUtil.getResourceFile("static/baidu-map/" + fileName);
|
||||||
|
StaticResourceRequestUtil.download(httpServletResponse, file, fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -92,5 +92,12 @@ public interface IGridDao extends IInitBaseTable {
|
|||||||
*/
|
*/
|
||||||
List<GridDTO> listGroup(Map<String, Object> params) throws SearchException;
|
List<GridDTO> listGroup(Map<String, Object> params) throws SearchException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域最后网格
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
* @throws SearchException
|
||||||
|
*/
|
||||||
|
GridPO getAreaLastPO(Map<String, Object> params) throws SearchException;
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,8 @@ public class GridDTO implements Serializable {
|
|||||||
private String relationId;
|
private String relationId;
|
||||||
@ApiModelProperty(name = "gmtCreate", value = "添加时间")
|
@ApiModelProperty(name = "gmtCreate", value = "添加时间")
|
||||||
private String gmtCreate;
|
private String gmtCreate;
|
||||||
|
@ApiModelProperty(name = "gmtModified", value = "修改时间")
|
||||||
|
private String gmtModified;
|
||||||
@ApiModelProperty(name = "relationIdArray", value = "关联ID列表")
|
@ApiModelProperty(name = "relationIdArray", value = "关联ID列表")
|
||||||
private List<String> relationIdArray;
|
private List<String> relationIdArray;
|
||||||
@ApiModelProperty(name = "pointArray", value = "网格点列表")
|
@ApiModelProperty(name = "pointArray", value = "网格点列表")
|
||||||
@ -146,6 +148,14 @@ public class GridDTO implements Serializable {
|
|||||||
this.gmtCreate = gmtCreate;
|
this.gmtCreate = gmtCreate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getGmtModified() {
|
||||||
|
return gmtModified == null ? "" : gmtModified.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGmtModified(String gmtModified) {
|
||||||
|
this.gmtModified = gmtModified;
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> getRelationIdArray() {
|
public List<String> getRelationIdArray() {
|
||||||
if (relationIdArray == null) {
|
if (relationIdArray == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
|
@ -21,10 +21,10 @@ public class GridPointDTO implements Serializable {
|
|||||||
private static final long serialVersionUID = -2367199018377785048L;
|
private static final long serialVersionUID = -2367199018377785048L;
|
||||||
@ApiModelProperty(name = "gridId", value = "网格ID")
|
@ApiModelProperty(name = "gridId", value = "网格ID")
|
||||||
private String gridId;
|
private String gridId;
|
||||||
@ApiModelProperty(name = "pointLng", value = "点经度")
|
@ApiModelProperty(name = "lng", value = "点经度")
|
||||||
private String pointLng;
|
private String lng;
|
||||||
@ApiModelProperty(name = "pointLat", value = "点纬度")
|
@ApiModelProperty(name = "lat", value = "点纬度")
|
||||||
private String pointLat;
|
private String lat;
|
||||||
|
|
||||||
public String getGridId() {
|
public String getGridId() {
|
||||||
return gridId == null ? "" : gridId.trim();
|
return gridId == null ? "" : gridId.trim();
|
||||||
@ -34,20 +34,20 @@ public class GridPointDTO implements Serializable {
|
|||||||
this.gridId = gridId;
|
this.gridId = gridId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPointLng() {
|
public String getLng() {
|
||||||
return pointLng == null ? "" : pointLng.trim();
|
return lng == null ? "" : lng.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPointLng(String pointLng) {
|
public void setLng(String lng) {
|
||||||
this.pointLng = pointLng;
|
this.lng = lng;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPointLat() {
|
public String getLat() {
|
||||||
return pointLat == null ? "" : pointLat.trim();
|
return lat == null ? "" : lat.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPointLat(String pointLat) {
|
public void setLat(String lat) {
|
||||||
this.pointLat = pointLat;
|
this.lat = lat;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -56,9 +56,9 @@ public class GridPointDTO implements Serializable {
|
|||||||
sb.append("\"gridId\":\"")
|
sb.append("\"gridId\":\"")
|
||||||
.append(gridId).append('\"');
|
.append(gridId).append('\"');
|
||||||
sb.append(",\"lng\":\"")
|
sb.append(",\"lng\":\"")
|
||||||
.append(pointLng).append('\"');
|
.append(lng).append('\"');
|
||||||
sb.append(",\"lat\":\"")
|
sb.append(",\"lat\":\"")
|
||||||
.append(pointLat).append('\"');
|
.append(lat).append('\"');
|
||||||
sb.append('}');
|
sb.append('}');
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,76 @@
|
|||||||
|
package ink.wgink.module.map.pojo.dtos.grid;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: GridUserDTO
|
||||||
|
* @Description: 网格用户
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 5:46 下午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@ApiModel
|
||||||
|
public class GridUserDTO {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "gridId", value = "网格ID")
|
||||||
|
private String gridId;
|
||||||
|
@ApiModelProperty(name = "userId", value = "用户ID")
|
||||||
|
private String userId;
|
||||||
|
@ApiModelProperty(name = "userUsername", value = "用户名")
|
||||||
|
private String userUsername;
|
||||||
|
@ApiModelProperty(name = "userName", value = "用户昵称")
|
||||||
|
private String userName;
|
||||||
|
@ApiModelProperty(name = "userPhone", value = "用户电话")
|
||||||
|
private String userPhone;
|
||||||
|
@ApiModelProperty(name = "gmtCreate", value = "添加时间")
|
||||||
|
private String gmtCreate;
|
||||||
|
|
||||||
|
public String getGridId() {
|
||||||
|
return gridId == null ? "" : gridId.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGridId(String gridId) {
|
||||||
|
this.gridId = gridId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserId() {
|
||||||
|
return userId == null ? "" : userId.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserUsername() {
|
||||||
|
return userUsername == null ? "" : userUsername.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserUsername(String userUsername) {
|
||||||
|
this.userUsername = userUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName == null ? "" : userName.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserPhone() {
|
||||||
|
return userPhone == null ? "" : userPhone.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserPhone(String userPhone) {
|
||||||
|
this.userPhone = userPhone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGmtCreate() {
|
||||||
|
return gmtCreate == null ? "" : gmtCreate.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGmtCreate(String gmtCreate) {
|
||||||
|
this.gmtCreate = gmtCreate;
|
||||||
|
}
|
||||||
|
}
|
@ -18,10 +18,10 @@ public class GridPointVO {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "gridId", value = "网格ID")
|
@ApiModelProperty(name = "gridId", value = "网格ID")
|
||||||
private String gridId;
|
private String gridId;
|
||||||
@ApiModelProperty(name = "pointLng", value = "经度")
|
@ApiModelProperty(name = "lng", value = "经度")
|
||||||
private String pointLng;
|
private String lng;
|
||||||
@ApiModelProperty(name = "pointLat", value = "纬度")
|
@ApiModelProperty(name = "lat", value = "纬度")
|
||||||
private String pointLat;
|
private String lat;
|
||||||
|
|
||||||
public String getGridId() {
|
public String getGridId() {
|
||||||
return gridId == null ? "" : gridId.trim();
|
return gridId == null ? "" : gridId.trim();
|
||||||
@ -31,20 +31,20 @@ public class GridPointVO {
|
|||||||
this.gridId = gridId;
|
this.gridId = gridId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPointLng() {
|
public String getLng() {
|
||||||
return pointLng == null ? "" : pointLng.trim();
|
return lng == null ? "" : lng.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPointLng(String pointLng) {
|
public void setLng(String lng) {
|
||||||
this.pointLng = pointLng;
|
this.lng = lng;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPointLat() {
|
public String getLat() {
|
||||||
return pointLat == null ? "" : pointLat.trim();
|
return lat == null ? "" : lat.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPointLat(String pointLat) {
|
public void setLat(String lat) {
|
||||||
this.pointLat = pointLat;
|
this.lat = lat;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -53,9 +53,9 @@ public class GridPointVO {
|
|||||||
sb.append("\"gridId\":\"")
|
sb.append("\"gridId\":\"")
|
||||||
.append(gridId).append('\"');
|
.append(gridId).append('\"');
|
||||||
sb.append(",\"lng\":\"")
|
sb.append(",\"lng\":\"")
|
||||||
.append(pointLng).append('\"');
|
.append(lng).append('\"');
|
||||||
sb.append(",\"lat\":\"")
|
sb.append(",\"lat\":\"")
|
||||||
.append(pointLat).append('\"');
|
.append(lat).append('\"');
|
||||||
sb.append('}');
|
sb.append('}');
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package ink.wgink.module.map.pojo.vos.grid;
|
package ink.wgink.module.map.pojo.vos.grid;
|
||||||
|
|
||||||
|
import ink.wgink.annotation.CheckBeanAnnotation;
|
||||||
|
import ink.wgink.annotation.CheckEmptyAnnotation;
|
||||||
|
import ink.wgink.annotation.CheckNullAnnotation;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
@ -7,9 +10,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When you feel like quitting. Think about why you started
|
|
||||||
* 当你想要放弃的时候,想想当初你为何开始
|
|
||||||
*
|
|
||||||
* @ClassName: BaiduGridVO
|
* @ClassName: BaiduGridVO
|
||||||
* @Description: 百度地图网格
|
* @Description: 百度地图网格
|
||||||
* @Author: WangGeng
|
* @Author: WangGeng
|
||||||
@ -21,14 +21,23 @@ public class GridVO {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "id", value = "网格ID")
|
@ApiModelProperty(name = "id", value = "网格ID")
|
||||||
private String id;
|
private String id;
|
||||||
@ApiModelProperty(name = "fillColor", value = "填充颜色")
|
|
||||||
private String fillColor;
|
|
||||||
@ApiModelProperty(name = "gridName", value = "网格名称")
|
@ApiModelProperty(name = "gridName", value = "网格名称")
|
||||||
|
@CheckEmptyAnnotation(name = "网格名称")
|
||||||
private String gridName;
|
private String gridName;
|
||||||
@ApiModelProperty(name = "relationIdArray", value = "关联ID列表")
|
@ApiModelProperty(name = "gridSummary", value = "网格描述")
|
||||||
private List<String> relationIdArray;
|
private String gridSummary;
|
||||||
@ApiModelProperty(name = "pointArray", value = "网格点列表")
|
@ApiModelProperty(name = "gridGroupId", value = "网格组ID")
|
||||||
private List<GridPointVO> pointArray;
|
private String gridGroupId;
|
||||||
|
@ApiModelProperty(name = "gridDuty", value = "网格职责")
|
||||||
|
private String gridDuty;
|
||||||
|
@ApiModelProperty(name = "areaCode", value = "区域编码")
|
||||||
|
private String areaCode;
|
||||||
|
@ApiModelProperty(name = "areaName", value = "区域名称")
|
||||||
|
private String areaName;
|
||||||
|
@ApiModelProperty(name = "grids", value = "网格列表")
|
||||||
|
@CheckNullAnnotation(name = "网格")
|
||||||
|
@CheckBeanAnnotation
|
||||||
|
private Grid grid;
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id == null ? "" : id.trim();
|
return id == null ? "" : id.trim();
|
||||||
@ -38,14 +47,6 @@ public class GridVO {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFillColor() {
|
|
||||||
return fillColor == null ? "" : fillColor.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFillColor(String fillColor) {
|
|
||||||
this.fillColor = fillColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGridName() {
|
public String getGridName() {
|
||||||
return gridName == null ? "" : gridName.trim();
|
return gridName == null ? "" : gridName.trim();
|
||||||
}
|
}
|
||||||
@ -54,42 +55,86 @@ public class GridVO {
|
|||||||
this.gridName = gridName;
|
this.gridName = gridName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getRelationIdArray() {
|
public String getGridSummary() {
|
||||||
if (relationIdArray == null) {
|
return gridSummary == null ? "" : gridSummary.trim();
|
||||||
return new ArrayList<>();
|
}
|
||||||
|
|
||||||
|
public void setGridSummary(String gridSummary) {
|
||||||
|
this.gridSummary = gridSummary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGridGroupId() {
|
||||||
|
return gridGroupId == null ? "" : gridGroupId.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGridGroupId(String gridGroupId) {
|
||||||
|
this.gridGroupId = gridGroupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGridDuty() {
|
||||||
|
return gridDuty == null ? "" : gridDuty.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGridDuty(String gridDuty) {
|
||||||
|
this.gridDuty = gridDuty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAreaCode() {
|
||||||
|
return areaCode == null ? "" : areaCode.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAreaCode(String areaCode) {
|
||||||
|
this.areaCode = areaCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAreaName() {
|
||||||
|
return areaName == null ? "" : areaName.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAreaName(String areaName) {
|
||||||
|
this.areaName = areaName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Grid getGrid() {
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGrid(Grid grid) {
|
||||||
|
this.grid = grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Grid {
|
||||||
|
@ApiModelProperty(name = "fillColor", value = "填充颜色")
|
||||||
|
private String fillColor;
|
||||||
|
@ApiModelProperty(name = "relationIdArray", value = "关联ID列表")
|
||||||
|
private List<String> relationIdArray;
|
||||||
|
@ApiModelProperty(name = "pointArray", value = "网格点列表")
|
||||||
|
@CheckEmptyAnnotation(name = "网格点列表")
|
||||||
|
private List<GridPointVO> pointArray;
|
||||||
|
|
||||||
|
public String getFillColor() {
|
||||||
|
return fillColor == null ? "" : fillColor.trim();
|
||||||
}
|
}
|
||||||
return relationIdArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRelationIdArray(List<String> relationIdArray) {
|
public void setFillColor(String fillColor) {
|
||||||
this.relationIdArray = relationIdArray;
|
this.fillColor = fillColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<GridPointVO> getPointArray() {
|
public List<String> getRelationIdArray() {
|
||||||
if (pointArray == null) {
|
return relationIdArray == null ? new ArrayList<>() : relationIdArray;
|
||||||
return new ArrayList<>();
|
}
|
||||||
|
|
||||||
|
public void setRelationIdArray(List<String> relationIdArray) {
|
||||||
|
this.relationIdArray = relationIdArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GridPointVO> getPointArray() {
|
||||||
|
return pointArray == null ? new ArrayList<>() : pointArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPointArray(List<GridPointVO> pointArray) {
|
||||||
|
this.pointArray = pointArray;
|
||||||
}
|
}
|
||||||
return pointArray;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPointArray(List<GridPointVO> pointArray) {
|
|
||||||
this.pointArray = pointArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
final StringBuilder sb = new StringBuilder("{");
|
|
||||||
sb.append("\"id\":\"")
|
|
||||||
.append(id).append('\"');
|
|
||||||
sb.append(",\"fillColor\":\"")
|
|
||||||
.append(fillColor).append('\"');
|
|
||||||
sb.append(",\"gridName\":\"")
|
|
||||||
.append(gridName).append('\"');
|
|
||||||
sb.append(",\"relationIdArray\":")
|
|
||||||
.append(relationIdArray);
|
|
||||||
sb.append(",\"pointArray\":")
|
|
||||||
.append(pointArray);
|
|
||||||
sb.append('}');
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -23,13 +23,28 @@ public interface IGridRelationService {
|
|||||||
void save(String gridId, List<String> relationIdArray);
|
void save(String gridId, List<String> relationIdArray);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除网格
|
* 删除网格关联
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
*/
|
||||||
|
void delete(String gridId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除网格关联
|
||||||
*
|
*
|
||||||
* @param gridId 网格ID
|
* @param gridId 网格ID
|
||||||
* @param relationId 关联ID
|
* @param relationId 关联ID
|
||||||
*/
|
*/
|
||||||
void delete(String gridId, String relationId);
|
void delete(String gridId, String relationId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除网格关联
|
||||||
|
*
|
||||||
|
* @param gridId 网格ID
|
||||||
|
* @param relationIds 关联ID列表
|
||||||
|
*/
|
||||||
|
void delete(String gridId, List<String> relationIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除网格关联
|
* 删除网格关联
|
||||||
*
|
*
|
||||||
@ -99,4 +114,13 @@ public interface IGridRelationService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<String> listGridId(List<String> relationIds);
|
List<String> listGridId(List<String> relationIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网格关联ID列表
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> listRelationId(String gridId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -165,4 +165,13 @@ public interface IGridService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
SuccessResultList<List<GridDTO>> listPage(ListPage page);
|
SuccessResultList<List<GridDTO>> listPage(ListPage page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网格(排除查询网格)
|
||||||
|
*
|
||||||
|
* @param gridId 排除的网格ID
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<GridDTO> listExcept(String gridId, Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,63 @@
|
|||||||
|
package ink.wgink.module.map.service.grid;
|
||||||
|
|
||||||
|
import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO;
|
||||||
|
import ink.wgink.pojo.ListPage;
|
||||||
|
import ink.wgink.pojo.result.SuccessResultList;
|
||||||
|
import ink.wgink.pojo.vos.IdsVO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: IGridUserService
|
||||||
|
* @Description: 网格用户
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 5:43 下午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
public interface IGridUserService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除网格用户
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @param userIds
|
||||||
|
*/
|
||||||
|
void delete(String gridId, List<String> userIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改网格用户
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @param idsVO
|
||||||
|
*/
|
||||||
|
void update(String gridId, IdsVO idsVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网格用户ID列表
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> listUserId(String gridId, Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网格用户列表
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<GridUserDTO> list(String gridId, Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网格用户分页列表
|
||||||
|
*
|
||||||
|
* @param gridId
|
||||||
|
* @param page
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
SuccessResultList<List<GridUserDTO>> listPage(String gridId, ListPage page);
|
||||||
|
|
||||||
|
}
|
@ -35,8 +35,8 @@ public class GridPointServiceImpl extends DefaultBaseService implements IGridPoi
|
|||||||
Map<String, Object> params = getHashMap(4);
|
Map<String, Object> params = getHashMap(4);
|
||||||
params.put("gridId", gridId);
|
params.put("gridId", gridId);
|
||||||
for (GridPointVO gridPointVO : pointArray) {
|
for (GridPointVO gridPointVO : pointArray) {
|
||||||
params.put("lng", gridPointVO.getPointLng());
|
params.put("lng", gridPointVO.getLng());
|
||||||
params.put("lat", gridPointVO.getPointLat());
|
params.put("lat", gridPointVO.getLat());
|
||||||
gridPointDao.save(params);
|
gridPointDao.save(params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,12 +30,20 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid
|
|||||||
}
|
}
|
||||||
Map<String, Object> params = getHashMap(4);
|
Map<String, Object> params = getHashMap(4);
|
||||||
params.put("gridId", gridId);
|
params.put("gridId", gridId);
|
||||||
|
setSaveInfo(params);
|
||||||
for (String relationId : relationIdArray) {
|
for (String relationId : relationIdArray) {
|
||||||
params.put("relationId", relationId);
|
params.put("relationId", relationId);
|
||||||
gridRelationDao.save(params);
|
gridRelationDao.save(params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(String gridId) {
|
||||||
|
Map<String, Object> params = getHashMap(2);
|
||||||
|
params.put("gridId", gridId);
|
||||||
|
gridRelationDao.delete(params);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(String gridId, String relationId) throws RemoveException {
|
public void delete(String gridId, String relationId) throws RemoveException {
|
||||||
Map<String, Object> params = getHashMap(4);
|
Map<String, Object> params = getHashMap(4);
|
||||||
@ -44,6 +52,14 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid
|
|||||||
gridRelationDao.delete(params);
|
gridRelationDao.delete(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(String gridId, List<String> relationIds) {
|
||||||
|
Map<String, Object> params = getHashMap(4);
|
||||||
|
params.put("gridId", gridId);
|
||||||
|
params.put("relationIds", relationIds);
|
||||||
|
gridRelationDao.delete(params);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteByGridIds(List<String> gridIds) {
|
public void deleteByGridIds(List<String> gridIds) {
|
||||||
Map<String, Object> params = getHashMap(2);
|
Map<String, Object> params = getHashMap(2);
|
||||||
@ -103,6 +119,12 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid
|
|||||||
return listGridIdByGridRelation(gridRelationDTOs);
|
return listGridIdByGridRelation(gridRelationDTOs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> listRelationId(String gridId) {
|
||||||
|
List<GridRelationDTO> gridRelationDTOs = listByGridId(gridId);
|
||||||
|
return listRelationIdByGridRelation(gridRelationDTOs);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取网格ID列表
|
* 获取网格ID列表
|
||||||
*
|
*
|
||||||
@ -120,4 +142,21 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid
|
|||||||
return new ArrayList<>(gridIdSet);
|
return new ArrayList<>(gridIdSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取网格ID列表
|
||||||
|
*
|
||||||
|
* @param gridRelationDTOs
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private List<String> listRelationIdByGridRelation(List<GridRelationDTO> gridRelationDTOs) {
|
||||||
|
if (gridRelationDTOs.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
Set<String> relationIdSet = new HashSet<>();
|
||||||
|
gridRelationDTOs.forEach(gridRelationDTO -> {
|
||||||
|
relationIdSet.add(gridRelationDTO.getRelationId());
|
||||||
|
});
|
||||||
|
return new ArrayList<>(relationIdSet);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,11 @@ import ink.wgink.module.map.service.grid.IGridRelationService;
|
|||||||
import ink.wgink.module.map.service.grid.IGridService;
|
import ink.wgink.module.map.service.grid.IGridService;
|
||||||
import ink.wgink.pojo.ListPage;
|
import ink.wgink.pojo.ListPage;
|
||||||
import ink.wgink.pojo.result.SuccessResultList;
|
import ink.wgink.pojo.result.SuccessResultList;
|
||||||
|
import ink.wgink.util.ArrayListUtil;
|
||||||
import ink.wgink.util.UUIDUtil;
|
import ink.wgink.util.UUIDUtil;
|
||||||
import ink.wgink.util.map.HashMapUtil;
|
import ink.wgink.util.map.HashMapUtil;
|
||||||
|
import ink.wgink.util.point.Point;
|
||||||
|
import ink.wgink.util.point.PointUtil;
|
||||||
import ink.wgink.util.string.WStringUtil;
|
import ink.wgink.util.string.WStringUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -53,13 +56,18 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
@Override
|
@Override
|
||||||
public String saveAndReturnId(GridVO gridVO) throws Exception {
|
public String saveAndReturnId(GridVO gridVO) throws Exception {
|
||||||
String gridId = UUIDUtil.getUUID();
|
String gridId = UUIDUtil.getUUID();
|
||||||
List<String> relationIdArray = gridVO.getRelationIdArray();
|
List<String> relationIdArray = gridVO.getGrid().getRelationIdArray();
|
||||||
List<GridPointVO> pointArray = gridVO.getPointArray();
|
List<GridPointVO> pointArray = gridVO.getGrid().getPointArray();
|
||||||
// 保存网格
|
// 保存网格
|
||||||
Map<String, Object> params = HashMapUtil.beanToMap(gridVO);
|
Map<String, Object> params = HashMapUtil.beanToMap(gridVO);
|
||||||
|
params.put("gridSquare", getSquare(pointArray));
|
||||||
|
params.put("fillColor", gridVO.getGrid().getFillColor());
|
||||||
|
GridPO areaLastPO = getAreaLastPO(gridVO.getAreaCode());
|
||||||
|
params.put("gridCode", areaLastPO == null ? String.format("%s001", gridVO.getAreaCode().substring(0, 12)) : Long.valueOf(areaLastPO.getGridCode()) + 1);
|
||||||
params.put("gridId", gridId);
|
params.put("gridId", gridId);
|
||||||
params.remove("relationIdArray");
|
params.remove("relationIdArray");
|
||||||
params.remove("pointArray");
|
params.remove("pointArray");
|
||||||
|
params.remove("grid");
|
||||||
setSaveInfo(params);
|
setSaveInfo(params);
|
||||||
gridDao.save(params);
|
gridDao.save(params);
|
||||||
// 保存拓展属性
|
// 保存拓展属性
|
||||||
@ -134,14 +142,26 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(String gridId, GridVO gridVO) throws Exception {
|
public void update(String gridId, GridVO gridVO) throws Exception {
|
||||||
|
GridVO.Grid grid = gridVO.getGrid();
|
||||||
Map<String, Object> params = HashMapUtil.beanToMap(gridVO);
|
Map<String, Object> params = HashMapUtil.beanToMap(gridVO);
|
||||||
|
params.put("fillColor", gridVO.getGrid().getFillColor());
|
||||||
|
params.put("gridSquare", getSquare(grid.getPointArray()));
|
||||||
|
params.put("gridId", gridId);
|
||||||
setUpdateInfo(params);
|
setUpdateInfo(params);
|
||||||
gridDao.update(params);
|
gridDao.update(params);
|
||||||
|
|
||||||
|
// 删除原有节点
|
||||||
|
gridPointService.deleteByGridId(gridId);
|
||||||
|
// 新增原有节点
|
||||||
|
gridPointService.save(gridId, grid.getPointArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GridDTO get(Map<String, Object> params) {
|
public GridDTO get(Map<String, Object> params) {
|
||||||
return gridDao.get(params);
|
GridDTO gridDTO = gridDao.get(params);
|
||||||
|
setGridPoints(gridDTO);
|
||||||
|
setGridRelation(gridDTO);
|
||||||
|
return gridDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -165,7 +185,7 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<GridDTO> list(Map<String, Object> params) {
|
public List<GridDTO> list(Map<String, Object> params) {
|
||||||
List<GridDTO> gridDTOs = gridDao.list(params);
|
List<GridDTO> gridDTOs = ArrayListUtil.deepClone(gridDao.list(params), GridDTO.class);
|
||||||
setGridPoints(gridDTOs);
|
setGridPoints(gridDTOs);
|
||||||
setGridRelation(gridDTOs);
|
setGridRelation(gridDTOs);
|
||||||
return gridDTOs;
|
return gridDTOs;
|
||||||
@ -271,6 +291,34 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
return new SuccessResultList<>(gridDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
|
return new SuccessResultList<>(gridDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GridDTO> listExcept(String gridId, Map<String, Object> params) {
|
||||||
|
List<GridDTO> gridDTOs = list(params);
|
||||||
|
for (GridDTO gridDTO : gridDTOs) {
|
||||||
|
if (StringUtils.equals(gridId, gridDTO.getGridId())) {
|
||||||
|
gridDTOs.remove(gridDTO);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return gridDTOs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置网格点
|
||||||
|
*
|
||||||
|
* @param gridDTO
|
||||||
|
*/
|
||||||
|
private void setGridPoints(GridDTO gridDTO) {
|
||||||
|
if (gridDTO == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<GridPointDTO> gridPointDTOs = gridPointService.list(gridDTO.getGridId());
|
||||||
|
List<GridPointDTO> pointArray = new ArrayList<>();
|
||||||
|
for (GridPointDTO gridPointDTO : gridPointDTOs) {
|
||||||
|
pointArray.add(gridPointDTO);
|
||||||
|
}
|
||||||
|
gridDTO.setPointArray(pointArray);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置网格点
|
* 设置网格点
|
||||||
@ -302,6 +350,23 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置关联
|
||||||
|
*
|
||||||
|
* @param gridDTO
|
||||||
|
*/
|
||||||
|
private void setGridRelation(GridDTO gridDTO) {
|
||||||
|
if (gridDTO == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<GridRelationDTO> gridRelationDTOs = gridRelationService.listByGridId(gridDTO.getGridId());
|
||||||
|
List<String> gridRelationIds = gridDTO.getRelationIdArray();
|
||||||
|
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) {
|
||||||
|
gridRelationIds.add(gridRelationDTO.getRelationId());
|
||||||
|
}
|
||||||
|
gridDTO.setRelationIdArray(gridRelationIds);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置关联
|
* 设置关联
|
||||||
*
|
*
|
||||||
@ -357,4 +422,31 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
|
|||||||
return gridGroups;
|
return gridGroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到面积,单位平方米
|
||||||
|
*
|
||||||
|
* @param gridPointVOs
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Double getSquare(List<GridPointVO> gridPointVOs) {
|
||||||
|
List<Point> points = new ArrayList<>();
|
||||||
|
for (GridPointVO gridPointVO : gridPointVOs) {
|
||||||
|
Point point = new Point(Double.valueOf(gridPointVO.getLng()), Double.valueOf(gridPointVO.getLat()));
|
||||||
|
points.add(point);
|
||||||
|
}
|
||||||
|
return PointUtil.getSqua(points);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域最后网格
|
||||||
|
*
|
||||||
|
* @param areaCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private GridPO getAreaLastPO(String areaCode) {
|
||||||
|
Map<String, Object> params = getHashMap(2);
|
||||||
|
params.put("areaCode", areaCode);
|
||||||
|
return gridDao.getAreaLastPO(params);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,96 @@
|
|||||||
|
package ink.wgink.module.map.service.grid.impl;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import ink.wgink.common.base.DefaultBaseService;
|
||||||
|
import ink.wgink.interfaces.user.IUserBaseService;
|
||||||
|
import ink.wgink.module.map.pojo.dtos.grid.GridRelationDTO;
|
||||||
|
import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO;
|
||||||
|
import ink.wgink.module.map.service.grid.IGridRelationService;
|
||||||
|
import ink.wgink.module.map.service.grid.IGridUserService;
|
||||||
|
import ink.wgink.pojo.ListPage;
|
||||||
|
import ink.wgink.pojo.dtos.user.UserDTO;
|
||||||
|
import ink.wgink.pojo.result.SuccessResultList;
|
||||||
|
import ink.wgink.pojo.vos.IdsVO;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: GridUserServiceImpl
|
||||||
|
* @Description: 网格用户
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2021/10/20 5:43 下午
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class GridUserServiceImpl extends DefaultBaseService implements IGridUserService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IUserBaseService userBaseService;
|
||||||
|
@Autowired
|
||||||
|
private IGridRelationService gridRelationService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(String gridId, List<String> userIds) {
|
||||||
|
gridRelationService.delete(gridId, userIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(String gridId, IdsVO idsVO) {
|
||||||
|
// 删除全部关联关系
|
||||||
|
gridRelationService.delete(gridId);
|
||||||
|
List<String> userIds = idsVO.getIds();
|
||||||
|
if (userIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gridRelationService.save(gridId, userIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> listUserId(String gridId, Map<String, Object> params) {
|
||||||
|
return gridRelationService.listRelationId(gridId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GridUserDTO> list(String gridId, Map<String, Object> params) {
|
||||||
|
List<GridRelationDTO> gridRelationDTOs = gridRelationService.listByGridId(gridId);
|
||||||
|
if (gridRelationDTOs.isEmpty()) {
|
||||||
|
return new ArrayList();
|
||||||
|
}
|
||||||
|
Set<String> userIdSet = new HashSet<>();
|
||||||
|
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) {
|
||||||
|
userIdSet.add(gridRelationDTO.getRelationId());
|
||||||
|
}
|
||||||
|
List<UserDTO> userDTOs = userBaseService.listByUserIds(new ArrayList<>(userIdSet));
|
||||||
|
if (userDTOs.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
List<GridUserDTO> gridUserDTOs = new ArrayList<>();
|
||||||
|
for (UserDTO userDTO : userDTOs) {
|
||||||
|
GridUserDTO gridUserDTO = new GridUserDTO();
|
||||||
|
gridUserDTO.setGridId(gridId);
|
||||||
|
BeanUtils.copyProperties(userDTO, gridUserDTO);
|
||||||
|
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) {
|
||||||
|
if (StringUtils.equals(gridUserDTO.getUserId(), gridRelationDTO.getRelationId())) {
|
||||||
|
gridUserDTO.setGmtCreate(gridRelationDTO.getGmtCreate());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gridUserDTOs.add(gridUserDTO);
|
||||||
|
}
|
||||||
|
return gridUserDTOs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SuccessResultList<List<GridUserDTO>> listPage(String gridId, ListPage page) {
|
||||||
|
PageHelper.startPage(page.getPage(), page.getRows());
|
||||||
|
List<GridUserDTO> gridUserDTOs = list(gridId, page.getParams());
|
||||||
|
PageInfo<GridUserDTO> pageInfo = new PageInfo<>(gridUserDTOs);
|
||||||
|
return new SuccessResultList<>(gridUserDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -18,6 +18,7 @@
|
|||||||
<result column="fill_color" property="fillColor"/>
|
<result column="fill_color" property="fillColor"/>
|
||||||
<result column="relation_id" property="relationId"/>
|
<result column="relation_id" property="relationId"/>
|
||||||
<result column="gmt_create" property="gmtCreate"/>
|
<result column="gmt_create" property="gmtCreate"/>
|
||||||
|
<result column="gmt_modified" property="gmtModified"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<resultMap id="gridPO" type="ink.wgink.module.map.pojo.pos.grid.GridPO">
|
<resultMap id="gridPO" type="ink.wgink.module.map.pojo.pos.grid.GridPO">
|
||||||
@ -109,7 +110,12 @@
|
|||||||
modifier = #{modifier},
|
modifier = #{modifier},
|
||||||
gmt_modified = #{gmtModified}
|
gmt_modified = #{gmtModified}
|
||||||
WHERE
|
WHERE
|
||||||
grid_id = #{gridId}
|
<if test="gridIds != null and gridIds.size > 0">
|
||||||
|
grid_id IN
|
||||||
|
<foreach collection="gridIds" index="index" open="(" separator="," close=")">
|
||||||
|
#{gridIds[${index}]}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 删除网格 -->
|
<!-- 删除网格 -->
|
||||||
@ -136,6 +142,18 @@
|
|||||||
<if test="gridName != null and gridName != ''">
|
<if test="gridName != null and gridName != ''">
|
||||||
grid_name = #{gridName},
|
grid_name = #{gridName},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="gridSummary != null">
|
||||||
|
grid_summary = #{gridSummary},
|
||||||
|
</if>
|
||||||
|
<if test="gridGroupId != null">
|
||||||
|
grid_group_id = #{gridGroupId},
|
||||||
|
</if>
|
||||||
|
<if test="gridDuty != null">
|
||||||
|
grid_duty = #{gridDuty},
|
||||||
|
</if>
|
||||||
|
<if test="gridSquare != null">
|
||||||
|
grid_square = #{gridSquare},
|
||||||
|
</if>
|
||||||
<if test="fillColor != null and fillColor != ''">
|
<if test="fillColor != null and fillColor != ''">
|
||||||
fill_color = #{fillColor},
|
fill_color = #{fillColor},
|
||||||
</if>
|
</if>
|
||||||
@ -194,6 +212,11 @@
|
|||||||
AND
|
AND
|
||||||
grid_id = #{gridId}
|
grid_id = #{gridId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="keywords != null and keywords != ''">
|
||||||
|
AND (
|
||||||
|
grid_name LIKE CONCAT('%', #{keywords}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 网格列表 -->
|
<!-- 网格列表 -->
|
||||||
@ -208,7 +231,9 @@
|
|||||||
t1.grid_square,
|
t1.grid_square,
|
||||||
t1.area_code,
|
t1.area_code,
|
||||||
t1.area_name,
|
t1.area_name,
|
||||||
t1.fill_color
|
t1.fill_color,
|
||||||
|
LEFT(t1.gmt_create, 19) gmt_create,
|
||||||
|
LEFT(t1.gmt_modified, 19) gmt_modified
|
||||||
FROM
|
FROM
|
||||||
map_grid t1
|
map_grid t1
|
||||||
WHERE
|
WHERE
|
||||||
@ -220,6 +245,10 @@
|
|||||||
#{gridIds[${index}]}
|
#{gridIds[${index}]}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
|
<if test="areaCode != null and areaCode != ''">
|
||||||
|
AND
|
||||||
|
t1.area_code = #{areaCode}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 网格列表(group) -->
|
<!-- 网格列表(group) -->
|
||||||
@ -245,4 +274,33 @@
|
|||||||
t1.grid_name
|
t1.grid_name
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 区域最后网格 -->
|
||||||
|
<select id="getAreaLastPO" parameterType="map" resultMap="gridPO" useCache="false">
|
||||||
|
SELECT
|
||||||
|
grid_id,
|
||||||
|
grid_name,
|
||||||
|
grid_summary,
|
||||||
|
grid_group_id,
|
||||||
|
grid_duty,
|
||||||
|
grid_code,
|
||||||
|
grid_square,
|
||||||
|
area_code,
|
||||||
|
area_name,
|
||||||
|
fill_color,
|
||||||
|
gmt_create,
|
||||||
|
creator,
|
||||||
|
gmt_modified,
|
||||||
|
modifier,
|
||||||
|
is_delete
|
||||||
|
FROM
|
||||||
|
map_grid
|
||||||
|
WHERE
|
||||||
|
is_delete = 0
|
||||||
|
AND
|
||||||
|
area_code = #{areaCode}
|
||||||
|
ORDER BY
|
||||||
|
grid_code DESC
|
||||||
|
LIMIT 1
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
@ -15,8 +15,8 @@
|
|||||||
CREATE TABLE IF NOT EXISTS `map_grid_point` (
|
CREATE TABLE IF NOT EXISTS `map_grid_point` (
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`grid_id` char(36) DEFAULT NULL COMMENT '网格ID',
|
`grid_id` char(36) DEFAULT NULL COMMENT '网格ID',
|
||||||
`point_lng` varchar(255) DEFAULT NULL COMMENT '点经度',
|
`lng` varchar(255) DEFAULT NULL COMMENT '点经度',
|
||||||
`point_lat` varchar(255) DEFAULT NULL COMMENT '点维度',
|
`lat` varchar(255) DEFAULT NULL COMMENT '点维度',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网格点';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网格点';
|
||||||
</update>
|
</update>
|
||||||
@ -25,12 +25,12 @@
|
|||||||
<insert id="save" parameterType="map" flushCache="true">
|
<insert id="save" parameterType="map" flushCache="true">
|
||||||
INSERT INTO map_grid_point(
|
INSERT INTO map_grid_point(
|
||||||
grid_id,
|
grid_id,
|
||||||
point_lng,
|
lng,
|
||||||
point_lat
|
lat
|
||||||
) VALUES(
|
) VALUES(
|
||||||
#{gridId},
|
#{gridId},
|
||||||
#{pointLng},
|
#{lng},
|
||||||
#{pointLat}
|
#{lat}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
@ -54,8 +54,8 @@
|
|||||||
<select id="list" parameterType="map" resultMap="gridPointDTO" useCache="true">
|
<select id="list" parameterType="map" resultMap="gridPointDTO" useCache="true">
|
||||||
SELECT
|
SELECT
|
||||||
grid_id,
|
grid_id,
|
||||||
point_lng,
|
lng,
|
||||||
point_lat
|
lat
|
||||||
FROM
|
FROM
|
||||||
map_grid_point
|
map_grid_point
|
||||||
<where>
|
<where>
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
gmt_create
|
gmt_create
|
||||||
) VALUES(
|
) VALUES(
|
||||||
#{gridId},
|
#{gridId},
|
||||||
#{relationId}
|
#{relationId},
|
||||||
#{gmtCreate}
|
#{gmtCreate}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
@ -53,6 +53,13 @@
|
|||||||
AND
|
AND
|
||||||
relation_id = #{relationId}
|
relation_id = #{relationId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="relationIds != null and relationIds.size > 0">
|
||||||
|
AND
|
||||||
|
relation_id IN
|
||||||
|
<foreach collection="relationIds" index="index" open="(" separator="," close=")">
|
||||||
|
#{relationIds[${index}]}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
@ -60,7 +67,7 @@
|
|||||||
<select id="list" parameterType="map" resultMap="gridRelationDTO" useCache="true">
|
<select id="list" parameterType="map" resultMap="gridRelationDTO" useCache="true">
|
||||||
SELECT
|
SELECT
|
||||||
relation_id,
|
relation_id,
|
||||||
LEFT(gmt_create, 19) gmt_create
|
LEFT(gmt_create, 19) gmt_create,
|
||||||
grid_id
|
grid_id
|
||||||
FROM
|
FROM
|
||||||
map_grid_relation
|
map_grid_relation
|
||||||
|
@ -7,8 +7,6 @@ var mapConfig = {
|
|||||||
onGridStopEdit: function (gridArray) {
|
onGridStopEdit: function (gridArray) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// BMap
|
|
||||||
// BMapGL
|
|
||||||
|
|
||||||
function BaiduMap(mapId, mapConfig) {
|
function BaiduMap(mapId, mapConfig) {
|
||||||
this.map = new BMap.Map(mapId, {enableMapClick: false});
|
this.map = new BMap.Map(mapId, {enableMapClick: false});
|
||||||
@ -849,6 +847,10 @@ BaiduMap.prototype.initGridOptionEvent = function () {
|
|||||||
if (self.gridOption.editGrid.isEdit) {
|
if (self.gridOption.editGrid.isEdit) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 判断是否只能绘制一个网格
|
||||||
|
if(self.mapConfig.single && self.gridOption.gridArray.length > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 隐藏结束编辑按钮
|
// 隐藏结束编辑按钮
|
||||||
self.hideStopOptionBtn();
|
self.hideStopOptionBtn();
|
||||||
var point = new BMap.Point(event.point.lng, event.point.lat);
|
var point = new BMap.Point(event.point.lng, event.point.lat);
|
||||||
|
147
module-map/src/main/resources/templates/grid/grid/get.html
Normal file
147
module-map/src/main/resources/templates/grid/grid/get.html
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<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">
|
||||||
|
<style>
|
||||||
|
.layui-form-label-up {width: 100% !important; height: 30px !important; line-height: 30px !important; border: none !important; padding: 0px !important; font-size: 15px; background-color: transparent !important; text-align: left !important;}
|
||||||
|
.layui-input-block-down {margin: 0px !important; left: 0px !important;}
|
||||||
|
.layui-input-block-down .layui-form-select .layui-edge {top: 74%;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="layui-anim layui-anim-fadein">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body" style="padding: 15px;">
|
||||||
|
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||||
|
<div id="baiduMapContainer"></div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||||
|
<script type="text/javascript" src="static/baidu-map/baidu-map-1.0.0.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 $win = $(window);
|
||||||
|
var form = layui.form;
|
||||||
|
var laytpl = layui.laytpl;
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
var queryParams = top.restAjax.params(window.location.href);
|
||||||
|
var gridId = queryParams.gridId;
|
||||||
|
var centerPoint = {
|
||||||
|
lng: queryParams.cplng,
|
||||||
|
lat: queryParams.cplat
|
||||||
|
}
|
||||||
|
|
||||||
|
var baiduMap = null;
|
||||||
|
var gridMember = {
|
||||||
|
users: [],
|
||||||
|
gridArray: []
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeBox() {
|
||||||
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化网格背景
|
||||||
|
function initGridBG(areaCode, callback) {
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/list/except/{gridId}', [gridId]), {
|
||||||
|
areaCode: areaCode
|
||||||
|
}, null, function(code, data) {
|
||||||
|
var gridArray = [];
|
||||||
|
for(var i = 0, item; item = data[i++];) {
|
||||||
|
var pointArray = [];
|
||||||
|
for(var j = 0, jItem; jItem = item.pointArray[j++];) {
|
||||||
|
pointArray.push(new BaiduMap.Point(jItem.lng, jItem.lat));
|
||||||
|
}
|
||||||
|
gridArray.push({
|
||||||
|
id: item.gridId,
|
||||||
|
label: item.gridName,
|
||||||
|
fillColor: '#ffffff',
|
||||||
|
pointArray: pointArray
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
baiduMap.initBackgroundGrid({
|
||||||
|
gridArray: gridArray
|
||||||
|
});
|
||||||
|
|
||||||
|
callback ? callback() : '';
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function initMap(callback) {
|
||||||
|
$('#baiduMapContainer').css({
|
||||||
|
width: '100%',
|
||||||
|
height: ($win.height() - 30) +'px'
|
||||||
|
});
|
||||||
|
baiduMap = new BaiduMap('baiduMapContainer', {
|
||||||
|
single: true,
|
||||||
|
onGridStartEdit: function(baiduMap) {
|
||||||
|
$('#confirmBtn').hide();
|
||||||
|
},
|
||||||
|
onGridStopEdit: function(gridArray) {
|
||||||
|
gridMember.gridArray = gridArray;
|
||||||
|
$('#confirmBtn').show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
baiduMap.setCenterAndZoom(centerPoint, 14);
|
||||||
|
var mapTypeControl = new BMap.MapTypeControl({
|
||||||
|
mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP],
|
||||||
|
});
|
||||||
|
baiduMap.getMap().addControl(mapTypeControl);
|
||||||
|
baiduMap.setDefaultConfig();
|
||||||
|
baiduMap.initGridOptionEvent();
|
||||||
|
baiduMap.initColorOption();
|
||||||
|
callback ? callback() : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化内容
|
||||||
|
function initData() {
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/get/{gridId}', [gridId]), {}, null, function(code, data) {
|
||||||
|
initMap(function() {
|
||||||
|
// 背景层
|
||||||
|
initGridBG(data.areaCode, function() {
|
||||||
|
// 网格层
|
||||||
|
var grid = new BaiduMap.Grid(data.gridId, data.pointArray);
|
||||||
|
grid.setFillColor(data.fillColor);
|
||||||
|
baiduMap.setGridArray([grid]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}, 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();
|
||||||
|
|
||||||
|
// 校验
|
||||||
|
form.verify({
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
325
module-map/src/main/resources/templates/grid/grid/list.html
Normal file
325
module-map/src/main/resources/templates/grid/grid/list.html
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<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">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="layui-fluid layui-anim layui-anim-fadein">
|
||||||
|
<div class="layui-row">
|
||||||
|
<div class="layui-col-md12">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<input type="text" id="keywords" class="layui-input search-item search-item-width-100" placeholder="输入关键字">
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: 'assets/layuiadmin/'
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index'
|
||||||
|
}).use(['index', 'table', 'laydate', 'common'], function() {
|
||||||
|
var $ = layui.$;
|
||||||
|
var $win = $(window);
|
||||||
|
var table = layui.table;
|
||||||
|
var admin = layui.admin;
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
var common = layui.common;
|
||||||
|
var resizeTimeout = null;
|
||||||
|
var tableUrl = 'api/grid/listpage';
|
||||||
|
var queryParams = top.restAjax.params(window.location.href);
|
||||||
|
var cplng = queryParams.cplng ? queryParams.cplng : 111.848937;
|
||||||
|
var cplat = queryParams.cplat ? queryParams.cplat : 40.904095;
|
||||||
|
|
||||||
|
// 初始化表格
|
||||||
|
function initTable() {
|
||||||
|
table.render({
|
||||||
|
elem: '#dataTable',
|
||||||
|
id: 'dataTable',
|
||||||
|
url: top.restAjax.path(tableUrl, []),
|
||||||
|
width: admin.screen() > 1 ? '100%' : '',
|
||||||
|
height: $win.height() - 90,
|
||||||
|
limit: 20,
|
||||||
|
limits: [20, 40, 60, 80, 100, 200],
|
||||||
|
toolbar: '#headerToolBar',
|
||||||
|
request: {
|
||||||
|
pageName: 'page',
|
||||||
|
limitName: 'rows'
|
||||||
|
},
|
||||||
|
cols: [
|
||||||
|
[
|
||||||
|
{type:'checkbox', fixed: 'left'},
|
||||||
|
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
||||||
|
{field: 'gridName', width: 120, title: '网格名称', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gridDuty', width: 120, title: '职责', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gridSummary', width: 180, title: '描述', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gridCode', width: 180, title: '网格编码', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'areaName', width: 180, title: '地区名称', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'areaCode', width: 180, title: '地区编码', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gridSquare', width: 180, title: '单元网格面积', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData + ' ㎡';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gmtCreate', width: 180, title: '创建时间', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'gmtModified', width: 180, title: '修改时间', align:'center',
|
||||||
|
templet: function(row) {
|
||||||
|
var rowData = row[this.field];
|
||||||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return rowData;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field: 'operation', width: 150, title: '操作', align:'center', fixed: 'right',
|
||||||
|
templet: function(row) {
|
||||||
|
return '<div class="layui-btn-group">' +
|
||||||
|
'<button class="layui-btn layui-btn-xs" lay-event="gridEvent">查看网格</button>' +
|
||||||
|
'<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="userEvent">网格人员</button>' +
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
page: true,
|
||||||
|
parseData: function(data) {
|
||||||
|
return {
|
||||||
|
'code': 0,
|
||||||
|
'msg': '',
|
||||||
|
'count': data.total,
|
||||||
|
'data': data.rows
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 重载表格
|
||||||
|
function reloadTable(currentPage) {
|
||||||
|
table.reload('dataTable', {
|
||||||
|
url: top.restAjax.path(tableUrl, []),
|
||||||
|
where: {
|
||||||
|
keywords: $('#keywords').val(),
|
||||||
|
startTime: $('#startTime').val(),
|
||||||
|
endTime: $('#endTime').val()
|
||||||
|
},
|
||||||
|
page: {
|
||||||
|
curr: currentPage
|
||||||
|
},
|
||||||
|
height: $win.height() - 90,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 初始化日期
|
||||||
|
function initDate() {
|
||||||
|
// 日期选择
|
||||||
|
laydate.render({
|
||||||
|
elem: '#startTime',
|
||||||
|
format: 'yyyy-MM-dd'
|
||||||
|
});
|
||||||
|
laydate.render({
|
||||||
|
elem: '#endTime',
|
||||||
|
format: 'yyyy-MM-dd'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
function removeData(ids) {
|
||||||
|
top.dialog.msg(top.dataMessage.delete, {
|
||||||
|
time: 0,
|
||||||
|
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||||
|
shade: 0.3,
|
||||||
|
yes: function (index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.delete(top.restAjax.path('api/grid/remove/{ids}', [ids]), {}, null, function (code, data) {
|
||||||
|
top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000});
|
||||||
|
reloadTable();
|
||||||
|
}, function (code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.deleting, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initTable();
|
||||||
|
initDate();
|
||||||
|
// 事件 - 页面变化
|
||||||
|
$win.on('resize', function() {
|
||||||
|
clearTimeout(resizeTimeout);
|
||||||
|
resizeTimeout = setTimeout(function() {
|
||||||
|
reloadTable();
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
// 事件 - 搜索
|
||||||
|
$(document).on('click', '#search', function() {
|
||||||
|
reloadTable(1);
|
||||||
|
});
|
||||||
|
// 事件 - 增删改
|
||||||
|
table.on('toolbar(dataTable)', function(obj) {
|
||||||
|
var layEvent = obj.event;
|
||||||
|
var checkStatus = table.checkStatus('dataTable');
|
||||||
|
var checkDatas = checkStatus.data;
|
||||||
|
if(layEvent === 'saveEvent') {
|
||||||
|
layer.open({
|
||||||
|
type: 2,
|
||||||
|
title: false,
|
||||||
|
closeBtn: 0,
|
||||||
|
area: ['100%', '100%'],
|
||||||
|
shadeClose: true,
|
||||||
|
anim: 2,
|
||||||
|
content: top.restAjax.path('route/grid/save?cplng={cplng}&cplat={cplat}', [cplng, cplat]),
|
||||||
|
end: function() {
|
||||||
|
reloadTable();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if(layEvent === 'updateEvent') {
|
||||||
|
if(checkDatas.length === 0) {
|
||||||
|
top.dialog.msg(top.dataMessage.table.selectEdit);
|
||||||
|
} else if(checkDatas.length > 1) {
|
||||||
|
top.dialog.msg(top.dataMessage.table.selectOneEdit);
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
type: 2,
|
||||||
|
title: false,
|
||||||
|
closeBtn: 0,
|
||||||
|
area: ['100%', '100%'],
|
||||||
|
shadeClose: true,
|
||||||
|
anim: 2,
|
||||||
|
content: top.restAjax.path('route/grid/update?gridId={gridId}&cplng={cplng}&cplat={cplat}', [checkDatas[0].gridId, cplng, cplat]),
|
||||||
|
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['gridId'];
|
||||||
|
}
|
||||||
|
removeData(ids);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
table.on('tool(dataTable)', function(obj) {
|
||||||
|
var data = obj.data;
|
||||||
|
var layEvent = obj.event;
|
||||||
|
if(layEvent === 'gridEvent') {
|
||||||
|
top.dialog.open({
|
||||||
|
url: top.restAjax.path('route/grid/get?gridId={gridId}&cplng={cplng}&cplat={cplat}', [data.gridId, cplng, cplat]),
|
||||||
|
title: '【'+ data.gridName +'】网格',
|
||||||
|
width: '80%',
|
||||||
|
height: '80%',
|
||||||
|
onClose: function() {}
|
||||||
|
});
|
||||||
|
} else if(layEvent === 'userEvent') {
|
||||||
|
top.dialog.open({
|
||||||
|
url: top.restAjax.path('route/grid/user/list?gridId={gridId}', [data.gridId]),
|
||||||
|
title: '【'+ data.gridName +'】网格的用户列表',
|
||||||
|
width: '800px',
|
||||||
|
height: '500px',
|
||||||
|
onClose: function() {}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
351
module-map/src/main/resources/templates/grid/grid/save.html
Normal file
351
module-map/src/main/resources/templates/grid/grid/save.html
Normal file
@ -0,0 +1,351 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<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">
|
||||||
|
<style>
|
||||||
|
.layui-form-label-up {width: 100% !important; height: 30px !important; line-height: 30px !important; border: none !important; padding: 0px !important; font-size: 15px; background-color: transparent !important; text-align: left !important;}
|
||||||
|
.layui-input-block-down {margin: 0px !important; left: 0px !important;}
|
||||||
|
.layui-input-block-down .layui-form-select .layui-edge {top: 74%;}
|
||||||
|
</style>
|
||||||
|
</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; position: relative; overflow: hidden;">
|
||||||
|
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||||
|
<div class="layui-row layui-col-space15">
|
||||||
|
<div id="formContainer" class="layui-col-xs2">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格组</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down layui-form" id="gridGroupIdTemplateBox" lay-filter="gridGroupIdTemplateBox"></div>
|
||||||
|
<script id="gridGroupIdTemplate" type="text/html">
|
||||||
|
<select id="gridGroupId" name="gridGroupId" lay-filter="gridGroupId">
|
||||||
|
<option value="">选择网格组</option>
|
||||||
|
{{# for(var i = 0, item; item = d[i++];) { }}
|
||||||
|
<option value="{{item.gridGroupId}}">{{item.gridGroupName}}</option>
|
||||||
|
{{# } }}
|
||||||
|
</select>
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格名称</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridName" name="gridName" class="layui-input" value="" placeholder="请输入网格名称" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格描述</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridSummary" name="gridSummary" class="layui-input" value="" placeholder="请输入网格描述" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格职责</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridDuty" name="gridDuty" class="layui-input" value="" placeholder="请输入网格职责" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">选择地区</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="hidden" id="areaCode" name="areaCode">
|
||||||
|
<input type="text" id="areaName" name="areaName" class="layui-input" value="" placeholder="请选择地区" maxlength="255" readonly lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">添加人员</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="hidden" id="userIds" name="userIds">
|
||||||
|
<input type="text" id="userNames" name="userNames" class="layui-input" value="" placeholder="选择人员" maxlength="255" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item layui-layout-admin">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<div class="layui-footer" style="left: 0;">
|
||||||
|
<button id="confirmBtn" type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
|
||||||
|
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-xs10">
|
||||||
|
<div id="baiduMapContainer"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||||
|
<script type="text/javascript" src="static/baidu-map/baidu-map-1.0.0.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 $win = $(window);
|
||||||
|
var form = layui.form;
|
||||||
|
var laytpl = layui.laytpl;
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
var queryParams = top.restAjax.params(window.location.href);
|
||||||
|
var centerPoint = {
|
||||||
|
lng: queryParams.cplng,
|
||||||
|
lat: queryParams.cplat
|
||||||
|
}
|
||||||
|
|
||||||
|
var baiduMap = null;
|
||||||
|
var gridMember = {
|
||||||
|
users: [],
|
||||||
|
gridArray: []
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeBox() {
|
||||||
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||||
|
}
|
||||||
|
|
||||||
|
function initSelectRadioCheckboxTemplate(templateId, templateBoxId, data, callback) {
|
||||||
|
laytpl(document.getElementById(templateId).innerHTML).render(data, function(html) {
|
||||||
|
document.getElementById(templateBoxId).innerHTML = html;
|
||||||
|
});
|
||||||
|
form.render('select', templateBoxId);
|
||||||
|
if(callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化网格组下拉选择
|
||||||
|
function initGridGroupSelect(selectValue) {
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid-group/list', []), {
|
||||||
|
}, null, function(code, data, args) {
|
||||||
|
initSelectRadioCheckboxTemplate('gridGroupIdTemplate', 'gridGroupIdTemplateBox', data, function() {
|
||||||
|
var selectObj = {};
|
||||||
|
selectObj['gridGroupId'] = selectValue;
|
||||||
|
form.val('dataForm', selectObj);
|
||||||
|
});
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function initMap() {
|
||||||
|
$('#formContainer').css({
|
||||||
|
height: ($win.height() - 145) +'px',
|
||||||
|
overflow: 'auto'
|
||||||
|
})
|
||||||
|
$('#baiduMapContainer').css({
|
||||||
|
width: '100%',
|
||||||
|
height: ($win.height() - 145) +'px'
|
||||||
|
});
|
||||||
|
baiduMap = new BaiduMap('baiduMapContainer', {
|
||||||
|
single: true,
|
||||||
|
onGridStartEdit: function(baiduMap) {
|
||||||
|
if(!$('#areaCode').val()) {
|
||||||
|
top.dialog.msg('请选择地区');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$('#confirmBtn').hide();
|
||||||
|
},
|
||||||
|
onGridStopEdit: function(gridArray) {
|
||||||
|
gridMember.gridArray = gridArray;
|
||||||
|
$('#confirmBtn').show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
baiduMap.setCenterAndZoom(centerPoint, 14);
|
||||||
|
var mapTypeControl = new BMap.MapTypeControl({
|
||||||
|
mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP],
|
||||||
|
});
|
||||||
|
baiduMap.getMap().addControl(mapTypeControl);
|
||||||
|
baiduMap.setDefaultConfig();
|
||||||
|
baiduMap.initGridOption();
|
||||||
|
baiduMap.initGridOptionEvent();
|
||||||
|
baiduMap.initColorOption();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化内容
|
||||||
|
function initData() {
|
||||||
|
initGridGroupSelect();
|
||||||
|
initMap();
|
||||||
|
}
|
||||||
|
initData();
|
||||||
|
|
||||||
|
// 初始化网格背景
|
||||||
|
function initGridBG(areaCode) {
|
||||||
|
baiduMap.clearMap();
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/list', []), {
|
||||||
|
areaCode: areaCode
|
||||||
|
}, null, function(code, data) {
|
||||||
|
var gridArray = [];
|
||||||
|
for(var i = 0, item; item = data[i++];) {
|
||||||
|
var pointArray = [];
|
||||||
|
for(var j = 0, jItem; jItem = item.pointArray[j++];) {
|
||||||
|
pointArray.push(new BaiduMap.Point(jItem.lng, jItem.lat));
|
||||||
|
}
|
||||||
|
gridArray.push({
|
||||||
|
id: item.gridId,
|
||||||
|
label: item.gridName,
|
||||||
|
fillColor: item.fillColor,
|
||||||
|
pointArray: pointArray
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
baiduMap.initBackgroundGrid({
|
||||||
|
gridArray: gridArray
|
||||||
|
});
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化编辑网格
|
||||||
|
function initEditGrid(areaCode, userIds) {
|
||||||
|
baiduMap.clearMap();
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/list', []), {
|
||||||
|
areaCode: areaCode,
|
||||||
|
userIds: userIds ? userIds : ''
|
||||||
|
}, null, function(code, data) {
|
||||||
|
var grids = [];
|
||||||
|
for(var i = 0, item; item = data[i++];) {
|
||||||
|
grids.push(item.grid);
|
||||||
|
}
|
||||||
|
// 设置编辑网格
|
||||||
|
baiduMap.setGridArray(grids);
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#areaName').on('click', function() {
|
||||||
|
top.dialog.open({
|
||||||
|
title: '选择地区',
|
||||||
|
url: top.restAjax.path('route/area/get-select?areaName={areaName}', [encodeURI($('#areaName').val())]),
|
||||||
|
width: '600px',
|
||||||
|
height: '225px',
|
||||||
|
onClose: function() {
|
||||||
|
var selectedAreaArray = top.dialog.dialogData.selectedAreaArray;
|
||||||
|
var areaCode = '';
|
||||||
|
var areaName = '';
|
||||||
|
if(selectedAreaArray.length > 0) {
|
||||||
|
areaCode = selectedAreaArray[selectedAreaArray.length - 1].areaCode;
|
||||||
|
for(var i = 0, item; item = selectedAreaArray[i++];) {
|
||||||
|
if(areaName) {
|
||||||
|
areaName += '/';
|
||||||
|
}
|
||||||
|
areaName += item.areaName;
|
||||||
|
}
|
||||||
|
initGridBG(areaCode);
|
||||||
|
}
|
||||||
|
$('#areaCode').val(areaCode);
|
||||||
|
$('#areaName').val(areaName);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#userNames').on('click', function() {
|
||||||
|
top.dialog.dialogData.selectedUserIds = $('#userIds').val();
|
||||||
|
top.dialog.open({
|
||||||
|
url: top.restAjax.path('route/department/user/select-user', []),
|
||||||
|
title: '选择用户',
|
||||||
|
width: '500px',
|
||||||
|
height: '500px',
|
||||||
|
onClose: function() {
|
||||||
|
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||||
|
// 这里写处理逻辑
|
||||||
|
var userIds = '';
|
||||||
|
var userNames = '';
|
||||||
|
if(selectedUsers && selectedUsers.length > 0) {
|
||||||
|
var relationArray = [];
|
||||||
|
for(var i = 0, item; item = selectedUsers[i++];) {
|
||||||
|
if(userIds) {
|
||||||
|
userIds += '_';
|
||||||
|
}
|
||||||
|
if(userNames) {
|
||||||
|
userNames += ',';
|
||||||
|
}
|
||||||
|
userIds += item.userId;
|
||||||
|
userNames += item.userName;
|
||||||
|
relationArray.push(new BaiduMap.Relation(item.userId, item.userName));
|
||||||
|
}
|
||||||
|
gridMember.users = relationArray;
|
||||||
|
}
|
||||||
|
$('#userIds').val(userIds);
|
||||||
|
$('#userNames').val(userNames);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
// 提交表单
|
||||||
|
form.on('submit(submitForm)', function(formData) {
|
||||||
|
if(gridMember.gridArray.length == 0) {
|
||||||
|
top.dialog.msg('请添加网格');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
formData.field.grid = gridMember.gridArray[0];
|
||||||
|
var relationIdArray = [];
|
||||||
|
for(var i = 0, item; item = gridMember.users[i++];) {
|
||||||
|
relationIdArray.push(item.id);
|
||||||
|
}
|
||||||
|
formData.field.grid.relationIdArray = relationIdArray;
|
||||||
|
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
var loadLayerIndex;
|
||||||
|
top.restAjax.post(top.restAjax.path('api/grid/save', []), formData.field, null, function(code, data) {
|
||||||
|
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
|
||||||
|
time: 0,
|
||||||
|
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||||
|
shade: 0.3,
|
||||||
|
yes: function(index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
window.location.reload();
|
||||||
|
},
|
||||||
|
btn2: function() {
|
||||||
|
closeBox();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function() {
|
||||||
|
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function() {
|
||||||
|
top.dialog.close(loadLayerIndex);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.close').on('click', function() {
|
||||||
|
closeBox();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 校验
|
||||||
|
form.verify({
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
305
module-map/src/main/resources/templates/grid/grid/update.html
Normal file
305
module-map/src/main/resources/templates/grid/grid/update.html
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<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">
|
||||||
|
<style>
|
||||||
|
.layui-form-label-up {width: 100% !important; height: 30px !important; line-height: 30px !important; border: none !important; padding: 0px !important; font-size: 15px; background-color: transparent !important; text-align: left !important;}
|
||||||
|
.layui-input-block-down {margin: 0px !important; left: 0px !important;}
|
||||||
|
.layui-input-block-down .layui-form-select .layui-edge {top: 74%;}
|
||||||
|
</style>
|
||||||
|
</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-row layui-col-space15">
|
||||||
|
<div id="formContainer" class="layui-col-xs2">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格组</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down layui-form" id="gridGroupIdTemplateBox" lay-filter="gridGroupIdTemplateBox"></div>
|
||||||
|
<script id="gridGroupIdTemplate" type="text/html">
|
||||||
|
<select id="gridGroupId" name="gridGroupId" lay-filter="gridGroupId">
|
||||||
|
<option value="">选择网格组</option>
|
||||||
|
{{# for(var i = 0, item; item = d[i++];) { }}
|
||||||
|
<option value="{{item.gridGroupId}}">{{item.gridGroupName}}</option>
|
||||||
|
{{# } }}
|
||||||
|
</select>
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格名称</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridName" name="gridName" class="layui-input" value="" placeholder="请输入网格名称" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格描述</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridSummary" name="gridSummary" class="layui-input" value="" placeholder="请输入网格描述" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label layui-form-label-up">网格职责</label>
|
||||||
|
<div class="layui-input-block layui-input-block-down">
|
||||||
|
<input type="text" id="gridDuty" name="gridDuty" class="layui-input" value="" placeholder="请输入网格职责" maxlength="255" lay-verify="required">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item layui-layout-admin">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<div class="layui-footer" style="left: 0;">
|
||||||
|
<button id="confirmBtn" type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
|
||||||
|
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-xs10">
|
||||||
|
<div id="baiduMapContainer"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||||
|
<script type="text/javascript" src="static/baidu-map/baidu-map-1.0.0.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 $win = $(window);
|
||||||
|
var form = layui.form;
|
||||||
|
var laytpl = layui.laytpl;
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
var queryParams = top.restAjax.params(window.location.href);
|
||||||
|
var gridId = queryParams.gridId;
|
||||||
|
var centerPoint = {
|
||||||
|
lng: queryParams.cplng,
|
||||||
|
lat: queryParams.cplat
|
||||||
|
}
|
||||||
|
|
||||||
|
var baiduMap = null;
|
||||||
|
var gridMember = {
|
||||||
|
users: [],
|
||||||
|
gridArray: []
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeBox() {
|
||||||
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||||
|
}
|
||||||
|
|
||||||
|
function initSelectRadioCheckboxTemplate(templateId, templateBoxId, data, callback) {
|
||||||
|
laytpl(document.getElementById(templateId).innerHTML).render(data, function(html) {
|
||||||
|
document.getElementById(templateBoxId).innerHTML = html;
|
||||||
|
});
|
||||||
|
form.render('select', templateBoxId);
|
||||||
|
if(callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化网格组下拉选择
|
||||||
|
function initGridGroupSelect(selectValue) {
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid-group/list', []), {
|
||||||
|
}, null, function(code, data, args) {
|
||||||
|
initSelectRadioCheckboxTemplate('gridGroupIdTemplate', 'gridGroupIdTemplateBox', data, function() {
|
||||||
|
var selectObj = {};
|
||||||
|
selectObj['gridGroupId'] = selectValue;
|
||||||
|
form.val('dataForm', selectObj);
|
||||||
|
});
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化网格背景
|
||||||
|
function initGridBG(areaCode, callback) {
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/list/except/{gridId}', [gridId]), {
|
||||||
|
areaCode: areaCode
|
||||||
|
}, null, function(code, data) {
|
||||||
|
var gridArray = [];
|
||||||
|
for(var i = 0, item; item = data[i++];) {
|
||||||
|
var pointArray = [];
|
||||||
|
for(var j = 0, jItem; jItem = item.pointArray[j++];) {
|
||||||
|
pointArray.push(new BaiduMap.Point(jItem.lng, jItem.lat));
|
||||||
|
}
|
||||||
|
gridArray.push({
|
||||||
|
id: item.gridId,
|
||||||
|
label: item.gridName,
|
||||||
|
fillColor: '#ffffff',
|
||||||
|
pointArray: pointArray
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
baiduMap.initBackgroundGrid({
|
||||||
|
gridArray: gridArray
|
||||||
|
});
|
||||||
|
|
||||||
|
callback ? callback() : '';
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function initMap(callback) {
|
||||||
|
$('#formContainer').css({
|
||||||
|
height: ($win.height() - 145) +'px',
|
||||||
|
overflow: 'auto'
|
||||||
|
})
|
||||||
|
$('#baiduMapContainer').css({
|
||||||
|
width: '100%',
|
||||||
|
height: ($win.height() - 145) +'px'
|
||||||
|
});
|
||||||
|
baiduMap = new BaiduMap('baiduMapContainer', {
|
||||||
|
single: true,
|
||||||
|
onGridStartEdit: function(baiduMap) {
|
||||||
|
$('#confirmBtn').hide();
|
||||||
|
},
|
||||||
|
onGridStopEdit: function(gridArray) {
|
||||||
|
gridMember.gridArray = gridArray;
|
||||||
|
$('#confirmBtn').show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
baiduMap.setCenterAndZoom(centerPoint, 14);
|
||||||
|
var mapTypeControl = new BMap.MapTypeControl({
|
||||||
|
mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP],
|
||||||
|
});
|
||||||
|
baiduMap.getMap().addControl(mapTypeControl);
|
||||||
|
baiduMap.setDefaultConfig();
|
||||||
|
baiduMap.initGridOption();
|
||||||
|
baiduMap.initGridOptionEvent();
|
||||||
|
baiduMap.initColorOption();
|
||||||
|
callback ? callback() : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化内容
|
||||||
|
function initData() {
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/get/{gridId}', [gridId]), {}, null, function(code, data) {
|
||||||
|
var dataFormData = {};
|
||||||
|
for(var i in data) {
|
||||||
|
dataFormData[i] = data[i] +'';
|
||||||
|
}
|
||||||
|
form.val('dataForm', dataFormData);
|
||||||
|
form.render(null, 'dataForm');
|
||||||
|
|
||||||
|
gridMember.gridArray = [{
|
||||||
|
id: data.gridId,
|
||||||
|
fillColor: data.fillColor,
|
||||||
|
pointArray: data.pointArray
|
||||||
|
}];
|
||||||
|
|
||||||
|
initGridGroupSelect(data.gridGroupId);
|
||||||
|
|
||||||
|
initMap(function() {
|
||||||
|
// 背景层
|
||||||
|
initGridBG(data.areaCode, function() {
|
||||||
|
// 网格层
|
||||||
|
var grid = new BaiduMap.Grid(data.gridId, data.pointArray);
|
||||||
|
grid.setFillColor(data.fillColor);
|
||||||
|
baiduMap.setGridArray([grid]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}, 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();
|
||||||
|
|
||||||
|
$('#areaName').on('click', function() {
|
||||||
|
top.dialog.open({
|
||||||
|
title: '选择地区',
|
||||||
|
url: top.restAjax.path('route/area/get-select?areaName={areaName}', [encodeURI($('#areaName').val())]),
|
||||||
|
width: '600px',
|
||||||
|
height: '225px',
|
||||||
|
onClose: function() {
|
||||||
|
var selectedAreaArray = top.dialog.dialogData.selectedAreaArray;
|
||||||
|
var areaCode = '';
|
||||||
|
var areaName = '';
|
||||||
|
if(selectedAreaArray.length > 0) {
|
||||||
|
areaCode = selectedAreaArray[selectedAreaArray.length - 1].areaCode;
|
||||||
|
for(var i = 0, item; item = selectedAreaArray[i++];) {
|
||||||
|
if(areaName) {
|
||||||
|
areaName += '/';
|
||||||
|
}
|
||||||
|
areaName += item.areaName;
|
||||||
|
}
|
||||||
|
initGridBG(areaCode);
|
||||||
|
}
|
||||||
|
$('#areaCode').val(areaCode);
|
||||||
|
$('#areaName').val(areaName);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
// 提交表单
|
||||||
|
form.on('submit(submitForm)', function(formData) {
|
||||||
|
if(gridMember.gridArray.length == 0) {
|
||||||
|
top.dialog.msg('请添加网格');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
formData.field.grid = gridMember.gridArray[0];
|
||||||
|
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
var loadLayerIndex;
|
||||||
|
top.restAjax.put(top.restAjax.path('api/grid/update/{gridId}', [gridId]), formData.field, null, function(code, data) {
|
||||||
|
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
|
||||||
|
time: 0,
|
||||||
|
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||||
|
shade: 0.3,
|
||||||
|
yes: function(index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
window.location.reload();
|
||||||
|
},
|
||||||
|
btn2: function() {
|
||||||
|
closeBox();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function() {
|
||||||
|
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function() {
|
||||||
|
top.dialog.close(loadLayerIndex);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.close').on('click', function() {
|
||||||
|
closeBox();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 校验
|
||||||
|
form.verify({
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
249
module-map/src/main/resources/templates/grid/grid/user/list.html
Normal file
249
module-map/src/main/resources/templates/grid/grid/user/list.html
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<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" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||||
|
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||||
|
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="layui-fluid layui-anim layui-anim-fadein" style="padding: 0;">
|
||||||
|
<div class="layui-row">
|
||||||
|
<div class="layui-col-md12">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
|
||||||
|
</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-danger layui-btn-sm" lay-event="removeEvent">
|
||||||
|
<i class="fa fa-lg fa-trash"></i> 删除
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input id="selectedUserIds" type="hidden"/>
|
||||||
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: 'assets/layuiadmin/'
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index'
|
||||||
|
}).use(['index', 'table', 'common'], function() {
|
||||||
|
var $ = layui.$;
|
||||||
|
var $win = $(window);
|
||||||
|
var table = layui.table;
|
||||||
|
var admin = layui.admin;
|
||||||
|
var common = layui.common;
|
||||||
|
var gridId = top.restAjax.params(window.location.href).gridId;
|
||||||
|
var resizeTimeout = null;
|
||||||
|
var tableUrl = 'api/grid/user/listpage/{gridId}';
|
||||||
|
|
||||||
|
// 初始化表格
|
||||||
|
function initTable() {
|
||||||
|
table.render({
|
||||||
|
elem: '#dataTable',
|
||||||
|
id: 'dataTable',
|
||||||
|
url: top.restAjax.path(tableUrl, [gridId]),
|
||||||
|
width: admin.screen() > 1 ? '100%' : '',
|
||||||
|
height: $win.height() - 60,
|
||||||
|
limit: 20,
|
||||||
|
limits: [20, 40, 60, 80, 100, 200],
|
||||||
|
toolbar: '#headerToolBar',
|
||||||
|
request: {
|
||||||
|
pageName: 'page',
|
||||||
|
limitName: 'rows'
|
||||||
|
},
|
||||||
|
cols: [
|
||||||
|
[
|
||||||
|
{type:'checkbox', fixed: 'left'},
|
||||||
|
{field:'rowNum', width:80, title: '序号', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
||||||
|
{field:'userUsername', width:140, title: '用户名', align:'center'},
|
||||||
|
{field:'userName', width:140, title: '昵称', align:'center'},
|
||||||
|
{field:'userPhone', width:140, title: '手机', align:'center',
|
||||||
|
templet: function(item) {
|
||||||
|
if(!item.userPhone) {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return item.userPhone;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{field:'gmtCreate', width:180, title: '添加时间', align:'center',
|
||||||
|
templet: function(item) {
|
||||||
|
if(!item.gmtCreate) {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
return item.gmtCreate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
page: true,
|
||||||
|
parseData: function(data) {
|
||||||
|
return {
|
||||||
|
'code': 0,
|
||||||
|
'msg': '',
|
||||||
|
'count': data.total,
|
||||||
|
'data': data.rows
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 重载表格
|
||||||
|
function reloadTable(currentPage) {
|
||||||
|
table.reload('dataTable', {
|
||||||
|
url: top.restAjax.path(tableUrl, [gridId]),
|
||||||
|
where: {
|
||||||
|
keywords: $('#keywords').val(),
|
||||||
|
},
|
||||||
|
page: {
|
||||||
|
curr: currentPage
|
||||||
|
},
|
||||||
|
height: $win.height() - 60,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
function removeData(ids) {
|
||||||
|
top.dialog.msg(top.dataMessage.delete, {
|
||||||
|
time: 0,
|
||||||
|
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||||
|
shade: 0.3,
|
||||||
|
yes: function(index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.delete(top.restAjax.path('api/grid/user/delete/{gridId}/{ids}', [gridId, ids]), {}, null, function(code, data) {
|
||||||
|
top.dialog.msg(top.dataMessage.deleteSuccess);
|
||||||
|
var deleteUserIds = ids.split('_');
|
||||||
|
var selectedUserIds = $('#selectedUserIds').val().split('_');
|
||||||
|
var tempIds = common.resultIdsOfDeleteIds(deleteUserIds, selectedUserIds);
|
||||||
|
$('#selectedUserIds').val(tempIds);
|
||||||
|
reloadTable();
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function() {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.deleting, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function() {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 初始化职位用户ID列表
|
||||||
|
function initSelectUserIds() {
|
||||||
|
var layIndex;
|
||||||
|
top.restAjax.get(top.restAjax.path('api/grid/user/list-user-id/{gridId}', [gridId]), {}, null, function(code, data) {
|
||||||
|
var selectedUserIds = '';
|
||||||
|
for(var i = 0, item; item = data[i++]; ) {
|
||||||
|
if('' != selectedUserIds) {
|
||||||
|
selectedUserIds += '_';
|
||||||
|
}
|
||||||
|
selectedUserIds += item;
|
||||||
|
}
|
||||||
|
$('#selectedUserIds').val(selectedUserIds);
|
||||||
|
initTable();
|
||||||
|
}, function(code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function() {
|
||||||
|
layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||||
|
}, function() {
|
||||||
|
top.dialog.close(layIndex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initSelectUserIds();
|
||||||
|
|
||||||
|
// 事件 - 页面变化
|
||||||
|
$win.on('resize', function() {
|
||||||
|
clearTimeout(resizeTimeout);
|
||||||
|
resizeTimeout = setTimeout(function() {
|
||||||
|
reloadTable();
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
// 事件 - 搜索
|
||||||
|
$(document).on('click', '#search', function() {
|
||||||
|
reloadTable(1);
|
||||||
|
});
|
||||||
|
// 事件 - 增删
|
||||||
|
table.on('toolbar(dataTable)', function(obj) {
|
||||||
|
var layEvent = obj.event;
|
||||||
|
var checkStatus = table.checkStatus('dataTable');
|
||||||
|
var checkDatas = checkStatus.data;
|
||||||
|
if(layEvent === 'saveEvent') {
|
||||||
|
top.dialog.dialogData.selectedUserIds = $('#selectedUserIds').val();
|
||||||
|
top.dialog.open({
|
||||||
|
url: top.restAjax.path('route/department/user/select-user', []),
|
||||||
|
title: '选择用户',
|
||||||
|
width: '500px',
|
||||||
|
height: '500px',
|
||||||
|
onClose: function() {
|
||||||
|
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||||
|
if(selectedUsers != null && selectedUsers.length > 0) {
|
||||||
|
var ids = [];
|
||||||
|
for (var i = 0, item; item = selectedUsers[i++];) {
|
||||||
|
ids.push(item.userId);
|
||||||
|
}
|
||||||
|
top.dialog.msg(top.dataMessage.update, {
|
||||||
|
time: 0,
|
||||||
|
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||||
|
yes: function (index) {
|
||||||
|
top.dialog.close(index);
|
||||||
|
var loadLayerIndex;
|
||||||
|
top.restAjax.put(top.restAjax.path('api/grid/user/update/{gridId}', [gridId]), {
|
||||||
|
ids: ids
|
||||||
|
}, null, function (code, data) {
|
||||||
|
top.dialog.msg(top.dataMessage.updated);
|
||||||
|
initSelectUserIds();
|
||||||
|
}, function (code, data) {
|
||||||
|
top.dialog.msg(data.msg);
|
||||||
|
}, function () {
|
||||||
|
loadLayerIndex = top.dialog.msg(top.dataMessage.updating, {
|
||||||
|
icon: 16,
|
||||||
|
time: 0,
|
||||||
|
shade: 0.3
|
||||||
|
});
|
||||||
|
}, function () {
|
||||||
|
top.dialog.close(loadLayerIndex);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} 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.userId;
|
||||||
|
}
|
||||||
|
removeData(ids);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user