刘翔宇-旅管家 4 years ago
parent 4d93802cee
commit 39ca7ee65e

@ -175,7 +175,8 @@
</div> </div>
</template> </template>
<script> <script>
import { MessageBox } from 'element-ui';
import { import {
addContractSign, addContractSign,
getContractSign, getContractSign,
@ -325,6 +326,15 @@
methods: { methods: {
// //
sign() { sign() {
console.log(this.signList)
console.log(this.signList.length)
if (this.signList.length == 0) {
Message({
type: 'error',
message: '该项目未设置付款计划,请设置付款计划后保存'
})
return false;
}
editorContract({ editorContract({
id: this.contractId, id: this.contractId,
@ -384,6 +394,7 @@
}, },
submit() { submit() {
console.log(this.planForm) console.log(this.planForm)
addContractSign({ addContractSign({
contract_id: this.contract.id, contract_id: this.contract.id,
date: `${new Date(this.planForm.date).getFullYear()}-${new Date(this.planForm.date).getMonth()+1}-${new Date(this.planForm.date).getDate()}`, date: `${new Date(this.planForm.date).getFullYear()}-${new Date(this.planForm.date).getMonth()+1}-${new Date(this.planForm.date).getDate()}`,

@ -1,243 +1,277 @@
<template> <template>
<div v-if="registration"> <div v-if="registration">
<xy-dialog title="打印预览" :is-show.sync="isShow" :width="70" @on-ok="print" ok-text=""> <xy-dialog title="打印预览" :is-show.sync="isShow" :width="70" @on-ok="print" ok-text="">
<template v-slot:normalContent> <template v-slot:normalContent>
<div class="print-table1" id="printtable1" ref="printtable"> <div class="print-table1" id="printtable1" ref="printtable">
<div class="print-table1-title">苏州市河道管理处资金划拨审批单</div> <div class="print-table1-title">苏州市河道管理处资金划拨审批单</div>
<div class="print-table1-grid"> <div class="print-table1-grid">
<div style="grid-area: tb1-1" class="print-table1-grid-top">项目名称<span style="font-weight: 600">{{registration.contract.name}}</span></div> <div style="grid-area: tb1-1" class="print-table1-grid-top">项目名称<span
<div style="grid-area: tb1-2;justify-content: center;align-items: center;flex-direction: column;" > style="font-weight: 600">{{registration.contract.name}}</span></div>
<div>本次为第 <span style="font-weight: 600;padding: 0 1vw;">{{payIndex}}</span> 次付款</div> <div>{{registration.remark}}</div></div> <div style="grid-area: tb1-2;justify-content: center;align-items: center;flex-direction: column;">
<div style="grid-area: tb2-1" class="print-table1-grid-top">承包商/供货商<span style="font-weight: 600">{{registration.contract.supply}}</span></div> <div>本次为第 <span style="font-weight: 600;padding: 0 1vw;">{{payIndex}}</span> 次付款</div>
<div style="grid-area: tb2-2" class="print-table1-grid-top">合同服务时间<span style="font-weight: 600">{{registration.contract.start_date}} - {{registration.contract.end_date}}</span></div> <div>{{registration.remark}}</div>
</div>
<div style="grid-area: tb3-1" class="print-table1-grid-title1">付款情形</div> <div style="grid-area: tb2-1" class="print-table1-grid-top">承包商/供货商<span
<div style="grid-area: tb3-2" class="print-table1-grid-title1">金额单位</div> style="font-weight: 600">{{registration.contract.supply}}</span></div>
<div style="grid-area: tb3-3" class="print-table1-grid-title1">备注</div> <div style="grid-area: tb2-2" class="print-table1-grid-top">合同服务时间<span
style="font-weight: 600">{{registration.contract.start_date}} -
<div style="grid-area: tb4-1" class="print-table1-grid-center">A</div> {{registration.contract.end_date}}</span></div>
<div style="grid-area: tb4-2" class="print-table1-grid-center">合同金额</div>
<div style="grid-area: tb4-3" class="print-table1-grid-center">{{priceFormat(registration.contract.money)}}</div> <div style="grid-area: tb3-1" class="print-table1-grid-title1">付款情形</div>
<div style="grid-area: tb4-4"></div> <div style="grid-area: tb3-2" class="print-table1-grid-title1">金额单位</div>
<div style="grid-area: tb5-1" class="print-table1-grid-center">B</div> <div style="grid-area: tb3-3" class="print-table1-grid-title1">备注</div>
<div style="grid-area: tb5-2" class="print-table1-grid-center">审计金额</div>
<div style="grid-area: tb5-3"></div> <div style="grid-area: tb4-1" class="print-table1-grid-center">A</div>
<div style="grid-area: tb5-4"></div> <div style="grid-area: tb4-2" class="print-table1-grid-center">合同金额</div>
<div style="grid-area: tb6-1" class="print-table1-grid-center">C</div> <div style="grid-area: tb4-3" class="print-table1-grid-center">{{priceFormat(registration.contract.money)}}
<div style="grid-area: tb6-2" class="print-table1-grid-center">前期累计已支付</div> </div>
<div style="grid-area: tb6-3" class="print-table1-grid-center">{{priceFormat(registration.total_act_money)}}</div> <div style="grid-area: tb4-4"></div>
<div style="grid-area: tb6-4"></div> <div style="grid-area: tb5-1" class="print-table1-grid-center">B</div>
<div style="grid-area: tb7-1" class="print-table1-grid-center">D</div> <div style="grid-area: tb5-2" class="print-table1-grid-center">审计金额</div>
<div style="grid-area: tb7-2" class="print-table1-grid-center">本期扣款</div> <div style="grid-area: tb5-3"></div>
<div style="grid-area: tb7-3" class="print-table1-grid-center">{{priceFormat(registration.discount_money)}}</div> <div style="grid-area: tb5-4"></div>
<div style="grid-area: tb7-4"></div> <div style="grid-area: tb6-1" class="print-table1-grid-center">C</div>
<div style="grid-area: tb8-1" class="print-table1-grid-center">E</div> <div style="grid-area: tb6-2" class="print-table1-grid-center">前期累计已支付</div>
<div style="grid-area: tb8-2;font-weight: 600" class="print-table1-grid-center">本期应付款</div> <div style="grid-area: tb6-3" class="print-table1-grid-center">{{priceFormat(registration.total_act_money)}}
<div style="grid-area: tb8-3;font-weight: 600" class="print-table1-grid-center">{{priceFormat(registration.apply_money)}}</div> </div>
<div style="grid-area: tb8-4;padding-left: 0.6vw;display: block;"> <div style="grid-area: tb6-4"></div>
<div style="display: flex;align-items: center;"> <div style="grid-area: tb7-1" class="print-table1-grid-center">D</div>
<div><span v-if="registration.type == '进度款'"></span></div> <div style="grid-area: tb7-2" class="print-table1-grid-center">本期扣款</div>
<div style="padding-left: 2vw"><span v-if="registration.type == '结算款'"></span></div> <div style="grid-area: tb7-3" class="print-table1-grid-center">{{priceFormat(registration.discount_money)}}
</div> </div>
<div style="display: flex;align-items: center;"> <div style="grid-area: tb7-4"></div>
<div><span v-if="registration.type == '质保金'"></span></div> <div style="grid-area: tb8-1" class="print-table1-grid-center">E</div>
<div style="height: 1.8vw;min-width: 6vw;border-bottom: 2px #000 solid;margin-left: 2vw;font-size: 15px;"> <div style="grid-area: tb8-2;font-weight: 600" class="print-table1-grid-center">本期应付款</div>
<span v-if="registration.type!='进度款'&&registration.type!='质保金'&&registration.type!='结算款'"> {{registration.type}} </span> <div style="grid-area: tb8-3;font-weight: 600" class="print-table1-grid-center">
</div> {{priceFormat(registration.apply_money)}}</div>
<div>其他</div> <div style="grid-area: tb8-4;padding-left: 0.6vw;display: block;">
</div> <div style="display: flex;align-items: center;">
</div> <div><span v-if="registration.type == '进度款'"></span></div>
<div style="grid-area: tb9-1" class="print-table1-grid-center">F</div> <div style="padding-left: 2vw"><span v-if="registration.type == '结算款'"></span></div>
<div style="grid-area: tb9-2" class="print-table1-grid-center">累计支付</div> </div>
<div style="grid-area: tb9-3" class="print-table1-grid-center">{{priceFormat(Number(registration.total_act_money)+Number(registration.apply_money))}}</div> <div style="display: flex;align-items: center;">
<div style="grid-area: tb9-4"></div> <div><span v-if="registration.type == '质保金'"></span></div>
<div style="grid-area: tb10-1" class="print-table1-grid-center">G</div> <div
<div style="grid-area: tb10-2" class="print-table1-grid-center">累计扣款</div> style="height: 1.8vw;min-width: 6vw;border-bottom: 2px #000 solid;margin-left: 2vw;font-size: 15px;">
<div style="grid-area: tb10-3" class="print-table1-grid-center">{{priceFormat(Number(registration.total_discount_money)+Number(registration.discount_money))}}</div> <span v-if="registration.type!='进度款'&&registration.type!='质保金'&&registration.type!='结算款'">
<div style="grid-area: tb10-4"></div> {{registration.type}} </span>
<div style="grid-area: tb11-1" class="print-table1-grid-center">H</div> </div>
<div style="grid-area: tb11-2" class="print-table1-grid-center">质保金</div> <div>其他</div>
<div style="grid-area: tb11-3;align-items: center;">{{guaranteeRate(registration.contract.guarantee_money,registration.contract.money)}}%质保期{{registration.contract.guarantee_year}}需审计的以审计价为计费依据</div> </div>
</div>
<div style="grid-area: tb12" class="print-table1-grid-bottom1"> <div style="grid-area: tb9-1" class="print-table1-grid-center">F</div>
资金列支渠道{{moneyWayFormat(registration.money_way_detail)}} <div style="grid-area: tb9-2" class="print-table1-grid-center">累计支付</div>
</div> <div style="grid-area: tb9-3" class="print-table1-grid-center">
{{priceFormat(Number(registration.total_act_money)+Number(registration.apply_money))}}</div>
<div style="grid-area: tb13-1;" class="print-table1-grid-bottom2"> <div style="grid-area: tb9-4"></div>
<div> <div style="grid-area: tb10-1" class="print-table1-grid-center">G</div>
<div>业务科室</div> <div style="grid-area: tb10-2" class="print-table1-grid-center">累计扣款</div>
<div style="padding-top: 1vw;"> 经办人</div> <div style="grid-area: tb10-3" class="print-table1-grid-center">
</div> {{priceFormat(Number(registration.total_discount_money)+Number(registration.discount_money))}}</div>
</div> <div style="grid-area: tb10-4"></div>
<div style="grid-area: tb13-2" class="print-table1-grid-bottom2">科室负责人</div> <div style="grid-area: tb11-1" class="print-table1-grid-center">H</div>
<div style="grid-area: tb13-3" class="print-table1-grid-bottom2">业务科室分管领导</div> <div style="grid-area: tb11-2" class="print-table1-grid-center">质保金</div>
<div style="grid-area: tb14-1;" class="print-table1-grid-bottom3">财审科</div> <div style="grid-area: tb11-3;align-items: center;">
<div style="grid-area: tb14-2;" class="print-table1-grid-bottom3">财审科分管领导</div> {{guaranteeRate(registration.contract.guarantee_money,registration.contract.money)}}%质保期{{registration.contract.guarantee_year}}需审计的以审计价为计费依据
<div style="grid-area: tb14-3;" class="print-table1-grid-bottom3">单位负责人</div> </div>
</div>
<div style="grid-area: tb12" class="print-table1-grid-bottom1">
<div style="text-align: right;padding-top: 0.3vw;font-size: 1.5vw;">打印时间{{new Date().getFullYear()}}.{{new Date().getMonth()+1}}.{{new Date().getDate()}}</div> 资金列支渠道{{moneyWayFormat(registration.money_way_detail)}}
</div> </div>
</template>
</xy-dialog> <div style="grid-area: tb13-1;" class="print-table1-grid-bottom2">
<div>
</div> <div>业务科室</div>
</template> <div style="padding-top: 1vw;"> 经办人</div>
</div>
<script> </div>
import {detailFundLog,getFundLog} from "@/api/paymentRegistration/fundLog" <div style="grid-area: tb13-2" class="print-table1-grid-bottom2">科室负责人</div>
<div style="grid-area: tb13-3" class="print-table1-grid-bottom2">业务科室分管领导</div>
import html2canvas from 'html2canvas' <div style="grid-area: tb14-1;" class="print-table1-grid-bottom3">财审科</div>
import * as printJS from "print-js"; <div style="grid-area: tb14-2;" class="print-table1-grid-bottom3">财审科分管领导</div>
import {parseTime,moneyRecovery} from "@/utils"; <div style="grid-area: tb14-3;" class="print-table1-grid-bottom3">单位负责人</div>
</div>
export default {
data() { <div style="text-align: right;padding-top: 0.3vw;font-size: 1.5vw;">
return { 打印时间{{new Date().getFullYear()}}.{{new Date().getMonth()+1}}.{{new Date().getDate()}}</div>
isShow:false, </div>
registration:null, </template>
beforeTotalMoney:0, </xy-dialog>
payIndex:1,
} </div>
}, </template>
methods: {
moneyWayFormat(arr){ <script>
let res = arr.map(item => { import {
return item.value detailFundLog,
}) getFundLog
return res.toString() } from "@/api/paymentRegistration/fundLog"
},
guaranteeRate(gua,money){ import html2canvas from 'html2canvas'
if(gua && money) return ((moneyRecovery(gua) / money) * 100).toFixed(2) import * as printJS from "print-js";
}, import {
parseTime,
async getDetailFundLog(id){ moneyRecovery
let res = await detailFundLog({id}) } from "@/utils";
this.registration = res
let res1 = await getFundLog({contract_id:this.registration.contract.id}) export default {
if(res1.data.length>0){ data() {
res1.data.map(item => { return {
this.beforeTotalMoney += Number(item.act_money) isShow: false,
}) registration: null,
this.beforeTotalMoney -= Number(this.registration.act_money) beforeTotalMoney: 0,
}else{ payIndex: 1,
this.beforeTotalMoney = 0 }
} },
methods: {
let nowIndex = res?.id moneyWayFormat(arr) {
let idList = res1.data.map(item => { let res = arr.map(item => {
return item.id return item.value
}) })
return res.toString()
// },
idList.sort((a, b) => { guaranteeRate(gua, money) {
return a - b; if (gua && money) return ((moneyRecovery(gua) / money) * 100).toFixed(2)
}) },
console.log("nowIndex",nowIndex) async getDetailFundLog(id) {
console.log("idList",idList) let res = await detailFundLog({
this.payIndex = idList.indexOf(nowIndex)+1 id
}, })
this.registration = res
async print(){ let res1 = await getFundLog({
let canvas = await html2canvas(this.$refs['printtable'],{ page_size: 999,
backgroundColor:null, contract_id: this.registration.contract.id
useCORS: true, })
}) if (res1.data.length > 0) {
printJS({ res1.data.map(item => {
printable: canvas.toDataURL(), this.beforeTotalMoney += Number(item.act_money)
type: 'image', })
documentTitle: '苏州市河道管理处资金划拨审批单', this.beforeTotalMoney -= Number(this.registration.act_money)
style:'@page{margin:auto;}' } else {
}) this.beforeTotalMoney = 0
} }
},
computed:{ let nowIndex = res?.id
dateFormat(){ let idList = res1.data.map(item => {
return function (date){ return item.id
return parseTime(new Date(date)) })
}
}, //
priceFormat(){ idList.sort((a, b) => {
return function (price){ return a - b;
return Number(price).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,') })
}
} console.log("nowIndex", nowIndex)
} console.log("idList", idList)
} this.payIndex = idList.indexOf(nowIndex) + 1
</script> },
<style scoped lang="scss"> async print() {
.print-table1{ let canvas = await html2canvas(this.$refs['printtable'], {
box-sizing: border-box; backgroundColor: null,
&-title{ useCORS: true,
font-size: 2vw; })
letter-spacing: 2px; printJS({
text-align: center; printable: canvas.toDataURL(),
font-weight: 600; type: 'image',
border: none; documentTitle: '苏州市河道管理处资金划拨审批单',
style: '@page{margin:auto;}'
padding: 1.6vw 0; })
} }
},
&-grid{ computed: {
font-size: 1.75vw; dateFormat() {
border: 1px #000 solid; return function(date) {
display: grid; return parseTime(new Date(date))
grid-template-rows: repeat(14,auto); }
grid-template-columns: repeat(6,1fr); },
grid-template-areas: priceFormat() {
"tb1-1 tb1-1 tb1-1 tb1-2 tb1-2 tb1-2" return function(price) {
"tb2-1 tb2-1 tb2-1 tb2-2 tb2-2 tb2-2" return Number(price).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
"tb3-1 tb3-1 tb3-2 tb3-2 tb3-3 tb3-3" }
"tb4-1 tb4-2 tb4-3 tb4-3 tb4-4 tb4-4" }
"tb5-1 tb5-2 tb5-3 tb5-3 tb5-4 tb5-4" }
"tb6-1 tb6-2 tb6-3 tb6-3 tb6-4 tb6-4" }
"tb7-1 tb7-2 tb7-3 tb7-3 tb7-4 tb7-4" </script>
"tb8-1 tb8-2 tb8-3 tb8-3 tb8-4 tb8-4"
"tb9-1 tb9-2 tb9-3 tb9-3 tb9-4 tb9-4" <style scoped lang="scss">
"tb10-1 tb10-2 tb10-3 tb10-3 tb10-4 tb10-4" .print-table1 {
"tb11-1 tb11-2 tb11-3 tb11-3 tb11-3 tb11-3" box-sizing: border-box;
"tb12 tb12 tb12 tb12 tb12 tb12"
"tb13-1 tb13-1 tb13-2 tb13-2 tb13-3 tb13-3" &-title {
"tb14-1 tb14-1 tb14-2 tb14-2 tb14-3 tb14-3"; font-size: 2vw;
letter-spacing: 2px;
&>div{ text-align: center;
border: 1px #000 solid; font-weight: 600;
display: flex; border: none;
} padding: 1.6vw 0;
&-top{ }
padding: 0.4vw 0 3.6vw 0.4vw; &-grid {
} font-size: 1.75vw;
&-title1{ border: 1px #000 solid;
text-align: center; display: grid;
justify-content: center; grid-template-rows: repeat(14, auto);
grid-template-columns: repeat(6, 1fr);
padding: 0.2vw 0; grid-template-areas:
} "tb1-1 tb1-1 tb1-1 tb1-2 tb1-2 tb1-2"
&-center{ "tb2-1 tb2-1 tb2-1 tb2-2 tb2-2 tb2-2"
text-align: center; "tb3-1 tb3-1 tb3-2 tb3-2 tb3-3 tb3-3"
justify-content: center; "tb4-1 tb4-2 tb4-3 tb4-3 tb4-4 tb4-4"
align-items: center; "tb5-1 tb5-2 tb5-3 tb5-3 tb5-4 tb5-4"
"tb6-1 tb6-2 tb6-3 tb6-3 tb6-4 tb6-4"
padding: 1vw 0; "tb7-1 tb7-2 tb7-3 tb7-3 tb7-4 tb7-4"
} "tb8-1 tb8-2 tb8-3 tb8-3 tb8-4 tb8-4"
&-bottom1{ "tb9-1 tb9-2 tb9-3 tb9-3 tb9-4 tb9-4"
"tb10-1 tb10-2 tb10-3 tb10-3 tb10-4 tb10-4"
padding: 0.4vw 0 4vw 0.4vw; "tb11-1 tb11-2 tb11-3 tb11-3 tb11-3 tb11-3"
} "tb12 tb12 tb12 tb12 tb12 tb12"
&-bottom2{ "tb13-1 tb13-1 tb13-2 tb13-2 tb13-3 tb13-3"
"tb14-1 tb14-1 tb14-2 tb14-2 tb14-3 tb14-3";
padding: 0.4vw 0 4vw 0.4vw;
} &>div {
&-bottom3{ border: 1px #000 solid;
display: flex;
padding: 0.4vw 0 6vw 0.4vw;
} }
}
} &-top {
padding: 0.4vw 0 3.6vw 0.4vw;
}
&-title1 {
text-align: center;
justify-content: center;
padding: 0.2vw 0;
}
&-center {
text-align: center;
justify-content: center;
align-items: center;
padding: 1vw 0;
}
&-bottom1 {
padding: 0.4vw 0 4vw 0.4vw;
}
&-bottom2 {
padding: 0.4vw 0 4vw 0.4vw;
}
&-bottom3 {
padding: 0.4vw 0 6vw 0.4vw;
}
}
}
</style> </style>

Loading…
Cancel
Save