1617 lines
59 KiB
Vue
1617 lines
59 KiB
Vue
<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" v-if="!addFlag">
|
||
<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>
|
||
<template v-if="memberType === 1">
|
||
副理事单位
|
||
</template>
|
||
<template v-else>
|
||
<span v-if="initVal == '2' ">VIP会员</span>
|
||
<span v-else>普通会员</span>
|
||
</template>
|
||
</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>
|
||
|
||
<template v-if="addFlag">
|
||
<a-row>
|
||
<a-col :span="12">
|
||
<a-form-item label="缴费总金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
{{allAmount}}
|
||
(请填写分类金额)
|
||
</a-form-item>
|
||
</a-col>
|
||
<a-col :span="12">
|
||
<a-form-item label="会员类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<template v-if="memberType === 1 ">
|
||
副理事长单位
|
||
</template>
|
||
<template v-else>
|
||
<span v-if="initVal == '2' ">VIP会员</span>
|
||
<span v-else>普通会员</span>
|
||
</template>
|
||
</a-form-item>
|
||
</a-col>
|
||
</a-row>
|
||
<a-row>
|
||
<a-col :span="12">
|
||
<a-form-item label="会员缴费金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<a-input
|
||
:disabled="checkFlag||detailFlag"
|
||
v-decorator="['memberPaymentAmount',validatorRules.serviceCharge]"
|
||
:trigger-change="true"
|
||
@blur="calculateAllAmount"
|
||
@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">
|
||
<j-dict-select-tag
|
||
:disabled="checkFlag||detailFlag"
|
||
ref="paymentTimeJdict"
|
||
@change="changgeType"
|
||
type="list"
|
||
v-decorator="['paymentTime',{ rules: validatorRules.paymentTime.rules, initialValue:paymentTime}]"
|
||
:trigger-change="true"
|
||
dictCode="payment_time"
|
||
placeholder="请选择缴费时长"
|
||
/>
|
||
</a-form-item>
|
||
</a-col>
|
||
|
||
</a-row>
|
||
|
||
<a-row>
|
||
<a-col :span="12">
|
||
<a-form-item label="证书缴费金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<a-input
|
||
:disabled="checkFlag||detailFlag"
|
||
v-decorator="['certificatePaymentAmount',validatorRules.certificatePaymentAmount]"
|
||
@blur="calculateAllAmount"
|
||
@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"
|
||
v-decorator="['otherPaymentAmount',validatorRules.certificatePaymentAmount]"
|
||
@blur="calculateAllAmount"
|
||
@change="event => event.target.value = event.target.value.trim()"
|
||
placeholder="请输入其他缴费金额"
|
||
:maxLength="50"></a-input>
|
||
</a-form-item>
|
||
</a-col>
|
||
</a-row>
|
||
</template>
|
||
<!-- 打包会员显示 -->
|
||
<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, initialValue: model.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">
|
||
<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, initialValue: model.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>
|
||
<span v-if="!invoiceRequirementsFlag" class="other-notice">本选项不提供任何形式的发票凭证</span>
|
||
</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 v-if="isCash !== '3' ">
|
||
<a-col :span="24">
|
||
<a-form-item label="缴费凭证/付款说明" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<j-image-upload
|
||
isLessThan5M
|
||
isMultiple
|
||
: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>
|
||
|
||
<!-- 证书信息 -->
|
||
<!-- 申请证书信息begin -->
|
||
<!--只有新增的时候显示-->
|
||
<template v-if="!model.id">
|
||
<a-divider orientation="left">证书申请信息</a-divider>
|
||
<a-row>
|
||
<a-col :span="12">
|
||
<a-form-item label="证书类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<j-dict-select-tag
|
||
@change="changeCertificateType"
|
||
dictCode="certificate_type"
|
||
:triggerChange="true"
|
||
v-decorator="['certificateType',validatorRules.certificateType]"
|
||
placeholder="请选择证书类型"/>
|
||
</a-form-item>
|
||
</a-col>
|
||
<a-col :span="12">
|
||
<a-form-item label=" 证书代码" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<a-input
|
||
:maxLength="50"
|
||
placeholder="请输入证书代码"
|
||
v-decorator="['code',validatorRules.clientCode]"
|
||
></a-input>
|
||
</a-form-item>
|
||
<span class="apply-code-notice">一次申请仅能输入一个证书代码</span>
|
||
</a-col>
|
||
</a-row>
|
||
<a-row>
|
||
<a-col :span="12">
|
||
<a-form-item label="通讯地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<a-input
|
||
:maxLength="50"
|
||
placeholder="请输入通讯地址"
|
||
v-decorator="['address',validatorRules.address]"
|
||
></a-input>
|
||
</a-form-item>
|
||
</a-col>
|
||
|
||
<a-col :span="12">
|
||
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<a-input
|
||
:maxLength="50"
|
||
placeholder="请输入邮编"
|
||
v-decorator="['postcode',validatorRules.postcode]"
|
||
></a-input>
|
||
</a-form-item>
|
||
</a-col>
|
||
</a-row>
|
||
<a-row v-if="certificateType == '1' ">
|
||
<a-col :span="12">
|
||
<a-form-item label="备案通知书" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||
<j-dict-select-tag
|
||
v-decorator="['noticeOfFiling']"
|
||
:triggerChange="true"
|
||
placeholder="请选择备案通知书"
|
||
dictCode="notice_of_filing"/>
|
||
</a-form-item>
|
||
</a-col>
|
||
</a-row>
|
||
</template>
|
||
<!-- 申请证书信息end -->
|
||
|
||
|
||
|
||
<!-- 审核 -->
|
||
<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,
|
||
getCheckInfo,
|
||
getByMemberTime,
|
||
downNewestNotice,
|
||
judgeMemberNotApprove, ajaxGetDictItems
|
||
} from '@/api/standardsAssociationApi'
|
||
import JUpload from '@/components/standardsAssociation/JUpload'
|
||
import PreViewImgModal from './PreViewImgModal'
|
||
import { commonMemberCost, vipMemberCost,upgradeVip } from '@api/incomePaymentsApi'
|
||
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'
|
||
},
|
||
certificatePaymentAmount: {
|
||
rules: [
|
||
{
|
||
required: false, 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',
|
||
},
|
||
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'
|
||
},
|
||
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',
|
||
combinationUrl: '/paymentInfo/addCombination' // 组合缴费
|
||
},
|
||
// 缴费时长 5年vip会员 为true 1年普通会员为 false
|
||
typeFlag: false,
|
||
certificateType: undefined, // 证书类型
|
||
// 缴费表头
|
||
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: [],
|
||
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: {},
|
||
allAmount: 0 // 缴费总金额
|
||
}
|
||
},
|
||
created() {
|
||
// this.loadMember();
|
||
},
|
||
methods: {
|
||
/**
|
||
* 计算缴费总金额
|
||
* */
|
||
calculateAllAmount() {
|
||
this.$nextTick(() => {
|
||
const memberAmount = this.form.getFieldValue('memberPaymentAmount') ? Number(this.form.getFieldValue('memberPaymentAmount')) : 0
|
||
const certificateAmount = this.form.getFieldValue('certificatePaymentAmount') ? Number(this.form.getFieldValue('certificatePaymentAmount')) : 0
|
||
const otherAmount = this.form.getFieldValue('otherPaymentAmount') ? Number(this.form.getFieldValue('otherPaymentAmount')) : 0
|
||
this.form.validateFields(['memberPaymentAmount', 'certificatePaymentAmount', 'otherPaymentAmount'], (err) => {
|
||
if (!err) {
|
||
this.allAmount = (memberAmount + certificateAmount + otherAmount) + ''
|
||
}
|
||
})
|
||
})
|
||
},
|
||
/**
|
||
* 改变证书类型 世界制造厂证书显示备案通知书
|
||
* */
|
||
changeCertificateType(val) {
|
||
this.certificateType = val
|
||
},
|
||
/* 添加*/
|
||
add() {
|
||
this.addFlag = true
|
||
this.memberId = this.userId
|
||
this.edit({})
|
||
},
|
||
/* 核对凭证*/
|
||
handleCheck(record) {
|
||
this.checkFlag = true
|
||
this.show(record)
|
||
},
|
||
/* 查看*/
|
||
detail(record) {
|
||
this.detailFlag = 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.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.memberId = this.model.memberId
|
||
} else {
|
||
this.memberId = this.userId
|
||
}
|
||
// 获取会员信息
|
||
await this.loadMember()
|
||
this.visible = true
|
||
// 获取会员类型 vip会员不展示 升级专用
|
||
if(this.model.memberType === 2){
|
||
this.$nextTick( () => {
|
||
ajaxGetDictItems('payment_time', null).then((res) => {
|
||
if (res.success) {
|
||
let dictOptions = res.result
|
||
let index = dictOptions.findIndex(item => item.value === '3' )
|
||
dictOptions.splice(index,1)
|
||
this.$refs.paymentTimeJdict.setCurrentDictOptions(dictOptions)
|
||
}
|
||
})
|
||
// console.log(this.$refs.paymentTimeJdict.getCurrentDictOptions(),'this.$refs.paymentTimeJdict.getCurrentDictOptions()'
|
||
})
|
||
}
|
||
|
||
|
||
this.model.memberId = this.memberId
|
||
|
||
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
|
||
}
|
||
// 新增 设置 初始缴费金额
|
||
if(this.addFlag){
|
||
// 判断是否是 副理事单位
|
||
this.$nextTick( () => {
|
||
this.form.setFieldsValue({paymentAmount:commonMemberCost(this.memberType),'memberPaymentAmount': commonMemberCost(this.memberType)})
|
||
})
|
||
// 计算缴费总金额
|
||
this.calculateAllAmount()
|
||
}
|
||
// 缴费单号
|
||
// 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.certificateType = undefined
|
||
this.addFlag = false
|
||
this.typeFlag = false
|
||
this.checkFlag = false
|
||
this.checkResult = 2
|
||
this.certificatesFlag = false
|
||
this.dataSource = []
|
||
this.checkInfo = []
|
||
this.detailFlag = false
|
||
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
|
||
this.initVal = 1
|
||
this.confirmLoading = false
|
||
this.model = {}
|
||
},
|
||
handleOk() {
|
||
|
||
const that = this
|
||
// 触发表单验证
|
||
that.form.validateFields({ force: true }, async (err, values) => {
|
||
if (!err) {
|
||
// 判断会员是否有未审核的缴费
|
||
let flag = await this.judgeMemberNotApproveFunc(this.memberId)
|
||
if(flag === 'true' ){
|
||
// 提示
|
||
that.$confirm({
|
||
title: '确认提交',
|
||
content: '当前已有待审核缴费订单,为避免重复提交,请确认是否再次提交缴费订单?',
|
||
onOk:function () {
|
||
that.handleSubmit(values)
|
||
},
|
||
onCancel:function (){
|
||
that.handleCancel()
|
||
return
|
||
}
|
||
})
|
||
}else {
|
||
this.handleSubmit(values)
|
||
}
|
||
|
||
}
|
||
})
|
||
|
||
},
|
||
handleSubmit(values){
|
||
const that = this
|
||
that.confirmLoading = true
|
||
let httpurl = ''
|
||
let method = ''
|
||
if (!this.model.id) {
|
||
httpurl += this.url.combinationUrl
|
||
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
|
||
}
|
||
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
|
||
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'))
|
||
},
|
||
// 根据会员id获取会员信息
|
||
loadMember() {
|
||
return new Promise(resolve => {
|
||
getMemberInfoById({ id: this.memberId }).then((res) => {
|
||
if (res.success) {
|
||
let 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
|
||
this.model = Object.assign({},memberInfo)
|
||
switch (memberInfo.memberNature) {
|
||
case 1:
|
||
this.memberNature = '副理事单位'
|
||
break
|
||
case 2:
|
||
this.memberNature = '理事单位'
|
||
break
|
||
case 3:
|
||
this.memberNature = '会员单位'
|
||
break
|
||
default:
|
||
break
|
||
}
|
||
resolve(res.result)
|
||
} else {
|
||
console.log(res.message)
|
||
}
|
||
})
|
||
})
|
||
},
|
||
|
||
/* 缴费时长选择*/
|
||
changgeType(value) {
|
||
this.initVal = value
|
||
const { form } = this
|
||
switch (Number(value)) {
|
||
// 1年
|
||
case 1: this.typeFlag = false
|
||
form.setFieldsValue({ 'paymentType': 0, 'paymentAmount': commonMemberCost(this.memberType),'memberPaymentAmount': commonMemberCost(this.memberType) })
|
||
break
|
||
// 5年
|
||
case 2:
|
||
this.typeFlag = true
|
||
form.setFieldsValue({ 'paymentType': 1, 'paymentAmount': vipMemberCost(this.memberType),'memberPaymentAmount': vipMemberCost(this.memberType) })
|
||
break
|
||
// 升级专用
|
||
case 3:
|
||
this.typeFlag = true
|
||
form.setFieldsValue({ 'paymentAmount': upgradeVip(this.memberType),'memberPaymentAmount': upgradeVip(this.memberType) })
|
||
break
|
||
}
|
||
this.calculateAllAmount()
|
||
},
|
||
|
||
/* 审核选择*/
|
||
onCheckChange(e) {
|
||
this.checkResult = e.target.value
|
||
},
|
||
|
||
/* 查找审核信息*/
|
||
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')
|
||
this.form.resetFields(['paymentAmount', 'paymentTime'])
|
||
this.form.setFieldsValue({ 'paymentAmount': paymentAmount, 'paymentTime': type })
|
||
// 打包不验证金额
|
||
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()
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 判断会员是否有未审核的缴费
|
||
* */
|
||
judgeMemberNotApproveFunc(id) {
|
||
return new Promise(resolve => {
|
||
const param = {
|
||
memberId: id
|
||
}
|
||
judgeMemberNotApprove(param).then(res => {
|
||
resolve(res.message)
|
||
})
|
||
})
|
||
},
|
||
|
||
/* 选择发票*/
|
||
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
|
||
}
|
||
let invoiceRequirements = this.form.getFieldValue('invoiceRequirements')
|
||
invoiceRequirements && this.invoiceRequirementsChange(invoiceRequirements)
|
||
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()
|
||
}
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
<style scoped lang="less">
|
||
.charge-notice {
|
||
position: absolute;
|
||
right: 20px;
|
||
top: -20px;
|
||
color: #219AFF;
|
||
cursor: pointer;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.apply-code-notice {
|
||
color: #f5222d;
|
||
position: absolute;
|
||
bottom: 4px;
|
||
left: 25%
|
||
}
|
||
|
||
.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;
|
||
}
|
||
// 发票选择无 增加样式
|
||
.other-notice{
|
||
color: #f5222d;
|
||
position: absolute;
|
||
bottom: 4px;
|
||
left: 25%
|
||
}
|
||
</style>
|