Explorar el Código

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

MaiXinRong hace 3 años
padre
commit
a468b1682c

+ 8 - 1
app/const/material.js

@@ -33,7 +33,13 @@ const ex_basic_text = {
     bqbg: '所选期变更计量金额',
     bqwc: '所选期完成计量金额',
     zdy: '自定义金额',
-}
+};
+// 金额
+const decimal = {
+    up: 3, // 单价
+    qty: 3, // 数量
+    tp: 2, // 金额
+};
 const ex_calc = [
     {
         code: 'bqht',
@@ -73,4 +79,5 @@ module.exports = {
     is_summary,
     ex_calc,
     ex_basic_text,
+    decimal,
 };

+ 2 - 0
app/middleware/material_check.js

@@ -9,6 +9,7 @@
 
 const status = require('../const/audit').material.status;
 const shenpiConst = require('../const/shenpi');
+const materialConst = require('../const/material');
 const _ = require('lodash');
 
 module.exports = options => {
@@ -116,6 +117,7 @@ module.exports = options => {
             });
             // 调差的readOnly 指表格和页面只能看不能改,和审批无关
             material.readOnly = !((material.status === status.uncheck || material.status === status.checkNo) && accountId === material.user_id);
+            material.decimal = material.decimal ? JSON.parse(material.decimal) : materialConst.decimal;
             this.material = material;
             // 根据状态判断是否需要更新审批人列表
             if ((material.status === status.uncheck || material.status === status.checkNo) && this.tender.info.shenpi.material !== shenpiConst.sp_status.sqspr) {

+ 21 - 0
app/public/js/material.js

@@ -1239,6 +1239,16 @@ $(document).ready(() => {
         }
     });
 
+    $.divResizer({
+        select: '#main-resize',
+        callback: function () {
+            materialSpread.refresh();
+            materialMonthSpread.refresh();
+            const height = $('#material-spread').height();
+            setLocalCache('material_bills_' + materialID, height);
+        }
+    });
+
     // 展开收起月信息价并浏览器记住本期展开收起
     $('a', '.right-nav').bind('click', function () {
         //const main = $('#main-view'), tool = $('#tools-view');
@@ -1275,4 +1285,15 @@ $(document).ready(() => {
         materialSpread.refresh();
         materialMonthSpread.refresh();
     }
+    if (getLocalCache('material_bills_' + materialID)) {
+        $('#material-spread').height(getLocalCache('material_bills_' + materialID));
+        const cHeader = getObjHeight($(".c-header"));
+        const sjs1 = getObjHeight($('.sjs-height-1'));
+        $(".bcontent-wrap").height($(window).height()-cHeader-sjs1-90+53);
+        materialSpread.refresh();
+        materialMonthSpread.refresh();
+    }
+    function getObjHeight(select) {
+        return select.length > 0 ? select.height() : 0;
+    }
 });

+ 27 - 1
app/public/js/material_exponent.js

@@ -502,7 +502,14 @@ $(document).ready(() => {
         });
         // 自定义金额变更并提交
         $('#calc_zdy').on('blur', function () {
-            const newValue = parseFloat($(this).val());
+            let newValue = parseFloat($(this).val());
+            // 判断输入位数,并自动四舍五入
+            newValue = ZhCalc.round(newValue, decimal.tp);
+            $('#calc_zdy').val(newValue);
+            if (isNaN(newValue)) {
+                toastr.error('请输入正确的金额');
+                return false;
+            }
             const zdy = _.find(ex_calc, { code: 'zdy' });
             if (zdy.value === newValue) {
                 return;
@@ -541,6 +548,15 @@ $(document).ready(() => {
         }
     });
 
+    $.divResizer({
+        select: '#main-resize',
+        callback: function () {
+            materialExponentSpread.refresh();
+            const height = $('#material-exponent-spread').height();
+            setLocalCache('material_exponent2_' + materialID, height);
+        }
+    });
+
     // 展开收起月信息价并浏览器记住本期展开收起
     $('a', '.right-nav').bind('click', function () {
         //const main = $('#main-view'), tool = $('#tools-view');
@@ -574,4 +590,14 @@ $(document).ready(() => {
         showSideTools(tab.hasClass('active'));
         materialExponentSpread.refresh();
     }
+    if (getLocalCache('material_exponent2_' + materialID)) {
+        $('#material-exponent-spread').height(getLocalCache('material_exponent2_' + materialID));
+        var cHeader = getObjHeight($(".c-header"));
+        var sjs1 = getObjHeight($('.sjs-height-1'));
+        $(".bcontent-wrap").height($(window).height()-cHeader-sjs1-90+53);
+        materialExponentSpread.refresh();
+    }
+    function getObjHeight(select) {
+        return select.length > 0 ? select.height() : 0;
+    }
 });

+ 26 - 0
app/public/js/material_list.js

@@ -1076,6 +1076,19 @@ $(document).ready(() => {
         }
     });
 
+    $.divResizer({
+        select: '#main-resize',
+        callback: function () {
+            materialSpread.refresh();
+            ledgerSpread.refresh();
+            let bcontent = $(".bcontent-wrap") ? $(".bcontent-wrap").height() : 0;
+            $(".sp-wrap").height(bcontent-30);
+            leafXmjSpread.refresh();
+            const height = $('.bcontent-wrap').height();
+            setLocalCache('material_list2_' + materialID, height);
+        }
+    });
+
     // 展开收起月信息价并浏览器记住本期展开收起
     $('a', '.right-nav').bind('click', function () {
         //const main = $('#main-view'), tool = $('#tools-view');
@@ -1113,4 +1126,17 @@ $(document).ready(() => {
         // leafXmjSpread.refresh();
         materialSpread.refresh();
     }
+    if (getLocalCache('material_list2_' + materialID)) {
+        $('.bcontent-wrap').height(getLocalCache('material_list2_' + materialID));
+        const cHeader = getObjHeight($(".c-header"));
+        const bcontent = $(".bcontent-wrap") ? $(".bcontent-wrap").height() : 0;
+        $(".sp-wrap").height(bcontent-30);
+        $('.sjs-height-1').height($(window).height()-cHeader-bcontent-90+53);
+        materialSpread.refresh();
+        ledgerSpread.refresh();
+        leafXmjSpread.refresh();
+    }
+    function getObjHeight(select) {
+        return select.length > 0 ? select.height() : 0;
+    }
 });

+ 39 - 0
app/view/material/audit_modal.ejs

@@ -737,3 +737,42 @@
         }
     });
 </script>
+<!--材料调差-小数位数-->
+<div class="modal fade" id="cc-digits" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">小数位数</h5>
+            </div>
+            <div class="modal-body">
+                <div class="form-group">
+
+                    <div class="row">
+                        <div class="col-4">
+                            <div class="input-group input-group-sm">
+                                <div class="input-group-prepend">
+                                    <span class="input-group-text">数量</span>
+                                </div>
+                                <input type="number" class="form-control" value="<%- material.decimal.qty %>" <% if (!((material.status === auditConst.status.uncheck || material.status === auditConst.status.checkNo) && ctx.session.sessionUser.accountId === material.user_id)) { %>disabled<% } %>>
+                            </div>
+                        </div>
+                        <div class="col-4">
+                            <div class="input-group input-group-sm">
+                                <div class="input-group-prepend">
+                                    <span class="input-group-text">金额</span>
+                                </div>
+                                <input type="number" class="form-control" value="<%- material.decimal.tp %>" <% if (!((material.status === auditConst.status.uncheck || material.status === auditConst.status.checkNo) && ctx.session.sessionUser.accountId === material.user_id)) { %>disabled<% } %>>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+                <% if ((material.status === auditConst.status.uncheck || material.status === auditConst.status.checkNo) && ctx.session.sessionUser.accountId === material.user_id) { %>
+                    <button type="button" class="btn btn-sm btn-primary">确认修改</button>
+                <% } %>
+            </div>
+        </div>
+    </div>
+</div>

+ 6 - 3
app/view/material/exponent.ejs

@@ -18,6 +18,7 @@
                 <!--</div>-->
             </div>
             <div class="ml-auto">
+                <!--<a href="#cc-digits" class="btn btn-sm btn-outline-primary" data-toggle="modal" data-target="#cc-digits" data-placement="bottom" title="" >小数位数</a>-->
             </div>
         </div>
     </div>
@@ -30,7 +31,8 @@
                 <div class="sjs-height-1" id="material-exponent-spread">
                 </div>
                 <!--下部分-->
-                <div class="bcontent-wrap">
+                <div class="bcontent-wrap" id="main-bottom">
+                    <div id="main-resize" class="resize-y" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
                     <div class="bc-bar mb-1">
                         <div class="input-group input-group-sm ">
                             <div class="input-group-prepend">
@@ -47,8 +49,8 @@
                             </select>
                         </div>
                     </div>
-                    <div class="sp-wrap">
-                        <div class="col-7 p-0">
+                    <div class="sp-wrap" style="max-width: 800px;min-width: 500px;">
+                        <div class="col-12 p-0">
                             <table class="table table-sm table-bordered">
                                 <tr><th rowspan="2"></th><th colspan="2" class="text-center">信息价</th><th colspan="2" class="text-center">价格指数</th></tr>
                                 <tr class="text-center"><th>本期金额</th><th>截止本期金额</th>
@@ -113,6 +115,7 @@
     const readOnly = <%- material.readOnly %>;
     const materialID = <%- material.id %>;
     const materialOrder = <%- material.order %>;
+    const decimal = JSON.parse('<%- JSON.stringify(ctx.tender.info.decimal) %>');
     let m_tp = <%= material.m_tp !== null ? material.m_tp : 0 %>;
     let ex_tp = <%= material.ex_tp !== null ? material.ex_tp : 0 %>;
     const pre_tp = <%= material.pre_tp !== null ? material.pre_tp : 0 %>;

+ 3 - 0
app/view/material/file.ejs

@@ -34,6 +34,9 @@
             <!--<span class="text-primary" style="margin-left: 5px;">所有期</span>-->
           <!--</span>-->
         <!--</div>-->
+      <div class="ml-auto">
+        <!--<a href="#cc-digits" class="btn btn-sm btn-outline-primary" data-toggle="modal" data-target="#cc-digits" data-placement="bottom" title="" >小数位数</a>-->
+      </div>
     </div>
   </div>
   <div class="content-wrap">

+ 5 - 3
app/view/material/info.ejs

@@ -22,6 +22,7 @@
                 </div>
             </div>
             <div class="ml-auto">
+                <!--<a href="#cc-digits" class="btn btn-sm btn-outline-primary" data-toggle="modal" data-target="#cc-digits" data-placement="bottom" title="" >小数位数</a>-->
             </div>
         </div>
     </div>
@@ -34,7 +35,8 @@
                 <div class="sjs-height-1" id="material-spread">
                 </div>
                 <!--下部分-->
-                <div class="bcontent-wrap">
+                <div class="bcontent-wrap" id="main-bottom">
+                    <div id="main-resize" class="resize-y" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
                     <div class="bc-bar mb-1">
                         <div class="input-group input-group-sm ">
                             <div class="input-group-prepend">
@@ -51,8 +53,8 @@
                             </select>
                         </div>
                     </div>
-                    <div class="sp-wrap">
-                        <div class="col-7 p-0">
+                    <div class="sp-wrap" style="max-width: 800px;min-width: 500px;">
+                        <div class="col-12 p-0">
                             <table class="table table-sm table-bordered">
                                 <tr><th rowspan="2"></th><th colspan="2" class="text-center">信息价</th><th colspan="2" class="text-center">价格指数</th></tr>
                                 <tr class="text-center"><th>本期金额</th><th>截止本期金额</th>

+ 3 - 1
app/view/material/list.ejs

@@ -17,6 +17,7 @@
                 </div>
             </div>
             <div class="ml-auto">
+                <!--<a href="#cc-digits" class="btn btn-sm btn-outline-primary" data-toggle="modal" data-target="#cc-digits" data-placement="bottom" title="" >小数位数</a>-->
             </div>
         </div>
     </div>
@@ -40,7 +41,8 @@
                     </div>
                 </div>
                 <!--下部分-->
-                <div class="bcontent-wrap">
+                <div class="bcontent-wrap mt-1" id="main-bottom">
+                    <div id="main-resize" class="resize-y" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
                     <div class="bc-bar mb-1">
                         <ul class="nav nav-tabs">
                             <li class="nav-item">

+ 3 - 0
sql/update.sql

@@ -368,3 +368,6 @@ CREATE TABLE `zh_change_pos`  (
   INDEX `tid`(`tid`) USING BTREE,
   INDEX `tlid`(`tid`, `lid`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci COMMENT = '变更新增部位--部位明细';
+
+
+ALTER TABLE `zh_material` ADD `decimal` VARCHAR(255) NULL DEFAULT NULL COMMENT '小数位数设置JSON' AFTER `rate`;