|
|
|
|
@ -389,123 +389,6 @@
|
|
|
|
|
{{ otherFlowBtn(scope.row.flow_mod_id) }}
|
|
|
|
|
</Button>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- <template v-if="((scope.row.status === 2) ||-->
|
|
|
|
|
<!-- (!scope.row.is_contract && (scope.row.is_simple)) ||-->
|
|
|
|
|
<!-- ((scope.row.purchase_way && scope.row.purchase_way.value === '网上商城') && scope.row.purchase_status === 3) ) && scope.row.is_end === 0">-->
|
|
|
|
|
<!-- <template v-if="scope.row.is_assurance == 1 || (!scope.row.is_contract && scope.row.purchase_way && scope.row.purchase_way.value === '网上商城' && scope.row.purchase_status === 3)">-->
|
|
|
|
|
<!-- <!– 如果是 履约文件–>-->
|
|
|
|
|
<!-- <template v-if="scope.row.assurance_status == 1 || (!scope.row.is_contract && scope.row.purchase_way && scope.row.purchase_way.value === '网上商城' && scope.row.purchase_status === 3)">-->
|
|
|
|
|
<!-- <!– 那么必须财务审核通过–>-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="-->
|
|
|
|
|
<!-- $refs['paymentRegistration'].getContract(scope.row),-->
|
|
|
|
|
<!-- ($refs[-->
|
|
|
|
|
<!-- 'paymentRegistration'-->
|
|
|
|
|
<!-- ].isShowPaymentRegistration = true)-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <!– paying(scope.row) @click="$refs['paymentRegistration'].getContract(scope.row),$refs['paymentRegistration'].isShowPaymentRegistration = true"–>-->
|
|
|
|
|
|
|
|
|
|
<!-- 付款登记-->
|
|
|
|
|
<!-- </Button>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- <template v-else>-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="-->
|
|
|
|
|
<!-- $refs['paymentRegistration'].getContract(scope.row),-->
|
|
|
|
|
<!-- ($refs[-->
|
|
|
|
|
<!-- 'paymentRegistration'-->
|
|
|
|
|
<!-- ].isShowPaymentRegistration = true)-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <!– @click="$refs['paymentRegistration'].getContract(scope.row),$refs['paymentRegistration'].isShowPaymentRegistration = true"–>-->
|
|
|
|
|
<!-- 付款登记-->
|
|
|
|
|
<!-- </Button>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
|
|
|
|
|
<!-- <template-->
|
|
|
|
|
<!-- v-if="(scope.row.status === 1 && scope.row.join_status === 3 && !/contractLedger/g.test($route.path)) && (scope.row.is_contract && scope.row.purchase_way && scope.row.purchase_way.value !== '网上商城')"-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="-->
|
|
|
|
|
<!-- ($refs['contractSign'].isShow = true),-->
|
|
|
|
|
<!-- ($refs['contractSign'].contractId = scope.row.id)-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- 签订合同-->
|
|
|
|
|
<!-- </Button>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- <!– 采购完成 –>-->
|
|
|
|
|
<!-- <template-->
|
|
|
|
|
<!-- v-if="-->
|
|
|
|
|
<!-- (scope.row.invite_status === 1 &&-->
|
|
|
|
|
<!-- scope.row.purchase_status === 3 &&-->
|
|
|
|
|
<!-- (scope.row.purchase_way-->
|
|
|
|
|
<!-- ? scope.row.purchase_way.remark === 'true'-->
|
|
|
|
|
<!-- : false) &&-->
|
|
|
|
|
<!-- !scope.row.is_substitute) && (scope.row.is_contract && scope.row.purchase_way && scope.row.purchase_way.value !== '网上商城')-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="-->
|
|
|
|
|
<!-- $refs['biddingUpload'].setId(scope.row.id),-->
|
|
|
|
|
<!-- $refs['biddingUpload'].show()-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >招标审查</Button-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
|
|
|
|
|
<!-- <!–不需要走采购流程那么直接就是会签,如果采购方式不需要招标的也是直接会签–>-->
|
|
|
|
|
<!-- <template-->
|
|
|
|
|
<!-- v-if="-->
|
|
|
|
|
<!-- ((scope.row.join_status === 1 &&-->
|
|
|
|
|
<!-- (scope.row.invite_status === 3 ||-->
|
|
|
|
|
<!-- ((scope.row.purchase_way-->
|
|
|
|
|
<!-- ? scope.row.purchase_way.remark === 'false'-->
|
|
|
|
|
<!-- : false) &&-->
|
|
|
|
|
<!-- scope.row.purchase_status === 3))) ||-->
|
|
|
|
|
<!-- (scope.row.is_substitute && scope.row.join_status === 1)) && (scope.row.is_contract && scope.row.purchase_way && scope.row.purchase_way.value !== '网上商城')-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="signProcess(scope.row)"-->
|
|
|
|
|
<!-- >合同审批-->
|
|
|
|
|
<!-- </Button>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<!-- <template-->
|
|
|
|
|
<!-- v-if="-->
|
|
|
|
|
<!-- scope.row.is_simple !== 1 &&-->
|
|
|
|
|
<!-- scope.row.purchase_status === 1 &&-->
|
|
|
|
|
<!-- ((scope.row.req_status === 3 && scope.row.is_plan === 0) ||-->
|
|
|
|
|
<!-- scope.row.is_plan === 1) &&-->
|
|
|
|
|
<!-- !scope.row.is_substitute-->
|
|
|
|
|
<!-- "-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <Button-->
|
|
|
|
|
<!-- class="slot-btns-item"-->
|
|
|
|
|
<!-- size="small"-->
|
|
|
|
|
<!-- type="primary"-->
|
|
|
|
|
<!-- @click="buyProcess(scope.row)"-->
|
|
|
|
|
<!-- >采购流程-->
|
|
|
|
|
<!-- </Button>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
|
|
|
|
|
<Poptip trigger="hover" placement="bottom" transfer>
|
|
|
|
|
<Button ghost size="small" type="primary">更多</Button>
|
|
|
|
|
@ -605,371 +488,6 @@
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- 新增合同 -->
|
|
|
|
|
<xy-dialog
|
|
|
|
|
ref="addContract"
|
|
|
|
|
:form="form"
|
|
|
|
|
:is-show.sync="isShowAdd"
|
|
|
|
|
:rules="rules"
|
|
|
|
|
title="新增采购事项"
|
|
|
|
|
type="form"
|
|
|
|
|
@submit="submit"
|
|
|
|
|
>
|
|
|
|
|
<template v-slot:name>
|
|
|
|
|
<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
|
|
|
|
|
v-model="form.name"
|
|
|
|
|
@change="checkName"
|
|
|
|
|
placeholder="请填写项目名称"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template #flow_mod_id>
|
|
|
|
|
<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">
|
|
|
|
|
<div style="display: flex; width: 300px; align-items: center">
|
|
|
|
|
<el-select style="width: 300px;" v-model="form.flow_mod_id">
|
|
|
|
|
<el-option v-for="item in flowIds" :value="item.id" :label="item.name"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:is_contract>
|
|
|
|
|
<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">
|
|
|
|
|
<div style="display: flex; width: 300px; align-items: center">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_contract"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:is_simple>
|
|
|
|
|
<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">
|
|
|
|
|
<div style="display: flex; width: 300px; align-items: center">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_simple"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
<div style="flex: 1; text-align: right">
|
|
|
|
|
(水电煤等费用付款)
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:supply v-if="form.is_simple">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
<span
|
|
|
|
|
style="
|
|
|
|
|
color: red;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
padding-right: 4px;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
"
|
|
|
|
|
>*</span
|
|
|
|
|
>承包商/供货商
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="form.supply"
|
|
|
|
|
placeholder="请填写承包商/供货商"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:money v-if="form.is_simple">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
<span
|
|
|
|
|
style="
|
|
|
|
|
color: red;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
padding-right: 4px;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
"
|
|
|
|
|
>*</span
|
|
|
|
|
>合同金额
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
placeholder="请填写合同金额"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:type v-if="!form.is_simple">
|
|
|
|
|
<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-select
|
|
|
|
|
v-model="form.type"
|
|
|
|
|
placeholder="请选择项目类型"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in type"
|
|
|
|
|
:label="item.label"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:methods v-if="!form.is_simple">
|
|
|
|
|
<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-select
|
|
|
|
|
ref="methodInput"
|
|
|
|
|
v-model="form.methods"
|
|
|
|
|
placeholder="请选择采购形式"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
@change="showIsFramework"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseType"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:modality v-if="!form.is_simple">
|
|
|
|
|
<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-select
|
|
|
|
|
v-model="form.modality"
|
|
|
|
|
placeholder="请选择采购类型"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseWayFormat()"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:price v-if="!form.is_simple">
|
|
|
|
|
<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
|
|
|
|
|
v-model="form.price"
|
|
|
|
|
placeholder="请填写采购预算价"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:fundingChannels>
|
|
|
|
|
<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-select
|
|
|
|
|
v-model="form.fundingChannels"
|
|
|
|
|
multiple
|
|
|
|
|
placeholder="请选择资金渠道"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in moneyWay"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- <template v-slot:isBudget>-->
|
|
|
|
|
<!-- <div class="xy-table-item">-->
|
|
|
|
|
<!-- <div class="xy-table-item-label" style="width: 200px">-->
|
|
|
|
|
<!-- <span style="color: red; font-weight: 600; padding-right: 4px"-->
|
|
|
|
|
<!-- >*</span-->
|
|
|
|
|
<!-- >是否为预算内确定项目-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- <div class="xy-table-item-content">-->
|
|
|
|
|
<!-- <el-switch v-model="form.isBudget" />-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </template>-->
|
|
|
|
|
<template v-slot:is_substitute v-if="!form.is_simple">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">
|
|
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
|
|
>*</span
|
|
|
|
|
>是否为代建项目
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_substitute"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:is_framework v-if="isShowIsFramework">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">
|
|
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
|
|
>*</span
|
|
|
|
|
>是否新生成框架协议
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_framework"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:use_framework_buy>
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">
|
|
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
|
|
>*</span
|
|
|
|
|
>是否使用框架协议采购内容
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.use_framework_buy"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
@change="showIsFramework"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:contract_to_contracts v-if="form.use_framework_buy">
|
|
|
|
|
<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">
|
|
|
|
|
<div
|
|
|
|
|
class="contract-add-plan"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
@click="isShowContractToContracts = true"
|
|
|
|
|
>
|
|
|
|
|
<template v-if="selections.length > 0">
|
|
|
|
|
<template v-for="item in selections">
|
|
|
|
|
<Tag
|
|
|
|
|
closable
|
|
|
|
|
color="primary"
|
|
|
|
|
@on-close="delSelections(item)"
|
|
|
|
|
>{{ item.name }}</Tag
|
|
|
|
|
>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<div class="contract-add-plan-no-plan">
|
|
|
|
|
请选择关联的框架协议合同
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:plan>
|
|
|
|
|
<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">
|
|
|
|
|
<div
|
|
|
|
|
class="contract-add-plan"
|
|
|
|
|
style="width: 300px"
|
|
|
|
|
@click="showPlan"
|
|
|
|
|
>
|
|
|
|
|
<template v-if="form.plan.length > 0">
|
|
|
|
|
<template v-for="item in form.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>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 搜索使用 预算计划 -->
|
|
|
|
|
<xy-dialog
|
|
|
|
|
:is-show.sync="isShowPlanForSearch"
|
|
|
|
|
@ -1176,6 +694,21 @@
|
|
|
|
|
<oaFiles ref="oaFiles"></oaFiles>
|
|
|
|
|
|
|
|
|
|
<addContractLedger ref="addContractLedger" @refresh="getContracts"></addContractLedger>
|
|
|
|
|
|
|
|
|
|
<!-- oa办理-->
|
|
|
|
|
<Modal
|
|
|
|
|
:width="86"
|
|
|
|
|
class-name="oa-modal"
|
|
|
|
|
title="流程办理"
|
|
|
|
|
fullscreen
|
|
|
|
|
:mask-closable="false"
|
|
|
|
|
v-model="isShowOaModal"
|
|
|
|
|
footer-hide
|
|
|
|
|
>
|
|
|
|
|
<div style="width: 100%;height: 100%;">
|
|
|
|
|
<iframe style="width: 100%;height: 100%;border-radius: 0 0 6px 6px;" :src="oaUrl" frameborder="0"></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</Modal>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -1304,6 +837,8 @@ export default {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
isShowOaModal: false,
|
|
|
|
|
oaUrl: "",
|
|
|
|
|
//事前流程
|
|
|
|
|
flowIds: [
|
|
|
|
|
{
|
|
|
|
|
@ -1602,16 +1137,18 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
flowStatus: new Map([
|
|
|
|
|
[0, "-"],
|
|
|
|
|
[1, "待申请"],
|
|
|
|
|
[2, "流转中"],
|
|
|
|
|
[3, "已办结"]
|
|
|
|
|
[2, "待申请"],
|
|
|
|
|
[-1, "已退回"],
|
|
|
|
|
[-2, "-"],
|
|
|
|
|
[0, "流转中"],
|
|
|
|
|
[1, "已办结"]
|
|
|
|
|
]),
|
|
|
|
|
flowStatusColor: new Map([
|
|
|
|
|
[0, "rgb(140, 140, 140)"],
|
|
|
|
|
[1, "rgb(96, 109, 241)"],
|
|
|
|
|
[2, "rgb(219, 122, 122)"],
|
|
|
|
|
[3, "rgb(147, 201, 134)"]
|
|
|
|
|
[-2, "rgb(140, 140, 140)"],
|
|
|
|
|
[-1, "#dca550"],
|
|
|
|
|
[2, "rgb(96, 109, 241)"],
|
|
|
|
|
[0, "rgb(219, 122, 122)"],
|
|
|
|
|
[1, "rgb(147, 201, 134)"]
|
|
|
|
|
]),
|
|
|
|
|
table: [
|
|
|
|
|
{
|
|
|
|
|
@ -1691,15 +1228,12 @@ export default {
|
|
|
|
|
width: 158,
|
|
|
|
|
prop: "purchase_status",
|
|
|
|
|
customFn:row => {
|
|
|
|
|
if (!row.FLOWSTATUS.caigou.getStatus()) {
|
|
|
|
|
return (<span style="color: rgb(140, 140, 140)">无</span>);
|
|
|
|
|
}
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.caigou.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.caigou.getStatus()) }</span>
|
|
|
|
|
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.caigou.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.caigou.getStatus()) || '无2' }</span>
|
|
|
|
|
<br/>
|
|
|
|
|
{
|
|
|
|
|
(row.FLOWSTATUS.caigou.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>this.toOaDetail('caigou',row)}}>查看</a> : ''
|
|
|
|
|
(row.FLOWSTATUS.caigou.getStatus() !== 2 && row.FLOWSTATUS.caigou.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>this.toOaDetail('caigou',row)}}>查看</a> : ''
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
@ -1718,7 +1252,7 @@ export default {
|
|
|
|
|
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.zhaobiao.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.zhaobiao.getStatus()) }</span>
|
|
|
|
|
<br/>
|
|
|
|
|
{
|
|
|
|
|
(row.FLOWSTATUS.zhaobiao.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
|
|
|
|
|
(row.FLOWSTATUS.zhaobiao.getStatus() !== 2 && row.FLOWSTATUS.zhaobiao.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>{
|
|
|
|
|
this.$refs['biddingUpload'].setId(row.id)
|
|
|
|
|
this.$refs['biddingUpload'].show()
|
|
|
|
|
}}}>查看</a> : ''
|
|
|
|
|
@ -2209,10 +1743,13 @@ export default {
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
async toOaDetail (tbname,row) {
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_URL}/flow/view/`
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_URL}/#/flow/detail?auth_token=${window.encodeURIComponent(getToken())}&isSinglePage=1&flow_id=`
|
|
|
|
|
//let url = `${process.env.VUE_APP_OUT_URL}?auth_token=${window.encodeURIComponent(getToken())}&module_name=oa&isSinglePage=1&`
|
|
|
|
|
switch (tbname) {
|
|
|
|
|
case "caigou":
|
|
|
|
|
url += row.purchase_last_flow_id
|
|
|
|
|
let caigou = row.flow_list.find(i => i.tag === 'caigou')?.detail
|
|
|
|
|
//url += `&to=/flow/detail?flow_id=${caigou.id}`
|
|
|
|
|
url += caigou?.id
|
|
|
|
|
break;
|
|
|
|
|
case "hetong":
|
|
|
|
|
url += row.join_last_flow_id
|
|
|
|
|
@ -2223,11 +1760,8 @@ export default {
|
|
|
|
|
default:
|
|
|
|
|
url = `${process.env.VUE_APP_OUT_URL}/flow/list/todo`
|
|
|
|
|
}
|
|
|
|
|
window.open(
|
|
|
|
|
url,
|
|
|
|
|
"detail",
|
|
|
|
|
`top=${this.window.top},left=${this.window.left},width=${this.window.width},height=${this.window.height},location=0`
|
|
|
|
|
);
|
|
|
|
|
this.oaUrl = url
|
|
|
|
|
this.isShowOaModal = true
|
|
|
|
|
},
|
|
|
|
|
reset () {
|
|
|
|
|
this.select = deepCopy(this.selectCopy)
|
|
|
|
|
@ -2356,56 +1890,50 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 29:
|
|
|
|
|
case 19:
|
|
|
|
|
case 71:
|
|
|
|
|
baseInfo = {
|
|
|
|
|
"flow_title": row.name || "",
|
|
|
|
|
"65852a58c7bad": row.name || "",
|
|
|
|
|
"65852ae259b09": this.purchaseWay.find(i => i.id === row.purchase_way_id)?.value || "",
|
|
|
|
|
"65852ba4697e7": row?.plans.reduce((pre,cur,index)=>(index === 0 ? cur?.name : pre+cur?.name+","),"") || "",
|
|
|
|
|
"65852bd7afd2f": row.plan_price || "",
|
|
|
|
|
"65852bc914b8d": row.plan_price || "",
|
|
|
|
|
"65852c08d98f5": row.content || "",
|
|
|
|
|
"65852a7d0c9b4": this.groupType.find(i => i.id === row.group_type)?.value || "",
|
|
|
|
|
"caigouxiangmu": row.name || "",
|
|
|
|
|
"caigoufangshi": this.purchaseWay.find(i => i.id === row.purchase_way_id)?.value || "",
|
|
|
|
|
"zijinlaiyuan": row?.plans.reduce((pre,cur,index)=>(index === 0 ? cur?.name : pre+cur?.name+","),"") || "",
|
|
|
|
|
"caigoujine": row.plan_price || "",
|
|
|
|
|
"caigouxiangmushuoming": row.content || "",
|
|
|
|
|
"zuzhixingshi": this.groupType.find(i => i.id === row.group_type)?.value || "",
|
|
|
|
|
"caigouxingshi": row.purchase_type.value
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
baseInfo = {
|
|
|
|
|
"flow_title": row.name || ""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// let res = await getOatoken()
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_OLD}/flow/create/${row.flow_mod_id}?auth_token=${this.$store.getters.oa_token}&out_contract_id=${
|
|
|
|
|
row.id
|
|
|
|
|
}&default_json=${JSON.stringify(baseInfo)}`;
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_OLD}/#/flow/create?auth_token=${window.encodeURIComponent(getToken())}&module_name=oa&isSinglePage=1&module_id=${row.flow_mod_id}&out_contract_id=${row.id}&default_json=${JSON.stringify(baseInfo)}`;
|
|
|
|
|
console.log('url',url)
|
|
|
|
|
let buyProcess = window.open(
|
|
|
|
|
url,
|
|
|
|
|
"buyProcess",
|
|
|
|
|
`top=${this.window.top},left=${this.window.left},width=${this.window.width},height=${this.window.height},location=0`
|
|
|
|
|
);
|
|
|
|
|
// let buyProcess = window.open(
|
|
|
|
|
// url,
|
|
|
|
|
// "buyProcess",
|
|
|
|
|
// `top=${this.window.top},left=${this.window.left},width=${this.window.width},height=${this.window.height},location=0`
|
|
|
|
|
// );
|
|
|
|
|
this.oaUrl = url
|
|
|
|
|
this.isShowOaModal = true
|
|
|
|
|
},
|
|
|
|
|
//会签流程
|
|
|
|
|
async signProcess(row) {
|
|
|
|
|
// 72
|
|
|
|
|
this.setNowContract(row, "hetong");
|
|
|
|
|
let baseInfo = {
|
|
|
|
|
"flow_title": row.name || "",
|
|
|
|
|
"65b37d8c6a94c": row?.name,
|
|
|
|
|
"658a6bc82d0b2": Number(row?.money) || row?.plan_price,
|
|
|
|
|
"hetongmingcheng": row?.name,
|
|
|
|
|
"amt": Number(row?.money) || row?.plan_price,
|
|
|
|
|
out_contract_id: row.id,
|
|
|
|
|
"658a6c125e4e6": row.content,
|
|
|
|
|
"658a6c009002e": row.supply
|
|
|
|
|
//"承包商\\供应商":row.supply
|
|
|
|
|
"zhuyaoneirong": row.content,
|
|
|
|
|
"jiafang": row.supply
|
|
|
|
|
};
|
|
|
|
|
// let res = await getOatoken()
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_OLD}/flow/create/20?&auth_token=${this.$store.getters.oa_token}&out_contract_id=${
|
|
|
|
|
row.id
|
|
|
|
|
}&default_json=${JSON.stringify(baseInfo)}`;
|
|
|
|
|
let signProcess = window.open(
|
|
|
|
|
url,
|
|
|
|
|
"signProcess",
|
|
|
|
|
`top=${this.window.top},left=${this.window.left},width=${this.window.width},height=${this.window.height},location=0`
|
|
|
|
|
);
|
|
|
|
|
let url = `${process.env.VUE_APP_OUT_OLD}/#/flow/create?auth_token=${window.encodeURIComponent(getToken())}&module_name=oa&isSinglePage=1&module_id=72&out_contract_id=${row.id}&default_json=${JSON.stringify(baseInfo)}`;
|
|
|
|
|
|
|
|
|
|
this.oaUrl = url;
|
|
|
|
|
this.isShowOaModal = true;
|
|
|
|
|
},
|
|
|
|
|
//付款流程
|
|
|
|
|
async paying(row) {
|
|
|
|
|
@ -2583,6 +2111,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
res.list.data.forEach(i => this.handleContractFlow(i))
|
|
|
|
|
this.list = res.list.data;
|
|
|
|
|
console.log(this.list)
|
|
|
|
|
this.total = res.list.total;
|
|
|
|
|
this.tableTotal.fundLogTotal = res.fund_log_total;
|
|
|
|
|
this.tableTotal.moneyTotal = Number(res.money_total)
|
|
|
|
|
@ -2822,7 +2351,7 @@ export default {
|
|
|
|
|
class Flow {
|
|
|
|
|
status = 0
|
|
|
|
|
executable = false
|
|
|
|
|
constructor(status=0, executable=false) {
|
|
|
|
|
constructor(status=-2, executable=false) {
|
|
|
|
|
this.status = status
|
|
|
|
|
this.executable = executable
|
|
|
|
|
}
|
|
|
|
|
@ -2838,10 +2367,14 @@ export default {
|
|
|
|
|
return this.status
|
|
|
|
|
}
|
|
|
|
|
isEnabled () {
|
|
|
|
|
return this.executable && (this.status === 1 || this.status === "")
|
|
|
|
|
return this.executable && (this.status === 2 || this.status === "")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//0无该流程,1未开始,2进行中,3已完成(合同签订1待签订,2已签订)
|
|
|
|
|
// [2, "待申请"],
|
|
|
|
|
// [-1, "已退回"],
|
|
|
|
|
// [-2, "-"],
|
|
|
|
|
// [0, "流转中"],
|
|
|
|
|
// [1, "已办结"]
|
|
|
|
|
let flowStatus = {
|
|
|
|
|
"caigou": new Flow(),
|
|
|
|
|
"zhaobiao": new Flow(),
|
|
|
|
|
@ -2850,40 +2383,40 @@ export default {
|
|
|
|
|
"zhifu": new Flow(),
|
|
|
|
|
"other": new Flow()
|
|
|
|
|
}
|
|
|
|
|
const caigou = item.flow_list.find(i => i.tag === 'caigou')?.detail
|
|
|
|
|
const shenpi = item.flow_list.find(i => i.tag === 'contract')?.detail
|
|
|
|
|
if (item.is_purchase) {
|
|
|
|
|
//为采购项目
|
|
|
|
|
if (item.is_simple !== 1 && !item.is_substitute) {
|
|
|
|
|
//不为简易 采购未开始
|
|
|
|
|
|
|
|
|
|
flowStatus["caigou"].setStatus(item.purchase_status)
|
|
|
|
|
if (item.purchase_status === 1) {
|
|
|
|
|
flowStatus["caigou"].setStatus(caigou?.status ?? 2)
|
|
|
|
|
if (!caigou) {
|
|
|
|
|
//采购未开始
|
|
|
|
|
if (item.is_plan === 1 || (item.is_plan === 0 && item.req_status === 3)) {
|
|
|
|
|
//不为预算时,请示流程完成
|
|
|
|
|
if (item.is_plan === 1) {
|
|
|
|
|
flowStatus["caigou"].setExecutable(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (item.purchase_way?.value !== '网上商城' && item.is_contract && item.purchase_way?.remark === 'true' && !item.is_substitute) {
|
|
|
|
|
//不为网上商场 是合同\
|
|
|
|
|
flowStatus["zhaobiao"].setStatus(item.invite_status)
|
|
|
|
|
if (item.invite_status === 1 && item.purchase_status === 3) {
|
|
|
|
|
flowStatus["zhaobiao"].setStatus(item.invite_status ?? 2)
|
|
|
|
|
if ((!item.invite_status || item.invite_status === 2) && caigou?.status === 1) {
|
|
|
|
|
//采购完成,招标未开始
|
|
|
|
|
flowStatus["zhaobiao"].setExecutable(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (item.is_contract && item.purchase_way?.value !== "网上商城") {
|
|
|
|
|
//为合同 不为网上商城
|
|
|
|
|
flowStatus["shenpi"].setStatus(item.join_status)
|
|
|
|
|
if (item.join_status === 1 && (item.invite_status === 3 ||
|
|
|
|
|
((item.purchase_way?.remark === 'false' || item.flow_mod_id === 5 || item.flow_mod_id === 29) && item.purchase_status === 3))) {
|
|
|
|
|
flowStatus["shenpi"].setStatus(shenpi?.status ?? 2)
|
|
|
|
|
if ((!shenpi?.status || shenpi?.status === 2) && (item.invite_status === 1 ||
|
|
|
|
|
((item.purchase_way?.remark === 'false' || item.flow_mod_id === 5 || item.flow_mod_id === 29) && caigou?.status === 1))) {
|
|
|
|
|
//审批未开始 走招标招标完成或不走招标采购完成
|
|
|
|
|
flowStatus["shenpi"].setExecutable(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (item.is_contract && item.purchase_way?.value !== "网上商城" && !item.is_substitute) {
|
|
|
|
|
flowStatus["qianding"].setStatus(item.status)
|
|
|
|
|
if (item.join_status === 3 && item.status === 1) {
|
|
|
|
|
if (shenpi?.status === 1 && item.status === 1) {
|
|
|
|
|
flowStatus["qianding"].setExecutable(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -3074,3 +2607,14 @@ a:hover {
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
.oa-modal {
|
|
|
|
|
|
|
|
|
|
.ivu-modal-body {
|
|
|
|
|
max-height: calc(100vh - 51px)!important;
|
|
|
|
|
padding: 0 !important;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|