<%@ 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('')">
<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')">
<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){
}
});
})