ソースを参照

feat: 添加预付款详情页input框数据自动保存功能

lanjianrong 5 年 前
コミット
16c240d0a6

+ 21 - 0
app/controller/advance_controller.js

@@ -132,6 +132,27 @@ module.exports = app => {
         }
 
         /**
+         * 更新
+         * @param {Object} ctx 全局上下文
+         */
+        async update(ctx) {
+            const { id } = ctx.advance;
+            const data = JSON.parse(ctx.request.body.data);
+            try {
+                const result = await ctx.service.advance.updateAdvance(data, id);
+                if (result) {
+                    ctx.body = { err: 0, msg: '请求成功', data: null };
+                } else {
+                    ctx.body = { err: 0, msg: '请求失败', data: null };
+                }
+            } catch (error) {
+                this.log(error);
+                ctx.body = { code: 1, msg: error.toString() };
+            }
+
+        }
+
+        /**
          * 添加新一期
          * @param {Object} ctx 全局上下文
          */

+ 18 - 4
app/public/js/advance_audit.js

@@ -126,6 +126,8 @@ $(document).ready(function () {
         const min = parseInt($(this).attr('min'))
         const max = parseInt($(this).attr('max'))
         const type = parseInt($(this).data('type'))
+        let pay_ratio = null
+        let cur_amount = null
         if (val < min) {
             // 限制最小值为min
             $(this).val(min)
@@ -144,19 +146,31 @@ $(document).ready(function () {
                 val = re_amount
             }
             const pay_a_input = $(`.pay-input[data-type=${reverse(type)}]`)
-            pay_a_input.val(ZhCalc.round(ZhCalc.mul(ZhCalc.div(val, re_amount), 100), 2))
+            pay_ratio = ZhCalc.round(ZhCalc.mul(ZhCalc.div(val, re_amount), 100), 2)
+            cur_amount = val
+            pay_a_input.val(pay_ratio)
             // 截止本期金额文案更新
             $('#p_total').text(formatMoney(ZhCalc.add(val, p_amount)))
         } else {
             // 支付比例转化
             const cur_m_input = $(`.pay-input[data-type=${reverse(type)}]`)
-            const newVal = ZhCalc.mul(re_amount, ZhCalc.div(val, 100))
-            cur_m_input.val(newVal)
+            cur_amount = ZhCalc.mul(re_amount, ZhCalc.div(val, 100))
+            pay_ratio = val
+            cur_m_input.val(cur_amount)
             // 截止本期金额文案更新
-            $('#p_total').text(formatMoney(ZhCalc.add(newVal, p_amount)))
+            $('#p_total').text(formatMoney(ZhCalc.add(cur_amount, p_amount)))
         }
+        const data = {
+            pay_ratio,
+            cur_amount
+        }
+        update(data)
     })
 
+    function update(data) {
+        postData(getUrlPre() + '/update', data)
+    }
+
     function reverse(num){
         return 1^num
     }

+ 1 - 0
app/router.js

@@ -117,6 +117,7 @@ module.exports = app => {
     app.post('/tender/:id/advance/:order/audit/delete', sessionAuth, tenderCheck, advanceCheck, 'advanceController.deleteAudit');
     app.post('/tender/:id/advance/:order/audit/start', sessionAuth, tenderCheck, advanceCheck, 'advanceController.start');
     app.post('/tender/:id/advance/:order/audit/check', sessionAuth, tenderCheck, advanceCheck, 'advanceController.checkAudit');
+    app.post('/tender/:id/advance/:order/update', sessionAuth, tenderCheck, advanceCheck, 'advanceController.update');
 
     // 标段协作办公
     app.get('/tender/:id/cooperation', sessionAuth, tenderCheck, 'tenderController.tenderCooperation');

+ 12 - 0
app/service/advance.js

@@ -128,6 +128,18 @@ module.exports = app => {
                 s_ratio,
             };
         }
+
+        /**
+         * 更新预付款记录
+         * @param {Object} condition 载荷
+         * @param {Number} id 预付款id
+         */
+        async updateAdvance(condition, id) {
+            return await this.update(condition, {
+                id,
+            });
+
+        }
     }
     return Advance;
 };

+ 1 - 1
app/view/advance/index.ejs

@@ -67,7 +67,7 @@
                                             class="fa fa-paperclip "></i> 3</a></td>
                                 <td>
                                     <% if (item.curAuditor) { %>
-                                        <a href="#sp-list" data-toggle="modal" data-target="#sp-list" m-order="<%- item.order %>"><%- item.curAuditor.name %><%if (item.curAuditor.role !== '' && item.curAuditor.role !== null) { %>-<%- item.curAuditor.role %><% } %></a>
+                                        <a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" m-order="<%- item.order %>"><%- item.curAuditor.name %><%if (item.curAuditor.role !== '' && item.curAuditor.role !== null) { %>-<%- item.curAuditor.role %><% } %></a>
                                     <% } %>
                                     <span class="<%- auditConst.statusClass[item.status] %>">
                                         <%- auditConst.statusString[item.status] %>