[update] 金额小数点;选择企业新增;批量打包开票金额限制
This commit is contained in:
@@ -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
@@ -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({})
|
||||
},
|
||||
|
||||
+2
-2
@@ -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>
|
||||
|
||||
+83
-30
@@ -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 {
|
||||
|
||||
+56
-24
@@ -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',
|
||||
() => {
|
||||
|
||||
Reference in New Issue
Block a user