Browse Source

Merge branch 'master' of http://192.168.1.41:3000/maixinrong/Calculation

MaiXinRong 5 years ago
parent
commit
dff2c0c365

+ 13 - 13
app/public/js/change_set.js

@@ -75,12 +75,12 @@ $(document).ready(() => {
             gcl_index = gclhtml !== '' ? ++gcl_index : gcl_index;
             const lid = gcl.leafXmjs !== undefined && gcl.leafXmjs !== null ? gcl.leafXmjs[0].gcl_id : gcl.id;
             listHtml += '<tr data-lid="' + lid + '"'+ gclhtml +' data-index="' + list_index + '" data-bwmx="">' +
-                '<td>' + list_index + '</td>' +
+                '<td class="text-center">' + list_index + '</td>' +
                 '<td>' + gcl.code + '</td>' +
-                '<td>' + gcl.name + '</td>' +
-                '<td>' + unit + '</td>' +
-                '<td>' + roundnum(unit_price, unitPriceUnit) + '</td>' +
-                '<td>' + quantity + '</td>' +
+                '<td class="text-left">' + gcl.name + '</td>' +
+                '<td class="text-center">' + unit + '</td>' +
+                '<td class="text-right">' + roundnum(unit_price, unitPriceUnit) + '</td>' +
+                '<td class="text-right">' + quantity + '</td>' +
                 '</tr>';
             list_index++;
         }
@@ -357,13 +357,13 @@ $(document).ready(() => {
                 const bwmx = leaf.bwmx !== undefined ? leaf.bwmx : '';
                 const isChecked = data_bwmx.indexOf(leaf.code + '_' + (bwmx !== '' ? bwmx : leaf.jldy ? leaf.jldy : '') + ';' + quantity) !== -1 && isCheck ? 'checked' : '';
                 codeHtml += '<tr quantity="' + quantity + '"><td>' + leaf.code + '</td>' +
-                    '<td>' + (leaf.jldy ? leaf.jldy: '') + '</td>' +
-                    '<td>' + bwmx + '</td>' +
-                    '<td>' + (leaf.dwgc ? leaf.dwgc : '') + '</td>' +
-                    '<td>' + (leaf.fbgc ? leaf.fbgc : '') + '</td>' +
-                    '<td>' + (leaf.fxgc ? leaf.fxgc : '') + '</td>' +
-                    '<td>' + roundnum(quantity, findDecimal(gcl.unit)) + '</td>' +
-                    '<td><input type="checkbox"' + isChecked +
+                '<td>' + bwmx + '</td>' +
+                '<td>' + (leaf.dwgc ? leaf.dwgc : '') + '</td>' +
+                '<td>' + (leaf.fbgc ? leaf.fbgc : '') + '</td>' +
+                '<td>' + (leaf.fxgc ? leaf.fxgc : '') + '</td>' +
+                '<td>' + (leaf.jldy ? leaf.jldy: '') + '</td>' +
+                    '<td class="text-right">' + roundnum(quantity, findDecimal(gcl.unit)) + '</td>' +
+                    '<td class="text-center"><input type="checkbox"' + isChecked +
                     '></td></tr>';
             }
         } else if (!isDeal && isCheck) {
@@ -770,7 +770,7 @@ function makeCodeTable(search = '') {
         if (length === 8) {
             const code = $('#code-list tr').eq(i).children('td').eq(0).text();
             const name = $('#code-list tr').eq(i).children('td').eq(1).text();
-            const jldy = $('#code-list tr').eq(i).children('td').eq(2).text();
+            const jldy = $('#code-list tr').eq(i).children('td').eq(5).text();
             console.log(code, name, jldy, search, code.indexOf(search) !== -1 || name.indexOf(search) !== -1 || jldy.indexOf(search) !== -1);
             const isShow = code.indexOf(search) !== -1 || name.indexOf(search) !== -1 || jldy.indexOf(search) !== -1;
             $('#code-list tr').eq(i).css('display', (isShow ? 'table-row' : 'none'));

+ 4 - 4
app/public/js/stage.js

@@ -109,7 +109,7 @@ function getAllList(currPageNum = 1) {
     // 总页数
     const pageNum = Math.ceil(total/pageCount);
     $('#totalPage').text(pageNum);
-    $('#currentPage').text(currPageNum);
+    $('#currentPage').text(total === 0 ? 0 : currPageNum);
     // 当前页附件内容
     const currPageAttData = attData.slice((currPageNum-1)*pageCount, currPageNum*pageCount);
     let html = '';
@@ -1129,9 +1129,9 @@ $(document).ready(() => {
                 SpreadJsObj.loadSheetData(spSpread.getActiveSheet(), 'data', posData);
                 getNodeList(node.id);
                 // 如果是附件是当前节点,隐藏
-                if ($('#dqjiedian').hasClass('active')) {
-                    $('#showAttachment').hide();
-                }
+                // if ($('#dqjiedian').hasClass('active')) {
+                //     $('#showAttachment').hide();
+                // }
             } else {
                 SpreadJsObj.loadSheetData(spSpread.getActiveSheet(), 'data', []);
             }

+ 105 - 47
app/reports/rpt_component/helper/jpc_helper_discrete.js

@@ -28,53 +28,7 @@ const JpcDiscreteHelper = {
                         let flexibleRefField = null;
                         for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {
                             const df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];
-                            if (JE.isSignature(df[JV.PROP_FIELD_ID], $CURRENT_RPT)) {
-                                // 这里输出到signatureRst
-                                if (Array.isArray(signatureRst)) {
-                                    const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);
-                                    const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };
-                                    signatureItem[JV.PROP_CONTROL] = df[[JV.PROP_CONTROL]];
-                                    signatureItem[JV.PROP_STYLE] = df[[JV.PROP_STYLE]];
-                                    signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
-                                    signatureRst.push(signatureItem);
-                                }
-                            } else if (JE.isDynamicParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
-                                // 这里输出到signatureDateRst
-                                // console.log('current sign date df :');
-                                // console.log(df);
-                                if (Array.isArray(signatureDateRst)) {
-                                    let pID = 0;
-                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
-                                        pID = df[JV.PROP_PARAM_ID];
-                                    } else {
-                                        pID = df[JV.PROP_ID];
-                                    }
-                                    const param = JE.P(pID, $CURRENT_RPT);
-                                    // const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, param[JV.PROP_DFT_VALUE], true);
-                                    const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
-                                    // console.log('Date param :');
-                                    // console.log(param);
-                                    signatureDateItem.signature_name = param[JV.PROP_NAME];
-                                    signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
-                                    signatureDateRst.push(signatureDateItem);
-                                }
-                            } else if (JE.isSignatureAudit(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
-                                if (Array.isArray(signatureAuditRst)) {
-                                    let pID = 0;
-                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
-                                        pID = df[JV.PROP_PARAM_ID];
-                                    } else {
-                                        pID = df[JV.PROP_ID];
-                                    }
-                                    const param = JE.P(pID, $CURRENT_RPT);
-                                    const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
-                                    // console.log('Aidit param :');
-                                    // console.log(param);
-                                    signatureAuditItem.signature_name = param[JV.PROP_NAME];
-                                    signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
-                                    signatureAuditRst.push(signatureAuditItem);
-                                }
-                            } else {
+                            if (!this.setupSignatureFieldParam(signatureRst, signatureDateRst, signatureAuditRst, $CURRENT_RPT, band, unitFactor, df)) {
                                 let value = '';
                                 let isPic = false;
                                 if (df[JV.PROP_FIELD_ID]) {
@@ -149,6 +103,56 @@ const JpcDiscreteHelper = {
                                 }
                                 rst.push(item); // 不管是不是Pic,都得保留一个壳子
                             }
+                            /*
+                            if (JE.isSignature(df[JV.PROP_FIELD_ID], $CURRENT_RPT)) {
+                                // 这里输出到signatureRst
+                                if (Array.isArray(signatureRst)) {
+                                    const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);
+                                    const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };
+                                    signatureItem[JV.PROP_CONTROL] = df[[JV.PROP_CONTROL]];
+                                    signatureItem[JV.PROP_STYLE] = df[[JV.PROP_STYLE]];
+                                    signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                                    signatureRst.push(signatureItem);
+                                }
+                            } else if (JE.isDynamicParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                                // 这里输出到signatureDateRst
+                                // console.log('current sign date df :');
+                                // console.log(df);
+                                if (Array.isArray(signatureDateRst)) {
+                                    let pID = 0;
+                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                                        pID = df[JV.PROP_PARAM_ID];
+                                    } else {
+                                        pID = df[JV.PROP_ID];
+                                    }
+                                    const param = JE.P(pID, $CURRENT_RPT);
+                                    // const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, param[JV.PROP_DFT_VALUE], true);
+                                    const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
+                                    // console.log('Date param :');
+                                    // console.log(param);
+                                    signatureDateItem.signature_name = param[JV.PROP_NAME];
+                                    signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                                    signatureDateRst.push(signatureDateItem);
+                                }
+                            } else if (JE.isSignatureAudit(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                                if (Array.isArray(signatureAuditRst)) {
+                                    let pID = 0;
+                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                                        pID = df[JV.PROP_PARAM_ID];
+                                    } else {
+                                        pID = df[JV.PROP_ID];
+                                    }
+                                    const param = JE.P(pID, $CURRENT_RPT);
+                                    const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
+                                    // console.log('Aidit param :');
+                                    // console.log(param);
+                                    signatureAuditItem.signature_name = param[JV.PROP_NAME];
+                                    signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                                    signatureAuditRst.push(signatureAuditItem);
+                                }
+                            } else {
+                            }
+                            /*/
                         }
                     }
                 }
@@ -156,6 +160,60 @@ const JpcDiscreteHelper = {
         }
         return rst;
     },
+    setupSignatureFieldParam: function(signatureRst, signatureDateRst, signatureAuditRst, $CURRENT_RPT, band, unitFactor, df) {
+        let rst = false;
+        if (JE.isSignature(df[JV.PROP_FIELD_ID], $CURRENT_RPT)) {
+            // 这里输出到signatureRst
+            if (Array.isArray(signatureRst)) {
+                const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);
+                const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };
+                signatureItem[JV.PROP_CONTROL] = df[[JV.PROP_CONTROL]];
+                signatureItem[JV.PROP_STYLE] = df[[JV.PROP_STYLE]];
+                signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                signatureRst.push(signatureItem);
+                rst = true;
+            }
+        } else if (JE.isDynamicParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+            // 这里输出到signatureDateRst
+            // console.log('current sign date df :');
+            // console.log(df);
+            if (Array.isArray(signatureDateRst)) {
+                let pID = 0;
+                if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                    pID = df[JV.PROP_PARAM_ID];
+                } else {
+                    pID = df[JV.PROP_ID];
+                }
+                const param = JE.P(pID, $CURRENT_RPT);
+                // const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, param[JV.PROP_DFT_VALUE], true);
+                const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
+                // console.log('Date param :');
+                // console.log(param);
+                signatureDateItem.signature_name = param[JV.PROP_NAME];
+                signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                signatureDateRst.push(signatureDateItem);
+                rst = true;
+            }
+        } else if (JE.isSignatureAudit(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+            if (Array.isArray(signatureAuditRst)) {
+                let pID = 0;
+                if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                    pID = df[JV.PROP_PARAM_ID];
+                } else {
+                    pID = df[JV.PROP_ID];
+                }
+                const param = JE.P(pID, $CURRENT_RPT);
+                const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);
+                // console.log('Aidit param :');
+                // console.log(param);
+                signatureAuditItem.signature_name = param[JV.PROP_NAME];
+                signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                signatureAuditRst.push(signatureAuditItem);
+                rst = true;
+            }
+        }
+        return rst;
+    },
     _getSegPageValue: function(orgData, segPageIdx) {
         let rst = orgData;
         if (typeof orgData === 'string') {

+ 75 - 35
app/reports/rpt_component/jpc_bill_tab.js

@@ -130,49 +130,89 @@ JpcBillTabSrv.prototype.createNew = function() {
                 let isPic = false;
                 for (let i = 0; i < tab_fields.length; i++) {
                     const tab_field = tab_fields[i];
-                    let data_field = null;
-                    const map_data_field = JE.F(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
-                    isPic = (map_data_field.isPic !== undefined && map_data_field.isPic);
-                    if (me.disp_fields_idx.length > i && me.disp_fields_idx[i] !== JV.BLANK_FIELD_INDEX && (typeof me.disp_fields_idx[i] !== 'object')) {
-                        data_field = data_details[me.disp_fields_idx[i]];
-                    } else {
-                        if (map_data_field) {
-                            data_field = map_data_field[JV.PROP_AD_HOC_DATA];
+                    if (!JpcDiscreteHelper.setupSignatureFieldParam(me.signatureRst, me.signatureDateRst, me.signatureAuditRst, $CURRENT_RPT, band, unitFactor, tab_field)) {
+                        let data_field = null;
+                        const map_data_field = JE.F(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
+                        isPic = (map_data_field.isPic !== undefined && map_data_field.isPic);
+                        if (me.disp_fields_idx.length > i && me.disp_fields_idx[i] !== JV.BLANK_FIELD_INDEX && (typeof me.disp_fields_idx[i] !== 'object')) {
+                            data_field = data_details[me.disp_fields_idx[i]];
+                        } else {
+                            if (map_data_field) {
+                                data_field = map_data_field[JV.PROP_AD_HOC_DATA];
+                            }
                         }
-                    }
-                    if (map_data_field && map_data_field[JV.PROP_PRECISION] && map_data_field.flexiblePrecisionRefObj) {
-                        if (flexiblePrecisionRefObj === null) {
-                            flexiblePrecisionRefObj = {};
-                            flexibleRefField = JE.F(map_data_field[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID], $CURRENT_RPT);
-                            precision_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq];
-                            for (const decimalObj of map_data_field.flexiblePrecisionRefObj) {
-                                flexiblePrecisionRefObj['refUnit_' + decimalObj.unit] = decimalObj.decimal;
+                        if (map_data_field && map_data_field[JV.PROP_PRECISION] && map_data_field.flexiblePrecisionRefObj) {
+                            if (flexiblePrecisionRefObj === null) {
+                                flexiblePrecisionRefObj = {};
+                                flexibleRefField = JE.F(map_data_field[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID], $CURRENT_RPT);
+                                precision_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq];
+                                for (const decimalObj of map_data_field.flexiblePrecisionRefObj) {
+                                    flexiblePrecisionRefObj['refUnit_' + decimalObj.unit] = decimalObj.decimal;
+                                }
                             }
+                            JpcFieldHelper.resetFlexibleFormat(tab_field, precision_ref_data, flexiblePrecisionRefObj, page - 1, customizeCfg);
+                        } else {
+                            if (page === 1) JpcFieldHelper.resetFormat(tab_field, map_data_field, customizeCfg);
                         }
-                        JpcFieldHelper.resetFlexibleFormat(tab_field, precision_ref_data, flexiblePrecisionRefObj, page - 1, customizeCfg);
-                    } else {
-                        if (page === 1) JpcFieldHelper.resetFormat(tab_field, map_data_field, customizeCfg);
-                    }
-                    if (!(tab_field[JV.PROP_HIDDEN])) {
-                        const val = JpcFieldHelper.getValue(data_field, page - 1);
-                        const cellItem = JpcCommonOutputHelper.createCommonOutput(tab_field, val, controls);
-                        cellItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                        if (!(tab_field[JV.PROP_HIDDEN])) {
+                            const val = JpcFieldHelper.getValue(data_field, page - 1);
+                            const cellItem = JpcCommonOutputHelper.createCommonOutput(tab_field, val, controls);
+                            cellItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
 
-                        if (isPic && cellItem[JV.PROP_VALUE] !== undefined && cellItem[JV.PROP_VALUE] !== null && cellItem[JV.PROP_VALUE] !== '') {
-                            if (Array.isArray(me.signatureRst)) {
-                                if (cellItem[JV.PROP_VALUE][0] !== '/') {
-                                    cellItem[JV.PROP_VALUE] = '/' + cellItem[JV.PROP_VALUE];
+                            if (isPic && cellItem[JV.PROP_VALUE] !== undefined && cellItem[JV.PROP_VALUE] !== null && cellItem[JV.PROP_VALUE] !== '') {
+                                if (Array.isArray(me.signatureRst)) {
+                                    if (cellItem[JV.PROP_VALUE][0] !== '/') {
+                                        cellItem[JV.PROP_VALUE] = '/' + cellItem[JV.PROP_VALUE];
+                                    }
+                                    const signatureItem = { signature_name: JV.SIGNATURE_NAME_DUMMY, path: cellItem[JV.PROP_VALUE], pic: null }; // 这里的pic数据在指标中里已经处理过了
+                                    signatureItem[JV.PROP_CONTROL] = cellItem[[JV.PROP_CONTROL]];
+                                    signatureItem[JV.PROP_STYLE] = cellItem[[JV.PROP_STYLE]];
+                                    signatureItem[JV.PROP_AREA] = cellItem[JV.PROP_AREA];
+                                    me.signatureRst.push(signatureItem);
+                                    cellItem[JV.PROP_VALUE] = '';
                                 }
-                                const signatureItem = { signature_name: JV.SIGNATURE_NAME_DUMMY, path: cellItem[JV.PROP_VALUE], pic: null }; // 这里的pic数据在指标中里已经处理过了
-                                signatureItem[JV.PROP_CONTROL] = cellItem[[JV.PROP_CONTROL]];
-                                signatureItem[JV.PROP_STYLE] = cellItem[[JV.PROP_STYLE]];
-                                signatureItem[JV.PROP_AREA] = cellItem[JV.PROP_AREA];
-                                me.signatureRst.push(signatureItem);
-                                cellItem[JV.PROP_VALUE] = '';
                             }
+                            rst.push(cellItem); // 不管是不是Pic,都得保留一个壳子
+                        }
+                    }
+                    /*
+                    if (JE.isSignature(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT)) {
+                        // 这里输出到signatureRst
+                        const map_data_field = JE.F(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
+                        const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };
+                        signatureItem[JV.PROP_CONTROL] = tab_field[[JV.PROP_CONTROL]];
+                        signatureItem[JV.PROP_STYLE] = tab_field[[JV.PROP_STYLE]];
+                        signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                        me.signatureRst.push(signatureItem);
+                    } else if (JE.isDynamicParam(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                        // 这里输出到signatureDateRst
+                        let pID = 0;
+                        if (tab_field.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                            pID = tab_field[JV.PROP_PARAM_ID];
+                        } else {
+                            pID = tab_field[JV.PROP_ID];
+                        }
+                        const param = JE.P(pID, $CURRENT_RPT);
+                        const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(tab_field, tab_field[JV.PROP_DFT_VALUE], true);
+                        signatureDateItem.signature_name = param[JV.PROP_NAME];
+                        signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                        me.signatureDateRst.push(signatureDateItem);
+                    } else if (JE.isSignatureAudit(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                        let pID = 0;
+                        if (tab_field.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                            pID = tab_field[JV.PROP_PARAM_ID];
+                        } else {
+                            pID = tab_field[JV.PROP_ID];
                         }
-                        rst.push(cellItem); // 不管是不是Pic,都得保留一个壳子
+                        const param = JE.P(pID, $CURRENT_RPT);
+                        const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(tab_field, tab_field[JV.PROP_DFT_VALUE], true);
+                        signatureAuditItem.signature_name = param[JV.PROP_NAME];
+                        signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                        me.signatureAuditRst.push(signatureAuditItem);
+                    } else {
+                        //
                     }
+                    */
                 }
                 if (tab[JV.PROP_TEXT]) {
                     rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, 1, 0));

+ 3 - 4
app/service/material_audit.js

@@ -195,7 +195,9 @@ module.exports = app => {
                 await transaction.update(this.ctx.service.material.tableName, {
                     id: materialId, status: auditConst.status.checking,
                 });
-
+                // 添加记录至推送表
+                await transaction.insert('zh_notice', { type: 'material', uid: audit.aid, status: auditConst.status.checking, is_read: 0, content: '待审核' });
+                console.log('1111');
                 // 本期一些必要数据(如应耗数量和上期调差金额)插入到material_bills_history表里
                 const materialBillsData = await this.ctx.service.materialBills.getAllDataByCondition({ where: { tid: this.ctx.tender.id } });
                 if (materialBillsData.length === 0) {
@@ -410,7 +412,6 @@ module.exports = app => {
             const time = new Date();
             // 整理当前流程审核人状态更新
             const audit = await this.getDataByCondition({ mid: materialId, times, status: auditConst.status.checking });
-            console.log('audit', audit);
             if (!audit || audit.order <= 1) {
                 throw '审核数据错误';
             }
@@ -459,8 +460,6 @@ module.exports = app => {
             if (checkData.checkType !== auditConst.status.checked && checkData.checkType !== auditConst.status.checkNo && checkData.checkType !== auditConst.status.checkNoPre) {
                 throw '提交数据错误';
             }
-            console.log('checkData:', checkData);
-            console.log('times', times);
             switch (checkData.checkType) {
                 case auditConst.status.checked:
                     await this._checked(materialId, checkData, times);

+ 22 - 9
app/view/change/info_modal.ejs

@@ -115,7 +115,7 @@
                         </div>
                         <div style="overflow-y:auto" class="sjs-biangeng-height">
                             <table class="table table-striped table-bordered table-hover table-sm fixed_headers">
-                                <thead><tr><th width="40">序号</th><th>清单编号</th><th>名称</th><th width="50">单位</th><th width="100">单价</th><th width="100">数量</th></tr></thead>
+                                <thead><tr class="text-center"><th width="40">序号</th><th>清单编号</th><th>名称</th><th width="50">单位</th><th width="100">单价</th><th width="100">数量</th></tr></thead>
                                 <tbody id="table-list-select">
                                 </tbody>
                             </table>
@@ -129,7 +129,7 @@
                         <div style="overflow-y:auto" class="sjs-biangeng-height">
                             <table class="table table-striped table-bordered table-hover table-sm fixed_headers2">
                                 <thead>
-                                <tr><th width="100">项目节编号</th><th>名称</th><th>计量单元</th><th>单位工程</th><th>分部工程</th><th>分项工程</th><th width="70">数量</th><th width="40">选择</th></tr>
+                                <tr class="text-center"><th width="100">项目节编号</th><th>细目</th><th>单位工程</th><th>分部工程</th><th>分项工程</th><th>计量单元</th><th width="70">数量</th><th width="40">选择</th></tr>
                                 </thead>
                                 <tbody id="code-list" data-index="">
                                 </tbody>
@@ -363,7 +363,7 @@
 
 <% if (auditStatus === 6) { %>
     <!--审批通过-->
-    <div class="modal fade" id="sp-done" data-backdrop="static">
+    <div class="modal fade sp-location-list" id="sp-done" data-backdrop="static">
         <div class="modal-dialog modal-lg" role="document">
             <form class="modal-content" action="/tender/<%- tender.id %>/change/approval?_csrf=<%= ctx.csrf %>" method="post" id="success-approval">
                 <div class="modal-header">
@@ -510,7 +510,7 @@
         </div>
     </div>
     <!--审批退回-->
-    <div class="modal fade" id="sp-back" data-backdrop="static">
+    <div class="modal fade sp-location-list" id="sp-back" data-backdrop="static">
         <div class="modal-dialog modal-lg" role="document">
             <form class="modal-content" action="/tender/<%- tender.id %>/change/approval?_csrf=<%= ctx.csrf %>" method="post" id="fail-approval">
                 <div class="modal-header">
@@ -730,14 +730,27 @@
 </div>
 
 <script>
-    $('.modal').on('shown.bs.modal', function () {
-        const height = $(this)[0].scrollHeight
-        const scrollBox = $(this).find('div[class="col-8 modal-height-500"]')
+    $('.sp-location-list').on('shown.bs.modal', function () {
+        const height = $(this)[0].scrollHeight;
+        const scrollBox = $(this).find('div[class="col-8 modal-height-500"]');
+        const bdiv = (scrollBox.offset() && scrollBox.offset().top) || 0;
         // 450是modal没有滚动条时的最大高度,超过则出现滚动条,需要自动下拉到底部
-        if (scrollBox.length && scrollBox[0].scrollHeight > 450) {
-            scrollBox.scrollTop(height);
+        // if (scrollBox.length && scrollBox[0].scrollHeight > 450) {
+        //     scrollBox.scrollTop(height);
+        // }
+        scrollBox.scrollTop(0);
+        const hdiv = divSearch($(this).find('textarea')) ? $(this).find('textarea') : null;
+        const hdheight = hdiv ? hdiv.parents('.list-group-item').offset().top : null;
+        if (hdiv && scrollBox.length &&  scrollBox[0].scrollHeight > 450 && hdheight - bdiv > 450) {
+            scrollBox.scrollTop(hdheight - bdiv);
         }
     });
+    function divSearch(div) {
+        if (div.length > 0) {
+            return true;
+        }
+        return false;
+    }
     $('#led-warning').click(function () {
         $('#warning-ledger').modal('hide');
     });

+ 21 - 7
app/view/material/audit_modal.ejs

@@ -55,7 +55,7 @@
 <% if (ctx.material.status === auditConst.status.checking) { %>
     <% if (ctx.material.curAuditor && ctx.material.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
         <!--审批通过-->
-        <div class="modal fade" id="sp-done" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-done" data-backdrop="static">
     <div class="modal-dialog modal-lg" role="document">
         <form class="modal-content" action="<%- preUrl %>/audit/check" method="post" onsubmit="return auditCheck(0);">
             <div class="modal-header">
@@ -196,7 +196,7 @@
     </div>
 </div>
         <!--审批退回-->
-        <div class="modal fade" id="sp-back" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-back" data-backdrop="static">
     <div class="modal-dialog modal-lg" role="document">
         <form class="modal-content modal-lg" action="<%- preUrl %>/audit/check" method="post" onsubmit="return auditCheck(1);">
             <div class="modal-header">
@@ -867,12 +867,26 @@
 <% } %>
 
 <script>
-    $('.modal').on('shown.bs.modal', function () {
-        const height = $(this)[0].scrollHeight
-        const scrollBox = $(this).find('div[class="col-8 modal-height-500"]')
+    $('.sp-location-list').on('shown.bs.modal', function () {
+        const height = $(this)[0].scrollHeight;
+        const scrollBox = $(this).find('div[class="col-8 modal-height-500"]');
+        const bdiv = (scrollBox.offset() && scrollBox.offset().top) || 0;
+
         // 450是modal没有滚动条时的最大高度,超过则出现滚动条,需要自动下拉到底部
-        if (scrollBox.length && scrollBox[0].scrollHeight > 450) {
-            scrollBox.scrollTop(height);
+        // if (scrollBox.length && scrollBox[0].scrollHeight > 450) {
+        //     scrollBox.scrollTop(height);
+        // }
+        scrollBox.scrollTop(0);
+        const hdiv = divSearch($(this).find('textarea')) ? $(this).find('textarea') : null;
+        const hdheight = hdiv ? hdiv.parents('.list-group-item').offset().top : null;
+        if (hdiv && scrollBox.length &&  scrollBox[0].scrollHeight > 450 && hdheight - bdiv > 450) {
+            scrollBox.scrollTop(hdheight - bdiv);
         }
     });
+    function divSearch(div) {
+        if (div.length > 0) {
+            return true;
+        }
+        return false;
+    }
 </script>

+ 6 - 7
app/view/stage/audit_modal.ejs

@@ -78,7 +78,7 @@
 <% if (ctx.stage.status === auditConst.status.checking) { %>
     <% if (ctx.stage.curAuditor && ctx.stage.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
         <!--审批通过-->
-        <div class="modal fade" id="sp-done" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-done" data-backdrop="static">
             <div class="modal-dialog modal-lg" role="document">
                 <form class="modal-content" action="<%- preUrl %>/audit/check" method="post" id="audit-check0">
                     <div class="modal-header">
@@ -236,7 +236,7 @@
             </div>
         </div>
         <!--审批退回-->
-        <div class="modal fade" id="sp-back" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-back" data-backdrop="static">
             <div class="modal-dialog modal-lg" role="document">
                 <form class="modal-content modal-lg" action="<%- preUrl %>/audit/check" method="post" id="audit-check1" >
                     <div class="modal-header">
@@ -1103,7 +1103,7 @@
     </div>
     <% if (ctx.session.sessionUser.accountId === ctx.stage.curAuditor.aid) { %>
         <!--审批通过-->
-        <div class="modal fade" id="sp-done" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-done" data-backdrop="static">
             <div class="modal-dialog modal-lg" role="document">
                 <form class="modal-content" action="<%- preUrl %>/audit/check" method="post" id="audit-check2">
                     <div class="modal-header">
@@ -1261,7 +1261,7 @@
             </div>
         </div>
         <!--审批退回-->
-        <div class="modal fade" id="sp-back" data-backdrop="static">
+        <div class="modal fade sp-location-list" id="sp-back" data-backdrop="static">
             <div class="modal-dialog modal-lg" role="document">
                 <form class="modal-content" action="<%- preUrl %>/audit/check" method="post" id="audit-check3">
                     <div class="modal-header">
@@ -1595,10 +1595,10 @@
     });
 
     // 定位到审批框高度
-    $('.modal').on('shown.bs.modal', function () {
+    $('.sp-location-list').on('shown.bs.modal', function () {
         const height = $(this)[0].scrollHeight;
         const scrollBox = $(this).find('div[class="col-8 modal-height-500"]');
-        const bdiv = scrollBox.offset().top;
+        const bdiv = (scrollBox.offset() && scrollBox.offset().top) || 0;
 
         // 450是modal没有滚动条时的最大高度,超过则出现滚动条,需要自动下拉到底部
         // if (scrollBox.length && scrollBox[0].scrollHeight > 450) {
@@ -1607,7 +1607,6 @@
         scrollBox.scrollTop(0);
         const hdiv = divSearch($(this).find('textarea')) ? $(this).find('textarea') : null;
         const hdheight = hdiv ? hdiv.parents('.list-group-item').offset().top : null;
-        console.log(hdheight);
         if (hdiv && scrollBox.length &&  scrollBox[0].scrollHeight > 450 && hdheight - bdiv > 450) {
             scrollBox.scrollTop(hdheight - bdiv);
         }