Compare commits

...
10 Commits
12 changed files with 147 additions and 43 deletions
+11 -2
View File
@@ -248,8 +248,17 @@ export default {
if (res.success) {
// 单点登录成功,跳转到企业端首页,并用token登录
console.log(res)
const token = res.result.token
window.open(`${window._CONFIG.enterpriseTerminal}dashboard/analysis?token=${token}`, '_self')
if (res.message === 'updatePassword') {
notification['error']({
message: '登录失败',
description: '请先用手机验证码登录',
duration: 4,
})
return
} else {
const token = res.result.token
window.open(`${window._CONFIG.enterpriseTerminal}dashboard/analysis?token=${token}`, '_self')
}
} else {
notification['error']({
message: '登录失败',
@@ -160,7 +160,7 @@ export default {
validateTrigger: 'change'
},
invoiceFileId: {
rules: [{ required: true, message: '请上传发票附件' }],
rules: [{ required: false, message: '请上传发票附件' }],
validateTrigger: 'change'
}
},
@@ -122,12 +122,12 @@ export default {
return text + '年'
}
},
{
title: '收费通知单',
align: 'center',
dataIndex: 'chargeNoticeName',
scopedSlots: { customRender: 'fileSlot' }
},
// {
// title: '收费通知单',
// align: 'center',
// dataIndex: 'chargeNoticeName',
// scopedSlots: { customRender: 'fileSlot' }
// },
{
title: '操作',
dataIndex: 'action',
@@ -17,10 +17,10 @@
<!-- <a-input v-decorator="['dateYear',validatorRules.dateYear]" placeholder="请输入时间(年)"></a-input>-->
<j-year-date :disabled="model.id ? true : false" v-decorator="['dateYear',validatorRules.dateYear]" placeholder="请输入时间(年)"></j-year-date>
</a-form-item>
<a-form-item label="收费通知单" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload ref="fileModal" v-decorator="['chargeNoticeFileId']" returnId :trigger-change="true" :file-type="fileType" file-type-error-message="请上传pdf或者word" :number="1"></j-upload>
<span style="color: #bfbfbf">请上传pdf或者word</span>
</a-form-item>
<!-- <a-form-item label="收费通知单" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <j-upload ref="fileModal" v-decorator="['chargeNoticeFileId']" returnId :trigger-change="true" :file-type="fileType" file-type-error-message="请上传pdf或者word" :number="1"></j-upload>-->
<!-- <span style="color: #bfbfbf">请上传pdf或者word</span>-->
<!-- </a-form-item>-->
</a-form>
</a-spin>
</j-modal>
@@ -97,9 +97,9 @@ export default {
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
const fileModal = this.$refs.fileModal
const length = fileModal.fileList.length
values.chargeNoticeName = length ? this.$refs.fileModal.fileList[0].name : ''
// const fileModal = this.$refs.fileModal
// const length = fileModal.fileList.length
// values.chargeNoticeName = length ? this.$refs.fileModal.fileList[0].name : ''
that.confirmLoading = true
let httpurl = ''
let method = 'post'
@@ -116,7 +116,7 @@
<a-button type="danger" icon="delete" @click="batchDel" v-has="'safeguardStardsMember:batchDel'">批量删除</a-button>
<a-button type="primary" icon="copy" @click="handleMemberBatchCopy" v-has="'safeguardStardsMember:batchCopy'">批量复制</a-button>
<a-button type="primary" icon="download" @click="downTemplate('标协会员成员导入模板')" v-has="'safeguardStardsMember:downloadTemplate'">下载模板</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" :data="importData"
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" :data="importData" :beforeUpload="beforeUpload"
@change="handleImportExcel" v-has="'safeguardStardsMember:import'">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
@@ -269,13 +269,13 @@ export default {
fieldName: 'chargeNoticeFileId',
type: 'file'
}, {
title: '理事会收费标准',
title: '副理事会收费标准',
fieldName: 'councilChargeStandard'
}, {
title: '理事会收费通知号',
title: '副理事会收费通知号',
fieldName: 'councilChargeNoticeNo'
}, {
title: '理事会收费通知',
title: '副理事会收费通知',
fieldName: 'councilChargeNoticeFileId',
type: 'file'
}
@@ -442,6 +442,18 @@ export default {
// 编辑会员权益
handleMemberEquity (record) {
this.$refs.memberEquityModal.edit(record)
},
beforeUpload(file) {
this.uploadGoOn = true
file.uploadGoOn = true
const fileSize = file.size // 上传的文件大小
if (fileSize > 1024 * 1024 * 100) {
this.$message.warning('文件大小限制为100M')
this.uploadGoOn = false
file.uploadGoOn = false
return false
}
return true
}
}
}
@@ -185,8 +185,7 @@ export default {
this.$router.push({
path: '/incomePayments/memberManage/StardsMemberProjectMeetingApplyInfo',
query: {
projectId: record.id,
year: record.year
projectId: record.id
}
})
}
@@ -309,7 +309,7 @@ export default {
}
},
created () {
this.filters.year = this.$route.query.year
this.filters.standardsId = this.$route.query.projectId
this.loadData()
},
methods: {
@@ -491,15 +491,15 @@ export default {
memberNatureChange (value) {
console.log(this.baseInfo, value)
if (value === MemberNature.viceChairmanUnit.value) {
// 是副理事长单位, 带出会员信息的理事会收费标准、理事会收费通知号、理事会收费通知作为待确收金额,收费通知号,收费通知
// 待确收金额带入会员的理事会收费标准
// 是副理事长单位, 带出会员信息的副理事会收费标准、副理事会收费通知号、副理事会收费通知作为待确收金额,收费通知号,收费通知
// 待确收金额带入会员的副理事会收费标准
if (this.baseInfo.councilChargeStandard) {
this.form.setFieldsValue({
amountReceivable: this.baseInfo.councilChargeStandard
})
this.changeReceivableAmount({target: {value: this.baseInfo.councilChargeStandard}})
}
// 来款方式是收费通知,带出会员信息的理事会收费通知号、理事会收费通知作为收费通知号,收费通知
// 来款方式是收费通知,带出会员信息的副理事会收费通知号、副理事会收费通知作为收费通知号,收费通知
if (this.form.getFieldValue('paymentMethod') === IncomeMethod.noticeOfCharge.value) {
this.form.setFieldsValue({
chargeNoticeId: this.baseInfo.councilChargeNoticeFileId,
@@ -594,7 +594,7 @@ export default {
const memberNature = this.form.getFieldValue('memberNature')
this.$nextTick(() => {
if (memberNature === MemberNature.viceChairmanUnit.value) {
// 是副理事长单位, 带出会员信息的理事会收费通知号、理事会收费通知作为收费通知号,收费通知
// 是副理事长单位, 带出会员信息的副理事会收费通知号、副理事会收费通知作为收费通知号,收费通知
this.form.setFieldsValue({
chargeNoticeId: this.baseInfo.councilChargeNoticeFileId,
chargeNoticeNo: this.baseInfo.councilChargeNoticeNo
@@ -64,8 +64,8 @@
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item label="理事会收费标准" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入理事会收费标准"
<a-form-item label="副理事会收费标准" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入副理事会收费标准"
:maxLength='50'
v-decorator="[ 'councilChargeStandard',validatorRules.councilChargeStandard]"
@blur="addZero"
@@ -76,16 +76,16 @@
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="理事会收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入理事会收费通知号"
<a-form-item label="副理事会收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入副理事会收费通知号"
:maxLength='50'
v-decorator="[ 'councilChargeNoticeNo']"
@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" :number="1" :return-id="true"
<a-form-item label="副理事会收费通知" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload file-type="pdf" file-type-error-message="请上传副理事会收费通知" :multiple="false" :number="1" :return-id="true"
bizPath="payment" v-decorator="['councilChargeNoticeFileId']"
:trigger-change="true"></j-upload>
</a-form-item>
@@ -166,7 +166,7 @@ export default {
],
validateTrigger: ['blur']
},
// 理事会收费标准
// 副理事会收费标准
councilChargeStandard:{
rules: [
{required: false, validator: this.validateMoney},
@@ -86,11 +86,14 @@
bordered
rowKey="id"
:columns="columns"
:scroll="{x: 1300}"
:dataSource="dataSource"
:pagination="false"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
<template slot="projectName" slot-scope="text, record">
@@ -135,8 +138,38 @@
</template>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<!-- <a @click="incomePayment(record)" :disabled="Number(record.receivableAmount) === 0"-->
<!-- v-has="'packProject:incomePayment'">来款</a>-->
<a @click="cancelPack(record.id)" v-has="'packProject:cancelPack'">取消打包</a>
<!-- <a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0"-->
<!-- v-has="'packProject:invoicing'">开票</a>-->
<!-- <a v-has="'packProject:confirmPayment'" @click="confirmPayment(record)" :disabled="Number(record.receivableAmount) === 0">确认收入</a>-->
<!--工作组项目、普通项目、资料网员项目可以修改发票信息-->
<!-- <a v-has="'packProject:changeInvoiceInfo'" @click="changeInvoiceInfo(record)" :disabled="Number(record.projectType) !== ProjectTypeEnums.GENERAL_PRO.value && Number(record.projectType) !== ProjectTypeEnums.GROUP_PRO.value && Number(record.projectType) !== ProjectTypeEnums.MEMBER_PRO.value">开票类型</a>-->
</span>
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
ref="footTable"
:rowKey="record=>record.id"
:columns="columnsFooter"
:scroll="{x: 1300}"
:dataSource="footerDataSource"
:showHeader="false"
:pagination="false"
class="j-table-force-nowrap footer-table">
<template slot="allMoney" slot-scope="text">
<a-tooltip>
<template slot="title">{{ formatMoney(text+'') }}</template>
<div class="table-text">{{ formatMoney(text+'') }}</div>
</a-tooltip>
</template>
</a-table>
</template>
</a-table>
</div>
<!-- /项目信息-->
@@ -237,7 +270,7 @@ const defaultTableColumns = [
{
title: '打包项目名称',
align: 'center',
width: 200,
// width: 300,
dataIndex: 'chargeProject',
scopedSlots: { customRender: 'projectName' }
}, {
@@ -249,19 +282,19 @@ const defaultTableColumns = [
}, {
title: '待确收金额',
align: 'center',
width: 100,
width: 200,
dataIndex: 'receivableAmount',
scopedSlots: { customRender: 'allMoney' }
}, {
title: '企业联系人',
align: 'center',
width: 100,
width: 140,
dataIndex: 'contactsTemporaryName',
scopedSlots: { customRender: 'text' }
}, {
title: '联系人电话',
align: 'center',
width: 100,
width: 120,
dataIndex: 'phone',
scopedSlots: { customRender: 'text' }
}, {
@@ -274,12 +307,27 @@ const defaultTableColumns = [
title: '操作',
dataIndex: 'action',
align: 'center',
// fixed: 'right',
fixed: 'right',
width: 100,
scopedSlots: { customRender: 'action' }
}
]
const firstColumnFooter = [
{
title: '多选',
dataIndex: 'selection',
align: 'center',
width: 60
},
{
title: '序号',
dataIndex: 'title',
align: 'center',
width: 60
}
]
export default {
name: 'PackProjectMaintenance',
components: {
@@ -342,6 +390,7 @@ export default {
sm: { span: 10 }
},
columns: [firstColumnTop, ...defaultTableColumns],
columnsFooter: [...firstColumnFooter, ...defaultTableColumns],
disableMixinCreated: true,
selectPackProjectVisible: false,
selectedProject: [], // 选中的项目
@@ -358,7 +407,8 @@ export default {
url: {
list: '/pack/payPackCompanyProject/listAll',
exportXlsUrl: '/pack/payPackCompanyProject/exportXls'
}
},
footerDataSource: []
}
},
created() {
@@ -589,6 +639,25 @@ export default {
this.$refs.changeInvoiceInfo.open(record)
},
/**
* 同步表与footer滚动,保留底部滚动条
*/
setScroll() {
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
dom.addEventListener(
'scroll',
() => {
this.$refs.table.$el.querySelectorAll(
'.ant-table-body'
)[0].scrollLeft = dom.scrollLeft
},
true
)
this.$forceUpdate()
},
// 重写加载的方法
loadData(arg) {
if (!this.url.list) {
@@ -607,6 +676,13 @@ export default {
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
this.dataSource = pageListObj.list
let obj = {
id: '1',
title: '总计',
receivableAmount: pageListObj.sumOfReceivableAmount || '0.00' + '',
paidAmount: pageListObj.sumOfPaidAmount || '0.00' + ''
}
this.footerDataSource = [obj]
if (pageListObj.total) {
this.ipagination.total = pageListObj.total
//清空列表选中
@@ -616,6 +692,11 @@ export default {
}
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
@@ -625,6 +706,9 @@ export default {
})
}
},
mounted() {
this.setScroll()
}
}
</script>
@@ -276,7 +276,7 @@ export default {
validateTrigger: 'blur'
},
invoiceFileId: {
rules: [{ required: true, message: '请上传发票附件' }],
rules: [{ required: false, message: '请上传发票附件' }],
validateTrigger: 'change'
}
},
@@ -144,7 +144,7 @@
<a @click="handleEdit(record)" v-has:[authorCode.edit]="'committeeMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has:[authorCode.delete]="'committeeMeeting:delete'">删除</a>
<!-- 标协会议(标准宣贯、学习培训 且需要问题征集)的时候 有问题征集 功能-->
<a v-if="meetingType === '2'" v-show="(record.tbMeetingType === 1 || record.tbMeetingType === 2) && Number(record.isAddQuestion)" @click="problemCollectionDetail(record)" v-has="'standardsMeeting:problemCollection'">问题征集</a>
<a v-if="meetingType === '2'" v-show="(record.tbMeetingType === 1 || record.tbMeetingType === 2) && Number(record.isAddQuestion)" @click="problemCollectionDetail(record)" v-has="'standardsMeeting:problemCollection:button'">问题征集</a>
</span>
</a-table>
</div>