Commit 146db63bf66182dc965634d07ac4fe3c9697d08f

Authored by yiming
1 parent 7d71c028

bf

bsthLineProfiles/src/main/java/com/ruoyi/project/system/line/controller/BsthTLineAddController.java 0 → 100644
  1 +package com.ruoyi.project.system.line.controller;
  2 +
  3 +import com.ruoyi.common.utils.poi.ExcelUtil;
  4 +import com.ruoyi.common.utils.security.ShiroUtils;
  5 +import com.ruoyi.framework.aspectj.lang.annotation.Log;
  6 +import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  7 +import com.ruoyi.framework.web.controller.BaseController;
  8 +import com.ruoyi.framework.web.domain.AjaxResult;
  9 +import com.ruoyi.framework.web.page.TableDataInfo;
  10 +import com.ruoyi.project.system.dict.domain.DictData;
  11 +import com.ruoyi.project.system.dict.service.IDictDataService;
  12 +import com.ruoyi.project.system.line.domain.BsthTLine;
  13 +import com.ruoyi.project.system.line.service.IBsthTLineService;
  14 +import com.ruoyi.project.system.user.domain.User;
  15 +import com.ruoyi.project.system.user.service.IUserService;
  16 +import org.apache.shiro.authz.annotation.RequiresPermissions;
  17 +import org.springframework.beans.factory.annotation.Autowired;
  18 +import org.springframework.stereotype.Controller;
  19 +import org.springframework.ui.ModelMap;
  20 +import org.springframework.web.bind.annotation.*;
  21 +
  22 +import java.io.File;
  23 +import java.lang.reflect.Field;
  24 +import java.lang.reflect.Method;
  25 +import java.util.ArrayList;
  26 +import java.util.HashMap;
  27 +import java.util.List;
  28 +import java.util.Map;
  29 +
  30 +/**
  31 + * 【请填写功能名称】Controller
  32 + *
  33 + * @author ruoyi
  34 + * @date 2021-08-17
  35 + */
  36 +@Controller
  37 +@RequestMapping("/system/lineAdd")
  38 +public class BsthTLineAddController extends BaseController
  39 +{
  40 + private String prefix = "system/lineAdd";
  41 +
  42 +
  43 + @Autowired
  44 + private IBsthTLineService bsthTLineService;
  45 +
  46 + @Autowired
  47 + IDictDataService dictDataService;
  48 +
  49 +
  50 + @Autowired
  51 + private IUserService userService;
  52 +
  53 + @RequiresPermissions("system:line:view")
  54 + @GetMapping()
  55 + public String line()
  56 + {
  57 + return prefix + "/line";
  58 + }
  59 +
  60 + @GetMapping("/map")
  61 + public String map()
  62 + {
  63 + return prefix + "/map";
  64 + }
  65 +
  66 + /**
  67 + * 线路新增分页
  68 + */
  69 + @RequiresPermissions("system:line:list")
  70 + @PostMapping("/list")
  71 + @ResponseBody
  72 + public TableDataInfo list(BsthTLine bsthTLine)
  73 + {
  74 + startPage();
  75 + List<BsthTLine> list = bsthTLineService.selectBsthTLineExamineList(bsthTLine);
  76 + return getDataTable(list);
  77 + }
  78 +
  79 + /**
  80 + * 新增弹窗
  81 + */
  82 + @GetMapping("/add")
  83 + public String add()
  84 + {
  85 + return prefix + "/add";
  86 + }
  87 +
  88 +
  89 + /**
  90 + * 线路新增
  91 + */
  92 + @RequiresPermissions("system:line:add")
  93 + @Log(title = "线路新增", businessType = BusinessType.INSERT)
  94 + @PostMapping("/add")
  95 + @ResponseBody
  96 + public AjaxResult addSave(BsthTLine bsthTLine)
  97 + {
  98 + User loginUser = ShiroUtils.getSysUser();
  99 + bsthTLine.setCreateBy(loginUser.getUserName());
  100 + return toAjax(bsthTLineService.insertBsthTLineExamine(bsthTLine));
  101 + }
  102 +
  103 + /**
  104 + * 线路修改预加载
  105 + */
  106 + @GetMapping("/edit/{id}")
  107 + public String edit(@PathVariable("id") Long id, ModelMap mmap)
  108 + {
  109 + BsthTLine bsthTLine = bsthTLineService.selectBsthTLineExamineById(id);
  110 + mmap.put("bsthTLine", bsthTLine);
  111 + return prefix + "/edit";
  112 + }
  113 +
  114 +
  115 +
  116 + /**
  117 + * 线路修改
  118 + */
  119 + @RequiresPermissions("system:line:edit")
  120 + @Log(title = "线路修改", businessType = BusinessType.UPDATE)
  121 + @PostMapping("/edit")
  122 + @ResponseBody
  123 + public AjaxResult editSave(BsthTLine bsthTLine)
  124 + {
  125 +
  126 + User loginUser = ShiroUtils.getSysUser();
  127 +
  128 + bsthTLine.setUpdateBy(loginUser.getUserName());
  129 +
  130 + return toAjax(bsthTLineService.updateBsthTLineExamine(bsthTLine));
  131 + }
  132 +
  133 +
  134 +
  135 +
  136 +
  137 +
  138 +
  139 +}
bsthLineProfiles/src/main/java/com/ruoyi/project/system/line/controller/BsthTLineExamineController.java 0 → 100644
  1 +package com.ruoyi.project.system.line.controller;
  2 +
  3 +import com.ruoyi.common.utils.poi.ExcelUtil;
  4 +import com.ruoyi.common.utils.security.ShiroUtils;
  5 +import com.ruoyi.framework.aspectj.lang.annotation.Log;
  6 +import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  7 +import com.ruoyi.framework.web.controller.BaseController;
  8 +import com.ruoyi.framework.web.domain.AjaxResult;
  9 +import com.ruoyi.framework.web.page.TableDataInfo;
  10 +import com.ruoyi.project.system.dict.domain.DictData;
  11 +import com.ruoyi.project.system.dict.service.IDictDataService;
  12 +import com.ruoyi.project.system.line.domain.BsthTLine;
  13 +import com.ruoyi.project.system.line.service.IBsthTLineService;
  14 +import com.ruoyi.project.system.user.domain.User;
  15 +import com.ruoyi.project.system.user.service.IUserService;
  16 +import org.apache.shiro.authz.annotation.RequiresPermissions;
  17 +import org.springframework.beans.factory.annotation.Autowired;
  18 +import org.springframework.stereotype.Controller;
  19 +import org.springframework.ui.ModelMap;
  20 +import org.springframework.web.bind.annotation.*;
  21 +
  22 +import java.io.File;
  23 +import java.lang.reflect.Field;
  24 +import java.lang.reflect.Method;
  25 +import java.util.ArrayList;
  26 +import java.util.HashMap;
  27 +import java.util.List;
  28 +import java.util.Map;
  29 +
  30 +/**
  31 + * 【请填写功能名称】Controller
  32 + *
  33 + * @author ruoyi
  34 + * @date 2021-08-17
  35 + */
  36 +@Controller
  37 +@RequestMapping("/system/lineExamine")
  38 +public class BsthTLineExamineController extends BaseController
  39 +{
  40 +
  41 + private String prefix = "system/lineExamine";
  42 +
  43 + @Autowired
  44 + private IBsthTLineService bsthTLineService;
  45 +
  46 + @Autowired
  47 + IDictDataService dictDataService;
  48 +
  49 +
  50 + @Autowired
  51 + private IUserService userService;
  52 +
  53 + @RequiresPermissions("system:line:view")
  54 + @GetMapping()
  55 + public String line()
  56 + {
  57 + return prefix + "/line";
  58 + }
  59 +
  60 +
  61 + @GetMapping("/map")
  62 + public String map()
  63 + {
  64 + return prefix + "/map";
  65 + }
  66 +
  67 + /**
  68 + * 审核分页
  69 + */
  70 + @RequiresPermissions("system:line:list")
  71 + @PostMapping("/list")
  72 + @ResponseBody
  73 + public TableDataInfo list(BsthTLine bsthTLine)
  74 + {
  75 + startPage();
  76 + List<BsthTLine> list = bsthTLineService.selectBsthTLineExamineList(bsthTLine);
  77 + return getDataTable(list);
  78 + }
  79 +
  80 + /**
  81 + * 审核详情
  82 + */
  83 + @GetMapping("/detail/{id}")
  84 + public String detail(@PathVariable("id") Long id, ModelMap mmap)
  85 + {
  86 + BsthTLine bsthTLine = bsthTLineService.selectBsthTLineExamineById(id);
  87 + mmap.put("bsthTLine", bsthTLine);
  88 + return prefix + "/detail";
  89 + }
  90 +
  91 +
  92 + /**
  93 + * 审核
  94 + */
  95 + @PostMapping("/examine")
  96 + @ResponseBody
  97 + public AjaxResult examine(BsthTLine bsthTLine) {
  98 + return toAjax(bsthTLineService.examine(bsthTLine));
  99 + }
  100 +
  101 +
  102 + /* @GetMapping("/getListForMap")
  103 + @ResponseBody
  104 + public List<BsthTLine> getListForMap() {
  105 + return bsthTLineService.selectBsthTLineList(null);
  106 + }
  107 +
  108 + *//**
  109 + * 导出【请填写功能名称】列表
  110 + *//*
  111 + @RequiresPermissions("system:line:export")
  112 + @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
  113 + @PostMapping("/export")
  114 + @ResponseBody
  115 + public AjaxResult export(BsthTLine bsthTLine) throws NoSuchFieldException {
  116 +
  117 + List<BsthTLine> list = bsthTLineService.selectBsthTLineList(bsthTLine);
  118 +
  119 + List<DictData> dicts = dictDataService.selectDictDataList(null);
  120 +
  121 + Map<String,List<DictData>> dictMap = new HashMap();
  122 +
  123 + List<String> titles=new ArrayList<>();
  124 +
  125 + for(DictData d : dicts) {
  126 +
  127 + if(dictMap.get(d.getDictType()) == null) {
  128 + dictMap.put(d.getDictType(), new ArrayList<DictData>());
  129 + }
  130 +
  131 + dictMap.get(d.getDictType()).add(d);
  132 + }
  133 +
  134 + for(BsthTLine line:list) {
  135 +
  136 + Field[] field = line.getClass().getDeclaredFields();
  137 +
  138 + String isWarrant=bsthTLine.getIsWarrant();
  139 + if("0".equals(isWarrant)){//现实
  140 + for (Field f : field) {
  141 + String fName=f.getName();
  142 + if(!"isWarrantStartTime".equals(fName) && !"isWarrantEndTime".equals(fName) && !"warrantVehiclesLarge".equals(fName) && !"warrantVehiclesMiddle".equals(fName) && !"number_of_manage".equals(fName)){
  143 + titles.add(fName);
  144 + }
  145 + }
  146 + }else if("1".equals(isWarrant)){//权证
  147 + for (Field f : field) {
  148 + String fName=f.getName();
  149 + if(!"vehiclesNumber".equals(fName) && !"numberVehiclesLarge".equals(fName) && !"numberVehiclesMiddle".equals(fName) ){
  150 + titles.add(fName);
  151 + }
  152 + }
  153 + }
  154 +
  155 +
  156 + for(int j=0 ; j<field.length ; j++){ //遍历所有属性
  157 + String name = field[j].getName(); //获取属性的名字
  158 +
  159 + String type = name;
  160 +
  161 + if(name.equals( "isLogicDelete") || name.equals( "inoutDistrict")|| name.equals( "isMetro") || name.equals( "hasTimelists")|| name.equals( "isWarrant")) {
  162 + type = "trueFalse";
  163 + }
  164 +
  165 +
  166 +
  167 +
  168 +
  169 + if(dictMap.get(type) != null) {
  170 + name = name.substring(0,1).toUpperCase() + name.substring(1);
  171 +
  172 +
  173 + try {
  174 + Method param = line.getClass().getMethod("get"+name);
  175 +
  176 + String value = (String) param.invoke(line);
  177 +
  178 + if(value != null && value.split(",").length > 0) {
  179 + String result = "";
  180 + for(String str:value.split(",")) {
  181 + for(DictData d:dictMap.get(type)) {
  182 + if(d.getDictValue().equals(str)) {
  183 + result += d.getDictLabel() + ",";
  184 + }
  185 + }
  186 + }
  187 +
  188 + Method m = line.getClass().getMethod("set"+name, new Class[] {String.class});
  189 +
  190 + if(!result.isEmpty()) {
  191 + m.invoke(line,new Object[] {new String(result.substring(0,result.length()-1))});
  192 + }else {
  193 + m.invoke(line,new Object[] {new String(value)});
  194 + }
  195 + }
  196 +
  197 + } catch (Exception e) {
  198 + // TODO Auto-generated catch block
  199 + e.printStackTrace();
  200 + }
  201 +
  202 + }
  203 +
  204 +
  205 +
  206 + }
  207 +
  208 +
  209 + }
  210 +
  211 +
  212 + ExcelUtil<BsthTLine> util = new ExcelUtil<BsthTLine>(BsthTLine.class);
  213 + util.setTitles(titles);
  214 + return util.exportExcel(list, "line");
  215 + }
  216 +
  217 +
  218 +
  219 +
  220 +
  221 + @GetMapping("/getUserLineInfo")
  222 + @ResponseBody
  223 + public AjaxResult getUserLineInfo()
  224 + {
  225 + User loginUser = ShiroUtils.getSysUser();
  226 +
  227 + loginUser = userService.selectUserById(loginUser.getUserId());
  228 +
  229 + return success(loginUser.getLineinfoData());
  230 + }
  231 +
  232 +
  233 +
  234 + @PostMapping("/findByName")
  235 + @ResponseBody
  236 + public BsthTLine findByName(String name)
  237 + {
  238 + BsthTLine bsthTLine = new BsthTLine();
  239 +
  240 + bsthTLine.setLineName(name);
  241 +
  242 + return bsthTLineService.selectBsthTLineList(bsthTLine).get(0);
  243 + }
  244 +
  245 + @PostMapping("/updateUserLineInfo")
  246 + @ResponseBody
  247 + public AjaxResult updateUserLineInfo(String lineInfo)
  248 + {
  249 + User loginUser = ShiroUtils.getSysUser();
  250 +
  251 + loginUser.setLineinfoData(lineInfo);
  252 +
  253 + return toAjax(userService.updateUser(loginUser));
  254 + }*/
  255 +
  256 +}
bsthLineProfiles/src/main/resources/templates/system/line/detail.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<head>
  4 +<th:block th:include="include :: header('修改【请填写功能名称】')" />
  5 +<th:block th:include="include :: datetimepicker-css" />
  6 +<th:block th:include="include :: bootstrap-fileinput-css" />
  7 +</head>
  8 +<body class="white-bg">
  9 + <div class="wrapper wrapper-content animated fadeInRight ibox-content">
  10 + <form class="form-horizontal m" id="form-line-edit"
  11 + th:object="${bsthTLine}">
  12 + <input name="id" th:field="*{id}" type="hidden">
  13 + <div class="form-group">
  14 + <label class="col-sm-3 control-label">线路名称:</label>
  15 + <div class="col-sm-8">
  16 + <input name="lineName" th:field="*{lineName}" class="form-control" disabled
  17 + type="text">
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <label class="col-sm-3 control-label">公司:</label>
  22 + <div class="col-sm-8">
  23 + <input name="company" th:field="*{company}" class="form-control" disabled
  24 + type="text">
  25 + </div>
  26 + </div>
  27 + <div class="form-group">
  28 + <label class="col-sm-3 control-label">分公司:</label>
  29 + <div class="col-sm-8">
  30 + <input name="fCompany" th:field="*{fCompany}" class="form-control" disabled
  31 + type="text">
  32 + </div>
  33 + </div>
  34 + <div class="form-group">
  35 + <label class="col-sm-3 control-label">主线路id:</label>
  36 + <div class="col-sm-8">
  37 + <input name="pLineId" th:field="*{pLineId}" class="form-control" disabled
  38 + type="text">
  39 + </div>
  40 + </div>
  41 + <div class="form-group">
  42 + <label class="col-sm-3 control-label">营运方式:</label>
  43 + <div class="col-sm-8">
  44 + <select name="serviceType" disabled
  45 + th:with="type=${@dict.getType('serviceType')}"
  46 + class="form-control m-b">
  47 + <option value=""></option>
  48 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  49 + th:value="${dict.dictValue}"
  50 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceType== null ? '' : bsthTLine.serviceType),#strings.toString(dict.dictValue))}"></option>
  51 + </select>
  52 + </div>
  53 + </div>
  54 + <div class="form-group">
  55 + <label class="col-sm-3 control-label">线路属性:</label>
  56 + <div class="col-sm-8">
  57 + <select name="lineLevel" disabled
  58 + th:with="type=${@dict.getType('lineLevel')}"
  59 + class="form-control m-b">
  60 + <option value=""></option>
  61 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  62 + th:value="${dict.dictValue}"
  63 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.lineLevel== null ? '' : bsthTLine.lineLevel),#strings.toString(dict.dictValue))}"></option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + <div class="form-group">
  68 + <label class="col-sm-3 control-label">线路类型:</label>
  69 + <div class="col-sm-8">
  70 + <select name="lineType" disabled th:with="type=${@dict.getType('lineType')}"
  71 + class="form-control m-b">
  72 + <option value=""></option>
  73 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  74 + th:value="${dict.dictValue}"
  75 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.lineType== null ? '' : bsthTLine.lineType),#strings.toString(dict.dictValue))}"></option>
  76 + </select>
  77 + </div>
  78 + </div>
  79 + <div class="form-group">
  80 + <label class="col-sm-3 control-label">区属:</label>
  81 + <div class="col-sm-8">
  82 +
  83 + <select name="district" th:with="type=${@dict.getType('district')}" disabled
  84 + class="form-control m-b">
  85 + <option value=""></option>
  86 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  87 + th:value="${dict.dictValue}"
  88 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.district== null ? '' : bsthTLine.district),#strings.toString(dict.dictValue))}"></option>
  89 + </select>
  90 + </div>
  91 + </div>
  92 + <div class="form-group">
  93 + <label class="col-sm-3 control-label">是否区内:</label>
  94 + <div class="col-sm-8">
  95 + <select name="inoutDistrict" disabled
  96 + th:with="type=${@dict.getType('trueFalse')}"
  97 + class="form-control m-b">
  98 + <option value=""></option>
  99 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  100 + th:value="${dict.dictValue}"
  101 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.inoutDistrict== null ? '' : bsthTLine.inoutDistrict),#strings.toString(dict.dictValue))}"></option>
  102 + </select>
  103 + </div>
  104 + </div>
  105 + <div class="form-group">
  106 + <label class="col-sm-3 control-label">营运状态:</label>
  107 + <div class="col-sm-8">
  108 +
  109 + <select name="serviceState" disabled
  110 + th:with="type=${@dict.getType('serviceState')}"
  111 + class="form-control m-b">
  112 + <option value=""></option>
  113 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  114 + th:value="${dict.dictValue}"
  115 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceState== null ? '' : bsthTLine.serviceState),#strings.toString(dict.dictValue))}"></option>
  116 + </select>
  117 + </div>
  118 + </div>
  119 + <div class="form-group">
  120 + <label class="col-sm-3 control-label">车辆类型:</label>
  121 + <div class="col-sm-8" th:with="type=${@dict.getType('busType')}">
  122 + <label class="checkbox-inline" th:each="dict : ${type}"
  123 + style="display: block"> <input type="checkbox" disabled
  124 + name="busType"
  125 + th:checked="${#arrays.contains(#strings.arraySplit(bsthTLine.busType == null ? '' : bsthTLine.busType ,','),#strings.toString(dict.dictValue))}"
  126 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" /></label>
  127 + </div>
  128 + </div>
  129 + <div class="form-group">
  130 + <label class="col-sm-3 control-label">是否空调:</label>
  131 + <div class="col-sm-8">
  132 +
  133 + <select name="airConditionerType" disabled
  134 + th:with="type=${@dict.getType('airConditionerType')}"
  135 + class="form-control m-b">
  136 + <option value=""></option>
  137 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  138 + th:value="${dict.dictValue}"
  139 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.airConditionerType == null ? '' : bsthTLine.airConditionerType ),#strings.toString(dict.dictValue))}"></option>
  140 + </select>
  141 + </div>
  142 + </div>
  143 + <div class="form-group">
  144 + <label class="col-sm-3 control-label">售票类型:</label>
  145 + <div class="col-sm-8">
  146 + <select name="sellTicketType" disabled
  147 + th:with="type=${@dict.getType('sellTicketType')}"
  148 + class="form-control m-b">
  149 + <option value=""></option>
  150 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  151 + th:value="${dict.dictValue}"
  152 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.sellTicketType == null ? '' : bsthTLine.sellTicketType),#strings.toString(dict.dictValue))}"></option>
  153 + </select>
  154 + </div>
  155 + </div>
  156 + <div class="form-group">
  157 + <label class="col-sm-3 control-label">运营时间:</label>
  158 + <div class="col-sm-8">
  159 + <select name="serviceTime" disabled
  160 + th:with="type=${@dict.getType('serviceTime')}"
  161 + class="form-control m-b">
  162 + <option value=""></option>
  163 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  164 + th:value="${dict.dictValue}"
  165 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceTime== null ? '' : bsthTLine.serviceTime),#strings.toString(dict.dictValue))}"></option>
  166 + </select>
  167 + </div>
  168 + </div>
  169 + <div class="form-group">
  170 + <label class="col-sm-3 control-label">线路长度:</label>
  171 + <div class="col-sm-8">
  172 + <input name="lineDistance" th:field="*{lineDistance}" disabled
  173 + class="form-control" type="text">
  174 + </div>
  175 + </div>
  176 + <div class="form-group">
  177 + <label class="col-sm-3 control-label">线路编码:</label>
  178 + <div class="col-sm-8">
  179 + <input name="lineCode" th:field="*{lineCode}" class="form-control" disabled
  180 + type="text">
  181 + </div>
  182 + </div>
  183 + <div class="form-group">
  184 + <label class="col-sm-3 control-label">授权年限:</label>
  185 + <div class="col-sm-8">
  186 + <input name="warrantYear" th:field="*{warrantYear}" disabled
  187 + class="form-control" type="text">
  188 + </div>
  189 + </div>
  190 + <div class="form-group">
  191 + <label class="col-sm-3 control-label">授权起始日期:</label>
  192 + <div class="col-sm-8">
  193 + <div class="input-group date">
  194 + <input name="warrantStartTime"
  195 + th:value="${#dates.format(bsthTLine.warrantStartTime, 'yyyy-MM-dd')}" disabled
  196 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  197 + autocomplete="off"> <span class="input-group-addon"><i
  198 + class="fa fa-calendar"></i></span>
  199 + </div>
  200 + </div>
  201 + </div>
  202 + <div class="form-group">
  203 + <label class="col-sm-3 control-label">授权结束日期:</label>
  204 + <div class="col-sm-8">
  205 + <div class="input-group date">
  206 + <input name="warrantEndTime"
  207 + th:value="${#dates.format(bsthTLine.warrantEndTime, 'yyyy-MM-dd')}" disabled
  208 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  209 + autocomplete="off"> <span class="input-group-addon"><i
  210 + class="fa fa-calendar"></i></span>
  211 + </div>
  212 + </div>
  213 + </div>
  214 + <div class="form-group">
  215 + <label class="col-sm-3 control-label">撤销日期:</label>
  216 + <div class="col-sm-8">
  217 + <div class="input-group date">
  218 + <input name="planCancelTime"
  219 + th:value="${#dates.format(bsthTLine.planCancelTime, 'yyyy-MM-dd')}" disabled
  220 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  221 + autocomplete="off"> <span class="input-group-addon"><i
  222 + class="fa fa-calendar"></i></span>
  223 + </div>
  224 + </div>
  225 + </div>
  226 + <div class="form-group">
  227 + <label class="col-sm-3 control-label">实际撤销日期:</label>
  228 + <div class="col-sm-8">
  229 + <div class="input-group date">
  230 + <input name="cancelTime"
  231 + th:value="${#dates.format(bsthTLine.cancelTime, 'yyyy-MM-dd')}" disabled
  232 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  233 + autocomplete="off"> <span class="input-group-addon"><i
  234 + class="fa fa-calendar"></i></span>
  235 + </div>
  236 + </div>
  237 + </div>
  238 + <div class="form-group">
  239 + <label class="col-sm-3 control-label">撤销原因:</label>
  240 + <div class="col-sm-8">
  241 + <textarea name="cancelReason" class="form-control" disabled>[[*{cancelReason}]]</textarea>
  242 + </div>
  243 + </div>
  244 + <div class="form-group">
  245 + <label class="col-sm-3 control-label">备注:</label>
  246 + <div class="col-sm-8">
  247 + <textarea name="remark" class="form-control" disabled>[[*{remark}]]</textarea>
  248 + </div>
  249 + </div>
  250 + <div class="form-group">
  251 + <label class="col-sm-3 control-label">是否逻辑删除:</label>
  252 + <div class="col-sm-8">
  253 +
  254 + <select name="isLogicDelete" disabled
  255 + th:with="type=${@dict.getType('trueFalse')}"
  256 + class="form-control m-b">
  257 + <option value=""></option>
  258 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  259 + th:value="${dict.dictValue}"
  260 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isLogicDelete== null ? '' : bsthTLine.isLogicDelete),#strings.toString(dict.dictValue))}"></option>
  261 + </select>
  262 + </div>
  263 + </div>
  264 + <div class="form-group">
  265 + <label class="col-sm-3 control-label">行车作业计划表报备时间:</label>
  266 + <div class="col-sm-8">
  267 + <div class="input-group date">
  268 + <input name="timeSchedule" disabled
  269 + th:value="${#dates.format(bsthTLine.timeSchedule, 'yyyy-MM-dd')}"
  270 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  271 + autocomplete="off"> <span class="input-group-addon"><i
  272 + class="fa fa-calendar"></i></span>
  273 + </div>
  274 + </div>
  275 + </div>
  276 + <div class="form-group">
  277 + <label class="col-sm-3 control-label">停车场:</label>
  278 + <div class="col-sm-8">
  279 + <input name="park" th:field="*{park}" class="form-control" disabled
  280 + type="text">
  281 + </div>
  282 + </div>
  283 + <div class="form-group">
  284 + <label class="col-sm-3 control-label">是否权证:</label>
  285 + <div class="col-sm-8">
  286 + <select name="isWarrant" id="isWarrant" disabled
  287 + th:with="type=${@dict.getType('trueFalse')}"
  288 + class="form-control m-b">
  289 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  290 + th:value="${dict.dictValue}"
  291 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isWarrant== null ? '' : bsthTLine.isWarrant),#strings.toString(dict.dictValue))}"></option>
  292 + </select>
  293 + </div>
  294 + </div>
  295 + <div class="form-group">
  296 + <label class="col-sm-3 control-label">权证开通日期:</label>
  297 + <div class="col-sm-8">
  298 + <div class="input-group date">
  299 + <input name="isWarrantStartTime" id="isWarrantStartTime" disabled
  300 + th:value="${#dates.format(bsthTLine.isWarrantStartTime, 'yyyy-MM-dd')}"
  301 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  302 + autocomplete="off"> <span class="input-group-addon"><i
  303 + class="fa fa-calendar"></i></span>
  304 + </div>
  305 +
  306 + </div>
  307 + </div>
  308 + <div class="form-group">
  309 + <label class="col-sm-3 control-label">权证到期日期:</label>
  310 + <div class="col-sm-8">
  311 + <div class="input-group date">
  312 + <input name="isWarrantEndTime" id="isWarrantEndTime" disabled
  313 + th:value="${#dates.format(bsthTLine.isWarrantEndTime, 'yyyy-MM-dd')}"
  314 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  315 + autocomplete="off"> <span class="input-group-addon"><i
  316 + class="fa fa-calendar"></i></span>
  317 + </div>
  318 +
  319 + </div>
  320 + </div>
  321 + <div class="form-group">
  322 + <label class="col-sm-3 control-label">道路类型:</label>
  323 + <div class="col-sm-8">
  324 + <div class="col-sm-8" th:with="type=${@dict.getType('roadType')}">
  325 + <label class="checkbox-inline" th:each="dict : ${type}"
  326 + style="display: block"> <input type="checkbox"
  327 + name="roadType" disabled
  328 + th:checked="${#arrays.contains(#strings.arraySplit(bsthTLine.roadType == null ? '' : bsthTLine.roadType ,','),#strings.toString(dict.dictValue))}"
  329 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" /></label>
  330 + </div>
  331 + </div>
  332 + </div>
  333 + <div class="form-group">
  334 + <label class="col-sm-3 control-label">票价(多级票价用 - 隔开):</label>
  335 + <div class="col-sm-8">
  336 + <input name="ticketPrice" th:field="*{ticketPrice}" disabled
  337 + class="form-control" type="text">
  338 + </div>
  339 + </div>
  340 + <div class="form-group">
  341 + <label class="col-sm-3 control-label">首站:</label>
  342 + <div class="col-sm-8">
  343 + <input name="firstStation" th:field="*{firstStation}" disabled
  344 + class="form-control" type="text">
  345 + </div>
  346 + </div>
  347 + <div class="form-group">
  348 + <label class="col-sm-3 control-label">起讫站:</label>
  349 + <div class="col-sm-8">
  350 + <input name="startEnd" th:field="*{startEnd}" class="form-control" disabled
  351 + type="text">
  352 + </div>
  353 + </div>
  354 + <div class="form-group">
  355 + <label class="col-sm-3 control-label">首战时间:</label>
  356 + <div class="col-sm-8">
  357 + <input name="firstTime" th:field="*{firstTime}" disabled
  358 + class="form-control" type="text">
  359 + </div>
  360 + </div>
  361 + <div class="form-group">
  362 + <label class="col-sm-3 control-label">末站:</label>
  363 + <div class="col-sm-8">
  364 + <input name="lastStation" th:field="*{lastStation}" disabled
  365 + class="form-control" type="text">
  366 + </div>
  367 + </div>
  368 + <div class="form-group">
  369 + <label class="col-sm-3 control-label">末站首战时间:</label>
  370 + <div class="col-sm-8">
  371 + <input name="lastTime" th:field="*{lastTime}" class="form-control" disabled
  372 + type="text">
  373 + </div>
  374 + </div>
  375 + <div class="form-group">
  376 + <label class="col-sm-3 control-label">上行里程数:</label>
  377 + <div class="col-sm-8">
  378 + <input name="mileageUp" th:field="*{mileageUp}" disabled
  379 + class="form-control" type="text">
  380 + </div>
  381 + </div>
  382 + <div class="form-group">
  383 + <label class="col-sm-3 control-label">下行里程数:</label>
  384 + <div class="col-sm-8">
  385 + <input name="mileageDown" th:field="*{mileageDown}" disabled
  386 + class="form-control" type="text">
  387 + </div>
  388 + </div>
  389 + <div class="form-group">
  390 + <label class="col-sm-3 control-label">平均里程数:</label>
  391 + <div class="col-sm-8">
  392 + <input name="averageMileage" th:field="*{averageMileage}" disabled
  393 + class="form-control" type="text">
  394 + </div>
  395 + </div>
  396 + <div class="form-group">
  397 + <label class="col-sm-3 control-label">站级数(上行):</label>
  398 + <div class="col-sm-8">
  399 + <input name="stationUp" th:field="*{stationUp}" disabled
  400 + class="form-control" type="text">
  401 + </div>
  402 + </div>
  403 + <div class="form-group">
  404 + <label class="col-sm-3 control-label">站级数(下行):</label>
  405 + <div class="col-sm-8">
  406 + <input name="stationDown" th:field="*{stationDown}" disabled
  407 + class="form-control" type="text">
  408 + </div>
  409 + </div>
  410 + <div class="form-group">
  411 + <label class="col-sm-3 control-label">行驶时间(上行):</label>
  412 + <div class="col-sm-8">
  413 + <input name="travelTimeUp" th:field="*{travelTimeUp}" disabled
  414 + class="form-control" type="text">
  415 + </div>
  416 + </div>
  417 + <div class="form-group">
  418 + <label class="col-sm-3 control-label">行驶时间(下行):</label>
  419 + <div class="col-sm-8">
  420 + <input name="travelTimeDown" th:field="*{travelTimeDown}" disabled
  421 + class="form-control" type="text">
  422 + </div>
  423 + </div>
  424 + <div class="form-group">
  425 + <label class="col-sm-3 control-label">行驶间隔(高峰):</label>
  426 + <div class="col-sm-8">
  427 + <input name="travelIntervalUp" th:field="*{travelIntervalUp}" disabled
  428 + class="form-control" type="text">
  429 + </div>
  430 + </div>
  431 + <div class="form-group">
  432 + <label class="col-sm-3 control-label">行驶间隔(低谷):</label>
  433 + <div class="col-sm-8">
  434 + <input name="travelIntervalDown" th:field="*{travelIntervalDown}" disabled
  435 + class="form-control" type="text">
  436 + </div>
  437 + </div>
  438 + <div class="form-group">
  439 + <label class="col-sm-3 control-label">经营权证(大巴):</label>
  440 + <div class="col-sm-8">
  441 + <input name="warrantVehiclesLarge"
  442 + th:field="*{warrantVehiclesLarge}" class="form-control" disabled
  443 + type="text">
  444 + </div>
  445 + </div>
  446 + <div class="form-group">
  447 + <label class="col-sm-3 control-label">经营权证(中巴):</label>
  448 + <div class="col-sm-8">
  449 + <input name="warrantVehiclesMiddle"
  450 + th:field="*{warrantVehiclesMiddle}" class="form-control" disabled
  451 + type="text">
  452 + </div>
  453 + </div>
  454 + <div class="form-group">
  455 + <label class="col-sm-3 control-label">实际配车数:</label>
  456 + <div class="col-sm-8">
  457 + <input name="vehiclesNumber" th:field="*{vehiclesNumber}" disabled
  458 + class="form-control" type="text">
  459 + </div>
  460 + </div>
  461 + <div class="form-group">
  462 + <label class="col-sm-3 control-label">实际车辆数(大巴):</label>
  463 + <div class="col-sm-8">
  464 + <input name="numberVehiclesLarge" th:field="*{numberVehiclesLarge}" disabled
  465 + class="form-control" type="text">
  466 + </div>
  467 + </div>
  468 + <div class="form-group">
  469 + <label class="col-sm-3 control-label">实际车辆数(中巴):</label>
  470 + <div class="col-sm-8">
  471 + <input name="numberVehiclesMiddle"
  472 + th:field="*{numberVehiclesMiddle}" class="form-control" disabled
  473 + type="text">
  474 + </div>
  475 + </div>
  476 + <div class="form-group">
  477 + <label class="col-sm-3 control-label">车辆自编号:</label>
  478 + <div class="col-sm-8">
  479 + <input name="carPlate" th:field="*{carPlate}" class="form-control" disabled
  480 + type="text">
  481 + </div>
  482 + </div>
  483 + <div class="form-group">
  484 + <label class="col-sm-3 control-label">线路总配人数:</label>
  485 + <div class="col-sm-8">
  486 + <input name="numberPerson" th:field="*{numberPerson}" disabled
  487 + class="form-control" type="text">
  488 + </div>
  489 + </div>
  490 + <div class="form-group">
  491 + <label class="col-sm-3 control-label">人数司机:</label>
  492 + <div class="col-sm-8">
  493 + <input name="numberPersonDriver" th:field="*{numberPersonDriver}" disabled
  494 + class="form-control" type="text">
  495 + </div>
  496 + </div>
  497 + <div class="form-group">
  498 + <label class="col-sm-3 control-label">售票员数:</label>
  499 + <div class="col-sm-8">
  500 + <input name="numberPersonSales" th:field="*{numberPersonSales}" disabled
  501 + class="form-control" type="text">
  502 + </div>
  503 + </div>
  504 + <div class="form-group">
  505 + <label class="col-sm-3 control-label">新能源车数:</label>
  506 + <div class="col-sm-8">
  507 + <input name="busEvNumber" th:field="*{busEvNumber}" disabled
  508 + class="form-control" type="text">
  509 + </div>
  510 + </div>
  511 + <div class="form-group">
  512 + <label class="col-sm-3 control-label">线路走向:</label>
  513 + <div class="col-sm-8">
  514 + <textarea name="directions" class="form-control" disabled>[[*{directions}]]</textarea>
  515 + </div>
  516 + </div>
  517 + <div class="form-group">
  518 + <label class="col-sm-3 control-label">经营权证数:</label>
  519 + <div class="col-sm-8">
  520 + <input name="numberOfManage" th:field="*{numberOfManage}" disabled
  521 + class="form-control" type="text">
  522 + </div>
  523 + </div>
  524 + <div class="form-group">
  525 + <label class="col-sm-3 control-label">站点名称:</label>
  526 + <div class="col-sm-8">
  527 + <textarea name="halfwayStation" class="form-control" disabled>[[*{halfwayStation}]]</textarea>
  528 + </div>
  529 + </div>
  530 + <div class="form-group">
  531 + <label class="col-sm-3 control-label">高峰系数:</label>
  532 + <div class="col-sm-8">
  533 + <input name="fullCustomerPercent" th:field="*{fullCustomerPercent}" disabled
  534 + class="form-control" type="text">
  535 + </div>
  536 + </div>
  537 + <div class="form-group">
  538 + <label class="col-sm-3 control-label">低谷系数:</label>
  539 + <div class="col-sm-8">
  540 + <input name="lowCustomerPercent" th:field="*{lowCustomerPercent}" disabled
  541 + class="form-control" type="text">
  542 + </div>
  543 + </div>
  544 + <div class="form-group">
  545 + <label class="col-sm-3 control-label">间隔等级:</label>
  546 + <div class="col-sm-8">
  547 + <input name="divideLevel" th:field="*{divideLevel}" disabled
  548 + class="form-control" type="text">
  549 + </div>
  550 + </div>
  551 + <div class="form-group">
  552 + <label class="col-sm-3 control-label">是否挂牌:</label>
  553 + <div class="col-sm-8">
  554 + <select name="hasTimelists"
  555 + th:with="type=${@dict.getType('trueFalse')}" disabled
  556 + class="form-control m-b">
  557 + <option value=""></option>
  558 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  559 + th:value="${dict.dictValue}"
  560 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.hasTimelists== null ? '' : bsthTLine.hasTimelists),#strings.toString(dict.dictValue))}"></option>
  561 + </select>
  562 + </div>
  563 + </div>
  564 + <div class="form-group">
  565 + <label class="col-sm-3 control-label">是否轨交末班车衔接:</label>
  566 + <div class="col-sm-8">
  567 + <select name="isMetro" th:with="type=${@dict.getType('trueFalse')}" disabled
  568 + class="form-control m-b">
  569 + <option value=""></option>
  570 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  571 + th:value="${dict.dictValue}"
  572 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isMetro== null ? '' : bsthTLine.isMetro),#strings.toString(dict.dictValue))}"></option>
  573 + </select>
  574 + </div>
  575 + </div>
  576 + <div class="form-group">
  577 + <label class="col-sm-3 control-label">轨交时间:</label>
  578 + <div class="col-sm-8">
  579 + <div class="input-group date">
  580 + <input name="metroTime" class="form-control" disabled
  581 + placeholder="HH:mm:ss" th:value="*{metroTime}"> <span
  582 + class="input-group-addon"><i class="fa fa-calendar"></i></span>
  583 + </div>
  584 + </div>
  585 + </div>
  586 + <div class="form-group">
  587 + <label class="col-sm-3 control-label">冷僻线路补贴类型:</label>
  588 + <div class="col-sm-8">
  589 + <input name="coldBonusType" th:field="*{coldBonusType}" disabled
  590 + class="form-control" type="text">
  591 + </div>
  592 + </div>
  593 +
  594 + <div class="form-group">
  595 + <label class="col-sm-3 control-label">启用时间:</label>
  596 + <div class="col-sm-8">
  597 + <div class="input-group date">
  598 + <input name="startDate"
  599 + th:value="${#dates.format(bsthTLine.startDate, 'yyyy-MM-dd')}" disabled
  600 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  601 + autocomplete="off"> <span class="input-group-addon"><i
  602 + class="fa fa-calendar"></i></span>
  603 + </div>
  604 +
  605 + </div>
  606 + </div>
  607 + <div class="form-group">
  608 + <label class="col-sm-3 control-label">性质:</label>
  609 + <div class="col-sm-8">
  610 + <select name="lineUpdateType"
  611 + th:with="type=${@dict.getType('lineUpdateType')}" disabled
  612 + class="form-control m-b">
  613 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  614 + th:value="${dict.dictValue}"></option>
  615 + </select>
  616 + </div>
  617 + </div>
  618 + <div class="form-group">
  619 + <label class="col-sm-3 control-label">启用原因:</label>
  620 + <div class="col-sm-8">
  621 + <textarea name="startReason" class="form-control" disabled></textarea>
  622 + </div>
  623 + </div>
  624 + <div class="form-group">
  625 + <label class="col-sm-3 control-label">附件:</label>
  626 + <div class="col-sm-8">
  627 + <div th:each="path: ${#strings.arraySplit(bsthTLine.files,',')}" disabled>
  628 + <input name="files" type="hidden" th:value="${path}" >
  629 + <a th:href="${#strings.replace(path,#strings.arraySplit(path,':')[0]+':','')}" th:text="${#strings.arraySplit(path,':')[0]}">
  630 + </a>
  631 + <button onclick="deleteFile(this);">删除</button>
  632 + </div>
  633 + <div class="file-loading" id="uploadDiv">
  634 + <input id="fileinput" type="file" multiple>
  635 + </div>
  636 + </div>
  637 + </div>
  638 + </form>
  639 + </div>
  640 + <th:block th:include="include :: footer" />
  641 + <th:block th:include="include :: datetimepicker-js" />
  642 + <th:block th:include="include :: bootstrap-fileinput-js" />
  643 + <script th:inline="javascript">
  644 + var prefix = ctx + "system/line";
  645 + function deleteFile(obj){
  646 + $(obj).parent().remove();
  647 + }
  648 +
  649 + $(function() {
  650 +
  651 + $("#fileinput").fileinput({
  652 + 'theme' : 'explorer-fas',
  653 + 'uploadUrl' : '/common/upload',
  654 + overwriteInitial : false,
  655 + initialPreviewAsData : false
  656 + });
  657 +
  658 + $("#fileinput").on("fileuploaded",
  659 + function(event, data, proviewId, index) {
  660 +
  661 +
  662 + var obj = '<div><input name="files" type="hidden" value='+data.files[index].name + ':' + data.response.url + '>'+
  663 + '<a href='+data.response.url+'>'+ data.files[index].name +
  664 + '</a><button onclick="deleteFile(this);">删除</button></div>';
  665 +
  666 +
  667 + $(".file-input").before(obj);
  668 +
  669 + });
  670 +
  671 + $.get("/system/line/getUserLineInfo",
  672 + function(data) {
  673 + if (data.msg != null) {
  674 + var objs = JSON.parse(data.msg);
  675 +
  676 + for (var i = 0; i < objs.length; i++) {
  677 +
  678 + if ($($("input[name=" + objs[i].name
  679 + + "]"))) {
  680 + if (objs[i].checked) {
  681 + getParent(
  682 + $($("input[name="
  683 + + objs[i].name
  684 + + "]")),
  685 + "form-group").show();
  686 + } else {
  687 + getParent(
  688 + $($("input[name="
  689 + + objs[i].name
  690 + + "]")),
  691 + "form-group").hide();
  692 + }
  693 + }
  694 +
  695 + if ($($("select[name=" + objs[i].name
  696 + + "]"))) {
  697 + if (objs[i].checked) {
  698 + getParent(
  699 + $($("select[name="
  700 + + objs[i].name
  701 + + "]")),
  702 + "form-group").show();
  703 + } else {
  704 + getParent(
  705 + $($("select[name="
  706 + + objs[i].name
  707 + + "]")),
  708 + "form-group").hide();
  709 + }
  710 + }
  711 +
  712 + if ($($("textarea[name=" + objs[i].name
  713 + + "]"))) {
  714 + if (objs[i].checked) {
  715 + getParent(
  716 + $($("textarea[name="
  717 + + objs[i].name
  718 + + "]")),
  719 + "form-group").show();
  720 + } else {
  721 + getParent(
  722 + $($("textarea[name="
  723 + + objs[i].name
  724 + + "]")),
  725 + "form-group").hide();
  726 + }
  727 + }
  728 +
  729 + }
  730 + }
  731 + });
  732 + })
  733 +
  734 + function getParent(obj, className) {
  735 + var parent = obj;
  736 +
  737 + while (parent[0] && parent[0].className != className) {
  738 + parent = parent.parent();
  739 + }
  740 +
  741 + return parent;
  742 + }
  743 +
  744 + $("#form-line-edit").validate({
  745 + rules:{
  746 + isWarrantStartTime:{
  747 + required:function (){
  748 + return $('#isWarrant').val()==='1';
  749 + },
  750 + },
  751 + isWarrantEndTime:{
  752 + required:function (){
  753 + return $('#isWarrant').val()==='1';
  754 + },
  755 + },
  756 + },
  757 + messages: {
  758 + isWarrantStartTime: {
  759 + required: "请选择日期",
  760 + },
  761 + isWarrantEndTime: {
  762 + required: "请选择日期",
  763 + }
  764 + },
  765 + focusCleanup : true
  766 + });
  767 +
  768 + function submitHandler() {
  769 + console.log($("input[name='startDate']").val());
  770 + console.log($("select[name='lineUpdateType']").val());
  771 +
  772 + if ($("input[name='startDate']").val()
  773 + && $("select[name='lineUpdateType']").val() == "") {
  774 + $.modal.msg("未选择线路性质");
  775 + return;
  776 + }
  777 +
  778 + if ($.validate.form()) {
  779 + $.operate.save(prefix + "/edit", $('#form-line-edit')
  780 + .serialize());
  781 + }
  782 + }
  783 +
  784 + $("input[name='warrantStartTime']").datetimepicker({
  785 + format : "yyyy-mm-dd",
  786 + minView : "month",
  787 + autoclose : true
  788 + });
  789 +
  790 + $("input[name='warrantEndTime']").datetimepicker({
  791 + format : "yyyy-mm-dd",
  792 + minView : "month",
  793 + autoclose : true
  794 + });
  795 +
  796 + $("input[name='planCancelTime']").datetimepicker({
  797 + format : "yyyy-mm-dd",
  798 + minView : "month",
  799 + autoclose : true
  800 + });
  801 +
  802 + $("input[name='cancelTime']").datetimepicker({
  803 + format : "yyyy-mm-dd",
  804 + minView : "month",
  805 + autoclose : true
  806 + });
  807 +
  808 + $("input[name='updateTime']").datetimepicker({
  809 + format : "yyyy-mm-dd",
  810 + minView : "month",
  811 + autoclose : true
  812 + });
  813 +
  814 + $("input[name='timeSchedule']").datetimepicker({
  815 + format : "yyyy-mm-dd",
  816 + minView : "month",
  817 + autoclose : true
  818 + });
  819 +
  820 + $("input[name='startDate']").datetimepicker({
  821 + format : "yyyy-mm-dd",
  822 + minView : "month",
  823 + autoclose : true
  824 + });
  825 +
  826 + $("input[name='isWarrantStartTime']").datetimepicker({
  827 + format : "yyyy-mm-dd",
  828 + minView : "month",
  829 + autoclose : true
  830 + });
  831 +
  832 + $("input[name='isWarrantEndTime']").datetimepicker({
  833 + format : "yyyy-mm-dd",
  834 + minView : "month",
  835 + autoclose : true
  836 + });
  837 +
  838 + </script>
  839 +</body>
  840 +</html>
0 \ No newline at end of file 841 \ No newline at end of file
bsthLineProfiles/src/main/resources/templates/system/line/line.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org"
  3 + xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  4 +<head>
  5 + <th:block th:include="include :: header('线路档案信息')" />
  6 +</head>
  7 +<body class="gray-bg">
  8 +<div class="container-div" id="context">
  9 + <div class="row">
  10 + <div class="col-sm-12 search-collapse">
  11 + <form id="formId">
  12 + <div class="select-list">
  13 + <ul>
  14 + <li><label>公司:</label> <input type="text" name="company" />
  15 + </li>
  16 + <li><label>分公司:</label> <input type="text" name="fCompany" />
  17 + </li>
  18 + <li><label>线路名称:</label> <input type="text" name="lineName" />
  19 + </li>
  20 + <li><label>主线路id:</label> <input type="text" name="pLineId" />
  21 + </li>
  22 + <li><label>营运方式:</label> <select name="serviceType"
  23 + th:with="type=${@dict.getType('serviceType')}">
  24 + <option value=""></option>
  25 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  26 + th:value="${dict.dictValue}"></option>
  27 + </select></li>
  28 + <li><label>线路属性:</label>
  29 + <select name="lineLevel"
  30 + th:with="type=${@dict.getType('lineLevel')}">
  31 + <option value=""></option>
  32 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  33 + th:value="${dict.dictValue}"></option>
  34 + </select>
  35 + </li>
  36 + <li><label>线路类型:</label> <select name="lineType"
  37 + th:with="type=${@dict.getType('lineType')}">
  38 + <option value=""></option>
  39 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  40 + th:value="${dict.dictValue}"></option>
  41 + </select></li>
  42 + <li><label>区属:</label> <select name="district"
  43 + th:with="type=${@dict.getType('district')}">
  44 + <option value=""></option>
  45 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  46 + th:value="${dict.dictValue}"></option>
  47 + </select></li>
  48 + <li><label>是否区内:</label> <select name="inoutDistrict"
  49 + th:with="type=${@dict.getType('trueFalse')}">
  50 + <option value=""></option>
  51 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  52 + th:value="${dict.dictValue}"></option>
  53 + </select></li>
  54 + <li><label>营运状态:</label> <select name="serviceState"
  55 + th:with="type=${@dict.getType('serviceState')}">
  56 + <option value=""></option>
  57 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  58 + th:value="${dict.dictValue}"></option>
  59 + </select></li>
  60 + <li><label>车辆类型:</label> <select name="busType"
  61 + th:with="type=${@dict.getType('busType')}">
  62 + <option value=""></option>
  63 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  64 + th:value="${dict.dictValue}"></option>
  65 + </select></li>
  66 + <li><label>是否空调:</label> <select name="airConditionerType"
  67 + th:with="type=${@dict.getType('airConditionerType')}">
  68 + <option value=""></option>
  69 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  70 + th:value="${dict.dictValue}"></option>
  71 + </select></li>
  72 + <li><label>售票类型:</label> <select name="sellTicketType"
  73 + th:with="type=${@dict.getType('sellTicketType')}">
  74 + <option value=""></option>
  75 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  76 + th:value="${dict.dictValue}"></option>
  77 + </select></li>
  78 + <li><label>运营时间:</label> <select name="serviceTime"
  79 + th:with="type=${@dict.getType('serviceTime')}">
  80 + <option value=""></option>
  81 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  82 + th:value="${dict.dictValue}"></option>
  83 + </select></li>
  84 + <li><label>线路长度:</label> <input type="text"
  85 + name="lineDistance" /></li>
  86 + <li><label>线路编码:</label> <input type="text" name="lineCode" />
  87 + </li>
  88 + <li><label>授权年限:</label> <input type="text"
  89 + name="warrantYear" /></li>
  90 + <li><label>授权起始:</label> <input type="text"
  91 + class="time-input" placeholder="请选择授权起始日期"
  92 + name="warrantStartTime" /></li>
  93 + <li><label>授权结束:</label> <input type="text"
  94 + class="time-input" placeholder="请选择授权结束日期" name="warrantEndTime" />
  95 + </li>
  96 + <li><label>撤销日期:</label> <input type="text"
  97 + class="time-input" placeholder="请选择撤销日期" name="planCancelTime" />
  98 + </li>
  99 + <li><label>实际撤销:</label> <input type="text"
  100 + class="time-input" placeholder="请选择实际撤销日期" name="cancelTime" />
  101 + </li>
  102 + <li><label>更新人:</label> <input type="text" name="updateBy" />
  103 + </li>
  104 + <li><label>更新时间:</label> <input type="text"
  105 + class="time-input" placeholder="请选择更新时间" name="updateTime" /></li>
  106 + <li><label>行车作业计划表报备时间:</label> <input type="text"
  107 + class="time-input" placeholder="请选择行车作业计划表报备时间"
  108 + name="timeSchedule" /></li>
  109 + <li><label>停车场:</label> <input type="text" name="park" /></li>
  110 + <li><label>是否权证:</label> <select name="isWarrant"
  111 + th:with="type=${@dict.getType('trueFalse')}">
  112 + <option value=""></option>
  113 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  114 + th:value="${dict.dictValue}"></option>
  115 + </select></li>
  116 + <li><label>道路类型:</label> <select name="roadType"
  117 + th:with="type=${@dict.getType('roadType')}">
  118 + <option value=""></option>
  119 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  120 + th:value="${dict.dictValue}"></option>
  121 + </select></li>
  122 + <li><label>票价:</label> <input type="text" name="ticketPrice" /></li>
  123 + <li><label>首站:</label> <input type="text"
  124 + name="firstStation" /></li>
  125 + <li><label>起讫站:</label> <input type="text" name="startEnd" />
  126 + </li>
  127 + <li><label>首战时间:</label> <input type="text" name="firstTime" />
  128 + </li>
  129 + <li><label>末站:</label> <input type="text" name="lastStation" />
  130 + </li>
  131 + <li><label>末站首战:</label> <input type="text"
  132 + name="lastTime" /></li>
  133 + <li><label>上行里程:</label> <input type="text"
  134 + name="mileageUp" /></li>
  135 + <li><label>下行里程:</label> <input type="text"
  136 + name="mileageDown" /></li>
  137 + <li><label>平均里程:</label> <input type="text"
  138 + name="averageMileage" /></li>
  139 + <li><label>上行站级:</label> <input type="text"
  140 + name="stationUp" /></li>
  141 + <li><label>下行站级数():</label> <input type="text"
  142 + name="stationDown" /></li>
  143 + <li><label>行驶时间(上行):</label> <input type="text"
  144 + name="travelTimeUp" /></li>
  145 + <li><label>行驶时间(下行):</label> <input type="text"
  146 + name="travelTimeDown" /></li>
  147 + <li><label>行驶间隔(高峰):</label> <input type="text"
  148 + name="travelIntervalUp" /></li>
  149 + <li><label>行驶间隔(低谷):</label> <input type="text"
  150 + name="travelIntervalDown" /></li>
  151 + <li><label>经营权证:</label> <input type="text"
  152 + name="warrantVehiclesLarge" /></li>
  153 + <li><label>经营权证:</label> <input type="text"
  154 + name="warrantVehiclesMiddle" /></li>
  155 + <li><label>实际配车数:</label> <input type="text"
  156 + name="vehiclesNumber" /></li>
  157 + <li><label>实际车辆数(大巴):</label> <input type="text"
  158 + name="numberVehiclesLarge" /></li>
  159 + <li><label>实际车辆数(中巴):</label> <input type="text"
  160 + name="numberVehiclesMiddle" /></li>
  161 + <li><label>车辆自编号:</label> <input type="text" name="carPlate" />
  162 + </li>
  163 + <li><label>线路总配人数:</label> <input type="text"
  164 + name="numberPerson" /></li>
  165 + <li><label>人数司机:</label> <input type="text"
  166 + name="numberPersonDriver" /></li>
  167 + <li><label>售票员数:</label> <input type="text"
  168 + name="numberPersonSales" /></li>
  169 + <li><label>新能源车数:</label> <input type="text"
  170 + name="busEvNumber" /></li>
  171 + <li><label>经营权证数:</label> <input type="text"
  172 + name="numberOfManage" /></li>
  173 + <li><label>高峰系数:</label> <input type="text"
  174 + name="fullCustomerPercent" /></li>
  175 + <li><label>低谷系数:</label> <input type="text"
  176 + name="lowCustomerPercent" /></li>
  177 + <li><label>间隔等级:</label> <input type="text"
  178 + name="divideLevel" /></li>
  179 + <li><label>是否挂牌:</label> <input type="text"
  180 + name="hasTimelists" /></li>
  181 + <li><label>是否轨交末班车衔接:</label> <select name="isMetro"
  182 + th:with="type=${@dict.getType('trueFalse')}">
  183 + <option value=""></option>
  184 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  185 + th:value="${dict.dictValue}"></option>
  186 + </select></li>
  187 + <li><label>轨交时间:</label> <input type="text"
  188 + class="time-input" placeholder="请选择轨交时间" name="metroTime" /></li>
  189 + <li><label>冷僻补贴:</label> <input type="text"
  190 + name="coldBonusType" /></li>
  191 + <li><label>月度营收:</label> <input type="text"
  192 + name="revenuesMonth" /></li>
  193 + <li><label>月度人次:</label> <input type="text"
  194 + name="personMonth" /></li>
  195 + <li><label>月度里程:</label> <input type="text"
  196 + name="mileageMonth" /></li>
  197 + <li><label>百公里人次:</label> <input type="text"
  198 + name="personMonthAvg" /></li>
  199 + <li><label>营收:</label> <input type="text" name="revenues" />
  200 + </li>
  201 + <li><label>人次:</label> <input type="text" name="persons" />
  202 + </li>
  203 + <li><label>里程:</label> <input type="text" name="mileages" />
  204 + </li>
  205 + <li><label>百公里人次:</label> <input type="text"
  206 + name="personAvg" /></li>
  207 +
  208 + <li>
  209 + <el-button size="mini" type="primary" icon="el-icon-search" onClick="$.table.search();">搜索</el-button>
  210 + <el-button size="mini" icon="el-icon-refresh" onClick="$.form.reset();">重置</el-button>
  211 + </li>
  212 +
  213 + </ul>
  214 +
  215 + </div>
  216 + </form>
  217 + </div>
  218 +
  219 +
  220 + <div class="btn-group-sm" id="toolbar" role="group">
  221 +
  222 + <el-button plain size="mini" type="success" icon="el-icon-search" onClick="$.table.search();" data-toggle="modal" data-target="#myModal">选择显示的列</el-button>
  223 +
  224 + <el-button plain size="mini" type="warning" icon="el-icon-download" onClick="$.table.exportExcel();" shiro:hasPermission="system:line:export"> 导出</el-button>
  225 +
  226 + </div>
  227 + <div class="col-sm-12 select-table table-striped">
  228 + <table id="bootstrap-table"></table>
  229 + </div>
  230 + </div>
  231 +</div>
  232 +<th:block th:include="include :: footer" />
  233 +<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
  234 + aria-labelledby="myModalLabel" aria-hidden="true">
  235 + <div class="modal-dialog">
  236 + <div class="modal-content">
  237 + <div class="modal-header">
  238 + <button type="button" class="close" data-dismiss="modal"
  239 + aria-hidden="true">&times;</button>
  240 + <h4 class="modal-title" id="myModalLabel">选择显示的列</h4>
  241 + </div>
  242 + <div class="modal-body" id="cols" style="float: left;">
  243 + <input type="checkbox" onClick="checkAll(this);" id="checkboxForAll"/><label>全选</label><br />
  244 + <br />
  245 +
  246 + </div>
  247 + <div class="modal-footer">
  248 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  249 + <button type="button" class="btn btn-primary" data-dismiss="modal" onClick="initTable();">提交更改</button>
  250 + </div>
  251 + </div>
  252 + <!-- /.modal-content -->
  253 + </div>
  254 + <!-- /.modal -->
  255 +</div>
  256 +
  257 +
  258 +<script th:inline="javascript">
  259 +
  260 + function add(obj){
  261 + if($(obj)[0].className.indexOf("disabled") == -1)
  262 + $.operate.add();
  263 +
  264 + }
  265 +
  266 + function edit(obj){
  267 + if($(obj)[0].className.indexOf("disabled") == -1)
  268 + $.operate.edit();
  269 +
  270 + }
  271 +
  272 +
  273 + function remove(obj){
  274 + if($(obj)[0].className.indexOf("disabled") == -1)
  275 + $.operate.removeAll();
  276 +
  277 + }
  278 +
  279 + new Vue({
  280 + el: '#context',
  281 + data: function() {
  282 + return { visible: false }
  283 + }
  284 + })
  285 +
  286 + var dicts = [[${@dict.getType('')}]];
  287 + var mytable = null;
  288 +
  289 +
  290 + function initTable(){
  291 + var objs = $("#cols div");
  292 +
  293 +
  294 + var data = [];
  295 +
  296 + for(var i = 0;i< objs.length;i++){
  297 + var name = $(objs[i]).find("input")[0].name;
  298 + var text = $(objs[i]).find("label")[0].innerText;
  299 + var checked = $(objs[i]).find("input")[0].checked;
  300 +
  301 + data.push({
  302 + name:name,
  303 + text:text,
  304 + checked:checked});
  305 +
  306 + }
  307 +
  308 + createTable(data);
  309 +
  310 + $.post("/system/line/updateUserLineInfo",{lineInfo:JSON.stringify(data)},function(data){
  311 + $.modal.msg(data.msg);
  312 + });
  313 + }
  314 +
  315 + function createTable(objs){
  316 + var options = {
  317 + url: prefix + "/list",
  318 + detailUrl: prefix + "/detail/{id}",
  319 + exportUrl: prefix + "/export",
  320 + modalName: "线路档案信息",
  321 + columns: [],
  322 + queryParams: queryParams,
  323 + rowStyle:function(row,index) {
  324 + var flag=DateMinus(row.isWarrantEndTime);
  325 + if(row.isWarrant==='1'&&!flag){
  326 + var strClass='danger';
  327 + return {classes:strClass};
  328 + }
  329 + return "";
  330 + },
  331 + onDblClickRow:function (row,index){
  332 + $.operate.detail(row.id);
  333 + }
  334 + };
  335 +
  336 +
  337 + if(objs.length > 0){
  338 + options.columns[0] = {checkbox:true};
  339 + options.columns[1] = {visible:false,field:"id"};
  340 + }
  341 +
  342 + for(var i = 0;i< objs.length;i++){
  343 +
  344 + var col = {
  345 + field: objs[i].name,
  346 + title: objs[i].text,
  347 + visible:objs[i].checked,
  348 + align: 'center',
  349 + formatter: function(value, row, index) {
  350 +
  351 +
  352 + if(this.field == "roadType" || this.field == "busType"){
  353 + if(value != null){
  354 +
  355 + var arr = value.split(",");
  356 + value = "";
  357 + for(var i in arr){
  358 +
  359 + for(var j in dicts[this.field]){
  360 + if(dicts[this.field][j].dictValue == arr[i]){
  361 + value += dicts[this.field][j].dictLabel + ","
  362 + break;
  363 + }
  364 + }
  365 +
  366 + }
  367 + return $.table.tooltip(value.substring(0,value.length -1), 5);
  368 + }
  369 + }
  370 +
  371 + if(this.field == "isLogicDelete" || this.field == "inoutDistrict"|| this.field == "isMetro" || this.field == "hasTimelists" || this.field == "isWarrant"){
  372 + for(var j in dicts["trueFalse"]){
  373 + if(dicts["trueFalse"][j].dictValue == value){
  374 + value = dicts["trueFalse"][j].dictLabel;
  375 + break;
  376 + }
  377 + }
  378 + }
  379 +
  380 +
  381 +
  382 + if(dicts[this.field]){
  383 + for(var j in dicts[this.field]){
  384 + if(dicts[this.field][j].dictValue == value){
  385 + value = dicts[this.field][j].dictLabel;
  386 + break;
  387 + }
  388 + }
  389 + }
  390 +
  391 + return $.table.tooltip(value, 5);
  392 + }
  393 + }
  394 +
  395 + if($($("#formId input[name="+objs[i].name+"]"))){
  396 + if(objs[i].checked){
  397 + $($("#formId input[name="+objs[i].name+"]")).parent().show();
  398 + }else{
  399 +
  400 + $($("#formId input[name="+objs[i].name+"]")).parent().hide();
  401 + }
  402 + }
  403 + if($($("#formId select[name="+objs[i].name+"]"))){
  404 + if(objs[i].checked){
  405 + $($("#formId select[name="+objs[i].name+"]")).parent().show();
  406 + }else{
  407 +
  408 + $($("#formId select[name="+objs[i].name+"]")).parent().hide();
  409 + }
  410 + }
  411 +
  412 + options.columns.push(col);
  413 +
  414 + }
  415 +
  416 + $.table.destroy();
  417 +
  418 + $.table.init(options);
  419 +
  420 + mytable = $.table;
  421 + }
  422 +
  423 + function checkAll(obj){
  424 + var objs = $("#cols input");
  425 +
  426 + if(obj.checked == false){
  427 + for(var i in objs){
  428 + objs[i].checked = false;
  429 + }
  430 + }else{
  431 + for(var i in objs){
  432 + objs[i].checked = true;
  433 + }
  434 + }
  435 + }
  436 +
  437 + function queryParams(params) {
  438 + var search = $.table.queryParams(params);
  439 + return search;
  440 + }
  441 + var editFlag = [[${@permission.hasPermi('system:line:edit')}]];
  442 + var removeFlag = [[${@permission.hasPermi('system:line:remove')}]];
  443 + var prefix = ctx + "system/line";
  444 +
  445 + $(function() {
  446 + var allDicts = {};
  447 +
  448 + for(var i in dicts){
  449 + if(!allDicts[dicts[i].dictType]){
  450 + allDicts[dicts[i].dictType] = [];
  451 + }
  452 + allDicts[dicts[i].dictType].push(dicts[i]);
  453 + }
  454 +
  455 + dicts = allDicts;
  456 +
  457 +
  458 +
  459 +
  460 +
  461 +
  462 + var cols = [{
  463 + field: 'lineName',
  464 + title: '线路名称'
  465 + },
  466 + {
  467 + field: 'company',
  468 + title: '公司'
  469 + },
  470 + {
  471 + field: 'fCompany',
  472 + title: '分公司'
  473 + },
  474 + {
  475 + field: 'pLineId',
  476 + title: '主线路id'
  477 + },
  478 + {
  479 + field: 'serviceType',
  480 + title: '营运方式'
  481 + },
  482 + {
  483 + field: 'lineLevel',
  484 + title: '线路属性'
  485 + },
  486 + {
  487 + field: 'lineType',
  488 + title: '线路属性'
  489 + },
  490 + {
  491 + field: 'district',
  492 + title: '区属'
  493 + },
  494 + {
  495 + field: 'inoutDistrict',
  496 + title: '是否区内'
  497 + },
  498 + {
  499 + field: 'serviceState',
  500 + title: '营运状态'
  501 + },
  502 + {
  503 + field: 'busType',
  504 + title: '车辆类型'
  505 + },
  506 + {
  507 + field: 'airConditionerType',
  508 + title: '是否空调'
  509 + },
  510 + {
  511 + field: 'sellTicketType',
  512 + title: '售票类型'
  513 + },
  514 + {
  515 + field: 'serviceTime',
  516 + title: '运营时间'
  517 + },
  518 + {
  519 + field: 'lineDistance',
  520 + title: '线路长度'
  521 + },
  522 + {
  523 + field: 'lineCode',
  524 + title: '线路编码'
  525 + },
  526 + {
  527 + field: 'warrantYear',
  528 + title: '授权年限'
  529 + },
  530 + {
  531 + field: 'warrantStartTime',
  532 + title: '授权起始日期'
  533 + },
  534 + {
  535 + field: 'warrantEndTime',
  536 + title: '授权结束日期'
  537 + },
  538 + {
  539 + field: 'planCancelTime',
  540 + title: '撤销日期'
  541 + },
  542 + {
  543 + field: 'cancelTime',
  544 + title: '实际撤销日期'
  545 + },
  546 + {
  547 + field: 'cancelReason',
  548 + title: '撤销原因'
  549 + },
  550 + {
  551 + field: 'remark',
  552 + title: '备注'
  553 + },
  554 + {
  555 + field: 'isLogicDelete',
  556 + title: '是否逻辑删除'
  557 + },
  558 + {
  559 + field: 'updateBy',
  560 + title: '更新人'
  561 + },
  562 + {
  563 + field: 'updateTime',
  564 + title: '更新时间'
  565 + },
  566 + {
  567 + field: 'timeSchedule',
  568 + title: '行车作业计划表报备时间'
  569 + },
  570 + {
  571 + field: 'park',
  572 + title: '停车场'
  573 + },
  574 + {
  575 + field: 'isWarrant',
  576 + title: '是否权证'
  577 + },
  578 + {
  579 + field: 'isWarrantStartTime',
  580 + title: '权证开通日期'
  581 + },
  582 + {
  583 + field: 'isWarrantEndTime',
  584 + title: '权证到期日期'
  585 + },
  586 + {
  587 + field: 'roadType',
  588 + title: '道路类型'
  589 + },
  590 + {
  591 + field: 'ticketPrice',
  592 + title: '票价'
  593 + },
  594 + {
  595 + field: 'firstStation',
  596 + title: '首站'
  597 + },
  598 + {
  599 + field: 'startEnd',
  600 + title: '起讫站'
  601 + },
  602 + {
  603 + field: 'firstTime',
  604 + title: '首战时间'
  605 + },
  606 + {
  607 + field: 'lastStation',
  608 + title: '末站'
  609 + },
  610 + {
  611 + field: 'lastTime',
  612 + title: '末站首战时间'
  613 + },
  614 + {
  615 + field: 'mileageUp',
  616 + title: '上行里程数'
  617 + },
  618 + {
  619 + field: 'mileageDown',
  620 + title: '下行里程数'
  621 + },
  622 + {
  623 + field: 'averageMileage',
  624 + title: '平均里程数'
  625 + },
  626 + {
  627 + field: 'stationUp',
  628 + title: '站级数(上行)'
  629 + },
  630 + {
  631 + field: 'stationDown',
  632 + title: '站级数(下行)'
  633 + },{
  634 + field: 'travelTimeUp',
  635 + title: '行驶时间(上行)'
  636 + },{
  637 + field: 'travelTimeDown',
  638 + title: '行驶时间(下行)'
  639 + },{
  640 + field: 'travelIntervalUp',
  641 + title: '行驶间隔(高峰)'
  642 + },{
  643 + field: 'travelIntervalDown',
  644 + title: '行驶间隔(低谷)'
  645 + },{
  646 + field: 'warrantVehiclesLarge',
  647 + title: '经营权证(大巴)'
  648 + }, {
  649 + field: 'warrantVehiclesMiddle',
  650 + title: '经营权证(中巴)'
  651 + },{
  652 + field: 'vehiclesNumber',
  653 + title: '实际配车数'
  654 + }, {
  655 + field: 'numberVehiclesLarge',
  656 + title: '实际车辆数(大巴)'
  657 + }, {
  658 + field: 'numberVehiclesMiddle',
  659 + title: '实际车辆数(中巴)'
  660 + },{
  661 + field: 'carPlate',
  662 + title: '车辆自编号'
  663 + },{
  664 + field: 'numberPerson',
  665 + title: '线路总配人数'
  666 + },{
  667 + field: 'numberPersonDriver',
  668 + title: '人数司机'
  669 + }, {
  670 + field: 'numberPersonSales',
  671 + title: '售票员数'
  672 + },{
  673 + field: 'busEvNumber',
  674 + title: '新能源车数'
  675 + },{
  676 + field: 'directions',
  677 + title: '线路走向'
  678 + },{
  679 + field: 'numberOfManage',
  680 + title: '经营权证数'
  681 + },{
  682 + field: 'halfwayStation',
  683 + title: '站点名称'
  684 + },{
  685 + field: 'fullCustomerPercent',
  686 + title: '高峰系数'
  687 + },{
  688 + field: 'lowCustomerPercent',
  689 + title: '低谷系数'
  690 + }, {
  691 + field: 'divideLevel',
  692 + title: '间隔等级'
  693 + },{
  694 + field: 'hasTimelists',
  695 + title: '是否挂牌'
  696 + },{
  697 + field: 'isMetro',
  698 + title: '是否轨交末班车衔接'
  699 + },{
  700 + field: 'metroTime',
  701 + title: '轨交时间'
  702 + },{
  703 + field: 'coldBonusType',
  704 + title: '冷僻线路补贴类型'
  705 + },{
  706 + field: 'revenuesMonth',
  707 + title: '月度营收'
  708 + },{
  709 + field: 'personMonth',
  710 + title: '月度人次'
  711 + },{
  712 + field: 'mileageMonth',
  713 + title: '月度里程'
  714 + },{
  715 + field: 'personMonthAvg',
  716 + title: '百公里人次'
  717 + },{
  718 + field: 'revenues',
  719 + title: '营收'
  720 + },{
  721 + field: 'persons',
  722 + title: '人次'
  723 + }, {
  724 + field: 'mileages',
  725 + title: '里程'
  726 + },{
  727 + field: 'personAvg',
  728 + title: '百公里人次'
  729 + }];
  730 +
  731 + for(var i =0 ; i < cols.length ;i++){
  732 + if(i > 0 && i %3 > 0)continue;
  733 + var tag = "<div class='col_checkbox'><input type='checkbox' name="+cols[i].field+"><label>"+cols[i].title + "</label></div>";
  734 + if(cols[i+1]){
  735 + tag+= "<div class='col_checkbox'><input type='checkbox' name="+cols[i+1].field+"><label>"+cols[i+1].title + "</label></div>";
  736 + }
  737 + if(cols[i+2]){
  738 + tag+= "<div class='col_checkbox'><input type='checkbox' name="+cols[i+2].field+"><label>"+cols[i+2].title + "</label></div>";
  739 + }
  740 + $("#cols").append(tag);
  741 + }
  742 +
  743 + $.get("/system/line/getUserLineInfo",function(data){
  744 + if(data.msg != null){
  745 + var data = JSON.parse(data.msg);
  746 + createTable(data);
  747 +
  748 +
  749 + var allCheck = true;
  750 +
  751 + for(var i = 0;i<data.length;i++){
  752 +
  753 + if(!data[i].checked){
  754 + allCheck = false;
  755 + }
  756 +
  757 + $("#cols input[name="+data[i].name+"]")[0].checked = data[i].checked;
  758 + }
  759 +
  760 + $("#checkboxForAll")[0].checked = allCheck;
  761 +
  762 + }
  763 + });
  764 +
  765 +
  766 + });
  767 +
  768 +
  769 + function DateMinus(date1){
  770 + if(date1==null){
  771 + return true;
  772 + }
  773 +
  774 + var sdate = new Date(date1);
  775 + var now = new Date();
  776 + var days = sdate.getTime()-now.getTime();
  777 + var day = parseInt(days / (1000 * 60 * 60 * 24));
  778 + console.log(day);
  779 + if(day<120){
  780 + return false;
  781 + }
  782 + return true;
  783 + }
  784 +</script>
  785 +
  786 +<style>
  787 + .col_checkbox {
  788 + width: 33%;
  789 + float: left;
  790 + }
  791 +</style>
  792 +</body>
  793 +</html>
0 \ No newline at end of file 794 \ No newline at end of file
bsthLineProfiles/src/main/resources/templates/system/line/map.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org"
  3 + xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  4 +<head>
  5 +
  6 +<th:block th:include="include :: header('地图查询')" />
  7 +
  8 +<style>
  9 +body, html, #container {
  10 + overflow: hidden;
  11 + width: 100%;
  12 + height: 100%;
  13 + margin: 0;
  14 + font-family: "微软雅黑";
  15 +}
  16 +
  17 +.info {
  18 + z-index: 999;
  19 + width: auto;
  20 + min-width: 22rem;
  21 + padding: .75rem 1.25rem;
  22 + margin-left: 1.25rem;
  23 + position: fixed;
  24 + top: 1rem;
  25 + background-color: #fff;
  26 + border-radius: .25rem;
  27 + font-size: 14px;
  28 + color: #666;
  29 + box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
  30 +}
  31 +
  32 +.stationInfo {
  33 + right: 0px;
  34 + top: 100px;
  35 + display: none;
  36 +}
  37 +</style>
  38 +<script
  39 + src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=IGGrr4UjwIYzatoCRFKEL8sT"></script>
  40 +</head>
  41 +<body>
  42 + <div class="info">
  43 + <input type="text" class="form-control" id="distance"
  44 + placeholder="查询范围(单位米)" value="500" />
  45 + </div>
  46 +
  47 + <!-- <div class="info col-lg-6">
  48 + <div class="input-group">
  49 + <input type="text" class="form-control" id="text">
  50 + <div class="input-group-btn">
  51 + <button type="button" class="btn btn-white dropdown-toggle"
  52 + data-toggle="dropdown">
  53 + <span class="caret"></span>
  54 + </button>
  55 + <ul class="dropdown-menu dropdown-menu-right" role="menu">
  56 + </ul>
  57 + </div>
  58 + </div>
  59 + </div> -->
  60 +
  61 + <div class="info stationInfo">
  62 + <div id="stationInfo"></div>
  63 +
  64 + </div>
  65 +
  66 + <div id="container"></div>
  67 + <th:block th:include="include :: footer" />
  68 + <th:block th:include="include :: bootstrap-suggest-js" />
  69 + <script>
  70 + var map = new BMapGL.Map('container'); // 创建Map实例
  71 + map.centerAndZoom(new BMapGL.Point(121.528733, 31.237425), 12); // 初始化地图,设置中心点坐标和地图级别
  72 + map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
  73 +
  74 + map.addEventListener('click', function(e) {
  75 + if (e.overlay) {
  76 + return; // 存在覆盖物退出
  77 + }
  78 + map.clearOverlays();
  79 +
  80 + $.get("http://180.167.126.126:18991/prod-api/service/interfact/getStation?lng="
  81 + + e.latlng.lng + "&lat=" + e.latlng.lat + "&dis="
  82 + + $("#distance").val() / 1000, function(data) {
  83 + if (data.code == "200") {
  84 + for ( var i in data.data) {
  85 + (function(){
  86 + var station = data.data[i];
  87 + var marker = new BMapGL.Marker(new BMapGL.Point(station.lonBd, station.latBd),{title:station.standardStationCode});
  88 + var label = new BMapGL.Label(station.stationName);
  89 +
  90 + marker.setLabel(label);
  91 +
  92 +
  93 + marker.station = data.data[i];
  94 +
  95 + var opts = {
  96 + width: 200,
  97 + height: 200,
  98 + title: station.stationName
  99 + };
  100 +
  101 + var info = "";
  102 + info += "<span>站点名称:" + data.data[i].stationName
  103 + + "</span><br/>";
  104 + info += "<span>行业编码:" + data.data[i].standardStationCode
  105 + + "</span><br/>";
  106 + info += "<span>站点编码:" + data.data[i].stationCode
  107 + + "</span><br/>";
  108 + info += "<span>经过线路:" + data.data[i].lineList
  109 + + "</span><br/>";
  110 + info += "<span>道路名称:" + data.data[i].roadName
  111 + + "</span><br/>";
  112 +
  113 + var infoWindow = new BMapGL.InfoWindow(info, opts);
  114 +
  115 +
  116 + marker.addEventListener('click', function() {
  117 + map.openInfoWindow(infoWindow, new BMapGL.Point(station.lonBd, station.latBd)); // 开启信息窗口
  118 + });
  119 +
  120 +
  121 + map.addOverlay(marker);
  122 + })();
  123 + }
  124 + }
  125 + });
  126 +
  127 + });
  128 +
  129 + /* $("#text").bsSuggest({
  130 + url : "/system/line/getListForMap",
  131 + effectiveFields : [ "lineName" ],
  132 + searchFields : [ "lineName", "halfwayStation" ],
  133 + effectiveFieldsAlias : {
  134 + lineName : "线路名"
  135 + },
  136 + clearable : true,
  137 + idField : "id",
  138 + keyField : "lineName",
  139 + processData : function(json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
  140 + var data = {
  141 + 'value' : []
  142 + };
  143 +
  144 + for ( var i in json) {
  145 + data.value.push(json[i]);
  146 + }
  147 +
  148 + //字符串转化为 js 对象
  149 + return data;
  150 + }
  151 + }).on('onDataRequestSuccess', function(e, result) {
  152 + console.log('onDataRequestSuccess: ', result);
  153 + }).on('onSetSelectValue', function(e, selectedData, selectedRawData) {
  154 +
  155 + busline.getBusList(e.target.value);
  156 +
  157 + }).on('onUnsetSelectValue', function() {
  158 + console.log('onUnsetSelectValue');
  159 + }).on('onShowDropdown', function(e, data) {
  160 + console.log('onShowDropdown', e.target.value, data);
  161 + }).on('onHideDropdown', function(e, data) {
  162 + console.log('onHideDropdown', e.target.value, data);
  163 + });
  164 +
  165 +
  166 + var busline = new BMapGL.BusLineSearch(map, {
  167 + renderOptions : {
  168 + map : map,
  169 + panel : "r-result"
  170 + },
  171 + onGetBusListComplete : function(result) {
  172 + if (result) {
  173 +
  174 + for(var i in result._listItems){
  175 + if(result._listItems[i].name.indexOf($("#text").val()) > -1){
  176 + var fstLine = result.getBusListItem(i);//获取第一个公交列表显示到map上
  177 + busline.getBusLine(fstLine);
  178 + return;
  179 + }
  180 + }
  181 +
  182 + }else{
  183 + return;
  184 + }
  185 + },
  186 + onMarkersSet:function(array){
  187 +
  188 + for(var i in array){
  189 +
  190 + const overlay = array[i];
  191 +
  192 +
  193 + }
  194 +
  195 + }
  196 + }); */
  197 + </script>
  198 +
  199 +
  200 +
  201 +</body>
  202 +</html>
0 \ No newline at end of file 203 \ No newline at end of file
bsthLineProfiles/src/main/resources/templates/system/lineAdd/add.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
  3 +<head>
  4 + <th:block th:include="include :: header('添加线路档案信息')" />
  5 + <th:block th:include="include :: datetimepicker-css" />
  6 +</head>
  7 +<body class="white-bg">
  8 + <div class="wrapper wrapper-content animated fadeInRight ibox-content">
  9 + <form class="form-horizontal m" id="form-line-add">
  10 + <div class="form-group">
  11 + <label class="col-sm-3 control-label">线路名称:</label>
  12 + <div class="col-sm-8">
  13 + <input name="lineName" class="form-control" type="text">
  14 + </div>
  15 + </div>
  16 + <div class="form-group">
  17 + <label class="col-sm-3 control-label">公司:</label>
  18 + <div class="col-sm-8">
  19 + <input name="company" class="form-control" type="text">
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 + <label class="col-sm-3 control-label">分公司:</label>
  24 + <div class="col-sm-8">
  25 + <input name="fCompany" class="form-control" type="text">
  26 + </div>
  27 + </div>
  28 + <div class="form-group">
  29 + <label class="col-sm-3 control-label">主线路id:</label>
  30 + <div class="col-sm-8">
  31 + <input name="pLineId" class="form-control" type="text">
  32 + </div>
  33 + </div>
  34 + <div class="form-group">
  35 + <label class="col-sm-3 control-label">营运方式:</label>
  36 + <div class="col-sm-8">
  37 + <select name="serviceType"
  38 + th:with="type=${@dict.getType('serviceType')}"
  39 + class="form-control m-b">
  40 + <option value=""></option>
  41 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  42 + th:value="${dict.dictValue}">
  43 +
  44 + </option>
  45 + </select>
  46 + </div>
  47 + </div>
  48 +
  49 + <div class="form-group">
  50 + <label class="col-sm-3 control-label">线路属性:</label>
  51 + <div class="col-sm-8">
  52 + <select name="lineLevel"
  53 + th:with="type=${@dict.getType('lineLevel')}"
  54 + class="form-control m-b">
  55 + <option value=""></option>
  56 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  57 + th:value="${dict.dictValue}">
  58 + </option>
  59 + </select>
  60 + </div>
  61 + </div>
  62 + <div class="form-group">
  63 + <label class="col-sm-3 control-label">线路类型:</label>
  64 + <div class="col-sm-8">
  65 + <select name="lineType" th:with="type=${@dict.getType('lineType')}"
  66 + class="form-control m-b">
  67 + <option value=""></option>
  68 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  69 + th:value="${dict.dictValue}">
  70 + </option>
  71 + </select>
  72 + </div>
  73 + </div>
  74 + <div class="form-group">
  75 + <label class="col-sm-3 control-label">区属:</label>
  76 + <div class="col-sm-8">
  77 + <select name="district" th:with="type=${@dict.getType('district')}"
  78 + class="form-control m-b">
  79 + <option value=""></option>
  80 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  81 + th:value="${dict.dictValue}">
  82 + </option>
  83 + </select>
  84 + </div>
  85 + </div>
  86 + <div class="form-group">
  87 + <label class="col-sm-3 control-label">是否区内:</label>
  88 + <div class="col-sm-8">
  89 + <select name="inoutDistrict"
  90 + th:with="type=${@dict.getType('trueFalse')}"
  91 + class="form-control m-b">
  92 + <option value=""></option>
  93 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  94 + th:value="${dict.dictValue}">
  95 +
  96 + </option>
  97 + </select>
  98 + </div>
  99 + </div>
  100 + <div class="form-group">
  101 + <label class="col-sm-3 control-label">营运状态:</label>
  102 + <div class="col-sm-8">
  103 + <select name="serviceState"
  104 + th:with="type=${@dict.getType('serviceState')}"
  105 + class="form-control m-b">
  106 + <option value=""></option>
  107 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  108 + th:value="${dict.dictValue}">
  109 + </option>
  110 + </select>
  111 + </div>
  112 + </div>
  113 + <div class="form-group">
  114 + <label class="col-sm-3 control-label">车辆类型 多选:</label>
  115 + <div class="col-sm-8" th:with="type=${@dict.getType('busType')}">
  116 + <label class="checkbox-inline" th:each="dict : ${type}"
  117 + style="display: block"> <input type="checkbox"
  118 + name="busType"
  119 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" /></label>
  120 + </div>
  121 + </div>
  122 + <div class="form-group">
  123 + <label class="col-sm-3 control-label">是否空调:</label>
  124 + <div class="col-sm-8">
  125 + <select name="airConditionerType"
  126 + th:with="type=${@dict.getType('airConditionerType')}"
  127 + class="form-control m-b">
  128 + <option value=""></option>
  129 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  130 + th:value="${dict.dictValue}">
  131 + </option>
  132 + </select>
  133 + </div>
  134 + </div>
  135 + <div class="form-group">
  136 + <label class="col-sm-3 control-label">售票类型:</label>
  137 + <div class="col-sm-8">
  138 + <select name="sellTicketType"
  139 + th:with="type=${@dict.getType('sellTicketType')}"
  140 + class="form-control m-b">
  141 + <option value=""></option>
  142 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  143 + th:value="${dict.dictValue}">
  144 + </option>
  145 + </select>
  146 + </div>
  147 + </div>
  148 + <div class="form-group">
  149 + <label class="col-sm-3 control-label">运营时间:</label>
  150 + <div class="col-sm-8">
  151 + <select name="serviceTime"
  152 + th:with="type=${@dict.getType('serviceTime')}"
  153 + class="form-control m-b">
  154 + <option value=""></option>
  155 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  156 + th:value="${dict.dictValue}">
  157 + </option>
  158 + </select>
  159 + </div>
  160 + </div>
  161 + <div class="form-group">
  162 + <label class="col-sm-3 control-label">线路长度:</label>
  163 + <div class="col-sm-8">
  164 + <input name="lineDistance" class="form-control" type="text">
  165 + </div>
  166 + </div>
  167 + <div class="form-group">
  168 + <label class="col-sm-3 control-label">线路编码:</label>
  169 + <div class="col-sm-8">
  170 + <input name="lineCode" class="form-control" type="text">
  171 + </div>
  172 + </div>
  173 + <div class="form-group">
  174 + <label class="col-sm-3 control-label">授权年限:</label>
  175 + <div class="col-sm-8">
  176 + <input name="warrantYear" class="form-control" type="text">
  177 + </div>
  178 + </div>
  179 + <div class="form-group">
  180 + <label class="col-sm-3 control-label">授权起始日期:</label>
  181 + <div class="col-sm-8">
  182 + <div class="input-group date">
  183 + <input name="warrantStartTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  184 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  185 + </div>
  186 + </div>
  187 + </div>
  188 + <div class="form-group">
  189 + <label class="col-sm-3 control-label">授权结束日期:</label>
  190 + <div class="col-sm-8">
  191 + <div class="input-group date">
  192 + <input name="warrantEndTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  193 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  194 + </div>
  195 + </div>
  196 + </div>
  197 + <div class="form-group">
  198 + <label class="col-sm-3 control-label">撤销日期:</label>
  199 + <div class="col-sm-8">
  200 + <div class="input-group date">
  201 + <input name="planCancelTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  202 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  203 + </div>
  204 + </div>
  205 + </div>
  206 + <div class="form-group">
  207 + <label class="col-sm-3 control-label">实际撤销日期:</label>
  208 + <div class="col-sm-8">
  209 + <div class="input-group date">
  210 + <input name="cancelTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  211 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  212 + </div>
  213 + </div>
  214 + </div>
  215 + <div class="form-group">
  216 + <label class="col-sm-3 control-label">撤销原因:</label>
  217 + <div class="col-sm-8">
  218 + <textarea name="cancelReason" class="form-control"></textarea>
  219 + </div>
  220 + </div>
  221 + <div class="form-group">
  222 + <label class="col-sm-3 control-label">备注:</label>
  223 + <div class="col-sm-8">
  224 + <textarea name="remark" class="form-control"></textarea>
  225 + </div>
  226 + </div>
  227 + <div class="form-group">
  228 + <label class="col-sm-3 control-label">是否逻辑删除:</label>
  229 + <div class="col-sm-8">
  230 + <select name="isLogicDelete"
  231 + th:with="type=${@dict.getType('trueFalse')}"
  232 + class="form-control m-b">
  233 + <option value=""></option>
  234 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  235 + th:value="${dict.dictValue}">
  236 + </option>
  237 + </select>
  238 + </div>
  239 + </div>
  240 + <div class="form-group">
  241 + <label class="col-sm-3 control-label">更新人:</label>
  242 + <div class="col-sm-8">
  243 + <input name="updateBy" class="form-control" type="text">
  244 + </div>
  245 + </div>
  246 + <div class="form-group">
  247 + <label class="col-sm-3 control-label">更新时间:</label>
  248 + <div class="col-sm-8">
  249 + <div class="input-group date">
  250 + <input name="updateTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  251 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  252 + </div>
  253 + </div>
  254 + </div>
  255 + <div class="form-group">
  256 + <label class="col-sm-3 control-label">行车作业计划表报备时间:</label>
  257 + <div class="col-sm-8">
  258 + <div class="input-group date">
  259 + <input name="timeSchedule" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  260 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  261 + </div>
  262 + </div>
  263 + </div>
  264 + <div class="form-group">
  265 + <label class="col-sm-3 control-label">停车场:</label>
  266 + <div class="col-sm-8">
  267 + <input name="park" class="form-control" type="text">
  268 + </div>
  269 + </div>
  270 + <div class="form-group">
  271 + <label class="col-sm-3 control-label">是否权证:</label>
  272 + <div class="col-sm-8">
  273 + <select name="isWarrant" id="isWarrant"
  274 + th:with="type=${@dict.getType('trueFalse')}"
  275 + class="form-control m-b">
  276 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  277 + th:value="${dict.dictValue}" th:selected="${dict.dictValue=='1'}">
  278 + </option>
  279 + </select>
  280 + </div>
  281 + </div>
  282 + <div class="form-group">
  283 + <label class="col-sm-3 control-label">权证开通日期:</label>
  284 + <div class="col-sm-8">
  285 + <div class="input-group date">
  286 + <input name="isWarrantStartTime" id="isWarrantStartTime"
  287 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  288 + autocomplete="off"> <span class="input-group-addon"><i
  289 + class="fa fa-calendar"></i></span>
  290 + </div>
  291 +
  292 + </div>
  293 + </div>
  294 + <div class="form-group">
  295 + <label class="col-sm-3 control-label">权证到期日期:</label>
  296 + <div class="col-sm-8">
  297 + <div class="input-group date">
  298 + <input name="isWarrantEndTime" id="isWarrantEndTime"
  299 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  300 + autocomplete="off"> <span class="input-group-addon"><i
  301 + class="fa fa-calendar"></i></span>
  302 + </div>
  303 +
  304 + </div>
  305 + </div>
  306 + <div class="form-group">
  307 + <label class="col-sm-3 control-label">道路类型:</label>
  308 + <div class="col-sm-8">
  309 + <div class="col-sm-8" th:with="type=${@dict.getType('roadType')}">
  310 + <label class="checkbox-inline" th:each="dict : ${type}"
  311 + style="display: block"> <input type="checkbox"
  312 + name="roadType"
  313 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" />
  314 + </label>
  315 + </div>
  316 + </div>
  317 + </div>
  318 + <div class="form-group">
  319 + <label class="col-sm-3 control-label">票价(多级票价用 - 隔开):</label>
  320 + <div class="col-sm-8">
  321 + <input name="ticketPrice" class="form-control" type="text">
  322 + </div>
  323 + </div>
  324 + <div class="form-group">
  325 + <label class="col-sm-3 control-label">首站:</label>
  326 + <div class="col-sm-8">
  327 + <input name="firstStation" class="form-control" type="text">
  328 + </div>
  329 + </div>
  330 + <div class="form-group">
  331 + <label class="col-sm-3 control-label">起讫站:</label>
  332 + <div class="col-sm-8">
  333 + <input name="startEnd" class="form-control" type="text">
  334 + </div>
  335 + </div>
  336 + <div class="form-group">
  337 + <label class="col-sm-3 control-label">首战时间:</label>
  338 + <div class="col-sm-8">
  339 + <input name="firstTime" class="form-control" type="text">
  340 + </div>
  341 + </div>
  342 + <div class="form-group">
  343 + <label class="col-sm-3 control-label">末站:</label>
  344 + <div class="col-sm-8">
  345 + <input name="lastStation" class="form-control" type="text">
  346 + </div>
  347 + </div>
  348 + <div class="form-group">
  349 + <label class="col-sm-3 control-label">末站首战时间:</label>
  350 + <div class="col-sm-8">
  351 + <input name="lastTime" class="form-control" type="text">
  352 + </div>
  353 + </div>
  354 + <div class="form-group">
  355 + <label class="col-sm-3 control-label">上行里程数:</label>
  356 + <div class="col-sm-8">
  357 + <input name="mileageUp" class="form-control" type="text">
  358 + </div>
  359 + </div>
  360 + <div class="form-group">
  361 + <label class="col-sm-3 control-label">下行里程数:</label>
  362 + <div class="col-sm-8">
  363 + <input name="mileageDown" class="form-control" type="text">
  364 + </div>
  365 + </div>
  366 + <div class="form-group">
  367 + <label class="col-sm-3 control-label">平均里程数:</label>
  368 + <div class="col-sm-8">
  369 + <input name="averageMileage" class="form-control" type="text">
  370 + </div>
  371 + </div>
  372 + <div class="form-group">
  373 + <label class="col-sm-3 control-label">站级数(上行):</label>
  374 + <div class="col-sm-8">
  375 + <input name="stationUp" class="form-control" type="text">
  376 + </div>
  377 + </div>
  378 + <div class="form-group">
  379 + <label class="col-sm-3 control-label">站级数(下行):</label>
  380 + <div class="col-sm-8">
  381 + <input name="stationDown" class="form-control" type="text">
  382 + </div>
  383 + </div>
  384 + <div class="form-group">
  385 + <label class="col-sm-3 control-label">行驶时间(上行):</label>
  386 + <div class="col-sm-8">
  387 + <input name="travelTimeUp" class="form-control" type="text">
  388 + </div>
  389 + </div>
  390 + <div class="form-group">
  391 + <label class="col-sm-3 control-label">行驶时间(下行):</label>
  392 + <div class="col-sm-8">
  393 + <input name="travelTimeDown" class="form-control" type="text">
  394 + </div>
  395 + </div>
  396 + <div class="form-group">
  397 + <label class="col-sm-3 control-label">行驶间隔(高峰):</label>
  398 + <div class="col-sm-8">
  399 + <input name="travelIntervalUp" class="form-control" type="text">
  400 + </div>
  401 + </div>
  402 + <div class="form-group">
  403 + <label class="col-sm-3 control-label">行驶间隔(低谷):</label>
  404 + <div class="col-sm-8">
  405 + <input name="travelIntervalDown" class="form-control" type="text">
  406 + </div>
  407 + </div>
  408 + <div class="form-group">
  409 + <label class="col-sm-3 control-label">经营权证(大巴):</label>
  410 + <div class="col-sm-8">
  411 + <input name="warrantVehiclesLarge" class="form-control" type="text">
  412 + </div>
  413 + </div>
  414 + <div class="form-group">
  415 + <label class="col-sm-3 control-label">经营权证(中巴):</label>
  416 + <div class="col-sm-8">
  417 + <input name="warrantVehiclesMiddle" class="form-control" type="text">
  418 + </div>
  419 + </div>
  420 + <div class="form-group">
  421 + <label class="col-sm-3 control-label">实际配车数:</label>
  422 + <div class="col-sm-8">
  423 + <input name="vehiclesNumber" class="form-control" type="text">
  424 + </div>
  425 + </div>
  426 + <div class="form-group">
  427 + <label class="col-sm-3 control-label">实际车辆数(大):</label>
  428 + <div class="col-sm-8">
  429 + <input name="numberVehiclesLarge" class="form-control" type="text">
  430 + </div>
  431 + </div>
  432 + <div class="form-group">
  433 + <label class="col-sm-3 control-label">实际车辆数(中):</label>
  434 + <div class="col-sm-8">
  435 + <input name="numberVehiclesMiddle" class="form-control" type="text">
  436 + </div>
  437 + </div>
  438 + <div class="form-group">
  439 + <label class="col-sm-3 control-label">车辆自编号:</label>
  440 + <div class="col-sm-8">
  441 + <input name="carPlate" class="form-control" type="text">
  442 + </div>
  443 + </div>
  444 + <div class="form-group">
  445 + <label class="col-sm-3 control-label">线路总配人数:</label>
  446 + <div class="col-sm-8">
  447 + <input name="numberPerson" class="form-control" type="text">
  448 + </div>
  449 + </div>
  450 + <div class="form-group">
  451 + <label class="col-sm-3 control-label">人数司机:</label>
  452 + <div class="col-sm-8">
  453 + <input name="numberPersonDriver" class="form-control" type="text">
  454 + </div>
  455 + </div>
  456 + <div class="form-group">
  457 + <label class="col-sm-3 control-label">售票员数:</label>
  458 + <div class="col-sm-8">
  459 + <input name="numberPersonSales" class="form-control" type="text">
  460 + </div>
  461 + </div>
  462 + <div class="form-group">
  463 + <label class="col-sm-3 control-label">新能源车数:</label>
  464 + <div class="col-sm-8">
  465 + <input name="busEvNumber" class="form-control" type="text">
  466 + </div>
  467 + </div>
  468 + <div class="form-group">
  469 + <label class="col-sm-3 control-label">线路走向:</label>
  470 + <div class="col-sm-8">
  471 + <textarea name="directions" class="form-control"></textarea>
  472 + </div>
  473 + </div>
  474 + <div class="form-group">
  475 + <label class="col-sm-3 control-label">经营权证数:</label>
  476 + <div class="col-sm-8">
  477 + <input name="numberOfManage" class="form-control" type="text">
  478 + </div>
  479 + </div>
  480 + <div class="form-group">
  481 + <label class="col-sm-3 control-label">站点名称:</label>
  482 + <div class="col-sm-8">
  483 + <textarea name="halfwayStation" class="form-control"></textarea>
  484 + </div>
  485 + </div>
  486 + <div class="form-group">
  487 + <label class="col-sm-3 control-label">高峰系数:</label>
  488 + <div class="col-sm-8">
  489 + <input name="fullCustomerPercent" class="form-control" type="text">
  490 + </div>
  491 + </div>
  492 + <div class="form-group">
  493 + <label class="col-sm-3 control-label">低谷系数:</label>
  494 + <div class="col-sm-8">
  495 + <input name="lowCustomerPercent" class="form-control" type="text">
  496 + </div>
  497 + </div>
  498 + <div class="form-group">
  499 + <label class="col-sm-3 control-label">间隔等级:</label>
  500 + <div class="col-sm-8">
  501 + <input name="divideLevel" class="form-control" type="text">
  502 + </div>
  503 + </div>
  504 + <div class="form-group">
  505 + <label class="col-sm-3 control-label">是否挂牌:</label>
  506 + <div class="col-sm-8">
  507 + <select name="hasTimelists"
  508 + th:with="type=${@dict.getType('trueFalse')}"
  509 + class="form-control m-b">
  510 + <option value=""></option>
  511 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  512 + th:value="${dict.dictValue}">
  513 + </option>
  514 + </select>
  515 + </div>
  516 + </div>
  517 + <div class="form-group">
  518 + <label class="col-sm-3 control-label">是否轨交末班车衔接:</label>
  519 + <select name="isMetro" th:with="type=${@dict.getType('trueFalse')}"
  520 + class="form-control m-b">
  521 + <option value=""></option>
  522 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  523 + th:value="${dict.dictValue}"></option>
  524 + </select>
  525 + </div>
  526 + <div class="form-group">
  527 + <label class="col-sm-3 control-label">轨交时间:</label>
  528 + <div class="col-sm-8">
  529 + <div class="input-group date">
  530 + <input name="metroTime" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  531 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  532 + </div>
  533 + </div>
  534 + </div>
  535 + <div class="form-group">
  536 + <label class="col-sm-3 control-label">冷僻线路补贴类型:</label>
  537 + <div class="col-sm-8">
  538 + <input name="coldBonusType" lass="form-control" type="text">
  539 + </div>
  540 + </div>
  541 + <div class="form-group">
  542 + <label class="col-sm-3 control-label">月度营收:</label>
  543 + <div class="col-sm-8">
  544 + <input name="revenuesMonth" class="form-control" type="text">
  545 + </div>
  546 + </div>
  547 + <div class="form-group">
  548 + <label class="col-sm-3 control-label">月度人次:</label>
  549 + <div class="col-sm-8">
  550 + <input name="personMonth" class="form-control" type="text">
  551 + </div>
  552 + </div>
  553 + <div class="form-group">
  554 + <label class="col-sm-3 control-label">月度里程:</label>
  555 + <div class="col-sm-8">
  556 + <input name="mileageMonth" class="form-control" type="text">
  557 + </div>
  558 + </div>
  559 + <div class="form-group">
  560 + <label class="col-sm-3 control-label">百公里人次:</label>
  561 + <div class="col-sm-8">
  562 + <input name="personMonthAvg" class="form-control" type="text">
  563 + </div>
  564 + </div>
  565 + <div class="form-group">
  566 + <label class="col-sm-3 control-label">营收:</label>
  567 + <div class="col-sm-8">
  568 + <input name="revenues" class="form-control" type="text">
  569 + </div>
  570 + </div>
  571 + <div class="form-group">
  572 + <label class="col-sm-3 control-label">人次:</label>
  573 + <div class="col-sm-8">
  574 + <input name="persons" class="form-control" type="text">
  575 + </div>
  576 + </div>
  577 + <div class="form-group">
  578 + <label class="col-sm-3 control-label">里程:</label>
  579 + <div class="col-sm-8">
  580 + <input name="mileages" class="form-control" type="text">
  581 + </div>
  582 + </div>
  583 + <div class="form-group">
  584 + <label class="col-sm-3 control-label">百公里人次:</label>
  585 + <div class="col-sm-8">
  586 + <input name="personAvg" class="form-control" type="text">
  587 + </div>
  588 + </div>
  589 + <div class="form-group">
  590 + <label class="col-sm-3 control-label">开通日期:</label>
  591 + <div class="col-sm-8">
  592 + <div class="input-group date">
  593 + <input name="startDate" class="form-control" placeholder="yyyy-MM-dd" type="text" autocomplete="off">
  594 + <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  595 + </div>
  596 + </div>
  597 + </div>
  598 + </form>
  599 + </div>
  600 + <th:block th:include="include :: footer" />
  601 + <th:block th:include="include :: datetimepicker-js" />
  602 + <script th:inline="javascript">
  603 + var prefix = ctx + "system/lineAdd"
  604 + $("#form-line-add").validate({
  605 + rules:{
  606 + isWarrantStartTime:{
  607 + required:function (){
  608 + return $('#isWarrant').val()==='1';
  609 + },
  610 + },
  611 + isWarrantEndTime:{
  612 + required:function (){
  613 + return $('#isWarrant').val()==='1';
  614 + },
  615 + },
  616 + },
  617 + messages: {
  618 + isWarrantStartTime: {
  619 + required: "请选择日期",
  620 + },
  621 + isWarrantEndTime: {
  622 + required: "请选择日期",
  623 + }
  624 + },focusCleanup: true
  625 + });
  626 +
  627 + function submitHandler() {
  628 + if ($.validate.form()) {
  629 + $.operate.save(prefix + "/add", $('#form-line-add').serialize());
  630 + }
  631 + }
  632 +
  633 + $("input[name='warrantStartTime']").datetimepicker({
  634 + format: "yyyy-mm-dd",
  635 + minView: "month",
  636 + autoclose: true
  637 + });
  638 +
  639 + $("input[name='warrantEndTime']").datetimepicker({
  640 + format: "yyyy-mm-dd",
  641 + minView: "month",
  642 + autoclose: true
  643 + });
  644 +
  645 + $("input[name='planCancelTime']").datetimepicker({
  646 + format: "yyyy-mm-dd",
  647 + minView: "month",
  648 + autoclose: true
  649 + });
  650 +
  651 + $("input[name='cancelTime']").datetimepicker({
  652 + format: "yyyy-mm-dd",
  653 + minView: "month",
  654 + autoclose: true
  655 + });
  656 +
  657 + $("input[name='updateTime']").datetimepicker({
  658 + format: "yyyy-mm-dd",
  659 + minView: "month",
  660 + autoclose: true
  661 + });
  662 +
  663 + $("input[name='timeSchedule']").datetimepicker({
  664 + format: "yyyy-mm-dd",
  665 + minView: "month",
  666 + autoclose: true
  667 + });
  668 +
  669 + $("input[name='metroTime']").datetimepicker({
  670 + format: "yyyy-mm-dd",
  671 + minView: "month",
  672 + autoclose: true
  673 + });
  674 +
  675 + $("input[name='startDate']").datetimepicker({
  676 + format: "yyyy-mm-dd",
  677 + minView: "month",
  678 + autoclose: true
  679 + });
  680 +
  681 + $("input[name='isWarrantStartTime']").datetimepicker({
  682 + format: "yyyy-mm-dd",
  683 + minView: "month",
  684 + autoclose: true
  685 + });
  686 + $("input[name='isWarrantEndTime']").datetimepicker({
  687 + format: "yyyy-mm-dd",
  688 + minView: "month",
  689 + autoclose: true
  690 + });
  691 +
  692 + </script>
  693 +</body>
  694 +</html>
0 \ No newline at end of file 695 \ No newline at end of file
bsthLineProfiles/src/main/resources/templates/system/lineAdd/edit.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<head>
  4 +<th:block th:include="include :: header('修改【请填写功能名称】')" />
  5 +<th:block th:include="include :: datetimepicker-css" />
  6 +<th:block th:include="include :: bootstrap-fileinput-css" />
  7 +</head>
  8 +<body class="white-bg">
  9 + <div class="wrapper wrapper-content animated fadeInRight ibox-content">
  10 + <form class="form-horizontal m" id="form-line-edit"
  11 + th:object="${bsthTLine}">
  12 + <input name="id" th:field="*{id}" type="hidden">
  13 + <div class="form-group">
  14 + <label class="col-sm-3 control-label">线路名称:</label>
  15 + <div class="col-sm-8">
  16 + <input name="lineName" th:field="*{lineName}" class="form-control"
  17 + type="text">
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <label class="col-sm-3 control-label">公司:</label>
  22 + <div class="col-sm-8">
  23 + <input name="company" th:field="*{company}" class="form-control"
  24 + type="text">
  25 + </div>
  26 + </div>
  27 + <div class="form-group">
  28 + <label class="col-sm-3 control-label">分公司:</label>
  29 + <div class="col-sm-8">
  30 + <input name="fCompany" th:field="*{fCompany}" class="form-control"
  31 + type="text">
  32 + </div>
  33 + </div>
  34 + <div class="form-group">
  35 + <label class="col-sm-3 control-label">主线路id:</label>
  36 + <div class="col-sm-8">
  37 + <input name="pLineId" th:field="*{pLineId}" class="form-control"
  38 + type="text">
  39 + </div>
  40 + </div>
  41 + <div class="form-group">
  42 + <label class="col-sm-3 control-label">营运方式:</label>
  43 + <div class="col-sm-8">
  44 + <select name="serviceType"
  45 + th:with="type=${@dict.getType('serviceType')}"
  46 + class="form-control m-b">
  47 + <option value=""></option>
  48 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  49 + th:value="${dict.dictValue}"
  50 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceType== null ? '' : bsthTLine.serviceType),#strings.toString(dict.dictValue))}"></option>
  51 + </select>
  52 + </div>
  53 + </div>
  54 + <div class="form-group">
  55 + <label class="col-sm-3 control-label">线路属性:</label>
  56 + <div class="col-sm-8">
  57 + <select name="lineLevel"
  58 + th:with="type=${@dict.getType('lineLevel')}"
  59 + class="form-control m-b">
  60 + <option value=""></option>
  61 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  62 + th:value="${dict.dictValue}"
  63 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.lineLevel== null ? '' : bsthTLine.lineLevel),#strings.toString(dict.dictValue))}"></option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + <div class="form-group">
  68 + <label class="col-sm-3 control-label">线路类型:</label>
  69 + <div class="col-sm-8">
  70 + <select name="lineType" th:with="type=${@dict.getType('lineType')}"
  71 + class="form-control m-b">
  72 + <option value=""></option>
  73 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  74 + th:value="${dict.dictValue}"
  75 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.lineType== null ? '' : bsthTLine.lineType),#strings.toString(dict.dictValue))}"></option>
  76 + </select>
  77 + </div>
  78 + </div>
  79 + <div class="form-group">
  80 + <label class="col-sm-3 control-label">区属:</label>
  81 + <div class="col-sm-8">
  82 +
  83 + <select name="district" th:with="type=${@dict.getType('district')}"
  84 + class="form-control m-b">
  85 + <option value=""></option>
  86 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  87 + th:value="${dict.dictValue}"
  88 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.district== null ? '' : bsthTLine.district),#strings.toString(dict.dictValue))}"></option>
  89 + </select>
  90 + </div>
  91 + </div>
  92 + <div class="form-group">
  93 + <label class="col-sm-3 control-label">是否区内:</label>
  94 + <div class="col-sm-8">
  95 + <select name="inoutDistrict"
  96 + th:with="type=${@dict.getType('trueFalse')}"
  97 + class="form-control m-b">
  98 + <option value=""></option>
  99 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  100 + th:value="${dict.dictValue}"
  101 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.inoutDistrict== null ? '' : bsthTLine.inoutDistrict),#strings.toString(dict.dictValue))}"></option>
  102 + </select>
  103 + </div>
  104 + </div>
  105 + <div class="form-group">
  106 + <label class="col-sm-3 control-label">营运状态:</label>
  107 + <div class="col-sm-8">
  108 +
  109 + <select name="serviceState"
  110 + th:with="type=${@dict.getType('serviceState')}"
  111 + class="form-control m-b">
  112 + <option value=""></option>
  113 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  114 + th:value="${dict.dictValue}"
  115 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceState== null ? '' : bsthTLine.serviceState),#strings.toString(dict.dictValue))}"></option>
  116 + </select>
  117 + </div>
  118 + </div>
  119 + <div class="form-group">
  120 + <label class="col-sm-3 control-label">车辆类型:</label>
  121 + <div class="col-sm-8" th:with="type=${@dict.getType('busType')}">
  122 + <label class="checkbox-inline" th:each="dict : ${type}"
  123 + style="display: block"> <input type="checkbox"
  124 + name="busType"
  125 + th:checked="${#arrays.contains(#strings.arraySplit(bsthTLine.busType == null ? '' : bsthTLine.busType ,','),#strings.toString(dict.dictValue))}"
  126 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" /></label>
  127 + </div>
  128 + </div>
  129 + <div class="form-group">
  130 + <label class="col-sm-3 control-label">是否空调:</label>
  131 + <div class="col-sm-8">
  132 +
  133 + <select name="airConditionerType"
  134 + th:with="type=${@dict.getType('airConditionerType')}"
  135 + class="form-control m-b">
  136 + <option value=""></option>
  137 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  138 + th:value="${dict.dictValue}"
  139 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.airConditionerType == null ? '' : bsthTLine.airConditionerType ),#strings.toString(dict.dictValue))}"></option>
  140 + </select>
  141 + </div>
  142 + </div>
  143 + <div class="form-group">
  144 + <label class="col-sm-3 control-label">售票类型:</label>
  145 + <div class="col-sm-8">
  146 + <select name="sellTicketType"
  147 + th:with="type=${@dict.getType('sellTicketType')}"
  148 + class="form-control m-b">
  149 + <option value=""></option>
  150 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  151 + th:value="${dict.dictValue}"
  152 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.sellTicketType == null ? '' : bsthTLine.sellTicketType),#strings.toString(dict.dictValue))}"></option>
  153 + </select>
  154 + </div>
  155 + </div>
  156 + <div class="form-group">
  157 + <label class="col-sm-3 control-label">运营时间:</label>
  158 + <div class="col-sm-8">
  159 + <select name="serviceTime"
  160 + th:with="type=${@dict.getType('serviceTime')}"
  161 + class="form-control m-b">
  162 + <option value=""></option>
  163 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  164 + th:value="${dict.dictValue}"
  165 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.serviceTime== null ? '' : bsthTLine.serviceTime),#strings.toString(dict.dictValue))}"></option>
  166 + </select>
  167 + </div>
  168 + </div>
  169 + <div class="form-group">
  170 + <label class="col-sm-3 control-label">线路长度:</label>
  171 + <div class="col-sm-8">
  172 + <input name="lineDistance" th:field="*{lineDistance}"
  173 + class="form-control" type="text">
  174 + </div>
  175 + </div>
  176 + <div class="form-group">
  177 + <label class="col-sm-3 control-label">线路编码:</label>
  178 + <div class="col-sm-8">
  179 + <input name="lineCode" th:field="*{lineCode}" class="form-control"
  180 + type="text">
  181 + </div>
  182 + </div>
  183 + <div class="form-group">
  184 + <label class="col-sm-3 control-label">授权年限:</label>
  185 + <div class="col-sm-8">
  186 + <input name="warrantYear" th:field="*{warrantYear}"
  187 + class="form-control" type="text">
  188 + </div>
  189 + </div>
  190 + <div class="form-group">
  191 + <label class="col-sm-3 control-label">授权起始日期:</label>
  192 + <div class="col-sm-8">
  193 + <div class="input-group date">
  194 + <input name="warrantStartTime"
  195 + th:value="${#dates.format(bsthTLine.warrantStartTime, 'yyyy-MM-dd')}"
  196 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  197 + autocomplete="off"> <span class="input-group-addon"><i
  198 + class="fa fa-calendar"></i></span>
  199 + </div>
  200 + </div>
  201 + </div>
  202 + <div class="form-group">
  203 + <label class="col-sm-3 control-label">授权结束日期:</label>
  204 + <div class="col-sm-8">
  205 + <div class="input-group date">
  206 + <input name="warrantEndTime"
  207 + th:value="${#dates.format(bsthTLine.warrantEndTime, 'yyyy-MM-dd')}"
  208 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  209 + autocomplete="off"> <span class="input-group-addon"><i
  210 + class="fa fa-calendar"></i></span>
  211 + </div>
  212 + </div>
  213 + </div>
  214 + <div class="form-group">
  215 + <label class="col-sm-3 control-label">撤销日期:</label>
  216 + <div class="col-sm-8">
  217 + <div class="input-group date">
  218 + <input name="planCancelTime"
  219 + th:value="${#dates.format(bsthTLine.planCancelTime, 'yyyy-MM-dd')}"
  220 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  221 + autocomplete="off"> <span class="input-group-addon"><i
  222 + class="fa fa-calendar"></i></span>
  223 + </div>
  224 + </div>
  225 + </div>
  226 + <div class="form-group">
  227 + <label class="col-sm-3 control-label">实际撤销日期:</label>
  228 + <div class="col-sm-8">
  229 + <div class="input-group date">
  230 + <input name="cancelTime"
  231 + th:value="${#dates.format(bsthTLine.cancelTime, 'yyyy-MM-dd')}"
  232 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  233 + autocomplete="off"> <span class="input-group-addon"><i
  234 + class="fa fa-calendar"></i></span>
  235 + </div>
  236 + </div>
  237 + </div>
  238 + <div class="form-group">
  239 + <label class="col-sm-3 control-label">撤销原因:</label>
  240 + <div class="col-sm-8">
  241 + <textarea name="cancelReason" class="form-control">[[*{cancelReason}]]</textarea>
  242 + </div>
  243 + </div>
  244 + <div class="form-group">
  245 + <label class="col-sm-3 control-label">备注:</label>
  246 + <div class="col-sm-8">
  247 + <textarea name="remark" class="form-control">[[*{remark}]]</textarea>
  248 + </div>
  249 + </div>
  250 + <div class="form-group">
  251 + <label class="col-sm-3 control-label">是否逻辑删除:</label>
  252 + <div class="col-sm-8">
  253 +
  254 + <select name="isLogicDelete"
  255 + th:with="type=${@dict.getType('trueFalse')}"
  256 + class="form-control m-b">
  257 + <option value=""></option>
  258 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  259 + th:value="${dict.dictValue}"
  260 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isLogicDelete== null ? '' : bsthTLine.isLogicDelete),#strings.toString(dict.dictValue))}"></option>
  261 + </select>
  262 + </div>
  263 + </div>
  264 + <div class="form-group">
  265 + <label class="col-sm-3 control-label">行车作业计划表报备时间:</label>
  266 + <div class="col-sm-8">
  267 + <div class="input-group date">
  268 + <input name="timeSchedule"
  269 + th:value="${#dates.format(bsthTLine.timeSchedule, 'yyyy-MM-dd')}"
  270 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  271 + autocomplete="off"> <span class="input-group-addon"><i
  272 + class="fa fa-calendar"></i></span>
  273 + </div>
  274 + </div>
  275 + </div>
  276 + <div class="form-group">
  277 + <label class="col-sm-3 control-label">停车场:</label>
  278 + <div class="col-sm-8">
  279 + <input name="park" th:field="*{park}" class="form-control"
  280 + type="text">
  281 + </div>
  282 + </div>
  283 + <div class="form-group">
  284 + <label class="col-sm-3 control-label">是否权证:</label>
  285 + <div class="col-sm-8">
  286 + <select name="isWarrant" id="isWarrant"
  287 + th:with="type=${@dict.getType('trueFalse')}"
  288 + class="form-control m-b">
  289 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  290 + th:value="${dict.dictValue}"
  291 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isWarrant== null ? '' : bsthTLine.isWarrant),#strings.toString(dict.dictValue))}"></option>
  292 + </select>
  293 + </div>
  294 + </div>
  295 + <div class="form-group">
  296 + <label class="col-sm-3 control-label">权证开通日期:</label>
  297 + <div class="col-sm-8">
  298 + <div class="input-group date">
  299 + <input name="isWarrantStartTime" id="isWarrantStartTime"
  300 + th:value="${#dates.format(bsthTLine.isWarrantStartTime, 'yyyy-MM-dd')}"
  301 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  302 + autocomplete="off"> <span class="input-group-addon"><i
  303 + class="fa fa-calendar"></i></span>
  304 + </div>
  305 +
  306 + </div>
  307 + </div>
  308 + <div class="form-group">
  309 + <label class="col-sm-3 control-label">权证到期日期:</label>
  310 + <div class="col-sm-8">
  311 + <div class="input-group date">
  312 + <input name="isWarrantEndTime" id="isWarrantEndTime"
  313 + th:value="${#dates.format(bsthTLine.isWarrantEndTime, 'yyyy-MM-dd')}"
  314 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  315 + autocomplete="off"> <span class="input-group-addon"><i
  316 + class="fa fa-calendar"></i></span>
  317 + </div>
  318 +
  319 + </div>
  320 + </div>
  321 + <div class="form-group">
  322 + <label class="col-sm-3 control-label">道路类型:</label>
  323 + <div class="col-sm-8">
  324 + <div class="col-sm-8" th:with="type=${@dict.getType('roadType')}">
  325 + <label class="checkbox-inline" th:each="dict : ${type}"
  326 + style="display: block"> <input type="checkbox"
  327 + name="roadType"
  328 + th:checked="${#arrays.contains(#strings.arraySplit(bsthTLine.roadType == null ? '' : bsthTLine.roadType ,','),#strings.toString(dict.dictValue))}"
  329 + th:text="${dict.dictLabel}" th:value="${dict.dictValue}" /></label>
  330 + </div>
  331 + </div>
  332 + </div>
  333 + <div class="form-group">
  334 + <label class="col-sm-3 control-label">票价(多级票价用 - 隔开):</label>
  335 + <div class="col-sm-8">
  336 + <input name="ticketPrice" th:field="*{ticketPrice}"
  337 + class="form-control" type="text">
  338 + </div>
  339 + </div>
  340 + <div class="form-group">
  341 + <label class="col-sm-3 control-label">首站:</label>
  342 + <div class="col-sm-8">
  343 + <input name="firstStation" th:field="*{firstStation}"
  344 + class="form-control" type="text">
  345 + </div>
  346 + </div>
  347 + <div class="form-group">
  348 + <label class="col-sm-3 control-label">起讫站:</label>
  349 + <div class="col-sm-8">
  350 + <input name="startEnd" th:field="*{startEnd}" class="form-control"
  351 + type="text">
  352 + </div>
  353 + </div>
  354 + <div class="form-group">
  355 + <label class="col-sm-3 control-label">首战时间:</label>
  356 + <div class="col-sm-8">
  357 + <input name="firstTime" th:field="*{firstTime}"
  358 + class="form-control" type="text">
  359 + </div>
  360 + </div>
  361 + <div class="form-group">
  362 + <label class="col-sm-3 control-label">末站:</label>
  363 + <div class="col-sm-8">
  364 + <input name="lastStation" th:field="*{lastStation}"
  365 + class="form-control" type="text">
  366 + </div>
  367 + </div>
  368 + <div class="form-group">
  369 + <label class="col-sm-3 control-label">末站首战时间:</label>
  370 + <div class="col-sm-8">
  371 + <input name="lastTime" th:field="*{lastTime}" class="form-control"
  372 + type="text">
  373 + </div>
  374 + </div>
  375 + <div class="form-group">
  376 + <label class="col-sm-3 control-label">上行里程数:</label>
  377 + <div class="col-sm-8">
  378 + <input name="mileageUp" th:field="*{mileageUp}"
  379 + class="form-control" type="text">
  380 + </div>
  381 + </div>
  382 + <div class="form-group">
  383 + <label class="col-sm-3 control-label">下行里程数:</label>
  384 + <div class="col-sm-8">
  385 + <input name="mileageDown" th:field="*{mileageDown}"
  386 + class="form-control" type="text">
  387 + </div>
  388 + </div>
  389 + <div class="form-group">
  390 + <label class="col-sm-3 control-label">平均里程数:</label>
  391 + <div class="col-sm-8">
  392 + <input name="averageMileage" th:field="*{averageMileage}"
  393 + class="form-control" type="text">
  394 + </div>
  395 + </div>
  396 + <div class="form-group">
  397 + <label class="col-sm-3 control-label">站级数(上行):</label>
  398 + <div class="col-sm-8">
  399 + <input name="stationUp" th:field="*{stationUp}"
  400 + class="form-control" type="text">
  401 + </div>
  402 + </div>
  403 + <div class="form-group">
  404 + <label class="col-sm-3 control-label">站级数(下行):</label>
  405 + <div class="col-sm-8">
  406 + <input name="stationDown" th:field="*{stationDown}"
  407 + class="form-control" type="text">
  408 + </div>
  409 + </div>
  410 + <div class="form-group">
  411 + <label class="col-sm-3 control-label">行驶时间(上行):</label>
  412 + <div class="col-sm-8">
  413 + <input name="travelTimeUp" th:field="*{travelTimeUp}"
  414 + class="form-control" type="text">
  415 + </div>
  416 + </div>
  417 + <div class="form-group">
  418 + <label class="col-sm-3 control-label">行驶时间(下行):</label>
  419 + <div class="col-sm-8">
  420 + <input name="travelTimeDown" th:field="*{travelTimeDown}"
  421 + class="form-control" type="text">
  422 + </div>
  423 + </div>
  424 + <div class="form-group">
  425 + <label class="col-sm-3 control-label">行驶间隔(高峰):</label>
  426 + <div class="col-sm-8">
  427 + <input name="travelIntervalUp" th:field="*{travelIntervalUp}"
  428 + class="form-control" type="text">
  429 + </div>
  430 + </div>
  431 + <div class="form-group">
  432 + <label class="col-sm-3 control-label">行驶间隔(低谷):</label>
  433 + <div class="col-sm-8">
  434 + <input name="travelIntervalDown" th:field="*{travelIntervalDown}"
  435 + class="form-control" type="text">
  436 + </div>
  437 + </div>
  438 + <div class="form-group">
  439 + <label class="col-sm-3 control-label">经营权证(大巴):</label>
  440 + <div class="col-sm-8">
  441 + <input name="warrantVehiclesLarge"
  442 + th:field="*{warrantVehiclesLarge}" class="form-control"
  443 + type="text">
  444 + </div>
  445 + </div>
  446 + <div class="form-group">
  447 + <label class="col-sm-3 control-label">经营权证(中巴):</label>
  448 + <div class="col-sm-8">
  449 + <input name="warrantVehiclesMiddle"
  450 + th:field="*{warrantVehiclesMiddle}" class="form-control"
  451 + type="text">
  452 + </div>
  453 + </div>
  454 + <div class="form-group">
  455 + <label class="col-sm-3 control-label">实际配车数:</label>
  456 + <div class="col-sm-8">
  457 + <input name="vehiclesNumber" th:field="*{vehiclesNumber}"
  458 + class="form-control" type="text">
  459 + </div>
  460 + </div>
  461 + <div class="form-group">
  462 + <label class="col-sm-3 control-label">实际车辆数(大巴):</label>
  463 + <div class="col-sm-8">
  464 + <input name="numberVehiclesLarge" th:field="*{numberVehiclesLarge}"
  465 + class="form-control" type="text">
  466 + </div>
  467 + </div>
  468 + <div class="form-group">
  469 + <label class="col-sm-3 control-label">实际车辆数(中巴):</label>
  470 + <div class="col-sm-8">
  471 + <input name="numberVehiclesMiddle"
  472 + th:field="*{numberVehiclesMiddle}" class="form-control"
  473 + type="text">
  474 + </div>
  475 + </div>
  476 + <div class="form-group">
  477 + <label class="col-sm-3 control-label">车辆自编号:</label>
  478 + <div class="col-sm-8">
  479 + <input name="carPlate" th:field="*{carPlate}" class="form-control"
  480 + type="text">
  481 + </div>
  482 + </div>
  483 + <div class="form-group">
  484 + <label class="col-sm-3 control-label">线路总配人数:</label>
  485 + <div class="col-sm-8">
  486 + <input name="numberPerson" th:field="*{numberPerson}"
  487 + class="form-control" type="text">
  488 + </div>
  489 + </div>
  490 + <div class="form-group">
  491 + <label class="col-sm-3 control-label">人数司机:</label>
  492 + <div class="col-sm-8">
  493 + <input name="numberPersonDriver" th:field="*{numberPersonDriver}"
  494 + class="form-control" type="text">
  495 + </div>
  496 + </div>
  497 + <div class="form-group">
  498 + <label class="col-sm-3 control-label">售票员数:</label>
  499 + <div class="col-sm-8">
  500 + <input name="numberPersonSales" th:field="*{numberPersonSales}"
  501 + class="form-control" type="text">
  502 + </div>
  503 + </div>
  504 + <div class="form-group">
  505 + <label class="col-sm-3 control-label">新能源车数:</label>
  506 + <div class="col-sm-8">
  507 + <input name="busEvNumber" th:field="*{busEvNumber}"
  508 + class="form-control" type="text">
  509 + </div>
  510 + </div>
  511 + <div class="form-group">
  512 + <label class="col-sm-3 control-label">线路走向:</label>
  513 + <div class="col-sm-8">
  514 + <textarea name="directions" class="form-control">[[*{directions}]]</textarea>
  515 + </div>
  516 + </div>
  517 + <div class="form-group">
  518 + <label class="col-sm-3 control-label">经营权证数:</label>
  519 + <div class="col-sm-8">
  520 + <input name="numberOfManage" th:field="*{numberOfManage}"
  521 + class="form-control" type="text">
  522 + </div>
  523 + </div>
  524 + <div class="form-group">
  525 + <label class="col-sm-3 control-label">站点名称:</label>
  526 + <div class="col-sm-8">
  527 + <textarea name="halfwayStation" class="form-control">[[*{halfwayStation}]]</textarea>
  528 + </div>
  529 + </div>
  530 + <div class="form-group">
  531 + <label class="col-sm-3 control-label">高峰系数:</label>
  532 + <div class="col-sm-8">
  533 + <input name="fullCustomerPercent" th:field="*{fullCustomerPercent}"
  534 + class="form-control" type="text">
  535 + </div>
  536 + </div>
  537 + <div class="form-group">
  538 + <label class="col-sm-3 control-label">低谷系数:</label>
  539 + <div class="col-sm-8">
  540 + <input name="lowCustomerPercent" th:field="*{lowCustomerPercent}"
  541 + class="form-control" type="text">
  542 + </div>
  543 + </div>
  544 + <div class="form-group">
  545 + <label class="col-sm-3 control-label">间隔等级:</label>
  546 + <div class="col-sm-8">
  547 + <input name="divideLevel" th:field="*{divideLevel}"
  548 + class="form-control" type="text">
  549 + </div>
  550 + </div>
  551 + <div class="form-group">
  552 + <label class="col-sm-3 control-label">是否挂牌:</label>
  553 + <div class="col-sm-8">
  554 + <select name="hasTimelists"
  555 + th:with="type=${@dict.getType('trueFalse')}"
  556 + class="form-control m-b">
  557 + <option value=""></option>
  558 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  559 + th:value="${dict.dictValue}"
  560 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.hasTimelists== null ? '' : bsthTLine.hasTimelists),#strings.toString(dict.dictValue))}"></option>
  561 + </select>
  562 + </div>
  563 + </div>
  564 + <div class="form-group">
  565 + <label class="col-sm-3 control-label">是否轨交末班车衔接:</label>
  566 + <div class="col-sm-8">
  567 + <select name="isMetro" th:with="type=${@dict.getType('trueFalse')}"
  568 + class="form-control m-b">
  569 + <option value=""></option>
  570 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  571 + th:value="${dict.dictValue}"
  572 + th:selected="${#arrays.contains(#strings.toString(bsthTLine.isMetro== null ? '' : bsthTLine.isMetro),#strings.toString(dict.dictValue))}"></option>
  573 + </select>
  574 + </div>
  575 + </div>
  576 + <div class="form-group">
  577 + <label class="col-sm-3 control-label">轨交时间:</label>
  578 + <div class="col-sm-8">
  579 + <div class="input-group date">
  580 + <input name="metroTime" class="form-control"
  581 + placeholder="HH:mm:ss" th:value="*{metroTime}"> <span
  582 + class="input-group-addon"><i class="fa fa-calendar"></i></span>
  583 + </div>
  584 + </div>
  585 + </div>
  586 + <div class="form-group">
  587 + <label class="col-sm-3 control-label">冷僻线路补贴类型:</label>
  588 + <div class="col-sm-8">
  589 + <input name="coldBonusType" th:field="*{coldBonusType}"
  590 + class="form-control" type="text">
  591 + </div>
  592 + </div>
  593 + <div class="form-group">
  594 + <label class="col-sm-3 control-label">月度营收:</label>
  595 + <div class="col-sm-8">
  596 + <input name="revenuesMonth" th:field="*{revenuesMonth}"
  597 + class="form-control" type="text">
  598 + </div>
  599 + </div>
  600 + <div class="form-group">
  601 + <label class="col-sm-3 control-label">月度人次:</label>
  602 + <div class="col-sm-8">
  603 + <input name="personMonth" th:field="*{personMonth}"
  604 + class="form-control" type="text">
  605 + </div>
  606 + </div>
  607 + <div class="form-group">
  608 + <label class="col-sm-3 control-label">月度里程:</label>
  609 + <div class="col-sm-8">
  610 + <input name="mileageMonth" th:field="*{mileageMonth}"
  611 + class="form-control" type="text">
  612 + </div>
  613 + </div>
  614 + <div class="form-group">
  615 + <label class="col-sm-3 control-label">百公里人次:</label>
  616 + <div class="col-sm-8">
  617 + <input name="personMonthAvg" th:field="*{personMonthAvg}"
  618 + class="form-control" type="text">
  619 + </div>
  620 + </div>
  621 + <div class="form-group">
  622 + <label class="col-sm-3 control-label">营收:</label>
  623 + <div class="col-sm-8">
  624 + <input name="revenues" th:field="*{revenues}" class="form-control"
  625 + type="text">
  626 + </div>
  627 + </div>
  628 + <div class="form-group">
  629 + <label class="col-sm-3 control-label">人次:</label>
  630 + <div class="col-sm-8">
  631 + <input name="persons" th:field="*{persons}" class="form-control"
  632 + type="text">
  633 + </div>
  634 + </div>
  635 + <div class="form-group">
  636 + <label class="col-sm-3 control-label">里程:</label>
  637 + <div class="col-sm-8">
  638 + <input name="mileages" th:field="*{mileages}" class="form-control"
  639 + type="text">
  640 + </div>
  641 + </div>
  642 + <div class="form-group">
  643 + <label class="col-sm-3 control-label">百公里人次:</label>
  644 + <div class="col-sm-8">
  645 + <input name="personAvg" th:field="*{personAvg}"
  646 + class="form-control" type="text">
  647 + </div>
  648 + </div>
  649 +
  650 + <div class="form-group">
  651 + <label class="col-sm-3 control-label">启用时间:</label>
  652 + <div class="col-sm-8">
  653 + <div class="input-group date">
  654 + <input name="startDate"
  655 + th:value="${#dates.format(bsthTLine.startDate, 'yyyy-MM-dd')}"
  656 + class="form-control" placeholder="yyyy-MM-dd" type="text"
  657 + autocomplete="off"> <span class="input-group-addon"><i
  658 + class="fa fa-calendar"></i></span>
  659 + </div>
  660 +
  661 + </div>
  662 + </div>
  663 + <div class="form-group">
  664 + <label class="col-sm-3 control-label">性质:</label>
  665 + <div class="col-sm-8">
  666 + <select name="lineUpdateType"
  667 + th:with="type=${@dict.getType('lineUpdateType')}"
  668 + class="form-control m-b">
  669 + <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
  670 + th:value="${dict.dictValue}"></option>
  671 + </select>
  672 + </div>
  673 + </div>
  674 + <div class="form-group">
  675 + <label class="col-sm-3 control-label">启用原因:</label>
  676 + <div class="col-sm-8">
  677 + <textarea name="startReason" class="form-control"></textarea>
  678 + </div>
  679 + </div>
  680 + <div class="form-group">
  681 + <label class="col-sm-3 control-label">附件:</label>
  682 + <div class="col-sm-8">
  683 + <div th:each="path: ${#strings.arraySplit(bsthTLine.files,',')}">
  684 + <input name="files" type="hidden" th:value="${path}">
  685 + <a th:href="${#strings.replace(path,#strings.arraySplit(path,':')[0]+':','')}" th:text="${#strings.arraySplit(path,':')[0]}">
  686 + </a>
  687 + <button onclick="deleteFile(this);">删除</button>
  688 + </div>
  689 + <div class="file-loading" id="uploadDiv">
  690 + <input id="fileinput" type="file" multiple>
  691 + </div>
  692 + </div>
  693 + </div>
  694 + </form>
  695 + </div>
  696 + <th:block th:include="include :: footer" />
  697 + <th:block th:include="include :: datetimepicker-js" />
  698 + <th:block th:include="include :: bootstrap-fileinput-js" />
  699 + <script th:inline="javascript">
  700 + var prefix = ctx + "system/lineAdd";
  701 + function deleteFile(obj){
  702 + $(obj).parent().remove();
  703 + }
  704 +
  705 + $(function() {
  706 +
  707 + $("#fileinput").fileinput({
  708 + 'theme' : 'explorer-fas',
  709 + 'uploadUrl' : '/common/upload',
  710 + overwriteInitial : false,
  711 + initialPreviewAsData : false
  712 + });
  713 +
  714 + $("#fileinput").on("fileuploaded",
  715 + function(event, data, proviewId, index) {
  716 +
  717 +
  718 + var obj = '<div><input name="files" type="hidden" value='+data.files[index].name + ':' + data.response.url + '>'+
  719 + '<a href='+data.response.url+'>'+ data.files[index].name +
  720 + '</a><button onclick="deleteFile(this);">删除</button></div>';
  721 +
  722 +
  723 + $(".file-input").before(obj);
  724 +
  725 + });
  726 +
  727 + /*$.get("/system/line/getUserLineInfo",
  728 + function(data) {
  729 + if (data.msg != null) {
  730 + var objs = JSON.parse(data.msg);
  731 +
  732 + for (var i = 0; i < objs.length; i++) {
  733 +
  734 + if ($($("input[name=" + objs[i].name
  735 + + "]"))) {
  736 + if (objs[i].checked) {
  737 + getParent(
  738 + $($("input[name="
  739 + + objs[i].name
  740 + + "]")),
  741 + "form-group").show();
  742 + } else {
  743 + getParent(
  744 + $($("input[name="
  745 + + objs[i].name
  746 + + "]")),
  747 + "form-group").hide();
  748 + }
  749 + }
  750 +
  751 + if ($($("select[name=" + objs[i].name
  752 + + "]"))) {
  753 + if (objs[i].checked) {
  754 + getParent(
  755 + $($("select[name="
  756 + + objs[i].name
  757 + + "]")),
  758 + "form-group").show();
  759 + } else {
  760 + getParent(
  761 + $($("select[name="
  762 + + objs[i].name
  763 + + "]")),
  764 + "form-group").hide();
  765 + }
  766 + }
  767 +
  768 + if ($($("textarea[name=" + objs[i].name
  769 + + "]"))) {
  770 + if (objs[i].checked) {
  771 + getParent(
  772 + $($("textarea[name="
  773 + + objs[i].name
  774 + + "]")),
  775 + "form-group").show();
  776 + } else {
  777 + getParent(
  778 + $($("textarea[name="
  779 + + objs[i].name
  780 + + "]")),
  781 + "form-group").hide();
  782 + }
  783 + }
  784 +
  785 + }
  786 + }
  787 + });*/
  788 + })
  789 +
  790 + function getParent(obj, className) {
  791 + var parent = obj;
  792 +
  793 + while (parent[0] && parent[0].className != className) {
  794 + parent = parent.parent();
  795 + }
  796 +
  797 + return parent;
  798 + }
  799 +
  800 + $("#form-line-edit").validate({
  801 + rules:{
  802 + isWarrantStartTime:{
  803 + required:function (){
  804 + return $('#isWarrant').val()==='1';
  805 + },
  806 + },
  807 + isWarrantEndTime:{
  808 + required:function (){
  809 + return $('#isWarrant').val()==='1';
  810 + },
  811 + },
  812 + },
  813 + messages: {
  814 + isWarrantStartTime: {
  815 + required: "请选择日期",
  816 + },
  817 + isWarrantEndTime: {
  818 + required: "请选择日期",
  819 + }
  820 + },
  821 + focusCleanup : true
  822 + });
  823 +
  824 + function submitHandler() {
  825 + console.log($("input[name='startDate']").val());
  826 + console.log($("select[name='lineUpdateType']").val());
  827 +
  828 + if ($("input[name='startDate']").val()
  829 + && $("select[name='lineUpdateType']").val() == "") {
  830 + $.modal.msg("未选择线路性质");
  831 + return;
  832 + }
  833 +
  834 + if ($.validate.form()) {
  835 + $.operate.save(prefix + "/edit", $('#form-line-edit')
  836 + .serialize());
  837 + }
  838 + }
  839 +
  840 + $("input[name='warrantStartTime']").datetimepicker({
  841 + format : "yyyy-mm-dd",
  842 + minView : "month",
  843 + autoclose : true
  844 + });
  845 +
  846 + $("input[name='warrantEndTime']").datetimepicker({
  847 + format : "yyyy-mm-dd",
  848 + minView : "month",
  849 + autoclose : true
  850 + });
  851 +
  852 + $("input[name='planCancelTime']").datetimepicker({
  853 + format : "yyyy-mm-dd",
  854 + minView : "month",
  855 + autoclose : true
  856 + });
  857 +
  858 + $("input[name='cancelTime']").datetimepicker({
  859 + format : "yyyy-mm-dd",
  860 + minView : "month",
  861 + autoclose : true
  862 + });
  863 +
  864 + $("input[name='updateTime']").datetimepicker({
  865 + format : "yyyy-mm-dd",
  866 + minView : "month",
  867 + autoclose : true
  868 + });
  869 +
  870 + $("input[name='timeSchedule']").datetimepicker({
  871 + format : "yyyy-mm-dd",
  872 + minView : "month",
  873 + autoclose : true
  874 + });
  875 +
  876 + $("input[name='startDate']").datetimepicker({
  877 + format : "yyyy-mm-dd",
  878 + minView : "month",
  879 + autoclose : true
  880 + });
  881 +
  882 + $("input[name='isWarrantStartTime']").datetimepicker({
  883 + format : "yyyy-mm-dd",
  884 + minView : "month",
  885 + autoclose : true
  886 + });
  887 +
  888 + $("input[name='isWarrantEndTime']").datetimepicker({
  889 + format : "yyyy-mm-dd",
  890 + minView : "month",
  891 + autoclose : true
  892 + });
  893 +
  894 + </script>
  895 +</body>
  896 +</html>
0 \ No newline at end of file 897 \ No newline at end of file
bsthLineProfiles/src/main/resources/templates/system/lineAdd/line.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org"
  3 + xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  4 +<head>
  5 +<th:block th:include="include :: header('线路档案信息')" />
  6 +</head>
  7 +<body class="gray-bg">
  8 + <div class="container-div" id="context">
  9 + <div class="row">
  10 + <div class="col-sm-12 search-collapse">
  11 + <form id="formId">
  12 + <div class="select-list">
  13 + <ul>
  14 + <li><label>公司:</label> <input type="text" name="company" />
  15 + </li>
  16 + <li><label>分公司:</label> <input type="text" name="fCompany" />
  17 + </li>
  18 + <li><label>线路名称:</label> <input type="text" name="lineName" />
  19 + </li>
  20 + <li>
  21 + <el-button size="mini" type="primary" icon="el-icon-search" onClick="$.table.search();">搜索</el-button>
  22 + <el-button size="mini" icon="el-icon-refresh" onClick="$.form.reset();">重置</el-button>
  23 + </li>
  24 + </ul>
  25 +
  26 + </div>
  27 + </form>
  28 + </div>
  29 +
  30 + <div class="btn-group-sm" id="toolbar" role="group">
  31 +
  32 + <el-button plain size="mini" type="primary" icon="el-icon-plus" onClick="add(this);" shiro:hasPermission="system:line:add">新增</el-button>
  33 +
  34 + </div>
  35 +
  36 + <div class="col-sm-12 select-table table-striped">
  37 + <table id="bootstrap-table"></table>
  38 + </div>
  39 + </div>
  40 + </div>
  41 + <th:block th:include="include :: footer" />
  42 + <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
  43 + aria-labelledby="myModalLabel" aria-hidden="true">
  44 + <div class="modal-dialog">
  45 + <div class="modal-content">
  46 + <div class="modal-header">
  47 + <button type="button" class="close" data-dismiss="modal"
  48 + aria-hidden="true">&times;</button>
  49 + <h4 class="modal-title" id="myModalLabel">选择显示的列</h4>
  50 + </div>
  51 + <div class="modal-body" id="cols" style="float: left;">
  52 + <input type="checkbox" onClick="checkAll(this);" id="checkboxForAll"/><label>全选</label><br />
  53 + <br />
  54 +
  55 + </div>
  56 + <div class="modal-footer">
  57 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  58 + <button type="button" class="btn btn-primary" data-dismiss="modal" onClick="initTable();">提交更改</button>
  59 + </div>
  60 + </div>
  61 + <!-- /.modal-content -->
  62 + </div>
  63 + <!-- /.modal -->
  64 + </div>
  65 +
  66 +
  67 +
  68 + <script th:inline="javascript">
  69 +
  70 + function add(obj){
  71 + if($(obj)[0].className.indexOf("disabled") == -1)
  72 + $.operate.add();
  73 + }
  74 +
  75 + new Vue({
  76 + el: '#context',
  77 + data: function() {
  78 + return { visible: false }
  79 + }
  80 + })
  81 + var dicts = [[${@dict.getType('')}]];
  82 +
  83 + function queryParams(params) {
  84 + var search = $.table.queryParams(params);
  85 + search.examineStatus ='true';
  86 + search.examineType='0';
  87 + return search;
  88 + }
  89 +
  90 + function createTable(objs){
  91 + var options = {
  92 + url: prefix + "/list",
  93 + createUrl: prefix + "/add",
  94 + updateUrl: prefix + "/edit/{id}",
  95 + removeUrl: prefix + "/remove",
  96 + queryParams: queryParams,
  97 + modalName: "线路档案信息",
  98 + columns: [],
  99 + onDblClickRow:function (row,index){
  100 + edit(row.id);
  101 + }
  102 + };
  103 +
  104 +
  105 + if(objs.length > 0){
  106 + options.columns[0] = {checkbox:true};
  107 + options.columns[1] = {visible:false,field:"id"};
  108 + }
  109 +
  110 + for(var i = 0;i< objs.length;i++){
  111 +
  112 + if(!objs)continue;
  113 +
  114 + var col = {
  115 + field: objs[i].field,
  116 + title: objs[i].title,
  117 + align: 'center',
  118 + formatter: function(value, row, index) {
  119 +
  120 +
  121 + if(this.field == "roadType" || this.field == "busType"){
  122 + if(value != null){
  123 +
  124 + var arr = value.split(",");
  125 + value = "";
  126 + for(var i in arr){
  127 +
  128 + for(var j in dicts[this.field]){
  129 + if(dicts[this.field][j].dictValue == arr[i]){
  130 + value += dicts[this.field][j].dictLabel + ","
  131 + break;
  132 + }
  133 + }
  134 +
  135 + }
  136 + return $.table.tooltip(value.substring(0,value.length -1), 5);
  137 + }
  138 + }
  139 +
  140 + if(this.field == "isLogicDelete" || this.field == "inoutDistrict"|| this.field == "isMetro" || this.field == "hasTimelists"){
  141 + for(var j in dicts["trueFalse"]){
  142 + if(dicts["trueFalse"][j].dictValue == value){
  143 + value = dicts["trueFalse"][j].dictLabel;
  144 + break;
  145 + }
  146 + }
  147 + }
  148 +
  149 +
  150 +
  151 + if(dicts[this.field]){
  152 + for(var j in dicts[this.field]){
  153 + if(dicts[this.field][j].dictValue == value){
  154 + value = dicts[this.field][j].dictLabel;
  155 + break;
  156 + }
  157 + }
  158 + }
  159 +
  160 + return $.table.tooltip(value, 5);
  161 + }
  162 + }
  163 +
  164 + options.columns.push(col);
  165 +
  166 + }
  167 +
  168 + $.table.init(options);
  169 +
  170 +
  171 + }
  172 +
  173 + function checkAll(obj){
  174 + var objs = $("#cols input");
  175 +
  176 + if(obj.checked == false){
  177 + for(var i in objs){
  178 + objs[i].checked = false;
  179 + }
  180 + }else{
  181 + for(var i in objs){
  182 + objs[i].checked = true;
  183 + }
  184 + }
  185 + }
  186 +
  187 +
  188 + var editFlag = [[${@permission.hasPermi('system:lineReport:edit')}]];
  189 + var removeFlag = [[${@permission.hasPermi('system:lineReport:remove')}]];
  190 + var prefix = ctx + "system/lineAdd";
  191 +
  192 + $(function() {
  193 +
  194 +
  195 +
  196 +
  197 + var allDicts = {};
  198 +
  199 + for(var i in dicts){
  200 + if(!allDicts[dicts[i].dictType]){
  201 + allDicts[dicts[i].dictType] = [];
  202 + }
  203 + allDicts[dicts[i].dictType].push(dicts[i]);
  204 + }
  205 +
  206 + dicts = allDicts;
  207 +
  208 +
  209 + var cols = [{
  210 + field: 'lineName',
  211 + title: '线路名称',
  212 + },
  213 + {
  214 + field: 'company',
  215 + title: '公司'
  216 + },
  217 + {
  218 + field: 'fCompany',
  219 + title: '分公司'
  220 + },
  221 + {
  222 + field: 'pLineId',
  223 + title: '主线路id'
  224 + },
  225 + {
  226 + field: 'serviceType',
  227 + title: '营运方式'
  228 + },
  229 + {
  230 + field: 'lineLevel',
  231 + title: '线路属性'
  232 + },
  233 + {
  234 + field: 'lineType',
  235 + title: '线路属性'
  236 + },
  237 + {
  238 + field: 'district',
  239 + title: '区属'
  240 + },
  241 + {
  242 + field: 'inoutDistrict',
  243 + title: '是否区内'
  244 + },
  245 + {
  246 + field: 'serviceState',
  247 + title: '营运状态'
  248 + },
  249 + {
  250 + field: 'busType',
  251 + title: '车辆类型'
  252 + },
  253 + {
  254 + field: 'airConditionerType',
  255 + title: '是否空调'
  256 + },
  257 + {
  258 + field: 'sellTicketType',
  259 + title: '售票类型'
  260 + },
  261 + {
  262 + field: 'serviceTime',
  263 + title: '运营时间'
  264 + },
  265 + {
  266 + field: 'lineDistance',
  267 + title: '线路长度'
  268 + },
  269 + {
  270 + field: 'lineCode',
  271 + title: '线路编码'
  272 + },
  273 + {
  274 + field: 'warrantYear',
  275 + title: '授权年限'
  276 + },
  277 + {
  278 + field: 'warrantStartTime',
  279 + title: '授权起始日期'
  280 + },
  281 + {
  282 + field: 'warrantEndTime',
  283 + title: '授权结束日期'
  284 + },
  285 + {
  286 + field: 'planCancelTime',
  287 + title: '撤销日期'
  288 + },
  289 + {
  290 + field: 'cancelTime',
  291 + title: '实际撤销日期'
  292 + },
  293 + {
  294 + field: 'cancelReason',
  295 + title: '撤销原因'
  296 + },
  297 + {
  298 + field: 'remark',
  299 + title: '备注'
  300 + },
  301 + {
  302 + field: 'isLogicDelete',
  303 + title: '是否逻辑删除'
  304 + },
  305 + {
  306 + field: 'updateBy',
  307 + title: '更新人'
  308 + },
  309 + {
  310 + field: 'updateTime',
  311 + title: '更新时间'
  312 + },
  313 + {
  314 + field: 'timeSchedule',
  315 + title: '行车作业计划表报备时间'
  316 + },
  317 + {
  318 + field: 'park',
  319 + title: '停车场'
  320 + },
  321 + {
  322 + field: 'isWarrant',
  323 + title: '是否权证'
  324 + },
  325 + {
  326 + field: 'isWarrantStartTime',
  327 + title: '权证开通日期'
  328 + },
  329 + {
  330 + field: 'isWarrantEndTime',
  331 + title: '权证到期日期'
  332 + },
  333 + {
  334 + field: 'roadType',
  335 + title: '道路类型'
  336 + },
  337 + {
  338 + field: 'ticketPrice',
  339 + title: '票价'
  340 + },
  341 + {
  342 + field: 'firstStation',
  343 + title: '首站'
  344 + },
  345 + {
  346 + field: 'startEnd',
  347 + title: '起讫站'
  348 + },
  349 + {
  350 + field: 'firstTime',
  351 + title: '首战时间'
  352 + },
  353 + {
  354 + field: 'lastStation',
  355 + title: '末站'
  356 + },
  357 + {
  358 + field: 'lastTime',
  359 + title: '末站首战时间'
  360 + },
  361 + {
  362 + field: 'mileageUp',
  363 + title: '上行里程数'
  364 + },
  365 + {
  366 + field: 'mileageDown',
  367 + title: '下行里程数'
  368 + },
  369 + {
  370 + field: 'averageMileage',
  371 + title: '平均里程数'
  372 + },
  373 + {
  374 + field: 'stationUp',
  375 + title: '站级数(上行)'
  376 + },
  377 + {
  378 + field: 'stationDown',
  379 + title: '站级数(下行)'
  380 + },{
  381 + field: 'travelTimeUp',
  382 + title: '行驶时间(上行)'
  383 + },{
  384 + field: 'travelTimeDown',
  385 + title: '行驶时间(下行)'
  386 + },{
  387 + field: 'travelIntervalUp',
  388 + title: '行驶间隔(高峰)'
  389 + },{
  390 + field: 'travelIntervalDown',
  391 + title: '行驶间隔(低谷)'
  392 + },{
  393 + field: 'warrantVehiclesLarge',
  394 + title: '经营权证(大巴)'
  395 + }, {
  396 + field: 'warrantVehiclesMiddle',
  397 + title: '经营权证(中巴)'
  398 + },{
  399 + field: 'vehiclesNumber',
  400 + title: '实际配车数'
  401 + }, {
  402 + field: 'numberVehiclesLarge',
  403 + title: '实际车辆数(大巴)'
  404 + }, {
  405 + field: 'numberVehiclesMiddle',
  406 + title: '实际车辆数(中巴)'
  407 + },{
  408 + field: 'carPlate',
  409 + title: '车辆自编号'
  410 + },{
  411 + field: 'numberPerson',
  412 + title: '线路总配人数'
  413 + },{
  414 + field: 'numberPersonDriver',
  415 + title: '人数司机'
  416 + }, {
  417 + field: 'numberPersonSales',
  418 + title: '售票员数'
  419 + },{
  420 + field: 'busEvNumber',
  421 + title: '新能源车数'
  422 + },{
  423 + field: 'directions',
  424 + title: '线路走向'
  425 + },{
  426 + field: 'numberOfManage',
  427 + title: '经营权证数'
  428 + },{
  429 + field: 'halfwayStation',
  430 + title: '站点名称'
  431 + },{
  432 + field: 'fullCustomerPercent',
  433 + title: '高峰系数'
  434 + },{
  435 + field: 'lowCustomerPercent',
  436 + title: '低谷系数'
  437 + }, {
  438 + field: 'divideLevel',
  439 + title: '间隔等级'
  440 + },{
  441 + field: 'hasTimelists',
  442 + title: '是否挂牌'
  443 + },{
  444 + field: 'isMetro',
  445 + title: '是否轨交末班车衔接'
  446 + },{
  447 + field: 'metroTime',
  448 + title: '轨交时间'
  449 + },{
  450 + field: 'coldBonusType',
  451 + title: '冷僻线路补贴类型'
  452 + }];
  453 +
  454 +
  455 + createTable(cols);
  456 + });
  457 + function edit(id) {
  458 + table.set();
  459 + if($.common.isEmpty(id) && table.options.type == table_type.bootstrapTreeTable) {
  460 + var row = $("#" + table.options.id).bootstrapTreeTable('getSelections')[0];
  461 + if ($.common.isEmpty(row)) {
  462 + $.modal.alertWarning("请至少选择一条记录");
  463 + return;
  464 + }
  465 + var url = table.options.updateUrl.replace("{id}", row[table.options.uniqueId]);
  466 + open("修改" + table.options.modalName, url);
  467 + } else {
  468 + open(id,"修改" + table.options.modalName, $.operate.editUrl(id));
  469 + }
  470 + }
  471 + function open(id,title, url, width, height, callback) {
  472 + // 如果是移动端,就使用自适应大小弹窗
  473 + if ($.common.isMobile()) {
  474 + width = 'auto';
  475 + height = 'auto';
  476 + }
  477 + if ($.common.isEmpty(title)) {
  478 + title = false;
  479 + }
  480 + if ($.common.isEmpty(url)) {
  481 + url = "/404.html";
  482 + }
  483 + if ($.common.isEmpty(width)) {
  484 + width = 800;
  485 + }
  486 + if ($.common.isEmpty(height)) {
  487 + height = ($(window).height() - 50);
  488 + }
  489 + if ($.common.isEmpty(callback)) {
  490 + callback = function(index, layero) {
  491 + var iframeWin = layero.find('iframe')[0];
  492 + iframeWin.contentWindow.submitHandler(index, layero);
  493 + }
  494 + }
  495 +
  496 + layer.open({
  497 + type: 2,
  498 + area: [width + 'px', height + 'px'],
  499 + fix: false,
  500 + //不固定
  501 + maxmin: true,
  502 + shade: 0.3,
  503 + title: title,
  504 + content: url,
  505 + btn: ['修改', '删除'],
  506 + // 弹层外区域关闭
  507 + shadeClose: true,
  508 + yes: callback,
  509 + btn2: function(index, layero){
  510 + $.operate.remove(id)
  511 + }
  512 + });
  513 + }
  514 + </script>
  515 + <style>
  516 +.col_checkbox {
  517 + width: 33%;
  518 + float: left;
  519 +}
  520 +</style>
  521 +</body>
  522 +</html>
0 \ No newline at end of file 523 \ No newline at end of file