[update] 金额小数点;选择企业新增;批量打包开票金额限制

This commit is contained in:
zhaoxiao
2021-09-15 17:15:50 +08:00
parent 7d8e25036a
commit 15d7f4ca78
17 changed files with 298 additions and 91 deletions
+34 -2
View File
@@ -1,16 +1,26 @@
<template>
<div class="company-select">
<a-input @click="chooseBusiness" :value="value[valueKey]" v-bind="$attrs" :readOnly="true"></a-input>
<a-row>
<a-col :span="20">
<a-input @click="chooseBusiness" :value="value[valueKey]" v-bind="$attrs" :readOnly="true"></a-input>
</a-col>
<a-col :span="4" class="form-btn">
<a-button icon="plus" @click="addCompany"></a-button>
</a-col>
</a-row>
<business-select ref="businessSelect" @ok="handleOk" v-bind="$attrs"></business-select>
<business-management-module ref="businessAdd" @ok="addCompanyOk"></business-management-module>
</div>
</template>
<script>
import BusinessSelect from '@comp/company/BusinessSelect'
import BusinessManagementModule from '@/views/businessManagement/modules/BusinessManagementModule'
export default {
name: 'CompanySelect',
components: { BusinessSelect },
components: { BusinessSelect, BusinessManagementModule },
props: {
// 是否可以选择
isCompanyDisabled: {
@@ -52,6 +62,22 @@ export default {
companyName: value.companyName
}
this.$emit('change', company)
},
/**
* 新增企业
*/
addCompany() {
this.$refs.businessAdd.title = '新增企业'
this.$refs.businessAdd.add()
},
/**
* 接收回显
* @param value
*/
addCompanyOk(value) {
let {id, companyName} = value
console.log({id, companyName})
this.$emit('change', {id, companyName})
}
},
//2.2新增 在组件内定义 指定父组件调用时候的传值属性和事件类型
@@ -66,4 +92,10 @@ export default {
a-input:hover {
cursor: pointer;
}
.form-btn {
padding-top: 1px;
padding-left: 8px;
margin-bottom: -1px;
}
</style>
+20 -18
View File
@@ -596,28 +596,30 @@ export function isRepeat(arr) {
export function addZero(e) {
// (e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}
console.log(e)
console.log(e.target.value)
// 判断是否包含 .
let value = e.target.value
// 判断是否包含小数点
if (value.includes('.')) {
// 获取索引
let index = value.indexOf('.')
console.log('index', index)
// 小树点之前的数
let beforePointValue = value.slice(0, index + 1)
// 小数点之后的数字
let afterPointValue = value.slice(index + 1)
// 大于等于2
if (afterPointValue.length >= 2) {
e.target.value = beforePointValue + afterPointValue
if (value && value !== '') {
if (value.includes('.')) {
// 获取索引
let index = value.indexOf('.')
console.log('index', index)
// 小树点之前的数
let beforePointValue = value.slice(0, index + 1)
// 小数点之后的数字
let afterPointValue = value.slice(index + 1)
// 大于等于2
if (afterPointValue.length >= 2) {
e.target.value = beforePointValue + afterPointValue
}else {
// 不足2位补0
afterPointValue = afterPointValue.padEnd(2,'0')
e.target.value = beforePointValue + afterPointValue
}
}else {
// 不足2位补0
afterPointValue = afterPointValue.padEnd(2,'0')
e.target.value = beforePointValue + afterPointValue
// 不包括小数点
e.target.value = e.target.value + '.00'
}
}else {
// 不包括小数点
e.target.value = e.target.value + '.00'
}
}
@@ -227,7 +227,7 @@ export default {
httpAction(httpurl, formData, method).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok',formData)
that.$emit('ok',res.result)
that.close()
} else {
that.$message.warning(res.message)
@@ -68,6 +68,7 @@
<a-input placeholder="请输入签订合同总金额"
v-decorator="['contractAmount',validatorRules.contractAmount]"
:maxLength='50'
@blur="addZero"
@change="contractAmountChange"></a-input>
</a-form-item>
</a-col>
@@ -89,6 +90,7 @@
<a-input placeholder="请输入未税金额"
v-decorator="['noTaxAmount']"
:maxLength='50'
@blur="addZero"
:disabled="true"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-form-item>
@@ -146,6 +148,7 @@
<a-input placeholder="请输入应收金额"
v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
:maxLength='50'
@blur="addZero"
@change="accountsReceivableChange"></a-input>
</a-form-item>
</a-col>
@@ -154,6 +157,7 @@
<a-input placeholder="请输入已收金额"
v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50'
@blur="addZero"
@change="amountReceivedChange"></a-input>
</a-form-item>
</a-col>
@@ -161,6 +165,7 @@
<a-form-item label="未收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入未收金额"
:maxLength='50'
@blur="addZero"
v-decorator="['outstandingAmount']"
:disabled="true"></a-input>
</a-form-item>
@@ -246,6 +251,7 @@ import { postAction } from '../../../../api/manage'
import JDate from '../../../../components/tools/JDate'
import JYearDate from '../../../../components/jero/JYearDate'
import { money } from '../../../../utils/validate'
import { addZero } from '../../../../utils/util'
export default {
name: 'ExpenditureContractModule',
@@ -329,6 +335,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.title = '新建支出合同'
this.$refs.installmentForm.initInstallmentList([])
@@ -72,6 +72,7 @@
<a-input placeholder="请输入签订合同总金额"
v-decorator="['contractAmount',validatorRules.contractAmount]"
:maxLength='50'
@blur="addZero"
@change="contractAmountChange"></a-input>
</a-form-item>
</a-col>
@@ -93,6 +94,7 @@
<a-input placeholder="请输入未税金额"
v-decorator="['noTaxAmount']"
:maxLength='50'
@blur="addZero"
:disabled="true"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-form-item>
@@ -150,6 +152,7 @@
<a-input placeholder="请输入应收金额"
v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
:maxLength='50'
@blur="addZero"
@change="accountsReceivableChange"></a-input>
</a-form-item>
</a-col>
@@ -158,6 +161,7 @@
<a-input placeholder="请输入已收金额"
v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50'
@blur="addZero"
@change="amountReceivedChange"></a-input>
</a-form-item>
</a-col>
@@ -165,6 +169,7 @@
<a-form-item label="未收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入未收金额"
:maxLength='50'
@blur="addZero"
v-decorator="['outstandingAmount']"
:disabled="true"></a-input>
</a-form-item>
@@ -300,6 +305,7 @@ import SelectMeetingProjectModule from './SelectMeetingProjectModule'
import SelectMemberProjectModule from './SelectMemberProjectModule'
import { money } from '../../../../utils/validate'
import SelectWorkingGroupProjectModule from './SelectWorkingGroupProjectModule'
import { addZero } from '../../../../utils/util'
export default {
name: 'RevenueContractModule',
@@ -349,11 +355,11 @@ export default {
},
signedContactsId: {
rules: [{ required: true, message: '请选择签订联系人' }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
principalId: {
rules: [{ required: true, message: '请选择负责人' }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
contractAmount: {
rules: [{ required: true, validator: this.checkMoney }],
@@ -373,7 +379,11 @@ export default {
},
pack: {
rules: [{ required: true, message: '请选择是否打包' }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
packYear: {
rules: [{ required: true, message: '请选择打包年份' }],
validateTrigger: 'change'
}
},
url: {
@@ -410,6 +420,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.title = '新建收入合同'
this.$refs.installmentForm.initInstallmentList([])
@@ -15,6 +15,7 @@
<a-input placeholder="请输入到账金额"
v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50'
@blur="addZero"
@change="e => e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()"></a-input>
</a-form-item>
<a-form-item label="来款日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -47,6 +48,7 @@ import pick from 'lodash.pick'
import { money } from '../../../../utils/validate'
import JDate from '../../../../components/tools/JDate'
import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
import { addZero } from '../../../../utils/util'
export default {
name: 'ArriveModule',
@@ -88,6 +90,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
},
@@ -15,6 +15,7 @@
<a-input placeholder="请输入开票金额"
v-decorator="['invoiceAmount',validatorRules.invoiceAmount]"
:maxLength='50'
@blur="addZero"
@change="e => e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()"></a-input>
</a-form-item>
<a-form-item label="开票号" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -53,6 +54,7 @@ import JDate from '../../../../components/tools/JDate'
import pick from 'lodash.pick'
import { money } from '../../../../utils/validate'
import { addPayBill, addPaymentPhase, editAmountPhase, editPayBill } from '../../../../api/incomePaymentsApi'
import { addZero } from '../../../../utils/util'
export default {
name: 'InvoicingModule',
@@ -116,6 +118,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
},
@@ -70,6 +70,7 @@
<script>
import JDate from '../../../components/tools/JDate'
import { money } from '../../../utils/validate'
import { addZero } from '../../../utils/util'
export default {
name: 'BatchIncomePaymentModule',
@@ -167,14 +168,27 @@ export default {
],
dataSource: [],
inputIncomingAmount: null, // 输入的来款金额
disableMixinCreated: true
disableMixinCreated: true,
sumAmountOwed: 0, // 总欠款金额
}
},
methods: {
addZero,
getAddZero(value) {
let e = {
target: {
value: value.toString()
}
}
this.addZero(e)
return e.target.value
},
loadData() {
// 计算项目欠款信息
this.dataSource.forEach(item => {
item.amountOwed = Number(item.receivableAmount) - Number(item.paidAmount)
let amountOwed = Number(item.receivableAmount) - Number(item.paidAmount)
item.amountOwed = this.getAddZero(amountOwed)
this.sumAmountOwed += Number(item.amountOwed)
})
this.$forceUpdate()
},
@@ -190,6 +204,7 @@ export default {
this.loadData()
},
close() {
this.clearThisTimeAmount()
this.$emit('update:visible', false)
},
/**
@@ -197,8 +212,13 @@ export default {
* @param e
*/
incomingAmountBlur(e) {
this.addZero(e)
e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
this.inputIncomingAmount = Number(e.target.value)
if (this.inputIncomingAmount > this.sumAmountOwed) {
this.$message.warn('来款金额大于总欠款金额,请修改')
return
}
this.clearThisTimeAmount().then(() => {
this.calculateThisTimeAmount()
this.$forceUpdate()
@@ -211,7 +231,7 @@ export default {
clearThisTimeAmount() {
return new Promise(resolve => {
this.dataSource.forEach(item => {
item.thisIncomingAmount = null
item.thisIncomingAmount = 0.00
})
resolve()
})
@@ -229,19 +249,20 @@ export default {
if (Number(item.amountOwed) > 0) {
// 输入的来款金额是否 >= 当前项目欠款
if (this.inputIncomingAmount >= Number(item.amountOwed)) {
item.thisIncomingAmount = Number(item.amountOwed)
item.thisIncomingAmount = this.getAddZero(Number(item.amountOwed))
this.inputIncomingAmount -= Number(item.amountOwed)
// item.amountOwed = 0
} else {
// 输入的来款金额小于当前项目欠款且剩余的输入来款金额大于0,则将剩余全部来款算入当前项目的此次来款
if (this.inputIncomingAmount > 0) {
item.thisIncomingAmount = this.inputIncomingAmount
item.thisIncomingAmount = this.getAddZero(this.inputIncomingAmount)
// item.amountOwed = Number(item.amountOwed) - item.thisIncomingAmount
this.inputIncomingAmount = 0
}
}
}
})
console.log(this.dataSource)
}
,
/**
@@ -76,6 +76,7 @@
<script>
import JDate from '../../../components/tools/JDate'
import { money } from '../../../utils/validate'
import { addZero } from '../../../utils/util'
export default {
name: 'BatchInvoicingModule',
@@ -177,13 +178,31 @@ export default {
}
},
inputInvoicingAmount: null, // 输入的开票金额
sumAmountOwed: 0 // 总未开票金额
}
},
methods: {
addZero,
/**
* 获取补0的数据
* @param value
* @returns {*}
*/
getAddZero(value) {
let e = {
target: {
value: value.toString()
}
}
this.addZero(e)
return e.target.value
},
loadData() {
// 计算项目欠款信息
this.dataSource.forEach(item => {
item.amountOwed = Number(item.receivableAmount) - Number(item.paidAmount)
let amountOwed = Number(item.receivableAmount) - Number(item.paidAmount)
item.amountOwed = this.getAddZero(amountOwed)
this.sumAmountOwed += Number(item.amountOwed)
})
this.$forceUpdate()
},
@@ -191,8 +210,13 @@ export default {
* blur时分配金额
*/
invoicingAmountBlur(e) {
this.addZero(e)
e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
this.inputInvoicingAmount = Number(e.target.value)
if (this.inputInvoicingAmount > this.sumAmountOwed) {
this.$message.warn('开票金额大于总未开票金额,请修改')
return
}
this.clearThisTimeAmount().then(() => {
this.calculateThisTimeAmount()
this.$forceUpdate()
@@ -223,13 +247,13 @@ export default {
if (Number(item.amountOwed) > 0) {
// 输入的来款金额是否 >= 当前项目欠款
if (this.inputInvoicingAmount >= Number(item.amountOwed)) {
item.thisInvoicingAmount = Number(item.amountOwed)
item.thisInvoicingAmount = this.getAddZero(Number(item.amountOwed))
this.inputInvoicingAmount -= Number(item.amountOwed)
// item.amountOwed = 0
} else {
// 输入的来款金额小于当前项目欠款且剩余的输入来款金额大于0,则将剩余全部来款算入当前项目的此次来款
if (this.inputInvoicingAmount > 0) {
item.thisInvoicingAmount = this.inputInvoicingAmount
item.thisInvoicingAmount = this.getAddZero(this.inputInvoicingAmount)
// item.amountOwed = Number(item.amountOwed) - item.thisIncomingAmount
this.inputInvoicingAmount = 0
}
@@ -48,6 +48,7 @@
<a-input placeholder="请输入打包费用总计"
v-decorator="['packChargeTotal',validatorRules.packChargeTotal]"
:maxLength='50'
@blur="addZero"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-form-item>
</a-col>
@@ -107,6 +108,7 @@ import CompanySelect from '../../../components/company/CompanySelect'
import SelectContacts from '../../../components/company/SelectContacts'
import JYearDate from '../../../components/jero/JYearDate'
import { money } from '../../../utils/validate'
import { addZero } from '../../../utils/util'
export default {
name: 'PackCompanyModule',
@@ -167,6 +169,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
},
@@ -89,6 +89,7 @@
<a-input placeholder="请输入应收金额"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="1"></a-col>
@@ -177,6 +178,7 @@ import JUpload from '@comp/jero/JUpload'
import CompanySelect from '@comp/company/CompanySelect'
import SelectPrincipal from '@comp/company/SelectPrincipal'
import SelectContacts from '@comp/company/SelectContacts'
import { addZero } from '../../../utils/util'
export default {
name: 'GeneralProjectModule',
@@ -299,6 +301,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
if (this.defaultChargeWay === 2) {
@@ -20,6 +20,7 @@
<a-input placeholder="请输入本年应收款A"
v-decorator="['receivableAmount']"
:maxLength='50'
@blur="addZero"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
@@ -41,6 +42,7 @@
<a-input placeholder="请输入本年应收款B"
v-decorator="['receivableAmount']"
:maxLength='50'
@blur="addZero"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
@@ -69,6 +71,7 @@
import pick from 'lodash.pick'
import JUpload from '@/components/jero/JUpload'
import { postAction } from '@/api/manage'
import { addZero } from '../../../utils/util'
export default {
name: 'WorkingGroupMemberSetChargeNotice',
@@ -106,6 +109,7 @@ export default {
}
},
methods: {
addZero,
handleOpen() {
this.visible = true
},
@@ -112,6 +112,7 @@
<a-input placeholder="请输入应收金额"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="1"></a-col>
@@ -134,6 +135,7 @@
<a-input placeholder="请输入本年应收款A"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
@@ -155,6 +157,7 @@
<a-input placeholder="请输入本年应收款B"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
@@ -210,6 +213,7 @@ import CompanySelect from '@comp/company/CompanySelect'
import SelectContacts from '@comp/company/SelectContacts'
import { getWorkingGroupListByNotCompany } from '../../../api/incomePaymentsApi'
import { isRepeat } from '../../../utils/util'
import { addZero } from '../../../utils/util'
export default {
name: 'WorkingGroupMemberUnitModule',
@@ -283,11 +287,11 @@ export default {
},
contactsIdOne: {
rules: [{ required: true, message: '请选择企业联系人1' }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
contactsRepeat: {
rules: [{ required: false, validator: this.validateContact }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
mailContactsId: {
rules: [{ required: true, message: '请选择邮寄联系人' }],
@@ -295,7 +299,7 @@ export default {
},
chargeWay: {
rules: [{ required: true, message: '请选择来款方式' }],
validateTrigger: 'blur'
validateTrigger: 'change'
},
receivableAmount: {
rules: [{ required: true, message: '请输入应收金额' }],
@@ -331,6 +335,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
// 判断默认来款用途是否为合同(收入合同新增)
@@ -74,6 +74,7 @@
<a-input placeholder="请输入本年应收款A"
v-decorator="['yearChargeA',validatorRules.checkMoney]"
:maxLength='50'
@blur="addZero"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="4">/</a-col>
@@ -111,6 +112,7 @@
<a-input placeholder="请输入本年应收款B"
v-decorator="['yearChargeB',validatorRules.checkMoney]"
:maxLength='50'
@blur="addZero"
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
</a-col>
<a-col :span="4">/</a-col>
@@ -181,6 +183,7 @@ import JYearDate from '@comp/jero/JYearDate'
import SelectPrincipal from '@comp/company/SelectPrincipal'
import { isRepeat } from '../../../utils/util'
import { money } from '../../../utils/validate'
import { addZero } from '../../../utils/util'
export default {
name: 'WorkingGroupProjectModule',
@@ -238,6 +241,7 @@ export default {
}
},
methods: {
addZero,
add() {
this.edit({})
},
@@ -7,12 +7,12 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="来款企业" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款企业" v-model="queryParam.workGroup"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-date>
</a-form-item>
@@ -9,13 +9,13 @@
<a-row>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款单位" v-model="queryParam.contractNum"></a-input>
<a-input placeholder="请输入来款单位" v-model="queryParam.chargeCompanyTemporaryName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款项目" v-model="queryParam.contractName"></a-input>
</a-form-item>
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="来款项目" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <a-input placeholder="请输入来款项目" v-model="queryParam.projectName"></a-input>-->
<!-- </a-form-item>-->
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款用途" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -24,26 +24,26 @@
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.paymentDate"></j-year-date>
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="5" :xl="8" :lg="8" :md="8" :sm="24">
<a-form-item label="付款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.pack"
<j-dict-select-tag v-model="queryParam.inAccountStatue"
placeholder="请选择付款状态"
dictCode="yn"/>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input>
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input>
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="5" :xl="8" :lg="7" :md="8" :sm="24">
<a-form-item label="项目负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalId"></select-principal>
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalName"></select-principal>
</a-form-item>
</a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -59,7 +59,7 @@
<!-- 操作按钮区域-->
<div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('工作组来款详情')">导出</a-button>
</div>
<!-- 操作按钮区域-end-->
@@ -74,8 +74,9 @@
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:scroll="{x: 1100}"
:scroll="{x: 1000}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -92,7 +93,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" slot-scope="currentPageData" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -102,7 +103,7 @@
:dataSource="footerDataSource"
:showHeader="false"
:pagination="false"
:scroll="{x: 1100}"
:scroll="{x: 1000}"
class="j-table-force-nowrap footer-table">
<!-- 项目名称-->
@@ -129,6 +130,7 @@ import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin'
import SelectPrincipal from '../../../components/company/SelectPrincipal'
import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '../../../api/manage'
export default {
name: 'WorkingGroupPaymentStatisticsDetail',
@@ -146,7 +148,8 @@ export default {
sm: { span: 10 }
},
url: {
list: ''
list: '/project/payWorkingGroupStatistics/listSub',
exportXlsUrl: '/project/payWorkingGroupStatistics/excelSub',
},
columns: [
{
@@ -161,31 +164,31 @@ export default {
}, {
title: '项目负责人',
align: 'center',
dataIndex: 'workGroup',
dataIndex: 'principalName',
scopedSlots: { customRender: 'text' }
}, {
title: '来款单位',
align: 'center',
width: 160,
dataIndex: 'allMoney',
dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' }
}, {
title: '应收金额',
align: 'center',
width: 160,
dataIndex: 'comeAllMoney',
dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' }
}, {
title: '实收金额',
align: 'center',
width: 160,
dataIndex: 'moneyRate',
dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' }
}, {
title: '来款用途',
align: 'center',
width: 160,
dataIndex: 'chargeUse_dictText',
dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' }
}
],
@@ -207,31 +210,31 @@ export default {
}, {
title: '项目负责人',
align: 'center',
dataIndex: 'workGroup',
dataIndex: 'principalName',
scopedSlots: { customRender: 'text' }
}, {
title: '来款单位',
align: 'center',
width: 160,
dataIndex: 'allMoney',
dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' }
}, {
title: '应收金额',
align: 'center',
width: 160,
dataIndex: 'comeAllMoney',
dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' }
}, {
title: '实收金额',
align: 'center',
width: 160,
dataIndex: 'moneyRate',
dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' }
}, {
title: '来款用途',
align: 'center',
width: 160,
dataIndex: 'chargeUse_dictText',
dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' }
}
],
@@ -243,18 +246,62 @@ export default {
allMoney: '500',
comeAllMoney: '600'
}
]
],
filters: {
id: this.$route.query.workGroupId
}
}
},
mounted() {
this.setScroll()
},
methods: {
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
console.log(this.footerDataSource)
if (res.result.total) {
this.ipagination.total = res.result.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
'scroll',
() => {
@@ -288,6 +335,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -7,21 +7,21 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="工作组" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入工作组" v-model="queryParam.workGroup"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-date>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input>
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input>
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</a-form-item>
</a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -37,7 +37,7 @@
<!-- 操作按钮区域-->
<div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('工作组来款统计')">导出</a-button>
</div>
<!-- 操作按钮区域-end-->
@@ -106,6 +106,7 @@ import IconImg from '@/assets/imgs/icon/icon_statistical_report.png'
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '../../../api/manage'
export default {
name: 'WorkingGroupPaymentStatisticsList',
@@ -123,7 +124,8 @@ export default {
sm: { span: 10 }
},
url: {
list: ''
list: '/project/payWorkingGroupStatistics/list',
exportXlsUrl: '/project/payWorkingGroupStatistics/exportXls2'
},
columns: [
{
@@ -167,14 +169,7 @@ export default {
scopedSlots: { customRender: 'action' }
}
],
dataSource: [
{
id: 1,
workGroup: 'zx工作组',
allMoney: '500',
comeAllMoney: '600'
}
],
dataSource: [],
// 总计表头,与主表表头一致
columnsFooter: [
{
@@ -214,31 +209,68 @@ export default {
}
],
// 总计数据
footerDataSource: [
{
id: 1,
title: '总计',
allMoney: '500',
comeAllMoney: '600'
}
]
footerDataSource: []
}
},
mounted() {
this.setScroll()
},
methods: {
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
console.log(this.footerDataSource)
if (res.result.total) {
this.ipagination.total = res.result.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
/**
* 跳转详情
* @param id
*/
goDetail(id) {
console.log(id)
this.$router.push({
path: '/statisticalReport/workingGroupPaymentStatistics/WorkingGroupPaymentStatisticsDetail'
path: '/statisticalReport/workingGroupPaymentStatistics/WorkingGroupPaymentStatisticsDetail',
query: {
workGroupId: id
}
})
},
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
'scroll',
() => {