[update] 会员管理-成员管理

This commit is contained in:
lideqin
2024-02-29 17:51:06 +08:00
parent f72f583629
commit fff8806476
2 changed files with 807 additions and 56 deletions
@@ -2,33 +2,100 @@
<div>
<page-header-title :is-level-one="false" :level-two-title="$route.query.projectName"></page-header-title>
<a-card :bordered="false">
<div class="part-title">
<div class="part-title-text">标协会员项目信息</div>
</div>
<!-- 标协会员项目信息区域 -->
<a-spin :spinning="spinning">
<div class="member-detail">
<div class="member-detail-item member-detail-item-small"
v-for="(item, index) in detailTitleList"
:key="index">
<div class="member-detail-item-title">{{ item.title }}</div>
<div class="member-detail-item-content member-detail-item-filename" v-if="item.type === 'file'">
<preview-file :file-id="stardsMemberDetail[item.fieldName]"></preview-file>
</div>
<div class="member-detail-item-content" v-else>{{ stardsMemberDetail[item.fieldName] }}</div>
</div>
<div class="member-detail-item">
<div class="member-detail-item-title">备注</div>
<div class="member-detail-item-content">{{ stardsMemberDetail.remarks }}</div>
</div>
</div>
</a-spin>
<a-divider></a-divider>
<div class="part-title">
<div class="part-title-text">标协会员单位信息</div>
</div>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="企业名称">
<a-form-item label="会员单位">
<a-input
placeholder="请输入企业名称"
placeholder="请输入会员单位"
v-model="queryParam.companyName"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span
style="float: left; overflow: hidden"
class="table-page-search-submitButtons"
>
<a-button type="primary" @click="searchQuery" icon="search" v-has="'safeguardStardsMember:search'"
>查询</a-button
>
<a-button
@click="searchReset"
class="reset-button"
icon="reload"
style="margin-left: 8px"
>重置</a-button
>
<a-form-item label="会员状态">
<j-dict-select-tag
placeholder="请选择会员状态"
v-model="queryParam.companyName"
dict-code=""
></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="预估到账日期">
<a-range-picker
style="width: 100%"
v-model="queryParam.estimatedArrivalDate"
format="YYYY-MM-DD"
:placeholder="['开始时间', '结束时间']"
@change="onDateChange"
/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="是否提票">
<j-dict-select-tag
placeholder="请选择会员状态"
v-model="queryParam.companyName"
dict-code="yn"
></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="生效日期">
<a-range-picker
style="width: 100%"
v-model="queryParam.estimatedArrivalDate"
format="YYYY-MM-DD"
:placeholder="['开始时间', '结束时间']"
@change="onDateChange"
/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="失效日期">
<a-range-picker
style="width: 100%"
v-model="queryParam.estimatedArrivalDate"
format="YYYY-MM-DD"
:placeholder="['开始时间', '结束时间']"
@change="onDateChange"
/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search" v-has="'safeguardStardsMember:search'">查询</a-button>
<a-button @click="searchReset" class="reset-button" icon="reload" style="margin-left: 8px">重置</a-button>
</span>
</a-col>
</a-row>
@@ -38,15 +105,15 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<!-- <a-button @click="handleAdd" type="primary" icon="plus">添加</a-button>-->
<a-button @click="handleAdd" type="primary" icon="plus">添加</a-button>
<a-button
type="primary"
icon="download"
@click="handleExportXls('标协会员')"
v-has="'safeguardStardsMember:export'"
>导出</a-button
>
<!-- <a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>-->
v-has="'safeguardStardsMember:export'">
导出
</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
<!-- @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
@@ -120,6 +187,8 @@
</a-table>
</div>
<project-detail-modal ref="projectDetail"></project-detail-modal>
<!-- 标协会员单位信息新增编辑弹框 -->
<safeguard-stards-member-modal ref="modalForm" @ok="modalFormOk" :base-info="stardsMemberDetail"></safeguard-stards-member-modal>
</a-card>
</div>
</template>
@@ -132,6 +201,8 @@ import '@/assets/less/TableExpand.less'
import StatusSlot from '@comp/tools/StatusSlot'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { formatMoney } from '@/utils/formatMoney'
import PreviewFile from '@/components/jero/PreviewFile'
import SafeguardStardsMemberModal from './modules/SafeguardStardsMemberModal'
export default {
name: 'SafeguardStardsMemberList',
@@ -139,10 +210,46 @@ export default {
components: {
ProjectDetailModal,
StatusSlot,
PageHeaderTitle
PageHeaderTitle,
PreviewFile,
SafeguardStardsMemberModal
},
data() {
return {
detailTitleList: [
{
title: '标协会员项目',
fieldName: ''
},{
title: '运行年份',
fieldName: ''
}, {
title: '负责人',
fieldName: ''
}, {
title: '收费标准',
fieldName: ''
}, {
title: '收费通知号',
fieldName: ''
}, {
title: '收费通知',
fieldName: '',
type: 'file'
}, {
title: '理事会收费标准',
fieldName: ''
}, {
title: '理事会收费通知号',
fieldName: ''
}, {
title: '理事会收费通知',
fieldName: '',
type: 'file'
}
],
stardsMemberDetail: {}, // 会员基本信息
spinning: false, // 基本信息的加载
columns: [
{
title: '序号',
@@ -161,47 +268,17 @@ export default {
scopedSlots: { customRender: 'text' },
},
{
title: '企业名称',
title: '会员单位',
align: 'center',
dataIndex: 'companyName',
scopedSlots: { customRender: 'detail' },
},
{
title: '会员类型',
align: 'center',
dataIndex: 'memberType_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '联系人',
title: '会员联系人',
align: 'center',
dataIndex: 'liaisonMan',
scopedSlots: { customRender: 'text' },
},
{
title: '邮箱',
align: 'center',
dataIndex: 'email',
scopedSlots: { customRender: 'text' },
},
{
title: '手机',
align: 'center',
dataIndex: 'mobile',
scopedSlots: { customRender: 'text' },
},
{
title: '会员状态',
align: 'center',
dataIndex: 'memberStatus_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '注册时间',
align: 'center',
dataIndex: 'registerTime',
scopedSlots: { customRender: 'text' },
},
{
title: '待确收金额',
align: 'center',
@@ -214,6 +291,12 @@ export default {
dataIndex: 'paidAmount',
scopedSlots: { customRender: 'allMoney' }
},
{
title: '预估到账日期',
align: 'center',
dataIndex: 'paidAmount',
scopedSlots: { customRender: 'allMoney' }
},
{
title: '打包',
align: 'center',
@@ -239,11 +322,17 @@ export default {
scopedSlots: { customRender: 'status-bill' },
},
{
title: '邮寄',
title: '确收',
align: 'center',
dataIndex: 'mail',
scopedSlots: { customRender: 'status-mail' },
},
{
title: '提票',
align: 'center',
dataIndex: 'mail',
scopedSlots: { customRender: 'status-mail' },
}
],
disableMixinCreated: true,
url: {
@@ -257,7 +346,11 @@ export default {
this.loadData(1)
},
methods: {
formatMoney
formatMoney,
onDateChange (value, dateString) {
this.queryParam.estimatedArrivalStartDate = dateString[0]
this.queryParam.estimatedArrivalEndDate = dateString[1]
}
}
}
</script>
@@ -268,4 +361,35 @@ export default {
color: #069f99;
cursor: pointer;
}
.member-detail {
display: flex;
flex-wrap: wrap;
padding-bottom: 20px;
&-item-small {
width: 33.3% !important;
}
&-item {
display: flex;
padding: 5px 5px;
width: 100%;
font-size: 14px;
&-title {
flex-shrink: 0;
color: #999999;
}
&-content {
word-break: break-all;
color: #2F3133;
}
&-filename {
//cursor: pointer;
}
}
}
</style>
@@ -0,0 +1,627 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
cancelText="关闭"
>
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item
label="会员单位"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<company-select
placeholder="请选择会员单位"
v-decorator="['companyId', validatorRules.companyId]"
@change="companyChange"
:maxLength="50"
:disabled="disabledCompany"
>
</company-select>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item
label="企业联系人"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<select-contacts
:selected-company="selectedCompany"
:init-contacts="selectPerson"
placeholder="请选择企业联系人"
@change="changetPerson"
v-decorator="[
'companyContactId',
validatorRules.companyContactId,
]"
:maxLength="50"
ref="selectContacts"
@ok="addContactsOk"
></select-contacts>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item
label="邮寄联系人"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<select-contacts
:selected-company="selectedCompany"
:init-contacts="selectMailPerson"
placeholder="请选择邮寄联系人"
v-decorator="['postContactId', validatorRules.postContactId]"
:maxLength="50"
ref="selectMailContacts"
@ok="addContactsOk"
></select-contacts>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item
label="会员性质"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<j-dict-select-tag
placeholder="请选择会员性质"
v-decorator="['memberNature', validatorRules.memberNature]"
dict-code="member_nature"
:triggerChange="true"
@change="memberNatureChange"
></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item
label="待确收金额"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-input
placeholder="请输入待确收金额"
:maxLength="50"
@change="changeReceivableAmount"
v-decorator="[
'amountReceivable',
validatorRules.amountReceivable,
]"
@blur="addZero"
></a-input>
<span class="yuan">元</span>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="税率" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag @change="changeRate" placeholder="请选择税率" dict-code="rate" :trigger-change="true"
v-decorator="['taxRate',validatorRules.taxRate]"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="税额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row :gutter="10">
<a-col :span="20">
<a-input placeholder="请输入税额"
v-decorator="['tax',validatorRules.tax]"
:maxLength='50'
@blur="addZero"
read-only
disabled
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="1">元</a-col>
</a-row>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row :gutter="10">
<a-col :span="20">
<a-input placeholder="请输入未税金额"
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
:maxLength='50'
disabled
@blur="addZero"
read-only
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="1">元</a-col>
</a-row>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="预估到账日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择预估到账日期"
style="width: 100%;"
v-decorator="['estimatedArrivalDate', validatorRules.estimatedArrivalDate]"
:trigger-change="true"
date-format="YYYY-MM-DD"
/>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item
label="需要发票"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<j-dict-select-tag
v-decorator="['needInvoice', validatorRules.needInvoice]"
:triggerChange="true"
placeholder="请输入发票类型"
dictCode="invoice_type"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item
label="来款方式"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-radio-group
v-decorator="['paymentMethod', validatorRules.paymentMethod]"
@change="changePaymentMethod"
:disabled="isAssociatedContract"
>
<a-radio :value="1">无</a-radio>
<a-radio :value="2">合同</a-radio>
<a-radio :value="3">收费通知</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<!-- incomePaysType 2 是合同·-->
<a-col :xl="12" :sm="24" v-if="incomePaysType === 2">
<a-form-item
label="合同号"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<!-- <a-input-->
<!-- placeholder="请输入合同号"-->
<!-- :maxLength="50"-->
<!-- v-decorator="['contractNo', validatorRules.contractNo]"-->
<!-- :disabled="isAssociatedContract"-->
<!-- @change="-->
<!-- (e) => {-->
<!-- e.target.value = (e.target.value + '').trim();-->
<!-- }-->
<!-- "-->
<!-- ></a-input>-->
<select-revenue-contract
:company="selectedCompany"
placeholder="请选择合同号"
v-decorator="['contractNo', validatorRules.contractNo]"
:disabled="isAssociatedContract">
</select-revenue-contract>
</a-form-item>
</a-col>
</a-row>
<!-- incomePaysType 3 是收费通知·-->
<a-row :gutter="24" v-if="incomePaysType === 3">
<a-col :xl="12" :sm="24">
<a-form-item
label="收费通知号"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-input
placeholder="请输入收费通知号"
:maxLength="50"
v-decorator="['chargeNoticeNo', validatorRules.chargeNoticeNo]"
@change="
(e) => {
e.target.value = (e.target.value + '').trim();
}
"
></a-input>
</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="请上传收费通知"
:multiple="false"
:return-id="true"
:number="1"
v-decorator="['chargeNoticeFileId']"
:trigger-change="true"
></j-upload>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col>
<a-form-item
label="备注"
:labelCol="remarksLabelCol"
:wrapperCol="remarksWrapperCol"
>
<a-textarea
placeholder="请输入备注"
:auto-size="{ minRows: 3, maxRows: 6 }"
:maxLength="200"
v-decorator="['remark']"
@change="
(e) => {
e.target.value = (e.target.value + '').trim();
}
"
/>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-spin>
</j-modal>
</template>
<script>
import JUpload from '@/components/jero/JUpload'
import JDate from '@/components/jero/JDate'
import JDictSelectTag from '@/components/dict/JDictSelectTag'
import CompanySelect from '@/components/company/CompanySelect'
import SelectContacts from '@/components/company/SelectContacts'
import SelectRevenueContract from '@/components/tools/SelectRevenueContract'
import pick from 'lodash.pick'
import { addZero } from '@/utils/util'
import { money } from '@/utils/validate'
import { httpAction } from '@/api/manage'
import { MemberNature, IncomeMethod } from '@/enums/commonEnums'
import {checkAssociatedProject} from '@/utils/projectCheck'
export default {
name: 'SafeguardStardsMemberModal',
components: {
JUpload,
JDate,
JDictSelectTag,
CompanySelect,
SelectContacts,
SelectRevenueContract
},
props: {
// 会员基本信息
baseInfo: {
type: Object,
required: false,
default: () => {
return {}
}
}
},
data() {
return {
title: '操作',
width: 900,
visible: false,
confirmLoading: false,
form: this.$form.createForm(this),
model: {},
labelCol: {
xs: { span: 24 },
sm: { span: 6 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 18 }
},
remarksLabelCol: {
xs: { span: 24 },
sm: { span: 3 }
},
remarksWrapperCol: {
xs: { span: 24 },
sm: { span: 21 }
},
validatorRules: {
companyId: {
rules: [{ required: true, message: '请选择会员单位' }],
validateTrigger: 'blur'
},
contractNo: {
rules: [{ required: true, message: '请选择合同号' }],
validateTrigger: 'change'
},
companyContactId: {
rules: [{ required: true, message: '请选择企业联系人' }],
validateTrigger: 'change'
},
postContactId: {
rules: [{ required: true, message: '请选择邮寄联系人' }],
validateTrigger: 'change'
},
memberNature: {
rules: [{ required: true, message: '请选择会员性质' }],
validateTrigger: ['blur', 'change']
},
paymentMethod: {
rules: [{ required: true, message: '请选择来款方式' }],
validateTrigger: ['blur', 'change'],
initialValue: 3
},
// 待确收金额
amountReceivable: {
rules: [
{ required: true, validator: this.validateMoney }
],
validateTrigger: ['blur']
},
taxRate: {
rules: [{ required: true,message: '请选择税率' }],
validateTrigger: 'change',initialValue:'0.06'
},
chargeNoticeNo: {
rules: [{ required: true, message: '请输入收费通知号' }],
validateTrigger: 'blur'
},
needInvoice: {
rules: [{ required: true, message: '请选择发票类型' }],
validateTrigger: ['change', 'blur'],
initialValue: 0
},
estimatedArrivalDate: {
rules: [{ required: true, message: '请选择预估到账日期' }],
validateTrigger: 'change'
}
},
// 来款方式
incomePaysType: 3,
// 选中的会员单位
selectedCompany: null,
// 选中的联系人
selectPerson: null,
// 回显的邮寄联系人
selectMailPerson: null,
timer: null,
url: {
add: '/jero/memberProjectSubitem/add',
edit: '/jero/memberProjectSubitem/edit'
},
disabledCompany: false, // 企业是否可以编辑
isAssociatedContract: false // 是否已关联合同
}
},
methods: {
addZero,
add() {
this.edit({})
},
edit(record) {
// 清除定时器
if (this.timer) {
clearTimeout(this.timer)
}
this.form.resetFields()
// 判断企业是否可以编辑,项目来款、开票、邮寄、打包、关联合同后,企业不可更改
if (record.id) {
// 验证项目是否关联收入合同
checkAssociatedProject(record.id).then(res => {
this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0)
this.isAssociatedContract = res
})
} else {
this.disabledCompany = this.disabledChargeCompany
}
// 合同作废后合同号是null,这里置为undefined
record.contractNo = record.contractNo || undefined
this.model = Object.assign({}, record)
// 编辑状态下的企业与联系人的回显
if (record.companyId) {
this.model.companyId = {
id: record.companyId,
companyName: record.companyName
}
this.selectedCompany = Object.assign({}, this.model.companyId)
this.selectPerson = {
id: this.model.companyContactTemporaryId,
name: this.model.companyContactName
}
this.selectMailPerson = {
id: this.model.postContactTemporaryId,
name: this.model.postContactName
}
// 修改来款方式 控制dom对应显示隐藏
this.incomePaysType = record.paymentMethod
}
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(
pick(
this.model,
'companyId',
'companyContactId',
'postContactId',
'amountReceivable',
'taxRate',
'tax',
'noTaxAmount',
'estimatedArrivalDate',
'needInvoice',
'paymentMethod',
'contractNo',
'chargeNoticeNo',
'chargeNoticeFileId',
'remark'
)
)
// 查找企业联系人,找不到就置空
this.$refs.selectContacts.getContactsList().finally(() => {
if (!this.$refs.selectContacts.contactsList.find(item => item.id === this.model.companyContactId)) {
this.form.setFieldsValue({ companyContactId: undefined })
}
})
// 查找邮寄联系人,找不到就置空
this.$refs.selectMailContacts.getContactsList().finally(() => {
if (!this.$refs.selectMailContacts.contactsList.find(item => item.id === this.model.postContactId)) {
this.form.setFieldsValue({ postContactId: undefined })
}
})
})
},
validateMoney(rule, value, callback) {
if (value === undefined || value === '' || value === null) {
callback('请输入待确收金额')
}
if (value && money(value)) {
callback()
} else {
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
},
// 会员性质改变
memberNatureChange (value) {
if (value === MemberNature.viceChairmanUnit.value) {
// 是副理事长单位, 带出会员信息的理事会收费标准、理事会收费通知号、理事会收费通知作为待确收金额,收费通知号,收费通知
this.form.setFieldsValue({
amountReceivable: this.baseInfo.amountReceivable
})
// 来款方式是收费通知,带出会员信息的理事会收费通知号、理事会收费通知作为收费通知号,收费通知
if (this.form.getFieldValue('incomePaysType') === IncomeMethod.noticeOfCharge.value) {
this.form.setFieldsValue({
chargeNoticeFileId: this.baseInfo.chargeNoticeFileId,
chargeNoticeNo: this.baseInfo.chargeNoticeNo
})
}
} else {
// 是历史单位或者会员单位, 带出会员信息的收费标准、收费通知号、收费通知作为待确收金额,收费通知号,收费通知
this.form.setFieldsValue({
amountReceivable: this.baseInfo.amountReceivable
})
// 来款方式是收费通知,带出会员信息的收费通知号、收费通知作为收费通知号,收费通知
if (this.form.getFieldValue('incomePaysType') === IncomeMethod.noticeOfCharge.value) {
this.form.setFieldsValue({
chargeNoticeFileId: this.baseInfo.chargeNoticeFileId,
chargeNoticeNo: this.baseInfo.chargeNoticeNo
})
}
}
},
// 选择企业联系人 带出邮寄联系人
changetPerson(val) {
// 只有邮寄联系人没有值的时候才去联动复制
if (this.form.getFieldValue('postContactId') === undefined) {
this.form.setFieldsValue({ 'postContactId': val })
}
},
close() {
this.incomePaysType = 3
this.$emit('close')
this.disabledCompany = false
this.isAssociatedContract = false
this.visible = false
clearTimeout(this.timer)
},
handleOk() {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let httpurl = ''
if (!this.model.id) {
httpurl += this.url.add
} else {
httpurl += this.url.edit
}
const formData = Object.assign(this.model, values)
formData.companyId = values.companyId.id
formData.projectId = this.$store.state.currentProjetcInfo.id
httpAction(httpurl, formData, 'post')
.then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.confirmLoading = false
that.close()
} else {
that.$message.warning(res.message)
}
})
.finally(() => {
that.confirmLoading = false
})
}
})
},
/*
* 来款方式
* */
changePaymentMethod(e) {
this.incomePaysType = e.target.value
},
/*
* 选择会员单位
* */
companyChange(val) {
// 当前选中的企业和之前选中的企业一致,就不修改了
if (this.selectedCompany && val && this.selectedCompany.id === val.id) {
return
}
// 清除合同号
this.form.setFieldsValue({ contractNo: undefined })
this.selectedCompany = Object.assign({}, val)
// 切换企业清空两个联系人
this.form.setFieldsValue({
companyContactId: undefined,
postContactId: undefined
})
},
handleCancel() {
this.selectedCompany = null
this.close()
},
/*
* 筛选
* */
filterOption(input, option) {
console.log('inp', option)
},
/*
* 新增联系人后刷新下拉框数据
* */
addContactsOk() {
this.$refs.selectContacts.getContactsList()
this.$refs.selectMailContacts.getContactsList()
}
}
}
</script>
<style scoped>
.yuan {
position: absolute;
right: -20px;
top: -10px;
}
</style>