From 82c12a0e90b4c71514595420749c63b25f73f52a Mon Sep 17 00:00:00 2001 From: yanghb <yanghb> Date: 星期二, 04 四月 2023 17:12:30 +0800 Subject: [PATCH] 名称调整 --- ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirLineController.java | 380 ++++++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITLineService.java | 3 ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite.html | 67 + ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSiteServiceImpl.java | 4 ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine_info.js | 443 +++++++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSiteMapper.xml | 2 ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_edit.html | 265 ++++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirSiteController.java | 280 ++++ ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_add.html | 251 ++++ ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_add.html | 170 ++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java | 5 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TLine.java | 13 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TLineServiceImpl.java | 4 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TLineMapper.java | 3 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml | 2 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSite.java | 12 ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSiteService.java | 3 ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/electricFence.js | 329 +++++ ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine.html | 70 + ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_edit.html | 193 +++ ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite.html | 2 ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine.js | 244 ++++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSiteMapper.java | 3 ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite_info.js | 376 ++++++ ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java | 11 ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_addCompany.html | 65 + ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite.js | 231 +++ 27 files changed, 3,413 insertions(+), 18 deletions(-) diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirLineController.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirLineController.java new file mode 100644 index 0000000..c87f76d --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirLineController.java @@ -0,0 +1,380 @@ + +package com.stylefeng.guns.modular.system.controller.specialTrain; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.stylefeng.guns.core.base.controller.BaseController; +import com.stylefeng.guns.core.common.constant.factory.PageFactory; +import com.stylefeng.guns.core.log.LogObjectHolder; +import com.stylefeng.guns.core.shiro.ShiroKit; +import com.stylefeng.guns.core.util.SinataUtil; +import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.service.*; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 跨城线路管理控制器 + * + * @author fengshuonan + * @Date 2020-09-15 16:17:29 + */ +@Controller +@RequestMapping("/airLine") +public class AirLineController extends BaseController { + + private String PREFIX = "/system/airLine/"; + + @Autowired + private ITLineService tLineService; + + @Autowired + private ITSiteService itSiteService; + + @Autowired + private ITServerCarmodelService itServerCarmodelService; + + @Autowired + private ITLineSiteService itLineSiteService; + + @Autowired + private ITLinePriceService itLinePriceService; + + @Autowired + private ITLineShiftService itLineShiftService; + + @Autowired + private ITCompanyService itCompanyService; + + @Autowired + private ITLineCompanyService itLineCompanyService; + + /** + * 跳转到跨城站点管理首页 + */ + @RequestMapping("") + public String index() { + return PREFIX + "airLine.html"; + } + + /** + * 跳转到添加跨城站点管理 + */ + @RequestMapping("/airLine_add") + public String tLineAdd(Model model) { + //站点 + List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1).eq("type",2)); + model.addAttribute("siteList",siteList); + //跨城车型 + List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1)); + model.addAttribute("carmodelList",carmodelList); + return PREFIX + "airLine_add.html"; + } + + /** + * 分配企业页面 + */ + @RequestMapping("/airLine_addCompany/{tLineId}") + public String airLine_addCompany(@PathVariable Integer tLineId,Model model) { + TLine tLine = tLineService.selectById(tLineId); + model.addAttribute("tLine",tLine); + //查询所有企业 + List<TCompany> companyList = itCompanyService.selectList(new EntityWrapper<TCompany>().last(" where not FIND_IN_SET(state,'1') and not FIND_IN_SET(flag,'3')")); + model.addAttribute("companyList",companyList); + //查询已分配企业 + List<Map<String, Object>> lineCompanyList = tLineService.getLineCompanyList(tLineId); + model.addAttribute("lineCompanyList",lineCompanyList); + return PREFIX + "airLine_addCompany.html"; + } + + /** + * 跳转到修改跨城站点管理 + */ + @RequestMapping("/airLine_update/{tLineId}") + public String tLineUpdate(@PathVariable Integer tLineId, Model model) { + TLine tLine = tLineService.selectById(tLineId); + model.addAttribute("item",tLine); + LogObjectHolder.me().set(tLine); + + //查找站点起点+终点 + TLineSite start = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 1)); + model.addAttribute("start",start); + TLineSite end = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 2)); + model.addAttribute("end",end); + //站点 + List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)); + model.addAttribute("siteList",siteList); + //跨城车型 + List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1)); + model.addAttribute("carmodelList",carmodelList); + //查询所有站点 + List<Map<String, Object>> linePriceList = tLineService.getLinePriceList(tLineId); + model.addAttribute("linePriceList",linePriceList); + //查询所有班次 + List<TLineShift> lineShiftList = itLineShiftService.selectList(new EntityWrapper<TLineShift>().eq("lineId", tLineId).last(" and not FIND_IN_SET(state,'3')")); + model.addAttribute("lineShiftList",lineShiftList); + return PREFIX + "airLine_edit.html"; + } + + /** + * 获取机场线路管理 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String insertTime,String name,String insertUser,String modelStr,Integer state) { + String beginTime = null; + String endTime = null; + if (SinataUtil.isNotEmpty(insertTime)){ + String[] timeArray = insertTime.split(" - "); + beginTime = timeArray[0]; + endTime = timeArray[1]; + } + Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); + if (ShiroKit.getUser().getRoleType() != 1){ + page.setRecords(null); + }else{ + page.setRecords(tLineService.getLineList(page,beginTime,endTime,name,insertUser,modelStr,state,2)); + } + return super.packForBT(page); + } + + /** + * 新增机场线路 + */ + @RequestMapping(value = "/add") + @ResponseBody + public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) { + String name = tLine.getName(); + name = name.replaceAll("& lt;", "<"); + name = name.replaceAll("& gt;", ">"); + name = name.replaceAll("& #40;", "("); + name = name.replaceAll("& #41;", ")"); + tLine.setName(name); + tLine.setState(1); + tLine.setType(2); + tLine.setInsertTime(new Date()); + tLine.setInsertUserId(ShiroKit.getUser().getId()); + tLineService.insert(tLine); + + //添加线路站点起点+终点 + TLineSite start = new TLineSite(); + start.setLineId(tLine.getId()); + start.setSiteId(startSiteId); + start.setType(1); + itLineSiteService.insert(start); + TLineSite end = new TLineSite(); + end.setLineId(tLine.getId()); + end.setSiteId(endSiteId); + end.setType(2); + itLineSiteService.insert(end); + + //添加价格设置 + addPrice(tLine.getId(), subArr); + + //添加班次设置 + return addShift(tLine.getId(), shuArr); + } + + /** + * 添加线路班次 + * @param lineId + * @param shuArr + */ + private ResultUtil addShift(Integer lineId, @RequestParam String shuArr) { + try { + JSONArray jsonArray1 = JSON.parseArray(shuArr); + int size1 = jsonArray1.size(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List<String> list = new ArrayList<>(); + for (int i = 0; i < size1; i++) { + List<TLineShift> tLineShifts = itLineShiftService.selectList(new EntityWrapper<TLineShift>().eq("lineId", lineId).ne("state", 3).orderBy("startTime")); + JSONObject jsonObject = jsonArray1.getJSONObject(i); + TLineShift shift = new TLineShift(); + shift.setLineId(lineId); + String shiftTime = jsonObject.getString("shiftTime"); + String startTime = null; + String endTime = null; + if (SinataUtil.isNotEmpty(shiftTime)){ + String[] timeArray = shiftTime.split(" - "); + startTime = timeArray[0]; + endTime = timeArray[1]; + } + Date s1 = sdf.parse("2020-11-11 " + startTime + ":00"); + Date e1 = sdf.parse("2020-11-11 " + endTime + ":00"); + boolean b = false; + for(TLineShift lineShift : tLineShifts){ + Date s2 = sdf.parse("2020-11-11 " + lineShift.getStartTime() + ":00"); + Date e2 = sdf.parse("2020-11-11 " + lineShift.getEndTime() + ":00"); + if(s2.getTime() <= s1.getTime() && e1.getTime() <= e2.getTime()){ + list.add(startTime + " - " + endTime); + b = true; + break; + } + if(s1.getTime() <= s2.getTime() && s1.getTime() <= e2.getTime() && e1.getTime() >= s2.getTime()){ + list.add(startTime + " - " + endTime); + b = true; + break; + } + if(s1.getTime() >= s2.getTime() && s1.getTime() <= e2.getTime() && e1.getTime() >= e2.getTime()){ + list.add(startTime + " - " + endTime); + b = true; + break; + } + } + if(b){ + continue; + } + shift.setStartTime(startTime); + shift.setEndTime(endTime); + shift.setCarNum(jsonObject.getInteger("carNum")); + shift.setInsertTime(new Date()); + shift.setAddTime(jsonObject.getString("time2")); + shift.setState(1); + itLineShiftService.insert(shift); + } + if(list.size() > 0){ + return ResultUtil.error("【" + JSON.toJSONString(list) + "】时间段与现存时间段重合,添加失败!"); + } + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + /** + * 添加线路价格 + * @param lineId + * @param subArr + */ + private void addPrice(Integer lineId, @RequestParam String subArr) { + JSONArray jsonArray = JSON.parseArray(subArr); + int size = jsonArray.size(); + for (int i = 0; i < size; i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + TLinePrice price = new TLinePrice(); + price.setLineId(lineId); + price.setServerCarModelId(jsonObject.getInteger("serverModelId")); + price.setType(jsonObject.getInteger("type")); + price.setContent(jsonObject.getString("content")); + price.setContentStr(jsonObject.getString("contentStr")); + price.setState(1); + price.setInsertTime(new Date()); + price.setAddTime(jsonObject.getString("time")); + itLinePriceService.insert(price); + } + } + + /** + * 操作跨城站点管理 + * optType 1=删除 2=冻结 3=解冻 + */ + @RequestMapping(value = "/opt") + @ResponseBody + public Object opt(@RequestParam Integer tLineId,@RequestParam Integer optType) { + TLine tLine = tLineService.selectById(tLineId); + if (1 == optType){ + tLine.setState(3); + }else if (2 == optType){ + tLine.setState(2); + }else if (3 == optType){ + tLine.setState(1); + } + tLineService.updateById(tLine); + return SUCCESS_TIP; + } + + /** + * 分配企业操作 + */ + @RequestMapping(value = "/addCompany") + @ResponseBody + public Object addCompany(Integer lineId,@RequestParam String comArr) { + //删除分配企业 + itLineCompanyService.delete(new EntityWrapper<TLineCompany>().eq("lineId",lineId)); + //添加企业 + if (SinataUtil.isNotEmpty(comArr)){ + JSONArray jsonArray = JSON.parseArray(comArr); + int size = jsonArray.size(); + for (int i = 0; i < size; i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + TLineCompany lineCompany = new TLineCompany(); + lineCompany.setLineId(lineId); + lineCompany.setCompanyId(jsonObject.getInteger("companyId")); + lineCompany.setInsertTime(new Date()); + lineCompany.setInsertUserId(ShiroKit.getUser().getId()); + itLineCompanyService.insert(lineCompany); + } + } + return SUCCESS_TIP; + } + /** + * 修改跨城站点管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + public ResultUtil update(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) { + String name = tLine.getName(); + name = name.replaceAll("& lt;", "<"); + name = name.replaceAll("& gt;", ">"); + name = name.replaceAll("& #40;", "("); + name = name.replaceAll("& #41;", ")"); + tLine.setName(name); + tLineService.updateById(tLine); + + //修改站点起点 + TLineSite start = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLine.getId()).eq("type", 1)); + if (SinataUtil.isNotEmpty(start)){ + if (start.getSiteId().intValue() != startSiteId.intValue()){ + start.setSiteId(startSiteId); + itLineSiteService.updateById(start); + } + }else{ + start = new TLineSite(); + start.setLineId(tLine.getId()); + start.setSiteId(startSiteId); + start.setType(1); + itLineSiteService.insert(start); + } + //修改站点终点 + TLineSite end = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLine.getId()).eq("type", 2)); + if (SinataUtil.isNotEmpty(end)){ + if (end.getSiteId().intValue() != endSiteId.intValue()){ + end.setSiteId(endSiteId); + itLineSiteService.updateById(end); + } + }else{ + end = new TLineSite(); + end.setLineId(tLine.getId()); + end.setSiteId(endSiteId); + end.setType(2); + itLineSiteService.insert(end); + } + + //删除线路价格 + itLinePriceService.delete(new EntityWrapper<TLinePrice>().eq("lineId",tLine.getId())); + //添加价格设置 + addPrice(tLine.getId(), subArr); + //删除线路班次 + itLineShiftService.delete(new EntityWrapper<TLineShift>().eq("lineId",tLine.getId())); + //添加班次设置 + return addShift(tLine.getId(), shuArr); + + } + +} diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirSiteController.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirSiteController.java new file mode 100644 index 0000000..90341b7 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/AirSiteController.java @@ -0,0 +1,280 @@ +package com.stylefeng.guns.modular.system.controller.specialTrain; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.stylefeng.guns.core.base.controller.BaseController; +import com.stylefeng.guns.core.common.constant.factory.PageFactory; +import com.stylefeng.guns.core.log.LogObjectHolder; +import com.stylefeng.guns.core.shiro.ShiroKit; +import com.stylefeng.guns.core.util.SinataUtil; +import com.stylefeng.guns.modular.system.model.TLocation; +import com.stylefeng.guns.modular.system.model.TRegion; +import com.stylefeng.guns.modular.system.model.TSite; +import com.stylefeng.guns.modular.system.service.ITLocationService; +import com.stylefeng.guns.modular.system.service.ITRegionService; +import com.stylefeng.guns.modular.system.service.ITSiteService; +import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 机场站点管理控制器 + */ +@Controller +@RequestMapping("/airSite") +public class AirSiteController extends BaseController { + + private String PREFIX = "/system/airSite/"; + + @Autowired + private ITSiteService tSiteService; + + @Autowired + private ITRegionService tRegionService; + + @Autowired + private ITLocationService itLocationService; + + @Autowired + private GDMapElectricFenceUtil gdMapElectricFenceUtil; + + + + /** + * 跳转到跨城站点管理首页 + */ + @RequestMapping("") + public String index() { + return PREFIX + "airSite.html"; + } + + /** + * 跳转到添加景区站点管理 + */ + @RequestMapping("/airSite_add") + public String tSiteAdd(Model model) { + //省 + List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); + model.addAttribute("provinceList",provinceList); + return PREFIX + "airSite_add.html"; + } + + /** + * 跳转到修改景区站点管理 + */ + @RequestMapping("/airSite_update/{tSiteId}") + public String tSiteUpdate(@PathVariable Integer tSiteId, Model model) { + TSite tSite = tSiteService.selectById(tSiteId); + model.addAttribute("item",tSite); + LogObjectHolder.me().set(tSite); + + //省 + List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); + model.addAttribute("provinceList",provinceList); + + TRegion province = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tSite.getProvinceCode())); + //市 + List<TRegion> cityList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", province.getId())); + model.addAttribute("cityList",cityList); + + if (SinataUtil.isNotEmpty(tSite.getCityCode())){ + TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tSite.getCityCode())); + //区 + List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getId())); + model.addAttribute("areaList",areaList); + }else{ + model.addAttribute("areaList",null); + } + + //查询所有的站点区域 + List<TLocation> locationList = itLocationService.selectList(new EntityWrapper<TLocation>().eq("siteId", tSite.getId()).ne("state", 3)); + model.addAttribute("locationList",locationList); + model.addAttribute("disabled","disabled"); + + Integer type = itLocationService.selectList(new EntityWrapper<TLocation>().eq("siteId", tSite.getId())).get(0).getType(); + model.addAttribute("type1", type == 1 ? "block" : "none"); + model.addAttribute("type2", type == 1 ? "none" : "block"); + model.addAttribute("checked1", type == 1 ? "checked" : ""); + model.addAttribute("checked2", type == 1 ? "" : "checked"); + return PREFIX + "airSite_edit.html"; + } + + /** + * 获取景区站点管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String insertTime,String name,String insertUser,String city,Integer state) { + String beginTime = null; + String endTime = null; + if (SinataUtil.isNotEmpty(insertTime)){ + String[] timeArray = insertTime.split(" - "); + beginTime = timeArray[0]; + endTime = timeArray[1]; + } + Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); + if (ShiroKit.getUser().getRoleType() != 1){ + page.setRecords(null); + }else{ + page.setRecords(tSiteService.getSiteList(page,beginTime,endTime,name,insertUser,city,state,2)); + } + return super.packForBT(page); + } + + /** + * 新增跨城站点管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(TSite tSite,@RequestParam String subArr) { + tSite.setInsertTime(new Date()); + tSite.setInsertUserId(ShiroKit.getUser().getId()); + tSite.setState(1); + tSite.setType(2); + tSiteService.insert(tSite); + + //添加站点区域 + addLocation(subArr,tSite.getId()); + return ResultUtil.success(); + } + + /** + * 添加站点区域 + * @param subArr + * @param id + */ + public void addLocation(String subArr,Integer id){ + JSONArray jsonArray = JSON.parseArray(subArr); + int size = jsonArray.size(); + for (int i = 0; i < size; i++){ + JSONObject jsonObject = jsonArray.getJSONObject(i); + TLocation location = new TLocation(); + location.setSiteId(id); + location.setName(jsonObject.getString("name")); + location.setInsertTime(new Date()); + location.setAddTime(jsonObject.getString("time")); + location.setState(1); + location.setUpdateTime(new Date()); + Integer type = jsonObject.getInteger("areaType"); + location.setType(type); + if (1 == type){ + if (SinataUtil.isNotEmpty(jsonObject.getString("provinceCode"))){ + location.setProvince(jsonObject.getString("province")); + location.setProvinceCode(jsonObject.getString("provinceCode")); + } + if (SinataUtil.isNotEmpty(jsonObject.getString("cityCode"))){ + location.setCity(jsonObject.getString("city")); + location.setCityCode(jsonObject.getString("cityCode")); + } + if (SinataUtil.isNotEmpty(jsonObject.getString("districtCode"))){ + location.setDistrict(jsonObject.getString("district")); + location.setDistrictCode(jsonObject.getString("districtCode")); + } + }else if (2 == type){ + String coordinate = jsonObject.getString("coordinate"); + coordinate = coordinate.substring(0, coordinate.length() - 1); + location.setCoordinate(coordinate); + } + itLocationService.insert(location); + + if(type == 2){ + List<String> fence = gdMapElectricFenceUtil.createFence(location.getId().toString(), location.getCoordinate()); + TLocation location1 = itLocationService.selectById(location.getId()); + String s = ""; + for(String gid : fence){ + s += gid + "_"; + } + location1.setGid(s.substring(0, s.length() - 1)); + location1.setUpdateTime(new Date()); + itLocationService.updateById(location1); + } + } + } + + /** + * 操作跨城站点管理 + * optType 1=删除 2=冻结 3=解冻 + */ + @RequestMapping(value = "/opt") + @ResponseBody + public Object opt(@RequestParam Integer tSiteId,@RequestParam Integer optType) { + TSite tSite = tSiteService.selectById(tSiteId); + if (1 == optType){ + tSite.setState(3); + }else if (2 == optType){ + tSite.setState(2); + }else if (3 == optType){ + tSite.setState(1); + } + tSiteService.updateById(tSite); + return SUCCESS_TIP; + } + + /** + * 修改跨城站点管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(TSite tSite,@RequestParam String subArr) { + tSiteService.updateById(tSite); + + //删除站点区域 + JSONArray jsonArray = JSON.parseArray(subArr); + List<TLocation> siteId = itLocationService.selectList(new EntityWrapper<TLocation>().eq("siteId", tSite.getId())); + List<TLocation> del = new ArrayList<>(); + List<Object> add = new ArrayList<>(); + for(TLocation location : siteId){ + boolean b = true; + for(int i = 0; i < jsonArray.size(); i++){ + if(jsonArray.getJSONObject(i).getIntValue("id") == location.getId()){ + b = false; + } + } + if(b){ + del.add(location); + continue; + } + } + for(int i = 0; i < jsonArray.size(); i++){ + if(jsonArray.getJSONObject(i).getInteger("id") == null){ + add.add(jsonArray.get(i)); + } + } + for(TLocation location : del){ + if(location.getType() == 2){ + String[] s = location.getGid().split("_"); + for(String gid : s){ + gdMapElectricFenceUtil.deleteElectricFenc(gid); + } + } + itLocationService.deleteById(location.getId()); + } + + //添加站点区域 + addLocation(JSON.toJSONString(add),tSite.getId()); + return SUCCESS_TIP; + } + + /** + * 跨城站点管理详情 + */ + @RequestMapping(value = "/detail/{tSiteId}") + @ResponseBody + public Object detail(@PathVariable("tSiteId") Integer tSiteId) { + return tSiteService.selectById(tSiteId); + } +} diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java index 335e4bd..4623a8e 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java @@ -77,7 +77,7 @@ @RequestMapping("/tLine_add") public String tLineAdd(Model model) { //站点 - List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)); + List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1).eq("type",1)); model.addAttribute("siteList",siteList); //跨城车型 List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1)); @@ -147,7 +147,7 @@ if (ShiroKit.getUser().getRoleType() != 1){ page.setRecords(null); }else{ - page.setRecords(tLineService.getLineList(page,beginTime,endTime,name,insertUser,modelStr,state)); + page.setRecords(tLineService.getLineList(page,beginTime,endTime,name,insertUser,modelStr,state,1)); } return super.packForBT(page); } @@ -166,6 +166,7 @@ tLine.setName(name); tLine.setState(1); tLine.setInsertTime(new Date()); + tLine.setType(1); tLine.setInsertUserId(ShiroKit.getUser().getId()); tLineService.insert(tLine); diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java index a44d3f5..5057ab2 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java @@ -61,7 +61,7 @@ /** - * 跳转到跨城站点管理首页 + * 跳转到景区站点管理首页 */ @RequestMapping("") public String index() { @@ -69,7 +69,7 @@ } /** - * 跳转到添加跨城站点管理 + * 跳转到添加景区站点管理 */ @RequestMapping("/tSite_add") public String tSiteAdd(Model model) { @@ -80,7 +80,7 @@ } /** - * 跳转到修改跨城站点管理 + * 跳转到修改景区站点管理 */ @RequestMapping("/tSite_update/{tSiteId}") public String tSiteUpdate(@PathVariable Integer tSiteId, Model model) { @@ -120,7 +120,7 @@ } /** - * 获取跨城站点管理列表 + * 获取景区站点管理列表 */ @RequestMapping(value = "/list") @ResponseBody @@ -136,7 +136,7 @@ if (ShiroKit.getUser().getRoleType() != 1){ page.setRecords(null); }else{ - page.setRecords(tSiteService.getSiteList(page,beginTime,endTime,name,insertUser,city,state)); + page.setRecords(tSiteService.getSiteList(page,beginTime,endTime,name,insertUser,city,state,1)); } return super.packForBT(page); } @@ -150,6 +150,7 @@ tSite.setInsertTime(new Date()); tSite.setInsertUserId(ShiroKit.getUser().getId()); tSite.setState(1); + tSite.setType(1); tSiteService.insert(tSite); //添加站点区域 diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TLineMapper.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TLineMapper.java index 8108a00..2ce5901 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TLineMapper.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TLineMapper.java @@ -28,7 +28,8 @@ @Param("name") String name, @Param("insertUser") String insertUser, @Param("modelStr") String modelStr, - @Param("state") Integer state); + @Param("state") Integer state, + @Param("type") Integer type); /** * 根据线路ID查询线路价格 diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSiteMapper.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSiteMapper.java index 6469de0..6640cd5 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSiteMapper.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSiteMapper.java @@ -28,7 +28,8 @@ @Param("name") String name, @Param("insertUser") String insertUser, @Param("city") String city, - @Param("state") Integer state); + @Param("state") Integer state, + @Param("type") Integer type); List<TSite> query(@Param("provinceCode") String provinceCode, @Param("cityCode")String cityCode, diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml index 52db9f7..70afa4f 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml @@ -29,7 +29,7 @@ LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id ) as o <where> - o.state != 3 + o.state != 3 and o.type = #{type} <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) </if> diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSiteMapper.xml b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSiteMapper.xml index 8749905..c7640db 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSiteMapper.xml +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSiteMapper.xml @@ -28,7 +28,7 @@ LEFT JOIN sys_user as uu on uu.id = ss.insertUserId LEFT JOIN (SELECT COUNT(a.id) as num,siteId FROM t_line_site a left join t_line b on (a.lineId = b.id) where b.state != 3 GROUP BY a.siteId) as ls on ls.siteId = ss.id) as o <where> - o.state != 3 + o.state != 3 and o.type = #{type} <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) </if> diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TLine.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TLine.java index f443a19..22b3904 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TLine.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TLine.java @@ -50,6 +50,19 @@ */ private Integer insertUserId; + /** + * 类型 1景区 2机场 + */ + private Integer type; + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + public Integer getInsertUserId() { return insertUserId; } diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSite.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSite.java index 6427c01..2e57144 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSite.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSite.java @@ -66,6 +66,18 @@ */ private Integer insertUserId; + /** + * 1景区 2机场 + */ + private Integer type; + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } public Integer getId() { return id; diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITLineService.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITLineService.java index afb0bd6..89341e3 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITLineService.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITLineService.java @@ -28,7 +28,8 @@ @Param("name") String name, @Param("insertUser") String insertUser, @Param("modelStr") String modelStr, - @Param("state") Integer state); + @Param("state") Integer state, + @Param("type") Integer type); /** * 根据线路ID查询线路价格 diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSiteService.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSiteService.java index 88e38ca..67c9943 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSiteService.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSiteService.java @@ -28,7 +28,8 @@ @Param("name") String name, @Param("insertUser") String insertUser, @Param("city") String city, - @Param("state") Integer state); + @Param("state") Integer state, + @Param("type") Integer type); diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TLineServiceImpl.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TLineServiceImpl.java index 14b72b8..bdfe254 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TLineServiceImpl.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TLineServiceImpl.java @@ -22,8 +22,8 @@ public class TLineServiceImpl extends ServiceImpl<TLineMapper, TLine> implements ITLineService { @Override - public List<Map<String, Object>> getLineList(Page<Map<String, Object>> page, String beginTime, String endTime, String name, String insertUser, String modelStr, Integer state) { - return this.baseMapper.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state); + public List<Map<String, Object>> getLineList(Page<Map<String, Object>> page, String beginTime, String endTime, String name, String insertUser, String modelStr, Integer state,Integer type) { + return this.baseMapper.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state,type); } @Override diff --git a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSiteServiceImpl.java b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSiteServiceImpl.java index 49d458c..b6c5ed5 100644 --- a/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSiteServiceImpl.java +++ b/ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSiteServiceImpl.java @@ -26,8 +26,8 @@ private TSiteMapper siteMapper; @Override - public List<Map<String, Object>> getSiteList(Page<Map<String, Object>> page, String beginTime, String endTime, String name, String insertUser, String city, Integer state) { - return this.baseMapper.getSiteList(page, beginTime, endTime, name, insertUser, city, state); + public List<Map<String, Object>> getSiteList(Page<Map<String, Object>> page, String beginTime, String endTime, String name, String insertUser, String city, Integer state,Integer type) { + return this.baseMapper.getSiteList(page, beginTime, endTime, name, insertUser, city, state,type); } @Override diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine.html new file mode 100644 index 0000000..b8d0541 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine.html @@ -0,0 +1,70 @@ +@layout("/common/_container.html"){ +<div class="row"> + <div class="col-sm-12"> + <div class="ibox float-e-margins"> + <div class="ibox-title"> + <h5>机场线路管理</h5> + </div> + <div class="ibox-content"> + <div class="row row-lg"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-sm-3"> + <#TimeCon id="insertTime" name="添加时间" isTime="false"/> + </div> + <div class="col-sm-3"> + <#NameCon id="name" name="线路名称" /> + </div> + <div class="col-sm-3"> + <#NameCon id="insertUser" name="创建者" /> + </div> + <div class="col-sm-3"> + <#NameCon id="modelStr" name="关联车型" /> + </div> + <div class="col-sm-3"> + <#SelectCon id="state" name="状态" > + <option value="">全部</option> + <option value="1">正常</option> + <option value="2">冻结</option> + </#SelectCon> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TLine.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TLine.resetSearch()" space="true"/> + </div> + </div> + <div class="hidden-xs" id="TLineTableToolbar" role="group"> + @if(shiro.hasPermission("/airLine/add")){ + <#button name="添加" icon="fa-plus" clickFun="TLine.openAddTLine()"/> + @} + @if(shiro.hasPermission("/airLine/update")){ + <#button name="编辑" icon="fa-edit" clickFun="TLine.openTLineDetail()" space="true"/> + @} + @if(shiro.hasPermission("/airLine/delete")){ + <#button name="删除" icon="fa-remove" clickFun="TLine.opt(1)" space="true"/> + @} + @if(shiro.hasPermission("/airLine/freeze")){ + <#button name="冻结" icon="fa-remove" clickFun="TLine.opt(2)" space="true"/> + @} + @if(shiro.hasPermission("/airLine/thaw")){ + <#button name="解冻" icon="fa-remove" clickFun="TLine.opt(3)" space="true"/> + @} + @if(shiro.hasPermission("/airLine/addCompany")){ + <#button name="分配企业" icon="fa-plus" clickFun="TLine.addCompany()" space="true"/> + @} + </div> + <#table id="TLineTable"/> + </div> + </div> + </div> + </div> + </div> +</div> +<script src="${ctxPath}/static/modular/system/airLine/airLine.js"></script> +<script> + laydate.render({ + elem: '#insertTime' + ,range: true + }); +</script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_add.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_add.html new file mode 100644 index 0000000..65bcb53 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_add.html @@ -0,0 +1,251 @@ +@layout("/common/_container.html"){ +<style> + .newWidth, .single-line{ + max-width:150px !important;display: initial !important; + } + .newWidth1, .single-line{ + max-width:200px !important;display: initial !important; + } +</style> +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="lineInfoForm"> + <div class="row" style="margin-top: 15px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">基础设置</h2> + </div> + </div> + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">线路名称:</label> + <div class="col-sm-5"> + <input type="text" class="form-control" id="name" name="name"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">起点:</label> + <div class="col-sm-2"> + <select class="form-control" id="startSiteId" > + <option value="">选择站点</option> + @for(obj in siteList){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">终点:</label> + <div class="col-sm-2"> + <select class="form-control" id="endSiteId" > + <option value="">选择站点</option> + @for(obj in siteList){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">司机申请限制:</label> + <div class="col-sm-6"> + 司机申请班次的最小时间间隔为 <input type="text" oninput="checkIsMinute(this)" class="form-control newWidth" id="shiftInterval" name="shiftInterval"> 分钟 + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">抽成比例:</label> + <div class="col-sm-6"> + <input type="text" oninput="checkIsBiLi(this)" class="form-control newWidth" id="rakeRate" name="rakeRate"> % + </div> + </div> + </div> + </div> + + <div class="row" style="margin-top: 30px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">价格设置</h2> + </div> + </div> + + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">选择车型:</label> + <div class="col-sm-2"> + <select class="form-control" id="serverModelId" > + <option value="">选择车型</option> + @for(obj in carmodelList){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">选择车型:</label> + <div class="col-sm-2" style="display: flex;align-items: center;"> + <div class="radio radio-info radio-inline"> + <input type="radio" id="type1" value="1" name="type" checked="" onclick="TLineInfoDlg.typeClick(1)"> + <label for="type1"> 固定计价 </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="type2" value="2" name="type" onclick="TLineInfoDlg.typeClick(2)"> + <label for="type2"> 浮动计价 </label> + </div> + </div> + </div> + + <div class="form-group" id="fixedDiv"> + <label class="col-sm-2 control-label">固定计价:</label> + <div class="col-sm-10"> + 单人价格: <input type="text" oninput="checkIsYuan(this)" name="num1" id="num1" class="form-control newWidth" /> 元; + 包车价格: <input type="text" oninput="checkIsYuan(this)" name="num2" id="num2" class="form-control newWidth" /> 元;<br><br> + 五座系数: <input type="text" oninput="checkIsXiShu(this)" name="num3" id="num3" class="form-control newWidth" /> ; + 七座系数: <input type="text" oninput="checkIsXiShu(this)" name="num4" id="num4" class="form-control newWidth" /> ; + </div> + </div> + + <div class="form-group" id="floatDiv" style="display: none;"> + <label class="col-sm-2 control-label">浮动计价:</label> + <div class="col-sm-10"> + 参考价格: <input type="text" oninput="checkIsYuan(this)" name="num11" id="num11" class="form-control newWidth" /> 元; + 参考里程: <input type="text" oninput="checkIsYuan(this)" name="num12" id="num12" class="form-control newWidth" /> 公里;<br><br> + 保底价: <input type="text" oninput="checkIsYuan(this)" name="num13" id="num13" class="form-control newWidth" /> 元; + 超出参考里程优惠系数: <input type="text" oninput="checkIsXiShu1(this)" name="num14" id="num14" class="form-control newWidth" /> ;<br><br> + 低于参考里程优惠系数: <input type="text" oninput="checkIsXiShu(this)" name="num15" id="num15" class="form-control newWidth" /> ; + 包车系数: <input type="text" oninput="checkIsXiShu(this)" name="num16" id="num16" class="form-control newWidth" /> ;<br><br> + 五座系数: <input type="text" oninput="checkIsXiShu(this)" name="num17" id="num17" class="form-control newWidth" /> ; + 七座系数: <input type="text" oninput="checkIsXiShu(this)" name="num18" id="num18" class="form-control newWidth" /> ;<br><br> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-2 control-label"></label> + <div class="col-sm-10"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addPrice()"/> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-2 control-label">已添加价格</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">车型名称</th> + <th style="width: 300px;text-align: center;">价格设置</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="priceValue"> + + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + + <div class="row" style="margin-top: 30px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">班次设置</h2> + </div> + </div> + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">班次时间:</label> + <div class="col-sm-2"> + <input type="text" name="shiftTime" id="shiftTime" class="form-control" placeholder="选择时间"/> + </div> + <label class="col-sm-1 control-label">车次数:</label> + <div class="col-sm-2"> + <input type="text" name="carNum" id="carNum" class="form-control" /> + </div> + <div class="col-sm-2"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addShift()"/> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">已添加班次</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">班次时间</th> + <th style="width: 300px;text-align: center;">车次数</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="shiftValue"> + + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + + + + + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TLineInfoDlg.close()"/> + </div> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/static/modular/system/airLine/airLine_info.js"></script> +<script type="text/javascript"> + laydate.render({ + elem: '#shiftTime' + ,type: 'time' + ,range: '-' + ,format: 'HH:mm' + }); + var regDouble = /^(0|[1-9]\d{0,2})(\.\d{1,2})?$/; + var regXiShu = /^(0(\.\d{1,2})?|1?)$/; + var regXiShu1 = /^([1-9]{1,})(\.\d{1,2})?$/; + var regBiLi = /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/; + var regInt = /^[0-9]{0,3}$/; + function checkIsYuan(obj){ + var num = $(obj).val(); + if(!regDouble.test(num)){ + layer.msg("【元】输入框不能超过3位数,保留两位小数"); + } + } + function checkIsXiShu1(obj){ + var num = $(obj).val(); + if(!regXiShu1.test(num)){ + layer.msg("【系数】输入框大于1,保留两位小数"); + } + } + function checkIsXiShu(obj){ + var num = $(obj).val(); + if(!regXiShu.test(num)){ + layer.msg("【系数】输入框大于0小于1,保留两位小数"); + } + } + function checkIsBiLi(obj){ + var num = $(obj).val(); + if(!regBiLi.test(num)){ + layer.msg("【比例】输入框大于等于0小于100"); + } + } + function checkIsMinute(obj){ + var num = $(obj).val(); + if(!regInt.test(num)){ + layer.msg("【分钟】输入框不能超过3位数"); + } + } + +</script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_addCompany.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_addCompany.html new file mode 100644 index 0000000..ef1418b --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_addCompany.html @@ -0,0 +1,65 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="lineInfoForm"> + <div class="row"> + <input type="hidden" id="lineId" name="lineId" value="${tLine.id}"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">线路名称:</label> + <div class="col-sm-9"> + <label class="control-label" id="name" name="name">${tLine.name}</label> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">选择企业:</label> + <div class="col-sm-2"> + <select class="form-control" id="companyId" > + <option value="">选择企业</option> + @for(obj in companyList){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addCompany()"/> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">已分配企业</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">公司名称</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="companyValue"> + @for(obj in lineCompanyList!){ + <tr class="companyValueClass"> + <td style="text-align: center;"><input type="hidden" id="companyIdValue" name="companyIdValue" value="${obj.companyId}">${obj.companyName}</td> + <td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td> + </tr> + @} + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addCompanySubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TLineInfoDlg.close()"/> + </div> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/static/modular/system/airLine/airLine_info.js"></script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_edit.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_edit.html new file mode 100644 index 0000000..495d160 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airLine/airLine_edit.html @@ -0,0 +1,265 @@ +@layout("/common/_container.html"){ +<style> + .newWidth, .single-line{ + max-width:150px !important;display: initial !important; + } + .newWidth1, .single-line{ + max-width:200px !important;display: initial !important; + } +</style> +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="lineInfoForm"> + <div class="row" style="margin-top: 15px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">基础设置</h2> + </div> + </div> + <input type="hidden" id="id" name="id" value="${item.id}"> + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">线路名称:</label> + <div class="col-sm-5"> + <input type="text" class="form-control" id="name" name="name" value="${item.name}"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">起点:</label> + <div class="col-sm-2"> + <select class="form-control" id="startSiteId" > + <option value="">选择站点</option> + @for(obj in siteList){ + <option value="${obj.id}" ${obj.id == start.siteId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">终点:</label> + <div class="col-sm-2"> + <select class="form-control" id="endSiteId" > + <option value="">选择站点</option> + @for(obj in siteList){ + <option value="${obj.id}" ${obj.id == end.siteId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">司机申请限制:</label> + <div class="col-sm-6"> + 司机申请班次的最小时间间隔为 <input type="text" oninput="checkIsMinute(this)" class="form-control newWidth" id="shiftInterval" name="shiftInterval" value="${item.shiftInterval}" > 分钟 + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">抽成比例:</label> + <div class="col-sm-6"> + <input type="text" oninput="checkIsBiLi(this)" class="form-control newWidth" id="rakeRate" name="rakeRate" value="${item.rakeRate}"> % + </div> + </div> + </div> + </div> + + <div class="row" style="margin-top: 30px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">价格设置</h2> + </div> + </div> + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">选择车型:</label> + <div class="col-sm-2"> + <select class="form-control" id="serverModelId" > + <option value="">选择车型</option> + @for(obj in carmodelList){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">选择车型:</label> + <div class="col-sm-2" style="display: flex;align-items: center;"> + <div class="radio radio-info radio-inline"> + <input type="radio" id="type1" value="1" name="type" checked="" onclick="TLineInfoDlg.typeClick(1)"> + <label for="type1"> 固定计价 </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="type2" value="2" name="type" onclick="TLineInfoDlg.typeClick(2)"> + <label for="type2"> 浮动计价 </label> + </div> + </div> + </div> + + <div class="form-group" id="fixedDiv"> + <label class="col-sm-2 control-label">固定计价:</label> + <div class="col-sm-10"> + 单人价格: <input type="text" oninput="checkIsYuan(this)" name="num1" id="num1" class="form-control newWidth" /> 元; + 包车价格: <input type="text" oninput="checkIsYuan(this)" name="num2" id="num2" class="form-control newWidth" /> 元;<br><br> + 五座系数: <input type="text" oninput="checkIsXiShu(this)" name="num3" id="num3" class="form-control newWidth" /> ; + 七座系数: <input type="text" oninput="checkIsXiShu(this)" name="num4" id="num4" class="form-control newWidth" /> ; + </div> + </div> + + <div class="form-group" id="floatDiv" style="display: none;"> + <label class="col-sm-2 control-label">浮动计价:</label> + <div class="col-sm-10"> + 参考价格: <input type="text" oninput="checkIsYuan(this)" name="num11" id="num11" class="form-control newWidth" /> 元; + 参考里程: <input type="text" oninput="checkIsYuan(this)" name="num12" id="num12" class="form-control newWidth" /> 公里;<br><br> + 保底价: <input type="text" oninput="checkIsYuan(this)" name="num13" id="num13" class="form-control newWidth" /> 元; + 超出参考里程优惠系数: <input type="text" oninput="checkIsXiShu1(this)" name="num14" id="num14" class="form-control newWidth" /> ;<br><br> + 低于参考里程优惠系数: <input type="text" oninput="checkIsXiShu(this)" name="num15" id="num15" class="form-control newWidth" /> ; + 包车系数: <input type="text" oninput="checkIsXiShu(this)" name="num16" id="num16" class="form-control newWidth" /> ;<br><br> + 五座系数: <input type="text" oninput="checkIsXiShu(this)" name="num17" id="num17" class="form-control newWidth" /> ; + 七座系数: <input type="text" oninput="checkIsXiShu(this)" name="num18" id="num18" class="form-control newWidth" /> ;<br><br> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-2 control-label"></label> + <div class="col-sm-10"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addPrice()"/> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-2 control-label">已添加价格</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">车型名称</th> + <th style="width: 300px;text-align: center;">价格设置</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="priceValue"> + @for(obj in linePriceList!){ + <tr class="typeValueClass"> + <td style="text-align: center;"><input type="hidden" id="timeValue" name="timeValue" value="${obj.addTime}">${obj.addTime}</td> + <td style="text-align: center;"><input type="hidden" id="serverModelIdValue" name="serverModelIdValue" value="${obj.serverCarModelId}">${obj.name}</td> + <td style="text-align: center;"><input type="hidden" id="typeValue" name="typeValue" value="${obj.type}"> + <input type="hidden" id="contentValue" name="contentValue" value='${obj.content}'> + <input type="hidden" id="contentStrValue" name="contentStrValue" value="${obj.contentStr}">${obj.contentStr}</td> + <td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td> + </tr> + @} + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + + <div class="row" style="margin-top: 30px;"> + <div class="col-sm-4"> + <h2 style="font-weight: 700;">班次设置</h2> + </div> + </div> + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-2 control-label">班次时间:</label> + <div class="col-sm-2"> + <input type="text" name="shiftTime" id="shiftTime" class="form-control" placeholder="选择时间"/> + </div> + <label class="col-sm-1 control-label">车次数:</label> + <div class="col-sm-2"> + <input type="text" name="carNum" id="carNum" class="form-control" /> + </div> + <div class="col-sm-2"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addShift()"/> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">已添加班次</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">班次时间</th> + <th style="width: 300px;text-align: center;">车次数</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="shiftValue"> + @for(obj in lineShiftList!){ + <tr class="shiftValueClass"> + <td style="text-align: center;"><input type="hidden" id="time2Value" name="time2Value" value="${obj.addTime}">${obj.addTime}</td> + <td style="text-align: center;"><input type="hidden" id="shiftTimeValue" name="shiftTimeValue" value="${obj.startTime} - ${obj.endTime}">${obj.startTime} - ${obj.endTime}</td> + <td style="text-align: center;"><input type="hidden" id="carNumValue" name="carNumValue" value="${obj.carNum}">${obj.carNum}</td> + <td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td> + </tr> + @} + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + + + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TLineInfoDlg.close()"/> + </div> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/static/modular/system/airLine/airLine_info.js"></script> +<script type="text/javascript"> + laydate.render({ + elem: '#shiftTime' + ,type: 'time' + ,range: '-' + ,format: 'HH:mm' + }); + var regDouble = /^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$/; + var regXiShu = /^(0(\.\d{1,2})?)$/; + var regXiShu1 = /^([1-9]{1,})(\.\d{1,2})?$/; + var regBiLi = /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/; + var regInt = /^[0-9]{0,3}$/; + function checkIsYuan(obj){ + var num = $(obj).val(); + if(!regDouble.test(num)){ + layer.msg("【元】输入框不能超过3位数,保留两位小数"); + } + } + function checkIsXiShu1(obj){ + var num = $(obj).val(); + if(!regXiShu1.test(num)){ + layer.msg("【系数】输入框大于1,保留两位小数"); + } + } + function checkIsXiShu(obj){ + var num = $(obj).val(); + if(!regXiShu.test(num)){ + layer.msg("【系数】输入框大于0小于1,保留两位小数"); + } + } + function checkIsBiLi(obj){ + var num = $(obj).val(); + if(!regBiLi.test(num)){ + layer.msg("【比例】输入框大于等于0小于100"); + } + } + function checkIsMinute(obj){ + var num = $(obj).val(); + if(!regInt.test(num)){ + layer.msg("【分钟】输入框不能超过3位数"); + } + } + +</script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite.html new file mode 100644 index 0000000..036a432 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite.html @@ -0,0 +1,67 @@ +@layout("/common/_container.html"){ +<div class="row"> + <div class="col-sm-12"> + <div class="ibox float-e-margins"> + <div class="ibox-title"> + <h5>景区站点管理</h5> + </div> + <div class="ibox-content"> + <div class="row row-lg"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-sm-3"> + <#TimeCon id="insertTime" name="添加时间" isTime="false"/> + </div> + <div class="col-sm-3"> + <#NameCon id="name" name="站点名称" /> + </div> + <div class="col-sm-3"> + <#NameCon id="insertUser" name="创建者" /> + </div> + <div class="col-sm-3"> + <#NameCon id="city" name="所属城市" /> + </div> + <div class="col-sm-3"> + <#SelectCon id="state" name="状态" > + <option value="">全部</option> + <option value="1">正常</option> + <option value="2">冻结</option> + </#SelectCon> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TSite.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TSite.resetSearch()" space="true"/> + </div> + </div> + <div class="hidden-xs" id="TSiteTableToolbar" role="group"> + @if(shiro.hasPermission("/airSite/airAdd")){ + <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/> + @} + @if(shiro.hasPermission("/tSite/airUpdate")){ + <#button name="编辑" icon="fa-edit" clickFun="TSite.openTSiteDetail()" space="true"/> + @} + @if(shiro.hasPermission("/tSite/airDelete")){ + <#button name="删除" icon="fa-remove" clickFun="TSite.opt(1)" space="true"/> + @} + @if(shiro.hasPermission("/tSite/airFreeze")){ + <#button name="冻结" icon="fa-remove" clickFun="TSite.opt(2)" space="true"/> + @} + @if(shiro.hasPermission("/tSite/airThaw")){ + <#button name="解冻" icon="fa-remove" clickFun="TSite.opt(3)" space="true"/> + @} + </div> + <#table id="TSiteTable"/> + </div> + </div> + </div> + </div> + </div> +</div> +<script src="${ctxPath}/static/modular/system/airSite/airSite.js"></script> +<script> + laydate.render({ + elem: '#insertTime' + ,range: true + }); +</script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_add.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_add.html new file mode 100644 index 0000000..b9699ac --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_add.html @@ -0,0 +1,170 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="siteInfoForm"> + <div class="row"> + <div class="col-sm-12"> + <div class=""> + <h3 style="margin-left: 100px;">站点信息</h3> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">站点名称:</label> + <div class="col-sm-6"> + <input type="text" class="form-control" id="name" name="name"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">所属城市:</label> + <div class="col-sm-2"> + <select class="form-control" id="provinceCode" onchange="TSiteInfoDlg.provinceChange(this)"> + <option value="">选择省</option> + @for(obj in provinceList){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="cityCode" onchange="TSiteInfoDlg.cityChange(this)"> + <option value="">选择市</option> + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="districtCode"> + <option value="">选择区</option> + </select> + </div> + </div> + + <div class=""> + <h3 style="margin-left: 100px;margin-top: 70px;">站点区域</h3> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">区域名称:</label> + <div class="col-sm-2"> + <input type="text" class="form-control" id="areaName" name="areaName"> + </div> + <label class="col-sm-1 control-label">类型:</label> + <div class="col-sm-2" style="display: flex;align-items: center;"> + <div class="radio radio-info radio-inline"> + <input type="radio" id="areaType1" value="1" name="areaType" checked="" onclick="TSiteInfoDlg.areaTypeClick(1)"> + <label for="areaType1"> 行政区域 </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="areaType2" value="2" name="areaType" onclick="TSiteInfoDlg.areaTypeClick(2)"> + <label for="areaType2"> 电子围栏 </label> + </div> + </div> + <div class="col-sm-2"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.addArea()"/> + </div> + </div> + <div class="form-group" id="areaType1Div"> + <label class="col-sm-2 control-label">行政区域:</label> + <div class="col-sm-2"> + <select class="form-control" id="provinceCode1" onchange="TSiteInfoDlg.provinceChange1(this)"> + <option value="">选择省</option> + @for(obj in provinceList){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="cityCode1" onchange="TSiteInfoDlg.cityChange1(this)"> + <option value="">选择市</option> + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="districtCode1"> + <option value="">选择区</option> + </select> + </div> + </div> + <div class="form-group" id="areaType2Div" style="display: none;"> + <label class="col-sm-2 control-label">电子围栏:</label> + <div class="col-sm-8"> + <div id="container" style="height: 350px;width: 1000px;"></div> + <div class='info' style="margin-top:10px;position: absolute; z-index: 999; left: 20px; width: 450px;">操作说明:圆和矩形通过拖拽来绘制,其他覆盖物通过点击来绘制</div> + <div class="input-card" style='margin-top:28px;width: 100rem; z-index: 999; bottom: 20px;'> + <div class="input-item"> + <!--<input type="radio" name='func' checked="" value='marker'><span class="input-text">画点</span>--> + <!--<input type="radio" name='func' value='polyline'><span class="input-text">画折线</span> --> + <input type="radio" name='func' value='polygon'><span class="input-text" style='width:5rem;'>画多边形</span> + <!--<input type="radio" name='func' value='rectangle'><span class="input-text" style='width:5rem;'>画矩形</span> --> + <input type="radio" name='func' value='circle'><span class="input-text" style='width:5rem;'>画圆</span> + </div> + <div class="input-item"> + <input id="clear" type="button" class="btn" value="清除" /> + <input id="close" type="button" class="btn" value="关闭绘图" /> + <input type="button" class="btn" value="开始编辑" onclick="editAll()" /> + <input type="button" class="btn" value="结束编辑" onclick="closeEdit()" /> + </div> + </div> + </div> + <div class="col-sm-2"> + <div class="form-group"> + <label style='color:grey'>行政区边界查询</label> + <div class="input-group"> + <div class="input-group-btn"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" + type="button">行政级别 + </button> + </div> + <select id="level" class="form-control"> + <option value="district">区</option> + <option value="city">市</option> + <option value="province">省</option> + </select> + + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <div class="input-group-btn"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" + type="button">名称/adcode + </button> + </div> + <input id='district' class="layui-input form-control" type="text" value=''> + </div> + </div> + <input id="find" type="button" class="btn btn-primary btn-sm" value="查询" /> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-2 control-label">已添加区域</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">区域名称</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="areaValue"> + + </tbody> + </table> + </div> + </div> + </div> + + </div> + </div> + + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSiteInfoDlg.close()"/> + </div> + </div> + </div> + + </div> +</div> +<script src="https://webapi.amap.com/maps?v=1.4.15&key=d868ee8a0084a4a1b4271d8030e32fba&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> +<script src="${ctxPath}/static/modular/system/airSite/electricFence.js"></script> +<script src="${ctxPath}/static/modular/system/airSite/airSite_info.js"></script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_edit.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_edit.html new file mode 100644 index 0000000..d41a9ff --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/airSite/airSite_edit.html @@ -0,0 +1,193 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="siteInfoForm"> + <input type="hidden" id="id" name="id" value="${item.id}"> + <div class="row"> + <div class="col-sm-12"> + <div class=""> + <h3 style="margin-left: 100px;">站点信息</h3> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">站点名称:</label> + <div class="col-sm-6"> + <input type="text" class="form-control" id="name" name="name" value="${item.name}"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">所属城市:</label> + <div class="col-sm-2"> + <select class="form-control" id="provinceCode" onchange="TSiteInfoDlg.provinceChange(this)"> + <option value="">选择省</option> + @for(obj in provinceList){ + <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="cityCode" onchange="TSiteInfoDlg.cityChange(this)"> + <option value="">选择市</option> + @for(obj in cityList){ + <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="districtCode"> + <option value="">选择区</option> + @for(obj in areaList){ + <option value="${obj.code}" ${obj.code == item.districtCode ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + + <div class=""> + <h3 style="margin-left: 100px;margin-top: 70px;">站点区域</h3> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">区域名称:</label> + <div class="col-sm-2"> + <input type="text" class="form-control" id="areaName" name="areaName"> + </div> + <label class="col-sm-1 control-label">类型:</label> + <div class="col-sm-2" style="display: flex;align-items: center;"> + <div class="radio radio-info radio-inline"> + <input type="radio" id="areaType1" value="1" name="areaType" ${checked1} disabled onclick="TSiteInfoDlg.areaTypeClick(1)"> + <label for="areaType1"> 行政区域 </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="areaType2" value="2" name="areaType" ${checked2} disabled onclick="TSiteInfoDlg.areaTypeClick(2)"> + <label for="areaType2"> 电子围栏 </label> + </div> + </div> + <div class="col-sm-2"> + <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.addArea()"/> + </div> + </div> + <div class="form-group" id="areaType1Div" style="display: ${type1};"> + <label class="col-sm-2 control-label">行政区域:</label> + <div class="col-sm-2"> + <select class="form-control" id="provinceCode1" onchange="TSiteInfoDlg.provinceChange1(this)"> + <option value="">选择省</option> + @for(obj in provinceList){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="cityCode1" onchange="TSiteInfoDlg.cityChange1(this)"> + <option value="">选择市</option> + </select> + </div> + <div class="col-sm-2"> + <select class="form-control" id="districtCode1"> + <option value="">选择区</option> + </select> + </div> + </div> + <div class="form-group" id="areaType2Div" style="display: ${type2};"> + <label class="col-sm-2 control-label">电子围栏:</label> + <div class="col-sm-8"> + <div id="container" style="height: 350px;width: 1000px;"></div> + <div class='info' style="margin-top:10px;position: absolute; z-index: 999; left: 20px; width: 450px;">操作说明:圆和矩形通过拖拽来绘制,其他覆盖物通过点击来绘制</div> + <div class="input-card" style='margin-top:28px;width: 100rem; z-index: 999; bottom: 20px;'> + <div class="input-item"> + <!--<input type="radio" name='func' checked="" value='marker'><span class="input-text">画点</span>--> + <!--<input type="radio" name='func' value='polyline'><span class="input-text">画折线</span> --> + <input type="radio" name='func' value='polygon'><span class="input-text" style='width:5rem;'>画多边形</span> + <!--<input type="radio" name='func' value='rectangle'><span class="input-text" style='width:5rem;'>画矩形</span> --> + <input type="radio" name='func' value='circle'><span class="input-text" style='width:5rem;'>画圆</span> + </div> + <div class="input-item"> + <input id="clear" type="button" class="btn" value="清除" /> + <input id="close" type="button" class="btn" value="关闭绘图" /> + <input type="button" class="btn" value="开始编辑" onclick="editAll()" /> + <input type="button" class="btn" value="结束编辑" onclick="closeEdit()" /> + </div> + </div> + </div> + <div class="col-sm-2"> + <div class="form-group"> + <label style='color:grey'>行政区边界查询</label> + <div class="input-group"> + <div class="input-group-btn"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" + type="button">行政级别 + </button> + </div> + <select id="level" class="form-control"> + <option value="district">区</option> + <option value="city">市</option> + <option value="province">省</option> + </select> + + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <div class="input-group-btn"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" + type="button">名称/adcode + </button> + </div> + <input id='district' class="layui-input form-control" type="text" value=''> + </div> + </div> + <input id="find" type="button" class="btn btn-primary btn-sm" value="查询" /> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">已添加区域</label> + <div class="col-sm-6"> + <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;"> + <table class="table table-striped table-bordered table-hover table-condensed"> + <thead> + <tr> + <th style="width: 300px;text-align: center;">添加时间</th> + <th style="width: 300px;text-align: center;">区域名称</th> + <th style="width: 100px;text-align: center;">操作</th> + </tr> + </thead> + <tbody id="areaValue"> + @for(obj in locationList!){ + <tr class="areaValueClass"> + <td style="text-align: center;"><input type="hidden" id="areaType1" name="areaType1" value="${obj.type}"> + <input type="hidden" id="time" name="time" value="${obj.addTime}">${obj.addTime}</td> + <td style="text-align: center;"> + <input type="hidden" id="id" name="id" value="${obj.id}"> + <input type="hidden" id="name" name="name" value="${obj.name}"> + <input type="hidden" id="provinceCode1" name="provinceCode1" value="${obj.provinceCode}"> + <input type="hidden" id="province1" name="province1" value="${obj.province}"> + <input type="hidden" id="cityCode1" name="cityCode1" value="${obj.cityCode}"> + <input type="hidden" id="city1" name="city1" value="${obj.city}"> + <input type="hidden" id="districtCode1" name="districtCode1" value="${obj.districtCode}"> + <input type="hidden" id="district1" name="district1" value="${obj.district}"> + <input type="hidden" id="coordinate1" name="coordinate1" value="${obj.coordinate}"> + ${obj.name}</td> + <td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td> + </tr> + @} + </tbody> + </table> + </div> + </div> + </div> + + </div> + </div> + + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSiteInfoDlg.close()"/> + </div> + </div> + </div> + + </div> +</div> +<script src="https://webapi.amap.com/maps?v=1.4.15&key=d868ee8a0084a4a1b4271d8030e32fba&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> +<script src="${ctxPath}/static/modular/system/airSite/electricFence.js"></script> +<script src="${ctxPath}/static/modular/system/airSite/airSite_info.js"></script> +@} diff --git a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite.html b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite.html index 20a8dd3..876bf36 100644 --- a/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite.html +++ b/ManagementTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite.html @@ -3,7 +3,7 @@ <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> - <h5>跨城站点管理</h5> + <h5>景区站点管理</h5> </div> <div class="ibox-content"> <div class="row row-lg"> diff --git a/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine.js b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine.js new file mode 100644 index 0000000..83415f3 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine.js @@ -0,0 +1,244 @@ +/** + * 跨城站点管理管理初始化 + */ +var TLine = { + id: "TLineTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; + +/** + * 初始化表格的列 + */ +TLine.initColumn = function () { + return [ + {field: 'selectItem', radio: true}, + {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, + {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'10%', + formatter: function (value, row) { + var btn = ""; + if(row.insertTime != '' && row.insertTime != null) { + var time = row.insertTime.replace(" ",'<br>'); + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insertTime + '" onfocus="TUser.tooltip()">' + time + '</p>'] + } + return btn; + } + }, + {title: '线路名称', field: 'name', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.name != '' && row.name != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.name + '" onfocus="TUser.tooltip()">' + row.name+ '</p>'] + } + return btn; + } + }, + {title: '关联车型', field: 'modelStr', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.modelStr != '' && row.modelStr != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.modelStr + '" onfocus="TUser.tooltip()">' + row.modelStr+ '</p>'] + } + return btn; + } + }, + {title: '班次数', field: 'shiftNum', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.shiftNum != '' && row.shiftNum != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.shiftNum + '" onfocus="TUser.tooltip()">' + row.shiftNum+ '</p>'] + } + return btn; + } + }, + {title: '关联企业数', field: 'companyNum', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.companyNum != '' && row.companyNum != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.companyNum + '" onfocus="TUser.tooltip()">' + row.companyNum+ '</p>'] + } + return btn; + } + }, + {title: '申请班次间隔时间', field: 'shiftInterval', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.shiftInterval != '' && row.shiftInterval != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.shiftInterval + '分钟" onfocus="TUser.tooltip()">' + row.shiftInterval+ '分钟</p>'] + } + return btn; + } + }, + {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.state != '' && row.state != null) { + if (row.state == 1){ + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="正常" onfocus="TUser.tooltip()">正常</p>'] + } else if (row.state == 2){ + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="冻结" onfocus="TUser.tooltip()">冻结</p>'] + } + } + return btn; + } + } + ]; +}; + +/** + * 检查是否选中 + */ +TLine.check = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length == 0){ + Feng.info("请先选中表格中的某一记录!"); + return false; + }else{ + TLine.seItem = selected[0]; + return true; + } +}; + +/** + * 添加跨城线路 + */ +TLine.openAddTLine = function () { + var index = layer.open({ + type: 2, + title: '添加跨城线路', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/airLine/airLine_add' + }); + this.layerIndex = index; +}; + +/** + * 编辑跨城线路 + */ +TLine.openTLineDetail = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: '编辑跨城线路', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/airLine/airLine_update/' + TLine.seItem.id + }); + this.layerIndex = index; + } +}; +/** + * 分配企业 + */ +TLine.addCompany = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: '分配企业', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/airLine/airLine_addCompany/' + TLine.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 删除跨城站点管理 + */ +TLine.opt = function (type) { + if (this.check()) { + var name = TLine.seItem.name; + if (name == "" || name == null || name == undefined) { + name = "该线路"; + } else { + name = "【" + name + "】"; + } + var str = ""; + var text = "请谨慎操作!"; + var title = "请谨慎操作!"; + if (1 == type){ + str = "删除"; + title = "您是否确认删除"+name+"?"; + text = "请谨慎操作,删除后数据无法恢复!"; + } else if (2 == type){ + str = "冻结"; + title = "您是否确认冻结"+name+"?"; + } else if (3 == type){ + str = "解冻"; + title = "您是否确认解冻"+name+"?"; + } + if (1 == type){ + if (TLine.seItem.companyNum != "" && TLine.seItem.companyNum != null && TLine.seItem.companyNum > 0) { + swal("删除失败", "该线路还有关联企业!", "warning"); + return; + } + } + if(2 == type){ + if (TLine.seItem.state != 1) { + swal("冻结失败", "【正常】状态下才能执行此操作!", "warning"); + return; + } + } + if (3 == type){ + if (TLine.seItem.state != 2){ + swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning"); + return; + } + } + + swal({ + title: title, + text: text, + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: str, + closeOnConfirm: true + }, function () { + var ajax = new $ax(Feng.ctxPath + "/airLine/opt", function (data) { + swal(str+"成功", "您已经"+str+"了" + name + "。", "success"); + TLine.table.refresh(); + }, function (data) { + swal(str+"失败", data.responseJSON.message + "!", "warning"); + }); + ajax.set("tLineId",TLine.seItem.id); + ajax.set("optType", type); + ajax.start(); + }); + } +}; + +/** + * 查询跨城站点管理列表 + */ +TLine.search = function () { + var queryData = {}; + queryData['insertTime'] = $("#insertTime").val(); + queryData['name'] = $("#name").val(); + queryData['insertUser'] = $("#insertUser").val(); + queryData['modelStr'] = $("#modelStr").val(); + queryData['state'] = $("#state").val(); + TLine.table.refresh({query: queryData}); +}; + +TLine.resetSearch = function () { + $("#insertTime").val(""); + $("#name").val(""); + $("#insertUser").val(""); + $("#modelStr").val(""); + $("#state").val(""); + TLine.search(); +}; + +$(function () { + var defaultColunms = TLine.initColumn(); + var table = new BSTable(TLine.id, "/airLine/list", defaultColunms); + table.setPaginationType("server"); + TLine.table = table.init(); +}); diff --git a/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine_info.js b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine_info.js new file mode 100644 index 0000000..1f024ef --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airLine/airLine_info.js @@ -0,0 +1,443 @@ +/** + * 初始化跨城站点管理详情对话框 + */ +var TLineInfoDlg = { + tLineInfoData : {}, + validateFields: { + name: { + validators: { + notEmpty: { + message: '线路名称不能为空' + } + } + }, + startSiteId: { + validators: { + notEmpty: { + message: '请选择起点' + } + } + }, + endSiteId: { + validators: { + notEmpty: { + message: '请选择终点' + } + } + }, + shiftInterval: { + validators: { + notEmpty: { + message: '司机申请限制分钟数不能为空' + }, + regexp: { + regexp: /^[0-9]{0,3}$/, + message: '司机申请限制分钟数格式不正确' + } + } + }, + rakeRate: { + validators: { + notEmpty: { + message: '抽成比例不能为空' + }, + regexp: { + regexp: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/, + message: '抽成比例格式不正确' + } + } + }, + } +}; + +/** + * 验证数据是否为空 + */ +TLineInfoDlg.validate = function () { + $('#lineInfoForm').data("bootstrapValidator").resetForm(); + $('#lineInfoForm').bootstrapValidator('validate'); + return $("#lineInfoForm").data('bootstrapValidator').isValid(); +}; + +/** + * 清除数据 + */ +TLineInfoDlg.clearData = function() { + this.tLineInfoData = {}; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TLineInfoDlg.set = function(key, val) { + this.tLineInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; + return this; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TLineInfoDlg.get = function(key) { + return $("#" + key).val(); +} + +/** + * 关闭此对话框 + */ +TLineInfoDlg.close = function() { + parent.layer.close(window.parent.TLine.layerIndex); +} + +/** + * 收集数据 + */ +TLineInfoDlg.collectData = function() { + this + .set('id') + .set('name') + .set('shiftInterval') + .set('rakeRate') + .set('state') + .set('insertTime'); +} + +/** + * 提交添加 + */ +TLineInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + var startSiteId = $("#startSiteId").val(); + var endSiteId = $("#endSiteId").val(); + + var subArr=[]; + $(".typeValueClass").each(function () { + subArr.push({ + serverModelId:$(this).find("input[name*='serverModelIdValue']").val(), + type:$(this).find("input[name*='typeValue']").val(), + time:$(this).find("input[name*='timeValue']").val(), + content:$(this).find("input[name*='contentValue']").val(), + contentStr:$(this).find("input[name*='contentStrValue']").val(), + }) + }); + if(subArr.length <= 0){ + Feng.error("请至少设置一条价格设置"); + return; + } + var shuArr=[]; + $(".shiftValueClass").each(function () { + shuArr.push({ + shiftTime:$(this).find("input[name*='shiftTimeValue']").val(), + carNum:$(this).find("input[name*='carNumValue']").val(), + time2:$(this).find("input[name*='time2Value']").val(), + }) + }) + if(shuArr.length <= 0){ + Feng.error("请至少设置一条班次设置"); + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/airLine/add", function(data){ + if(data.status == 200){ + Feng.success("添加成功!"); + window.parent.TLine.table.refresh(); + TLineInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set(this.tLineInfoData); + ajax.set("startSiteId",startSiteId); + ajax.set("endSiteId",endSiteId); + ajax.set("subArr",JSON.stringify(subArr)); + ajax.set("shuArr",JSON.stringify(shuArr)); + ajax.start(); +} + +/** + * 提交修改 + */ +TLineInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + var startSiteId = $("#startSiteId").val(); + var endSiteId = $("#endSiteId").val(); + + var subArr=[]; + $(".typeValueClass").each(function () { + subArr.push({ + serverModelId:$(this).find("input[name*='serverModelIdValue']").val(), + type:$(this).find("input[name*='typeValue']").val(), + time:$(this).find("input[name*='timeValue']").val(), + content:$(this).find("input[name*='contentValue']").val(), + contentStr:$(this).find("input[name*='contentStrValue']").val(), + }) + }); + if(subArr.length <= 0){ + Feng.error("请至少设置一条价格设置"); + return; + } + var shuArr=[]; + $(".shiftValueClass").each(function () { + shuArr.push({ + shiftTime:$(this).find("input[name*='shiftTimeValue']").val(), + carNum:$(this).find("input[name*='carNumValue']").val(), + time2:$(this).find("input[name*='time2Value']").val(), + }) + }) + if(shuArr.length <= 0){ + Feng.error("请至少设置一条班次设置"); + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/airLine/update", function(data){ + if(data.status == 200){ + Feng.success("修改成功!"); + window.parent.TLine.table.refresh(); + TLineInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("修改失败!" + data.responseJSON.message + "!"); + }); + ajax.set(this.tLineInfoData); + ajax.set("startSiteId",startSiteId); + ajax.set("endSiteId",endSiteId); + ajax.set("subArr",JSON.stringify(subArr)); + ajax.set("shuArr",JSON.stringify(shuArr)); + ajax.start(); +} + +//添加公司提交 +TLineInfoDlg.addCompanySubmit = function(){ + var comArr=[]; + $(".companyValueClass").each(function () { + comArr.push({ + companyId:$(this).find("input[name*='companyIdValue']").val(), + }) + }) + /*if(comArr.length <= 0){ + Feng.error("请至少添加一个企业"); + return; + }*/ + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/airLine/addCompany", function(data){ + Feng.success("操作成功!"); + window.parent.TLine.table.refresh(); + TLineInfoDlg.close(); + },function(data){ + Feng.error("操作失败!" + data.responseJSON.message + "!"); + }); + ajax.set("lineId",$("#lineId").val()); + ajax.set("comArr",JSON.stringify(comArr)); + ajax.start(); +} + +$(function() { + Feng.initValidator("lineInfoForm", TLineInfoDlg.validateFields); +}); + +/** + * 计价方式改变时 + * @param e + */ +TLineInfoDlg.typeClick = function (e) { + if (1 == e){ + $("#fixedDiv").show(); + $("#floatDiv").hide(); + } else if (2 == e){ + $("#floatDiv").show(); + $("#fixedDiv").hide(); + } +} + +/** + * 添加价格 + */ +TLineInfoDlg.addPrice = function () { + var serverModelId = $("#serverModelId").val(); + var serverModelText = $("#serverModelId option:selected").text(); + if ("" == serverModelId){ + Feng.info("请选择车型"); + return; + } + var type = $("input[name='type']:checked").val(); + var content = ''; + var contentStr = ""; + if (1 == type){ + var num1 = $("#num1").val(); + var num2 = $("#num2").val(); + var num3 = $("#num3").val(); + var num4 = $("#num4").val(); + if(!regDouble.test(num1) || !regDouble.test(num2) || !regXiShu.test(num3) || !regXiShu.test(num4)){ + Feng.info("固定计价格式不正确!"); + return; + } + content = '{"num1":"'+num1+'","num2":"'+num2+'","num3":"'+num3+'","num4":"'+num4+'"}'; + contentStr = "单人价格:"+num1+";包车价格:"+num2+";五座系数:"+num3+";七座系数:"+num4+";"; + } else if (2 == type){ + var num11 = $("#num11").val(); + var num12 = $("#num12").val(); + var num13 = $("#num13").val(); + var num14 = $("#num14").val(); + var num15 = $("#num15").val(); + var num16 = $("#num16").val(); + var num17 = $("#num17").val(); + var num18 = $("#num18").val(); + if(!regDouble.test(num11) || !regDouble.test(num12) || !regDouble.test(num13) || !regXiShu1.test(num14) || !regXiShu.test(num15) || !regXiShu.test(num16) || !regXiShu.test(num17) || !regXiShu.test(num18)){ + Feng.info("浮动计价格式不正确!"); + return; + } + content = '{"num1":"'+num11+'","num2":"'+num12+'","num3":"'+num13+'","num4":"'+num14+'","num5":"'+num15+'","num6":"'+num16+'","num7":"'+num17+'","num8":"'+num18+'"}'; + contentStr = "参考价格:"+num11+";参考里程:"+num12+";保底价:"+num13+";超出参考里程优惠系数:"+num14+";低于参考里程优惠系数:"+num15+";包车系数:"+num16+";五座系数:"+num17+";七座系数:"+num18+";"; + } + + var subArr=[]; + $(".typeValueClass").each(function () { + subArr.push({ + serverModelId:$(this).find("input[name*='serverModelIdValue']").val(), + type:$(this).find("input[name*='typeValue']").val(), + time:$(this).find("input[name*='timeValue']").val(), + content:$(this).find("input[name*='contentValue']").val(), + contentStr:$(this).find("input[name*='contentStrValue']").val(), + }) + }); + //判断车型是否存在 + for(var i=0;i<subArr.length;i++){ + var serverModelIdValue = subArr[i].serverModelId; + if (serverModelIdValue == serverModelId) { + Feng.info("车型已存在,请重新选择"); + return; + } + } + //封装数据 + var str = '<tr class="typeValueClass">' + + '<td style="text-align: center;"><input type="hidden" id="timeValue" name="timeValue" value="'+getNowFormatDate()+'">' + getNowFormatDate() + '</td>' + + '<td style="text-align: center;"><input type="hidden" id="serverModelIdValue" name="serverModelIdValue" value="'+serverModelId+'">'+serverModelText+'</td>' + + '<td style="text-align: center;"><input type="hidden" id="typeValue" name="typeValue" value="'+type+'">' + + ' <input type="hidden" id="contentValue" name="contentValue" value='+content+'>' + + ' <input type="hidden" id="contentStrValue" name="contentStrValue" value="'+contentStr+'">'+contentStr+'</td>' + + '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>'; + $("#priceValue").append(str); + //清除数据 + $("#serverModelId").val(""); + if (1 == type){ + $("#num1").val(""); + $("#num2").val(""); + $("#num3").val(""); + $("#num4").val(""); + } else if (2 == type){ + $("#num11").val(""); + $("#num12").val(""); + $("#num13").val(""); + $("#num14").val(""); + $("#num15").val(""); + $("#num16").val(""); + $("#num17").val(""); + $("#num18").val(""); + } +} + +/** + * 添加班次 + */ +TLineInfoDlg.addShift = function () { + var shiftTime = $("#shiftTime").val(); + if ("" == shiftTime){ + Feng.info("请选择班次时间区间"); + return; + } + var carNum = $("#carNum").val(); + if ("" == carNum){ + Feng.info("请填写车次数"); + return; + }else if (!regInt.test(carNum)){ + Feng.info("车次数格式不正确"); + return; + } + + var shuArr=[]; + $(".shiftValueClass").each(function () { + shuArr.push({ + shiftTime:$(this).find("input[name*='shiftTimeValue']").val(), + carNum:$(this).find("input[name*='carNumValue']").val(), + time2:$(this).find("input[name*='time2Value']").val(), + }) + }) + + //判断时间是否存在 + for(var i=0;i<shuArr.length;i++){ + var shiftTimeValue = shuArr[i].shiftTime; + if (shiftTimeValue == shiftTime) { + Feng.info("班次时间已存在,请重新选择"); + return; + } + } + //封装数据 + var str = '<tr class="shiftValueClass">' + + '<td style="text-align: center;"><input type="hidden" id="time2Value" name="time2Value" value="'+getNowFormatDate()+'">' + getNowFormatDate() + '</td>' + + '<td style="text-align: center;"><input type="hidden" id="shiftTimeValue" name="shiftTimeValue" value="'+shiftTime+'">'+shiftTime+'</td>' + + '<td style="text-align: center;"><input type="hidden" id="carNumValue" name="carNumValue" value="'+carNum+'">'+carNum+'</td>' + + '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>'; + $("#shiftValue").append(str); + //清除数据 + $("#shiftTime").val(""); + $("#carNum").val(""); +} + +/** + * 添加公司 + */ +TLineInfoDlg.addCompany = function () { + var companyId = $("#companyId").val(); + var companyText = $("#companyId option:selected").text(); + if ("" == companyId){ + Feng.info("请选择企业"); + return; + } + var comArr=[]; + $(".companyValueClass").each(function () { + comArr.push({ + companyId:$(this).find("input[name*='companyIdValue']").val(), + }) + }) + //判断公司是否存在 + for(var i=0;i<comArr.length;i++){ + var companyIdValue = comArr[i].companyId; + if (companyIdValue == companyId) { + Feng.info("企业已存在,请重新选择"); + return; + } + } + //封装数据 + var str = '<tr class="companyValueClass">' + + '<td style="text-align: center;"><input type="hidden" id="companyIdValue" name="companyIdValue" value="'+companyId+'">'+companyText+'</td>' + + '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>'; + $("#companyValue").append(str); + //清除数据 + $("#companyId").val(""); + +} + +function deleteSub(e) { + $(e).parent().parent().remove(); +} diff --git a/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite.js b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite.js new file mode 100644 index 0000000..fd63835 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite.js @@ -0,0 +1,231 @@ +/** + * 跨城站点管理管理初始化 + */ +var TSite = { + id: "TSiteTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; + +/** + * 初始化表格的列 + */ +TSite.initColumn = function () { + return [ + {field: 'selectItem', radio: true}, + {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, + {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'20%', + formatter: function (value, row) { + var btn = ""; + if(row.insertTime != '' && row.insertTime != null) { + var time = row.insertTime.replace(" ",'<br>'); + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insertTime + '" onfocus="TUser.tooltip()">' + row.insertTime + '</p>'] + } + return btn; + } + }, + {title: '站点名称', field: 'name', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.name != '' && row.name != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.name + '" onfocus="TUser.tooltip()">' + row.name + '</p>'] + } + return btn; + } + }, + {title: '添加人ID', field: 'insertUserId', visible: false, align: 'center', valign: 'middle'}, + {title: '创建者', field: 'insertUser', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.insertUser != '' && row.insertUser != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insertUser + '" onfocus="TUser.tooltip()">' + row.insertUser + '</p>'] + } + return btn; + } + }, + {title: '所属城市', field: 'province', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.province != '' && row.province != null) { + var str = ""; + if ("" != row.province && undefined != row.province){ + str = str + row.province+"-"; + } + if ("" != row.city && undefined != row.city){ + str = str + row.city+"-"; + } + if ("" != row.district && undefined != row.district){ + str = str + row.district+"-"; + } + str = str.substring(0,str.length-1); + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="'+ str +'" onfocus="TUser.tooltip()">' + str + '</p>'] + } + return btn; + } + }, + {title: '关联线路', field: 'lineNum', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.lineNum != '' && row.lineNum != null) { + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.lineNum + '" onfocus="TUser.tooltip()">' + row.lineNum + '</p>'] + } + return btn; + } + }, + {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + var btn = ""; + if(row.state != '' && row.state != null) { + if(row.state == 1){ + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="正常" onfocus="TUser.tooltip()">正常</p>'] + }else if(row.state == 2){ + btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="冻结" onfocus="TUser.tooltip()">冻结</p>'] + } + } + return btn; + } + } + ]; +}; + +/** + * 检查是否选中 + */ +TSite.check = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length == 0){ + Feng.info("请先选中表格中的某一记录!"); + return false; + }else{ + TSite.seItem = selected[0]; + return true; + } +}; + +/** + * 点击添加跨城站点管理 + */ +TSite.openAddTSite = function () { + var index = layer.open({ + type: 2, + title: '添加跨城站点', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/airSite/airSite_add' + }); + this.layerIndex = index; +}; + +/** + * 打开查看跨城站点管理详情 + */ +TSite.openTSiteDetail = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: '编辑跨城站点', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/airSite/airSite_update/' + TSite.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 操作跨城站点管理 + */ +TSite.opt = function (type) { + if (this.check()) { + var name = TSite.seItem.name; + if (name == "" || name == null || name == undefined) { + name = "该站点"; + } else { + name = "【" + name + "】"; + } + var str = ""; + var text = "请谨慎操作!"; + var title = "请谨慎操作!"; + if (1 == type){ + str = "删除"; + title = "您是否确认删除"+name+"?"; + text = "请谨慎操作,删除后数据无法恢复!"; + } else if (2 == type){ + str = "冻结"; + title = "您是否确认冻结"+name+"?"; + } else if (3 == type){ + str = "解冻"; + title = "您是否确认解冻"+name+"?"; + } + if (1 == type){ + if (TSite.seItem.lineNum != "" && TSite.seItem.lineNum != null && TSite.seItem.lineNum > 0) { + swal("删除失败", "该站点还有关联线路!", "warning"); + return; + } + } + if(2 == type){ + if (TSite.seItem.state != 1) { + swal("冻结失败", "【正常】状态下才能执行此操作!", "warning"); + return; + } + } + if (3 == type){ + if (TSite.seItem.state != 2){ + swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning"); + return; + } + } + + swal({ + title: title, + text: text, + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: str, + closeOnConfirm: true + }, function () { + var ajax = new $ax(Feng.ctxPath + "/airSite/opt", function (data) { + swal(str+"成功", "您已经"+str+"了" + name + "。", "success"); + TSite.table.refresh(); + }, function (data) { + swal(str+"失败", data.responseJSON.message + "!", "warning"); + }); + ajax.set("tSiteId",TSite.seItem.id); + ajax.set("optType", type); + ajax.start(); + }); + } +}; + +/** + * 查询跨城站点管理列表 + */ +TSite.search = function () { + var queryData = {}; + queryData['insertTime'] = $("#insertTime").val(); + queryData['name'] = $("#name").val(); + queryData['insertUser'] = $("#insertUser").val(); + queryData['city'] = $("#city").val(); + queryData['state'] = $("#state").val(); + TSite.table.refresh({query: queryData}); +}; + +TSite.resetSearch = function () { + $("#insertTime").val(""); + $("#name").val(""); + $("#insertUser").val(""); + $("#city").val(""); + $("#state").val(""); + TSite.search(); +}; + +$(function () { + var defaultColunms = TSite.initColumn(); + var table = new BSTable(TSite.id, "/airSite/list", defaultColunms); + table.setPaginationType("server"); + TSite.table = table.init(); +}); diff --git a/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite_info.js b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite_info.js new file mode 100644 index 0000000..3d70100 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/airSite_info.js @@ -0,0 +1,376 @@ +/** + * 初始化跨城站点管理详情对话框 + */ +var TSiteInfoDlg = { + tSiteInfoData : {}, + validateFields: { + name: { + validators: { + notEmpty: { + message: '站点名称不能为空' + } + } + }, + provinceCode: { + validators: { + notEmpty: { + message: '请选择站点所属省' + } + } + }, + } +}; + +/** + * 验证数据是否为空 + */ +TSiteInfoDlg.validate = function () { + $('#siteInfoForm').data("bootstrapValidator").resetForm(); + $('#siteInfoForm').bootstrapValidator('validate'); + return $("#siteInfoForm").data('bootstrapValidator').isValid(); +}; + + +/** + * 清除数据 + */ +TSiteInfoDlg.clearData = function() { + this.tSiteInfoData = {}; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TSiteInfoDlg.set = function(key, val) { + this.tSiteInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; + return this; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TSiteInfoDlg.get = function(key) { + return $("#" + key).val(); +} + +/** + * 关闭此对话框 + */ +TSiteInfoDlg.close = function() { + parent.layer.close(window.parent.TSite.layerIndex); +} + +/** + * 收集数据 + */ +TSiteInfoDlg.collectData = function() { + this + .set('id') + .set('name') + .set('province') + .set('provinceCode') + .set('city') + .set('cityCode') + .set('district') + .set('districtCode') + .set('state') + .set('insertTime') + .set('insertUserId'); +} + +/** + * 提交添加 + */ +TSiteInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + var name = $("#name").val(); + var provinceCode = $("#provinceCode").val(); + var cityCode = $("#cityCode").val(); + var districtCode = $("#districtCode").val(); + if ("" == provinceCode){ + Feng.error("请选择所属城市"); + return; + } + var subArr=[]; + $(".areaValueClass").each(function () { + subArr.push({ + id:$(this).find("input[name*='id']").val(), + areaType:$(this).find("input[name*='areaType1']").val(), + time:$(this).find("input[name*='time']").val(), + name:$(this).find("input[name*='name']").val(), + province:$(this).find("input[name*='province1']").val(), + provinceCode:$(this).find("input[name*='provinceCode1']").val(), + city:$(this).find("input[name*='city1']").val(), + cityCode:$(this).find("input[name*='cityCode1']").val(), + district:$(this).find("input[name*='district1']").val(), + districtCode:$(this).find("input[name*='districtCode1']").val(), + coordinate:$(this).find("input[name*='coordinate1']").val(), + }) + }); + if(subArr.length <= 0){ + Feng.error("请至少填写一条站点区域"); + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/airSite/add", function(data){ + if(data.status == 200){ + Feng.success("添加成功!"); + window.parent.TSite.table.refresh(); + TSiteInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set("name",name); + ajax.set("provinceCode",provinceCode); + ajax.set("province",$("#provinceCode option:selected").text()); + if ("" != cityCode && null != cityCode && undefined != cityCode){ + ajax.set("cityCode",cityCode); + ajax.set("city",$("#cityCode option:selected").text()); + } + if ("" != districtCode && null != districtCode && undefined != districtCode){ + ajax.set("districtCode",$("#districtCode").val()); + ajax.set("district",$("#districtCode option:selected").text()); + } + ajax.set("subArr",JSON.stringify(subArr)); + ajax.start(); +} + +/** + * 提交修改 + */ +TSiteInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + var name = $("#name").val(); + var provinceCode = $("#provinceCode").val(); + var cityCode = $("#cityCode").val(); + var districtCode = $("#districtCode").val(); + if ("" == provinceCode){ + Feng.error("请选择所属城市"); + return; + } + var subArr=[]; + $(".areaValueClass").each(function () { + subArr.push({ + id:$(this).find("input[name*='id']").val(), + areaType:$(this).find("input[name*='areaType1']").val(), + time:$(this).find("input[name*='time']").val(), + name:$(this).find("input[name*='name']").val(), + province:$(this).find("input[name*='province1']").val(), + provinceCode:$(this).find("input[name*='provinceCode1']").val(), + city:$(this).find("input[name*='city1']").val(), + cityCode:$(this).find("input[name*='cityCode1']").val(), + district:$(this).find("input[name*='district1']").val(), + districtCode:$(this).find("input[name*='districtCode1']").val(), + coordinate:$(this).find("input[name*='coordinate1']").val(), + }) + }); + if(subArr.length <= 0){ + Feng.error("请至少填写一条站点区域"); + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/airSite/update", function(data){ + Feng.success("修改成功!"); + window.parent.TSite.table.refresh(); + TSiteInfoDlg.close(); + },function(data){ + Feng.error("修改失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",$("#id").val()); + ajax.set("name",name); + ajax.set("provinceCode",provinceCode); + ajax.set("province",$("#provinceCode option:selected").text()); + if ("" != cityCode && null != cityCode && undefined != cityCode){ + ajax.set("cityCode",cityCode); + ajax.set("city",$("#cityCode option:selected").text()); + } + if ("" != districtCode && null != districtCode && undefined != districtCode){ + ajax.set("districtCode",$("#districtCode").val()); + ajax.set("district",$("#districtCode option:selected").text()); + } + ajax.set("subArr",JSON.stringify(subArr)); + ajax.start(); +} + +$(function() { + Feng.initValidator("siteInfoForm", TSiteInfoDlg.validateFields); +}); + + +//省改变 +TSiteInfoDlg.provinceChange = function (e) { + var provinceCode=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){ + if(data!=null){ + var content='<option value="">选择市</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cityCode").empty().append(content); + $("#districtCode").empty().append('<option value="">选择区</option>'); + } + }); + ajax.set("code",provinceCode); + ajax.start(); +} +//市改变 +TSiteInfoDlg.cityChange = function (e) { + var cityCode=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){ + if(data!=null){ + var content='<option value="">选择区</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#districtCode").empty().append(content); + } + }); + ajax.set("code",cityCode); + ajax.start(); +} +/** + * 类型改变执行 + * @param e + */ +TSiteInfoDlg.areaTypeClick = function (e) { + if (1 == e){//行政区域 + $("#areaType1Div").show(); + $("#areaType2Div").hide(); + } else if (2 == e){ + $("#areaType2Div").show(); + $("#areaType1Div").hide(); + } +} + +//站点区域省改变 +TSiteInfoDlg.provinceChange1 = function (e) { + var provinceCode=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){ + if(data!=null){ + var content='<option value="">选择市</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cityCode1").empty().append(content); + $("#districtCode1").empty().append('<option value="">选择区</option>'); + } + }); + ajax.set("code",provinceCode); + ajax.start(); +} +//站点区域市改变 +TSiteInfoDlg.cityChange1 = function (e) { + var cityCode=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){ + if(data!=null){ + var content='<option value="">选择区</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#districtCode1").empty().append(content); + } + }); + ajax.set("code",cityCode); + ajax.start(); +} + +/** + * 添加区域 + */ +TSiteInfoDlg.addArea = function () { + var areaName = $("#areaName").val(); + if ("" == areaName || null == areaName){ + Feng.error("区域名称不能为空"); + return; + } + var areaType = $("input[name='areaType']:checked").val(); + var b = false; + $(".areaValueClass").each(function () { + var areaType1 = $(this).find("input[name*='areaType1']").val(); + if(areaType != areaType1){ + b = true; + return + } + }); + if(b){ + Feng.error("电子围栏和行政区域不能混合使用"); + return; + } + + if (1 == areaType){ + var provinceCode1 = $("#provinceCode1").val(); + var province1 = $("#provinceCode1 option:selected").text(); + var cityCode1 = $("#cityCode1").val(); + var city1 = $("#cityCode1 option:selected").text(); + var districtCode1 = $("#districtCode1").val(); + var district1 = $("#districtCode1 option:selected").text(); + if ("" == provinceCode1){ + Feng.error("请选择行政区域所属省"); + return; + } + }else if (2 == areaType) { + if("" == coordinate){ + Feng.error('请在地图上规划区域'); + return; + } + } + var subArr=[]; + $(".areaValueClass").each(function () { + subArr.push({ + areaType:$(this).find("input[name*='areaType1']").val(), + time:$(this).find("input[name*='time']").val(), + name:$(this).find("input[name*='name']").val(), + province:$(this).find("input[name*='province1']").val(), + provinceCode:$(this).find("input[name*='provinceCode1']").val(), + city:$(this).find("input[name*='city1']").val(), + cityCode:$(this).find("input[name*='cityCode1']").val(), + district:$(this).find("input[name*='district1']").val(), + districtCode:$(this).find("input[name*='districtCode1']").val(), + coordinate:$(this).find("input[name*='coordinate1']").val(), + }) + }); + var str = '<tr class="areaValueClass">' + + // '<td>' + (subArr.length+1) + '</td>' + + '<td style="text-align: center;">' + + '<input type="hidden" id="areaType1" name="areaType1" value="'+areaType+'">' + + '<input type="hidden" id="time" name="time" value="'+getNowFormatDate()+'">' + getNowFormatDate() + '</td>' + + + '<td style="text-align: center;">' + + '<input type="hidden" id="name" name="name" value="'+areaName+'">' + + '<input type="hidden" id="provinceCode1" name="provinceCode1" value="'+provinceCode1+'">' + + '<input type="hidden" id="province1" name="province1" value="'+province1+'">' + + '<input type="hidden" id="cityCode1" name="cityCode1" value="'+cityCode1+'">' + + '<input type="hidden" id="city1" name="city1" value="'+city1+'">' + + '<input type="hidden" id="districtCode1" name="districtCode1" value="'+districtCode1+'">' + + '<input type="hidden" id="district1" name="district1" value="'+district1+'">' + + '<input type="hidden" id="coordinate1" name="coordinate1" value="'+coordinate+'">' + areaName + '</td>' + + + '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>'; + $("#areaValue").append(str); + + //清除电子围栏数据 + $("#clear").click(); +} +//删除数据 +function deleteSub(e) { + $(e).parent().parent().remove(); +} \ No newline at end of file diff --git a/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/electricFence.js b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/electricFence.js new file mode 100644 index 0000000..8881503 --- /dev/null +++ b/ManagementTravel/guns-admin/src/main/webapp/static/modular/system/airSite/electricFence.js @@ -0,0 +1,329 @@ +var map = new AMap.Map('container',{ + resizeEnable: true, + zoom:10 +}); + + +var value = ""; +map.getCity( + callback=function (result) { + value = result.city; + drawBounds(); + } +); + + +var mouseTool = new AMap.MouseTool(map); +//监听draw事件可获取画好的覆盖物 +var overlays = []; +var name = null; +var coordinate = '';//存储坐标 +var objs = {//存储各种类型的覆盖物对象 + "polyline":[], + "polygon":[], + "rectangle":[], + "circle":[] +}; +var editors = []; +mouseTool.on('draw',function(e){ + overlays.push(e.obj); + console.log(e.obj.getPath()); + + switch (name) { + case 'polyline':{//折线图 + var polyline = e.obj.getPath(); + getCoordinate(polyline); + objs.polyline.push(e.obj); + break; + } + case 'polygon':{//多边形 + var polygon = e.obj.getPath(); + getCoordinate(polygon); + objs.polygon.push(e.obj); + break; + } + case 'rectangle':{//矩形 + var rectangle = e.obj.getPath(); + getCoordinate(rectangle); + objs.rectangle.push(e.obj); + break; + } + case 'circle':{//圆形 + var center = e.obj.getCenter(); + var radius = e.obj.getRadius(); + if(radius > 5000){ + Feng.error("创建电子围栏失败,圆半径不能大于5000米"); + return; + } + coordinate += center.lng + ',' + center.lat + ';' + radius + "_"; + objs.circle.push(e.obj); + break; + } + } + console.log(coordinate); +}) + + +var district = null; +var polygons=[]; +function drawBounds() { + if(value == ''){ + value = '北京市'; + } + + //加载行政区划插件 + if(!district){ + //实例化DistrictSearch + var opts = { + subdistrict: 0, //获取边界不需要返回下级行政区 + extensions: 'all', //返回行政区边界坐标组等具体信息 + level: 'district' //查询行政级别为 市 + }; + district = new AMap.DistrictSearch(opts); + } + //行政区查询 + district.setLevel(document.getElementById('level').value) + district.search(value, function(status, result) { + map.remove(polygons)//清除上次结果 + polygons = []; + var bounds = result.districtList[0].boundaries; + if (bounds) { + for (var i = 0, l = bounds.length; i < l; i++) { + //生成行政区划polygon + var polygon = new AMap.Polygon({ + strokeWeight: 1, + path: bounds[i], + fillOpacity: 0.4, + fillColor: '#80d8ff', + strokeColor: '#0091ea' + }); + polygons.push(polygon); + } + } + map.add(polygons) + map.setFitView(polygons);//视口自适应 + }); +} + +document.getElementById('find').onclick = function () { + value = document.getElementById('district').value; + if(value == ''){ + value = "北京市"; + } + drawBounds() +}; +document.getElementById('district').onkeydown = function(e) { + if (e.keyCode === 13) { + value = document.getElementById('district').value; + if(value == ''){ + value = "北京市"; + } + drawBounds(); + return false; + } + return true; +}; + + + + +//处理坐标结果 +function getCoordinate(arr){ + var str = ''; + for(var i = 0; i < arr.length; i++){ + var lng = arr[i].lng; + var lat = arr[i].lat; + str += lng + ',' + lat + ';'; + } + coordinate += str.substring(0, str.length - 1) + "_"; +} + + +function draw(type){ + switch(type){ + case 'marker':{ + mouseTool.marker({ + //同Marker的Option设置 + }); + break; + } + case 'polyline':{ + mouseTool.polyline({ + strokeColor:'#80d8ff' + //同Polyline的Option设置 + }); + break; + } + case 'polygon':{ + mouseTool.polygon({ + fillColor:'#00b0ff', + strokeColor:'#80d8ff' + //同Polygon的Option设置 + }); + break; + } + case 'rectangle':{ + mouseTool.rectangle({ + fillColor:'#00b0ff', + strokeColor:'#80d8ff' + //同Polygon的Option设置 + }); + break; + } + case 'circle':{ + mouseTool.circle({ + fillColor:'#00b0ff', + strokeColor:'#80d8ff' + //同Circle的Option设置 + }); + break; + } + } +} +var radios = document.getElementsByName('func'); +for(var i=0;i<radios.length;i+=1){ + radios[i].onchange = function(e){ + draw(e.target.value) + name = e.target.value; + } +} +// draw('marker') + +document.getElementById('clear').onclick = function(){ + map.remove(overlays) + overlays = []; + coordinate = ''; + objs.circle = []; + objs.rectangle = []; + objs.polygon = []; + objs.polyline = []; + closeEdit(); +} +document.getElementById('close').onclick = function(){ + mouseTool.close()//关闭,并清除覆盖物 + for(var i=0;i<radios.length;i+=1){ + radios[i].checked = false; + } + closeEdit(); +} + + +//点击提交处理函数 +function submitCoordinate(){ + var name = $('#addressName').val(); + if('' == name){ + Feng.error('请填写地址名称'); + return; + } + if('' == coordinate){ + Feng.error('请在地图上规划区域'); + return; + } + coordinate = coordinate.substring(0, coordinate.length - 1); + +} + +function editAll() { + coordinate = ''; + editors = []; + //折线 + for(var i in objs.polyline){ + var polyline = objs.polyline[i]; + var polyEditor = new AMap.PolyEditor(map, polyline) + polyEditor.on('addnode', function(event) { + // log.info('触发事件:addnode') + }) + + polyEditor.on('adjust', function(event) { + // log.info('触发事件:adjust') + }) + + polyEditor.on('removenode', function(event) { + // log.info('触发事件:removenode') + }) + + polyEditor.on('end', function(e) { + var polyline = e.target.getPath(); + getCoordinate(polyline); + }) + editors.push(polyEditor); + polyEditor.open(); + } + + //多边形 + for(var i in objs.polygon){ + var polygon = objs.polygon[i]; + var polyEditor = new AMap.PolyEditor(map, polygon) + + polyEditor.on('addnode', function(event) { + // log.info('触发事件:addnode') + }) + + polyEditor.on('adjust', function(event) { + // log.info('触发事件:adjust') + }) + + polyEditor.on('removenode', function(event) { + // log.info('触发事件:removenode') + }) + + polyEditor.on('end', function(e) { + var polygon = e.target.getPath(); + getCoordinate(polygon); + }) + editors.push(polyEditor); + polyEditor.open(); + } + + + //矩形 + for(var i in objs.rectangle){ + var rectangle = objs.rectangle[i]; + var rectangleEditor = new AMap.RectangleEditor(map, rectangle) + + rectangleEditor.on('adjust', function(event) { + // log.info('触发事件:adjust') + }) + + rectangleEditor.on('end', function(e) { + var polygon = e.target.getPath(); + getCoordinate(polygon); + }) + editors.push(rectangleEditor); + rectangleEditor.open(); + } + + //圆形 + for(var i in objs.circle){ + var circle = objs.circle[i]; + var circleEditor = new AMap.CircleEditor(map, circle) + + circleEditor.on('move', function(event) { + // log.info('触发事件:move') + }) + + circleEditor.on('adjust', function(e) { + var radius = e.target.getRadius(); + if(radius > 5000){ + Feng.error("创建电子围栏失败,圆半径不能大于5000米"); + return; + } + }) + + circleEditor.on('end', function(e) { + var center = e.target.getCenter(); + var radius = e.target.getRadius(); + coordinate += center.lng + ',' + center.lat + ';' + radius + "_"; + }) + editors.push(circleEditor); + circleEditor.open(); + } +} + + +function closeEdit() { + for(var i in editors){ + var editor = editors[i]; + editor.close(); + } +} \ No newline at end of file -- Gitblit v1.7.1