刘翔宇-旅管家 3 years ago
commit 9052ad3d6f

@ -3,3 +3,4 @@ ENV = 'development'
# base api
VUE_APP_BASE_API = ''
VUE_APP_OUT_URL = http://suzhouhedaooa.langye.net

@ -10,3 +10,4 @@ export default {
name: 'App'
}
</script>

@ -0,0 +1,9 @@
import request from "@/utils/request";
export function getOatoken(params){
return request({
method:'get',
url:'/api/admin/oa/get-oa-token',
params
})
}

@ -60,8 +60,8 @@
</div>
</div>
<div class="pay-plan">
<div class="pay-plan-title"></div>
<xy-table :height="240">
<div class="pay-plan-title">付款计划</div>
<xy-table :height="240" :list="signPlan" :table-item="planTable" :show-index="false">
<template v-slot:btns>
<div></div>
</template>
@ -94,6 +94,8 @@
<script>
import {detailContract} from "@/api/contract/contract";
import {getContractSign} from "@/api/contractSign/contractSign"
import {parseTime} from "@/utils"
export default {
data() {
@ -162,12 +164,44 @@ export default {
}
}
],
signPlan:[],
planTable:[
{
prop:'date',
label:'日期',
sortable:false,
formatter:(cell,data,value)=>{
return parseTime(new Date(value),'{y}-{m}-{d}')
}
},
{
prop:'money',
label:'金额(元)',
align:'right',
sortable:false,
},
{
prop:'content',
label:'内容',
align:'left',
sortable:false,
},
{
prop:'remark',
label:'备注',
align:'left',
sortable:false,
}
]
}
},
methods: {
async getDetail(id){
let res = await detailContract({id:id})
this.detail = res
let plan = await getContractSign({contract_id:id})
this.signPlan = plan.data
},
},
@ -231,6 +265,13 @@ export default {
}
}
.pay-plan{
margin-top: 20px;
&-title{
@extend .link-budget-plan-title;
}
}
.related-processes{
margin-top: 20px;

@ -11,12 +11,6 @@
<el-input placeholder="请填写项目名称" v-model="detail.name" style="width: 300px;"/>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>项目名称</Col>-->
<!-- <Col>-->
<!-- <Input placeholder="请填写项目名称" v-model="detail.name" style="width: 300px;"/>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-slot:type>
<div class="xy-table-item">
@ -29,14 +23,6 @@
</el-select>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>项目类型</Col>-->
<!-- <Col>-->
<!-- <Select placeholder="请选择项目类型" v-model="detail.type" style="width: 300px;">-->
<!-- <Option v-for="item in [{label:'服务',value:1},{label:'货品',value:2},{label:'工程',value:3}]" :value="item.value" :key="item.value">{{ item.label }}</Option>-->
<!-- </Select>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-slot:methods>
<div class="xy-table-item">
@ -49,14 +35,6 @@
</el-select>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>采购形式</Col>-->
<!-- <Col>-->
<!-- <Select placeholder="请选择采购形式" v-model="detail.methods" style="width: 300px;">-->
<!-- <Option v-for="item in purchaseType" :value="item.id" :key="item.id">{{ item.value }}</Option>-->
<!-- </Select>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-slot:modality>
<div class="xy-table-item">
@ -69,14 +47,6 @@
</el-select>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>采购方式</Col>-->
<!-- <Col>-->
<!-- <Select placeholder="请选择采购方式" v-model="detail.modality" style="width: 300px;">-->
<!-- <Option v-for="item in purchaseWay" :value="item.id" :key="item.id">{{ item.value }}</Option>-->
<!-- </Select>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-slot:price>
<div class="xy-table-item">
@ -87,13 +57,16 @@
<el-input placeholder="请填写合同预算价" v-model="detail.price" style="width: 300px;"/>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>合同预算价</Col>-->
<!-- <Col>-->
<!-- <Input placeholder="请填写合同预算价" v-model="detail.price" style="width: 300px;"/>-->
<!-- </Col>-->
<!-- <Col offset="1"></Col>-->
<!-- </Row>-->
</template>
<template v-slot:money>
<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 xy-table-item-price">
<el-input placeholder="请填写合同金额" v-model="detail.money" style="width: 300px;"/>
</div>
</div>
</template>
<template v-slot:fundingChannels>
<div class="xy-table-item">
@ -106,14 +79,26 @@
</el-select>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>资金渠道</Col>-->
<!-- <Col>-->
<!-- <Select placeholder="请选择资金渠道" v-model="detail.fundingChannels" style="width: 300px;">-->
<!-- <Option v-for="item in moneyWay" :value="item.id" :key="item.id">{{ item.value }}</Option>-->
<!-- </Select>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-slot:supply>
<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-input placeholder="请填写供应商" v-model="detail.supply" style="width: 300px;"/>
</div>
</div>
</template>
<template v-slot:carryDepartment>
<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-input placeholder="请填写执行部门" v-model="detail.carryDepartment" style="width: 300px;"/>
</div>
</div>
</template>
<template v-slot:isBudget>
<div class="xy-table-item">
@ -124,12 +109,6 @@
<el-switch v-model="detail.isBudget"/>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>是否预算</Col>-->
<!-- <Col>-->
<!-- <i-switch v-model="detail.isBudget" @on-change="detail.isBudget = $event" />-->
<!-- </Col>-->
<!-- </Row>-->
</template>
<template v-if="detail.isBudget" v-slot:plan>
<div class="xy-table-item">
@ -149,21 +128,6 @@
</div>
</div>
</div>
<!-- <Row>-->
<!-- <Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>关联预算计划</Col>-->
<!-- <Col style="margin: auto 0;">-->
<!-- <div class="contract-add-plan" style="width: 300px;" @click="isShowPlan = true,getBudgets()">-->
<!-- <template v-if="detail.plan.length > 0">-->
<!-- <template v-for="item in detail.plan">-->
<!-- <Tag closable color="primary" @on-close="delPlan(item)">{{item.label}}</Tag>-->
<!-- </template>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- <div class="contract-add-plan-no-plan">请选择关联计划</div>-->
<!-- </template>-->
<!-- </div>-->
<!-- </Col>-->
<!-- </Row>-->
</template>
</xy-dialog>
@ -237,9 +201,18 @@ export default {
price:[
{required:true,message:"必填"}
],
money:[
{required:true,message:"必填"}
],
fundingChannels:[
{required:true,message:"必填"}
],
supply:[
{required:true,message:"必填"}
],
carryDepartment:[
{required:true,message:"必填"}
],
plan:[
{validator:planPass}
]
@ -345,6 +318,9 @@ export default {
modality:res.purchase_way_id,
fundingChannels:res.money_way_id,
price:res.plan_price,
money:res.money,
supply:res.supply,
carryDepartment:res.carry_department,
isBudget:res.is_plan === 1 ? true : false,
plan:res.plans.map(item=>{
return {
@ -368,6 +344,7 @@ export default {
money_way_id:this.detail.fundingChannels,
plan_price:this.detail.price,
name:this.detail.name,
carry_department:this.detail.carryDepartment,
contract_plan_links:this.detail.plan.map(item=>{
return item.value
})

@ -242,7 +242,7 @@ export default {
//
percentPay(){
let total = this.totalMoney()
return this.contract.money/total || 0
return (total/this.contract.money)*100 || 0
},
async getRegistration(id){

@ -225,7 +225,7 @@ export default {
//
percentPay(){
let total = this.totalMoney()
return this.contract.money/total || 0
return (total/this.contract.money)*100 || 0
},
//

@ -7,7 +7,7 @@
<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-2;justify-content: center;align-items: center;" ><span>本次为第</span><span style="padding-left: 2vw">次付款</span></div>
<div style="grid-area: tb1-2;justify-content: center;align-items: center;" >本次为第 <span style="font-weight: 600;padding: 0 1vw;">{{payIndex}}</span> 次付款</div>
<div style="grid-area: tb2-1" class="print-table1-grid-top">承包商/供货商<span style="font-weight: 600">{{registration.contract.supply}}</span></div>
<div style="grid-area: tb2-2" class="print-table1-grid-top">合同服务时间<span style="font-weight: 600">{{dateFormat(registration.created_at)}}</span></div>
@ -25,15 +25,15 @@
<div style="grid-area: tb5-4"></div>
<div style="grid-area: tb6-1" class="print-table1-grid-center">C</div>
<div style="grid-area: tb6-2" class="print-table1-grid-center">前期累计已支付</div>
<div style="grid-area: tb6-3"></div>
<div style="grid-area: tb6-3" class="print-table1-grid-center">{{priceFormat(beforeTotalMoney)}}</div>
<div style="grid-area: tb6-4"></div>
<div style="grid-area: tb7-1" class="print-table1-grid-center">D</div>
<div style="grid-area: tb7-2" class="print-table1-grid-center">本期扣款</div>
<div style="grid-area: tb7-3"></div>
<div style="grid-area: tb7-3" class="print-table1-grid-center">{{priceFormat(registration.act_money)}}</div>
<div style="grid-area: tb7-4"></div>
<div style="grid-area: tb8-1" class="print-table1-grid-center">E</div>
<div style="grid-area: tb8-2" class="print-table1-grid-center">本期应付款</div>
<div style="grid-area: tb8-3"></div>
<div style="grid-area: tb8-3" class="print-table1-grid-center">{{priceFormat(registration.apply_money)}}</div>
<div style="grid-area: tb8-4;padding-left: 0.6vw;display: block;">
<div style="display: flex;align-items: center;">
<div><span v-if="registration.type == '进度款'"></span></div>
@ -81,7 +81,7 @@
</template>
<script>
import {detailFundLog} from "@/api/paymentRegistration/fundLog"
import {detailFundLog,getFundLog} from "@/api/paymentRegistration/fundLog"
import html2canvas from 'html2canvas'
import * as printJS from "print-js";
@ -91,14 +91,30 @@ export default {
data() {
return {
isShow:false,
registration:null
registration:null,
beforeTotalMoney:0,
payIndex:1,
}
},
methods: {
async getDetailFundLog(id){
let res = await detailFundLog({id})
this.registration = res
console.log(this.registration)
let res1 = await getFundLog({contract_id:this.registration.contract.id})
if(res1.data.length>0){
res1.data.map(item => {
this.beforeTotalMoney += Number(item.act_money)
})
this.beforeTotalMoney -= Number(this.registration.act_money)
}else{
this.beforeTotalMoney = 0
}
let nowIndex = res?.id
let idList = res1.data.map(item => {
return item.id
}).sort()
this.payIndex = idList.indexOf(nowIndex)+1
},
async print(){
@ -122,7 +138,7 @@ export default {
},
priceFormat(){
return function (price){
return price.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
return Number(price).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
}
}

@ -7,7 +7,8 @@
<div>
<span style="padding: 0 6px;word-break: keep-all;">创建日期</span>
<span>
<DatePicker v-model="select.showDatePicker" clearable placeholder="请选择日期" type="daterange" placement="bottom-start" style="width: 200px" @on-change="datePick"></DatePicker>
<DatePicker v-model="select.showDatePicker" clearable placeholder="请选择日期" type="daterange"
placement="bottom-start" style="width: 200px" @on-change="datePick"></DatePicker>
</span>
</div>
@ -16,7 +17,7 @@
合同类型
</span>
<Select placeholder="请选择类型" v-model="select.type" style="width:120px;" clearable>
<Option v-for="item in [{label:'服务',value:1},{label:'货品',value:2},{label:'工程',value:3}]" :value="item.value" :key="item.value">{{ item.label }}</Option>
<Option v-for="item in type" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
@ -24,14 +25,8 @@
<span style="padding: 0 6px;word-break: keep-all;">
科室
</span>
<el-cascader
placeholder="选择科室"
size="small"
:value="select.department"
style="width: 160px;"
:options="departments"
:props="{ checkStrictly: true, label: 'name', value: 'id' }"
clearable
<el-cascader placeholder="选择科室" size="small" :value="select.department" style="width: 160px;"
:options="departments" :props="{ checkStrictly: true, label: 'name', value: 'id' }" clearable
@change="e => select.department = e[e.length-1] || ''" />
</div>
@ -57,17 +52,9 @@
<span style="padding: 0 6px;word-break: keep-all;">
预算金额
</span>
<InputNumber
style="width: 100px;"
placeholder="最小金额"
:min="0"
v-model="select.priceMin"/>
<InputNumber style="width: 100px;" placeholder="最小金额" :min="0" v-model="select.priceMin" />
<span style="padding: 0 5px;">-</span>
<InputNumber
style="width: 100px;"
placeholder="最大金额"
:min="0"
v-model="select.priceMax"/>
<InputNumber style="width: 100px;" placeholder="最大金额" :min="0" v-model="select.priceMax" />
</div>
<Button type="primary" style="margin-left: 10px" @click="isShowAdd = true">新增</Button>
@ -84,26 +71,31 @@
<el-table-column label="操作" fixed="right" width="200" header-align="center">
<template slot-scope="scope">
<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"
@click="$refs['paymentRegistration'].isShowPaymentRegistration = true,$refs['paymentRegistration'].getContract(scope.row)">付款登记</Button>
<template v-if="scope.row.status === 1">
<Button class="slot-btns-item" type="primary" size="small"
@click="$refs['contractSign'].isShow = true,$refs['contractSign'].contractId = scope.row.id">签订合同</Button>
</template>
<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="primary" size="small">采购流程申请</Button>
<Poptip
placement="bottom"
:transfer="true"
confirm
title="确认要删除吗"
<Button class="slot-btns-item" type="primary" size="small" @click="askProcess(scope.row)"></Button>
<template v-if="scope.row.join_status === 1">
<Button class="slot-btns-item" type="primary" size="small"
@click="signProcess(scope.row)">合同会签流程申请</Button>
</template>
<template v-if="scope.row.purchase_status === 1">
<Button class="slot-btns-item" type="primary" size="small"
@click="buyProcess(scope.row)">采购流程申请</Button>
</template>
<Poptip placement="bottom" :transfer="true" confirm title="确认要删除吗"
@on-ok="()=>deleteContract(scope.row.id)">
<i-button
type="error"
size="small"
ghost>删除</i-button>
<i-button type="error" size="small" ghost>删除</i-button>
</Poptip>
<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>
<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>
@ -115,7 +107,8 @@
</div>
<!-- 新增合同 -->
<xy-dialog :is-show.sync="isShowAdd" title="新增合同" type="form" :form="form" :rules="rules" @submit="submit" ref="addContract">
<xy-dialog :is-show.sync="isShowAdd" title="新增合同" type="form" :form="form" :rules="rules" @submit="submit"
ref="addContract">
<template v-slot:name>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -133,7 +126,7 @@
</div>
<div class="xy-table-item-content">
<el-select placeholder="请选择项目类型" v-model="form.type" style="width: 300px;">
<el-option v-for="item in [{label:'服务',value:1},{label:'货品',value:2},{label:'工程',value:3}]" :label="item.label" :value="item.value"></el-option>
<el-option v-for="item in type" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</div>
@ -172,6 +165,16 @@
</div>
</div>
</template>
<template v-slot:money>
<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 xy-table-item-price">
<el-input placeholder="请填写合同金额" :value="form.money" style="width: 300px;" @input="e=>form.money = e" />
</div>
</div>
</template>
<template v-slot:fundingChannels>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -184,6 +187,26 @@
</div>
</div>
</template>
<template v-slot:supply>
<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-input placeholder="请填写供应商" v-model="form.supply" style="width: 300px;" />
</div>
</div>
</template>
<template v-slot:carryDepartment>
<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-input placeholder="请填写执行部门" v-model="form.carryDepartment" style="width: 300px;" />
</div>
</div>
</template>
<template v-slot:isBudget>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -224,7 +247,8 @@
<template v-slot:btns>
<el-table-column label="使用金额" header-align="center">
<template slot-scope="scope">
<Input :value="scope.row.useMoney ? scope.row.useMoney: scope.row.money" @input="(e)=>scope.row.useMoney = e"/>
<Input :value="scope.row.useMoney ? scope.row.useMoney: scope.row.money"
@input="(e)=>scope.row.useMoney = e" />
</template>
</el-table-column>
</template>
@ -241,7 +265,8 @@
</xy-dialog>
<!-- 编辑-->
<editor :is-show-editor.sync="isShowEditor" :purchase-type="purchaseType" :purchase-way="purchaseWay" :money-way="moneyWay" ref="editor" @success="getContracts"></editor>
<editor :is-show-editor.sync="isShowEditor" :purchase-type="purchaseType" :purchase-way="purchaseWay"
:money-way="moneyWay" ref="editor" @success="getContracts"></editor>
<!-- 查看-->
<detail ref="detailContract"></detail>
@ -255,12 +280,29 @@
</template>
<script>
import {getContract,addContrant,delContract,detailContract,editorContract} from "@/api/contract/contract"
import {getparameter} from "@/api/system/dictionary"
import {listdept} from "@/api/system/department";
import {getBudget} from "@/api/budget/budget"
import {parseTime} from "@/utils"
import {Message} from "element-ui";
import {
getContract,
addContrant,
delContract
} from "@/api/contract/contract"
import {
getparameter
} from "@/api/system/dictionary"
import {
listdept
} from "@/api/system/department";
import {
getBudget
} from "@/api/budget/budget"
import {
getOatoken
} from "@/api/oatoken"
import {
parseTime
} from "@/utils"
import {
Message
} from "element-ui";
import editor from "./components/editorContract"
import detail from "./components/detailContract"
@ -300,6 +342,16 @@ export default {
priceMax: null,
status: ""
},
type: [{
label: '服务',
value: 1
}, {
label: '货品',
value: 2
}, {
label: '工程',
value: 3
}],
purchaseType: [], //
purchaseWay: [], //
moneyWay: [], //
@ -307,8 +359,7 @@ export default {
list: [], //
total: 0,
//
table:[
{
table: [{
label: "项目名称",
width: 160,
prop: 'name'
@ -376,8 +427,7 @@ export default {
},
{
label: "采购流程",
multiHd:[
{
multiHd: [{
label: "请示流程",
width: 200
},
@ -415,15 +465,19 @@ export default {
}
],
planTable:[
{
planTable: [{
sortable: false,
width: 36,
customFn: (row) => {
return (
<div>
<Checkbox on={{['on-change']:(e)=>this.selectPlan(e,row)}}></Checkbox>
</div>
return ( <
div >
<
Checkbox on = {
{
['on-change']: (e) => this.selectPlan(e, row)
}
} > < /Checkbox> <
/div>
)
}
},
@ -464,32 +518,53 @@ export default {
methods: "",
modality: "",
price: "",
money: '',
fundingChannels: "",
supply: '',
carryDepartment: "",
isBudget: true,
plan: []
},
rules: {
name:[
{required:true,message:"必填"}
],
type:[
{required:true,message:"必选"}
],
methods:[
{required:true,message:"必选"}
],
modality:[
{required:true,message:"必选"}
],
price:[
{required:true,message:"必填"}
],
fundingChannels:[
{required:true,message:"必填"}
],
plan:[
{validator:planPass}
]
name: [{
required: true,
message: "必填"
}],
type: [{
required: true,
message: "必选"
}],
methods: [{
required: true,
message: "必选"
}],
modality: [{
required: true,
message: "必选"
}],
price: [{
required: true,
message: "必填"
}],
money: [{
required: true,
message: "必填"
}],
fundingChannels: [{
required: true,
message: "必填"
}],
supply: [{
required: true,
message: "必填"
}],
carryDepartment: [{
required: true,
message: "必填"
}],
plan: [{
validator: planPass
}]
},
isShowPlan: false, //
plans: [], //
@ -501,10 +576,56 @@ export default {
}
},
methods: {
test(){
let win = window.open('https://www.baidu.com','baidu', 'top=100,left=100,width=800,height=400')
},
//
async buyProcess(row) {
console.log(row)
let baseInfo = {
"项目名称": row.name,
"采购形式": row.purchase_type.value,
"采购方式": row.purchase_way.value,
"项目类型": this.type.filter(item => {
return item.value === row.type
})[0].label,
"项目预算(万元)": row.plan_price / 10000,
"资金渠道": row.money_way.value
}
let res = await getOatoken()
let url =
`${process.env.VUE_APP_OUT_URL}/admin/flow/create/2?oatoken=${res.oatoken}&out_contract_id=${row.id}&contract_json=${JSON.stringify(baseInfo)}`
let buyProcess = window.open(url, 'buyProcess', 'top=100,left=100,width=1000,height=600')
},
//
async signProcess(row) {
let baseInfo = {
"合同名称": row.name,
"执行部门": row.carry_department,
"合同金额(万元)": row.money,
//"\\":row.supply
}
let res = await getOatoken()
let url =
`${process.env.VUE_APP_OUT_URL}/admin/flow/create/3?oatoken=${res.oatoken}&out_contract_id=${row.id}&contract_json=${JSON.stringify(baseInfo)}`
let signProcess = window.open(url, 'signProcess', 'top=100,left=100,width=1000,height=600')
},
//
async askProcess(row) {
let res = await getOatoken()
let url =
`${process.env.VUE_APP_OUT_URL}/admin/flow/create/17?oatoken=${res.oatoken}&out_contract_id=${row.id}`
let askProcess = window.open(url, 'askProcess', 'top=100,left=100,width=1000,height=600')
},
//
debounce(fn, delay = 500) {
let timer = null
return function _debounce() {
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
fn()
}, delay)
}
},
//
pageChange(e) {
@ -523,17 +644,25 @@ export default {
//
async getBudgets() {
let res = await getBudget({name:this.planSearch,page_size:10,page:this.plansPageIndex})
let res = await getBudget({
name: this.planSearch,
page_size: 10,
page: this.plansPageIndex
})
this.plans = res.data
this.planTotal = res.total
},
//
async getMoneyWay() {
this.moneyWay = (await getparameter({number:'money_way'})).detail
this.moneyWay = (await getparameter({
number: 'money_way'
})).detail
},
//
async getPurchaseWay() {
this.purchaseWay = (await getparameter({number:'purchase_way'})).detail
this.purchaseWay = (await getparameter({
number: 'purchase_way'
})).detail
},
//
async getDepartment() {
@ -541,7 +670,9 @@ export default {
},
//
async getPurchaseType() {
this.purchaseType = (await getparameter({number:'purchase_type'})).detail
this.purchaseType = (await getparameter({
number: 'purchase_type'
})).detail
},
//
@ -600,6 +731,9 @@ export default {
money_way_id: this.form.fundingChannels,
plan_price: this.form.price,
name: this.form.name,
supply: this.form.supply,
carry_department: this.form.carryDepartment,
money: this.form.money,
contract_plan_links: this.form.plan.map(item => {
return item.value
})
@ -616,7 +750,9 @@ export default {
//
deleteContract(id) {
delContract({id}).then(res=>{
delContract({
id
}).then(res => {
Message({
type: 'success',
message: '操作成功'
@ -624,7 +760,6 @@ export default {
this.getContracts()
})
},
},
mounted() {
this.getPurchaseType()
@ -645,6 +780,7 @@ export default {
margin-bottom: 6px;
}
}
.selectTop {
margin-top: 10px;
}
@ -659,6 +795,7 @@ export default {
align-content: center;
padding: 0 8px;
&-no-plan {
height: 30px;
line-height: 30px;
@ -682,8 +819,10 @@ export default {
.xy-table-item-label {
width: 140px;
}
.xy-table-item-price {
position: relative;
&::after {
position: absolute;
right: 0;

Loading…
Cancel
Save