|
|
|
|
@ -72,7 +72,6 @@
|
|
|
|
|
:parser="value => value.replace(/$s?|(,*)/g, '')"/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" @click="isShowPaymentRegistration = true">付款登记</Button>
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" @click="isShowAdd = true">新增</Button>
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" @click="getContracts">查询</Button>
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" ghost
|
|
|
|
|
@ -86,9 +85,18 @@
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="200" header-align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<Button type="error" size="small" @click="()=>deleteContract(scope.row.id)" ghost>删除</Button>
|
|
|
|
|
<Button type="primary" size="small" style="margin-left: 6px;" @click="isShowDetail = true">查看</Button>
|
|
|
|
|
<Button type="primary" size="small" style="margin-left: 6px;" @click="$refs['editor'].isShowEditor = true,$refs['editor'].getDetail(scope.row.id)">编辑</Button>
|
|
|
|
|
<div class="slot-btns">
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="$refs['paymentRegistration'].isShowPaymentRegistration = true,$refs['paymentRegistration'].getContract(scope.row)">付款登记</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="$refs['contractSign'].isShow = true,$refs['contractSign'].contractId = scope.row.id">签订合同</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="test">招标文件审查</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small">附件管理</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small">请示流程</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small">合同会签流程申请</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small">采购流程申请</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="error" size="small" @click="()=>deleteContract(scope.row.id)" ghost>删除</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="$refs['detailContract'].isShowDetail = true,$refs['detailContract'].getDetail(scope.row.id)">查看</Button>
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="$refs['editor'].isShowEditor = true,$refs['editor'].getDetail(scope.row.id)">编辑</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
@ -98,88 +106,6 @@
|
|
|
|
|
<Page :total="total" show-elevator @on-change="pageChange"/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- 合同详情-->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowDetail" type="normal" title="详情" class="contract-detail">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<div class="base-info">
|
|
|
|
|
<div class="base-info-title">项目基本信息</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目名称</div>
|
|
|
|
|
<div class="base-info-item-content">项目名称</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目类型</div>
|
|
|
|
|
<div class="base-info-item-content">服务</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex;justify-content: space-between;">
|
|
|
|
|
<div class="base-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="base-info-item-title">采购形式</div>
|
|
|
|
|
<div class="base-info-item-content">服务区</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="base-info-item-title">采购方式</div>
|
|
|
|
|
<div class="base-info-item-content">服务</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目预算</div>
|
|
|
|
|
<div class="base-info-item-content">50</div>
|
|
|
|
|
<div class="base-info-item-unit">(万)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">资金渠道</div>
|
|
|
|
|
<div class="base-info-item-content">部门预算</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="link-budget-plan">
|
|
|
|
|
<div class="link-budget-plan-title">关联预算计划</div>
|
|
|
|
|
<xy-table :height="260" :table-item="linkBudgetPlanTable" :show-index="false" :list="[{}]">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sign-info">
|
|
|
|
|
<div class="sign-info-title">签订信息</div>
|
|
|
|
|
<div class="sign-info-item">
|
|
|
|
|
<div class="sign-info-item-title">合同金额</div>
|
|
|
|
|
<div class="sign-info-item-content">50</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%">
|
|
|
|
|
<div class="sign-info-item-title">承包商\供应商</div>
|
|
|
|
|
<div class="sign-info-item-content">某个公司</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sign-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="sign-info-item-title">执行部门</div>
|
|
|
|
|
<div class="sign-info-item-content">信息科</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="related-processes">
|
|
|
|
|
<div class="related-processes-title">相关流程</div>
|
|
|
|
|
<div class="related-processes-item">
|
|
|
|
|
<div>采购流程查看</div>
|
|
|
|
|
<div>合同会签流程</div>
|
|
|
|
|
<div>招标审批流程</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="journal">
|
|
|
|
|
<div class="journal-title">日志</div>
|
|
|
|
|
<xy-table :height="240" :table-item="journalTable" :list="[{}]" :show-index="false">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template v-slot:footerContent>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 新增合同 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowAdd" title="新增合同" type="form" :form="form" :rules="rules" @submit="submit" ref="addContract">
|
|
|
|
|
<template v-slot:name>
|
|
|
|
|
@ -254,7 +180,7 @@
|
|
|
|
|
<div class="contract-add-plan" style="width: 300px;" @click="isShowPlan = true,getBudgets()">
|
|
|
|
|
<template v-if="form.plan.length > 0">
|
|
|
|
|
<template v-for="item in form.plan">
|
|
|
|
|
<Tag closable color="primary" @on-close="delPlan(item,'add')">{{item.label}}</Tag>
|
|
|
|
|
<Tag closable color="primary" @on-close="delPlan(item)">{{item.label}}</Tag>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
@ -291,83 +217,17 @@
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 编辑-->
|
|
|
|
|
<editor :is-show-editor.sync="isShowEditor" :purchase-type="purchaseType" :purchase-way="purchaseWay" :money-way="moneyWay" ref="editor" @success="getContracts"></editor>
|
|
|
|
|
|
|
|
|
|
<!-- 付款登记-->
|
|
|
|
|
<xy-dialog title="付款登记" :is-show.sync="isShowPaymentRegistration" type="form" class="payment-registration" :form="paymentRegistrationForm" :rules="paymentRegistrationRules">
|
|
|
|
|
<template v-slot:extraFormTop>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">受款单位</div>
|
|
|
|
|
<div class="payment-registration-row-content">受款单位</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">合同名称</div>
|
|
|
|
|
<div class="payment-registration-row-content">合同名称</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">合同金额</div>
|
|
|
|
|
<div class="payment-registration-row-content">100000</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex">
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">已付金额</div>
|
|
|
|
|
<div class="payment-registration-row-content">20000 (元)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">支付占比</div>
|
|
|
|
|
<div class="payment-registration-row-content">10%</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">已付笔数</div>
|
|
|
|
|
<div class="payment-registration-row-content">10</div>
|
|
|
|
|
<div class="payment-registration-row-content" style="color: #ff0000;padding-left: 16px;cursor: pointer;">点击查看列表</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:applyMoney>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>申请付款金额</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input placeholder="请填写付款金额" v-model="paymentRegistrationForm.applyMoney" style="width: 300px;"></Input>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:deductionMoney>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>本期扣款金额</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input placeholder="请填写扣款金额" v-model="paymentRegistrationForm.deductionMoney" style="width: 300px;"></Input>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:type>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>款项类型
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select placeholder="请选择款项类型" v-model="paymentRegistrationForm.type" style="width: 300px;"></Select>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:isLast>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>是否最后一笔</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<i-switch v-model="paymentRegistrationForm.isLast" @on-change="paymentRegistrationForm.isLast = $event" />
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:extraFormBottom>
|
|
|
|
|
<Input search enter-button="搜 索" placeholder="搜索预算计划.." />
|
|
|
|
|
<xy-table :list="[{}]" :show-index="false" :table-item="planTable" :height="240" style="margin-top: 10px;">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="使用金额" header-align="center">
|
|
|
|
|
<Input />
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
<!-- 查看-->
|
|
|
|
|
<detail ref="detailContract"></detail>
|
|
|
|
|
|
|
|
|
|
<!--付款登记-->
|
|
|
|
|
<paymentRegistration ref="paymentRegistration"></paymentRegistration>
|
|
|
|
|
|
|
|
|
|
<!-- 合同签订-->
|
|
|
|
|
<contractSign ref="contractSign"></contractSign>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -380,9 +240,15 @@ import {parseTime} from "@/utils"
|
|
|
|
|
import {Message} from "element-ui";
|
|
|
|
|
|
|
|
|
|
import editor from "./components/editorContract"
|
|
|
|
|
import detail from "./components/detailContract"
|
|
|
|
|
import paymentRegistration from "./components/paymentRegistration";
|
|
|
|
|
import contractSign from "@/views/contract/components/contractSign";
|
|
|
|
|
export default {
|
|
|
|
|
components:{
|
|
|
|
|
editor
|
|
|
|
|
editor,
|
|
|
|
|
detail,
|
|
|
|
|
paymentRegistration,
|
|
|
|
|
contractSign
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
var planPass = (rule, value, callback) => {
|
|
|
|
|
@ -521,78 +387,6 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
//合同详情
|
|
|
|
|
isShowDetail:false,
|
|
|
|
|
linkBudgetPlanTable:[
|
|
|
|
|
{
|
|
|
|
|
label:"ID",
|
|
|
|
|
sortable:false,
|
|
|
|
|
width:160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"类型",
|
|
|
|
|
width:100,
|
|
|
|
|
sortable: false,
|
|
|
|
|
customFn:()=>{
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Tag color="primary">类型一</Tag>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"项目",
|
|
|
|
|
width: 140,
|
|
|
|
|
sortable: false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"金额",
|
|
|
|
|
sortable: false
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
journalTable:[
|
|
|
|
|
{
|
|
|
|
|
label:'ID',
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"日志类型",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"日志内容",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"操作人",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"时间",
|
|
|
|
|
sortable:false
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
//付款登记
|
|
|
|
|
isShowPaymentRegistration:false,
|
|
|
|
|
paymentRegistrationForm:{
|
|
|
|
|
applyMoney:"",
|
|
|
|
|
deductionMoney:"",
|
|
|
|
|
type:"",
|
|
|
|
|
isLast:""
|
|
|
|
|
},
|
|
|
|
|
paymentRegistrationRules:{
|
|
|
|
|
applyMoney:[
|
|
|
|
|
{required:true,message:"必填"}
|
|
|
|
|
],
|
|
|
|
|
deductionMoney:[
|
|
|
|
|
{required:true,message:"必填"}
|
|
|
|
|
],
|
|
|
|
|
type:[
|
|
|
|
|
{required:true,message:"必选"}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
planTable:[
|
|
|
|
|
{
|
|
|
|
|
sortable:false,
|
|
|
|
|
@ -679,6 +473,11 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
test(){
|
|
|
|
|
let win = window.open('https://www.baidu.com', 'baidu', 'top=100,left=100,width=800,height=400')
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//翻页
|
|
|
|
|
pageChange(e){
|
|
|
|
|
this.select.pageIndex = e
|
|
|
|
|
@ -840,103 +639,16 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.payment-registration{
|
|
|
|
|
|
|
|
|
|
&-row{
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
padding: 6px 0;
|
|
|
|
|
&-title{
|
|
|
|
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
&-content{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.contract-detail{
|
|
|
|
|
|
|
|
|
|
.base-info{
|
|
|
|
|
|
|
|
|
|
&-title{
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
margin-top: 8px;
|
|
|
|
|
&-title{
|
|
|
|
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
}
|
|
|
|
|
&-content{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
&-unit{
|
|
|
|
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.link-budget-plan{
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .base-info-title;
|
|
|
|
|
|
|
|
|
|
padding-bottom: 10px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sign-info{
|
|
|
|
|
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
@extend .base-info-item;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .base-info-item-title;
|
|
|
|
|
}
|
|
|
|
|
&-content{
|
|
|
|
|
@extend .base-info-item-content;
|
|
|
|
|
}
|
|
|
|
|
&-unit{
|
|
|
|
|
@extend .base-info-item-unit;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.related-processes{
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
color: red;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
&>div{
|
|
|
|
|
flex-basis: 25%;
|
|
|
|
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.journal{
|
|
|
|
|
.slot-btns{
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
align-content: center;
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
margin: 0 6px 4px 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|