lynn 5 months ago
commit 5adb0da08b

@ -13,7 +13,7 @@
<template v-slot:number>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同编号
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>合同编号
</div>
<div class="xy-table-item-content">
<el-input v-model="form.number" placeholder="请填写合同编号" style="width: 300px;" />
@ -67,7 +67,7 @@
<div class="xy-table-item-label" style="width: 200px">是否收取履约保函
</div>
<div class="xy-table-item-content">
<el-switch v-model="form.is_assurance" />
<el-switch style="width: 300px" v-model="form.is_assurance" />
</div>
</div>
</template>
@ -141,45 +141,29 @@
<template v-if="contract.is_contract===1" v-slot:other_tender_name>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>其他投标单位名称
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>其他投标单位
</div>
<div class="xy-table-item-content ">
<el-input v-model="form.other_tender_name" placeholder="请填写其他投标单位名称"
style="width: 300px;" />
</div>
</div>
</template>
<template v-if="contract.is_contract===1 && contract.is_end===1" v-slot:project_end_time>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>项目完成竣工时间
</div>
<div class="xy-table-item-content">
<el-date-picker v-model="form.project_end_time" style="width: 300px;" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" />
</div>
</div>
</template>
<template v-if="contract.is_contract===1 && contract.is_end===1" v-slot:is_acceptance>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>是否验收
</div>
<div class="xy-table-item-content">
<el-select v-model="form.is_acceptance" placeholder="请选择">
<el-option
v-for="item in [{id:0,value:'否'},{id:1,value:'是'}]"
:key="item.id"
:label="item.value"
:value="item.id">
</el-option>
</el-select>
<el-button type="primary" style="margin-bottom:10px" size="small" @click="addRow"></el-button>
<div class="other_tender_name_input" v-for="(item,index) in form.other_tender_name">
<el-input placeholder="请输入" style="width:200px;margin-right:10px" v-model="form.other_tender_name[index]"></el-input>
<!-- <el-popconfirm confirm-button-text="" cancel-button-text="" style="margin:0 10px"
@confirm="delRow(index)" title="确认删除该条?">
<el-button type="danger" size="small" slot="reference">删除</el-button>
</el-popconfirm> -->
<Poptip confirm
title="确认删除该条?"
@on-ok="delRow(index)">
<Button type="error">删除</Button>
</Poptip>
</div>
</div>
</div>
</template>
<template v-if="contract.is_contract===1" v-slot:quotation_situation>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>事前询价情况
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>事前询价情况
</div>
<div class="xy-table-item-content">
<el-input v-model="form.quotation_situation" type="textarea" placeholder="第三方造价咨询单位出具的报告或标底/供应商提供的报价"
@ -190,7 +174,7 @@
<template v-if="contract.is_contract===1" v-slot:audit_situation>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>事后审计情况
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>事后审计情况
</div>
<div class="xy-table-item-content">
<el-input v-model="form.audit_situation" type="textarea" placeholder="外部财政局或审计局审计/内部自行委托的第三方审计/未审计。"
@ -198,31 +182,61 @@
</div>
</div>
</template>
<template v-if="contract.is_contract===1 && contract.is_end===1" v-slot:change_visa_amount>
<template v-if="contract.is_contract===1" v-slot:payment_content>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>变更签证(增加内容的补充合同)金额
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同内的支付条款
</div>
<div class="xy-table-item-content ">
<el-input-number v-model="form.change_visa_amount" :controls="false" placeholder="请填写变更签证(增加内容的补充合同)金额"
<div class="xy-table-item-content">
<el-input v-model="form.payment_content" type="textarea" placeholder="合同内的支付条款"
style="width: 300px;" />
</div>
</div>
</template>
<template v-if="contract.is_contract===1" v-slot:payment_content>
<template v-if="contract.is_end===1" v-slot:project_end_time>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>项目完成竣工时间
</div>
<div class="xy-table-item-content">
<el-date-picker v-model="form.project_end_time" style="width: 300px;" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" />
</div>
</div>
</template>
<template v-if="contract.is_end===1" v-slot:is_acceptance>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>是否验收
</div>
<div class="xy-table-item-content">
<el-select v-model="form.is_acceptance" placeholder="请选择" style="width:300px">
<el-option
v-for="item in [{id:0,value:'否'},{id:1,value:'是'}]"
:key="item.id"
:label="item.value"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-if="contract.is_end===1" v-slot:change_visa_amount>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>合同内的支付条款
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>变更签证(增加内容的补充合同)金额
</div>
<div class="xy-table-item-content">
<el-input v-model="form.payment_content" type="textarea" placeholder="合同内的支付条款"
style="width: 300px;" />
<div class="xy-table-item-content xy-table-item-price">
<!-- <el-input-number v-model="form.change_visa_amount" :controls="false" placeholder="请填写变更签证(增加内容的补充合同)金额"
style="width: 300px;" /> -->
<el-input-number v-model="form.change_visa_amount" :precision="2" :controls="false" placeholder="请填写变更签证(增加内容的补充合同)金额"
style="width: 300px;" />
</div>
</div>
</template>
<template v-if="contract.contract_type !== 160" v-slot:extraFormBottom>
<div class="base-info add-plan" style="margin-top: 20px;margin-bottom: 20px">
@ -433,19 +447,20 @@
is_assurance: false,
assurance_money: '',
assurance_expire: '',
other_tender_name:'',
project_end_time:'',
is_acceptance:'',
other_tender_name:[],
quotation_situation:'',
audit_situation:'',
payment_content:'',
project_end_time:'',
is_acceptance:'',
change_visa_amount:'',
payment_content:''
},
rules: {
number: [{
required: true,
message: '必填'
}],
// number: [{
// required: true,
// message: ''
// }],
date: [{
required: true,
message: '必填'
@ -472,7 +487,24 @@
message: '必选'
}],
guaranteeMoney: [],
guaranteeYear: []
guaranteeYear: [],
// other_tender_name: [{
// required: true,
// message: ''
// }],
// quotation_situation: [{
// required: true,
// message: ''
// }],
// audit_situation: [{
// required: true,
// message: ''
// }],
// payment_content: [{
// required: true,
// message: ''
// }],
},
isShow: false,
@ -559,7 +591,13 @@
this.planMonthLists()
},
//
addRow() {
this.form.other_tender_name.push('')
},
delRow(obj, index) {
this.form.other_tender_name.splice(index, 1);
},
//
sign() {
{
@ -580,7 +618,51 @@
})
return
}
console.log("other",this.form.other_tender_name)
if(this.contract.is_contract===1){
if(this.form.other_tender_name.length<1){
this.$Message.warning(`请添加其他投标单位`)
return
}
if(!this.form.quotation_situation){
this.$Message.warning(`事前询价情况不能为空`)
return
}
if(!this.form.audit_situation){
this.$Message.warning(`事后审计情况不能为空`)
return
}
if(!this.form.payment_content){
this.$Message.warning(`合同内的支付条款不能为空`)
return
}
if (this.form.other_tender_name.length > 0) {
//
for (var p of this.form.other_tender_name) {
if (!p) {
this.$Message.warning(`投标单位名称不能为空,请补充或删除`)
return
}
}
}
}
if(this.contract.is_end===1){
if(!this.form.project_end_time){
this.$Message.warning(`项目完成(竣工)时间不能为空`)
return
}
if(!this.form.is_acceptance){
this.$Message.warning(`请选择是否验收`)
return
}
if(!this.form.change_visa_amount){
this.$Message.warning(`请填写变更签证(增加内容的补充合同)金额`)
return
}
}
// return
editorContract({
id: this.contractId,
number: this.form.number,
@ -656,7 +738,8 @@
this.form.guaranteeYear = res.guarantee_year
this.form.is_assurance = res.is_assurance === 1
this.form.assurance_expire = res.assurance_expire
this.form.assurance_money = res.assurance_money
this.form.assurance_money = res.assurance_money
this.form.other_tender_name = res.other_tender_name?res.other_tender_name:[]
//
if (res.contract_type !== 160) {
this.rules.guaranteeMoney = [{
@ -878,5 +961,10 @@
::v-deep .el-input__inner {
text-align: left;
}
::v-deep .other_tender_name_input{
display: flex;
align-items: center;
margin-bottom:5px
}
</style>

@ -55,8 +55,8 @@
<div class="sign-info-title">签订信息</div>
<div class="sign-info-item">
<div class="sign-info-item-title">合同金额</div>
<div class="sign-info-item-content">{{ moneyFormat(detail.money) }}</div>
<div class="sign-info-item-unit"></div>
<div class="sign-info-item-content">{{ moneyFormat(detail.money) }}</div>
<!-- <div class="sign-info-item-unit"></div> -->
</div>
<div style="display: flex;justify-content: space-between">
<div class="sign-info-item" style="flex-basis: 50%">
@ -68,6 +68,40 @@
<div class="sign-info-item-content">{{ detail.carry_department }}</div>
</div>
</div>
<div v-if='detail.is_contract===1'>
<div class="sign-info-item">
<div class="sign-info-item-title">其他投标单位</div>
<div class="sign-info-item-content">
<div v-for="item in detail.other_tender_name">{{item}}</div>
</div>
</div>
<div class="sign-info-item">
<div class="sign-info-item-title">事前询价情况</div>
<div class="sign-info-item-content">{{ detail.quotation_situation }}</div>
</div>
<div class="sign-info-item">
<div class="sign-info-item-title">事后审计情况</div>
<div class="sign-info-item-content">{{ detail.audit_situation }}</div>
</div>
<div class="sign-info-item">
<div class="sign-info-item-title">合同内的支付条款</div>
<div class="sign-info-item-content">{{ detail.payment_content }}</div>
</div>
</div>
<div v-if='detail.is_end===1'>
<div class="sign-info-item">
<div class="sign-info-item-title">项目完成竣工时间</div>
<div class="sign-info-item-content">{{detail.project_end_time}}</div>
</div>
<div class="sign-info-item">
<div class="sign-info-item-title">是否验收</div>
<div class="sign-info-item-content">{{ detail.is_acceptance }}</div>
</div>
<div class="sign-info-item">
<div class="sign-info-item-title">变更签证(增加内容的补充合同)金额</div>
<div class="sign-info-item-content">{{ moneyFormat(detail.change_visa_amount) }}</div>
</div>
</div>
</div>
<div class="pay-plan">
<div class="pay-plan-title">付款计划</div>
@ -506,12 +540,17 @@ export default {
margin-top: 5px;
&-title {
@extend .base-info-item-title;
width:160px;
}
&-content {
@extend .base-info-item-content;
width:calc(100% - 140px);
color:#000;
}
&-unit {
@extend .base-info-item-unit;
width:20px;
color:#000;
}
}
&-title + .sign-info-item {

@ -267,7 +267,6 @@
<template
v-if="(scope.row.has_charge && scope.row.req_status === 3 && scope.row.join_status === 1) || (scope.row.join_status === 1 && ((scope.row.invite_status === 3)||((scope.row.purchase_way ? scope.row.purchase_way.remark === 'false' : false) && scope.row.purchase_status === 3)) || ( scope.row.is_substitute && scope.row.join_status === 1) ) && (!scope.row.contract_category || scope.row.join_status === 1)"
>
<Button class="slot-btns-item" size="small" type="primary" @click="signProcess(scope.row)">
</Button>
</template>

@ -168,9 +168,9 @@
<printPaymentForm ref="printPaymentForm" />
<el-dialog :visible.sync="showOtherPaymentsDialog" title="同一支出记录下的其他付款记录" width="742px">
<el-table
:data="otherPayments"
height="400"
<el-table
:data="otherPayments"
height="400"
border
:show-summary="true"
:summary-method="getOtherPaymentsSummary"
@ -236,7 +236,9 @@ import printReimbursementSimple from './components/printReimbursementSimple'
import printMeetingSettlement from './components/printMeetingSettlement'
import printFundApproval from './components/printFundApproval'
import printPaymentForm from './components/printPaymentForm'
import {
getContractCategoryTemplateBaseConfig
} from '@/api/businessConfig/businessConfig'
export default {
components: {
printRegistration,
@ -333,6 +335,13 @@ export default {
)
}
},
{
label: '事务类型',
width: 120,
prop: 'contract.work_type',
align: 'center',
formatter: (row) => this.categoryIdNameMap?.[row.contract?.work_type] || ''
},
{
label: '付款申请金额(元)',
prop: 'apply_money',
@ -444,7 +453,8 @@ export default {
3: '质保金'
},
postPaymentFormDialogVisible: false,
currentPostPaymentForm: null
currentPostPaymentForm: null,
categoryIdNameMap:'',
}
},
mounted() {
@ -459,8 +469,35 @@ export default {
const type = parseInt(this.$route.path.split('_')[1])
this.type = this.is_auth = type
this.getMoneyWay()
this.getCategoryOptions();
},
methods: {
//
async getCategoryOptions() {
try {
//
const res = await getContractCategoryTemplateBaseConfig()
if (res.errcode !== undefined) {
this.$message.error(res.errmsg || '获取分类配置失败')
return
}
this.categoryIdNameMap = this.parseIdNameMap(res.map)
console.log("this.categoryIdNameMap",this.categoryIdNameMap)
} catch (error) {
console.error('获取分类配置失败:', error)
this.$message.error('获取分类配置失败')
}
},
// id-name
parseIdNameMap(list, map = {}) {
list.forEach(item => {
map[item.id] = item.name || item.value;
if (item.children && item.children.length) {
this.parseIdNameMap(item.children, map);
}
});
return map;
},
parseTime(time) {
return parseTime(new Date(time), '{y}-{m}-{d}')
},
@ -613,10 +650,10 @@ export default {
if (this.selectDate) url += '&date=' + this.selectDate
if (this.keywords) url += '&keyword=' + this.keywords
if (typeof this.status !== 'undefined') {
url += '&status=' + this.status
url += '&status=' + this.status
}
if (this.select.plan_id) {
url += '&act_plan_link_id=' + this.select.plan_id
url += '&act_plan_link_id=' + this.select.plan_id
}
url += '&is_export=' + 1
url = location.host + url

@ -165,7 +165,12 @@ export default {
})
for (let m of res.list.data) {
m.pid_info_name = m.pid_info?.name
m.pid_info_id = m.pid_info?.id
console.log('m.pid_info_name',m.pid_info_name)
}
res.list.data.sort((a,b)=>{
return b.pid_info_id - a.pid_info_id
})
this.list =
mergeTableRow({
data: res.list.data,

Loading…
Cancel
Save