Browse Source

账单表电子签名处理(content)

TonyKang 4 years ago
parent
commit
d041e89f0c

+ 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));