|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<el-steps :active="step" align-center>
|
|
|
|
|
<el-steps :active="step" align-center v-if="myPurchaseType === 1">
|
|
|
|
|
<el-step title="选择预算计划"> </el-step>
|
|
|
|
|
<el-step title="新增预算支出事项"> </el-step>
|
|
|
|
|
<el-step title="新增成功"> </el-step>
|
|
|
|
|
@ -119,7 +119,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<el-card v-show="step === 2">
|
|
|
|
|
<el-popover placement="right-start" width="660" trigger="click">
|
|
|
|
|
<el-popover placement="right-start" width="660" trigger="click" v-if="myPurchaseType === 1">
|
|
|
|
|
<xy-table
|
|
|
|
|
:list="planSelections"
|
|
|
|
|
size="mini"
|
|
|
|
|
@ -158,291 +158,329 @@
|
|
|
|
|
|
|
|
|
|
<Divider></Divider>
|
|
|
|
|
|
|
|
|
|
<el-form
|
|
|
|
|
ref="form"
|
|
|
|
|
class="el-form-body"
|
|
|
|
|
label-position="left"
|
|
|
|
|
size="small"
|
|
|
|
|
:model="form"
|
|
|
|
|
:rules="rules"
|
|
|
|
|
label-width="180px"
|
|
|
|
|
>
|
|
|
|
|
<el-form-item prop="name" label="项目名称">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请填写项目名称"
|
|
|
|
|
v-model="form.name"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<template v-if="!isLedger">
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_contract"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
<template v-if="myPurchaseType === 1">
|
|
|
|
|
<el-form
|
|
|
|
|
ref="form"
|
|
|
|
|
class="el-form-body"
|
|
|
|
|
label-position="left"
|
|
|
|
|
size="small"
|
|
|
|
|
:model="form"
|
|
|
|
|
:rules="rules"
|
|
|
|
|
label-width="180px"
|
|
|
|
|
>
|
|
|
|
|
<el-form-item prop="name" label="项目名称">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请填写项目名称"
|
|
|
|
|
v-model="form.name"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_simple" label="是否为直接支付">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_simple"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
@change="isSimpleChange"
|
|
|
|
|
/>
|
|
|
|
|
<span style="flex: 1; text-align: right">(无需采购流程,如水电邮寄费等)</span>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<template v-if="!isLedger">
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_contract"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_trade" label="是否为工会项目">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_trade"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_simple" label="是否为直接支付">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_simple"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
@change="isSimpleChange"
|
|
|
|
|
/>
|
|
|
|
|
<span style="flex: 1; text-align: right">(无需采购流程,如水电邮寄费等)</span>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="flow_mod_id" label="事前流程">
|
|
|
|
|
<el-select v-model="form.flow_mod_id" style="width: 100%">
|
|
|
|
|
<el-option v-for="item in flowIdsFormat" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item v-if="!isOtherFlow" prop="is_trade" label="是否为工会项目">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_trade"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money_way_id" label="资金渠道">
|
|
|
|
|
<el-select
|
|
|
|
|
multiple
|
|
|
|
|
size="small"
|
|
|
|
|
clearable
|
|
|
|
|
disabled
|
|
|
|
|
placeholder="请选择资金渠道"
|
|
|
|
|
:value="
|
|
|
|
|
<el-form-item prop="flow_mod_id" label="事前流程">
|
|
|
|
|
<el-select v-model="form.flow_mod_id" style="width: 100%">
|
|
|
|
|
<el-option v-for="item in flowIdsFormat" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money_way_id" label="资金渠道">
|
|
|
|
|
<el-select
|
|
|
|
|
multiple
|
|
|
|
|
size="small"
|
|
|
|
|
clearable
|
|
|
|
|
disabled
|
|
|
|
|
placeholder="请选择资金渠道"
|
|
|
|
|
:value="
|
|
|
|
|
form.money_way_id
|
|
|
|
|
? form.money_way_id.split(',').map((i) => Number(i))
|
|
|
|
|
: []
|
|
|
|
|
"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
@change="
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
@change="
|
|
|
|
|
(e) => {
|
|
|
|
|
form.money_way_id = e.length > 0 ? e.toString() : '';
|
|
|
|
|
}
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in moneyWay"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<template v-if="form.is_simple">
|
|
|
|
|
<el-form-item prop="supply" label="承包商/供货商">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="form.supply"
|
|
|
|
|
placeholder="请填写承包商/供货商"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money" label="金额(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-form-item prop="type" label="项目类型" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择项目类型"
|
|
|
|
|
v-model="form.type"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in types"
|
|
|
|
|
:label="item.label"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
v-for="item in moneyWay"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="purchase_type_id" label="采购形式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
ref="purchaseTypeInput"
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择采购形式"
|
|
|
|
|
v-model="form.purchase_type_id"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
<template v-if="form.is_simple">
|
|
|
|
|
<el-form-item prop="supply" label="承包商/供货商">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="form.supply"
|
|
|
|
|
placeholder="请填写承包商/供货商"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money" label="金额(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-form-item prop="type" label="项目类型" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择项目类型"
|
|
|
|
|
v-model="form.type"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in types"
|
|
|
|
|
:label="item.label"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="purchase_type_id" label="采购形式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
ref="purchaseTypeInput"
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择采购形式"
|
|
|
|
|
v-model="form.purchase_type_id"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseType"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="purchase_way_id" label="采购方式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择采购方式"
|
|
|
|
|
v-model="form.purchase_way_id"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseWay"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="group_type" label="组织形式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择组织形式"
|
|
|
|
|
v-model="form.group_type"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in groupType"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="plan_price" label="预算价(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.plan_price"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="!isOtherFlow"
|
|
|
|
|
prop="use_framework_buy"
|
|
|
|
|
label="是否使用框架协议采购内容"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.use_framework_buy"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="!isOtherFlow"
|
|
|
|
|
prop="is_framework"
|
|
|
|
|
label="是否新生成框架协议"
|
|
|
|
|
v-show="isShowIsFramework"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_framework"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item
|
|
|
|
|
prop="contract_to_contracts"
|
|
|
|
|
label="关联的框架协议合同"
|
|
|
|
|
v-show="form.use_framework_buy"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
class="form__contract-to-contracts--no"
|
|
|
|
|
@click="isShowContractToContracts = true"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseType"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
请选择关联的框架协议合同
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="contractToContractsSelections.length > 0">
|
|
|
|
|
<Tag type="dot"
|
|
|
|
|
closable
|
|
|
|
|
v-for="(i,index) in contractToContractsSelections"
|
|
|
|
|
:color="['primary','success','error','warning'][index%4]"
|
|
|
|
|
:key="i.id"
|
|
|
|
|
@on-close="closeTag(i)">{{ i.name.slice(0,17) }}</Tag>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-form-item prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
disabled
|
|
|
|
|
:value="true"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="purchase_way_id" label="采购方式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择采购方式"
|
|
|
|
|
v-model="form.purchase_way_id"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in purchaseWay"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
<el-form-item prop="contract_type" label="是否需要签订合同">
|
|
|
|
|
<el-select style="width: 100%" v-model="form.contract_type">
|
|
|
|
|
<el-option v-for="(item,index) in contractTypes" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="group_type" label="组织形式" v-if="isNeedMore">
|
|
|
|
|
<el-select
|
|
|
|
|
clearable
|
|
|
|
|
placeholder="请选择组织形式"
|
|
|
|
|
v-model="form.group_type"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in groupType"
|
|
|
|
|
:label="item.value"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
<el-form-item prop="supply" label="承包商\供应商">
|
|
|
|
|
<el-input style="width: 100%;" placeholder="请填写承包商\供应商" v-model="form.supply" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="plan_price" label="预算价(元)">
|
|
|
|
|
<el-form-item prop="money" label="金额(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.plan_price"
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="!isOtherFlow"
|
|
|
|
|
prop="use_framework_buy"
|
|
|
|
|
label="是否使用框架协议采购内容"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.use_framework_buy"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="!isOtherFlow"
|
|
|
|
|
prop="is_framework"
|
|
|
|
|
label="是否新生成框架协议"
|
|
|
|
|
v-show="isShowIsFramework"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_framework"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item
|
|
|
|
|
prop="contract_to_contracts"
|
|
|
|
|
label="关联的框架协议合同"
|
|
|
|
|
v-show="form.use_framework_buy"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
class="form__contract-to-contracts--no"
|
|
|
|
|
@click="isShowContractToContracts = true"
|
|
|
|
|
<el-form-item
|
|
|
|
|
prop="is_framework"
|
|
|
|
|
label="是否新生成框架协议"
|
|
|
|
|
v-show="isShowIsFramework"
|
|
|
|
|
>
|
|
|
|
|
请选择关联的框架协议合同
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="contractToContractsSelections.length > 0">
|
|
|
|
|
<Tag type="dot"
|
|
|
|
|
closable
|
|
|
|
|
v-for="(i,index) in contractToContractsSelections"
|
|
|
|
|
:color="['primary','success','error','warning'][index%4]"
|
|
|
|
|
:key="i.id"
|
|
|
|
|
@on-close="closeTag(i)">{{ i.name.slice(0,17) }}</Tag>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-form-item prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
disabled
|
|
|
|
|
:value="true"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
<el-switch
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-form>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-if="myPurchaseType === 2">
|
|
|
|
|
<el-form
|
|
|
|
|
ref="form"
|
|
|
|
|
class="el-form-body"
|
|
|
|
|
label-position="left"
|
|
|
|
|
size="small"
|
|
|
|
|
:model="form"
|
|
|
|
|
:rules="rules"
|
|
|
|
|
label-width="180px"
|
|
|
|
|
>
|
|
|
|
|
<el-form-item prop="name" label="一般采购类型">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请填写一般采购类型"
|
|
|
|
|
v-model="form.common_type"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
@change="e => form.name = `${e}(${$moment().format('YYYY-MM-DD HH:mm')})`"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="contract_type" label="是否需要签订合同">
|
|
|
|
|
<el-select style="width: 100%" v-model="form.contract_type">
|
|
|
|
|
<el-option v-for="(item,index) in contractTypes" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="supply" label="承包商\供应商">
|
|
|
|
|
<el-input style="width: 100%;" placeholder="请填写承包商\供应商" v-model="form.supply" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money" label="金额(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
<el-form-item prop="name" label="项目名称">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请填写项目名称"
|
|
|
|
|
v-model="form.name"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
prop="is_framework"
|
|
|
|
|
label="是否新生成框架协议"
|
|
|
|
|
v-show="isShowIsFramework"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
<el-form-item prop="remark" label="备注">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请填写备注"
|
|
|
|
|
type="textarea"
|
|
|
|
|
:autosize="{ minRows: 2 }"
|
|
|
|
|
v-model="form.remark"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-form>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<div style="text-align: center">
|
|
|
|
|
<el-button style="margin-top: 12px" @click="forwardStep"
|
|
|
|
|
<el-button style="margin-top: 12px" v-if="myPurchaseType === 1" @click="forwardStep"
|
|
|
|
|
>上一步</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
@ -850,6 +888,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import { MessageBox } from 'element-ui'
|
|
|
|
|
import { getparameter, getparameterTree } from '@/api/system/dictionary'
|
|
|
|
|
import {
|
|
|
|
|
addContrant,
|
|
|
|
|
@ -862,10 +901,11 @@ import { getBudget } from "@/api/budget/budget";
|
|
|
|
|
|
|
|
|
|
import { getInfo } from "@/api/me.js";
|
|
|
|
|
import { listdeptNoAuth } from '@/api/system/department'
|
|
|
|
|
import {deepCopy} from "@/utils";
|
|
|
|
|
import { deepCopy } from "@/utils";
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
myPurchaseType: 1, // 1政府采购 2一般采购
|
|
|
|
|
//事前流程
|
|
|
|
|
flowIds: [{"name":"政府采购流转","id":71,"type":2},{"name":"公务接待","id":86,"type":1},{"name":"会议费用","id":87,"type":1},{"name":"培训费","id":88,"type":1},{"name":"用印","id":76,"type":1},{"name":"仪器设备维修流转","id":84,"type":1},{"name":"请休假","id":68,"type":1},{"name":"仪器设备购置流转","id":82,"type":1},{"name":"安装、维修流转","id":96,"type":1},{"name":"车船维修保养流转","id":97,"type":1}],
|
|
|
|
|
window: {
|
|
|
|
|
@ -910,7 +950,10 @@ export default {
|
|
|
|
|
contract_to_contracts: [],
|
|
|
|
|
outcome_type: 1,
|
|
|
|
|
is_purchase: 1,
|
|
|
|
|
is_trade: 0
|
|
|
|
|
is_trade: 0,
|
|
|
|
|
remark: '',
|
|
|
|
|
is_common_purchase: 0,
|
|
|
|
|
common_type: ''
|
|
|
|
|
},
|
|
|
|
|
planTypes: [],
|
|
|
|
|
departments: [],
|
|
|
|
|
@ -1321,13 +1364,6 @@ export default {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
dataHandler(res?.children)
|
|
|
|
|
console.log("this.moneyWay",this.moneyWay)
|
|
|
|
|
// this.moneyWay =
|
|
|
|
|
// (
|
|
|
|
|
// await getparameter({
|
|
|
|
|
// number: "money_way",
|
|
|
|
|
// })
|
|
|
|
|
// )?.detail || [];
|
|
|
|
|
},
|
|
|
|
|
//获取购买方式
|
|
|
|
|
async getPurchaseWay() {
|
|
|
|
|
@ -1362,13 +1398,6 @@ export default {
|
|
|
|
|
const res = await getparameter({
|
|
|
|
|
number: "flow_ids"
|
|
|
|
|
})
|
|
|
|
|
console.log(345, res?.detail?.filter(i => i.status)?.map(i => {
|
|
|
|
|
let data = JSON.parse(i.remark)
|
|
|
|
|
return {
|
|
|
|
|
name: i.value,
|
|
|
|
|
...data
|
|
|
|
|
}
|
|
|
|
|
}))
|
|
|
|
|
try {
|
|
|
|
|
this.flowIds = res?.detail?.filter(i => i.status)?.map(i => {
|
|
|
|
|
let data = JSON.parse(i.remark)
|
|
|
|
|
@ -1377,7 +1406,6 @@ export default {
|
|
|
|
|
...data
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
console.log(333, this.flowIds)
|
|
|
|
|
}catch (e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
this.flowIds = copy
|
|
|
|
|
@ -1470,7 +1498,7 @@ export default {
|
|
|
|
|
} else {
|
|
|
|
|
this.form.contract_plan_links = []
|
|
|
|
|
}
|
|
|
|
|
this.form.is_purchase = this.flowIds?.find(i => i.id == this.form.flow_mod_id)?.type == 2 ? 1 : 0;
|
|
|
|
|
this.form.is_purchase = (this.flowIds?.find(i => i.id == this.form.flow_mod_id)?.type == 2 ? 1 : 0) || this.form.is_common_purchase;
|
|
|
|
|
// this.form.is_contract = this.flowIds?.find(i => i.id == this.form.flow_mod_id)?.type == 2 ? 0 : 1;
|
|
|
|
|
if (!this.form.money) {
|
|
|
|
|
this.form.money = this.form.plan_price
|
|
|
|
|
@ -1519,53 +1547,6 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async buyProcess(row) {
|
|
|
|
|
let baseInfo = {}
|
|
|
|
|
switch (row.flow_mod_id) {
|
|
|
|
|
case 12:
|
|
|
|
|
baseInfo = {
|
|
|
|
|
"flow_title": row.name || "",
|
|
|
|
|
"6583b42c5c29a": row.name,
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
baseInfo = {
|
|
|
|
|
"flow_title": row.name || "",
|
|
|
|
|
"65b37c797845d": row.name,
|
|
|
|
|
"65b37c8facfc9": row.content,
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 29:
|
|
|
|
|
case 19:
|
|
|
|
|
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 || "",
|
|
|
|
|
"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)}`;
|
|
|
|
|
console.log('url',url)
|
|
|
|
|
window.open(
|
|
|
|
|
url,
|
|
|
|
|
"buyProcess",
|
|
|
|
|
`top=${this.window.top},left=${this.window.left},width=${this.window.width},height=${this.window.height},location=0`
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取预算计划
|
|
|
|
|
async getBudgets() {
|
|
|
|
|
let res = await getBudget(this.planSelect);
|
|
|
|
|
@ -1617,7 +1598,10 @@ export default {
|
|
|
|
|
contract_to_contracts: [],
|
|
|
|
|
outcome_type: 1,
|
|
|
|
|
is_purchase: 1,
|
|
|
|
|
is_trade: 0
|
|
|
|
|
is_trade: 0,
|
|
|
|
|
remark: '',
|
|
|
|
|
is_common_purchase: this.myPurchaseType === 2,
|
|
|
|
|
common_type: '',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.$refs["form"].clearValidate();
|
|
|
|
|
@ -1638,22 +1622,10 @@ export default {
|
|
|
|
|
id: this.contractId
|
|
|
|
|
})
|
|
|
|
|
this.form = {
|
|
|
|
|
type: res?.type,
|
|
|
|
|
is_plan: res?.is_plan,
|
|
|
|
|
purchase_type_id: res?.purchase_type_id,
|
|
|
|
|
is_contract: res?.is_contract,
|
|
|
|
|
purchase_way_id: res?.purchase_way_id,
|
|
|
|
|
money_way_id: res?.money_way_id,
|
|
|
|
|
...res,
|
|
|
|
|
plan_price: Number(res?.plan_price),
|
|
|
|
|
name: res?.name,
|
|
|
|
|
contract_plan_links: [],
|
|
|
|
|
is_simple: res?.is_simple,
|
|
|
|
|
supply: res?.supply,
|
|
|
|
|
money: Number(res?.money),
|
|
|
|
|
status: res?.status,
|
|
|
|
|
is_framework: res?.is_framework,
|
|
|
|
|
use_framework_buy: res?.use_framework_buy,
|
|
|
|
|
content: res?.content,
|
|
|
|
|
contract_to_contracts: [],
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1756,14 +1728,38 @@ export default {
|
|
|
|
|
this.hideFormItem()
|
|
|
|
|
},
|
|
|
|
|
beforeRouteEnter(to, from, next) {
|
|
|
|
|
next(vm => {
|
|
|
|
|
const { contractId } = to.query
|
|
|
|
|
vm.contractId = contractId;
|
|
|
|
|
if (contractId) {
|
|
|
|
|
vm.setType('edit')
|
|
|
|
|
vm.getDetail()
|
|
|
|
|
const { contractId, myPurchaseType } = to.query
|
|
|
|
|
if (contractId) {
|
|
|
|
|
next(vm => {
|
|
|
|
|
vm.contractId = contractId;
|
|
|
|
|
if (contractId) {
|
|
|
|
|
vm.setType('edit')
|
|
|
|
|
vm.getDetail()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
if (myPurchaseType) {
|
|
|
|
|
next(vm => {
|
|
|
|
|
vm.myPurchaseType = Number(myPurchaseType)
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
MessageBox.confirm("请选择类型", "提示", {
|
|
|
|
|
confirmButtonText: "政府采购",
|
|
|
|
|
cancelButtonText: "一般采购"
|
|
|
|
|
}).then(_ => {
|
|
|
|
|
next(vm => {
|
|
|
|
|
vm.myPurchaseType = 1
|
|
|
|
|
vm.form.is_common_purchase = 0
|
|
|
|
|
})
|
|
|
|
|
}).catch(_ => {
|
|
|
|
|
next(vm => {
|
|
|
|
|
vm.step = 2
|
|
|
|
|
vm.myPurchaseType = 2
|
|
|
|
|
vm.form.is_common_purchase = 1
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|