|
|
|
|
@ -7,16 +7,16 @@
|
|
|
|
|
<div>
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">创建日期</span>
|
|
|
|
|
<span>
|
|
|
|
|
<DatePicker type="daterange" placement="bottom-start" placeholder="Select date" style="width: 180px"></DatePicker>
|
|
|
|
|
</span>
|
|
|
|
|
<DatePicker placeholder="请选择日期" type="daterange" placement="bottom-start" style="width: 180px"></DatePicker>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
合同类型
|
|
|
|
|
</span>
|
|
|
|
|
<Select v-model="select.type" style="width:120px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择类型" v-model="select.type" style="width:120px;">
|
|
|
|
|
<Option v-for="item in [{label:'服务',value:1},{label:'货品',value:2},{label:'工程',value:3}]" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -24,8 +24,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
科室
|
|
|
|
|
</span>
|
|
|
|
|
<Select v-model="select.department" style="width:200px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择科室" v-model="select.department" style="width:200px;">
|
|
|
|
|
<Option v-for="item in departments" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -33,8 +33,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
采购形式
|
|
|
|
|
</span>
|
|
|
|
|
<Select v-model="select.purchaseModality" style="width:200px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择采购形式" v-model="select.purchaseModality" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseType" :value="item.id" :key="item.id">{{ item.value }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -42,8 +42,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
采购方式
|
|
|
|
|
</span>
|
|
|
|
|
<Select v-model="select.purchaseMethods" style="width:200px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择采购方式" v-model="select.purchaseMethods" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseWay" :value="item.id" :key="item.id">{{ item.value }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -52,6 +52,7 @@
|
|
|
|
|
预算金额
|
|
|
|
|
</span>
|
|
|
|
|
<InputNumber
|
|
|
|
|
placeholder="最小金额"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="select.priceMax"
|
|
|
|
|
v-model="select.priceMin"
|
|
|
|
|
@ -59,6 +60,7 @@
|
|
|
|
|
:parser="value => value.replace(/$s?|(,*)/g, '')"/>
|
|
|
|
|
<span style="padding: 0 5px;">-</span>
|
|
|
|
|
<InputNumber
|
|
|
|
|
placeholder="最大金额"
|
|
|
|
|
:max="Number.MAX_VALUE"
|
|
|
|
|
:min="select.priceMin"
|
|
|
|
|
v-model="select.priceMax"
|
|
|
|
|
@ -75,74 +77,156 @@
|
|
|
|
|
</slot>
|
|
|
|
|
</lx-header>
|
|
|
|
|
|
|
|
|
|
<xy-table :table-item="table"></xy-table>
|
|
|
|
|
<xy-table :table-item="table" :list="[{}]" @detailClick="isShowDetail = true"></xy-table>
|
|
|
|
|
|
|
|
|
|
<div style="display: flex;justify-content: flex-end;">
|
|
|
|
|
<Page :total="20" show-elevator />
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- 合同详情-->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowDetail" type="normal" title="详情" class="contract-detail">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<div class="base-info">
|
|
|
|
|
<div class="base-info-title">项目基本信息</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目名称</div>
|
|
|
|
|
<div class="base-info-item-content">项目名称</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目类型</div>
|
|
|
|
|
<div class="base-info-item-content">服务</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex;justify-content: space-between;">
|
|
|
|
|
<div class="base-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="base-info-item-title">采购形式</div>
|
|
|
|
|
<div class="base-info-item-content">服务区</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="base-info-item-title">采购方式</div>
|
|
|
|
|
<div class="base-info-item-content">服务</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">项目预算</div>
|
|
|
|
|
<div class="base-info-item-content">50</div>
|
|
|
|
|
<div class="base-info-item-unit">(万)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info-item">
|
|
|
|
|
<div class="base-info-item-title">资金渠道</div>
|
|
|
|
|
<div class="base-info-item-content">部门预算</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="link-budget-plan">
|
|
|
|
|
<div class="link-budget-plan-title">关联预算计划</div>
|
|
|
|
|
<xy-table :height="260" :table-item="linkBudgetPlanTable" :show-index="false" :list="[{}]">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sign-info">
|
|
|
|
|
<div class="sign-info-title">签订信息</div>
|
|
|
|
|
<div class="sign-info-item">
|
|
|
|
|
<div class="sign-info-item-title">合同金额</div>
|
|
|
|
|
<div class="sign-info-item-content">50</div>
|
|
|
|
|
<div class="sign-info-item-unit">(万)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex;justify-content: space-between">
|
|
|
|
|
<div class="sign-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="sign-info-item-title">承包商\供应商</div>
|
|
|
|
|
<div class="sign-info-item-content">某个公司</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sign-info-item" style="flex-basis: 50%">
|
|
|
|
|
<div class="sign-info-item-title">执行部门</div>
|
|
|
|
|
<div class="sign-info-item-content">信息科</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="related-processes">
|
|
|
|
|
<div class="related-processes-title">相关流程</div>
|
|
|
|
|
<div class="related-processes-item">
|
|
|
|
|
<div>采购流程查看</div>
|
|
|
|
|
<div>合同会签流程</div>
|
|
|
|
|
<div>招标审批流程</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="journal">
|
|
|
|
|
<div class="journal-title">日志</div>
|
|
|
|
|
<xy-table :height="240" :table-item="journalTable" :list="[{}]" :show-index="false">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template v-slot:footerContent>
|
|
|
|
|
<div></div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 新增合同 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowAdd" title="新增合同" type="form" :form="form">
|
|
|
|
|
<xy-dialog :is-show.sync="isShowAdd" title="新增合同" type="form" :form="form" :rules="rules" @submit="submit">
|
|
|
|
|
<template v-slot:name>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>项目名称</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>项目名称</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input v-model="form.name" style="width: 300px;"/>
|
|
|
|
|
<Input placeholder="请填写项目名称" v-model="form.name" style="width: 300px;"/>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:type>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>预算类型</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>项目类型</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select v-model="form.type" style="width: 300px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择项目类型" v-model="form.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>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>采购类型</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>采购类型</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select v-model="form.methods" style="width: 300px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择采购类型" v-model="form.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>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>采购形式</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>采购形式</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select v-model="form.modality" style="width: 300px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择采购形式" v-model="form.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>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>合同预算价</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>合同预算价</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input v-model="form.price" style="width: 300px;"/>
|
|
|
|
|
<Input placeholder="请填写合同预算价" v-model="form.price" style="width: 300px;"/>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col style="color: red;" offset="1">(万)</Col>
|
|
|
|
|
<Col offset="1">(万)</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:fundingChannels>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>资金渠道</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>资金渠道</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select v-model="form.fundingChannels" style="width: 300px;">
|
|
|
|
|
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select placeholder="请选择资金渠道" v-model="form.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:isBudget>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>是否预算</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>是否预算</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<i-switch v-model="form.isBudget" @on-change="form.isBudget = $event" />
|
|
|
|
|
</Col>
|
|
|
|
|
@ -150,9 +234,9 @@
|
|
|
|
|
</template>
|
|
|
|
|
<template v-if="form.isBudget" v-slot:plan>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>关联预算计划</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>关联预算计划</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input v-model="form.plan" style="width: 300px;" icon="ios-arrow-down" readonly @on-focus="isShowPlan = true"></Input>
|
|
|
|
|
<Input placeholder="请选择关联预算计划" v-model="form.plan" style="width: 300px;" icon="ios-arrow-down" readonly @on-focus="isShowPlan = true,getBudgets()"></Input>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
@ -161,9 +245,9 @@
|
|
|
|
|
<!-- 新增表 预算计划 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlan" title="预算计划" :width="640">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<Input search enter-button="搜 索" placeholder="搜索预算计划.." />
|
|
|
|
|
<Input search enter-button="搜 索" placeholder="搜索预算计划.." @on-search="(value)=>(getBudgets({name:value}))"/>
|
|
|
|
|
|
|
|
|
|
<xy-table :table-item="searchTable" :height="240" style="margin-top: 10px;">
|
|
|
|
|
<xy-table :list="plans" :show-index="false" :table-item="planTable" :height="240" style="margin-top: 10px;">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="使用金额" header-align="center">
|
|
|
|
|
<Input />
|
|
|
|
|
@ -182,7 +266,7 @@
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 付款登记-->
|
|
|
|
|
<xy-dialog title="付款登记" :is-show.sync="isShowPaymentRegistration" type="form" class="payment-registration" :form="paymentRegistrationForm">
|
|
|
|
|
<xy-dialog title="付款登记" :is-show.sync="isShowPaymentRegistration" type="form" class="payment-registration" :form="paymentRegistrationForm" :rules="paymentRegistrationRules">
|
|
|
|
|
<template v-slot:extraFormTop>
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">受款单位</div>
|
|
|
|
|
@ -208,46 +292,46 @@
|
|
|
|
|
<div class="payment-registration-row">
|
|
|
|
|
<div class="payment-registration-row-title">已付笔数</div>
|
|
|
|
|
<div class="payment-registration-row-content">10</div>
|
|
|
|
|
<div class="payment-registration-row-content" style="color: #ff0000;padding-left: 10px;cursor: pointer;">点击查看列表</div>
|
|
|
|
|
<div class="payment-registration-row-content" style="color: #ff0000;padding-left: 16px;cursor: pointer;">点击查看列表</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:applyMoney>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>申请付款金额</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>申请付款金额</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input v-model="paymentRegistrationForm.applyMoney" style="width: 300px;"></Input>
|
|
|
|
|
<Input placeholder="请填写付款金额" v-model="paymentRegistrationForm.applyMoney" style="width: 300px;"></Input>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:deductionMoney>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>本期扣款金额</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>本期扣款金额</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Input v-model="paymentRegistrationForm.deductionMoney" style="width: 300px;"></Input>
|
|
|
|
|
<Input placeholder="请填写扣款金额" v-model="paymentRegistrationForm.deductionMoney" style="width: 300px;"></Input>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:type>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>款项类型
|
|
|
|
|
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>款项类型
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<Select v-model="paymentRegistrationForm.type" style="width: 300px;"></Select>
|
|
|
|
|
<Select placeholder="请选择款项类型" v-model="paymentRegistrationForm.type" style="width: 300px;"></Select>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:isLast>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col span="5" style="color: red;"><span style="font-weight: 600;padding-right: 4px;">*</span>是否最后一笔</Col>
|
|
|
|
|
<Col span="5"><span style="font-weight: 600;padding-right: 4px;color: red;">*</span>是否最后一笔</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<i-switch v-model="paymentRegistrationForm.isLast" @on-change="paymentRegistrationForm.isLast = $event" />
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:extraFormBottom>
|
|
|
|
|
<xy-table :table-item="searchTable" :height="240" style="margin-top: 10px;">
|
|
|
|
|
<Input search enter-button="搜 索" placeholder="搜索预算计划.." />
|
|
|
|
|
<xy-table :list="[{}]" :show-index="false" :table-item="planTable" :height="240" style="margin-top: 10px;">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="使用金额" header-align="center">
|
|
|
|
|
<Input />
|
|
|
|
|
@ -260,41 +344,25 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import ResizeObserver from "resize-observer-polyfill";
|
|
|
|
|
|
|
|
|
|
import {getContract,addContrant,delContract,detailContract} from "@/api/contract/contract"
|
|
|
|
|
import {getparameter} from "@/api/system/dictionary"
|
|
|
|
|
import {listdept} from "@/api/system/department";
|
|
|
|
|
import {getBudget} from "@/api/budget/budget"
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
isShowPaymentRegistration:false,
|
|
|
|
|
paymentRegistrationForm:{
|
|
|
|
|
applyMoney:"",
|
|
|
|
|
deductionMoney:"",
|
|
|
|
|
type:"",
|
|
|
|
|
isLast:""
|
|
|
|
|
},
|
|
|
|
|
searchTable:[
|
|
|
|
|
{
|
|
|
|
|
label:"分类"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"名称"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"计划金额"
|
|
|
|
|
var planPass = (rule, value, callback) => {
|
|
|
|
|
if(this.form.isBudget){
|
|
|
|
|
if(this.form.plan == ''){
|
|
|
|
|
return callback(new Error('必选'))
|
|
|
|
|
}else{
|
|
|
|
|
callback()
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
isShowPlan:false,
|
|
|
|
|
isShowAdd:false,
|
|
|
|
|
form:{
|
|
|
|
|
name:"",
|
|
|
|
|
type:"",
|
|
|
|
|
methods:"",
|
|
|
|
|
modality:"",
|
|
|
|
|
price:"",
|
|
|
|
|
fundingChannels:"",
|
|
|
|
|
isBudget:true,
|
|
|
|
|
plan:""
|
|
|
|
|
},
|
|
|
|
|
}else{
|
|
|
|
|
callback()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
//搜索
|
|
|
|
|
select:{
|
|
|
|
|
startDate:"",
|
|
|
|
|
endDate:"",
|
|
|
|
|
@ -302,76 +370,272 @@ export default {
|
|
|
|
|
department:"",
|
|
|
|
|
purchaseModality:"",
|
|
|
|
|
purchaseMethods:"",
|
|
|
|
|
priceMin:0,
|
|
|
|
|
priceMax:0,
|
|
|
|
|
priceMin:null,
|
|
|
|
|
priceMax:null,
|
|
|
|
|
status:""
|
|
|
|
|
},
|
|
|
|
|
cityList: [
|
|
|
|
|
{
|
|
|
|
|
value: 'New York',
|
|
|
|
|
label: 'New York'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: 'London',
|
|
|
|
|
label: 'London'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
purchaseType: [],//购买形式
|
|
|
|
|
purchaseWay:[],//购买方式
|
|
|
|
|
moneyWay:[],//资金渠道
|
|
|
|
|
departments:[],//部门科室
|
|
|
|
|
//表格
|
|
|
|
|
table:[
|
|
|
|
|
{
|
|
|
|
|
label:"项目名称",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"采购形势"
|
|
|
|
|
label:"采购形势",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"项目类型"
|
|
|
|
|
label:"项目类型",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"采购方式"
|
|
|
|
|
label:"采购方式",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"资金来源"
|
|
|
|
|
label:"资金来源",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"项目预算(万元)"
|
|
|
|
|
label:"项目预算(万元)",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"合同状态"
|
|
|
|
|
label:"合同状态",
|
|
|
|
|
width: 160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"流程",
|
|
|
|
|
label:"采购流程",
|
|
|
|
|
multiHd:[
|
|
|
|
|
{
|
|
|
|
|
label:"请示流程",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"采购流程"
|
|
|
|
|
label:"采购业务审批流程",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"招标审核流程"
|
|
|
|
|
label:"招标审核流程",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"合同会签流程"
|
|
|
|
|
label:"合同会签流程",
|
|
|
|
|
width: 200
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"创建科室"
|
|
|
|
|
label:"创建科室",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"创建人",
|
|
|
|
|
width: 200
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"创建信息",
|
|
|
|
|
width: 200
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
//合同详情
|
|
|
|
|
isShowDetail:false,
|
|
|
|
|
linkBudgetPlanTable:[
|
|
|
|
|
{
|
|
|
|
|
label:"ID",
|
|
|
|
|
sortable:false,
|
|
|
|
|
width:160
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"类型",
|
|
|
|
|
width:100,
|
|
|
|
|
sortable: false,
|
|
|
|
|
customFn:()=>{
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Tag color="primary">类型一</Tag>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"项目",
|
|
|
|
|
width: 140,
|
|
|
|
|
sortable: false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"金额",
|
|
|
|
|
sortable: false
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
journalTable:[
|
|
|
|
|
{
|
|
|
|
|
label:'ID',
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"日志类型",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"日志内容",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"操作人",
|
|
|
|
|
sortable:false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"创建人"
|
|
|
|
|
label:"时间",
|
|
|
|
|
sortable:false
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
//付款登记
|
|
|
|
|
isShowPaymentRegistration:false,
|
|
|
|
|
paymentRegistrationForm:{
|
|
|
|
|
applyMoney:"",
|
|
|
|
|
deductionMoney:"",
|
|
|
|
|
type:"",
|
|
|
|
|
isLast:""
|
|
|
|
|
},
|
|
|
|
|
paymentRegistrationRules:{
|
|
|
|
|
applyMoney:[
|
|
|
|
|
{required:true,message:"必填"}
|
|
|
|
|
],
|
|
|
|
|
deductionMoney:[
|
|
|
|
|
{required:true,message:"必填"}
|
|
|
|
|
],
|
|
|
|
|
type:[
|
|
|
|
|
{required:true,message:"必选"}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
planTable:[
|
|
|
|
|
{
|
|
|
|
|
sortable:false,
|
|
|
|
|
width:36,
|
|
|
|
|
customFn:()=>{
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Checkbox></Checkbox>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"分类",
|
|
|
|
|
prop:'type',
|
|
|
|
|
formatter:(cell,data,value)=>{
|
|
|
|
|
switch (value){
|
|
|
|
|
case 1:
|
|
|
|
|
return "部门预算"
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
return "水务计划"
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
return "未知"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"名称",
|
|
|
|
|
prop:'name',
|
|
|
|
|
align:'left'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label:"创建信息"
|
|
|
|
|
label:"计划金额",
|
|
|
|
|
prop:'money',
|
|
|
|
|
align:'right'
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//新增
|
|
|
|
|
isShowAdd:false,
|
|
|
|
|
form:{
|
|
|
|
|
name:"",
|
|
|
|
|
type:"",
|
|
|
|
|
methods:"",
|
|
|
|
|
modality:"",
|
|
|
|
|
price:"",
|
|
|
|
|
fundingChannels:"",
|
|
|
|
|
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}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
isShowPlan:false,//新增中预算计划
|
|
|
|
|
plans:[],//预算数据
|
|
|
|
|
plansPageIndex:1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
//获取预算计划
|
|
|
|
|
async getBudgets(params){
|
|
|
|
|
this.plans = (await getBudget(params ?? {page_size:10,page:this.plansPageIndex})).data
|
|
|
|
|
},
|
|
|
|
|
//获取资金渠道
|
|
|
|
|
async getMoneyWay(){
|
|
|
|
|
this.moneyWay = (await getparameter({number:'money_way'})).detail
|
|
|
|
|
},
|
|
|
|
|
//获取购买方式
|
|
|
|
|
async getPurchaseWay(){
|
|
|
|
|
this.purchaseWay = (await getparameter({number:'purchase_way'})).detail
|
|
|
|
|
},
|
|
|
|
|
//获取科室
|
|
|
|
|
async getDepartment(){
|
|
|
|
|
this.departments = await listdept()
|
|
|
|
|
},
|
|
|
|
|
//获取购买形式列表
|
|
|
|
|
async getPurchaseType(){
|
|
|
|
|
this.purchaseType = (await getparameter({number:'purchase_type'})).detail
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取合同列表
|
|
|
|
|
getContracts(){
|
|
|
|
|
getContract().then((res)=>{
|
|
|
|
|
console.log(res)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//新建合同
|
|
|
|
|
submit(){
|
|
|
|
|
console.log(this.form)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
//
|
|
|
|
|
this.getPurchaseType()
|
|
|
|
|
this.getContracts()
|
|
|
|
|
this.getDepartment()
|
|
|
|
|
this.getPurchaseWay()
|
|
|
|
|
this.getMoneyWay()
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
@ -380,6 +644,10 @@ export default {
|
|
|
|
|
.selects{
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
&>div{
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.selectTop{
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
@ -392,7 +660,6 @@ export default {
|
|
|
|
|
|
|
|
|
|
padding: 6px 0;
|
|
|
|
|
&-title{
|
|
|
|
|
color: #ff0000;
|
|
|
|
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
@ -401,4 +668,88 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.contract-detail{
|
|
|
|
|
|
|
|
|
|
.base-info{
|
|
|
|
|
|
|
|
|
|
&-title{
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
margin-top: 8px;
|
|
|
|
|
&-title{
|
|
|
|
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
}
|
|
|
|
|
&-content{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
&-unit{
|
|
|
|
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.link-budget-plan{
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .base-info-title;
|
|
|
|
|
|
|
|
|
|
padding-bottom: 10px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sign-info{
|
|
|
|
|
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
@extend .base-info-item;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .base-info-item-title;
|
|
|
|
|
}
|
|
|
|
|
&-content{
|
|
|
|
|
@extend .base-info-item-content;
|
|
|
|
|
}
|
|
|
|
|
&-unit{
|
|
|
|
|
@extend .base-info-item-unit;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.related-processes{
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
&-item{
|
|
|
|
|
color: red;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
&>div{
|
|
|
|
|
flex-basis: 25%;
|
|
|
|
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.journal{
|
|
|
|
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
&-title{
|
|
|
|
|
@extend .link-budget-plan-title;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|