Files
income_payments_enterprise_…/src/views/standardsAssociation/PaymentInfo/modules/PaymentInfoModal.vue
T

2013 lines
79 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
cancelText="关闭">
<a-spin :spinning="confirmLoading">
<template>
<a-divider orientation="left">收款账户信息</a-divider>
<a-row class="show-row">
<a-col :span="12">
<a-form-item label="账户名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>中国汽车技术研究中心有限公司</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="税号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>9112000040136004XA</span>
</a-form-item>
</a-col>
</a-row>
<a-row class="show-row">
<a-col :span="12">
<a-form-item label="地址电话" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>天津市东丽区先锋东路68号 02284370000</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="开户行及账号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>中国银行天津天山路支行 272660071602</span>
</a-form-item>
</a-col>
</a-row>
<a-row class="show-row">
<a-col :span="12">
<a-form-item label="联行号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>104110042021</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="银行代码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>104110042005</span>
</a-form-item>
</a-col>
</a-row>
</template>
<a-form :form="form" style="margin-left: 10px" :selfUpdate="true">
<a-divider orientation="left">
缴费信息<font color="red">(缴费时长5年可绑定两张证书)</font>
<span
v-if="isMember === 'member'"
class="charge-notice"
@click="downChargeNotice(newestNoticeInfo.chargeNoticeFileId)">{{
newestNoticeInfo.chargeNoticeName
}}</span>
</a-divider>
<a-row>
<a-col :span="12">
<a-form-item label="单位全称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :disabled=true v-model="companyName" placeholder="请输入单位名称" :maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :disabled=true v-model="liaisonMan" placeholder="请输入联系人" :maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="手机" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :disabled=true v-model="mobile" placeholder="请输入手机号" :maxLength="11"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="缴费方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag
type="list"
:disabled="checkFlag||detailFlag"
v-decorator="['paymentMethod',validatorRules.paymentMethod]"
:trigger-change="true"
dictCode="payment_method"
placeholder="请选择缴费方式"
@change="changePaymentMethod" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="会员性质" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>{{ memberNature }}</span>
</a-form-item>
</a-col>
</a-row>
<a-row class="payment-table">
<a-col :span="1"></a-col>
<a-col :span="22">
<table class="table" border="1">
<tr>
<th>费用类型</th>
<th>缴费时长</th>
<th>缴费类型</th>
<th>缴费金额</th>
</tr>
<tr>
<td>会员费</td>
<td>
<a-form-item class="transalte-y-10">
<j-dict-select-tag
:disabled="checkFlag||detailFlag"
@change="changgeType"
type="list"
v-decorator="['paymentTime',{ rules: validatorRules.paymentTime.rules, initialValue:paymentTime}]"
:trigger-change="true"
dictCode="payment_time"
placeholder="请选择缴费时长"
:get-popup-container="(node) => node.parentNode || document.body"
style="width: 140px" />
</a-form-item>
</td>
<td>
<span v-if="initVal == '2' ">VIP会员</span>
<span v-else>普通会员</span>
</td>
<td>
<a-form-item class="transalte-y-10">
<a-input-number
:disabled="checkFlag||detailFlag"
v-decorator="['paymentAmount',validatorRules.paymentAmount]"
:trigger-change="true"
placeholder="请输入缴费金额"
style="width: 180px" />
</a-form-item>
</td>
</tr>
<!-- <tr>
<td>网员服务费</td>
<td>
<span>1年</span>
</td>
<td>
<span>-</span>
</td>
<td>
<a-form-item class="transalte-y-10">
<a-input-number
:disabled="checkFlag||detailFlag"
v-decorator="['serviceCharge',validatorRules.serviceCharge]"
:trigger-change="true"
placeholder="请输入缴费金额"
style="width: 180px" />
</a-form-item>
</td>
</tr>-->
</table>
</a-col>
<a-col :span="1"></a-col>
</a-row>
<!-- 打包会员显示 -->
<div v-if="paymentMethodFlag">
<a-row>
<a-col :span="12">
<a-form-item label="缴费日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
:disabled="checkFlag||detailFlag"
date-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择缴费时间"
v-decorator="['submissionTime',validatorRules.submissionTime]"
:trigger-change="true"
style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="打包协议" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload
file-type="pdf"
file-type-error-message="请上传pdf文件"
:multiple="false"
:number="1"
:disabled="checkFlag||detailFlag"
bizPath="payment"
:return-id="true"
v-decorator="['paymentRecord',{ rules: validatorRules.paymentRecord1.rules, initialValue:paymentRecord}]"
:trigger-change="true">
</j-upload>
<span v-show="!checkFlag && !detailFlag" style="color: #bfbfbf">请上传pdf文件</span>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag
:disabled="checkFlag||detailFlag"
@change="invoiceRequirementsChange"
type="list"
v-decorator="['invoiceRequirements',{ rules: validatorRules.invoiceRequirements.rules, initialValue:2,validateTrigger: 'change'},]"
:trigger-change="true"
dictCode="invoice_requirements"
placeholder="请选择发票" />
</a-form-item>
</a-col>
</a-row>
<template v-if="invoiceRequirementsFlag">
<a-row>
<a-col :span="12">
<a-form-item label="关联付款发票名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
v-decorator="['headerName',{ rules: validatorRules.headerName.rules, initialValue:headerName,validateTrigger: 'blur',},]"
:trigger-change="true"
@change="event => event.target.value = event.target.value.trim()"
placeholder="请输入关联付款发票名称"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="社会统一代码/税号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['taxNumber',{ rules: validatorRules.taxNumber.rules, validateTrigger: 'blur',initialValue:taxNumber},]"
placeholder="请输入社会统一代码/税号"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<!-- 2021-09-23变更 增加 单位地址 电话号码 开户银行 银行账户 增值税发票的时候存在-->
<a-row v-if="currentSelectInvoiceType === 2">
<a-col :span="12">
<a-form-item label="单位地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['invoiceAddress',{ rules: validatorRules.invoiceAddress.rules, validateTrigger: 'blur', initialValue:invoiceInfoObj.invoiceAddress}]"
placeholder="请输入单位地址"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="电话号码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
v-decorator="['invoicePhone',{ rules: validatorRules.invoicePhone.rules, initialValue: invoiceInfoObj.invoicePhone,validateTrigger: 'blur'}]"
:trigger-change="true"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9|-]/g,'')}"
placeholder="请输入电话号码"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="currentSelectInvoiceType === 2">
<a-col :span="12">
<a-form-item label="开户银行" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['depositBank',{ rules: validatorRules.depositBank.rules, validateTrigger: 'blur',initialValue:invoiceInfoObj.depositBank}]"
placeholder="请输入开户银行"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="银行账户" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="(e) => {e.target.value = e.target.value.trim()}"
v-decorator="['bankAccount',{ rules: validatorRules.bankAccount.rules, validateTrigger: 'blur',initialValue:invoiceInfoObj.bankAccount}]"
placeholder="请输入银行账户"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
</template>
<a-row>
<a-col :span="24" class="remark">
<a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-textarea
rows="5"
v-decorator="['remark']"
placeholder="请输入备注"
:maxLength="500"
:disabled="checkFlag||detailFlag"></a-textarea>
</a-form-item>
<span style="color: #bfbfbf">一个缴费单可在多个缴费处上传</span>
</a-col>
</a-row>
</div>
<!-- 电汇显示-->
<div v-if="!paymentMethodFlag">
<a-row v-show="!addFlag">
<!-- <a-col :span="12">-->
<!-- <a-form-item label="缴费类型" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <j-dict-select-tag :disabled=true type="list"-->
<!-- v-decorator="['paymentType',{ rules: validatorRules.paymentType.rules, initialValue:paymentType}]"-->
<!-- :trigger-change="true" dictCode="payment_type" placeholder="请选择缴费类型"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="缴费单号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled=true
v-decorator="['billNumber',{ initialValue:billNumber}]"
placeholder="请输入缴费单号"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row v-show="!addFlag">
<a-col :span="12">
<a-form-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :disabled="true" v-model="startTime"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :disabled="true" v-model="endTime"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="缴费日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
:disabled="checkFlag||detailFlag"
date-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择缴费时间"
v-decorator="['submissionTime',validatorRules.submissionTime]"
:trigger-change="true"
style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag
:disabled="checkFlag||detailFlag"
@change="invoiceRequirementsChange"
type="list"
v-decorator="['invoiceRequirements',{ rules: validatorRules.invoiceRequirements.rules, initialValue:2,validateTrigger: 'change'},]"
:trigger-change="true"
dictCode="invoice_requirements"
placeholder="请选择发票" />
</a-form-item>
</a-col>
</a-row>
<template v-if="invoiceRequirementsFlag">
<a-row>
<a-col :span="12">
<a-form-item label="关联付款发票名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
v-decorator="['headerName',{ rules: validatorRules.headerName.rules, initialValue:headerName,validateTrigger: 'blur',},]"
:trigger-change="true"
@change="event => event.target.value = event.target.value.trim()"
placeholder="请输入关联付款发票名称"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="社会统一代码/税号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['taxNumber',{ rules: validatorRules.taxNumber.rules, validateTrigger: 'blur',initialValue:taxNumber},]"
placeholder="请输入社会统一代码/税号"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<!-- 2021-09-23变更 增加 单位地址 电话号码 开户银行 银行账户 增值税发票的时候存在-->
<a-row v-if="currentSelectInvoiceType === 2">
<a-col :span="12">
<a-form-item label="单位地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['invoiceAddress',{ rules: validatorRules.invoiceAddress.rules, validateTrigger: 'blur', initialValue:invoiceInfoObj.invoiceAddress}]"
placeholder="请输入单位地址"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="电话号码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
v-decorator="['invoicePhone',{ rules: validatorRules.invoicePhone.rules, initialValue: invoiceInfoObj.invoicePhone,validateTrigger: 'blur'}]"
:trigger-change="true"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9|-]/g,'')}"
placeholder="请输入电话号码"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="currentSelectInvoiceType === 2">
<a-col :span="12">
<a-form-item label="开户银行" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="event => event.target.value = event.target.value.trim()"
v-decorator="['depositBank',{ rules: validatorRules.depositBank.rules, validateTrigger: 'blur',initialValue:invoiceInfoObj.depositBank}]"
placeholder="请输入开户银行"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="银行账户" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
:disabled="checkFlag||detailFlag"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
v-decorator="['bankAccount',{ rules: validatorRules.bankAccount.rules, validateTrigger: 'blur',initialValue:invoiceInfoObj.bankAccount}]"
placeholder="请输入银行账户"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
</template>
<!-- 现金不显示-->
<a-row v-if="isCash !== '3' ">
<a-col :span="12">
<a-form-item label="缴费凭证" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-image-upload
isLessThan5M
isMultiple
:number="2"
:disabled="checkFlag||detailFlag"
bizPath="payment"
v-decorator="['paymentRecord', validatorRules.paymentRecord]">
</j-image-upload>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="24" class="remark">
<a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-textarea
rows="5"
v-decorator="['remark']"
placeholder="请输入备注"
:maxLength="500"
@change="event => event.target.value = event.target.value.trim()"
:disabled="checkFlag||detailFlag"></a-textarea>
</a-form-item>
<span style="color: #bfbfbf" v-show="!detailFlag && !checkFlag">一个缴费单可在多个缴费处上传</span>
</a-col>
</a-row>
</div>
<!-- 证书信息 -->
<div v-if="typeFlag || memberType === 1 ">
<a-divider orientation="left">绑定证书</a-divider>
<!-- <span>申请证书</span>-->
<div v-if="checkFlag||detailFlag">
</div>
<!-- 证书的 的相关信息-->
<div class="certificate-box">
<a-checkbox-group
@change="certificateCheckChange"
v-model="selectedRowKeys"
>
<div class="certificate-item" v-for="(record, index) in dataSource" :key="index">
<a-row class="check-row">
<a-col :span="8">
<a-checkbox :value="record.key"
:disabled="detailFlag || checkFlag || record.certificateStatus === 0 || record.certificateStatus === 6 || record.certificateStatus === 1 || record.certificateStatus === 3 || record.certificateStatus === 2 || record.chargeType === 2"></a-checkbox>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="证书类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
placeholder="请选择证书类型"
v-model="record.certificate"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2|| record.certificateStatus === 3"
@change="onCellChange(record.key,'certificate',record.certificate)">
<a-select-option value="世界制造厂识别代号(WMI)证书" title="世界制造厂识别代号(WMI)证书">世界制造厂识别代号(WMI)证书
</a-select-option>
<a-select-option value="企业名称代号证书" title="企业名称代号证书">企业名称代号证书</a-select-option>
</a-select>
</a-form-item>
<!--证书识别代码-->
</a-col>
<a-col :span="12">
<!-- v-show="addFlag || memberType === 1"-->
<a-form-item label="证书识别代码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- v-model="record.certificate_code"-->
<a-input
placeholder="请输入证书识别代码"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
v-decorator="['certificateArr['+ index + '].certificate_code',
{
rules: [
{ required: false, validator: checkCertificateCode},
],
validateTrigger: 'blur',
}]"
@blur="(e) => onCellChange(record.key,'certificate_code', e.target.value)" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="生效日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
date-format="YYYY-MM-DD"
v-model="record.effectDate"
placeholder="请选择生效日期"
v-decorator="['certificateArr['+ index + '].effectDate', {
rules: [
{ required: record.certificate_code && (!(checkFlag||detailFlag)), validator: checkEffectDate},
],
validateTrigger: 'change',
}]"
:trigger-change="true"
style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="失效日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
date-format="YYYY-MM-DD"
placeholder="请选择失效日期"
v-decorator="['certificateArr['+ index + '].invalidDate', {
rules: [
{ required: record.certificate_code && (!(checkFlag||detailFlag)), validator: checkInvalidDate},
],
validateTrigger: 'change',
}]"
:trigger-change="true"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-item label="证书附件" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-image-upload
isLessThan5M
:number="1"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
bizPath="payment"
v-decorator="['certificateArr['+ index + '].certificateImg', {
rules: [
{ required: record.certificate_code && (!(checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3)), validator: checkCertificateImg},
],
validateTrigger: 'change',
}]">
</j-image-upload>
</a-form-item>
</a-col>
<a-col :span="12" v-if="record.certificate === '世界制造厂识别代号(WMI)证书' ">
<a-form-item label="备案通知书" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- v-model="record.noticeOfFiling"-->
<a-select
placeholder="请选择"
v-decorator="['certificateArr['+ index + '].noticeOfFiling', {
rules: [
{ required: selectedRowKeys.indexOf(index) > -1, validator: checkNoticeOfFiling},
],
validateTrigger: 'change',
}]"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
>
<a-select-option value="1">是</a-select-option>
<a-select-option value="0">否</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
</div>
</a-checkbox-group>
</div>
<!-- 原来表格的写法 已经弃用 -->
<!-- <a-table
:pagination=false
bordered
:scroll="{x:true}"
:data-source="dataSource"
:columns="columns"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,getCheckboxProps: getCheckboxProps }">
<template slot="certificate" slot-scope="text, record">
<a-select
style="width: 200px"
placeholder="请选择"
v-model="record.certificate"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2|| record.certificateStatus === 3"
@change="onCellChange(record.key,'certificate',record.certificate)">
<a-select-option value="世界制造厂识别代号(WMI)证书" title="世界制造厂识别代号(WMI)证书">世界制造厂识别代号(WMI)证书</a-select-option>
<a-select-option value="企业名称代号证书" title="企业名称代号证书">企业名称代号证书</a-select-option>
</a-select>
</template>
&lt;!&ndash;证书识别代码&ndash;&gt;
<template slot="code" slot-scope="text, record" v-show="addFlag || memberType === 1">
<a-input
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
v-model="record.certificate_code"
@change="onCellChange(record.key,'certificate_code',record.certificate_code)" />
</template>
<template slot="imgSlot" slot-scope="text, record">
<img
src="../../../../assets/imgs/standardsAssociation/certificate/wmi.png"
class="vin"
@click="openView(1)"
v-if="record.certificate === '世界制造厂识别代号(WMI)证书' ">
<img
src="../../../../assets/imgs/standardsAssociation/certificate/cam.png"
class="vin"
@click="openView(2)"
v-if="record.certificate === '企业名称代号证书' ">
</template>
&lt;!&ndash; 证书附件&ndash;&gt;
<template slot="certificateImg" slot-scope="text, record">
<div class="certificate-img">
<a-form-item
:colon='false'
:labelCol="labelCol"
:wrapperCol="wrapperCol"
class="transalte-y-10"
>
<j-image-upload
isLessThan5M
:number="1"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
bizPath="payment"
v-decorator="['certificateImg'+record.index, validatorRules.certificateImg]">
</j-image-upload>
</a-form-item>
</div>
</template>
&lt;!&ndash; 备案通知书&ndash;&gt;
<template slot="recordNotice" slot-scope="text, record">
<a-select
placeholder="请选择"
v-model="record.noticeOfFiling"
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
v-if="record.certificate === '世界制造厂识别代号(WMI)证书' "
@change="onCellChange(record.key,'noticeOfFiling',record.noticeOfFiling)">
<a-select-option value="1">是</a-select-option>
<a-select-option value="0">否</a-select-option>
</a-select>
<span v-else> — </span>
</template>
&lt;!&ndash; 生效日期&ndash;&gt;
<template slot="effectDate" slot-scope="text, record">
<a-form-item :colon='false' class="transalte-y-10">
<j-date
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
date-format="YYYY-MM-DD"
v-model="record.effectDate"
placeholder="请选择生效日期"
v-decorator="['effectDate'+record.index,validatorRules.effectDate]"
:trigger-change="true"
style="width: 100%"/>
</a-form-item>
</template>
&lt;!&ndash; 失效日期&ndash;&gt;
<template slot="invalidDate" slot-scope="text, record">
<a-form-item :colon='false' class="transalte-y-10">
<j-date
:disabled="checkFlag||detailFlag|| (!!record.chargeType && record.chargeType === 2) ||( !!record.certificateStatus && record.certificateStatus === 1) || record.certificateStatus === 2 || record.certificateStatus === 3"
date-format="YYYY-MM-DD"
placeholder="请选择失效日期"
v-decorator="['invalidDate'+record.index,validatorRules.invalidDate]"
:trigger-change="true"
style="width: 100%"/>
</a-form-item>
</template>
</a-table>-->
<div style="position: relative;top: 20px;" v-if="certificatesNum>0">
<a-row>
<a-col :span="12">
<a-form-item label="通讯地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
v-show="typeFlag || memberType === 1"
:disabled="checkFlag||detailFlag"
v-decorator="['address',{ rules: validatorRules.address.rules, initialValue:address}]"
placeholder="请输入通讯地址"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
v-show="typeFlag || memberType === 1"
:disabled="checkFlag||detailFlag"
v-decorator="['postcode',{ rules: validatorRules.postcode.rules, initialValue:postcode}]"
placeholder="请输入邮编"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
</div>
<div style="position: relative;top: 20px;" v-if="certificatesNum==0">
<a-row>
<a-col :span="12">
<a-form-item label="通讯地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
v-show="typeFlag || memberType === 1"
:disabled="checkFlag||detailFlag"
v-decorator="['address',{ initialValue:address}]"
placeholder="请输入通讯地址"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
v-show="typeFlag || memberType === 1"
:disabled="checkFlag||detailFlag"
v-decorator="['postcode',{ initialValue:postcode}]"
placeholder="请输入邮编"
:maxLength="50"></a-input>
</a-form-item>
</a-col>
</a-row>
</div>
</div>
<!-- 审核 -->
<div v-if="checkFlag" style="position: relative;left: 0px">
<a-divider orientation="left">审核结果</a-divider>
<a-row>
<a-col :span="12">
<a-form-item label="核对结果" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['checkResult',validatorRules.checkResult]" @change="onCheckChange">
<a-radio :value="1">通过</a-radio>
<a-radio :value="0">不通过</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="24">
<a-form-item class="fixed-width-item" label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-textarea
rows="5"
v-decorator="['checkMark',validatorRules.checkMark]"
placeholder="请输入备注"
:maxLength="500"></a-textarea>
</a-form-item>
</a-col>
</a-row>
</div>
<!-- 审核历史 -->
<div v-show="detailFlag">
<a-divider orientation="left">审核信息</a-divider>
<a-table :pagination=false bordered :data-source="checkInfo" :columns="checkColumns">
</a-table>
</div>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button
v-show="checkFlag!=true"
v-if="detailFlag!=true"
@click.native="handleTemp"
:disabled="confirmLoading"
type="primary">暂存
</a-button>
<a-button @click="handleOk" type="primary" :disabled="confirmLoading" v-show="!detailFlag">提交</a-button>
</template>
<pre-view-img-modal ref="previewModal"></pre-view-img-modal>
</j-modal>
</template>
<script>
import { httpAction, getFileAccessHttpUrl } from '@/api/memberManage'
import pick from 'lodash.pick'
import JDate from '@/components/tools/JDate'
import JImageUpload from '@/components/standardsAssociation/JImageUpload'
import JDictSelectTag from '@/components/standardsAssociation/JDictSelectTag'
import {
getMemberInfoById,
getCertificateByMemberId,
getCheckInfo,
getByMemberTime,
downNewestNotice
} from '@/api/standardsAssociationApi'
import JUpload from '@/components/standardsAssociation/JUpload'
import PreViewImgModal from './PreViewImgModal'
import { commonMemberCost, vipMemberCost } from '@api/incomePaymentsApi'
// import { USER_INFO } from '@/store/mutation-types'
// import Vue from 'vue'
export default {
name: 'PaymentInfoModal',
components: {
JDate,
JImageUpload,
JUpload,
JDictSelectTag,
PreViewImgModal
},
data() {
return {
// 会员用户id
userId: this.$store.getters.userInfo.memberId,
isMember: true,
form: this.$form.createForm(this, { force: true }),
title: '操作',
width: 1000,
visible: false,
model: {},
labelCol: {
xs: { span: 24 },
sm: { span: 8 },
xxl: { span: 8 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 15 },
xxl: { span: 15 }
},
confirmLoading: false,
validatorRules: {
paymentMethod: {
rules: [{
required: true, message: '请选择缴费方式'
}],
validateTrigger: ['blur', 'change']
},
invoiceRequirements: {
rules: [{
required: true, message: '请选择发票'
}]
},
paymentType: {
rules: [{
required: true, message: '请选择缴费类型'
}],
validateTrigger: ['blur', 'change']
},
billNumber: {
rules: [{
required: true, message: '请输入缴费单号'
}],
validateTrigger: 'blur'
},
serviceCharge: {
rules: [
{
required: true, message: '请输入缴费金额'
},
{
pattern: /^[1-9](\d{1,8})?(\.\d{1,2})$|^0\.([1-9](\d{0,1})|\d[1-9])$|^[1-9]\d{0,8}$|^0$/,
message: '请输入合法的金额数字,最多2位小数,8位正数'
}
],
validateTrigger: 'blur'
},
paymentAmount: {
rules: [
{ required: true, validator: this.getByMemberTime },
{
pattern: /^[1-9](\d{1,10})?(\.\d{1,2})$|^0\.([1-9](\d{0,1})|\d[1-9])$|^[1-9]\d{0,8}$|^0$/,
message: '请输入合法的金额数字,最多2位小数,11位正数'
}
], validateTrigger: 'blur',
initialValue: commonMemberCost
},
paymentTime: {
rules: [{ required: true, message: '请选择缴费时长' }],
validateTrigger: ['blur', 'change']
},
submissionTime: {
rules: [{ required: true, message: '请选择缴费日期' }],
validateTrigger: ['blur', 'change']
},
paymentRecord: { rules: [{ required: true, message: '请上传缴费凭证' }] },
paymentRecord1: { rules: [{ required: true, message: '请上传打包协议' }] },
headerName: {
rules: [
{ required: true, message: '请输入关联付款发票名称', validateTrigger: 'blur' },
{ min: 1, max: 50, message: '长度不超过50个字符' }
],
validateTrigger: 'blur'
},
taxNumber: {
rules: [
{ required: true, message: '请输入社会统一代码/税号', validateTrigger: 'blur' },
{
pattern: /^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$/,
message: '请输入15位、18位的社会统一代码/税号'
}
],
validateTrigger: 'blur'
},
address: {
rules: [
{ required: true, message: '请输入通讯地址' },
{ min: 1, max: 50, message: '长度不超过50个字符' }
],
validateTrigger: 'blur'
},
postcode: {
rules: [
{ required: true, message: '请输入邮编' },
{ pattern: /^[0-9]\d{5}$/, message: '请输入正确的邮编', validateTrigger: 'onBlur' }
],
validateTrigger: 'blur'
},
checkResult: {
rules: [
{ required: true, message: '请选择审核结果' }
],
validateTrigger: ['blur', 'change']
},
checkMark: {
rules: [
{ min: 0, max: 500, message: '长度不超过500个字符', validateTrigger: 'onBlur' }
],
validateTrigger: 'blur'
},
// 证书部分
effectDate: {
rules: [{
required: true, validator: this.checkEffectDate
}]
},
invalidDate: { rules: [{ required: true, validator: this.checkInvalidDate }] },
invoiceAddress: { rules: [{ required: true, message: '请输入单位地址' }], validateTrigger: 'blur' },
invoicePhone: { rules: [{ required: true, validator: this.handleInvoicePhoneCheck }], validateTrigger: 'blur' },
depositBank: { rules: [{ required: true, message: '请输入开户银行' }], validateTrigger: 'blur' },
bankAccount: { rules: [{ required: true, message: '请输入银行账户' }], validateTrigger: 'blur' }
},
url: {
add: '/paymentInfo/add',
edit: '/paymentInfo/edit',
check: '/paymentInfo/check'
},
// 缴费时长 5年vip会员 为true 1年普通会员为 false
typeFlag: false,
// 证书代码code
cellFlag: [],
// 缴费表头
payColumns: [
{
title: '费用类型',
dataIndex: 'payCategory',
width: '20%',
align: 'center'
},
{
title: '缴费时长',
dataIndex: 'payTime',
width: '20%',
align: 'center',
scopedSlots: { customRender: 'payTime' }
},
{
title: '缴费类型',
dataIndex: 'paymentType',
width: '20%',
align: 'center',
scopedSlots: { customRender: 'payType' }
},
{
title: '缴费金额',
dataIndex: 'payNumber',
width: '20%',
align: 'center',
scopedSlots: { customRender: 'payNumber' }
}
],
// 缴费时长
payVal: '',
initVal: 1,
// 缴费数据
payDataSource: [
{
payCategory: '会员费',
payTime: '1/5',
paymentType: '',
payNumber: ''
}/*,
{
payCategory: '网员服务费',
payTime: '1',
paymentType: '',
payNumber: ''
}*/
],
// 是否是添加功能
addFlag: false,
// 是否是审核功能
checkFlag: false,
// 证书回显
certificatesFlag: false,
// 是否是查看功能
detailFlag: false,
// 是否是现金缴费
isCash: false,
// 发票选择
invoiceRequirementsFlag: false,
// 当前选择是否需要发票的值,用于dom的判断 0-无 1-普通发票 2-增值税发票
currentSelectInvoiceType: 0,
// 缴费方式 false 电汇 true 会员打包
paymentMethodFlag: false,
startTime: '',
endTime: '',
// 申请证书
selectedRowKeys: [],
// 证书信息
dataSource: [],
count: 2,
// 证书列表
// 证书列表
columns: [
{
title: '序号',
dataIndex: 'index',
width: 80,
align: 'center'
},
{
title: '证书类型',
dataIndex: 'certificate',
width: 160,
align: 'center',
scopedSlots: { customRender: 'certificate' }
},
{
title: '证书代码',
dataIndex: 'certificate_code',
width: 160,
scopedSlots: { customRender: 'code' },
align: 'center'
},
{
title: '备案通知书',
dataIndex: 'recordNotice',
width: 160,
scopedSlots: { customRender: 'recordNotice' },
align: 'center'
},
{
title: '生效日期',
dataIndex: 'effectDate',
width: 200,
align: 'center',
scopedSlots: { customRender: 'effectDate' }
},
{
title: '失效日期',
dataIndex: 'invalidDate',
width: 200,
align: 'center',
scopedSlots: { customRender: 'invalidDate' }
},
{
title: '证书附件',
dataIndex: 'text',
width: 160,
align: 'center',
scopedSlots: { customRender: 'certificateImg' }
}
],
// 审核结果 0:驳回 1:通过 2其他
checkResult: 2,
memberId: '',
// 公司名称
companyName: '',
// 联系人
liaisonMan: '',
// 会员性质 副理事长 理事长
memberNature: '',
// 会员性质
memberType: '',
// 手机
mobile: '',
// 地址
address: '',
// 邮编
postcode: '',
// 抬头
headerName: '',
// 税号
taxNumber: '',
// 2021-09-23 发票信息的 新增字段,为了方便管理,写在同一个对象中
invoiceInfoObj: {
invoiceAddress: '', // 单位地址
invoicePhone: '', // 电话号码
depositBank: '', // 开户银行
bankAccount: '' // 银行账户
},
certificate: [], // 证书信息
checkInfo: [], // 审核信息
// 审核列表
checkColumns: [
{
title: '序号',
dataIndex: 'index',
width: '10%',
align: 'center'
},
{
title: '审批人',
dataIndex: 'checkMember',
width: '15%',
align: 'center'
},
{
title: '审批时间',
dataIndex: 'checkTime',
width: '20%',
align: 'center'
},
{
title: '结果',
dataIndex: 'checkResult',
width: '15%',
align: 'center'
},
{
title: '备注',
dataIndex: 'checkMark',
width: '40%',
align: 'center'
}
],
certificatesNum: 0, // 证书个数
// 缴费方式初始化
paymentType: 0,
// 缴费时长初始化
paymentTime: 1,
// 缴费记录
paymentRecord: '',
// 缴费单号
billNumber: '',
// 提交
submitFlag: false,
// 最新的缴费通知单信息
newestNoticeInfo: {}
}
},
created() {
// this.loadMember();
},
methods: {
/* 添加*/
add() {
this.addFlag = true
this.memberId = this.userId
this.edit({})
},
/* 核对凭证*/
handleCheck(record) {
this.checkFlag = true
// this.cellFlag= true;
this.show(record)
},
/* 查看*/
detail(record) {
this.detailFlag = true
// this.cellFlag= true;
this.show(record)
},
async show(record) {
this.form.resetFields()
this.model = Object.assign({}, record)
this.memberId = this.model.memberId
// 获取会员信息
this.loadMember()
// 查找审核信息
this.getCheckInfo(record.id)
var type = this.model.paymentTime
// 缴费时长选择
this.changgeType(type)
this.visible = true
this.model.memberId = this.memberId
// 证书数量判断
if (this.model.certificatesNum > 0) {
this.certificatesFlag = true
} else {
this.certificatesFlag = false
}
// 证书信息
// 查找证书信息
await this.getCertificate(this.memberId)
// 证书部分选择的数据
this.model.certificateArr = this.certificate
this.model.certificate = this.certificate
this.startTime = this.model.effectiveDate ? this.model.effectiveDate : ''
this.endTime = this.model.invalidationDate ? this.model.invalidationDate : ''
// 发票选择
if (Number(this.model.invoiceRequirements) !== 0) {
this.invoiceRequirementsFlag = true
} else {
this.invoiceRequirementsFlag = false
this.model.invoiceRequirements = 0
}
// 当前显示的发票类别
this.currentSelectInvoiceType = Number(this.model.invoiceRequirements)
// 缴费方式
if (Number(this.model.paymentMethod) === 2) {
this.paymentMethodFlag = true
this.paymentType = this.model.paymentType
this.paymentTime = this.model.paymentTime
this.paymentRecord = this.model.paymentRecord
}
// 审核信息
this.checkResult = this.model.checkResult
this.isCash = this.model.paymentMethod + ''
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'certificateArr', 'billNumber', 'companyName', 'paymentType', 'validPeriod', 'paymentTime', 'paymentAmount', 'certificatesNum', 'submissionTime', 'checkTime', 'paymentStatus', 'paymentMethod', 'paymentRecord', 'invoiceRequirements', 'headerName', 'taxNumber', 'invoiceAddress', 'invoicePhone', 'depositBank', 'bankAccount', 'checkMember', 'checkMemberId', 'memberId', 'certificate', 'address', 'postcode', 'serviceCharge', 'remark'))
})
},
async edit(record) {
this.form.resetFields()
// 当年是否有缴费通知单
this.getNewestNotice()
this.model = Object.assign({}, record)
this.isCash = this.model.paymentMethod + ''
// 获取审核信息
this.getCheckInfo(record.id)
if (!this.addFlag) {
// this.cellFlag = true;
this.memberId = this.model.memberId
this.loadMember()
} else {
this.memberId = this.userId
this.loadMember()
this.model.certificate = this.certificate
}
var type = this.model.paymentTime
this.changgeType(type)
this.visible = true
this.model.memberId = this.memberId
if (this.model.certificatesNum > 0) {
this.certificatesFlag = true
} else {
this.certificatesFlag = false
}
// 查找证书信息
await this.getCertificate(this.memberId)
// 选择证书 数据
this.model.certificateArr = this.certificate
this.startTime = this.model.effectiveDate ? this.model.effectiveDate : ''
this.endTime = this.model.invalidationDate ? this.model.invalidationDate : ''
// 发票选择
if (Number(this.model.invoiceRequirements) === 0) {
this.invoiceRequirementsFlag = false
this.model.invoiceRequirements = 0
} else {
this.invoiceRequirementsFlag = true
}
// 当前显示的发票类别
this.currentSelectInvoiceType = Number(this.model.invoiceRequirements) || 2
// 缴费方式
if (Number(this.model.paymentMethod) === 2) {
this.paymentMethodFlag = true
this.paymentType = this.model.paymentType
this.paymentTime = this.model.paymentTime
this.paymentRecord = this.model.paymentRecord
}
// 缴费单号
// this.billNumber = this.model.billNumber
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'certificateArr', 'billNumber', 'companyName', 'paymentType', 'validPeriod', 'paymentTime', 'paymentAmount', 'certificatesNum', 'submissionTime', 'checkTime', 'paymentStatus', 'paymentMethod', 'paymentRecord', 'invoiceRequirements', 'headerName', 'taxNumber', 'invoiceAddress', 'invoicePhone', 'depositBank', 'bankAccount', 'checkResult', 'checkMark', 'checkMember', 'checkMemberId', 'memberId', 'address', 'postcode', 'serviceCharge', 'remark'))
})
},
close() {
this.$emit('close')
this.visible = false
this.addFlag = false
this.typeFlag = false
this.checkFlag = false
this.checkResult = 2
this.certificatesFlag = false
this.dataSource = []
this.checkInfo = []
this.detailFlag = false
this.selectedRowKeys = []
this.cellFlag = []
this.invoiceRequirementsFlag = false
this.paymentMethodFlag = false
this.headerName = ''
this.taxNumber = ''
this.paymentType = 0
this.paymentTime = 1
this.paymentRecord = ''
this.certificatesNum = 0
this.billNumber = ''
this.startTime = ''
this.endTime = ''
this.isCash = ''
this.submitFlag = false
},
handleOk() {
console.log(1111)
const that = this
// 触发表单验证
that.form.validateFields({ force: true }, (err, values) => {
if (!err) {
that.confirmLoading = true
let httpurl = ''
let method = ''
if (!this.model.id) {
httpurl += this.url.add
method = 'post'
} else {
if (this.checkFlag) {
httpurl += this.url.check
} else {
httpurl += this.url.edit
}
method = 'put'
}
if (Number(this.checkResult) === 0) {
this.checkResult = 2
this.model.paymentStatus = 2
} else if (Number(this.checkResult) === 1) {
this.checkResult = 2
this.model.paymentStatus = 3
} else {
this.model.paymentStatus = 1
}
this.model.certificate = []
// 这个判断是防止没有勾选而提交证书的
if (this.selectedRowKeys.length > 0) {
for (let i = 0; i < this.selectedRowKeys.length; i++) {
let opeIndex = Number(this.selectedRowKeys[i])
let ele = values.certificateArr[opeIndex]
// 操作是否需要备案通知书
if (ele.noticeOfFiling) {
ele.noticeOfFiling = ele.noticeOfFiling === '是' && 1 || 0
}
// 证书类型
ele.certificate = this.dataSource[opeIndex].certificate
ele.id = this.dataSource[opeIndex].id || ''
// 证书附件certificateImg 生效时间effectDate 失效时间invalidDate -- 字段本身存在
this.model.certificate.push(ele)
}
}
this.model.certificatesNum = this.selectedRowKeys.length
const formData = Object.assign(this.model, values)
if (this.typeFlag) {
formData.paymentType = 1
} else {
formData.paymentType = 0
}
// 客户要去掉网员服务费字段,但是后端没有去掉校验,所以前端写死
formData.serviceCharge = 0
that.confirmLoading = false
// return
httpAction(httpurl, formData, method).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
},
handleTemp() {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let httpurl = ''
let method = ''
if (!this.model.id) {
httpurl += this.url.add
method = 'post'
} else {
httpurl += this.url.edit
method = 'put'
}
this.model.paymentStatus = 0
this.model.address = this.address
this.model.postcode = this.postcode
this.model.headerName = this.headerName
this.model.taxNumber = this.taxNumber
this.model.companyName = this.companyName
this.model.certificate = []
// 这个判断是防止没有勾选而提交证书的
if (this.selectedRowKeys.length > 0) {
for (let i = 0; i < this.selectedRowKeys.length; i++) {
let opeIndex = Number(this.selectedRowKeys[i])
let ele = values.certificateArr[opeIndex]
// 操作是否需要备案通知书
if (ele.noticeOfFiling) {
ele.noticeOfFiling = ele.noticeOfFiling === '是' && 1 || 0
}
// 证书类型
ele.certificate = this.dataSource[opeIndex].certificate
ele.id = this.dataSource[opeIndex].id || ''
// 证书附件certificateImg 生效时间effectDate 失效时间invalidDate -- 字段本身存在
this.model.certificate.push(ele)
}
// for (var i = 0; i < this.selectedRowKeys.length; i++) {
// if (this.dataSource[this.selectedRowKeys[i]].noticeOfFiling) {
// if (this.dataSource[this.selectedRowKeys[i]].noticeOfFiling === '是') {
// this.dataSource[this.selectedRowKeys[i]].noticeOfFiling = 1
// } else if (this.dataSource[this.selectedRowKeys[i]].noticeOfFiling === '否') {
// this.dataSource[this.selectedRowKeys[i]].noticeOfFiling = 0
// }
// }
// this.model.certificate.push(this.dataSource[this.selectedRowKeys[i]])
// }
}
// 将证书附件 生效时间 失效时间 绑定在对应的证书上
// if (this.model.certificate.length > 0) {
// this.model.certificate.forEach((item, index) => {
// if (index === 0) {
// item.certificateImg = values.certificateImg1
// item.effectDate = values.effectDate1
// item.invalidDate = values.invalidDate1
// }
// if (index === 1) {
// item.certificateImg = values.certificateImg2
// item.effectDate = values.effectDate2
// item.invalidDate = values.invalidDate2
// }
// })
// }
this.model.certificatesNum = this.selectedRowKeys.length
const formData = Object.assign(this.model, values)
// 客户要去掉网员服务费字段,但是后端没有去掉校验,所以前端写死
formData.serviceCharge = 0
if (this.typeFlag) {
formData.paymentType = 1
} else {
formData.paymentType = 0
}
console.log('表单提交数据', formData)
httpAction(httpurl, formData, method).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
},
handleCancel() {
this.close()
},
popupCallback(row) {
this.form.setFieldsValue(pick(row, 'billNumber', 'companyName', 'paymentType', 'validPeriod', 'paymentTime', 'paymentAmount', 'certificatesNum', 'submissionTime', 'checkTime', 'paymentStatus', 'paymentMethod', 'paymentRecord', 'invoiceRequirements', 'headerName', 'taxNumber', 'invoiceAddress', 'invoicePhone', 'depositBank', 'bankAccount', 'checkResult', 'checkMark', 'checkMember', 'checkMemberId', 'memberId', 'certificate', 'address', 'postcode'))
},
certificateCheckChange() {
this.$forceUpdate()
},
// 根据会员id获取会员信息
loadMember() {
getMemberInfoById({ id: this.memberId }).then((res) => {
if (res.success) {
var memberInfo = res.result
this.companyName = memberInfo.companyName
this.liaisonMan = memberInfo.liaisonMan
this.mobile = memberInfo.mobile
this.address = memberInfo.address
this.postcode = memberInfo.postcode
this.taxNumber = memberInfo.taxNo
this.invoiceInfoObj.invoiceAddress = memberInfo.invoiceAddress
this.invoiceInfoObj.invoicePhone = memberInfo.invoicePhone
this.invoiceInfoObj.depositBank = memberInfo.depositBank
this.invoiceInfoObj.bankAccount = memberInfo.bankAccount
this.headerName = memberInfo.invoiceInfo
this.memberType = memberInfo.memberNature
switch (memberInfo.memberNature) {
case 1:
this.memberNature = '副理事单位'
break
case 2:
this.memberNature = '理事单位'
break
case 3:
this.memberNature = '会员单位'
break
default:
break
}
} else {
console.log(res.message)
}
})
},
/* 缴费时长选择*/
changgeType(value) {
this.initVal = value
console.log('----', this.initVal)
const { form } = this
if (Number(value) === 2) {
// 5年
this.typeFlag = true
form.setFieldsValue({ 'paymentType': 1, 'paymentAmount': vipMemberCost })
this.$nextTick(() => {
form.setFieldsValue({ 'certificateArr': this.model.certificateArr })
})
} else {
this.typeFlag = false
form.setFieldsValue({ 'paymentType': 0, 'paymentAmount': commonMemberCost })
}
if (this.addFlag) {
this.model.address = this.address
this.model.postcode = this.postcode
} else {
this.address = this.model.address
this.postcode = this.model.postcode
}
},
/* 审核选择*/
onCheckChange(e) {
this.checkResult = e.target.value
},
// table选择
onSelectChange(selectedRowKeys) {
this.selectedRowKeys = selectedRowKeys
this.certificatesNum = this.selectedRowKeys.length
},
/* 证书识别代码编辑框*/
onCellChange(key, dataIndex, value) {
const dataSource = [...this.dataSource]
const target = dataSource.find(item => item.key === key)
if (target) {
target[dataIndex] = value
this.dataSource = dataSource
}
},
/* 禁止证书选择*/
getCheckboxProps(record) {
return ({
props: {
// chargeType 1是免费 2是付费 certificateStatus 证书状态 对应证书管理的证书状态
disabled: this.detailFlag || this.checkFlag || record.certificateStatus === 0 || record.certificateStatus === 6 || record.certificateStatus === 1 || record.certificateStatus === 3 || record.certificateStatus === 2 || record.chargeType === 2,
// 某几项默认选中(R: 当state等于1时)
defaultChecked: record.id
}
})
},
/* 图片预览 */
getImgView(text) {
if (text && text.indexOf(',') > 0) {
text = text.substring(0, text.indexOf(','))
}
return getFileAccessHttpUrl(text)
},
// 模态框预览
openView(val) {
this.$refs.previewModal.openPre(val)
},
/* 查找证书信息*/
getCertificate() {
return new Promise(resolve => {
const that = this
this.dataSource = []
getCertificateByMemberId({ id: that.memberId }).then((res) => {
var source = [
{
id: '',
key: 0,
index: '1',
certificate: '世界制造厂识别代号(WMI)证书',
certificate_code: '',
text: '1d81baf9b47a59afd9cee4df3731574i'
},
{
id: '',
key: 1,
index: '2',
certificate: '企业名称代号证书',
certificate_code: '',
text: '1d81baf9b47a59afd9cee4df37315775'
}
]
if (res.success) {
this.cellFlag = []
this.dataSource = []
if (this.addFlag || that.memberType === 1) {
if (res.result.length !== 0) {
this.dataSource = res.result
this.certificatesNum = res.result.length
} else {
this.dataSource = source
this.certificatesNum = 0
}
this.dataSource.forEach((value, index) => {
if (value.noticeOfFiling === 1) {
value.noticeOfFiling = '是'
} else if (value.noticeOfFiling === 0) {
value.noticeOfFiling = '否'
}
if (value.certificate_code) {
this.cellFlag.push(true)
} else {
this.cellFlag.push(false)
}
if (value.id) {
this.selectedRowKeys.push(value.key)
}
})
} else {
this.dataSource = res.result
this.certificatesNum = res.result.length
if (this.certificatesNum > 0) {
this.dataSource.forEach((value, index) => {
if (value.noticeOfFiling === 1) {
value.noticeOfFiling = '是'
} else if (value.noticeOfFiling === 0) {
value.noticeOfFiling = '否'
}
if (value.certificate_code) {
this.cellFlag.push(true)
} else {
this.cellFlag.push(false)
}
if (value.id) {
this.selectedRowKeys.push(value.key)
}
// 回显 证书附件 生效日期 失效日期
if (index === 0) {
this.$nextTick(() => {
this.form.setFieldsValue({
'certificateImg1': value.certificateImg,
'effectDate1': value.effectDate,
'invalidDate1': value.invalidDate
})
})
}
if (index === 1) {
this.$nextTick(() => {
this.form.setFieldsValue({
'certificateImg2': value.certificateImg,
'effectDate2': value.effectDate,
'invalidDate2': value.invalidDate
})
})
}
})
} else {
this.dataSource = source
}
}
this.certificate = this.dataSource
} else {
this.cellFlag = [false, false]
this.dataSource = source
this.certificatesNum = 0
this.certificate = this.dataSource
}
}).finally(() => {
resolve()
})
})
},
/* 查找审核信息*/
getCheckInfo(recordId) {
this.checkInfo = []
getCheckInfo({ id: recordId, paymentType: 0 }).then((res) => {
if (res.success) {
this.checkInfo = res.result
}
})
},
/* 根据缴费时长,获取缴费金额*/
getByMemberTime(rule, value, callback) {
const paymentAmount = this.form.getFieldValue('paymentAmount')
const type = this.form.getFieldValue('paymentTime')
console.log(paymentAmount, type)
this.form.resetFields(['paymentAmount', 'paymentTime'])
this.form.setFieldsValue({ 'paymentAmount': paymentAmount, 'paymentTime': type })
console.log('44444', this.addFlag, !this.paymentMethodFlag)
// 打包不验证金额
if (!this.paymentMethodFlag) {
if (type === undefined) {
callback('请选择缴费时长')
}
/* 校验时间和金额*/
getByMemberTime({ memberTime: type }).then((res) => {
if (res.success) {
const thresholdSettings = res.result || []
if (thresholdSettings.length === 0) {
callback()
}
for (var thresholdSetting of thresholdSettings) {
if (paymentAmount) {
if (Number(paymentAmount) < Number(thresholdSetting.memberMoney)) {
callback(`缴费金额必须多于${thresholdSetting.memberMoney}`)
} else {
callback()
}
} else {
callback('请先输入金额')
}
}
}
}).catch(() => {
callback()
})
} else {
if (this.typeFlag) {
// 5年 VIP会员
this.paymentType = 1
} else {
// 1年 设置普通会员
this.paymentType = 0
}
callback()
}
},
/* 选择发票*/
invoiceRequirementsChange(value) {
this.currentSelectInvoiceType = Number(value)
// 0 代表发票选择无
if (this.currentSelectInvoiceType === 0) {
this.invoiceRequirementsFlag = false
} else {
this.invoiceRequirementsFlag = true
}
},
/* 缴费方式*/
changePaymentMethod(value) {
// 'paymentType'-缴费类型 paymentAmount-缴费金额,paymentTime-缴费时长 'invoiceRequirements'-发票
this.form.resetFields(['billNumber', 'paymentType', 'paymentAmount', 'paymentTime', 'submissionTime', 'paymentRecord'])
this.changgeType(this.paymentTime)
if ((+value) === 2) {
this.paymentMethodFlag = true
} else {
this.paymentMethodFlag = false
}
this.isCash = value
},
/*
* 下载收费通知单
* */
downChargeNotice(text) {
if (!text) {
this.$message.warning('未知的文件')
return
}
if (text.indexOf(',') > 0) {
text = text.substring(0, text.indexOf(','))
}
const url = getFileAccessHttpUrl(text)
window.open(url, '_self')
},
/*
* 查找最新的缴费通知单
* */
getNewestNotice() {
this.newestNoticeInfo = {}
downNewestNotice().then(res => {
if (res.success) {
this.newestNoticeInfo = Object.assign({}, res.result)
}
})
},
/*
* 验证发票信息-电话号码 的正确性
* */
handleInvoicePhoneCheck(rule, value, callback) {
const reg = /^((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(17[0135678])|(18[0-9])|(19[8|9])|(16[6]))\d{8}$|^([0-9]{3,4}-)[0-9]{7,8}$/
if (!value) {
callback(new Error('请输入电话号码'))
}
if (value && !reg.test(value)) {
callback(new Error('请输入正确格式的电话号码'))
} else {
callback()
}
},
// 校验 证书识别代码
checkCertificateCode(rule, value, callback) {
if (this.selectedRowKeys.length === 0) {
callback()
return
}
let index = rule.field.includes('1') && 1 || 0
if (rule.field) {
let ele = this.dataSource[index].certificate_code
if (ele) {
if (!value) {
callback(new Error('请输入证书识别代码'))
return
}
let pattern = /^((?![\u4E00-\u9FA5]).)*$/
if (!pattern.test(value)) {
callback(new Error('不能输入汉字'))
return
}
callback()
return
} else {
callback()
return
}
}
},
// 校验 生效日期
checkEffectDate(rule, value, callback) {
if (this.selectedRowKeys.length === 0) {
callback()
return
}
let index = rule.field.includes('1') && 1 || 0
if (rule.field) {
let ele = this.dataSource[index].certificate_code
if (ele) {
if (!value) {
callback(new Error('请选择生效日期'))
return
}
callback()
return
} else {
callback()
return
}
}
},
//校验 失效日期
checkInvalidDate(rule, value, callback) {
if (this.selectedRowKeys.length === 0) {
callback()
return
}
let index = rule.field.includes('1') && 1 || 0
if (rule.field) {
let ele = this.dataSource[index].certificate_code
if (ele) {
if (!value) {
callback(new Error('请选择失效日期'))
return
}
let ck = this.form.getFieldValue('certificateArr[' + index + '].effectDate')
if (ck) {
if (value < ck) {
callback(new Error('失效日期不能早于生效日期'))
return
}
callback()
return
}
callback()
return
} else {
callback()
return
}
}
},
// 校验证书附件
checkCertificateImg(rule, value, callback) {
if (this.selectedRowKeys.length === 0) {
callback()
return
}
let index = rule.field.includes('1') && 1 || 0
if (rule.field) {
let ele = this.dataSource[index].certificate_code
if (ele) {
if (!value) {
// callback(new Error('请上传证书附件'))
callback()
return
}
callback()
return
} else {
callback()
return
}
}
},
// 校验 备案通知书
checkNoticeOfFiling(rule, value, callback) {
if (this.selectedRowKeys.length === 0) {
callback()
return
}
let index = rule.field.includes('1') && 1 || 0
if (rule.field) {
let eleIndex = this.selectedRowKeys.findIndex(tt => (tt + '') === (index + ''))
if (eleIndex > -1) {
if (!value) {
callback(new Error('请选择备案通知书'))
return
}
callback()
return
} else {
callback()
return
}
}
}
}
}
</script>
<style scoped lang="less">
.charge-notice {
position: absolute;
right: 20px;
top: -20px;
color: #219AFF;
cursor: pointer;
font-size: 14px;
}
.remark {
//margin-left: -100px;
}
.remark span {
display: inline-block;
font-size: 14px;
margin-left: 145px;
transform: translateY(-20px);
}
.table {
width: 100%;
height: 180px;
text-align: center;
margin-bottom: 10px;
border-color: #ccc;
border-collapse: collapse;
}
.transalte-y-10 {
transform: translateY(10px);
}
.vin {
width: 160px;
height: 90px;
cursor: pointer;
}
// 2021-09-23 新增固定宽度
/deep/ .ant-form-item-label {
width: 145px !important;
}
// 会员缴费表格的样式修改,防止缴费年限下拉框被遮挡
.payment-table {
z-index: 10;
}
// 收款账户信息样式的修改
.show-row .ant-form-item {
margin-bottom: 0;
}
/deep/ .certificate-img .ant-form-item {
margin-bottom: 0px;
}
// 证书的相关信息
.certificate-box .ant-checkbox-group {
width: 100%;
}
.certificate-item {
position: relative;
}
.check-row {
position: absolute;
top: 8px;
}
</style>