[update] 支出合同变更

This commit is contained in:
zhaoxiao
2021-12-15 10:10:32 +08:00
parent d0b052614f
commit 5c4db61396
7 changed files with 132 additions and 71 deletions
+4 -1
View File
@@ -93,6 +93,8 @@ const getPrintPostContactByMailId = (param) => getAction('/mail/payMailBill/prin
const getUserByDepartCode = (param) => getAction('/statistics/allProjectStatistics/listForUserByOrgCode', param) const getUserByDepartCode = (param) => getAction('/statistics/allProjectStatistics/listForUserByOrgCode', param)
// 收入合同--作废 // 收入合同--作废
const cancellationContract = (param) => postAction('/contract/payIncomeContract/cancellation', param) const cancellationContract = (param) => postAction('/contract/payIncomeContract/cancellation', param)
// 支出合同--作废
const cancellationExpenditureContract = (param) => postAction('/contract/paySpendingContract/cancellation', param)
export { export {
getWorkingGroupById, getWorkingGroupById,
@@ -140,5 +142,6 @@ export {
getAllRevenueContract, getAllRevenueContract,
getPrintPostContactByMailId, getPrintPostContactByMailId,
getUserByDepartCode, getUserByDepartCode,
cancellationContract cancellationContract,
cancellationExpenditureContract
} }
@@ -134,29 +134,29 @@
</div> </div>
<a-empty v-else></a-empty> <a-empty v-else></a-empty>
</div> </div>
<a-divider></a-divider> <!-- <a-divider></a-divider>-->
<!-- 审核记录--> <!-- 审核记录-->
<div> <!-- <div>-->
<div class="part-title"> <!-- <div class="part-title">-->
<div class="part-title-text">审核记录</div> <!-- <div class="part-title-text">审核记录</div>-->
</div> <!-- </div>-->
<div class="aduit-text" v-if="detailData.listAudit && detailData.listAudit.length > 0"> <!-- <div class="aduit-text" v-if="detailData.listAudit && detailData.listAudit.length > 0">-->
<div v-for="(item, index) in detailData.listAudit" <!-- <div v-for="(item, index) in detailData.listAudit"-->
:key="index"> <!-- :key="index">-->
<a-row> <!-- <a-row>-->
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>-->
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>-->
<!-- 待存档文字替换--> <!-- &lt;!&ndash; 待存档文字替换&ndash;&gt;-->
<a-col :sm="6" :xs="24"> <!-- <a-col :sm="6" :xs="24">-->
{{ item.contractStatus_dictText === '待存档' ? '审核通过' : item.contractStatus_dictText }} <!-- {{ item.contractStatus_dictText === '待存档' ? '审核通过' : item.contractStatus_dictText }}-->
</a-col> <!-- </a-col>-->
<a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col>-->
</a-row> <!-- </a-row>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<a-empty v-else></a-empty> <!-- <a-empty v-else></a-empty>-->
</div> <!-- </div>-->
<!-- 状态非已存档显示--> <!-- 状态非已存档显示-->
<template v-if="detailData.status < 5"> <template v-if="detailData.status < 5">
@@ -170,17 +170,17 @@
<a-button <a-button
type="primary" type="primary"
@click="handleEdit(detailData.id)" @click="handleEdit(detailData.id)"
v-if="detailData.status === 1 || detailData.status === 4" v-if="detailData.status === 3"
v-has="'revenueContract:edit'"> v-has="'revenueContract:edit'">
编辑 编辑
</a-button> </a-button>
<a-button <!-- <a-button-->
type="primary" <!-- type="primary"-->
@click="handleAudit(detailData.id)" <!-- @click="handleAudit(detailData.id)"-->
v-if="detailData.status === 2" <!-- v-if="detailData.status === 2"-->
v-has="'expenditureContract:aduit'"> <!-- v-has="'expenditureContract:aduit'">-->
审核 <!-- 审核-->
</a-button> <!-- </a-button>-->
<a-button <a-button
type="primary" type="primary"
@click="handleArchive(detailData.id)" @click="handleArchive(detailData.id)"
@@ -310,11 +310,14 @@ export default {
return this.otherInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || [] return this.otherInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
} }
}, },
mounted() { created() {
this.initDetailData(this.$route.query.revenueId) this.initDetailData()
}, },
methods: { methods: {
initDetailData() { initDetailData() {
if (!this.$route.query.revenueId) {
return
}
this.loading = true this.loading = true
let param = { let param = {
id: this.$route.query.revenueId id: this.$route.query.revenueId
@@ -324,8 +327,9 @@ export default {
this.detailData = res.result this.detailData = res.result
// this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : '' // this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : ''
} else { } else {
//TODO 别的页面会调这边的接口,所以把异常给关了
// 添加异常判断,防止消息进入详情无法正常获取数据造成卡死及控制台报错 // 添加异常判断,防止消息进入详情无法正常获取数据造成卡死及控制台报错
this.$message.warn(res.message) console.log(res.message)
} }
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false
@@ -121,6 +121,9 @@
v-has="'expenditureContract:delete'" v-has="'expenditureContract:delete'"
v-if="record.status === 6">删除</a> v-if="record.status === 6">删除</a>
<a :disabled="true" v-if="record.status === 5">已存档</a> <a :disabled="true" v-if="record.status === 5">已存档</a>
<!-- 待存档、已存档-->
<a v-if="record.status === 3 || record.status === 5" @click="handleCancellation(record)"
v-has="'expenditureContract:cancellation'">作废</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -136,7 +139,7 @@ import IconImg from '@assets/imgs/icon/icon_revenue_contract.png'
import { JeroListMixin } from '../../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin'
import { RangeDateMixin } from '../../../mixins/RangeDateMixin' import { RangeDateMixin } from '../../../mixins/RangeDateMixin'
import JDate from '../../../components/tools/JDate' import JDate from '../../../components/tools/JDate'
import { archiveExpenditureContract } from '../../../api/incomePaymentsApi' import { archiveExpenditureContract, cancellationExpenditureContract } from '../../../api/incomePaymentsApi'
import RevenueContractAduitModule from '../revenueContract/modules/RevenueContractAduitModule' import RevenueContractAduitModule from '../revenueContract/modules/RevenueContractAduitModule'
export default { export default {
@@ -308,6 +311,35 @@ export default {
}) })
} }
}) })
},
/**
* 合同作废
* @param record
*/
handleCancellation(record) {
let that = this
this.$confirm({
title: '作废',
content: '确认作废?',
onOk: function () {
that.loading = true
that.loading = false
let param = {
contractId: record.id
}
cancellationExpenditureContract(param).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.loadData()
that.onClearSelected()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.loading = false
})
}
})
} }
} }
} }
@@ -15,6 +15,7 @@
<a-input placeholder="请输入合同编号" <a-input placeholder="请输入合同编号"
v-decorator="['contractNum',validatorRules.contractNum]" v-decorator="['contractNum',validatorRules.contractNum]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -23,6 +24,7 @@
<a-input placeholder="请输入合同名称" <a-input placeholder="请输入合同名称"
v-decorator="['contractName',validatorRules.contractName]" v-decorator="['contractName',validatorRules.contractName]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -31,6 +33,7 @@
<a-input placeholder="请输入签订单位" <a-input placeholder="请输入签订单位"
v-decorator="['signedCompanyTemporaryName',validatorRules.signedCompanyTemporaryName]" v-decorator="['signedCompanyTemporaryName',validatorRules.signedCompanyTemporaryName]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -39,6 +42,7 @@
<a-input placeholder="请输入签订联系人" <a-input placeholder="请输入签订联系人"
v-decorator="['signedContactsTemporaryName',validatorRules.signedContactsTemporaryName]" v-decorator="['signedContactsTemporaryName',validatorRules.signedContactsTemporaryName]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -46,6 +50,7 @@
<a-form-item label="是否开口" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="是否开口" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['opening']" <j-dict-select-tag v-decorator="['opening']"
:triggerChange="true" :triggerChange="true"
:disabled="canEdit"
placeholder="请选择是否开口" placeholder="请选择是否开口"
dictCode="yn"/> dictCode="yn"/>
</a-form-item> </a-form-item>
@@ -53,6 +58,7 @@
<a-col :xxl="6" :xl="8" :sm="12"> <a-col :xxl="6" :xl="8" :sm="12">
<a-form-item label="负责人" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-principal placeholder="请选择负责人" <select-principal placeholder="请选择负责人"
:disabled="canEdit"
v-decorator="['principalId',validatorRules.principalId]" v-decorator="['principalId',validatorRules.principalId]"
@change="principalChange"></select-principal> @change="principalChange"></select-principal>
</a-form-item> </a-form-item>
@@ -69,6 +75,7 @@
<a-input placeholder="请输入签订合同总金额" <a-input placeholder="请输入签订合同总金额"
v-decorator="['contractAmount',validatorRules.contractAmount]" v-decorator="['contractAmount',validatorRules.contractAmount]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@blur="addZero" @blur="addZero"
@change="contractAmountChange"></a-input> @change="contractAmountChange"></a-input>
</a-form-item> </a-form-item>
@@ -80,6 +87,7 @@
<a-input placeholder="请输入税率" <a-input placeholder="请输入税率"
v-decorator="['rate',validatorRules.rate]" v-decorator="['rate',validatorRules.rate]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="rateChange"></a-input> @change="rateChange"></a-input>
</a-col> </a-col>
<a-col :span="1">%</a-col> <a-col :span="1">%</a-col>
@@ -91,6 +99,7 @@
<a-input placeholder="请输入未税金额" <a-input placeholder="请输入未税金额"
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]" v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@blur="addZero" @blur="addZero"
@change="noTaxChange"></a-input> @change="noTaxChange"></a-input>
</a-form-item> </a-form-item>
@@ -111,6 +120,7 @@
style="width: 100%;" style="width: 100%;"
v-decorator="['contractDate']" v-decorator="['contractDate']"
:trigger-change="true" :trigger-change="true"
:disabled="canEdit"
date-format="YYYY-MM-DD"/> date-format="YYYY-MM-DD"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -120,6 +130,7 @@
style="width: 100%;" style="width: 100%;"
v-decorator="['terminationDate']" v-decorator="['terminationDate']"
:trigger-change="true" :trigger-change="true"
:disabled="canEdit"
date-format="YYYY-MM-DD"/> date-format="YYYY-MM-DD"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -129,6 +140,7 @@
<a-textarea placeholder="请输入合同约定主要时点" <a-textarea placeholder="请输入合同约定主要时点"
v-decorator="['contractTimePoints',validatorRules.contractTimePoints]" v-decorator="['contractTimePoints',validatorRules.contractTimePoints]"
:maxLength='200' :maxLength='200'
:disabled="canEdit"
autosize autosize
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-textarea> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-textarea>
</a-form-item> </a-form-item>
@@ -149,6 +161,7 @@
<a-input placeholder="请输入应付金额" <a-input placeholder="请输入应付金额"
v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]" v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@blur="addZero" @blur="addZero"
@change="accountsReceivableChange"></a-input> @change="accountsReceivableChange"></a-input>
</a-form-item> </a-form-item>
@@ -158,6 +171,7 @@
<a-input placeholder="请输入已付金额" <a-input placeholder="请输入已付金额"
v-decorator="['amountReceived',validatorRules.amountReceived]" v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@blur="addZero" @blur="addZero"
@change="amountReceivedChange"></a-input> @change="amountReceivedChange"></a-input>
</a-form-item> </a-form-item>
@@ -197,6 +211,7 @@
<a-input placeholder="请输入合同约定付款次数" <a-input placeholder="请输入合同约定付款次数"
v-decorator="['contractPaymentTimes']" v-decorator="['contractPaymentTimes']"
:maxLength='50' :maxLength='50'
:disabled="canEdit"
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -345,6 +360,19 @@ export default {
} }
} }
}, },
computed: {
canEdit() {
// 待存档、草稿不限制
if (this.model.status === 3) {
return false
}
// 已存档
if (this.model.status === 5) {
return true
}
return false
}
},
mounted() { mounted() {
if (this.$route.query.hasOwnProperty.call(this.$route.query, 'contractId')) { if (this.$route.query.hasOwnProperty.call(this.$route.query, 'contractId')) {
this.contractId = this.$route.query.contractId this.contractId = this.$route.query.contractId
@@ -403,16 +431,7 @@ export default {
}) })
}, },
save() { save() {
const that = this this.handleSave()
this.$confirm({
title: '提示',
content: '保存后将进入待审核状态,无法编辑,确定要保存吗 ?',
onOk() {
that.handleSave()
},
onCancel() {
},
})
}, },
/** /**
* 表单提交 * 表单提交
@@ -552,7 +571,7 @@ export default {
return return
} }
// value为undefined时清除部门名称 // value为undefined时清除部门名称
this.form.setFieldsValue({departmentName: undefined}) this.form.setFieldsValue({ departmentName: undefined })
}, },
/** /**
* 总签订金额修改 * 总签订金额修改
@@ -139,7 +139,7 @@
v-has="'revenueContract:delete'">删除</a> v-has="'revenueContract:delete'">删除</a>
<a :disabled="true" v-if="record.status === 5">已存档</a> <a :disabled="true" v-if="record.status === 5">已存档</a>
<!-- 待存档、已存档--> <!-- 待存档、已存档-->
<a v-if="record.status === 3 || record.status === 5" @click="handleCancellation(record)">作废</a> <a v-if="record.status === 3 || record.status === 5" @click="handleCancellation(record)" v-has="'revenueContract:cancellation'">作废</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -178,7 +178,7 @@ export default {
if (res.success) { if (res.success) {
this.associatedProjectDataSource = res.result this.associatedProjectDataSource = res.result
} else { } else {
this.$message.warn(res.message) console.log(res.message)
} }
}).finally(() => { }).finally(() => {
this.associatedProjectLoading = false this.associatedProjectLoading = false
@@ -144,29 +144,29 @@
</div> </div>
<a-empty v-else></a-empty> <a-empty v-else></a-empty>
</div> </div>
<a-divider></a-divider> <!-- <a-divider></a-divider>-->
<!-- 审核记录--> <!-- 审核记录-->
<div> <!-- <div>-->
<div class="part-title"> <!-- <div class="part-title">-->
<div class="part-title-text">审核记录</div> <!-- <div class="part-title-text">审核记录</div>-->
</div> <!-- </div>-->
<div class="aduit-text" v-if="detailData.listAudit && detailData.listAudit.length > 0"> <!-- <div class="aduit-text" v-if="detailData.listAudit && detailData.listAudit.length > 0">-->
<div v-for="(item, index) in detailData.listAudit" <!-- <div v-for="(item, index) in detailData.listAudit"-->
:key="index"> <!-- :key="index">-->
<a-row> <!-- <a-row>-->
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>-->
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>-->
<!-- 待存档状态文本替换--> <!-- &lt;!&ndash; 待存档状态文本替换&ndash;&gt;-->
<a-col :sm="6" :xs="24"> <!-- <a-col :sm="6" :xs="24">-->
{{ item.contractStatus_dictText === '待存档' ? '审核通过' : item.contractStatus_dictText }} <!-- {{ item.contractStatus_dictText === '待存档' ? '审核通过' : item.contractStatus_dictText }}-->
</a-col> <!-- </a-col>-->
<a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col> <!-- <a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col>-->
</a-row> <!-- </a-row>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<a-empty v-else></a-empty> <!-- <a-empty v-else></a-empty>-->
</div> <!-- </div>-->
<!-- 状态非已存档显示--> <!-- 状态非已存档显示-->
<template v-if="detailData.status < 5"> <template v-if="detailData.status < 5">
@@ -315,9 +315,11 @@ export default {
return this.otherInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || [] return this.otherInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
} }
}, },
mounted() { created() {
this.initDetailData(this.$route.query.revenueId) this.initDetailData(this.$route.query.revenueId)
this.$refs.associatedProject.loadAssociatedProject() this.$nextTick(() => {
this.$refs.associatedProject.loadAssociatedProject()
})
}, },
methods: { methods: {
initDetailData() { initDetailData() {
@@ -333,8 +335,9 @@ export default {
this.detailData = res.result this.detailData = res.result
this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : '' this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : ''
} else { } else {
//TODO 别的页面会调这边的接口,所以把异常给关了
// 添加异常判断,防止消息进入详情无法正常获取数据造成卡死及控制台报错 // 添加异常判断,防止消息进入详情无法正常获取数据造成卡死及控制台报错
this.$message.warn(res.message) console.log(res.message)
} }
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false