|
|
|
|
@ -1,15 +1,6 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<xy-dialog :is-show.sync="isShow" title="合同签订" type="form" :form="form" :rules="rules" @submit="sign" ok-text="提交">
|
|
|
|
|
<template v-slot:extraFormTop>
|
|
|
|
|
<div class="base-info" style="margin-bottom: 20px;">
|
|
|
|
|
<div class="base-info-title">合同信息</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">合同名称</div>
|
|
|
|
|
<div class="base-info-item-content">{{contract.name}}</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<xy-dialog :is-show.sync="isShow" :title="contract.name || '合同签订'" type="form" :form="form" :rules="rules" @submit="sign" ok-text="提交">
|
|
|
|
|
<template #is_contract>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
@ -85,33 +76,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template v-slot:is_assurance>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">是否收取履约保函
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-switch v-model="form.is_assurance" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-if="form.is_assurance" v-slot:assurance_money>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函金额
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
|
<el-input-number v-model="form.assurance_money" :controls="false" :precision="2" placeholder="请输入保函金额" style="width: 300px;"></el-input-number>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-if="form.is_assurance" v-slot:assurance_expire>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函有效期
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-date-picker value-format="yyyy-MM-dd" v-model="form.assurance_expire" placeholder="请输入保函有效期" style="width: 300px;"/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- <template v-slot:is_assurance>-->
|
|
|
|
|
<!-- <div class="xy-table-item">-->
|
|
|
|
|
<!-- <div class="xy-table-item-label" style="width: 200px">是否收取履约保函-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- <div class="xy-table-item-content">-->
|
|
|
|
|
<!-- <el-switch v-model="form.is_assurance" />-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- <template v-if="form.is_assurance" v-slot:assurance_money>-->
|
|
|
|
|
<!-- <div class="xy-table-item">-->
|
|
|
|
|
<!-- <div class="xy-table-item-label" style="width: 200px">保函金额-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- <div class="xy-table-item-content xy-table-item-price">-->
|
|
|
|
|
<!-- <el-input-number v-model="form.assurance_money" :controls="false" :precision="2" placeholder="请输入保函金额" style="width: 300px;"></el-input-number>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- <template v-if="form.is_assurance" v-slot:assurance_expire>-->
|
|
|
|
|
<!-- <div class="xy-table-item">-->
|
|
|
|
|
<!-- <div class="xy-table-item-label" style="width: 200px">保函有效期-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- <div class="xy-table-item-content">-->
|
|
|
|
|
<!-- <el-date-picker value-format="yyyy-MM-dd" v-model="form.assurance_expire" placeholder="请输入保函有效期" style="width: 300px;"/>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
|
|
|
|
|
<template v-slot:guaranteeMoney>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
@ -149,24 +140,31 @@
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:extraFormBottom>
|
|
|
|
|
<div class="base-info add-plan" style="margin-top: 20px;margin-bottom: 20px">
|
|
|
|
|
<div class="base-info-title">合同关联方</div>
|
|
|
|
|
<Button type="primary" style="margin-left: 50px;" @click="form.contract_links.push({contract_id:contract.id,type_id:'',name:'',remark:''})">新增</Button>
|
|
|
|
|
<div class="base-info add-plan" style="margin-bottom: 20px;">
|
|
|
|
|
<div class="base-info-title">付款计划</div>
|
|
|
|
|
<p style="font-weight: 600;color: red;font-size: 12px;">(如需分期付款,请分条填报付款计划)</p>
|
|
|
|
|
<Button type="primary" style="margin-left: auto;" icon="md-add" @click="isShowAddPlan = true">新增计划</Button>
|
|
|
|
|
</div>
|
|
|
|
|
<xy-table :list="form.contract_links instanceof Array ? form.contract_links : []" :table-item="linkTable">
|
|
|
|
|
<template v-slot:btns></template>
|
|
|
|
|
|
|
|
|
|
<xy-table :list="signList"
|
|
|
|
|
style="min-width: 500px;"
|
|
|
|
|
:table-item="signTable"
|
|
|
|
|
:show-index="false"
|
|
|
|
|
:height="240"
|
|
|
|
|
@delete="deleteContractSign"
|
|
|
|
|
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}">
|
|
|
|
|
|
|
|
|
|
</xy-table>
|
|
|
|
|
|
|
|
|
|
<div class="base-info add-plan" style="margin-top: 20px;margin-bottom: 20px">
|
|
|
|
|
<div class="base-info-title">付款计划</div>
|
|
|
|
|
<Button type="primary" style="margin-left: 50px;" @click="isShowAddPlan = true">新增计划</Button>
|
|
|
|
|
<p style="font-weight: 600;zoom: .9;color: red;">如需分期付款,请分条填报付款计划</p>
|
|
|
|
|
<div class="base-info-title">合同关联方</div>
|
|
|
|
|
<Button type="primary" style="margin-left: 50px;" @click="form.contract_links.push({contract_id:contract.id,type_id:'',name:'',remark:''})">新增</Button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<xy-table :list="signList" :table-item="signTable" :show-index="false" :height="240"
|
|
|
|
|
@delete="deleteContractSign"
|
|
|
|
|
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}">
|
|
|
|
|
|
|
|
|
|
<xy-table
|
|
|
|
|
style="min-width: 500px;"
|
|
|
|
|
:list="form.contract_links instanceof Array ? form.contract_links : []"
|
|
|
|
|
:table-item="linkTable">
|
|
|
|
|
<template v-slot:btns></template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
@ -255,13 +253,13 @@
|
|
|
|
|
is_contract: 1,
|
|
|
|
|
number: '',
|
|
|
|
|
content: "",
|
|
|
|
|
supply: '',
|
|
|
|
|
carryDepartment: '',
|
|
|
|
|
money: '',
|
|
|
|
|
time: [],
|
|
|
|
|
guaranteeMoney: '',
|
|
|
|
|
guaranteeYear: '',
|
|
|
|
|
date: "",
|
|
|
|
|
money: '',
|
|
|
|
|
time: [],
|
|
|
|
|
supply: '',
|
|
|
|
|
carryDepartment: '',
|
|
|
|
|
is_assurance: false,
|
|
|
|
|
assurance_money:'',
|
|
|
|
|
assurance_expire:'',
|
|
|
|
|
@ -555,27 +553,7 @@
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error(err)
|
|
|
|
|
}
|
|
|
|
|
// if (res.flow["合同编号"]) this.form.number = "HT-"+res.flow["合同编号"]
|
|
|
|
|
// if (res.flow["合同金额"]) this.form.money = Number(res.flow["合同金额"])
|
|
|
|
|
// if (res.flow["合同乙方"]) this.form.supply = res.flow["合同乙方"]
|
|
|
|
|
// if (res.flow["合同主要内容"]) this.form.content = res.flow["合同主要内容"]
|
|
|
|
|
},
|
|
|
|
|
//获取oa合同信息
|
|
|
|
|
// async getOaContractInfo() {
|
|
|
|
|
// try {
|
|
|
|
|
// let res = await getOatoken()
|
|
|
|
|
// let url =
|
|
|
|
|
// `${process.env.VUE_APP_OUT_URL}/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${res.oatoken}&get_raw=1`
|
|
|
|
|
// const oaInfo = await axios.get(url)
|
|
|
|
|
// this.form.money = Number(oaInfo.data.flow['合同金额(元)'])
|
|
|
|
|
// this.form.number = oaInfo.data.flow['合同编号']
|
|
|
|
|
// this.form.supply = oaInfo.data.flow['承包商\\供应商']
|
|
|
|
|
// this.form.carryDepartment = oaInfo.data.flow['执行部门']
|
|
|
|
|
// } catch {
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
async isShow(val) {
|
|
|
|
|
@ -594,6 +572,9 @@
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
::v-deep .el-form-item {
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
}
|
|
|
|
|
.base-info {
|
|
|
|
|
|
|
|
|
|
&-title {
|
|
|
|
|
|