| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <c:set var="view">${view==true}</c:set>
- <c:set var="readOnly">${readOnly==true}</c:set>
- <c:set var="inProcess">${inProcess==true}</c:set>
- <c:set var="showButton">${readOnly?false:edit==true}</c:set>
- <c:set var="verifyTxt">
- <c:if test="${inst.status==1}">审核</c:if>
- <c:if test="${inst.status==2}">会审</c:if>
- <c:if test="${inst.status==3}">终审</c:if>
- </c:set><%--审核意见名称--%>
- <div style="display:flex;">
- <div style="flex:1">
- <table cellpadding="0" cellspacing="1" class="formtable" > <!-- bottom -->
- <tr >
- <td class="value">
- <span class="spancon">预算年度:</span>
- <input type="text" style="width: 150px" class="Wdate" disabled="disabled" value="${inst.periodYear}" disabled="disabled"/>
- </td>
- <td width="5px"> </td>
- <td align="right" style="text-align: left;">
- <label class="Validform_label">预算主体:</label>
- <input type="text" style="width: 200px" class="inputxt" disabled="disabled" value="${inst.entityName}"/>
- <c:if test="${showButton}">
- <a href="#" class="easyui-linkbutton l-btn" onclick="changeEntity('${inst.tempSheetId}',${inst.status})">切换主体</a>
- </c:if>
- <%--<c:if test="${!showButton}">
- <a href="javascript:void(0)" class="easyui-linkbutton l-btn" iconcls="icon-return" onclick="back()">返回</a>
- </c:if>--%>
- </td>
- </tr>
- </table>
- <table cellpadding="0" cellspacing="1" class="formtable" >
- <tr>
- <td colspan="3">
- <c:if test="${showButton}">
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-save" onclick="save()">暂存</a>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-save" onclick="saveVersion()">保存版本</a>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-putout" onclick="revertVersion()">导入历史版本</a>
- <c:if test="${inst.type=='normal'}">
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-calculation" onclick="calcFunction()">公式计算</a>
- </c:if>
- <c:if test="${!inProcess}">
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-confirm" onclick="doSubmit()">上报</a>
- </c:if>
- <c:if test="${inst.type=='orders'}">
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-add" onclick="addOne()">添加货品</a>
- <a href="#" id="addRefYearButton" style="display:none" class="easyui-linkbutton l-btn" iconcls="icon-add" onclick="addRefYearGoods()">载入参考年度货品</a>
- <%--<a href="#" class="easyui-linkbutton l-btn" iconcls="icon-confirm" onclick="submitOrdersToCost()">提交至成本总表</a>--%>
- </c:if>
- <c:if test="${inst.type=='hr'}">
- <%--<a href="#" class="easyui-linkbutton l-btn" iconcls="icon-confirm" onclick="submitHrToCost()">提交至成本总表</a>--%>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-select" onclick="selectCostHrScheme()">选择预制方案</a>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-reload" onclick="refushNum()">刷新</a>
- </c:if>
- <a href="#" class="easyui-linkbutton l-btn" onclick="mark()" >
- <i class="fa fa-pencil" style="padding-right:5px"></i>
- <span id="markLinkTxt">${inst.bpmStatus=='1'?'标记':'取消标记'}</span>
- </a>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-return" onclick="back()">返回</a>
- <span id="autoSaveTimeTxt" style="margin-left:5px;"></span>
- <%--<a href="javascript:void(0)" class="easyui-linkbutton l-btn" iconcls="icon-return" onclick="back()">返回</a>--%>
- </c:if>
- <c:if test="${inst.actualStaKind=='leader'}"><%--闵总视图--%>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-select" onclick="selectShowColumn()">显示配置</a>
- <script>
- var lastShowColumnValues = ['a1','-1','-1','-1','-1','-1', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];
- var values = values == null ? lastShowColumnValues : values;
- //闵总视图样表
- function selectShowColumn() {
- _openDialog('budgetCostBreakdownController.do?selectAuth2&values=' + values.join(','), '显示配置', function (iframe) {
- values = iframe.getSelected();
- resetColumn();
- }, '500px', '300px');
- }
- function resetColumn(){
- var sheet = spread.getActiveSheet();
- sheet.suspendPaint();
- sheet.getRange(-1, 5, -1, 12 * 12).visible(true);
- for (var i = 6; i < lastShowColumnValues.length; i++) {
- if (values[i] == '-1') {
- sheet.getRange(-1, ((i - 6) * 12 + 1 + 4), -1, 12).visible(false);
- }
- }
- for (let i = 0; i < 6; i++) {
- if (values[i] == '-1') {
- for (var j = 0; j < 12; j++) {
- sheet.getRange(-1, j * 12 + i * 2 + 1 + 4, -1, 2).visible(false);
- }
- }
- }
- sheet.resumePaint();
- }
- </script>
- </c:if>
- </td>
- </tr>
- </table>
- </div>
- <c:if test="${inProcess}">
- <div style="flex:1;" >
- <table cellpadding="0" cellspacing="1" class="formtable" >
- <tr>
- <td>
- ${verifyTxt}意见:
- </td>
- <td>
- <textarea id="descn" name="descn" class="inputxt" rows="2" cols="40"></textarea>
- </td>
- <td>
- <a href="#" class="easyui-linkbutton l-btn" onclick="agree('${param.taskId}')">
- <c:if test="${inst.status==1}">核验完成</c:if>
- <c:if test="${inst.status!=1}">通过</c:if>
- </a>
- <a href="#" class="easyui-linkbutton l-btn" onclick="refuse('${param.taskId}')">退回</a>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-detail" onclick="historyTask('${param.taskId}')">流程历史</a>
- </td>
- </tr>
- </table>
- </div>
- </c:if>
- </div>
- <div style="height:5px"> </div>
- <script>
- var instId='${inst.id}';
- var dbJson;
- <c:if test="${not empty inst.json}">
- dbJson=${inst.json};//初始化用
- </c:if>
- var status='${inst.status}';
- var readOnly = ${readOnly};
- var inProcess=${inProcess};
- var taskId='${param.taskId}';
- var periodYear='${inst.periodYear}';
- var entityId='${inst.entityId}';
- var bpmStatus='${inst.bpmStatus}';
- var actualStaKind = '${inst.actualStaKind}';
- var isTotal = '${isTotal}'
- var spread;
- function doSubmit(){
- save(true);
- var url = 'budgetInstController.do?doSubmit&id='+instId;
- var message = '确定上报吗?';
- confirm(url,message,{status:1},"上报成功");
- }
- function refuse(){
- finishTask(-1);
- }
- function agree() {
- finishTask(1);
- }
- function finishTask(status){
- var url = 'budgetInstController.do?finishTask';
- var tipMsg = status==1?'${verifyTxt}通过':'${verifyTxt}驳回';
- var message = '确定'+tipMsg+"吗?";
- var descn=$('#descn').val();
- if(!descn){
- $.messager.alert("信息","请填写${verifyTxt}意见");
- return;
- }
- var params={};
- params.descn=descn;
- params.status=status;
- params.instId=instId;
- params.taskId=taskId;
- var json = spread.toJSON();
- var jsonString =JSON.stringify(json);
- params.json = jsonString;
- params.id = instId;
- confirm(url,message,params,tipMsg);
- }
- function confirm(url,message,params,successMsg) {
- $.messager.confirm('提示信息', message, function(r) {
- if (r) {
- $.ajax({
- async : false,
- cache : false,
- data:params,
- type : 'POST',
- url : url,// 请求的action路径
- error : function() {// 请求失败处理函数
- },
- success : function(data) {
- var d = data; // ------ $.parseJSON(data);
- if (d.success) {
- var msg = successMsg;
- if(!msg) msg= d.msg;
- closeDialog(msg,true);
- }else {
- parent.tip(d.msg);
- }
- }
- });
- }
- });
- }
- function changeEntity(tempSheetId,status) {
- save(true);
- var url="budgetInstController.do?select4changeEntity&tempSheetId="+tempSheetId;
- url+='&status='+status;
- _openDialog(url,"选择主体",function(iframe){
- var selectedRows = iframe.getSelectedRow();
- if(selectedRows.length==0){
- iframe.tip('请选择预算主体');
- return false;
- }
- var one = selectedRows[0];
- var functionName='goFill&id='+one.id;
- if(status!=0 &&status!=-1){
- functionName='goTask&taskId='+one.taskId;
- }
- location='budgetInstController.do?'+functionName;
- },"800px","600px")
- }
- function back(){
- _confirm('是否保存数据?',function(){
- save(false,function(){
- closeDialog();
- });
- },function(){
- closeDialog();
- });
- }
- function saveVersion(){
- save(true);
- var url = 'budgetInstVersionController.do?goAdd&instId='+instId;
- createwindow('保存版本', url,'600px','200px');
- }
- function revertVersion() {
- var url = 'budgetInstVersionController.do?select&instId='+instId;
- _openDialog(url,'选择历史版本',function(iframe){
- var selectedRows = iframe.getSelectedRow();
- if(selectedRows.length==0){
- iframe.tip('请选择版本');
- return false;
- }
- $.messager.confirm("请确认","导入后将清空现有数据,请谨慎导入",function(r){
- if(r){
- var one = selectedRows[0];
- $.post('budgetInstVersionController.do?revert',{id:one.id},function(d){
- spread.suspendPaint();
- var instType=d.attributes.instType;
- var json =d.obj;
- if(instType=='orders' ||instType=='hr' ){
- spread.fromJSON(JSON.parse(json));
- }else{
- var sheet = spread.getActiveSheet();
- for(var i=0;i<json.length;i++){
- var one =json[i];
- sheet.setValue(one.row,one.col,one.oldVal);
- }
- }
- spread.resumePaint();
- },'json');
- }
- });
- },'800px','600px');
- }
- function save(auto,afterSaveFunction){
- var json = spread.toJSON();
- var jsonString =JSON.stringify(json);
- var params = {};
- params.json = jsonString;
- params.id = instId;
- params.type='${inst.type}';
- $.post('budgetInstController.do?doFill',params,function(d){
- if(!auto){
- if(afterSaveFunction){
- afterSaveFunction();
- }else{
- $.messager.alert("信息",d.msg);
- }
- }else{//自动存档刷新显示
- statusBar.remove('autoSaveTip');
- var txt ='最新自动保存时间: '+new Date().Format('hh:mm:ss');
- reloadStatusBarTips({autoSaveTip:txt});
- }
- },'json');
- }
- function calcFunction(){
- var url = 'budgetInstController.do?calcFunction&id='+instId;
- var sheet = spread.getActiveSheet();
- _post(url,{},function(d){
- spread.suspendPaint();
- spread.suspendCalcService(true);
- var valueList = d.obj;
- for(var i=0;i<valueList.length;i++){
- var valueInfo=valueList[i];
- sheet.setValue(valueInfo[0],valueInfo[1],valueInfo[2]);
- }
- if(d.attributes){
- if(d.attributes.errorMsg){
- tip(d.attributes.errorMsg);
- }
- }
- spread.resumeCalcService(true);
- spread.resumePaint();
- });
- }
- function closeDialog(msg,reload){
- var win = frameElement.api.opener;
- frameElement.api.close();
- if(msg) {
- win.tip(msg);
- }
- if(reload){
- win.reloadTable();
- }
- }
- function historyTask(taskId){
- var url='budgetInstController.do?goProcTaskHistoryList&taskId='+taskId;
- createdetailwindow('流程历史',url,'800px','600px');
- }
- $(function(){
- if(status=='0'|| status=='-1'){ //填报状态下 自动保存
- setInterval(function(){
- save(true);
- },60*1000);
- }
- })
- function selectCostHrScheme(){
- var url = 'budgetCostHrSchemeController.do?select';
- _openDialog(url,'人工费用预算方案',function(iframe){
- var selectedRows = iframe.getSelectRows();
- var one = selectedRows[0];
- $.post('budgetCostHrSchemeController.do?getDetailData',{id:one.id},function(d){
- spread.suspendPaint();
- var arr = [];
- for(var i=0;i<d.obj.length;i++){
- var one =d.obj[i];
- var postId = one.postId;
- arr[postId]=one;
- }
- var sheet= spread.getActiveSheet();
- var rowCount =sheet.getRowCount();
- for(var i=headerCount;i<rowCount;i++){
- var rowTag=sheet.getTag(i,-1);
- if(rowTag){
- var rowId = rowTag.id;
- var info = arr[rowId];
- if(info){
- var mothly = info.mothly;//月度工资;
- var socialBase = info.socialBase;//社保缴纳基数
- var socialPer = info.socialPer;//社保缴纳比例
- var providentFundBase = info.providentFundBase;//公积金缴纳基数
- var providentFundPer = info.providentFundPer;//公积金缴纳比例
- var mealOvertime = info.mealOvertime;//工作餐补及中夜班津贴
- var jiaojinPer = info.jiaojinPer;
- if(!jiaojinPer) jiaojinPer=0;
- var cert=info.cert;
- if(!cert) cert=0;
- sheet.setValue(i,4,jiaojinPer/100);
- sheet.setValue(i,5,mothly);
- sheet.setValue(i,6,cert);
- sheet.setValue(i,7,socialBase);
- sheet.setValue(i,8,socialPer/100);
- sheet.setValue(i,9,providentFundBase);
- sheet.setValue(i,10,providentFundPer/100);
- // sheet.setValue(i,12,mealOvertime);
- sheet.setFormula(i,14,mealOvertime+"*12*"+getCellStr(sheet,i,3));
- }
- }
- }
- spread.resumePaint();
- },'json');
- },'800px','600px');
- }
- Date.prototype.Format = function (fmt) {
- if(!fmt) fmt = 'yyyy-MM-dd hh:mm:ss'
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var k in o)
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- return fmt;
- }
- function mark(){
- var newBpmStatus=bpmStatus=='1'?'2':'1';
- $.post('budgetInstController.do?doUpdate',{id:instId,bpmStatus:newBpmStatus},function(d){
- if(newBpmStatus=='1'){
- $('#markLinkTxt').html('标记');
- }else {
- $('#markLinkTxt').html('取消标记');
- }
- bpmStatus = newBpmStatus;
- });
- }
- var instMeasureArray=[];
- <c:forEach items="${instMeasureEntityList}" var="instMeaureEntity" varStatus="i">
- instMeasureArray[${i.index}]={};
- instMeasureArray[${i.index}].row=${instMeaureEntity.row};
- instMeasureArray[${i.index}].col=${instMeaureEntity.col};
- instMeasureArray[${i.index}].expect=${instMeaureEntity.expect};
- instMeasureArray[${i.index}].dataValue=${instMeaureEntity.showDataValue};
- </c:forEach>
- </script>
- <link rel="stylesheet" type="text/css" href="plug-in/SpreadJS/css/gc.spread.sheets.excel2016colorful.13.1.0.css">
- <script src="plug-in/SpreadJS/scripts/gc.spread.sheets.all.13.1.0.min.js" type="text/javascript"></script>
- <script src="plug-in/SpreadJS/scripts/resources/zh/gc.spread.sheets.resources.zh.13.1.0.min.js" type="text/javascript"></script>
- <script src="plug-in/SpreadJS/license.js" type="text/javascript"></script>
- <script src="webpage/cn/com/lzt/budget/data/js/budget_tools.js?v=1" type="text/javascript"></script>
|