Browse Source

Merge remote-tracking branch 'origin/master'

jzh 1 year ago
parent
commit
ed135df128

+ 7 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/commoncost/event/CommonCostEvent.java

@@ -99,8 +99,14 @@ public class CommonCostEvent extends BaseController {
                     projectName.append(project.getXmmc());
                     projectName.append(";");
                 });
+                Integer agent = entity.getIsAgent();
                 String applyTime = LocalDateTimeUtils.format(entity.getApplyTime(), null);
-                String flowDesc = StringUtils.join(Arrays.asList(entity.getUserNickname(), applyTime, "¥"+entity.getTotalAmount(), projectName), "/");
+                String flowDesc = "";
+                if(agent == 0){
+                    flowDesc = StringUtils.join(Arrays.asList(entity.getUserNickname(), applyTime, "¥"+entity.getTotalAmount(), projectName), "/");
+                } else {
+                    flowDesc = StringUtils.join(Arrays.asList(entity.getUserNickname(), applyTime, "¥"+entity.getTotalAmount()), "/");
+                }
                 workflowClient.saveFlowDescribe(flowInstanceId, flowDesc);
                 return ok("true");
             } else {

+ 3 - 1
zjugis-business/src/main/resources/static/flow/css/formCommon.css

@@ -165,13 +165,15 @@
 .form-table-disable .z-selecttree,
 .form-table-disable .z-comp-input,
 .form-table-disable .z-comp-date,
+.form-table-disable .z-comp-dateTime,
 .form-table-disable input {
   border: 0px;
   background: none !important;
 }
 .form-table-disable .z-inputselect-bar i,
+.form-table-disable .z-comp-dateTime span,
 .form-table-disable .z-select-closebtn {
-  display: none;
+  display: none !important;
 }
 .jbxx-box {
   background-color: #f7f8fb;

+ 2 - 2
zjugis-business/src/main/resources/templates/AttendanceNote/index.ftl

@@ -98,10 +98,10 @@ styles=[ '/flow/css/formCommon.css' ,'/timeSelector/TimeSelector.css' ]>
                         <span>考勤说明时间信息</span>
                     </div>
                     <div class="form-btn">
-                        <div id="addData">
+                        <button id="addData">
                             <img src="/imgs/addIcon.png" alt="">
                             <span>新增</span>
-                        </div>
+                        </button>
                     </div>
                 </div>
                 <div class="qjsjxx-box">

+ 292 - 215
zjugis-business/src/main/resources/templates/AttendanceNote/js/index.js

@@ -1,236 +1,313 @@
 (function () {
-  window.onload = function (ex) {
-    let timeObject = document.querySelector('#timeObject')
-    let arrays = JSON.parse(timeObject.value)
-    var lists = []
-    var trFragment = document.createDocumentFragment();
-    $("#addData").click(function () {
-      let listsLength = lists.length
-      if (arrays.length > 0) {
-        listsLength = arrays.length + lists.length
-      }
-      var dataObj = {}
-      trFragment.appendChild(generateTableTrHtml(listsLength))
-      $(".tbody").append(trFragment)
-      timeSelector({
-        ele: ".startTimeRange" + listsLength,
-        name: "AttendanceNoteTimeDO[" + listsLength + "]$startTimeRange",
-        callback: function (val) {
-        }
-      })
-      timeSelector({
-        ele: ".endTimeRange" + listsLength,
-        name: "AttendanceNoteTimeDO[" + listsLength + "]$endTimeRange",
-        callback: function (val) {
-        }
-      })
-      $("#delBtn_" + listsLength).click(function () {
-        var index = this.id.substring(this.id.indexOf("_") + 1)
-        z.ui.confirm("compid").init({
-          content: "确定删除吗?",
-          onConfirm: function () {
-            var element = document.getElementById("qjsj_" + index);
-            element.remove();
-            buildQjsjSeq();
-          },
-          onCancel: function () {
-
-          }
-        })
+    var addDataThat = null;
+    let viewState = z.ui.comm.getUrlParam("_o");
+    let read = z.ui.comm.getUrlParam("read");
+    window.onload = function (ex) {
+        let timeObject = document.querySelector('#timeObject')
+        let arrays = JSON.parse(timeObject.value)
+        var lists = []
+        var trFragment = document.createDocumentFragment();
+        addDataThat = $("#addData")
+        $("#addData").click(function () {
+            addDataThat.attr('disabled', "true");
+            let listsLength = lists.length
+            if (arrays.length > 0) {
+                listsLength = arrays.length + lists.length
+            }
+            var dataObj = {}
+            trFragment.appendChild(generateTableTrHtml(listsLength))
+            $(".tbody").append(trFragment)
+            timeSelector({
+                ele: ".startTimeRange" + listsLength,
+                name: "AttendanceNoteTimeDO[" + listsLength + "]$startTimeRange",
+                callback: function (val) {
+                }
+            })
+            timeSelector({
+                ele: ".endTimeRange" + listsLength,
+                name: "AttendanceNoteTimeDO[" + listsLength + "]$endTimeRange",
+                callback: function (val) {
+                }
+            })
+            $("#editBtn_" + listsLength).click(function () {
+                const span = $(this).find("span");
+                const html = span.html();
+                if (html === '编辑') {
+                    span.html('保存')
+                    detailWrite(listsLength);
+                    addDataThat.attr('disabled', "true");
+                    $("#qjsj_" + listsLength).removeClass("form-table-disable")
+                    return;
+                }
+                if (html === '保存') {
+                    span.html('编辑')
+                    detailReadonly(listsLength, false)
+                    addDataThat.removeAttr('disabled')
+                    $("#qjsj_" + listsLength).addClass("form-table-disable")
+                    return;
+                }
+            })
+            $("#delBtn_" + listsLength).click(function () {
+                var index = this.id.substring(this.id.indexOf("_") + 1)
+                z.ui.confirm("compid").init({
+                    content: "确定删除吗?",
+                    onConfirm: function () {
+                        var element = document.getElementById("qjsj_" + index);
+                        element.remove();
+                        buildQjsjSeq();
+                        addDataThat.removeAttr('disabled')
+                    },
+                    onCancel: function () {
 
-      })
-      z.ui.date("[name='AttendanceNoteTimeDO[" + listsLength + "]$startTime']").init()
-      z.ui.date("[name='AttendanceNoteTimeDO[" + listsLength + "]$endTime']").init()
-      buildQjsjSeq();
-      lists.push(dataObj)
-    })
-    bindEvents();
-    //根据返回的json对象渲染出差时间信息
-
-    let tbodyQjsq = document.querySelector('.tbodyQjsq')
-    let html = ""
-    if (arrays.length > 0) {
-      for (let i = 0; i < arrays.length; i++) {
-        let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
-        let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
-        html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff"> <td name="qjsj_seq">' + (i + 1) + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-          + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + i + ']$startTime">'
-          + '<input type="text" value="' + startDate + '">'
-          + '</div>'
-          + '</div>'
-          + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (i) + '">'
-          + '</div>'
-          + '<span class="nbsp"> - </span>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-          + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + i + ']$endTime">'
-          + '<input type="text" value="' + endDate + '">'
-          + '</div>'
-          + '</div>'
-          + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (i) + '">'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-item">'
-          + '<div class="z-comp-input" name="AttendanceNoteTimeDO[0]$bz1">'
-          + '<input type="text" value="">'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
-          + '<span>删除</span>'
-          + '</div>'
-          + '</td></tr>';
-      }
-      tbodyQjsq.innerHTML = html
-
-      for (let i = 0; i < arrays.length; i++) {
-        timeSelector({
-          ele: ".startTimeRange" + (i),
-          name: "AttendanceNoteTimeDO[" + (i) + "]$startTimeRange",
-          callback: function (val) {
-          }
-        })
+                    }
+                })
 
-        timeSelector({
-          ele: ".endTimeRange" + (i),
-          name: "AttendanceNoteTimeDO[" + (i) + "]$endTimeRange",
-          callback: function (val) {
-          }
+            })
+            z.ui.date("[name='AttendanceNoteTimeDO[" + listsLength + "]$startTime']").init()
+            z.ui.date("[name='AttendanceNoteTimeDO[" + listsLength + "]$endTime']").init()
+            buildQjsjSeq();
+            lists.push(dataObj)
         })
-        z.ui.date("[name='AttendanceNoteTimeDO[" + i + "]$startTime']").init()
-        z.ui.date("[name='AttendanceNoteTimeDO[" + i + "]$endTime']").init()
-        $("#delBtn_" + i).click(function () {
-          z.ui.confirm("compid").init({
-            content: "确定删除吗?",
-            onConfirm: function () {
-              var element = document.getElementById("qjsj_" + i);
-              element.remove();
-              buildQjsjSeq();
-            },
-            onCancel: function () {
+        bindEvents();
+        //根据返回的json对象渲染出差时间信息
 
+        let tbodyQjsq = document.querySelector('.tbodyQjsq')
+        let html = ""
+        if (arrays.length > 0) {
+            for (let i = 0; i < arrays.length; i++) {
+                let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
+                let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
+                html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff; height: 63px;"> <td name="qjsj_seq">' + (i + 1) + '</td>'
+                    + '<td>'
+                    + '<div class="form-flex">'
+                    + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                    + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + i + ']$startTime">'
+                    + '<input type="text" value="' + startDate + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (i) + '">'
+                    + '</div>'
+                    + '<span class="nbsp"> - </span>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div class="form-flex">'
+                    + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                    + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + i + ']$endTime">'
+                    + '<input type="text" value="' + endDate + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (i) + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div class="form-item">'
+                    + '<div class="z-comp-input" name="AttendanceNoteTimeDO[0]$bz1">'
+                    + '<input type="text" value="">'
+                    + '</div>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>编辑</span>'
+                    + '</div>'
+                    + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>删除</span>'
+                    + '</div>'
+                    + '</td></tr>';
             }
-          })
+            tbodyQjsq.innerHTML = html
 
-        })
-      }
+            for (let i = 0; i < arrays.length; i++) {
+                timeSelector({
+                    ele: ".startTimeRange" + (i),
+                    name: "AttendanceNoteTimeDO[" + (i) + "]$startTimeRange",
+                    callback: function (val) {
+                    }
+                })
+
+                timeSelector({
+                    ele: ".endTimeRange" + (i),
+                    name: "AttendanceNoteTimeDO[" + (i) + "]$endTimeRange",
+                    callback: function (val) {
+                    }
+                })
+                z.ui.date("[name='AttendanceNoteTimeDO[" + i + "]$startTime']").init()
+                z.ui.date("[name='AttendanceNoteTimeDO[" + i + "]$endTime']").init()
+                $("#editBtn_" + i).click(function () {
+                    const span = $(this).find("span");
+                    const html = span.html();
+                    if (html === '编辑') {
+                        span.html('保存')
+                        detailWrite(i);
+                        addDataThat.attr('disabled', "true");
+                        $("#qjsj_" + i).removeClass("form-table-disable")
+                        return;
+                    }
+                    if (html === '保存') {
+                        span.html('编辑')
+                        detailReadonly(i, false)
+                        addDataThat.removeAttr('disabled')
+                        $("#qjsj_" + i).addClass("form-table-disable")
+                        return;
+                    }
+                })
+                $("#delBtn_" + i).click(function () {
+                    z.ui.confirm("compid").init({
+                        content: "确定删除吗?",
+                        onConfirm: function () {
+                            var element = document.getElementById("qjsj_" + i);
+                            element.remove();
+                            buildQjsjSeq();
+                            addDataThat.removeAttr('disabled')
+                        },
+                        onCancel: function () {
+
+                        }
+                    })
+
+                })
+                $("#qjsj_" + i).addClass("form-table-disable")
+                if (viewState === 'v' || read === '1') {
+                    detailReadonly(i)
+                }else {
+                    detailReadonly(i,false)
+                }
+            }
 
-      let sTbody = document.querySelectorAll('.qjsjClass')
-      for (let i = 0; i < arrays.length; i++) {
-        let startHHmm = moment(arrays[i].startTime).format('HH:mm')
-        let endHHmm = moment(arrays[i].endTime).format('HH:mm')
-        sTbody[i].children[1].children[0].children[1].children[0].children[0].value = startHHmm
-        sTbody[i].children[2].children[0].children[1].children[0].children[0].value = endHHmm
-        sTbody[i].children[3].children[0].children[0].children[0].value = arrays[i].bz1 || ''
-      }
+            let sTbody = document.querySelectorAll('.qjsjClass')
+            for (let i = 0; i < arrays.length; i++) {
+                let startHHmm = moment(arrays[i].startTime).format('HH:mm')
+                let endHHmm = moment(arrays[i].endTime).format('HH:mm')
+                sTbody[i].children[1].children[0].children[1].children[0].children[0].value = startHHmm
+                sTbody[i].children[2].children[0].children[1].children[0].children[0].value = endHHmm
+                sTbody[i].children[3].children[0].children[0].children[0].value = arrays[i].bz1 || ''
+            }
 
 
+        }
 
     }
 
-  }
 
+    //注册业务保存事件
+    function bindEvents() {
+        z.workflow.saveBtn.addListener("onSaveClick", saveForm);
+    }
 
+    function buildQjsjSeq() {
+        let elementsByName = document.getElementsByName("qjsj_seq");
+        for (let i = 0; i < elementsByName.length; i++) {
+            const seqElement = elementsByName[i];
+            seqElement.innerHTML = i + 1;
+        }
+    }
+
+    /*
+  * all 工作流js传递到业务的参数 success执行的方法
+  * istransfer 工作流js传递到业务的参数 是否转件
+  * */
+    function saveForm(all, istransfer) {
+        var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
+        if (postData === false) {
+            all({success: false});
+            return;
+        }
+        postData.createReqVO.instanceId = z.ui.comm.getUrlParam("flowInstanceId");
+        var attendanceNoteTimeCreateList = new Array()
+        for (let key of Object.keys(postData)) {
+            let mealName = postData[key];
+            if (key.startsWith("AttendanceNoteTimeDO")) {
+                mealName.startTime = Date.parse(mealName.startTime + " " + mealName.startTimeRange);
+                mealName.endTime = Date.parse(mealName.endTime + " " + mealName.endTimeRange);
+                attendanceNoteTimeCreateList.push(z.ui.form.childStringify(mealName));
+            }
+        }
+        postData.createReqVO.attendanceNoteTimeCreateList = attendanceNoteTimeCreateList;
+        console.log(postData.createReqVO);
+        z.ui.ajax({
+            type: "post",
+            url: "/AttendanceNote/update",
+            data: JSON.stringify(postData.createReqVO),
+            contentType: "application/json",
+            success: function () {
+                all({success: true});
+            },
+            error: function () {
+                all({success: false});
+            }
+        })
+    }
 
-  //注册业务保存事件
-  function bindEvents() {
-    z.workflow.saveBtn.addListener("onSaveClick", saveForm);
-  }
 
-  function buildQjsjSeq() {
-    let elementsByName = document.getElementsByName("qjsj_seq");
-    for (let i = 0; i < elementsByName.length; i++) {
-      const seqElement = elementsByName[i];
-      seqElement.innerHTML = i + 1;
+    function generateTableTrHtml(index) {
+        var trDom = document.createElement("tr");
+        trDom.style.backgroundColor = "#fff";
+        trDom.style.height = "63px";
+        trDom.id = "qjsj_" + index;
+        trDom.innerHTML = '<td name="qjsj_seq">' + (index + 1) + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+            + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + index + ']$startTime">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (index) + '">'
+            + '</div>'
+            + '<span class="nbsp"> - </span>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+            + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + index + ']$endTime">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (index) + '">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-item">'
+            + '<div class="z-comp-input" name="AttendanceNoteTimeDO[0]$bz1">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
+            + '<span>保存</span>'
+            + '</div>'
+            + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
+            + '<span>删除</span>'
+            + '</div>'
+            + '</td>';
+        return trDom;
     }
-  }
-
-  /*
-* all 工作流js传递到业务的参数 success执行的方法
-* istransfer 工作流js传递到业务的参数 是否转件
-* */
-  function saveForm(all, istransfer) {
-    var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
-    if (postData === false) {
-      all({ success: false });
-      return;
+
+    function detailReadonly(i, isBool = true) {
+        if (isBool) {
+            $("#delBtn_" + i).css("display", "none");
+            $("#editBtn_" + i).css("display", "none");
+        }
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = true;
+            detailInput[j].className += "z-readonly"
+        }
     }
-    postData.createReqVO.instanceId = z.ui.comm.getUrlParam("flowInstanceId");
-    var attendanceNoteTimeCreateList = new Array()
-    for (let key of Object.keys(postData)) {
-      let mealName = postData[key];
-      if (key.startsWith("AttendanceNoteTimeDO")) {
-        mealName.startTime = Date.parse(mealName.startTime + " " + mealName.startTimeRange);
-        mealName.endTime = Date.parse(mealName.endTime + " " + mealName.endTimeRange);
-        attendanceNoteTimeCreateList.push(z.ui.form.childStringify(mealName));
-      }
+
+
+    function detailWrite(i) {
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = false;
+            $(detailInput[j]).removeClass("z-readonly")
+        }
     }
-    postData.createReqVO.attendanceNoteTimeCreateList = attendanceNoteTimeCreateList;
-    console.log(postData.createReqVO);
-    z.ui.ajax({
-      type: "post",
-      url: "/AttendanceNote/update",
-      data: JSON.stringify(postData.createReqVO),
-      contentType: "application/json",
-      success: function () {
-        all({ success: true });
-      },
-      error: function () {
-        all({ success: false });
-      }
-    })
-  }
-
-
-  function generateTableTrHtml(index) {
-    var trDom = document.createElement("tr");
-    trDom.style.backgroundColor = "#fff";
-    trDom.id = "qjsj_" + index;
-    trDom.innerHTML = '<td name="qjsj_seq">' + (index + 1) + '</td>'
-      + '<td>'
-      + '<div class="form-flex">'
-      + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-      + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + index + ']$startTime">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (index) + '">'
-      + '</div>'
-      + '<span class="nbsp"> - </span>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div class="form-flex">'
-      + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-      + '<div class="z-comp-date" name="AttendanceNoteTimeDO[' + index + ']$endTime">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (index) + '">'
-      + '</div>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div class="form-item">'
-      + '<div class="z-comp-input" name="AttendanceNoteTimeDO[0]$bz1">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
-      + '<span>删除</span>'
-      + '</div>'
-      + '</td>';
-    return trDom;
-  }
 }());

+ 2 - 2
zjugis-business/src/main/resources/templates/Leave/index.ftl

@@ -143,10 +143,10 @@ styles=[ '/flow/css/formCommon.css' ,'/timeSelector/TimeSelector.css' ]>
                         <span>请假时间信息</span>
                     </div>
                     <div class="form-btn" name="addButton">
-                        <div id="addData">
+                        <button id="addData">
                             <img src="/imgs/addIcon.png" alt="">
                             <span>新增</span>
-                        </div>
+                        </button>
                     </div>
                 </div>
                 <div class="qjsjxx-box">

+ 80 - 3
zjugis-business/src/main/resources/templates/Leave/js/index.js

@@ -1,7 +1,9 @@
 (function () {
     let attendanceIndex = ''
     let isTimes = []
-
+    var addDataThat = null;
+    let viewState = z.ui.comm.getUrlParam("_o");
+    let read = z.ui.comm.getUrlParam("read");
     window.onload = function (ex) {
         let timeObject = document.querySelector('#timeObject')
         let arrays = JSON.parse(timeObject.value)
@@ -22,8 +24,9 @@
             }
         });
         // z.ui.date("[name='createReqVO$createTime']").setValue(getDate());
-
+        addDataThat = $("#addData")
         $("#addData").click(function () {
+            addDataThat.attr('disabled', "true");
             var dataObj = {}
             let listsLength = lists.length
             if (arrays.length > 0) {
@@ -82,6 +85,24 @@
                     whereIsTimes()
                 }
             })
+            $("#editBtn_" + listsLength).click(function () {
+                const span = $(this).find("span");
+                const html = span.html();
+                if (html === '编辑') {
+                    span.html('保存')
+                    detailWrite(listsLength);
+                    addDataThat.attr('disabled', "true");
+                    $("#qjsj_" + listsLength).removeClass("form-table-disable")
+                    return;
+                }
+                if (html === '保存') {
+                    span.html('编辑')
+                    detailReadonly(listsLength, false)
+                    addDataThat.removeAttr('disabled')
+                    $("#qjsj_" + listsLength).addClass("form-table-disable")
+                    return;
+                }
+            })
             $("#delBtn_" + listsLength).click(function () {
                 var index = this.id.substring(this.id.indexOf("_") + 1)
                 z.ui.confirm("compid").init({
@@ -90,6 +111,7 @@
                         var element = document.getElementById("qjsj_" + index);
                         element.remove();
                         buildQjsjSeq();
+                        addDataThat.removeAttr('disabled')
                     },
                     onCancel: function () {
 
@@ -132,7 +154,7 @@
             for (let i = 0; i < arrays.length; i++) {
                 let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
                 let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
-                html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff"> <td name="qjsj_seq">' + (i + 1) + '</td>'
+                html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff; height: 63px;"> <td name="qjsj_seq">' + (i + 1) + '</td>'
                     + '<td>'
                     + '<div class="form-flex">'
                     + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
@@ -164,6 +186,9 @@
                     + '</div>'
                     + '</td>'
                     + '<td>'
+                    + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>编辑</span>'
+                    + '</div>'
                     + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
                     + '<span>删除</span>'
                     + '</div>'
@@ -186,6 +211,24 @@
                 })
                 z.ui.date("[name='LeaveTimeDO[" + i + "]$startTime']").init()
                 z.ui.date("[name='LeaveTimeDO[" + i + "]$endTime']").init()
+                $("#editBtn_" + i).click(function () {
+                    const span = $(this).find("span");
+                    const html = span.html();
+                    if (html === '编辑') {
+                        span.html('保存')
+                        detailWrite(i);
+                        addDataThat.attr('disabled', "true");
+                        $("#qjsj_" + i).removeClass("form-table-disable")
+                        return;
+                    }
+                    if (html === '保存') {
+                        span.html('编辑')
+                        detailReadonly(i, false)
+                        addDataThat.removeAttr('disabled')
+                        $("#qjsj_" + i).addClass("form-table-disable")
+                        return;
+                    }
+                })
                 $("#delBtn_" + i).click(function () {
                     z.ui.confirm("compid").init({
                         content: "确定删除吗?",
@@ -195,6 +238,7 @@
                             buildQjsjSeq();
                             isTimes.splice(i, 1)
                             whereIsTimes()
+                            addDataThat.removeAttr('disabled')
                         },
                         onCancel: function () {
 
@@ -208,6 +252,12 @@
                     endTime: Date.parse(arrays[i].endTime),
                 }
                 isTimes.push(timeObj)
+                $("#qjsj_" + i).addClass("form-table-disable")
+                if (viewState === 'v' || read === '1') {
+                    detailReadonly(i)
+                }else {
+                    detailReadonly(i,false)
+                }
             }
 
             let sTbody = document.querySelectorAll('.qjsjClass')
@@ -466,6 +516,7 @@
     function generateTableTrHtml(index) {
         var trDom = document.createElement("tr");
         trDom.style.backgroundColor = "#fff";
+        trDom.style.height = "63px";
         trDom.id = "qjsj_" + index;
         trDom.className = 'qjsjClass'
         trDom.innerHTML = '<td name="qjsj_seq">' + (index + 1) + '</td>'
@@ -500,11 +551,37 @@
             + '</div>'
             + '</td>'
             + '<td>'
+            + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
+            + '<span>保存</span>'
+            + '</div>'
             + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
             + '<span>删除</span>'
             + '</div>'
             + '</td>';
         return trDom;
     }
+
+    function detailReadonly(i, isBool = true) {
+        if (isBool) {
+            $("#delBtn_" + i).css("display", "none");
+            $("#editBtn_" + i).css("display", "none");
+        }
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = true;
+            detailInput[j].className += "z-readonly"
+        }
+    }
+
+
+    function detailWrite(i) {
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = false;
+            $(detailInput[j]).removeClass("z-readonly")
+        }
+    }
 }());
 

+ 2 - 2
zjugis-business/src/main/resources/templates/Travel/index.ftl

@@ -145,10 +145,10 @@
             <span>出差时间信息</span>
           </div>
           <div class="form-btn">
-            <div id="addData">
+            <button id="addData">
               <img src="/imgs/addIcon.png" alt="">
               <span>新增</span>
-            </div>
+            </button>
           </div>
         </div>
         <div class="qjsjxx-box">

+ 315 - 245
zjugis-business/src/main/resources/templates/Travel/js/index.js

@@ -1,278 +1,348 @@
 (function () {
-  window.onload = function (ex) {
-    let timeObject = document.querySelector('#timeObject')
-    let arrays = JSON.parse(timeObject.value)
-    var lists = []
-    var trFragment = document.createDocumentFragment();
-    $("#addData").click(function () {
-      var dataObj = {}
-      trFragment.appendChild(generateTableTrHtml(lists.length))
-      $(".tbody").append(trFragment)
-      let listsLength = lists.length
-      if (arrays.length > 0) {
-        listsLength = arrays.length + lists.length
-      }
-      timeSelector({
-        ele: ".startTimeRange" + listsLength,
-        name: "TravelTimeDO[" + listsLength + "]$startTimeRange",
-        callback: function (val) {
-        }
-      })
-      timeSelector({
-        ele: ".endTimeRange" + listsLength,
-        name: "TravelTimeDO[" + listsLength + "]$endTimeRange",
-        callback: function (val) {
-        }
-      })
-      $("#delBtn_" + listsLength).click(function () {
-        var index = this.id.substring(this.id.indexOf("_") + 1)
-        z.ui.confirm("compid").init({
-          content: "确定删除吗?",
-          onConfirm: function () {
-            var element = document.getElementById("qjsj_" + index);
-            element.remove();
-            buildQjsjSeq();
-          },
-          onCancel: function () {
+    var addDataThat = null;
+    let viewState = z.ui.comm.getUrlParam("_o");
+    let read = z.ui.comm.getUrlParam("read");
+    window.onload = function (ex) {
+        let timeObject = document.querySelector('#timeObject')
+        let arrays = JSON.parse(timeObject.value)
+        var lists = []
+        var trFragment = document.createDocumentFragment();
+        addDataThat = $("#addData")
+        $("#addData").click(function () {
+            addDataThat.attr('disabled', "true");
+            var dataObj = {}
+            trFragment.appendChild(generateTableTrHtml(lists.length))
+            $(".tbody").append(trFragment)
+            let listsLength = lists.length
+            if (arrays.length > 0) {
+                listsLength = arrays.length + lists.length
+            }
+            timeSelector({
+                ele: ".startTimeRange" + listsLength,
+                name: "TravelTimeDO[" + listsLength + "]$startTimeRange",
+                callback: function (val) {
+                }
+            })
+            timeSelector({
+                ele: ".endTimeRange" + listsLength,
+                name: "TravelTimeDO[" + listsLength + "]$endTimeRange",
+                callback: function (val) {
+                }
+            })
+            $("#editBtn_" + listsLength).click(function () {
+                const span = $(this).find("span");
+                const html = span.html();
+                if (html === '编辑') {
+                    span.html('保存')
+                    detailWrite(listsLength);
+                    addDataThat.attr('disabled', "true");
+                    $("#qjsj_" + listsLength).removeClass("form-table-disable")
+                    return;
+                }
+                if (html === '保存') {
+                    span.html('编辑')
+                    detailReadonly(listsLength, false)
+                    addDataThat.removeAttr('disabled')
+                    $("#qjsj_" + listsLength).addClass("form-table-disable")
+                    return;
+                }
+            })
+            $("#delBtn_" + listsLength).click(function () {
+                var index = this.id.substring(this.id.indexOf("_") + 1)
+                z.ui.confirm("compid").init({
+                    content: "确定删除吗?",
+                    onConfirm: function () {
+                        var element = document.getElementById("qjsj_" + index);
+                        element.remove();
+                        buildQjsjSeq();
+                        addDataThat.removeAttr('disabled')
+                    },
+                    onCancel: function () {
+
+                    }
+                })
 
-          }
+            })
+            z.ui.date("[name='TravelTimeDO[" + listsLength + "]$startTime']").init()
+            z.ui.date("[name='TravelTimeDO[" + listsLength + "]$endTime']").init()
+            buildQjsjSeq();
+            lists.push(dataObj)
+        })
+        initPartners();
+        $("#selectProject").click(function () {
+            selectProject(null, setProject);
         })
+        bindEvents();
 
-      })
-      z.ui.date("[name='TravelTimeDO[" + listsLength + "]$startTime']").init()
-      z.ui.date("[name='TravelTimeDO[" + listsLength + "]$endTime']").init()
-      buildQjsjSeq();
-      lists.push(dataObj)
-    })
-    initPartners();
-    $("#selectProject").click(function () {
-      selectProject(null, setProject);
-    })
-    bindEvents();
+        //根据返回的json对象渲染出差时间信息
 
-    //根据返回的json对象渲染出差时间信息
+        let tbodyQjsq = document.querySelector('.tbodyQjsq')
+        let html = ""
+        if (arrays.length > 0) {
+            for (let i = 0; i < arrays.length; i++) {
+                let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
+                let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
+                html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff; height: 63px;"> <td name="qjsj_seq">' + (i + 1) + '</td>'
+                    + '<td>'
+                    + '<div class="form-flex">'
+                    + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                    + '<div class="z-comp-date" name="TravelTimeDO[' + i + ']$startTime">'
+                    + '<input type="text" value="' + startDate + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (i) + '">'
+                    + '</div>'
+                    + '<span class="nbsp"> - </span>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div class="form-flex">'
+                    + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                    + '<div class="z-comp-date" name="TravelTimeDO[' + i + ']$endTime">'
+                    + '<input type="text" value="' + endDate + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (i) + '">'
+                    + '</div>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div class="form-item">'
+                    + '<div class="z-comp-input" name="TravelTimeDO[0]$bz1">'
+                    + '<input type="text" value="">'
+                    + '</div>'
+                    + '</div>'
+                    + '</td>'
+                    + '<td>'
+                    + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>编辑</span>'
+                    + '</div>'
+                    + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>删除</span>'
+                    + '</div>'
+                    + '</td></tr>';
+            }
+            tbodyQjsq.innerHTML = html
 
-    let tbodyQjsq = document.querySelector('.tbodyQjsq')
-    let html = ""
-    if (arrays.length > 0) {
-      for (let i = 0; i < arrays.length; i++) {
-        let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
-        let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
-        html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff"> <td name="qjsj_seq">' + (i + 1) + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-          + '<div class="z-comp-date" name="TravelTimeDO[' + i + ']$startTime">'
-          + '<input type="text" value="' + startDate + '">'
-          + '</div>'
-          + '</div>'
-          + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (i) + '">'
-          + '</div>'
-          + '<span class="nbsp"> - </span>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-          + '<div class="z-comp-date" name="TravelTimeDO[' + i + ']$endTime">'
-          + '<input type="text" value="' + endDate + '">'
-          + '</div>'
-          + '</div>'
-          + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (i) + '">'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-item">'
-          + '<div class="z-comp-input" name="TravelTimeDO[0]$bz1">'
-          + '<input type="text" value="">'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
-          + '<span>删除</span>'
-          + '</div>'
-          + '</td></tr>';
-      }
-      tbodyQjsq.innerHTML = html
+            for (let i = 0; i < arrays.length; i++) {
+                timeSelector({
+                    ele: ".startTimeRange" + (i),
+                    name: "TravelTimeDO[" + (i) + "]$startTimeRange",
+                    callback: function (val) {
+                    }
+                })
 
-      for (let i = 0; i < arrays.length; i++) {
-        timeSelector({
-          ele: ".startTimeRange" + (i),
-          name: "TravelTimeDO[" + (i) + "]$startTimeRange",
-          callback: function (val) {
-          }
-        })
+                timeSelector({
+                    ele: ".endTimeRange" + (i),
+                    name: "TravelTimeDO[" + (i) + "]$endTimeRange",
+                    callback: function (val) {
+                    }
+                })
+                z.ui.date("[name='TravelTimeDO[" + i + "]$startTime']").init()
+                z.ui.date("[name='TravelTimeDO[" + i + "]$endTime']").init()
+                $("#editBtn_" + i).click(function () {
+                    const span = $(this).find("span");
+                    const html = span.html();
+                    if (html === '编辑') {
+                        span.html('保存')
+                        detailWrite(i);
+                        addDataThat.attr('disabled', "true");
+                        $("#qjsj_" + i).removeClass("form-table-disable")
+                        return;
+                    }
+                    if (html === '保存') {
+                        span.html('编辑')
+                        detailReadonly(i, false)
+                        addDataThat.removeAttr('disabled')
+                        $("#qjsj_" + i).addClass("form-table-disable")
+                        return;
+                    }
+                })
+                $("#delBtn_" + i).click(function () {
+                    z.ui.confirm("compid").init({
+                        content: "确定删除吗?",
+                        onConfirm: function () {
+                            var element = document.getElementById("qjsj_" + i);
+                            element.remove();
+                            buildQjsjSeq();
+                            addDataThat.removeAttr('disabled')
+                        },
+                        onCancel: function () {
 
-        timeSelector({
-          ele: ".endTimeRange" + (i),
-          name: "TravelTimeDO[" + (i) + "]$endTimeRange",
-          callback: function (val) {
-          }
-        })
-        z.ui.date("[name='TravelTimeDO[" + i + "]$startTime']").init()
-        z.ui.date("[name='TravelTimeDO[" + i + "]$endTime']").init()
-        $("#delBtn_" + i).click(function () {
-          z.ui.confirm("compid").init({
-            content: "确定删除吗?",
-            onConfirm: function () {
-              var element = document.getElementById("qjsj_" + i);
-              element.remove();
-              buildQjsjSeq();
-            },
-            onCancel: function () {
+                        }
+                    })
 
+                })
             }
-          })
 
-        })
-      }
-
-      let sTbody = document.querySelectorAll('.qjsjClass')
-      for (let i = 0; i < arrays.length; i++) {
-        let startHHmm = moment(arrays[i].startTime).format('HH:mm')
-        let endHHmm = moment(arrays[i].endTime).format('HH:mm')
-        sTbody[i].children[1].children[0].children[1].children[0].children[0].value = startHHmm
-        sTbody[i].children[2].children[0].children[1].children[0].children[0].value = endHHmm
-        sTbody[i].children[3].children[0].children[0].children[0].value = arrays[i].bz1 || ''
-      }
+            let sTbody = document.querySelectorAll('.qjsjClass')
+            for (let i = 0; i < arrays.length; i++) {
+                let startHHmm = moment(arrays[i].startTime).format('HH:mm')
+                let endHHmm = moment(arrays[i].endTime).format('HH:mm')
+                sTbody[i].children[1].children[0].children[1].children[0].children[0].value = startHHmm
+                sTbody[i].children[2].children[0].children[1].children[0].children[0].value = endHHmm
+                sTbody[i].children[3].children[0].children[0].children[0].value = arrays[i].bz1 || ''
+            }
 
 
+        }
 
     }
 
-  }
 
+    //注册业务保存事件
+    function bindEvents() {
+        z.workflow.saveBtn.addListener("onSaveClick", saveForm);
+    }
+
+    function buildQjsjSeq() {
+        let elementsByName = document.getElementsByName("qjsj_seq");
+        for (let i = 0; i < elementsByName.length; i++) {
+            const seqElement = elementsByName[i];
+            seqElement.innerHTML = i + 1;
+        }
+    }
 
+    /*
+  * all 工作流js传递到业务的参数 success执行的方法
+  * istransfer 工作流js传递到业务的参数 是否转件
+  * */
+    function saveForm(all, istransfer) {
+        var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
+        if (postData === false) {
+            all({success: false});
+            return;
+        }
+        postData.createReqVO.instanceId = z.ui.comm.getUrlParam("flowInstanceId");
+        var travelTimeCreateList = new Array()
+        for (let key of Object.keys(postData)) {
+            let mealName = postData[key];
+            if (key.startsWith("TravelTimeDO")) {
+                mealName.startTime = Date.parse(mealName.startTime + " " + mealName.startTimeRange);
+                mealName.endTime = Date.parse(mealName.endTime + " " + mealName.endTimeRange);
+                travelTimeCreateList.push(z.ui.form.childStringify(mealName));
+            }
+        }
+        postData.createReqVO.travelTimeCreateList = travelTimeCreateList;
+        z.ui.ajax({
+            type: "post",
+            url: "/BusinessTravel/update",
+            data: JSON.stringify(postData.createReqVO),
+            contentType: "application/json",
+            success: function () {
+                all({success: true});
+            },
+            error: function () {
+                all({success: false});
+            }
+        })
+    }
 
 
-  //注册业务保存事件
-  function bindEvents() {
-    z.workflow.saveBtn.addListener("onSaveClick", saveForm);
-  }
+    function generateTableTrHtml(index) {
+        let timeObject = document.querySelector('#timeObject')
+        let arrays = JSON.parse(timeObject.value)
+        let indexC = 0
+        if (arrays.length > 0) {
+            indexC = arrays.length + index
+        } else {
+            indexC = index
+        }
 
-  function buildQjsjSeq() {
-    let elementsByName = document.getElementsByName("qjsj_seq");
-    for (let i = 0; i < elementsByName.length; i++) {
-      const seqElement = elementsByName[i];
-      seqElement.innerHTML = i + 1;
+        var trDom = document.createElement("tr");
+        trDom.style.backgroundColor = "#fff";
+        trDom.id = "qjsj_" + indexC;
+        trDom.style.height = "63px";
+        trDom.innerHTML = '<td name="qjsj_seq">' + (indexC + 1) + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+            + '<div class="z-comp-date" name="TravelTimeDO[' + indexC + ']$startTime">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (indexC) + '">'
+            + '</div>'
+            + '<span class="nbsp"> - </span>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
+            + '<div class="z-comp-date" name="TravelTimeDO[' + indexC + ']$endTime">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (indexC) + '">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-item">'
+            + '<div class="z-comp-input" name="TravelTimeDO[0]$bz1">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (indexC) + '" data-index="' + (indexC) + '">'
+            + '<span>保存</span>'
+            + '</div>'
+            + '<div id="delBtn_' + (indexC) + '" class="table-btn delBtn_' + (indexC) + '" data-index="' + (indexC) + '">'
+            + '<span>删除</span>'
+            + '</div>'
+            + '</td>';
+        return trDom;
     }
-  }
 
-  /*
-* all 工作流js传递到业务的参数 success执行的方法
-* istransfer 工作流js传递到业务的参数 是否转件
-* */
-  function saveForm(all, istransfer) {
-    var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
-    if (postData === false) {
-      all({ success: false });
-      return;
-    }
-    postData.createReqVO.instanceId = z.ui.comm.getUrlParam("flowInstanceId");
-    var travelTimeCreateList = new Array()
-    for (let key of Object.keys(postData)) {
-      let mealName = postData[key];
-      if (key.startsWith("TravelTimeDO")) {
-        mealName.startTime = Date.parse(mealName.startTime + " " + mealName.startTimeRange);
-        mealName.endTime = Date.parse(mealName.endTime + " " + mealName.endTimeRange);
-        travelTimeCreateList.push(z.ui.form.childStringify(mealName));
-      }
+    function initPartners() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/user-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.length > 0) {
+                    selectMutiTree("[name='partners']", res, clickPartners)
+                }
+                if ($("[name='createReqVO$partners']").val()) {
+                    z.ui.selecttree("[name='partners']").setValue($("[name='createReqVO$partners']").val().split(","));
+                }
+            },
+            error: function () {
+            }
+        })
     }
-    postData.createReqVO.travelTimeCreateList = travelTimeCreateList;
-    z.ui.ajax({
-      type: "post",
-      url: "/BusinessTravel/update",
-      data: JSON.stringify(postData.createReqVO),
-      contentType: "application/json",
-      success: function () {
-        all({ success: true });
-      },
-      error: function () {
-        all({ success: false });
-      }
-    })
-  }
-
 
-  function generateTableTrHtml(index) {
-    let timeObject = document.querySelector('#timeObject')
-    let arrays = JSON.parse(timeObject.value)
-    let indexC = 0
-    if (arrays.length > 0) {
-      indexC = arrays.length + index
-    } else {
-      indexC = index
+    function clickPartners(even, treeId, treeNode) {
+        $("[name='createReqVO$partners']").val(z.ui.selecttree("[name='partners']").getValue());
     }
 
-    var trDom = document.createElement("tr");
-    trDom.style.backgroundColor = "#fff";
-    trDom.id = "qjsj_" + indexC;
-    trDom.innerHTML = '<td name="qjsj_seq">' + (indexC + 1) + '</td>'
-      + '<td>'
-      + '<div class="form-flex">'
-      + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-      + '<div class="z-comp-date" name="TravelTimeDO[' + indexC + ']$startTime">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange startTimeRange' + (indexC) + '">'
-      + '</div>'
-      + '<span class="nbsp"> - </span>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div class="form-flex">'
-      + '<div class="form-item" style="width: 50%;margin-right: 5px;">'
-      + '<div class="z-comp-date" name="TravelTimeDO[' + indexC + ']$endTime">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '<div style="width: 50%;margin-left: 5px;" class="dateTimeRange endTimeRange' + (indexC) + '">'
-      + '</div>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div class="form-item">'
-      + '<div class="z-comp-input" name="TravelTimeDO[0]$bz1">'
-      + '<input type="text" value="">'
-      + '</div>'
-      + '</div>'
-      + '</td>'
-      + '<td>'
-      + '<div id="delBtn_' + (indexC) + '" class="table-btn delBtn_' + (indexC) + '" data-index="' + (indexC) + '">'
-      + '<span>删除</span>'
-      + '</div>'
-      + '</td>';
-    return trDom;
-  }
+    function setProject(res) {
+        if (res.data) {
+            $("[name='createReqVO$projectId']").val(res.data.id);
+            z.ui.input("[name='createReqVO$projectName']").setValue(res.data.xmmc);
+        }
+    }
 
-  function initPartners() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/user-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.length > 0) {
-          selectMutiTree("[name='partners']", res, clickPartners)
+    function detailReadonly(i, isBool = true) {
+        if (isBool) {
+            $("#delBtn_" + i).css("display", "none");
+            $("#editBtn_" + i).css("display", "none");
         }
-        if ($("[name='createReqVO$partners']").val()) {
-          z.ui.selecttree("[name='partners']").setValue($("[name='createReqVO$partners']").val().split(","));
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = true;
+            detailInput[j].className += "z-readonly"
         }
-      },
-      error: function () {
-      }
-    })
-  }
+    }
 
-  function clickPartners(even, treeId, treeNode) {
-    $("[name='createReqVO$partners']").val(z.ui.selecttree("[name='partners']").getValue());
-  }
-  function setProject(res) {
-    if (res.data) {
-      $("[name='createReqVO$projectId']").val(res.data.id);
-      z.ui.input("[name='createReqVO$projectName']").setValue(res.data.xmmc);
+    function detailWrite(i) {
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = false;
+            $(detailInput[j]).removeClass("z-readonly")
+        }
     }
-  }
 }());