laiguoran 5 vuotta sitten
vanhempi
commit
4b4a39505d

+ 4 - 3
app/controller/wap_controller.js

@@ -242,10 +242,11 @@ module.exports = app => {
                         }
                         }
                     }
                     }
                     renderData.stage = stages[0];
                     renderData.stage = stages[0];
-                    renderData.stage.user = await ctx.service.projectAccount.getAccountInfoById(renderData.stages[0].user_id);
-                    renderData.stage.auditors = await ctx.service.stageAudit.getAuditors(renderData.stages[0].id, renderData.stages[0].times);
+                    const times = renderData.stage.status === auditConst.stage.status.checkNo ? renderData.stage.times - 1 : renderData.stage.times;
+                    renderData.stage.user = await ctx.service.projectAccount.getAccountInfoById(renderData.stage.user_id);
+                    renderData.stage.auditors = await ctx.service.stageAudit.getAuditors(renderData.stage.id, times);
                     // 获取审批流程中左边列表
                     // 获取审批流程中左边列表
-                    renderData.stage.auditors2 = await ctx.service.stageAudit.getAuditGroupByList(renderData.stages[0].id, renderData.stages[0].times);
+                    renderData.stage.auditors2 = await ctx.service.stageAudit.getAuditGroupByList(renderData.stage.id, times);
                 }
                 }
                 await ctx.render('wap/tender.ejs', renderData);
                 await ctx.render('wap/tender.ejs', renderData);
             } catch (err) {
             } catch (err) {

+ 142 - 0
app/public/js/wap/global.js

@@ -1,4 +1,47 @@
 /**
 /**
+ * 动态请求数据
+ * @param {String} url - 请求链接
+ * @param data - 提交数据
+ * @param {function} successCallback - 返回成功回调
+ * @param {function} errorCallBack - 返回失败回调
+ */
+const postData = function (url, data, successCallback, errorCallBack, showWaiting = true) {
+    if (showWaiting) showWaitingView();
+    $.ajax({
+        type:"POST",
+        url: url,
+        data: {'data': JSON.stringify(data)},
+        dataType: 'json',
+        cache: false,
+        timeout: 60000,
+        beforeSend: function(xhr) {
+            let csrfToken = Cookies.get('csrfToken');
+            xhr.setRequestHeader('x-csrf-token', csrfToken);
+        },
+        success: function(result){
+            if (result.err === 0) {
+                if (successCallback) {
+                    successCallback(result.data);
+                }
+            } else {
+                toastr.error('error: ' + result.msg);
+                if (errorCallBack) {
+                    errorCallBack(result.msg);
+                }
+            }
+            if (showWaiting) closeWaitingView();
+        },
+        error: function(jqXHR, textStatus, errorThrown){
+            toastr.error('error: ' + textStatus + " " + errorThrown);
+            if (errorCallBack) {
+                errorCallBack();
+            }
+            if (showWaiting) closeWaitingView();
+        }
+    });
+};
+
+/**
  * 提示框
  * 提示框
  *
  *
  * @param string message
  * @param string message
@@ -95,3 +138,102 @@ function trimInvalidChar(str) {
 function cleanSymbols(str) {
 function cleanSymbols(str) {
     return $.trim(str).replace(/\\/g, '').replace(/\'/g, '').replace(/\"/g, '').replace(/\</g, '').replace(/\|/g, '');
     return $.trim(str).replace(/\\/g, '').replace(/\'/g, '').replace(/\"/g, '').replace(/\</g, '').replace(/\|/g, '');
 }
 }
+
+//关闭等待窗口
+function closeWaitingView() {
+    bShowWaiting = false;
+    const time = parseInt(new Date());
+    setTimeout(function () {
+        var bgDiv = document.getElementById("bgDiv");
+        var msgDiv = document.getElementById("msgDiv");
+        //移除背景遮罩层div
+        if(bgDiv != null){
+            document.body.removeChild(bgDiv);
+        }
+        //移除中间信息提示层div
+        if(msgDiv != null){
+            document.body.removeChild(msgDiv);
+        }
+    }, Math.max(beginWaitingTime - time + 500, 0));
+}
+//显示等待窗口
+function showWaitingView() {
+    // bShowWaiting = true;
+    // setTimeout(function () {
+    //     if (!bShowWaiting) return;
+    //     beginWaitingTime = parseInt(new Date());
+    //     var msgw = 300; //提示窗口的宽度
+    //     var msgh = 100; //提示窗口的高度
+    //
+    //     var sWidth, sHeight;
+    //     sWidth = document.body.clientWidth;
+    //     sHeight = document.body.clientHeight;
+    //
+    //     //背景遮罩层div
+    //     var bgObj = document.createElement("div");
+    //     bgObj.setAttribute('id', 'bgDiv');
+    //     bgObj.style.zIndex = '9998';
+    //     bgObj.style.position = "absolute";
+    //     bgObj.style.top = "0px";
+    //     bgObj.style.background = "#888";
+    //     bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
+    //     bgObj.style.opacity = "0.6";
+    //     bgObj.style.left = "0px";
+    //     bgObj.style.width = sWidth + "px";
+    //     bgObj.style.height = sHeight + "px";
+    //     document.body.appendChild(bgObj);
+    //
+    //     //信息提示层div
+    //     var msgObj = document.createElement("div");
+    //     msgObj.style.zIndex = '9999';
+    //     msgObj.setAttribute("id", "msgDiv");
+    //     msgObj.setAttribute("align", "center");
+    //     msgObj.style.position = "absolute";
+    //     msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
+    //     msgObj.style.width = msgw + "px";
+    //     msgObj.style.height = msgh + "px";
+    //     msgObj.style.top = (document.documentElement.scrollTop + (sHeight - msgh) / 2) + "px";
+    //     msgObj.style.left = (sWidth - msgw) / 2 + "px";
+    //     document.body.appendChild(msgObj);
+    //
+    //     //中间等待图标
+    //     document.getElementById("msgDiv").innerHTML = '<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>';
+    // }, 1000);
+    beginWaitingTime = parseInt(new Date());
+    var msgw = 300; //提示窗口的宽度
+    var msgh = 100; //提示窗口的高度
+
+    var sWidth, sHeight;
+    sWidth = document.body.clientWidth;
+    sHeight = document.body.clientHeight;
+
+    //背景遮罩层div
+    var bgObj = document.createElement("div");
+    bgObj.setAttribute('id', 'bgDiv');
+    bgObj.style.zIndex = '9998';
+    bgObj.style.position = "absolute";
+    bgObj.style.top = "0px";
+    // bgObj.style.background = "#888";
+    bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
+    bgObj.style.opacity = "0.6";
+    bgObj.style.left = "0px";
+    bgObj.style.width = sWidth + "px";
+    bgObj.style.height = sHeight + "px";
+    document.body.appendChild(bgObj);
+
+    //信息提示层div
+    var msgObj = document.createElement("div");
+    msgObj.style.zIndex = '9999';
+    msgObj.setAttribute("id", "msgDiv");
+    msgObj.setAttribute("align", "center");
+    msgObj.style.position = "absolute";
+    msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
+    msgObj.style.width = msgw + "px";
+    msgObj.style.height = msgh + "px";
+    msgObj.style.top = (document.documentElement.scrollTop + (sHeight - msgh) / 2) + "px";
+    msgObj.style.left = (sWidth - msgw) / 2 + "px";
+    document.body.appendChild(msgObj);
+
+    //中间等待图标
+    document.getElementById("msgDiv").innerHTML = '<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>';
+}

+ 0 - 1
app/view/wap/login.ejs

@@ -63,7 +63,6 @@
         </div>
         </div>
     </div>
     </div>
     <!--项目版-->
     <!--项目版-->
-    <div class="text-white fixed-bottom"><p class="text-center mb-1">Copyright © 2019 <a href="https://smartcost.com.cn" target="_blank" class="text-white">珠海纵横创新软件有限公司</a>.All Rights Reserved.<a class="text-white ml-2" href="http://www.miitbeian.gov.cn" target="_blank">粤ICP备14032472号</a></p></div>
 </div>
 </div>
 <!-- JS. -->
 <!-- JS. -->
 <div class="toast" style="text-align: center">
 <div class="toast" style="text-align: center">

+ 32 - 5
app/view/wap/tender.ejs

@@ -240,7 +240,7 @@
 <!--审批通过弹窗-->
 <!--审批通过弹窗-->
 <div class="modal" tabindex="-1" role="dialog" id="sp-done">
 <div class="modal" tabindex="-1" role="dialog" id="sp-done">
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">
-        <form class="modal-content" action="/tender/<%- stage.tid %>/measure/stage/<%- stage.order %>/audit/check" method="post" onsubmit="return auditCheck(0);">
+        <form class="modal-content" action="/tender/<%- stage.tid %>/measure/stage/<%- stage.order %>/audit/check" method="post" id="audit-check0">
             <div class="modal-header">
             <div class="modal-header">
                 <h5 class="modal-title">审批通过</h5>
                 <h5 class="modal-title">审批通过</h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
@@ -264,8 +264,8 @@
 </div>
 </div>
 <!--审批退回弹窗-->
 <!--审批退回弹窗-->
 <div class="modal" tabindex="-1" role="dialog" id="sp-back">
 <div class="modal" tabindex="-1" role="dialog" id="sp-back">
-    < class="modal-dialog" role="document">
-        <form class="modal-content" action="/tender/<%- stage.tid %>/measure/stage/<%- stage.order %>/audit/check" method="post" onsubmit="return auditCheck(1);">
+    <div class="modal-dialog" role="document">
+        <form class="modal-content" action="/tender/<%- stage.tid %>/measure/stage/<%- stage.order %>/audit/check" method="post" id="audit-check1">
             <div class="modal-header">
             <div class="modal-header">
                 <h5 class="modal-title">审批通过</h5>
                 <h5 class="modal-title">审批通过</h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
@@ -279,7 +279,7 @@
                 </div>
                 </div>
                 <div class="alert alert-warning">
                 <div class="alert alert-warning">
                     <div class="custom-control custom-radio custom-control-inline">
                     <div class="custom-control custom-radio custom-control-inline">
-                        <input type="radio" id="inlineRadio1" class="custom-control-input" value="<%- auditConst.status.checkNo %>" <% if (audit.order === 1 || audit.aid === stage.auditors[0].aid) { %>checked<% } %>>
+                        <input type="radio" id="inlineRadio1" name="checkType" class="custom-control-input" value="<%- auditConst.status.checkNo %>" <% if (audit.order === 1 || audit.aid === stage.auditors[0].aid) { %>checked<% } %>>
                         <label class="custom-control-label" for="customRadioInline1">退回上报 <%- stage.user.name %></label>
                         <label class="custom-control-label" for="customRadioInline1">退回上报 <%- stage.user.name %></label>
                     </div>
                     </div>
                     <% if (audit.order > 1 && audit.aid !== stage.auditors[0].aid) { %>
                     <% if (audit.order > 1 && audit.aid !== stage.auditors[0].aid) { %>
@@ -304,7 +304,8 @@
 <script src="/public/js/jquery/jquery-3.2.1.min.js"></script>
 <script src="/public/js/jquery/jquery-3.2.1.min.js"></script>
 <script src="/public/js/popper/popper.min.js"></script>
 <script src="/public/js/popper/popper.min.js"></script>
 <script src="/public/js/bootstrap/bootstrap.min.js"></script>
 <script src="/public/js/bootstrap/bootstrap.min.js"></script>
-<!--<script src="js/global.js"></script>-->
+<script src="/public/js/cookies.js"></script>
+<script src="/public/js/wap/global.js"></script>
 <script type="text/javascript">
 <script type="text/javascript">
     //4 标段期数计量进度//
     //4 标段期数计量进度//
     var myChart = echarts.init(document.getElementById('chartContainer4'));
     var myChart = echarts.init(document.getElementById('chartContainer4'));
@@ -541,9 +542,35 @@
             $('#shenpi').addClass('active');
             $('#shenpi').addClass('active');
             $('.nav-item a[href="#shenpi"]').addClass('active');
             $('.nav-item a[href="#shenpi"]').addClass('active');
         }
         }
+
+        $('#audit-check0').submit(function (e) {
+            if (auditCheck(0)) {
+                const data = {
+                    opinion: $('[name=opinion]', this).val(),
+                    checkType: parseInt($('[name=checkType]', this).val()),
+                };
+                postData(this.action, data, function () {
+                    window.location.reload();
+                });
+            }
+            return false;
+        });
+        $('#audit-check1').submit(function (e) {
+            if (auditCheck(1)) {
+                const data = {
+                    opinion: $('[name=opinion]', this).val(),
+                    checkType: parseInt($('[name=checkType]:checked', this).val()),
+                };
+                postData(this.action, data, function () {
+                    window.location.reload();
+                });
+            }
+            return false;
+        });
     })
     })
 
 
     // texterea换行
     // texterea换行
+
     function auditCheck(i) {
     function auditCheck(i) {
         const opinion = $('textarea[name="opinion"]').eq(i).val().replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
         const opinion = $('textarea[name="opinion"]').eq(i).val().replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
         $('textarea[name="opinion"]').eq(i).val(opinion);
         $('textarea[name="opinion"]').eq(i).val(opinion);