合同会签

master
lion 12 months ago
parent b0887c0f34
commit 3ac3f2fe4e

@ -56,16 +56,8 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同服务时间 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同服务时间
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-date-picker <el-date-picker v-model="form.time" style="width: 300px;" value-format="yyyy-MM-dd" type="daterange"
v-model="form.time" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="dateRangePick" />
style="width: 300px;"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="dateRangePick"
/>
</div> </div>
</div> </div>
</template> </template>
@ -84,7 +76,8 @@
<div class="xy-table-item-label" style="width: 200px">保函金额 <div class="xy-table-item-label" style="width: 200px">保函金额
</div> </div>
<div class="xy-table-item-content xy-table-item-price"> <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 v-model="form.assurance_money" :controls="false" :precision="2" placeholder="请输入保函金额"
style="width: 300px;" />
</div> </div>
</div> </div>
</template> </template>
@ -93,7 +86,8 @@
<div class="xy-table-item-label" style="width: 200px">保函有效期 <div class="xy-table-item-label" style="width: 200px">保函有效期
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-date-picker v-model="form.assurance_expire" value-format="yyyy-MM-dd" placeholder="请输入保函有效期" style="width: 300px;" /> <el-date-picker v-model="form.assurance_expire" value-format="yyyy-MM-dd" placeholder="请输入保函有效期"
style="width: 300px;" />
</div> </div>
</div> </div>
</template> </template>
@ -104,13 +98,8 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保金 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保金
</div> </div>
<div class="xy-table-item-content xy-table-item-price"> <div class="xy-table-item-content xy-table-item-price">
<el-input-number <el-input-number v-model="form.guaranteeMoney" :precision="2" :controls="false" placeholder="请填写质保金"
v-model="form.guaranteeMoney" style="width: 300px;" />
:precision="2"
:controls="false"
placeholder="请填写质保金"
style="width: 300px;"
/>
</div> </div>
</div> </div>
</template> </template>
@ -120,7 +109,8 @@
是否为延续类项目 是否为延续类项目
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-switch v-model="form.has_continue" active-text="" inactive-text="" :active-value="1" :inactive-value="0" /> <el-switch v-model="form.has_continue" active-text="" inactive-text="" :active-value="1"
:inactive-value="0" />
</div> </div>
</div> </div>
</template> </template>
@ -142,12 +132,8 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保期 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保期
</div> </div>
<div class="xy-table-item-content xy-table-item-year"> <div class="xy-table-item-content xy-table-item-year">
<el-input-number <el-input-number v-model="form.guaranteeYear" :controls="false" placeholder="请填写质保期"
v-model="form.guaranteeYear" style="width: 300px;" />
:controls="false"
placeholder="请填写质保期"
style="width: 300px;"
/>
</div> </div>
</div> </div>
</template> </template>
@ -158,27 +144,15 @@
<Button type="primary" style="margin-left: 20px;" @click="isShowAddManyPlan = true">批量添加</Button> <Button type="primary" style="margin-left: 20px;" @click="isShowAddManyPlan = true">批量添加</Button>
</div> </div>
<xy-table <xy-table :list="signList" :table-item="signTable" :show-index="false" :height="240"
:list="signList"
:table-item="signTable"
:show-index="false"
:height="240"
@delete="deleteContractSign" @delete="deleteContractSign"
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}" @editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}" />
/>
</template> </template>
</xy-dialog> </xy-dialog>
<!-- 新增计划--> <!-- 新增计划-->
<xy-dialog <xy-dialog :is-show.sync="isShowAddPlan" type="form" title="新增计划" :form="planForm" :rules="planRules" :width="48"
:is-show.sync="isShowAddPlan" @submit="submit">
type="form"
title="新增计划"
:form="planForm"
:rules="planRules"
:width="48"
@submit="submit"
>
<template v-slot:date> <template v-slot:date>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
@ -224,11 +198,7 @@
</template> </template>
</xy-dialog> </xy-dialog>
<Modal <Modal v-model="isShowAddManyPlan" title="计划任务" @on-ok="manyCreate">
v-model="isShowAddManyPlan"
title="计划任务"
@on-ok="manyCreate"
>
<div class="many-plan"> <div class="many-plan">
<div class="many-plan-item"> <div class="many-plan-item">
@ -238,17 +208,20 @@
<div class="many-plan-item"> <div class="many-plan-item">
<p>开始日期</p> <p>开始日期</p>
<el-date-picker v-model="manySetting.startMonth" size="mini" value-format="yyyy-MM-dd" @change="planMonthLists" /> <el-date-picker v-model="manySetting.startMonth" size="mini" value-format="yyyy-MM-dd"
@change="planMonthLists" />
</div> </div>
<div class="many-plan-item"> <div class="many-plan-item">
<p>付款月份数</p> <p>付款月份数</p>
<el-input-number v-model="manySetting.lastMonth" :controls="false" size="mini" :precision="0" :min="1" :max="12" @change="planMonthLists" /> <el-input-number v-model="manySetting.lastMonth" :controls="false" size="mini" :precision="0" :min="1"
:max="12" @change="planMonthLists" />
</div> </div>
<div class="many-plan-item"> <div class="many-plan-item">
<p>付款日期</p> <p>付款日期</p>
<el-input-number v-model="manySetting.day" :controls="false" size="mini" :precision="0" :min="1" :max="31" @change="planMonthLists" /> <el-input-number v-model="manySetting.day" :controls="false" size="mini" :precision="0" :min="1" :max="31"
@change="planMonthLists" />
</div> </div>
<div class="many-plan-item"> <div class="many-plan-item">
@ -269,384 +242,449 @@
</template> </template>
<script> <script>
import { MessageBox } from 'element-ui' import {
import { MessageBox
addContractSign, } from 'element-ui'
getContractSign, import {
delContractSign, addContractSign,
httpCurl getContractSign,
} from '@/api/contractSign/contractSign' delContractSign,
import { httpCurl
detailContract, } from '@/api/contractSign/contractSign'
editorContract import {
} from '@/api/contract/contract' detailContract,
import { editorContract
Message } from '@/api/contract/contract'
} from 'element-ui' import {
import { Message
parseTime, } from 'element-ui'
moneyFormatter import {
} from '@/utils' parseTime,
moneyFormatter
import detailContractSign from '@/views/contract/components/detailContractSign' } from '@/utils'
import {
getOatoken import detailContractSign from '@/views/contract/components/detailContractSign'
} from '@/api/oatoken' import {
import axios from 'axios' getOatoken
export default { } from '@/api/oatoken'
components: { import axios from 'axios'
detailContractSign export default {
}, components: {
data() { detailContractSign
return { },
isShowAddManyPlan: false, data() {
manySetting: { return {
day: 1, isShowAddManyPlan: false,
lastMonth: 1, manySetting: {
startMonth: '' day: 1,
}, lastMonth: 1,
manyForm: [], startMonth: ''
manyTable: [
{
prop: 'date',
label: '付款日期',
width: 160,
customFn: row => {
return (
<el-date-picker style='width: 130px;' vModel={row.date} size='mini' value-format='yyyy-MM-dd'></el-date-picker>
)
}
}, },
{ manyForm: [],
prop: 'money', manyTable: [{
label: '金额', prop: 'date',
width: 180, label: '付款日期',
customFn: row => { width: 160,
return ( customFn: row => {
<el-input-number size='mini' vModel={row.money} precision={2} controls={false}></el-input-number> return ( <
) el - date - picker style = 'width: 130px;'
vModel = {
row.date
}
size = 'mini'
value - format = 'yyyy-MM-dd' > < /el-date-picker>
)
}
},
{
prop: 'money',
label: '金额',
width: 180,
customFn: row => {
return ( <
el - input - number size = 'mini'
vModel = {
row.money
}
precision = {
2
}
controls = {
false
} > < /el-input-number>
)
}
},
{
prop: 'operate',
label: '操作',
customFn: (row, {
$index
}) => {
return ( <
Button type = 'error'
size = 'small'
on = {
{
'click': _ => {
this.manyForm.splice($index, 1)
}
}
} > 移除 < /Button>
)
}
} }
],
form: {
number: '',
supply: '',
has_continue: 0,
carryDepartment: '',
money: '',
time: [],
guaranteeMoney: '',
guaranteeYear: '',
date: '',
is_assurance: false,
assurance_money: '',
assurance_expire: ''
}, },
{ rules: {
prop: 'operate', number: [{
label: '操作', required: true,
customFn: (row, { $index }) => { message: '必填'
return ( }],
<Button type='error' date: [{
size='small' required: true,
on={{ message: '必填'
'click': _ => { }],
this.manyForm.splice($index, 1) supply: [{
} required: true,
}}>移除</Button> message: '必填'
) }],
carryDepartment: [{
required: true,
message: '必填'
}],
money: [{
required: true,
message: '必填'
},
{
pattern: /^\d+(\.\d+)?$/,
message: '必须为数字'
}
],
time: [{
required: true,
message: '必选'
}],
guaranteeMoney: [],
guaranteeYear: []
},
isShow: false,
contractId: null,
contract: {},
signList: [],
signTable: [{
prop: 'date',
label: '日期',
width: 170,
sortable: false
},
{
prop: 'money',
label: '金额',
align: 'right',
width: 120,
sortable: false,
formatter: (v1, v2, value) => {
return moneyFormatter(value)
}
},
{
prop: 'content',
label: '内容',
minWidth: 180,
align: 'left',
sortable: false
},
{
prop: 'remark',
label: '备注',
minWidth: 180,
align: 'left',
sortable: false
} }
}
],
form: {
number: '',
supply: '',
has_continue: 0,
carryDepartment: '',
money: '',
time: [],
guaranteeMoney: '',
guaranteeYear: '',
date: '',
is_assurance: false,
assurance_money: '',
assurance_expire: ''
},
rules: {
number: [{ required: true, message: '必填' }],
date: [{ required: true, message: '必填' }],
supply: [{ required: true, message: '必填' }],
carryDepartment: [{ required: true, message: '必填' }],
money: [
{ required: true, message: '必填' },
{ pattern: /^\d+(\.\d+)?$/, message: '必须为数字' }
], ],
time: [{ required: true, message: '必选' }],
guaranteeMoney: [],
guaranteeYear: []
},
isShow: false, isShowAddPlan: false,
contractId: null, planForm: {
contract: {}, date: '',
signList: [], money: '',
signTable: [{ content: '',
prop: 'date', remark: ''
label: '日期', },
width: 170, planRules: {
sortable: false date: [{
}, required: true,
{ message: '必填'
prop: 'money', }],
label: '金额', content: [{
align: 'right', required: true,
width: 120, message: '必填'
sortable: false, }],
formatter: (v1, v2, value) => { money: [{
return moneyFormatter(value) required: true,
message: '必填'
},
{
pattern: /^\d+(\.\d+)?$/,
message: '必须为数字'
}
]
} }
},
{
prop: 'content',
label: '内容',
minWidth: 180,
align: 'left',
sortable: false
},
{
prop: 'remark',
label: '备注',
minWidth: 180,
align: 'left',
sortable: false
} }
], },
computed: {},
isShowAddPlan: false, watch: {
planForm: { async contractId() {
date: '', await this.getContractSignList()
money: '', await this.getContract()
content: '', await this.getOaContractInfo()
remark: '' }
},
methods: {
dateRangePick(e) {
if (e[0] && e[1]) {
this.manySetting.startMonth = e[0] ? e[0] : ''
this.manySetting.lastMonth = this.$moment(e[1]).diff(this.$moment(e[0]), 'months')
} else {
this.manySetting.startMonth = ''
this.manySetting.lastMonth = 1
}
this.planMonthLists()
}, },
planRules: {
date: [{ //
required: true, sign() {
message: '必填'
}],
content: [{
required: true,
message: '必填'
}],
money: [{
required: true,
message: '必填'
},
{ {
pattern: /^\d+(\.\d+)?$/, /* if (this.signList.length == 0) {
message: '必须为数字' Message({
type: 'error',
message: '该项目未设置付款计划,请设置付款计划后保存'
})
return false
} */
} }
]
}
}
},
computed: {
},
watch: {
async contractId() {
await this.getContractSignList()
await this.getContract()
await this.getOaContractInfo()
}
},
methods: {
dateRangePick(e) {
if (e[0] && e[1]) {
this.manySetting.startMonth = e[0] ? e[0] : ''
this.manySetting.lastMonth = this.$moment(e[1]).diff(this.$moment(e[0]), 'months')
} else {
this.manySetting.startMonth = ''
this.manySetting.lastMonth = 1
}
this.planMonthLists() const signMoneyTotal = this.signList.reduce((pre, cur) => (pre + Number(cur.money || 0)), 0)
}, if (signMoneyTotal !== Number(this.form.money)) {
Message({
type: 'warning',
message: '付款计划总金额与合同总金额不相等'
})
return
}
// editorContract({
sign() { id: this.contractId,
{/* if (this.signList.length == 0) { number: this.form.number,
Message({ supply: this.form.supply,
type: 'error', has_continue: this.form.has_continue,
message: '该项目未设置付款计划,请设置付款计划后保存' carry_department: this.form.carryDepartment,
money: this.form.money,
status: 2,
guarantee_money: this.form.guaranteeMoney,
guarantee_year: this.form.guaranteeYear,
start_date: this.form.time[0],
end_date: this.form.time[1],
date: this.form.date,
is_assurance: this.form.is_assurance,
assurance_money: this.form.assurance_money,
assurance_expire: this.form.assurance_expire
}).then(res => {
this.isShow = false
Message({
type: 'success',
message: '操作成功'
})
this.$emit('signSuccess')
}) })
return false },
} */} //
handleOperationSuccess() {
const signMoneyTotal = this.signList.reduce((pre, cur) => (pre + Number(cur.money || 0)), 0) // 1.
if (signMoneyTotal !== Number(this.form.money)) { const message = {
Message({ type: 'operationCompleted', //
type: 'warning', data: {
message: '付款计划总金额与合同总金额不相等' status: 'success',
}) result: '合同签署成功',
return }
} };
editorContract({ // 2.
id: this.contractId, //
number: this.form.number, // *
supply: this.form.supply, parent.postMessage(message, 'http://192.168.60.18:8001');
has_continue: this.form.has_continue, // http://192.168.60.99:8080
carry_department: this.form.carryDepartment, },
money: this.form.money, async getContractSignList() {
status: 2, const res = await getContractSign({
guarantee_money: this.form.guaranteeMoney, contract_id: this.contractId,
guarantee_year: this.form.guaranteeYear, page: 1,
start_date: this.form.time[0], page_size: 999
end_date: this.form.time[1],
date: this.form.date,
is_assurance: this.form.is_assurance,
assurance_money: this.form.assurance_money,
assurance_expire: this.form.assurance_expire
}).then(res => {
this.isShow = false
Message({
type: 'success',
message: '操作成功'
}) })
this.$emit('signSuccess') this.signList = res.data
}) },
}, async getContract() {
const res = await detailContract({
async getContractSignList() { id: this.contractId
const res = await getContractSign({
contract_id: this.contractId,
page: 1,
page_size: 999
})
this.signList = res.data
},
async getContract() {
const res = await detailContract({
id: this.contractId
})
this.contract = res
Object.assign(this.form, res)
if (res.start_date && res.end_date) {
this.form.time = [res.start_date, res.end_date]
} else {
this.form.time = []
}
this.form.carryDepartment = res.carry_department
this.form.guaranteeMoney = res.guarantee_money
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
//
if (res.contract_type !== 160) {
this.rules.guaranteeMoney = [{ required: true, message: '必填' }]
this.rules.guaranteeYear = [{ required: true, message: '必填' }]
} else {
this.rules.guaranteeMoney = []
this.rules.guaranteeYear = []
}
console.log(this.form)
},
deleteContractSign(row) {
delContractSign({
id: row.id
}).then(res => {
this.getContractSignList()
Message({
type: 'success',
message: '操作成功'
}) })
}) this.contract = res
}, Object.assign(this.form, res)
submit() { if (res.start_date && res.end_date) {
console.log(this.planForm) this.form.time = [res.start_date, res.end_date]
} else {
addContractSign({ this.form.time = []
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()}`, this.form.carryDepartment = res.carry_department
content: this.planForm.content, this.form.guaranteeMoney = res.guarantee_money
money: this.planForm.money, this.form.guaranteeYear = res.guarantee_year
remark: this.planForm.remark this.form.is_assurance = res.is_assurance === 1
}).then(res => { this.form.assurance_expire = res.assurance_expire
this.isShowAddPlan = false this.form.assurance_money = res.assurance_money
this.getContractSignList() //
console.log(res) if (res.contract_type !== 160) {
Message({ this.rules.guaranteeMoney = [{
type: 'success', required: true,
message: '操作成功' message: '必填'
}]
this.rules.guaranteeYear = [{
required: true,
message: '必填'
}]
} else {
this.rules.guaranteeMoney = []
this.rules.guaranteeYear = []
}
console.log(this.form)
},
deleteContractSign(row) {
delContractSign({
id: row.id
}).then(res => {
this.getContractSignList()
Message({
type: 'success',
message: '操作成功'
})
}) })
}) },
}, submit() {
console.log(this.planForm)
manyCreate() { addContractSign({
Promise.all(this.manyForm.map(i => {
return addContractSign({
contract_id: this.contract.id, contract_id: this.contract.id,
date: i.date, date: `${new Date(this.planForm.date).getFullYear()}-${new Date(this.planForm.date).getMonth() + 1}-${new Date(this.planForm.date).getDate()}`,
content: '', content: this.planForm.content,
money: i.money, money: this.planForm.money,
remark: '' remark: this.planForm.remark
}).then(res => {
this.isShowAddPlan = false
this.getContractSignList()
console.log(res)
Message({
type: 'success',
message: '操作成功'
})
}) })
})).then(res => { },
this.getContractSignList()
Message({ manyCreate() {
type: 'success', Promise.all(this.manyForm.map(i => {
message: '操作成功' return addContractSign({
contract_id: this.contract.id,
date: i.date,
content: '',
money: i.money,
remark: ''
})
})).then(res => {
this.getContractSignList()
Message({
type: 'success',
message: '操作成功'
})
this.isShowAddManyPlan = false
}) })
this.isShowAddManyPlan = false },
})
},
// oa // oa
async getOaContractInfo() { async getOaContractInfo() {
try { try {
const resToken = await getOatoken() const resToken = await getOatoken()
const ourl = `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${resToken.oatoken}&get_raw=1` const ourl = `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${resToken.oatoken}&get_raw=1`
console.log(ourl) console.log(ourl)
const url = const url =
`${process.env.VUE_APP_OUT_URL}/admin/flow/view/${this.contract.join_last_flow_id}` `${process.env.VUE_APP_OUT_URL}/admin/flow/view/${this.contract.join_last_flow_id}`
// ?oatoken=${res.oatoken}&get_raw=1 // ?oatoken=${res.oatoken}&get_raw=1
const paras = { oatoken: resToken.oatoken, get_raw: 1 } const paras = {
const res = await httpCurl(paras, true, '/Api/flowDetail', 'GET', url) oatoken: resToken.oatoken,
console.log(res) get_raw: 1
this.form.money = Number(res.flow['合同金额(元)']) }
this.form.number = res.flow['合同编号'] const res = await httpCurl(paras, true, '/Api/flowDetail', 'GET', url)
this.form.supply = res.flow['承包商\\供应商'] console.log(res)
this.form.carryDepartment = res.flow['执行部门'] this.form.money = Number(res.flow['合同金额(元)'])
this.form.number = res.flow['合同编号']
// let res = await getOatoken() this.form.supply = res.flow['承包商\\供应商']
// let url = this.form.carryDepartment = res.flow['执行部门']
// `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${res.oatoken}&get_raw=1`
// const oaInfo = await axios.get(url) // let res = await getOatoken()
// this.form.money = Number(oaInfo.data.flow['']) // let url =
// this.form.number = oaInfo.data.flow[''] // `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${res.oatoken}&get_raw=1`
// this.form.supply = oaInfo.data.flow['\\'] // const oaInfo = await axios.get(url)
// this.form.carryDepartment = oaInfo.data.flow[''] // this.form.money = Number(oaInfo.data.flow[''])
} catch { // this.form.number = oaInfo.data.flow['']
// this.form.supply = oaInfo.data.flow['\\']
// this.form.carryDepartment = oaInfo.data.flow['']
} catch {
} }
}, },
planMonthLists() { planMonthLists() {
const [startDate, endDate] = this.form.time const [startDate, endDate] = this.form.time
const actStartDate = this.manySetting.startMonth const actStartDate = this.manySetting.startMonth
const actStartYear = new Date(actStartDate).getFullYear() const actStartYear = new Date(actStartDate).getFullYear()
const actStartMonth = new Date(actStartDate).getMonth() const actStartMonth = new Date(actStartDate).getMonth()
const dates = [] const dates = []
if (actStartDate && this.manySetting.day) { if (actStartDate && this.manySetting.day) {
let index = 0 let index = 0
let nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months') let nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
while ((nowDate.valueOf() <= this.$moment(endDate).valueOf())) { while ((nowDate.valueOf() <= this.$moment(endDate).valueOf())) {
if (nowDate.valueOf() >= this.$moment(actStartDate).valueOf()) { if (nowDate.valueOf() >= this.$moment(actStartDate).valueOf()) {
dates.push(nowDate.format('YYYY-MM-DD')) dates.push(nowDate.format('YYYY-MM-DD'))
}
index++
nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
} }
index++
nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
}
const returnRes = dates.slice(0, this.manySetting.lastMonth) const returnRes = dates.slice(0, this.manySetting.lastMonth)
this.manyForm = returnRes.map(i => ({ this.manyForm = returnRes.map(i => ({
money: (Number(this.form.money || 0) / returnRes.length).toFixed(2), money: (Number(this.form.money || 0) / returnRes.length).toFixed(2),
date: i, date: i,
content: '' content: ''
})) }))
}
} }
} }
} }
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -655,12 +693,14 @@ export default {
display: flex; display: flex;
margin-bottom: 20px; margin-bottom: 20px;
& > p {
&>p {
flex-basis: 30%; flex-basis: 30%;
flex-shrink: 0; flex-shrink: 0;
} }
} }
} }
.base-info { .base-info {
&-title { &-title {

@ -1569,6 +1569,12 @@ export default {
} }
}).catch(error => { }).catch(error => {
}) })
// oa
if(this.$route.query.oaType==='contractSign'){
let contractId = this.$route.query.contractId
this.$refs['contractSign'].isShow = true
this.$refs['contractSign'].contractId = contractId
}
this.getPurchaseType() this.getPurchaseType()
this.getContracts() this.getContracts()
this.getDepartment(-1) this.getDepartment(-1)

Loading…
Cancel
Save