Browse Source
前端定义报销单审批流程模型 修改报销列表集合查询方法 修改报销 buildAuthority方法实现动态识别发起人和其关联角色 解决报销单前端列表展示报错问题:修改报销单的查询方法,修改部门、岗位、姓名字段单词错误 解决报销单新增报错问题:delFlag单词错误 解决报销单修改报错问题:audiStatus字段重复 解决报销单新增报错问题:audiStatus字段重复 解决报销单查询详情接口报错问题:多了字段instance_type_name 解决报销部门上级经理审核前端页面报错问题:修改姓名字段,修改保存方法,加上审批意见模块,加上activity前端接口,加上对应报销经理的权限字段 解决报销部门上级主管审核前端页面报错问题:修改姓名字段,修改保存方法,加上审批意见模块,加上activity前端接口,加上对应报销经理的权限字段 解决报销总经理审核前端页面报错问题:修改姓名字段,修改保存方法,加上审批意见模块,加上activity前端接口,加上对应报销经理的权限字段 新增副总经理审核前端页面dev
liuxiaoxu
4 months ago
10 changed files with 790 additions and 181 deletions
@ -0,0 +1,210 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
||||
|
<head> |
||||
|
<th:block th:include="include :: header('副总经理审核')" /> |
||||
|
<th:block th:include="include :: datetimepicker-css" /> |
||||
|
</head> |
||||
|
<body class="white-bg"> |
||||
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
||||
|
<form class="form-horizontal m" id="form-baseExpense-fzjl" th:object="${formData}"> |
||||
|
<input name="expenseId" th:field="*{expenseId}" type="hidden"> |
||||
|
<input name="taskId" th:field="*{taskId}" type="hidden"> |
||||
|
<input name="taskName" th:field="*{taskName}" type="hidden"> |
||||
|
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
||||
|
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
||||
|
<!--驳回调整允许更新内容--> |
||||
|
<input type="hidden" name="saveEntity" value="true" /> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">申请人:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">申请时间:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<div class="input-group date"> |
||||
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
||||
|
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">标题:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group" hidden="hidden"> |
||||
|
<label class="col-sm-3 control-label">报销单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="expenseCode" th:field="*{expenseCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">部门:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="deptName" th:field="*{deptName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">岗位:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="postName" th:field="*{postName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">姓名:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="fullName" th:field="*{fullName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">报销方式:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select id="bxjl_expenseMethod" name="expenseMethod" th:field="*{expenseMethod}" onchange="handleExpenseMethod(this)" class="form-control" th:with="dictList=${@dict.getType('sys_base_expense_method')}"> |
||||
|
<option th:each="dict : ${dictList}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div id="bxjl_expenseMethodModal" class="container" style="display: none"> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">是否是委外/采购采销:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select name="isPurchaseOutsource" class="form-control" th:with="dictList=${@dict.getType('sys_whether')}"> |
||||
|
<option th:each="dict : ${dictList}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">供应商ID:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select id="supplierCode" name="supplierCode" class="form-control"> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公收款方:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="corporatePayee" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公收款账户:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="corporateReceivingAccount" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公开户行:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="publicAccountBanks" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label is-required" for="fzjlVerifyApproved">审批意见:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select name="p_B_fzjlVerifyApproved" id="fzjlVerifyApproved" class="form-control" required> |
||||
|
<option value=""></option> |
||||
|
<option value="true">同意</option> |
||||
|
<option value="false">拒绝</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
<!-- <div class="container">--> |
||||
|
<!-- <div class="form-row">--> |
||||
|
<!-- <div class="btn-group-sm" id="toolbar" role="group">--> |
||||
|
<!-- <span>选择报销分类信息</span>--> |
||||
|
<!-- <a class="btn btn-success" onclick="insertRow()">--> |
||||
|
<!-- <i class="fa fa-plus"></i> 添加报销--> |
||||
|
<!-- </a>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- <div class="row">--> |
||||
|
<!-- <div class="col-sm-12 select-table table-striped">--> |
||||
|
<!-- <table id="bootstrap-sub-table-expense-fzjl"></table>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
|
</div> |
||||
|
<th:block th:include="include :: footer" /> |
||||
|
<th:block th:include="include :: datetimepicker-js" /> |
||||
|
<script th:src="@{/js/activiti.js}"></script> |
||||
|
<script th:inline="javascript"> |
||||
|
var prefix = ctx + "system/baseExpense"; |
||||
|
var taskId = [[${taskId}]]; |
||||
|
$("#form-baseExpense-fzjl").validate({focusCleanup: true}); |
||||
|
|
||||
|
$(function() { |
||||
|
var options = { |
||||
|
id:'bootstrap-sub-table-expense-fzjl', |
||||
|
url: ctx + "system/expenseChild/list", |
||||
|
queryParams: function(params) { |
||||
|
return { |
||||
|
expenseCode: $("#expenseCode").val() |
||||
|
}; |
||||
|
}, |
||||
|
pagination: false, |
||||
|
sidePagination: "client", |
||||
|
model: "报销单数据", |
||||
|
editable: true, |
||||
|
columns: [ |
||||
|
{checkbox: true}, |
||||
|
{title: '主键',field: 'index',visible: false, |
||||
|
formatter: function (value, row, index) { |
||||
|
return index; |
||||
|
} |
||||
|
}, |
||||
|
{title: '报销单分项子表',field: 'expenseChildId',visible: false}, |
||||
|
{title: '关联报销单号',field: 'expenseCode',visible: false}, |
||||
|
{title: '成本类型',field: 'costType', |
||||
|
formatter:function (value, row, index) { |
||||
|
return costTypeFormatter(value,row,index); |
||||
|
} |
||||
|
}, |
||||
|
{title: '成本小类',field: 'costSmallType', |
||||
|
formatter:function(value, row, index){ |
||||
|
return getCostSmallType(value,row,index) |
||||
|
} |
||||
|
}, |
||||
|
{title: '用途',field: 'purpose',editable:{type:'text',mode:'inline'}}, |
||||
|
{title: '金额',field: 'amounts',editable: {type:'text',mode:'inline'}}, |
||||
|
{title: '报销时间',field: 'expenseTime',editable:{type:'date',mode:'inline',}}, |
||||
|
{title: '出差单号',field: 'evectionCode',editable: {type:'text',mode:'inline'}}, |
||||
|
{title: '采购单号',field: 'purcahseCode',editable: {type:'text',mode:'inline',}}, |
||||
|
{title: '委外单号',field: 'outsourceCode',editable: {type:'text',mode:'inline',}}, |
||||
|
{title: '操作', align: 'center', |
||||
|
formatter: function (value, row, index) { |
||||
|
var actions = []; |
||||
|
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeRow(\'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a> '); |
||||
|
return actions.join(''); |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
}; |
||||
|
$.table.init(options); |
||||
|
}); |
||||
|
function submitHandler() { |
||||
|
if ($.validate.form()) { |
||||
|
$.operate.save(prefix + "/complete/"+taskId, $('#form-baseExpense-fzjl').serialize()); |
||||
|
} |
||||
|
} |
||||
|
// function getSelections(){ |
||||
|
// $.ajax({ |
||||
|
// url: ctx + "system/requisitioning/getEmpUserName", |
||||
|
// type: "get", |
||||
|
// dataType: "json", |
||||
|
// success: function (data) { |
||||
|
// $("select[name='deptName']").append($('<option></option>').val(data.deptName).html(data.deptName)); |
||||
|
// $("select[name='evectionBy']").append($('<option></option>').val(data.userName).html(data.userName)); |
||||
|
// $("select[name='postName']").append($('<option></option>').val(data.postName).html(data.postName)); |
||||
|
// } |
||||
|
// }); |
||||
|
// |
||||
|
// } |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
@ -1,40 +1,210 @@ |
|||||
<!DOCTYPE html> |
<!DOCTYPE html> |
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
||||
<head> |
<head> |
||||
<th:block th:include="include :: header('总助/总经理审核')" /> |
<th:block th:include="include :: header('总经理/总助审核')" /> |
||||
<th:block th:include="include :: datetimepicker-css" /> |
<th:block th:include="include :: datetimepicker-css" /> |
||||
</head> |
</head> |
||||
<body class="white-bg"> |
<body class="white-bg"> |
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
||||
<form class="form-horizontal m" id="form-requisitioning-zozj-audit" th:object="${formData}"> |
<form class="form-horizontal m" id="form-baseExpense-zozj" th:object="${formData}"> |
||||
|
<input name="expenseId" th:field="*{expenseId}" type="hidden"> |
||||
|
<input name="taskId" th:field="*{taskId}" type="hidden"> |
||||
|
<input name="taskName" th:field="*{taskName}" type="hidden"> |
||||
|
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
||||
|
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
||||
|
<!--驳回调整允许更新内容--> |
||||
|
<input type="hidden" name="saveEntity" value="true" /> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">申请人:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">申请时间:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<div class="input-group date"> |
||||
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
||||
|
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">标题:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group" hidden="hidden"> |
||||
|
<label class="col-sm-3 control-label">报销单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="expenseCode" th:field="*{expenseCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">部门:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="deptName" th:field="*{deptName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">岗位:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="postName" th:field="*{postName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">姓名:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="fullName" th:field="*{fullName}" class="form-control"></select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">报销方式:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select id="bxjl_expenseMethod" name="expenseMethod" th:field="*{expenseMethod}" onchange="handleExpenseMethod(this)" class="form-control" th:with="dictList=${@dict.getType('sys_base_expense_method')}"> |
||||
|
<option th:each="dict : ${dictList}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div id="bxjl_expenseMethodModal" class="container" style="display: none"> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">是否是委外/采购采销:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select name="isPurchaseOutsource" class="form-control" th:with="dictList=${@dict.getType('sys_whether')}"> |
||||
|
<option th:each="dict : ${dictList}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">供应商ID:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select id="supplierCode" name="supplierCode" class="form-control"> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公收款方:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="corporatePayee" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公收款账户:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="corporateReceivingAccount" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-6 control-label">对公开户行:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="publicAccountBanks" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label is-required" for="zozjVerifyApproved">审批意见:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<select name="p_B_zozjVerifyApproved" id="zozjVerifyApproved" class="form-control" required> |
||||
|
<option value=""></option> |
||||
|
<option value="true">同意</option> |
||||
|
<option value="false">拒绝</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
</form> |
</form> |
||||
|
<!-- <div class="container">--> |
||||
|
<!-- <div class="form-row">--> |
||||
|
<!-- <div class="btn-group-sm" id="toolbar" role="group">--> |
||||
|
<!-- <span>选择报销分类信息</span>--> |
||||
|
<!-- <a class="btn btn-success" onclick="insertRow()">--> |
||||
|
<!-- <i class="fa fa-plus"></i> 添加报销--> |
||||
|
<!-- </a>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- <div class="row">--> |
||||
|
<!-- <div class="col-sm-12 select-table table-striped">--> |
||||
|
<!-- <table id="bootstrap-sub-table-expense-zozj"></table>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
|
<!-- </div>--> |
||||
</div> |
</div> |
||||
<th:block th:include="include :: footer" /> |
<th:block th:include="include :: footer" /> |
||||
<th:block th:include="include :: datetimepicker-js" /> |
<th:block th:include="include :: datetimepicker-js" /> |
||||
|
<script th:src="@{/js/activiti.js}"></script> |
||||
<script th:inline="javascript"> |
<script th:inline="javascript"> |
||||
var prefix = ctx + "system/requisitioning"; |
var prefix = ctx + "system/baseExpense"; |
||||
$("#form-requisitioning-zozj-audit").validate({focusCleanup: true}); |
var taskId = [[${taskId}]]; |
||||
|
$("#form-baseExpense-zozj").validate({focusCleanup: true}); |
||||
|
|
||||
|
$(function() { |
||||
|
var options = { |
||||
|
id:'bootstrap-sub-table-expense-zozj', |
||||
|
url: ctx + "system/expenseChild/list", |
||||
|
queryParams: function(params) { |
||||
|
return { |
||||
|
expenseCode: $("#expenseCode").val() |
||||
|
}; |
||||
|
}, |
||||
|
pagination: false, |
||||
|
sidePagination: "client", |
||||
|
model: "报销单数据", |
||||
|
editable: true, |
||||
|
columns: [ |
||||
|
{checkbox: true}, |
||||
|
{title: '主键',field: 'index',visible: false, |
||||
|
formatter: function (value, row, index) { |
||||
|
return index; |
||||
|
} |
||||
|
}, |
||||
|
{title: '报销单分项子表',field: 'expenseChildId',visible: false}, |
||||
|
{title: '关联报销单号',field: 'expenseCode',visible: false}, |
||||
|
{title: '成本类型',field: 'costType', |
||||
|
formatter:function (value, row, index) { |
||||
|
return costTypeFormatter(value,row,index); |
||||
|
} |
||||
|
}, |
||||
|
{title: '成本小类',field: 'costSmallType', |
||||
|
formatter:function(value, row, index){ |
||||
|
return getCostSmallType(value,row,index) |
||||
|
} |
||||
|
}, |
||||
|
{title: '用途',field: 'purpose',editable:{type:'text',mode:'inline'}}, |
||||
|
{title: '金额',field: 'amounts',editable: {type:'text',mode:'inline'}}, |
||||
|
{title: '报销时间',field: 'expenseTime',editable:{type:'date',mode:'inline',}}, |
||||
|
{title: '出差单号',field: 'evectionCode',editable: {type:'text',mode:'inline'}}, |
||||
|
{title: '采购单号',field: 'purcahseCode',editable: {type:'text',mode:'inline',}}, |
||||
|
{title: '委外单号',field: 'outsourceCode',editable: {type:'text',mode:'inline',}}, |
||||
|
{title: '操作', align: 'center', |
||||
|
formatter: function (value, row, index) { |
||||
|
var actions = []; |
||||
|
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeRow(\'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a> '); |
||||
|
return actions.join(''); |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
}; |
||||
|
$.table.init(options); |
||||
|
}); |
||||
function submitHandler() { |
function submitHandler() { |
||||
if ($.validate.form()) { |
if ($.validate.form()) { |
||||
$.operate.save(prefix + "/complete/"+taskId, $('#form-requisitioning-zozj-audit').serialize()); |
$.operate.save(prefix + "/complete/"+taskId, $('#form-baseExpense-zozj').serialize()); |
||||
} |
} |
||||
} |
} |
||||
|
// function getSelections(){ |
||||
function getSelections(){ |
// $.ajax({ |
||||
$.ajax({ |
// url: ctx + "system/requisitioning/getEmpUserName", |
||||
url: ctx + "system/requisitioning/getEmpUserName", |
// type: "get", |
||||
type: "get", |
// dataType: "json", |
||||
dataType: "json", |
// success: function (data) { |
||||
success: function (data) { |
// $("select[name='deptName']").append($('<option></option>').val(data.deptName).html(data.deptName)); |
||||
$("select[name='deptName']").append($('<option></option>').val(data.deptName).html(data.deptName)); |
// $("select[name='evectionBy']").append($('<option></option>').val(data.userName).html(data.userName)); |
||||
$("select[name='evectionBy']").append($('<option></option>').val(data.userName).html(data.userName)); |
// $("select[name='postName']").append($('<option></option>').val(data.postName).html(data.postName)); |
||||
$("select[name='postName']").append($('<option></option>').val(data.postName).html(data.postName)); |
// } |
||||
} |
// }); |
||||
}); |
// |
||||
|
// } |
||||
} |
|
||||
</script> |
</script> |
||||
</body> |
</body> |
||||
</html> |
</html> |
Loading…
Reference in new issue