动态增加行和减少行(table表格)


<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="/WEB-INF/jsp/sys/css.jsp"%>
<%@ include file="/WEB-INF/jsp/sys/uploader.jsp"%>
<script type="text/javascript" src="${pageContext.request.contextPath}/modules/oa/expenseManage/expense/ctrl/expense-info.js"></script>
<html lang="zh-cmn-Hans">
    <head>
        <title></title>
        <style type="text/css">
            .layui-textarea{
                min-height: 55px !important;
            }
            #baoxiao th input{
                width: 100%;
                border-radius: 5px;
                outline: none;
                border: 1px solid #9999;
                padding: 0 10px;
                box-sizing: border-box;
                min-height: 40px;
            }
            #baoxiao1 th input{
                width: 100%;
                border-radius: 5px;
                outline: none;
                border: 1px solid #9999;
                padding: 0 10px;
                box-sizing: border-box;
                min-height: 40px;
            }
            .addinput{
                display: flex;
                align-items: center;
                justify-content: center;
            }
            .stream-main-upload-box {
                border: none;
            }
        </style>
    </head> 
        <form class="layui-form" action="" style="padding: 10px;" id="updateform">
            <input hidden id="recId" name="recId" value="${object.recId}" >
            <input hidden id="expenseType" name="expenseType"  value="${object.expenseType}" >
            <c:if test="${object.expenseType=='0'}">
                <span class="header_title">费用报销</span>
            </c:if>
            <c:if test="${object.expenseType=='1'}">
                <span class="header_title">差旅报销</span>
            </c:if>
            <table class="viewTable" >
                <tbody>
                    <tr>
                        <th>申请人</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="hidden"  id="applyUserId" name="applyUserId" class="layui-input" value="${object.applyUserId}" >
                                <input type="text"  disabled class="layui-input" value="${object.applyUserName}" >
                            </div>
                        </td>
                        <th>所属部门</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="hidden"  id="applyUnitCode" name="applyUnitCode" class="layui-input" value="${object.applyUnitCode}" >
                                <input type="text" disabled   class="layui-input" value="${object.applyUnitName}" >
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <th>职务</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="hidden"  id="zwCode" name="zwCode" class="layui-input" value="${object.zwCode}" >
                                <input type="text" disabled  class="layui-input" value="${object.zwName}" >
                            </div>
                        </td>
                        <th class="required">申请时间</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="applyTime" placeholder="请输入申请时间" name="applyTime" lay-verify="required" class="layui-input"  autocomplete="off"
                                       value="<fmt:formatDate value='${object.applyTime}' pattern='yyyy-MM-dd' />" >
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <th class="required">开户行</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="openBank" placeholder="请输入开户行" lay-verify="required" name="openBank"
                                       class="layui-input" value="${object.openBank}" >
                            </div>
                        </td>
                        <th class="required">银行账户</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="bankAccount" placeholder="请输入银行账户" lay-verify="required" name="bankAccount"
                                       class="layui-input" value="${object.bankAccount}" >
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <th class="required">计入部门</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jrUnitCode"  placeholder="请输入计入部门" lay-verify="required" name="jrUnitCode"
                                       class="layui-input" value="${object.jrUnitCode}" >
                            </div>
                        </td>
                        <th>计入项目</th>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jrProject" placeholder="请输入计入项目" name="jrProject"
                                       class="layui-input" value="${object.jrProject}" >
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <th class="required">报销事由</th>
                        <td colspan="3">
                            <textarea name="reason" placeholder="请输入报销事由" class="layui-textarea" maxlength="1000"
                                      autocomplete="off">${object.reason}</textarea>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br>

            <%------------------------------------------------------费用报销start------------------------------------------------------------------%>
            <c:if test="${object.expenseType=='0'}">
                <table class="viewTable" id="baoxiao" lay-filter="baoxiao">
                    <tbody>
                    <tr ><%--头部--%>
                        <th  class="td1 afterTitle" style="text-align: center;background: #9F9F9F">报销费用类型</th>
                        <th  class="td1 afterTitle" style="text-align: center;background: #9F9F9F">实际费用类型</th>
                        <th  class="td1 afterTitle" style="text-align: center;background: #9F9F9F">金额(元)</th>
                        <th  class="td1 afterTitle" style="text-align: center;background: #9F9F9F">单据张数</th>
                        <th  class="td1 afterTitle" style="text-align: center;background: #9F9F9F">报销用途</th>
                    </tr>
                    <tr>
                        <td >
                            <select lay-filter="bxfyType1" id="bxfyType1"  lay-verify="required" >
                                <option value="">请选择报销费用</option>
                                <c:forEach items="${cp:DICTIONARY('bxfyType')}" var="row">
                                    <c:if test="${row.extraCode eq null }" >
                                        <option value="${row.dataCode }">${row.dataValue }</option>
                                    </c:if>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <select lay-filter="sjfyType1" id="sjfyType1"   lay-verify="required">
                                <option value="">请选择实际费用</option>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="costs1"  class="layui-input" value=""  onkeyup="checkNum(this,'FYBX')"  onfocus='this.select()' onchange="toDecimal(this)"
                                        lay-verify="required">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="documnetNumber1" onkeyup="checkNumDj(this)" lay-verify="required"  class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <textarea type="text"  id="remark1" name="remark1"
                                       class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <select lay-filter="bxfyType2" id="bxfyType2"   >
                                <option value="">请选择报销费用</option>
                                <c:forEach items="${cp:DICTIONARY('bxfyType')}" var="row">
                                    <c:if test="${row.extraCode eq null }" >
                                        <option value="${row.dataCode }">${row.dataValue }</option>
                                    </c:if>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <select lay-filter="sjfyType2" id="sjfyType2"   lay-verify="required">
                                <option value="">请选择实际费用</option>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="costs2"  class="layui-input" onkeyup="checkNum(this,'FYBX')"<%--onkeyup="this.value= this.value.match(/\d+(\.\d{0,2})?/) ? this.value.match(/\d+(\.\d{0,2})?/)[0] : ''"--%>
                                       onfocus='this.select()' onchange="toDecimal(this)" value="" lay-verify="required">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="documnetNumber2" onkeyup="checkNumDj(this)"  lay-verify="required" class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <textarea type="text"  id="remark2"  name="remark2"
                                      class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <select lay-filter="bxfyType3" id="bxfyType3"  lay-verify="required" >
                                <option value="">请选择报销费用</option>
                                <c:forEach items="${cp:DICTIONARY('bxfyType')}" var="row">
                                    <c:if test="${row.extraCode eq null }" >
                                        <option value="${row.dataCode }">${row.dataValue }</option>
                                    </c:if>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <select lay-filter="sjfyType3" id="sjfyType3"   lay-verify="required">
                                <option value="">请选择实际费用</option>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="costs3"  class="layui-input" onkeyup="checkNum(this,'FYBX')" onfocus='this.select()'
                                       onchange="toDecimal(this)" value="" lay-verify="required">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="documnetNumber3" onkeyup="checkNumDj(this)" lay-verify="required"  class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <textarea type="text"  id="remark3"  name="remark3"
                                      class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <div class="addinput">
                                <img alt="" style="width: 30px;" src="${pageContext.request.contextPath}/ui/images/add.png" onclick="add('')">&nbsp;&nbsp;&nbsp;
                                <img alt="" style="width: 30px;" src="${pageContext.request.contextPath}/ui/images/remove.png" onclick="remove('')">
                            </div>
                        </td>
                        <td style="text-align: center;">
                            小计
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jeXj" name="jeXj" class="layui-input" value="${object.jeXj}" disabled placeholder="系统自动计算金额">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="djNum" name="djNum" class="layui-input" value="${object.djNum}" disabled placeholder="系统自动计算单据张数">
                            </div>
                        </td>
                        <td >

                        </td>
                    </tr>
                    <tr>
                        <td style="text-align: center;">
                            合计(大写)
                        </td>
                        <td colspan="4">
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="hjDx" name="hjDx" class="layui-input" value="${object.hjDx}" disabled>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td style="text-align: center;">
                            合计(小写)
                        </td>
                        <td colspan="4">
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="hjXx" name="hjXx" class="layui-input" value="${object.hjXx}" disabled>
                            </div>
                        </td>
                    </tr>
                    </tbody>
                </table>
            </c:if>
            <%------------------------------------------------------费用报销end------------------------------------------------------------------%>

            <%------------------------------------------------------差旅报销start------------------------------------------------------------------%>
            <c:if test="${object.expenseType=='1'}">
                <table class="viewTable" id="baoxiaoT">
                    <tbody>
                    <tr >
                        <td class="afterTitle required" >起止日期</td>
                        <td colspan="2">
                            <div class = "layui-inline" >
                                <label class = "layui-form-label" >开始时间:</label >
                                <div class = "layui-input-inline" >
                                    <input type="text" name="startTime" id="startTime" class="layui-input" placeholder="创建时间" autocomplete="off" lay-verify="required"
                                           value="<fmt:formatDate value='${object.startTime}' pattern='yyyy-MM-dd' />">
                                </div >
                            </div >
                        </td>
                        <td colspan="3" class="afterTitle required"><div class = "layui-inline" >
                                <label class = "layui-form-label" >结束时间:</label >
                                <div class = "layui-input-inline" >
                                    <input type="text" name="endTime" id="endTime" class="layui-input" placeholder="创建时间" autocomplete="off" lay-verify="required"
                                           value="<fmt:formatDate value='${object.endTime}' pattern='yyyy-MM-dd' />">
                                </div >
                            </div >
                        </td>
                        <td class="afterTitle required">
                            <div class="layui-input-inline tdcontent" >
                                单据张数
                            </div>
                        </td>
                        <td class="afterTitle">
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"   name="djNum" class="layui-input" value="${object.djNum}" onkeyup="checkNumDjOne(this)">
                            </div>
                        </td>
                        <td class="afterTitle required">出差类型</td>
                        <td class="afterTitle">
                            <select lay-filter="ccType" id="ccType" name="ccType"  lay-verify="required">
                                <option value="">请选择出差类型</option>
                                <c:forEach items="${cp:DICTIONARY('OA_CCLX')}" var="row">
                                    <option value="${row.dataCode }">${row.dataValue }</option>
                                </c:forEach>
                            </select>
                        </td>
                    </tr>
                    <tr >
                        <th rowspan="2" class="afterTitle">日期</th>
                        <th colspan="2" rowspan="2" class="afterTitle">起止地点</th>
                        <th rowspan="2" class="afterTitle">天数</th>
                        <th colspan="2" class="afterTitle">差旅费</th>
                        <th  rowspan="2" class="afterTitle">交通费</th>
                        <th rowspan="2" class="afterTitle">住宿费</th>
                        <th rowspan="2" class="afterTitle">出差补助</th>
                        <th rowspan="2" class="afterTitle">说明</th>
                    </tr>
                    <tr >
                        <th class="afterTitle">交通工具</th>
                        <th class="afterTitle">金额(元)</th>
                    </tr>
                    <tr>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelTime3" lay-verify="required"
                                       placeholder="请选择日期" class="layui-input" autocomplete="off"  >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="startSite3"   placeholder="出发地" lay-verify="required"
                                       class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="endSite3"  class="layui-input" lay-verify="required" value="" placeholder="到达地">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="days3"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNumTs(this)" value="" placeholder="天数">
                            </div>
                        </td>
                        <td >
                            <select lay-filter="travelTool" id="travelTool3" name="travelTool" lay-verify="required" >
                                <option value="">请选择交通工具</option>
                                <c:forEach items="${cp:DICTIONARY('JTGJ')}" var="row">
                                    <option value="${row.dataCode }">${row.dataValue }</option>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelCosts3"  class="layui-input" value=""lay-verify="required"
                                       onkeyup="checkNum(this,'CLFJE')"  onfocus='this.select()' onchange="toDecimal(this)" placeholder="差旅费金额" >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jtCosts3" name="travelCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'JTF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="交通费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="zsCosts3" name="zsCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'ZSF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="住宿费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="ccbz3"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNum(this,'CCBZ')" onfocus='this.select()' onchange="toDecimal(this)" value="" placeholder="出差补助">
                            </div>
                        </td>
                        <td >
                            <textarea type="text" id="remark3"  name="remark3" class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelTime4" lay-verify="required"
                                       placeholder="请选择日期" class="layui-input" autocomplete="off"  >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="startSite4"   placeholder="出发地" lay-verify="required"
                                       class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="endSite4"  class="layui-input" lay-verify="required" value="" placeholder="到达地">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="days4"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNumTs(this)" value="" placeholder="天数">
                            </div>
                        </td>
                        <td >
                            <select lay-filter="travelTool" id="travelTool4" name="travelTool" lay-verify="required" >
                                <option value="">请选择交通工具</option>
                                <c:forEach items="${cp:DICTIONARY('JTGJ')}" var="row">
                                    <option value="${row.dataCode }">${row.dataValue }</option>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelCosts4"  class="layui-input" value=""lay-verify="required"
                                       onkeyup="checkNum(this,'CLFJE')" onfocus='this.select()' onchange="toDecimal(this)" placeholder="差旅费金额">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jtCosts4" name="travelCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'JTF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="交通费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="zsCosts4" name="zsCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'ZSF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="住宿费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="ccbz4"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNum(this,'CCBZ')" onfocus='this.select()' onchange="toDecimal(this)" value="" placeholder="出差补助">
                            </div>
                        </td>
                        <td >
                            <textarea type="text" id="remark4"  name="remark4"  class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelTime5" lay-verify="required"
                                       placeholder="请选择日期" class="layui-input" autocomplete="off"  >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="startSite5"   placeholder="出发地" lay-verify="required"
                                       class="layui-input" value="" >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="endSite5"  class="layui-input" lay-verify="required" value="" placeholder="到达地">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="days5"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNumTs(this)" value="" placeholder="天数">
                            </div>
                        </td>
                        <td >
                            <select lay-filter="travelTool" id="travelTool5" name="travelTool" lay-verify="required" >
                                <option value="">请选择交通工具</option>
                                <c:forEach items="${cp:DICTIONARY('JTGJ')}" var="row">
                                    <option value="${row.dataCode }">${row.dataValue }</option>
                                </c:forEach>
                            </select>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="travelCosts5"  class="layui-input" value=""lay-verify="required"
                                       onkeyup="checkNum(this,'CLFJE')" onfocus='this.select()' onchange="toDecimal(this)" placeholder="差旅费金额">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jtCosts5" name="travelCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'JTF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="交通费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="zsCosts5" name="zsCosts" lay-verify="required"
                                       onkeyup="checkNum(this,'ZSF')" onfocus='this.select()' onchange="toDecimal(this)" class="layui-input" value="" placeholder="住宿费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="ccbz5"  lay-verify="required" class="layui-input"
                                       onkeyup="checkNum(this,'CCBZ')" onfocus='this.select()' onchange="toDecimal(this)" value="" placeholder="出差补助">
                            </div>
                        </td>
                        <td >
                            <textarea type="text" id="remark5"  name="remark5" class="layui-textarea"
                                      maxlength="1000" placeholder="可输入1000字"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            <div class="addinput">
                                <img alt="" style="width: 30px;" src="${pageContext.request.contextPath}/ui/images/add.png" onclick="add('T')">&nbsp;&nbsp;&nbsp;
                                <img alt="" style="width: 30px;" src="${pageContext.request.contextPath}/ui/images/remove.png" onclick="remove('T')">
                            </div>
                        </td>
                        <td colspan="2">
                            小计
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="tsXjT" name="tsXj" class="layui-input" value="${object.tsXj}" disabled placeholder="系统自动计算天数">
                            </div>
                        </td>
                        <td >

                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jeXjT" name="jeXj" class="layui-input" value="" disabled placeholder="系统自动计算金额" >
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="jtfXjT" name="jtfXj" class="layui-input" value=""
                                       disabled placeholder="系统自动计算交通费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="zsfXjT" name="zsfXj" class="layui-input" value=""
                                       disabled placeholder="系统自动计算住宿费">
                            </div>
                        </td>
                        <td >
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="ccbzXjT" name="ccbzXj" class="layui-input" value=""
                                       disabled placeholder="系统自动计算出差补助">
                            </div>
                        </td>
                        <td >
                        </td>
                    </tr>
                    <tr>
                        <td >
                            合计(大写)
                        </td>
                        <td colspan="9">
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="hjDxT" name="hjDx" class="layui-input" value="${object.hjDx}" disabled>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td >
                            合计(小写)
                        </td>
                        <td colspan="9">
                            <div class="layui-input-inline tdcontent" >
                                <input type="text"  id="hjXxT" name="hjXx" class="layui-input" value="${object.hjXx}" disabled>
                            </div>
                        </td>
                    </tr>
                    </tbody>
                </table>
            </c:if>
            <%------------------------------------------------------差旅报销end------------------------------------------------------------------%>

            <br>
            <table class="viewTable" >
                <tbody>
                <tr>
                    <th>附件</th>
                    <td colspan="4">
                        <div style="width: 100%;">
                            <input type="hidden" id="files" name="files" value="${object.files}"/>
                        </div>
                    </td>
                </tr>
                </tbody>
            </table>
             <div style="text-align: center;margin-top: 20px" >
                 <button class="layui-btn" lay-submit="" lay-filter="formSubmitZc" type="button">暂存</button>
                <button class="layui-btn" lay-submit="" lay-filter="formSubmit" type="button">提交</button>
                <%--<button class="layui-btn layui-btn-primary" onclick="CloseWin()">关闭</button>--%>
            </div>
      </form>
<script type="text/javascript">
    var basePath= "${pageContext.request.contextPath}";
    var sxfgythpath = "${cp:SYS_VALUE('sxfgythpath')}";
    setTimeout(function(){},'1000');
    index = setInterval(setUpload, '1000');
    function setUpload() {
        //判断是否为函数
        try {
            if (typeof $('#files', null).uploader === "function") { //是函数 其中 FunName 为函数名称
                clearInterval(index);//调用成功之后清除掉定时器(js加载顺序有点随机,以定时器去保证调用成功)
                $('#files', null).uploader({
                    UploaderPath: window.UploaderPath, // 文件服务器路径
                    ViewContextPath: window.UploaderPath,
                    info: {
                        optId: 'expense-info'      // 业务模块ID(对应的业务功能模块,比如 :收件箱)
                        ,osId:'oa'
                    },
                    //extFilters: [".docx", ".doc", ".png", ".jpeg", ".jpg", ".pdf"]
                });
            } else { //不是函数
                console.log("not is function");
            }
        } catch (e) {
        }
    }
</script>
</html>

 

layui.config({
    base: "/oa/modules/util/"//自定义加载的模块
}).use(['form','layer','jquery','layedit','laydate','laypage','table','commUtil','element'],function(){
    var form = layui.form,
        layer = parent.layer === undefined ? layui.layer : parent.layer,
        curlayer = layui.layer,
        laypage = layui.laypage,
        layedit = layui.layedit,
        laydate = layui.laydate,
        $ = layui.jquery;
        var table = layui.table;
        var commUtil = layui.commUtil;
        var element = layui.element;
    var year = new Date().getFullYear();
    var month = new Date().getMonth() + 1;
    var day = new Date().getDate();
    var todayTime = year + '-' + appendZero(month)  + '-' + appendZero(day);//当前时间出来
    var rownum=0;
    var allnum=0;
    var coluum=0;

    /**
     *差旅的开始和结束时间
     * @type {number}
     */
    var nowTime = new Date().valueOf();
    var start = laydate.render({
        elem: '#startTime',
        type: 'date',
        //max: nowTime,
        btns: ['clear', 'confirm'],
        done: function(value, date){
            //endMax = end.config.max;
            end.config.min = date;
            end.config.min.month = date.month -1;
        }
    });
    var end = laydate.render({
        elem: '#endTime',
        type: 'date',
        //  max: nowTime,
        done: function(value, date){
            if($.trim(value) == ''){
                var curDate = new Date();
                date = {'date': curDate.getDate(), 'month': curDate.getMonth()+1, 'year': curDate.getFullYear()};
            }
            start.config.max = date;
            start.config.max.month = date.month -1;
        }
    });
    //申请时间
    var start = laydate.render({
        elem: '#applyTime',
        type: 'date',
        trigger: 'click',
        value:todayTime,
        calendar: true,
        done: function(value, date, endDate){
        }
    });
    //TODO 差旅报销校验单据数
    window.checkNumDjOne = function (date) {
        var totalDj=0;
        var num=date.value;
        if(num!=0){
            //var reg = /^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/;   //>0不包括0的整数正则
            var reg = /^[1-9]\d*$/;
            if (reg.test(num)) {
                $("#djNum").val("");
            }else{
                date.value="";
                layer.msg("请输入正整数!", {icon: 0});
            }
        }
    }
    //TODO 费用报销计算单据总数
    window.checkNumDj = function (date) {
        var totalDj=0;
        var num=date.value;
        if(num!=0){
            //var reg = /^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/;   //>0不包括0的整数正则
            var reg = /^[1-9]\d*$/;
            if (reg.test(num)) {
                var tableObj = document.getElementById("baoxiao");
                //-3是因为后边三行不计算
                for (var i = 1; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                    if(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value!=""){
                        totalDj += parseFloat(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                    }
                     /*alert(tableObj.rows[i].cells[3].innerHTML);*/
                }
                $("#djNum").val(totalDj);
            }else{
                date.value="";
                layer.msg("请输入正整数!", {icon: 0});
            }
        }
    }
    //TODO 差旅报销计算天数总数
    window.checkNumTs = function (date) {
        var totalDj=0;
        var num=date.value;
        if(num!=0){
            var reg = /^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/;   //>0不包括0的整数正则
            /*var reg = /^[1-9]\d*$/;*/
            if (reg.test(num)) {
                var tableObj = document.getElementById("baoxiaoT");
                //-3是因为后边三行不计算
                for (var i = 3; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row    第四列天数计算总和
                    /*alert(tableObj.rows[i].cells[3].innerHTML);*/
                    if(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value!=""){
                        totalDj += parseFloat(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                    }
                }
                $("#tsXjT").val(totalDj);
            }else{
                date.value="";
                layer.msg("请输入正数!", {icon: 0});
            }
        }
    }
    //TODO  合计小写转大写   将数字自动转换成保留两位小数的金额     计算金额
    window.checkNum = function (date,types) {
        if('FYBX'==types){//费用报销计算小计合计
            var tmpVal = date.value;
            var totalXj=0;
            if (tmpVal) {
                var tmpVal = tmpVal.replace(/[^\d\.]/g, '');
                var reg = /^(0|([1-9]\d*))(\.\d{1,2})?$/; //正则验证保留 最多允许后输入两位小数
                if (!reg.test(tmpVal)) {
                    tmpVal = tmpVal + "";
                    tmpVal = tmpVal.substring(0, tmpVal.indexOf(".") + 3);
                    var n = (tmpVal.split('.')).length - 1;
                    if (n > 1) {
                        tmpVal = tmpVal.substring(0, tmpVal.indexOf("."));
                    }
                }
                date.value = tmpVal;
                var tableObj = document.getElementById("baoxiao");
                //-3是因为后边三行不计算
                for (var i = 1; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                    if(tableObj.rows[i].cells[2].getElementsByTagName("input")[0].value!=""){
                        totalXj += parseFloat(tableObj.rows[i].cells[2].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                    }
                }
                var f = Math.round(totalXj * 100) / 100;
                var s = f.toString();
                var rs = s.indexOf('.');
                if (rs < 0) {
                    rs = s.length;
                    s += '.';
                }
                while (s.length <= rs + 2) {
                    s += '0';
                }
                $("#jeXj").val(s);
                $("#hjXx").val(s);
                $("#hjDx").val( changeNumMoneyToChinese(s));
            } else {
                date.value = "";
            }
        }else{//报销填写自动计算
            var tmpVal = date.value;
            var totalXj=0;
            if (tmpVal) {
                var tmpVal = tmpVal.replace(/[^\d\.]/g, '');
                var reg = /^(0|([1-9]\d*))(\.\d{1,2})?$/; //正则验证保留 最多允许后输入两位小数
                if (!reg.test(tmpVal)) {
                    tmpVal = tmpVal + "";
                    tmpVal = tmpVal.substring(0, tmpVal.indexOf(".") + 3);
                    var n = (tmpVal.split('.')).length - 1;
                    if (n > 1) {
                        tmpVal = tmpVal.substring(0, tmpVal.indexOf("."));
                    }
                }
                date.value = tmpVal;
                var tableObj = document.getElementById("baoxiaoT");
                //-3是因为后边三行不计算  i=3表示从第二行开始
                for (var i = 3; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                    if('CLFJE'==types){//差旅费金额
                        if(tableObj.rows[i].cells[5].getElementsByTagName("input")[0].value!=""){
                            totalXj += parseFloat(tableObj.rows[i].cells[5].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                        }
                    }else if('JTF'==types){//交通费
                        if(tableObj.rows[i].cells[6].getElementsByTagName("input")[0].value!=""){
                            totalXj += parseFloat(tableObj.rows[i].cells[6].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                        }
                    }else if('ZSF'==types){//住宿费
                        if(tableObj.rows[i].cells[7].getElementsByTagName("input")[0].value!=""){
                            totalXj += parseFloat(tableObj.rows[i].cells[7].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                        }
                    }else if('CCBZ'==types){//出差补助
                        if(tableObj.rows[i].cells[8].getElementsByTagName("input")[0].value!=""){
                            totalXj += parseFloat(tableObj.rows[i].cells[8].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                        }
                    }
                }
                if('CLFJE'==types){//差旅费金额
                    $("#jeXjT").val(appendZeroNew(totalXj));
                }else if('JTF'==types){//交通费
                    $("#jtfXjT").val(appendZeroNew(totalXj));
                }else if('ZSF'==types){//住宿费
                    $("#zsfXjT").val(appendZeroNew(totalXj));
                }else if('CCBZ'==types){//出差补助
                    $("#ccbzXjT").val(appendZeroNew(totalXj));
                }
                var jeXjT=$("#jeXjT").val()==""?"0":$("#jeXjT").val();
                var jtfXjT=$("#jtfXjT").val()==""?"0":$("#jtfXjT").val();
                var zsfXjT=$("#zsfXjT").val()==""?"0":$("#zsfXjT").val();
                var ccbzXjT=$("#ccbzXjT").val()==""?"0":$("#ccbzXjT").val();
                var heJi=parseFloat(jeXjT)+parseFloat(jtfXjT)+parseFloat(zsfXjT)+parseFloat(ccbzXjT)
                $("#hjXxT").val(heJi);
                $("#hjDxT").val( changeNumMoneyToChinese(heJi));
            } else {
                date.value = "";
            }
        }
    }
    //补零
    function appendZeroNew(obj)
    {
        var f = Math.round(obj * 100) / 100;
        var s = f.toString();
        var rs = s.indexOf('.');
        if (rs < 0) {
            rs = s.length;
            s += '.';
        }
        while (s.length <= rs + 2) {
            s += '0';
        }
        return s;
    }
    //费用报销表单报销费用类型和实际费用类型关联  字段处理
    form.on('select', function(obj){
        var selectId=obj.elem.getAttribute("id");
        //报销费用类型  和实际费用类型级联,选实际费用类型之前,必须选报销费用类型
        var text=selectId.substring(selectId.length-1,selectId.length);
        var text1=selectId.substring(0,selectId.length-1);
        //如果选择的是实际费用类型,需要判断对应行的报销费用类型是否选择,没有选择就提示
        if($("#bxfyType"+text).val()=="" && text1.indexOf("sjfyType")>-1){
            layer.msg("请先选择报销费用类型", {icon: 0});
        }else{
            //如果是实际费用类型
            if(text1.indexOf("bxfyType")>-1){
                //如果选择的是报销费用类型,需要对应的加载实际费用类型
                var extraCode=$("#"+selectId).val();
                $.get(basePath+'/service/commomGetInfo/getDictionary/bxfyType', function(data){
                    var jsonArr = new Array();
                    jsonArr=data.data;
                    var html="<option value=''>请选择实际费用</option>";
                    for(var i=0;i<jsonArr.length;i++){
                        if(extraCode==jsonArr[i].extraCode){
                            html+="<option value='"+jsonArr[i].dataCode+"'>"+jsonArr[i].dataValue+"</option>";
                        }
                    }
                    $('#sjfyType'+text).html(html);
                    form.render('select');
                });
            }
        }
    });
    //费用报销表单  字段处理
    form.on('select(bxfyType)', function(obj){
        var rows = $(_this).closest("tr").index();
        var extraCode=$("#bxfyType").val();
        $.get(basePath+'/service/commomGetInfo/getDictionary/bxfyType', function(data){
            var jsonArr = new Array();
            jsonArr=data.data;
            var html="<option value=''>请选择实际费用</option>";
            for(var i=0;i<jsonArr.length;i++){
                if(extraCode==jsonArr[i].extraCode){
                    html+="<option value='"+jsonArr[i].dataCode+"'>"+jsonArr[i].dataValue+"</option>";
                }
            }
            $('#sjfyType').html(html);
            form.render('select');
        });
    });
    form.on('select(sjfyType)', function(obj){
        var extraCode=$("#bxfyType").val();
        if(extraCode==""){
            layer.msg("请先选择报销费用类型", {icon: 0});
        }
    });
    //添加行
    window.add = function (a) {
        if(a=='T'){//差旅报销表单添加行
            allnum = $("#baoxiaoT").find("tr").length;
            //给当前行后边加一行   在小计上边添加行
            var i=allnum-4;
            //获取table第一行 $("#tab tr").eq(0)
            //获取table倒数第二行 $("#tab tr").eq(-2)
            var $tr=$("#baoxiaoT tr").eq(i);
            var num=allnum-3;//最后三行不计算在内
            if(allnum<12){
                //获取字典项的值
                $.get(basePath+'/service/commomGetInfo/getDictionary/JTGJ', function(data){
                    var jsonArr = new Array();
                    jsonArr=data.data;
                    var html1="<option value=''>请选择交通工具</option>";
                    for(var i=0;i<jsonArr.length;i++){
                        html1+="<option value='"+jsonArr[i].dataCode+"'>"+jsonArr[i].dataValue+"</option>";
                    }
                    //添加行
                    var trHtml="<tr>" +
                        " <td ><div class='layui-input-inline tdcontent' >" +
                        " <input type=\"text\"  id='travelTime"+num+"' lay-verify=\"required\" placeholder=\"请选择日期\" class=\"layui-input\" autocomplete=\"off\"  ></div>" +
                        " </td>" +
                        " <td ><div class='layui-input-inline tdcontent'>" +
                        " <input type=\"text\"  id='startSite"+num+"'   placeholder=\"出发地\" lay-verify=\"required\" class=\"layui-input\" value=\"\" ></div>" +
                        " </td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='endSite"+num+"'  class=\"layui-input\" lay-verify=\"required\" value=\"\" placeholder=\"到达地\"> </div>" +
                        " </td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='days"+num+"'  lay-verify=\"required\" class=\"layui-input\" value=\"\" placeholder=\"天数\"" +
                        " onkeyup=\"checkNumTs(this)\" > </div>" +
                        " </td>" +
                        " <td ><select  id='travelTool"+num+"'   lay-filter=\"travelTool\" name=\"travelTool\" lay-verify=\"required\" > " +html1+"</select>" +
                        " </td> " +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='travelCosts"+num+"'  lay-verify=\"required\" class=\"layui-input\" value=\"\" placeholder=\"差旅费金额\"" +
                        " onkeyup=\"checkNum(this,'CLFJE')\" onfocus=\"this.select()\"  onchange=\"toDecimal(this)\" > </div>" +
                        " </td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='jtCosts"+num+"'  lay-verify=\"required\" class=\"layui-input\" value=\"\" placeholder=\"交通费\"" +
                        " onkeyup=\"checkNum(this,'JTF')\" onfocus=\"this.select()\" onchange=\"toDecimal(this)\" > </div>" +
                        " </td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='zsCosts"+num+"'  lay-verify=\"required\" class=\"layui-input\" value=\"\" placeholder=\"住宿费\"" +
                        " onkeyup=\"checkNum(this,'ZSF')\" onfocus=\"this.select()\" onchange=\"toDecimal(this)\" > </div>" +
                        " </td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='ccbz"+num+"'  lay-verify=\"required\" class=\"layui-input\" value=\"\" placeholder=\"出差补助\"" +
                        " onkeyup=\"checkNum(this,'CCBZ')\" onfocus=\"this.select()\" onchange=\"toDecimal(this)\"> </div>" +
                        " </td>" +
                        " <td ><textarea type=\"text\"  id='remark"+num+"' name='remark"+num+"' class=\"layui-textarea\" maxlength=\"1000\" placeholder=\"可输入1000字\"></textarea> " +
                        " </td>"+
                        " </tr>";
                    //当前行之后插入一行
                    $tr.after(trHtml);
                    form.render();
                    var start = laydate.render({
                        elem: '#travelTime'+num,
                        type: 'date',
                        trigger: 'click',
                        /*value:todayTime,*/
                        calendar: true,
                        done: function(value, date, endDate){
                        }
                    });
                });
            }else{
                top.layer.msg("最多只能添加6条明细!", {icon: 0});
            }
        }else{//费用表单添加行
            allnum = $("#baoxiao").find("tr").length;
            //给当前行后边加一行
            var i=allnum-4;
            //获取table第一行 $("#tab tr").eq(0)
            //获取table倒数第二行 $("#tab tr").eq(-2)
            var $tr=$("#baoxiao tr").eq(i);
            var html="";
            var num=allnum-3;
            if(allnum<10){
                //获取字典项的值
                $.get(basePath+'/service/commomGetInfo/getDictionary/bxfyType', function(data){
                    var jsonArr = new Array();
                    jsonArr=data.data;
                    html="<option value=''>请选择报销费用</option>";
                    var html1="<option value=''>请选择实际费用</option>";
                    for(var i=0;i<jsonArr.length;i++){
                        if(jsonArr[i].extraCode==undefined){
                            html+="<option value='"+jsonArr[i].dataCode+"'>"+jsonArr[i].dataValue+"</option>";
                        }
                    }
                    //添加行
                    var trHtml="<tr>" +
                        " <td ><select lay-filter='bxfyType"+num+"' id='bxfyType"+num+"'   lay-verify=\"required\">" +html+
                        " </select></td>" +
                        " <td ><select lay-filter='sjfyType"+num+"' id='sjfyType"+num+"'  lay-verify=\"required\" >"+html1+"</select></td>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" >" +
                        " <input type=\"text\"  id='costs"+num+"'  class=\"layui-input\" value=\"\"  lay-verify=\"required\" " +
                        " onkeyup=\"checkNum(this,'FYBX')\" onfocus=\"this.select()\" onchange=\"toDecimal(this)\" placeholder=\"金额\"></div>" +
                        " <td ><div class=\"layui-input-inline tdcontent\" ><input type=\"text\"  id='documnetNumber"+num+"' onkeyup=\"checkNumDj(this)\" placeholder=\"单据张数\"  class=\"layui-input\" value=\"\"  lay-verify=\"required\">" +
                        " </div></td><td ><textarea type=\"text\"  id='remark"+num+"' name='remark"+num+"' class=\"layui-textarea\" maxlength=\"1000\" placeholder=\"可输入1000字\"></textarea> " +
                        " </td></tr>";
                    //当前行之后插入一行
                    $tr.after(trHtml);
                    form.render();
                });
            }else{
                top.layer.msg("最多只能添加6条明细!", {icon: 0});
            }
        }
        if(typeof frameWH != 'undefined' && frameWH instanceof Function){
            frameWH();
        }
    }
    //删除行
    window.remove = function (a) {
        if(a=='T') {//差旅报销表单添删除行
            //allnum-3  因为后三行固定必须有,第一行也必须有不能删
            allnum = $("#baoxiaoT").find("tr").length;
            var i=allnum-4;
            if(i==3){
                top.layer.msg("第一行不能删除!", {icon: 0});
            }else{
                $("#baoxiaoT tr:eq(" + i + ")").remove();
                i--;
            }
            var totalTs=0;
            //删除后重新计算单据数据
            var tableObj = document.getElementById("baoxiaoT");
            //-3是因为后边三行不计算
            for (var i = 3; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row    第四列天数计算总和
                if(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value!=""){
                    totalTs += parseFloat(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
            }
            $("#tsXjT").val(totalTs);
            //删除行重新计算合计小写
            var totalXj=0;
            var CLFJEXj=0;
            var JTFXj=0;
            var ZSFXj=0;
            var CCBZXj=0;
            //-3是因为后边三行不计算  i=3表示从第二行开始
            for (var i = 3; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                //差旅费金额
                if(tableObj.rows[i].cells[5].getElementsByTagName("input")[0].value!=""){
                    CLFJEXj += parseFloat(tableObj.rows[i].cells[5].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
                //交通费
                if(tableObj.rows[i].cells[6].getElementsByTagName("input")[0].value!=""){
                    JTFXj += parseFloat(tableObj.rows[i].cells[6].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
                //住宿费
                if(tableObj.rows[i].cells[7].getElementsByTagName("input")[0].value!=""){
                    ZSFXj += parseFloat(tableObj.rows[i].cells[7].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
                //出差补助
                if(tableObj.rows[i].cells[8].getElementsByTagName("input")[0].value!=""){
                    CCBZXj += parseFloat(tableObj.rows[i].cells[8].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
            }
            $("#jeXjT").val(appendZeroNew(CLFJEXj));
            $("#jtfXjT").val(appendZeroNew(JTFXj));
            $("#zsfXjT").val(appendZeroNew(ZSFXj));
            $("#ccbzXjT").val(appendZeroNew(CCBZXj));
            var jeXjT=$("#jeXjT").val()==""?"0":$("#jeXjT").val();
            var jtfXjT=$("#jtfXjT").val()==""?"0":$("#jtfXjT").val();
            var zsfXjT=$("#zsfXjT").val()==""?"0":$("#zsfXjT").val();
            var ccbzXjT=$("#ccbzXjT").val()==""?"0":$("#ccbzXjT").val();
            var heJi=parseFloat(jeXjT)+parseFloat(jtfXjT)+parseFloat(zsfXjT)+parseFloat(ccbzXjT)
            $("#hjXxT").val(heJi);
            $("#hjDxT").val( changeNumMoneyToChinese(heJi));
        }else{
            //allnum-3  因为后三行固定必须有,第一行也必须有不能删
            allnum = $("#baoxiao").find("tr").length;
            var i=allnum-4;
            if(i==1){
                top.layer.msg("第一行不能删除!", {icon: 0});
            }else{
                $("#baoxiao tr:eq(" + i + ")").remove();
                i--;
            }
            var totalDj=0;
            //删除后重新计算单据数据
            var tableObj = document.getElementById("baoxiao");
            //-3是因为后边三行不计算
            for (var i = 1; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                if(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value!=""){
                    totalDj += parseFloat(tableObj.rows[i].cells[3].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
                /*alert(tableObj.rows[i].cells[3].innerHTML);*/
            }
            $("#djNum").val(totalDj);

            //删除行重新计算合计小写
            var totalXj=0;
            var tableObjHj = document.getElementById("baoxiao");
            //-3是因为后边三行不计算
            for (var i = 1; i < tableObj.rows.length-3; i++) {  //遍历Table的所有Row
                if(tableObjHj.rows[i].cells[2].getElementsByTagName("input")[0].value!=""){
                    totalXj += parseFloat(tableObj.rows[i].cells[2].getElementsByTagName("input")[0].value);  //获取Table中单元格的内容
                }
            }
            var f = Math.round(totalXj * 100) / 100;
            var s = f.toString();
            var rs = s.indexOf('.');
            if (rs < 0) {
                rs = s.length;
                s += '.';
            }
            while (s.length <= rs + 2) {
                s += '0';
            }
            $("#jeXj").val(s);
            $("#hjXx").val(s);
            $("#hjDx").val( changeNumMoneyToChinese(s));
        }
        if(typeof frameWH != 'undefined' && frameWH instanceof Function){
            frameWH();
        }
    }
    //监听提交
    form.on('submit(formSubmit)', function(data){
        var loading = curlayer.load(2, {offset: ['40%', '50%'], shade: [0.1, '#3595CC'], area: ['10%', '10%']});
        var recId='0';
        var tableValues = [];
        if(data.field.recId!=''){
            recId=data.field.recId;
        }
        data.field.states='2';// 0审批完成     1驳回待处理    2待审批     3暂存
        if(data.field.expenseType=="0"){//费用报销
            var table=document.getElementById("baoxiao");
            var rows=table.rows;
            for(var i=1;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  bxfyType1
                        var val = $("#bxfyType"+i).val();
                        rowobj['bxfyType'] = val;
                    }else if(j==1){
                        var val = $("#sjfyType"+i).val();
                        rowobj['sjfyType'] = val;
                    }else if(j==2){
                        var val = $("#costs"+i).val();
                        rowobj['costs'] = val;
                    }else if(j==3){
                        var val = $("#documnetNumber"+i).val();
                        rowobj['documnetNumber'] = val;
                    }else if(j==4){
                        /*var val = $("#remark"+i).text();*/
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }else{//差旅报销
            var table=document.getElementById("baoxiaoT");
            var rows=table.rows;
            for(var i=3;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  travelTime
                        var val = $("#travelTime"+i).val();
                        rowobj['travelTime'] = val;
                    }else if(j==1){
                        var val = $("#startSite"+i).val();
                        rowobj['startSite'] = val;
                    }else if(j==2){
                        var val = $("#endSite"+i).val();
                        rowobj['endSite'] = val;
                    }else if(j==3){
                        var val = $("#days"+i).val();
                        rowobj['days'] = val;
                    }else if(j==4){
                        var val = $("#travelTool"+i).val();
                        rowobj['travelTool'] = val;
                    }else if(j==5){
                        var val = $("#travelCosts"+i).val();
                        rowobj['travelCosts'] = val;
                    }else if(j==6){
                        var val = $("#jtCosts"+i).val();
                        rowobj['jtCosts'] = val;
                    }else if(j==7){
                        var val = $("#zsCosts"+i).val();
                        rowobj['zsCosts'] = val;
                    }else if(j==8){
                        var val = $("#ccbz"+i).val();
                        rowobj['ccbz'] = val;
                    }else if(j==9){
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }
        var expenseList=JSON.stringify(tableValues)
        data.field.lists=expenseList;
        $.ajax({
            type: "PUT",
            url: basePath+'/service/expenseManage/expense/'+recId,
            data: data.field,
            /*async:false,*/
            dataType: "json",
            success: function(data){
                if(data.code=='0'){
                    curlayer.close(loading);
                    layer.msg("操作成功", {icon: 1});
                    parent.location.reload();
                } else {
                    curlayer.close(loading);
                    layer.msg("操作失败", {icon: 0});
                }
            }
        });
    });
    //监听暂存
    form.on('submit(formSubmitZc)', function(data){
        var loading = curlayer.load(2, {offset: ['40%', '50%'], shade: [0.1, '#3595CC'], area: ['10%', '10%']});
        var recId='0';
        var tableValues = [];
        if(data.field.recId!=''){
            recId=data.field.recId;
        }
        if(data.field.expenseType=="0"){//费用报销
            var table=document.getElementById("baoxiao");
            var rows=table.rows;
            for(var i=1;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  bxfyType1
                        var val = $("#bxfyType"+i).val();
                        rowobj['bxfyType'] = val;
                    }else if(j==1){
                        var val = $("#sjfyType"+i).val();
                        rowobj['sjfyType'] = val;
                    }else if(j==2){
                        var val = $("#costs"+i).val();
                        rowobj['costs'] = val;
                    }else if(j==3){
                        var val = $("#documnetNumber"+i).val();
                        rowobj['documnetNumber'] = val;
                    }else if(j==4){
                        /*var val = $("#remark"+i).text();*/
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }else{//差旅报销
            var table=document.getElementById("baoxiaoT");
            var rows=table.rows;
            for(var i=3;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  travelTime
                        var val = $("#travelTime"+i).val();
                        rowobj['travelTime'] = val;
                    }else if(j==1){
                        var val = $("#startSite"+i).val();
                        rowobj['startSite'] = val;
                    }else if(j==2){
                        var val = $("#endSite"+i).val();
                        rowobj['endSite'] = val;
                    }else if(j==3){
                        var val = $("#days"+i).val();
                        rowobj['days'] = val;
                    }else if(j==4){
                        var val = $("#travelTool"+i).val();
                        rowobj['travelTool'] = val;
                    }else if(j==5){
                        var val = $("#travelCosts"+i).val();
                        rowobj['travelCosts'] = val;
                    }else if(j==6){
                        var val = $("#jtCosts"+i).val();
                        rowobj['jtCosts'] = val;
                    }else if(j==7){
                        var val = $("#zsCosts"+i).val();
                        rowobj['zsCosts'] = val;
                    }else if(j==8){
                        var val = $("#ccbz"+i).val();
                        rowobj['ccbz'] = val;
                    }else if(j==9){
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }
        var expenseList=JSON.stringify(tableValues)
        data.field.lists=expenseList;
        data.field.states='3';// 0审批完成     1驳回待处理    2待审批     3暂存
        $.ajax({
            type: "PUT",
            url: basePath+'/service/expenseManage/expense/'+recId,
            data: data.field,
            /*async:false,*/
            dataType: "json",
            success: function(data){
                if(data.code=='0'){
                    curlayer.close(loading);
                    layer.msg("操作成功", {icon: 1});
                    parent.location.reload();
                } else {
                    curlayer.close(loading);
                    layer.msg("操作失败", {icon: 0});
                }
            }
        });
    });
    //退回重新提交流程
    form.on('submit(revertFormSubmit)', function(data){
        Loading();
        var recId='0';
        var tableValues = [];
        if(data.field.recId!=''){
            recId=data.field.recId;
        }
        data.field.states='2';// 0审批完成     1驳回待处理    2待审批     3暂存
        if(data.field.expenseType=="0"){//费用报销
            var table=document.getElementById("baoxiao");
            var rows=table.rows;
            for(var i=1;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  bxfyType1
                        var val = $("#bxfyType"+i).val();
                        rowobj['bxfyType'] = val;
                    }else if(j==1){
                        var val = $("#sjfyType"+i).val();
                        rowobj['sjfyType'] = val;
                    }else if(j==2){
                        var val = $("#costs"+i).val();
                        rowobj['costs'] = val;
                    }else if(j==3){
                        var val = $("#documnetNumber"+i).val();
                        rowobj['documnetNumber'] = val;
                    }else if(j==4){
                        /*var val = $("#remark"+i).text();*/
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }else{//差旅报销
            var table=document.getElementById("baoxiaoT");
            var rows=table.rows;
            for(var i=3;i<rows.length-3;i++) {
                var rowobj = {};
                for(var j=0;j<rows[i].cells.length;j++) {
                    //alert();
                    if(j==0){//第一列  travelTime
                        var val = $("#travelTime"+i).val();
                        rowobj['travelTime'] = val;
                    }else if(j==1){
                        var val = $("#startSite"+i).val();
                        rowobj['startSite'] = val;
                    }else if(j==2){
                        var val = $("#endSite"+i).val();
                        rowobj['endSite'] = val;
                    }else if(j==3){
                        var val = $("#days"+i).val();
                        rowobj['days'] = val;
                    }else if(j==4){
                        var val = $("#travelTool"+i).val();
                        rowobj['travelTool'] = val;
                    }else if(j==5){
                        var val = $("#travelCosts"+i).val();
                        rowobj['travelCosts'] = val;
                    }else if(j==6){
                        var val = $("#jtCosts"+i).val();
                        rowobj['jtCosts'] = val;
                    }else if(j==7){
                        var val = $("#zsCosts"+i).val();
                        rowobj['zsCosts'] = val;
                    }else if(j==8){
                        var val = $("#ccbz"+i).val();
                        rowobj['ccbz'] = val;
                    }else if(j==9){
                        var val =$("textarea[name='remark"+i+"']").val();
                        rowobj['remark'] = val;
                    }
                }
                tableValues.push(rowobj);
            }
        }
        var expenseList=JSON.stringify(tableValues)
        data.field.lists=expenseList;
        $.ajax({
            type: "PUT",
            url: basePath+'/service/expenseManage/expense/resubmit',
            data: data.field,
            /*async:false,*/
            dataType: "json",
            success: function(data){
                /*if(data.code=='0'){
                    curlayer.close(loading);
                    layer.msg("操作成功", {icon: 1});
                    parent.location.reload();
                } else {
                    layer.close(index);
                    layer.msg("操作失败", {icon: 0});
                }*/
                var currentlayer=parent.parent.layer;
                var currentparent=parent.parent;
                if(parent.parent.parent[0].ContextPath!=undefined){
                    currentlayer=parent.parent.parent.layer;
                    currentparent=parent.parent.parent;
                }else{
                    currentlayer=parent.parent.layer;
                    currentparent=parent.parent;
                }
                if(data.code!='0'){
                    layer.msg(data.data.msg, {icon:0,time: 2000}, function () {
                        layer.closeAll();
                        currentparent.location.reload();
                    });
                } else {
                    top.layer.msg("操作成功", {icon:1}, function () {
                        layer.closeAll();
                        currentparent.location.reload();
                    });
                }
            }
        });
    });
    //自动补全小数点后两位
    window.toDecimal = function (date) {
        var num=date.value;
        var f = Math.round(num * 100) / 100;
        var s = f.toString();
        var rs = s.indexOf('.');
        if (rs < 0) {
            rs = s.length;
            s += '.';
        }
        while (s.length <= rs + 2) {
            s += '0';
        }
        date.value=s;
    }
    //补零
    function appendZero(obj)
    {
        if(obj<10) return "0" +""+ obj;
        else return obj;
    }
    function changeNumMoneyToChinese(money)
    {
        var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //汉字的数字
        var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
        var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
        var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
        var cnInteger = "整"; //整数金额时后面跟的字符
        var cnIntLast = "元"; //整型完以后的单位
        var maxNum = 999999999999999.9999; //最大处理的数字
        var IntegerNum; //金额整数部分
        var DecimalNum; //金额小数部分
        var ChineseStr = ""; //输出的中文金额字符串
        var parts; //分离金额后用的数组,预定义
        var Symbol="";//正负值标记
        if (money == "") {
            return "";
        }
        money = parseFloat(money);
        if (money >= maxNum) {
            alert('超出最大处理数字');
            return "";
        }
        if (money == 0) {
            ChineseStr = cnNums[0] + cnIntLast + cnInteger;
            return ChineseStr;
        }
        if(money<0)
        {
            money=-money;
            Symbol="负 ";
        }
        money = money.toString(); //转换为字符串
        if (money.indexOf(".") == -1) {
            IntegerNum = money;
            DecimalNum = '';
        } else {
            parts = money.split(".");
            IntegerNum = parts[0];
            DecimalNum = parts[1].substr(0, 4);
        }
        if (parseInt(IntegerNum, 10) > 0) { //获取整型部分转换
            var zeroCount = 0;
            var IntLen = IntegerNum.length;
            for (var i = 0; i < IntLen; i++) {
                var n = IntegerNum.substr(i, 1);
                var p = IntLen - i - 1;
                var q = p / 4;
                var m = p % 4;
                if (n == "0") {
                    zeroCount++;
                }
                else {
                    if (zeroCount > 0) {
                        ChineseStr += cnNums[0];
                    }
                    zeroCount = 0; //归零
                    ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
                }
                if (m == 0 && zeroCount < 4) {
                    ChineseStr += cnIntUnits[q];
                }
            }
            ChineseStr += cnIntLast;
            //整型部分处理完毕
        }
        if (DecimalNum != '') { //小数部分
            var decLen = DecimalNum.length;
            for (var i = 0; i < decLen; i++) {
                var n = DecimalNum.substr(i, 1);
                if (n != '0') {
                    ChineseStr += cnNums[Number(n)] + cnDecUnits[i];
                }
            }
        }
        if (ChineseStr == '') {
            ChineseStr += cnNums[0] + cnIntLast + cnInteger;
        } else if (DecimalNum == '') {
            ChineseStr += cnInteger;
        }
        ChineseStr = Symbol +ChineseStr;

        return ChineseStr;
    }
    /**
     * 差旅时间
     */
    var start = laydate.render({
        elem: '#travelTime3',
        type: 'date',
        trigger: 'click',
        /*value:todayTime,*/
        calendar: true,
        done: function(value, date, endDate){
        }
    });
    var start = laydate.render({
        elem: '#travelTime4',
        type: 'date',
        trigger: 'click',
        /*value:todayTime,*/
        calendar: true,
        done: function(value, date, endDate){
        }
    });
    var start = laydate.render({
        elem: '#travelTime5',
        type: 'date',
        trigger: 'click',
        /*value:todayTime,*/
        calendar: true,
        done: function(value, date, endDate){
        }
    });
})

 

posted on 2022-03-30 16:10  IT-QI  阅读(142)  评论(0编辑  收藏  举报