mrzhssss
2022-01-14 5f42fb4ab590de114fada76abd6fc114b748ccb7
更新前后端传输数据
14个文件已修改
280 ■■■■■ 已修改文件
src/main/java/zy/cloud/wms/common/web/BaseController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/CstmrController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/ItemController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/ProjectPlanController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/FlowsDTO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/Item.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/ItemsDTO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/ProjectPlan.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/clock.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/item/item.js 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/projectPlan/projectPlan.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/tableData.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/item/item.html 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/projectPlan/projectPlan.html 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/web/BaseController.java
@@ -163,12 +163,14 @@
            return;
        }
        List<String> columns = new ArrayList<>();
        //如果变量包含Final,Static,transient修饰符, 跳过该变量
        for (Field field :Cools.getAllFields(cls)){
            if (Modifier.isFinal(field.getModifiers())
                    || Modifier.isStatic(field.getModifiers())
                    || Modifier.isTransient(field.getModifiers())){
                continue;
            }
            String column = null;
            if (field.isAnnotationPresent(TableField.class)) {
                column = field.getAnnotation(TableField.class).value();
src/main/java/zy/cloud/wms/manager/controller/CstmrController.java
@@ -41,7 +41,8 @@
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
//        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        wrapper.orderBy("create_time",false);
        return R.ok(cstmrService.selectPage(new Page<>(curr, limit), wrapper));
    }
src/main/java/zy/cloud/wms/manager/controller/ItemController.java
@@ -47,7 +47,9 @@
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        EntityWrapper<Item> wrapper = new EntityWrapper<>();
//        allLike(Item,null,wrapper,param.get("id"));
        HashSet<String> excludeField = new HashSet<>();
//        allLike(Item.class,excludeField,wrapper, (String) param.get("id"));
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
@@ -85,6 +87,9 @@
        if (!Cools.isEmpty(name)) {
            throw new CoolException("不可有重复项目名");
        }
        if (item.getRealMonth() < 0){
            throw new CoolException("实施周期不可为负数");
        }
        item.setHostId(getHostId());
        item.setCreateBy(getUserId());
@@ -106,6 +111,9 @@
        if (!item.getType().equals("1")) {
            throw new CoolException("目前仅支持集成项目");
        }
        if (item.getRealMonth() < 0){
            throw new CoolException("实施周期不可为负数");
        }
        item.setUpdateBy(getUserId());
        item.setUpdateTime(new Date());
        itemService.update(item,new EntityWrapper<Item>()
src/main/java/zy/cloud/wms/manager/controller/ProjectPlanController.java
@@ -60,13 +60,21 @@
        }
        excludeTrash(param);
        convert(param, wrapper);
//        HashSet<String> excludeItems = new HashSet<>();
//        excludeItems.add("id");
//        excludeItems.add("item_id");
//        excludeItems.add("weight_num");
//        excludeItems.add("create_time");
//        excludeItems.add("create_id");
//        excludeItems.add("modify_time");
//        excludeItems.add("modify_id");
//
//        allLike(ProjectPlan.class,excludeItems,wrapper, (String) param.get("id"));
        wrapper.orderBy("item_id");
//        if (!Cools.isEmpty(orderByField)) {
//            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
//        }
        return R.ok(projectPlanService.selectPage(new Page<>(curr, limit), wrapper));
    }
@@ -94,6 +102,7 @@
        if (!Cools.isEmpty(checkExist)) {
            throw new CoolException("权重值冲突,请检查");
        }
        FlowStatus id = flowStatusService.selectOne(new EntityWrapper<FlowStatus>()
                .eq("id", projectPlan.getFlowId()));
        if (!Cools.isEmpty(id)) {
@@ -113,6 +122,10 @@
        if (Cools.isEmpty(projectPlan) || null == projectPlan.getId()) {
            return R.error();
        }
        if (projectPlan.getDelay() < 0){
            throw new CoolException("延期天数不可为负数");
        }
        projectPlan.setModifyTime(new Date());
@@ -284,19 +297,26 @@
        List<Item> items = itemService.selectList(new EntityWrapper<Item>()
                .eq("status","1"));
        List<ItemsDTO> itemsDTOs = new ArrayList<>();
        for (Item item : items) {
            ItemsDTO itemsDTO = new ItemsDTO();
        for (Item item : items) {
            ItemsDTO itemsDTO = new ItemsDTO();
            List<FlowsDTO> flows = new ArrayList<>();
            itemsDTO.setId(item.getName());
            itemsDTO.setStartDay(item.getStartTime());
            itemsDTO.setEndDay(item.getEndTime());
            itemsDTO.setStartDay(item.getStartTime$());
            itemsDTO.setEndDay(item.getEndTime$());
            List<ProjectPlan> allPlans = projectPlanService.selectList(new EntityWrapper<ProjectPlan>()
                    .eq("item_id", item.getId()));
            for (ProjectPlan projectPlan : allPlans) {
                projectPlan.setFlowName(projectPlan.getFlowId$());
                FlowsDTO flowsDTO = new FlowsDTO();
                flowsDTO.setName(projectPlan.getFlowId$());
                flowsDTO.setStartTime(projectPlan.getStartTime$());
                flowsDTO.setEndTime$(projectPlan.getEndTime$());
                flowsDTO.setRealStartTime$(projectPlan.getRealStartTime$());
                flowsDTO.setRealEndTime$(projectPlan.getRealEndTime$());
                flows.add(flowsDTO);
            }
            itemsDTO.setNodes(allPlans);
            itemsDTO.setNodes(flows);
            itemsDTOs.add(itemsDTO);
        }
        return R.ok().add(itemsDTOs);
src/main/java/zy/cloud/wms/manager/entity/FlowsDTO.java
@@ -9,7 +9,8 @@
@NoArgsConstructor
public class FlowsDTO {
    private String name;
    private Date deadline;
    private Date realDeadline;
    private int extraDay;
    private String startTime;
    private String endTime$;
    private String realStartTime$;
    private String realEndTime$;
}
src/main/java/zy/cloud/wms/manager/entity/Item.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldStrategy;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
@@ -92,7 +93,7 @@
     * 开始时间
     */
    @ApiModelProperty(value= "开始时间")
    @TableField("start_time")
    @TableField(value = "start_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
@@ -100,7 +101,7 @@
     * 结束时间
     */
    @ApiModelProperty(value= "结束时间")
    @TableField("end_time")
    @TableField(value = "end_time" ,strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
@@ -150,12 +151,12 @@
    private String type;
    @TableField("real_start_time")
    @TableField(value = "real_start_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date realStartTime;
    @TableField("real_end_time")
    @TableField(value = "real_end_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date realEndTime;
@@ -297,6 +298,13 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
    }
    public String getStartTime0$(){
        if (Cools.isEmpty(this.startTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.startTime);
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
@@ -310,6 +318,12 @@
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
    }
    public String getEndTime0$(){
        if (Cools.isEmpty(this.endTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.endTime);
    }
    public void setEndTime(Date endTime) {
@@ -400,6 +414,16 @@
        }
    }
    public String getRealStartTime0$(){
        if (!Cools.isEmpty(this.realStartTime)) {
            return new SimpleDateFormat("yyyy-MM-dd").format(this.realStartTime);
        }else {
            return "";
        }
    }
    public String getRealEndTime$(){
        if (!Cools.isEmpty(this.realEndTime)) {
            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.realEndTime);
@@ -407,6 +431,14 @@
            return "";
        }
    }
    public String getRealEndTime0$(){
        if (!Cools.isEmpty(this.realEndTime)) {
            return new SimpleDateFormat("yyyy-MM-dd").format(this.realEndTime);
        }else {
            return "";
        }
    }
    public String getType$(){
        ProjectTypeService bean = SpringUtils.getBean(ProjectTypeService.class);
        ProjectType id = bean.selectOne(new EntityWrapper<ProjectType>()
src/main/java/zy/cloud/wms/manager/entity/ItemsDTO.java
@@ -10,7 +10,7 @@
@NoArgsConstructor
public class ItemsDTO {
    private String id;
    private Date startDay;
    private Date endDay;
    private List<ProjectPlan> nodes;
    private String startDay;
    private String endDay;
    private List<FlowsDTO> nodes;
}
src/main/java/zy/cloud/wms/manager/entity/ProjectPlan.java
@@ -1,5 +1,6 @@
package zy.cloud.wms.manager.entity;
import com.baomidou.mybatisplus.enums.FieldStrategy;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
@@ -47,6 +48,7 @@
@Data
@TableName("sys_project_plan")
public class ProjectPlan implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -64,6 +66,7 @@
    @ApiModelProperty(value= "项目ID")
    @TableId(value = "item_id", type = IdType.INPUT)
    @TableField("item_id")
    private Long itemId;
    /**
@@ -85,15 +88,16 @@
     * 启动日期
     */
    @ApiModelProperty(value= "启动日期")
    @TableField("start_time")
    @TableField(value = "start_time",strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 实际启动日期
     */
    @ApiModelProperty(value= "实际启动日期")
    @TableField("real_start_time")
    @TableField(value = "real_start_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date realStartTime;
@@ -101,7 +105,7 @@
     * 结束日期
     */
    @ApiModelProperty(value= "结束日期")
    @TableField("end_time")
    @TableField(value = "end_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
@@ -109,7 +113,7 @@
     * 实际结束日期
     */
    @ApiModelProperty(value= "实际结束日期")
    @TableField("real_end_time")
    @TableField(value = "real_end_time", strategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date realEndTime;
src/main/webapp/static/js/clock.js
@@ -1,14 +1,11 @@
  var t = null;
        t = setTimeout(time,0);
        function time() {
            clearTimeout(t);
            dt = new Date();
            var y = dt.getFullYear();
            var mt = dt.getMonth()+1;
            var day = dt.getDate();
            var h = dt.getHours();
            var m = dt.getMinutes();
            var s = dt.getSeconds();
            document.getElementById('showTime').innerHTML = y+'年'+mt+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
            t=setTimeout(time,1000);
        }
setInterval(function () {
    let dt = new Date();
    var y = dt.getFullYear();
    var mt = dt.getMonth()+1;
    var day = dt.getDate();
    var h = dt.getHours();
    var m = dt.getMinutes();
    var s = dt.getSeconds();
    document.getElementById('showTime').innerHTML =y+'年'+mt+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
}, 1000);
src/main/webapp/static/js/item/item.js
@@ -33,15 +33,10 @@
            // ,{field: 'member', align: 'center',title: '项目成员'}
            // ,{field: 'leader', align: 'center',title: '项目经理'}
            ,{field: 'startTime$', align: 'center',title: '计划开始时间',
                templet : "<div>{{layui.util.toDateString(d.startTime$, 'yyyy-MM-dd')}}</div>"
            }
            ,{field: 'endTime$', align: 'center',title: '计划结束时间',
                templet : "<div>{{layui.util.toDateString(d.endTime$, 'yyyy-MM-dd')}}</div>"}
            ,{field: 'realStartTime$', align: 'center', title: '实际开始时间',
                templet : "<div>{{layui.util.toDateString(d.realStartTime$, 'yyyy-MM-dd')}}</div>"}
            ,{field: 'realEndTime$', align: 'center', title: '实际结束时间',
                templet : "<div>{{layui.util.toDateString(d.realEndTime$, 'yyyy-MM-dd')}}</div>"}
            ,{field: 'startTime0$', align: 'center',title: '计划开始时间'}
            ,{field: 'endTime0$', align: 'center',title: '计划结束时间'}
            ,{field: 'realStartTime0$', align: 'center', title: '实际开始时间'}
            ,{field: 'realEndTime0$', align: 'center', title: '实际结束时间'}
            ,{field: 'type$', align: 'center', title: '项目类型'}
            ,{field: 'originArea', align: 'center', title: '生产地'}
            ,{field: 'realMonth', align: 'center', title: '时间跨度(月)'}
@@ -72,7 +67,7 @@
            statusCode: 200
        },
        done: function(res, curr, count) {
            console.log(res)
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
@@ -175,7 +170,7 @@
            title: (mData ? '修改' : '添加') + '项目信息',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender();
                layDateRender(mData);
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
@@ -248,31 +243,41 @@
    });
    // 时间选择器
    function layDateRender() {
    function layDateRender(mData) {
        console.log(mData)
        setTimeout(function () {
            layDate.render({
        elem: '#startTime\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#endTime\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#createTime\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#updateTime\\$',
        type: 'datetime'
    });
    layDate.render({
        elem: '#realStartTime\\$'
        ,type: 'datetime'
    });
    layDate.render({
        elem: '#realEndTime\\$'
        ,type: 'datetime'
    });
                elem: '#startTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['startTime$']):null
            });
            layDate.render({
                elem: '#realStartTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['realStartTime$']):null
            });
            layDate.render({
                elem: '#endTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['endTime$']):null
            });
            layDate.render({
                elem: '#realEndTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['realEndTime$']):null
            });
            layDate.render({
                elem: '#createTime\\$',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['createTime$']):null
            });
            layDate.render({
                elem: '#modifyTime\\$',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['modifyTime$']):null
            });
        }, 500);
    }
    layDateRender();
src/main/webapp/static/js/projectPlan/projectPlan.js
@@ -2,6 +2,8 @@
var items;
getItems();
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
@@ -239,7 +241,7 @@
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        $('#mysearch').val('');
        tableReload(false);
    });
@@ -247,22 +249,22 @@
    function layDateRender(mData) {
        setTimeout(function () {
            layDate.render({
                elem: '#startTime\\$',
                elem: '#startTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['startTime$']):null
            });
            layDate.render({
                elem: '#realStartTime\\$',
                elem: '#realStartTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['realStartTime$']):null
            });
            layDate.render({
                elem: '#endTime\\$',
                elem: '#endTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['endTime$']):null
            });
            layDate.render({
                elem: '#realEndTime\\$',
                elem: '#realEndTime',
                type: 'datetime',
                value: mData!==null&&mData!==undefined?strToDate(mData['realEndTime$']):null
            });
src/main/webapp/static/js/tableData.js
@@ -1,12 +1,12 @@
setTimeout(function(){
    getTheaddData()
},500)
    getThbodyData()
},0)
setInterval(function(){
    getThbodyData()
},500)
},50000)
    var proData = ["项目名称","开始时间","结束时间",]
    var getTheaddData = function(){
src/main/webapp/views/item/item.html
@@ -83,13 +83,13 @@
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">计划开始时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="startTime$" id="startTime$" placeholder="请输入计划开始时间" lay-vertype="tips" lay-verify="required">
                        <input class="layui-input" name="startTime" id="startTime" placeholder="请输入计划开始时间" lay-vertype="tips" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">实际开始时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="realStartTime$" id="realStartTime$" placeholder="请输入实际开始时间">
                        <input class="layui-input" name="realStartTime" id="realStartTime" placeholder="请输入实际开始时间">
                    </div>
                </div>
@@ -113,7 +113,7 @@
                <div class="layui-form-item">
                    <label class="layui-form-label">实施周期(月): </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="填写数字月份" type="number">
                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="填写数字月份" type="number" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
                    </div>
                </div>
            </div>
@@ -168,14 +168,14 @@
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">计划结束时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="endTime$" id="endTime$" placeholder="请输入计划结束时间" lay-vertype="tips" lay-verify="required">
                        <input class="layui-input" name="endTime" id="endTime" placeholder="请输入计划结束时间" lay-vertype="tips" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">实际结束时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="realEndTime$" id="realEndTime$" placeholder="请输入实际结束时间">
                        <input class="layui-input" name="realEndTime" id="realEndTime" placeholder="请输入实际结束时间">
                    </div>
                </div>
src/main/webapp/views/projectPlan/projectPlan.html
@@ -23,16 +23,16 @@
            </select>
        </div>
    </div>
    <!--    <div class="layui-inline">-->
    <!--        <div class="layui-input-inline">-->
    <!--            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">-->
    <!--        </div>-->
    <!--    </div>-->
    <!--    &lt;!&ndash; 待添加 &ndash;&gt;-->
    <!--    <div id="data-search-btn" class="layui-btn-container layui-form-item">-->
    <!--        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>-->
    <!--        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>-->
    <!--    </div>-->
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" id="mysearch" type="text" name="id" placeholder="编号" autocomplete="off">
            </div>
        </div>
        <!-- 待添加 -->
        <div id="data-search-btn" class="layui-btn-container layui-form-item">
            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        </div>
</div>
<!-- 表格 -->
@@ -111,32 +111,32 @@
                <div class="layui-form-item">
                    <label class="layui-form-label">计划开始时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="startTime$" id="startTime$" placeholder="请输入计划开始时间">
                        <input class="layui-input" name="startTime" id="startTime" placeholder="请输入计划开始时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">计划结束时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="endTime$" id="endTime$" placeholder="请输入计划结束时间">
                        <input class="layui-input" name="endTime" id="endTime" placeholder="请输入计划结束时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">实际开始时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="realStartTime$" id="realStartTime$" placeholder="请输入实际开始时间">
                        <input class="layui-input" name="realStartTime" id="realStartTime" placeholder="请输入实际开始时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">实际结束时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="realEndTime$" id="realEndTime$" placeholder="请输入实际结束时间">
                        <input class="layui-input" name="realEndTime" id="realEndTime" placeholder="请输入实际结束时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">延期天数: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="delay" placeholder="请输入延期天数">
                        <input class="layui-input" name="delay" placeholder="请输入延期天数" type="number" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
                    </div>
                </div>
                <div class="layui-form-item">
@@ -205,7 +205,7 @@
    </form>
</script>
<script type="text/template" id="parentNodeGroup">
    <option value="0">显示全部</option>
    <option value="0" selected>显示全部</option>
    {{#each data}}
    <option value="{{this.key}}">{{this.val}}</option>
    {{/each}}