|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div style="padding: 0 20px;" ref="contractList">
|
|
|
|
|
<lx-header icon="md-apps" text="合同列表" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
|
|
|
|
|
<div ref="contractList" style="padding: 0 20px;">
|
|
|
|
|
<lx-header icon="md-apps" style="margin-bottom: 10px; border: 0px; margin-top: 15px" text="合同列表">
|
|
|
|
|
<div slot="content"></div>
|
|
|
|
|
<slot>
|
|
|
|
|
<div class="selects">
|
|
|
|
|
@ -14,7 +14,8 @@
|
|
|
|
|
<div>
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">创建日期</span>
|
|
|
|
|
<span>
|
|
|
|
|
<DatePicker v-model="select.showDatePicker" clearable placeholder="请选择日期" type="daterange" placement="bottom-start" style="width: 200px" @on-change="datePick"></DatePicker>
|
|
|
|
|
<DatePicker v-model="select.showDatePicker" clearable placeholder="请选择日期" placement="bottom-start"
|
|
|
|
|
style="width: 200px" type="daterange" @on-change="datePick"></DatePicker>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -22,8 +23,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
项目类型
|
|
|
|
|
</span>
|
|
|
|
|
<Select placeholder="请选择项目类型" v-model="select.type" style="width:140px;" clearable>
|
|
|
|
|
<Option v-for="item in type" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select v-model="select.type" clearable placeholder="请选择项目类型" style="width:140px;">
|
|
|
|
|
<Option v-for="item in type" :key="item.value" :value="item.value">{{ item.label }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -31,8 +32,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
业务科室
|
|
|
|
|
</span>
|
|
|
|
|
<el-select placeholder="业务科室选择" clearable size="small" v-model="select.department" style="width: 160px;">
|
|
|
|
|
<el-option v-for="item in departments" :label="item.name" :value="item.id" :key="item.id">
|
|
|
|
|
<el-select v-model="select.department" clearable placeholder="业务科室选择" size="small" style="width: 160px;">
|
|
|
|
|
<el-option v-for="item in departments" :key="item.id" :label="item.name" :value="item.id">
|
|
|
|
|
</el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
@ -41,8 +42,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
采购形式
|
|
|
|
|
</span>
|
|
|
|
|
<Select clearable placeholder="请选择采购形式" v-model="select.purchaseModality" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseType" :value="item.id" :key="item.id">{{ item.value }}</Option>
|
|
|
|
|
<Select v-model="select.purchaseModality" clearable placeholder="请选择采购形式" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseType" :key="item.id" :value="item.id">{{ item.value }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -50,8 +51,8 @@
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
采购方式
|
|
|
|
|
</span>
|
|
|
|
|
<Select clearable placeholder="请选择采购方式" v-model="select.purchaseMethods" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseWay" :value="item.id" :key="item.id">{{ item.value }}</Option>
|
|
|
|
|
<Select v-model="select.purchaseMethods" clearable placeholder="请选择采购方式" style="width:200px;">
|
|
|
|
|
<Option v-for="item in purchaseWay" :key="item.id" :value="item.id">{{ item.value }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -60,41 +61,49 @@
|
|
|
|
|
预算金额
|
|
|
|
|
</span>
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100px;"
|
|
|
|
|
placeholder="最小金额"
|
|
|
|
|
v-model="select.priceMin"
|
|
|
|
|
:min="0"
|
|
|
|
|
v-model="select.priceMin"/>
|
|
|
|
|
placeholder="最小金额"
|
|
|
|
|
style="width: 100px;"/>
|
|
|
|
|
<span style="padding: 0 5px;">-</span>
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100px;"
|
|
|
|
|
placeholder="最大金额"
|
|
|
|
|
v-model="select.priceMax"
|
|
|
|
|
:min="0"
|
|
|
|
|
v-model="select.priceMax"/>
|
|
|
|
|
placeholder="最大金额"
|
|
|
|
|
style="width: 100px;"/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
|
<span style="padding: 0 6px;word-break: keep-all;">
|
|
|
|
|
状态
|
|
|
|
|
</span>
|
|
|
|
|
<Select clearable placeholder="请选择合同状态" v-model="select.status" style="width:200px;">
|
|
|
|
|
<Option v-for="item in [{label:'待签订',value:1},{label:'已签订',value:2}]" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
|
<Select v-model="select.status" clearable placeholder="请选择合同状态" style="width:200px;">
|
|
|
|
|
<Option v-for="item in [{label:'待签订',value:1},{label:'已签订',value:2}]" :key="item.value"
|
|
|
|
|
:value="item.value">{{ item.label }}
|
|
|
|
|
</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" @click="getContracts">查询</Button>
|
|
|
|
|
<Button type="primary" style="margin-left: 10px" ghost
|
|
|
|
|
@click=" select = {showDatePicker:'',ageIndex:1,startDate:'',endDate:'',type:'',department:'',purchaseModality:'',purchaseMethods:'',priceMin:null,priceMax:null,status:''}">重置</Button>
|
|
|
|
|
<Button style="margin-left: 10px" type="primary" @click="getContracts">查询</Button>
|
|
|
|
|
<Button ghost style="margin-left: 10px" type="primary"
|
|
|
|
|
@click=" select = {showDatePicker:'',ageIndex:1,startDate:'',endDate:'',type:'',department:'',purchaseModality:'',purchaseMethods:'',priceMin:null,priceMax:null,status:''}">
|
|
|
|
|
重置
|
|
|
|
|
</Button>
|
|
|
|
|
<!-- <Button type="primary" style="margin-left: 10px">导出</Button>-->
|
|
|
|
|
</div>
|
|
|
|
|
</slot>
|
|
|
|
|
</lx-header>
|
|
|
|
|
|
|
|
|
|
<xy-table ref="xyTable" :table-item="table" :list="list" @editor="" @delete="(row)=>deleteContract(row.id)" @cellClick="showPaymentPlan" :cell-style="cellStyle" :show-summary="true" :summary-method="summary">
|
|
|
|
|
<xy-table ref="xyTable" :cell-style="cellStyle" :list="list" :show-summary="true" :summary-method="summary"
|
|
|
|
|
:table-item="table" @cellClick="showPaymentPlan" @delete="(row)=>deleteContract(row.id)" @editor="">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="100" header-align="center" align="center">
|
|
|
|
|
<el-table-column align="center" fixed="right" header-align="center" label="操作" width="100">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<div class="slot-btns">
|
|
|
|
|
<Button class="slot-btns-item" type="primary" size="small" @click="$refs['detailContract'].getDetail(scope.row.id),$refs['detailContract'].isShowDetail = true">查看</Button>
|
|
|
|
|
<Button class="slot-btns-item" size="small" type="primary"
|
|
|
|
|
@click="$refs['detailContract'].getDetail(scope.row.id),$refs['detailContract'].isShowDetail = true">
|
|
|
|
|
查看
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
@ -128,6 +137,7 @@ import paymentRegistration from "./components/paymentRegistration";
|
|
|
|
|
import contractSign from "@/views/contract/components/contractSign";
|
|
|
|
|
import contractPaymentRegistration from "@/views/contract/components/contractPaymentRegistration";
|
|
|
|
|
import {login} from "@/api/user";
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
editor,
|
|
|
|
|
@ -197,6 +207,7 @@ export default {
|
|
|
|
|
width: 120,
|
|
|
|
|
prop: 'type',
|
|
|
|
|
formatter: (cell, data, value) => {
|
|
|
|
|
|
|
|
|
|
switch (value) {
|
|
|
|
|
case 1:
|
|
|
|
|
return "服务"
|
|
|
|
|
@ -321,21 +332,39 @@ export default {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '已申请金额(元)',
|
|
|
|
|
prop: 'apply_money_total',
|
|
|
|
|
width: 180,
|
|
|
|
|
align: 'right',
|
|
|
|
|
formatter: (cell, data, value) => {
|
|
|
|
|
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '已付金额(元)',
|
|
|
|
|
prop: 'fund_log_total',
|
|
|
|
|
width:120,
|
|
|
|
|
width: 180,
|
|
|
|
|
align: 'right',
|
|
|
|
|
formatter: (cell, data, value) => {
|
|
|
|
|
if(!value){
|
|
|
|
|
return '0.00'
|
|
|
|
|
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
|
|
|
|
|
}
|
|
|
|
|
return value
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '支付占比',
|
|
|
|
|
width: 180,
|
|
|
|
|
customFn: (row) => {
|
|
|
|
|
let per = ((((row.fund_log_total) / row.money) || 0) * 100)?.toFixed(2) || 0
|
|
|
|
|
return (
|
|
|
|
|
<div style={{'color': per > 110 ? 'red' : 'green'}}>
|
|
|
|
|
{per}%
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: "合同预算价(元)",
|
|
|
|
|
width: 160,
|
|
|
|
|
width: 180,
|
|
|
|
|
prop: "plan_price",
|
|
|
|
|
align: 'right',
|
|
|
|
|
formatter: (v1, v2, value) => {
|
|
|
|
|
@ -346,7 +375,10 @@ export default {
|
|
|
|
|
label: '合同签订价(元)',
|
|
|
|
|
width: 180,
|
|
|
|
|
prop: 'money',
|
|
|
|
|
align:'right'
|
|
|
|
|
align: 'right',
|
|
|
|
|
formatter: (cell, data, value) => {
|
|
|
|
|
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: "合同状态",
|
|
|
|
|
@ -804,7 +836,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.selects {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
@ -813,6 +845,7 @@ export default {
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.selectTop {
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
}
|
|
|
|
|
@ -827,6 +860,7 @@ export default {
|
|
|
|
|
align-content: center;
|
|
|
|
|
|
|
|
|
|
padding: 0 8px;
|
|
|
|
|
|
|
|
|
|
&-no-plan {
|
|
|
|
|
height: 30px;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
@ -835,7 +869,6 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.slot-btns {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
@ -850,8 +883,10 @@ export default {
|
|
|
|
|
.xy-table-item-label {
|
|
|
|
|
width: 140px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.xy-table-item-price {
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 0;
|
|
|
|
|
|