DbbpCheck.js 5.56 KB
Newer Older
fukai committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
import { isNumber } from "min-dash"
import BigNumber from "bignumber.js"

export default function () {
    return {
        "recgrp.bas.fcyamt": [
            {
                validator: (rule, value, callback) => {

                    if (!isNaN(value)) {
                        if (this.model.recgrp.bas.txccy != 'CNY' && this.model.recgrp.bas.fcyacc && Number(value) === 0) {
                            return callback(new Error("现汇金额必须大于0"))
                        }
                        if (this.model.recgrp.bas.txccy === 'CNY' && Number(value) != 0) {
                            return callback(new Error("汇款币种为人民币时现汇金额应为零!"))
                        }
                    } else {
                        return callback(new Error("请重新输入"))
                    }

                    callback()
                }
            }
        ],
        "recgrp.bas.lcyamt": [
            {
                validator: (rule, value, callback) => {
                    if (!isNaN(value)) {
                        if (this.model.recgrp.bas.txccy === 'CNY' && Number(value) != 0) {
                            return callback(new Error("汇款币种为人民币时购汇金额应为零!"))
                        }
                        if ((Number(this.model.recgrp.bas.exrate) != 0 && !isNaN(this.model.recgrp.bas.extrate) || this.model.recgrp.bas.lcyacc) && this.model.recgrp.bas.txccy != 'CNY' && Number(value) == 0) {
                            return callback(new Error("购汇金额必须大于0"))
                        }
                    } else {
                        return callback(new Error("请重新输入"))
                    }

                    callback()
                }
            }
        ],
        "recgrp.bas.othamt": [
            {
                validator: (rule, value, callback) => {
                    if (!isNaN(value)) {
                        if (this.model.recgrp.bas.txccy === 'CNY' && this.model.recgrp.bas.othacc && Number(value) == 0 ) {
                            return callback(new Error("必输项"))
                        }
                        if (this.model.recgrp.bas.txccy === 'CNY' && Number(value) == 0) {
                            return callback(new Error("汇款币种为人民币时其它金额不能为零!"))
                        }
                    } else {
                        return callback(new Error("请重新输入"))
                    }

                    callback()
                }
            }
        ],
        "recgrp.dcl.country": [
            {
                validator: (rule, value, callback) => {
                    if (value == 'CHN' && this.model.recgrp.dcl.txcode != '999998' && this.model.recgrp.dcl.txcode2 != '999998') {
                        return callback(new Error("不能选择CHN(中国)! "))
                    }
                    callback()
                }
            }
        ],
        "recgrp.bas.buscode": [
            { type: "string", required: true, message: "银行业务编号为必填项" },
        ],
        "recgrp.bas.custnm": [
            { type: "string", required: true, message: "汇款人名称为必填项" },
        ],
        "recgrp.bas.custype": [
            { type: "string", required: true, message: "汇款人类型为必填项" },
        ],
        "recgrp.bas.method": [
            { type: "string", required: true, message: "结算方式为必填项" },
        ],
        "recgrp.bas.oppuser": [
            { type: "string", required: true, message: "必填项" },
            {
                validator: (rule, value, callback) => {
                    if ((value.startsWith("(JW)") || value.startsWith("(JN)")) && value.trim().length > 4) {
                        callback()
                    } else {
                        return callback(new Error("请填写以(JW)或(JN)打头的收款人名称"))
                    }
                }
            }
        ],
        "recgrp.bas.rptno": [
            { type: "string", required: true, message: "申报编号为必填项" },
        ],
        "recgrp.bas.txamt": [
            {
                validator: (rule, value, callback) => {
                    if (!isNaN(value)) {
                        if (Number(value) < 0) {
                            return callback(new Error("此金额不能小于零!"))
                        }
                        let trnName = this.trnName
                        if (!trnName.endsWith("sel")) {
                            let allamt = BigNumber(this.model.recgrp.bas.fcyamt).plus(BigNumber(this.model.recgrp.bas.othamt)).plus(BigNumber(this.model.recgrp.bas.lcyamt))
                            if (allamt.comparedTo(BigNumber(value))!=0) {
                                return callback(new Error("购汇金额、现汇金额、其它金额之和应等于汇款金额。"))
                            }
                        }
                        callback()
                    } else {
                        return callback(new Error("请重新输入"))
                    }

                }
            }
        ],
        "recgrp.bas.txccy": [
            { type: "string", required: true, message: "必填项" },
        ],
        "recgrp.dcl.regno": [

        ],
        "recgrp.dcl.rptdate": [
            { type: "string", required: true, message: "必填项" },
        ],
        "recgrp.vrf.contrno": [
            { type: "string", required: true, message: "必填项" },
        ],
        "recgrp.vrf.invoino": [
            { type: "string", required: true, message: "必填项" },
        ],
    }
}