离线合同请款

This commit is contained in:
chenjianan
2019-03-11 15:41:55 +08:00
parent 60f227ebba
commit 6fdc549bc0
2 changed files with 167 additions and 17 deletions

View File

@@ -72,3 +72,15 @@ export function cancelRequestFund(num) {
} }
}) })
} }
// 查询离线合同明细
export function searchMateriel(num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '采购管理_离线合同明细_查询数据',
param: `离线合同流水号=${num}`
}
})
}

View File

@@ -82,7 +82,7 @@
<el-table-column label="操作" align="center" width="250"> <el-table-column label="操作" align="center" width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover placement="right" width="500" trigger="click"> <el-popover placement="right" width="500" trigger="click">
<el-table :data="gridData" stripe size="mini" show-summary> <el-table :data="gridData" stripe size="mini" show-summary @row-click="searchTable2">
<el-table-column width="50" align="center" type="index" label="序号"/> <el-table-column width="50" align="center" type="index" label="序号"/>
<el-table-column min-width="150" align="center" label="离线合同编号"> <el-table-column min-width="150" align="center" label="离线合同编号">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -116,31 +116,78 @@
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1" @size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/> @current-change="handleCurrentChange1"/>
<span>合同累计总额</span> <span v-show="supplierValue">累计合同总额</span>
<el-input v-model="totalSum" size="mini" style="width: 100px;" readonly/> <el-input v-show="supplierValue" v-model="totalSum" size="mini" style="width: 100px;" readonly/>
<span>累计付款</span> <span v-show="supplierValue">累计付款</span>
<el-input v-model="totalPay" size="mini" style="width: 100px;" readonly/> <el-input v-show="supplierValue" v-model="totalPay" size="mini" style="width: 100px;" readonly/>
<span>累计欠款</span> <span v-show="supplierValue">累计欠款</span>
<el-input v-model="totalDebt" size="mini" style="width: 100px;" readonly/> <el-input v-show="supplierValue" v-model="totalDebt" size="mini" style="width: 100px;" readonly/>
</div> </div>
<el-table v-loading="" :data="tableData2" :summary-method="getSummaries" border style="margin-top:10px;max-height: 500px;" height="500px" size="mini" show-summary>
<el-table-column label="离线合同编号" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.离线合同编号 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="单价" align="center" min-width="100" prop="单价">
<template slot-scope="scope">
{{ scope.row.单价 }}
</template>
</el-table-column>
<el-table-column label="合计" align="center" min-width="100" prop="合计">
<template slot-scope="scope">
{{ parseFloat(scope.row.单价||0) * parseInt(scope.row.数量||0) }}
</template>
</el-table-column>
<el-table-column label="交货期要求" align="center" min-width="100" prop="交货期要求">
<template slot-scope="scope">
{{ scope.row.交货期要求 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="150" prop="备注">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="到货数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.到货数量 }}
</template>
</el-table-column>
</el-table>
</el-card> </el-card>
<el-dialog :visible.sync="dialogVisible2" title="离线合同请款" center style="min-height: 300px" width="1200px"> <el-dialog :visible.sync="dialogVisible2" title="离线合同请款" center style="min-height: 300px" width="1200px">
<span>供应商</span> <span>供应商</span>
<el-select v-model="supplierValue" placeholder="供应商" filterable size="small"> <el-select v-model="supplierValue" placeholder="供应商" filterable clearable size="small">
<el-option <el-option
v-for="item in supplier" v-for="item in supplier"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"/> :value="item.value"/>
</el-select> </el-select>
<el-button <el-button type="success" size="small" icon="el-icon-search" style="margin: 0 10px 10px 10px" @click="searchTable01()">查询</el-button>
type="success" <el-table v-loading="" :data="tableData01" border style="max-height: 300px;" height="300px" size="mini" @row-click="searchTable03" @selection-change="handleSelectionChange">
size="small"
icon="el-icon-search"
style="margin: 0 10px 10px 10px"
@click="pageCurrent1=1;pageSize1=10;total1=0;searchTable01()">查询</el-button>
<el-table v-loading="" :data="tableData01" border style="max-height: 500px;" height="500px" size="mini" @selection-change="handleSelectionChange">
<el-table-column :selectable="selectable" type="selection" align="center" width="50"/> <el-table-column :selectable="selectable" type="selection" align="center" width="50"/>
<el-table-column label="离线合同编号" align="center" min-width="120"> <el-table-column label="离线合同编号" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -179,13 +226,65 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<span>合计<el-input v-model="SUM" readonly size="mini" style="width: 80px; margin: 10px 10px 0 10px"/></span> <span>合计<el-input v-model="SUM" readonly size="mini" style="width: 80px; margin: 10px 10px 0 10px"/></span>
<el-button type="primary" size="small" style="float:right;margin: 10px 10px 0 10px" icon="el-icon-check" @click="submitRequestFund">确定请款</el-button> <el-button type="primary" size="small" style="float:right;margin: 10px" icon="el-icon-check" @click="submitRequestFund">确定请款</el-button>
<el-table v-loading="" :data="tableData02" :summary-method="getSummaries" border style="max-height: 500px;" height="500px" size="mini" show-summary>
<el-table-column label="离线合同编号" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.离线合同编号 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="单价" align="center" min-width="100" prop="单价">
<template slot-scope="scope">
{{ scope.row.单价 }}
</template>
</el-table-column>
<el-table-column label="合计" align="center" min-width="100" prop="合计">
<template slot-scope="scope">
{{ parseFloat(scope.row.单价||0) * parseInt(scope.row.数量||0) }}
</template>
</el-table-column>
<el-table-column label="交货期要求" align="center" min-width="100" prop="交货期要求">
<template slot-scope="scope">
{{ scope.row.交货期要求 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="150" prop="备注">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="到货数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.到货数量 }}
</template>
</el-table-column>
</el-table>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { searchRequestFund, searchSupplier, searchOfflineContract, submitRequestFund, searchRequsetFundDetail, cancelRequestFund } from '@/api/PurchasingCenter/OfflineContractRequestFund' import { searchRequestFund, searchSupplier, searchOfflineContract, submitRequestFund, searchRequsetFundDetail, cancelRequestFund, searchMateriel } from '@/api/PurchasingCenter/OfflineContractRequestFund'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
@@ -231,10 +330,12 @@ export default {
pageSize1: 10, pageSize1: 10,
total1: 0, total1: 0,
tableData1: [], tableData1: [],
tableData2: [],
pageCurrent2: 1, pageCurrent2: 1,
pageSize2: 10, pageSize2: 10,
total2: 0, total2: 0,
tableData01: [], tableData01: [],
tableData02: [],
dialogVisible2: false, dialogVisible2: false,
SUM: 0, SUM: 0,
contractGroup: [], contractGroup: [],
@@ -267,6 +368,7 @@ export default {
}) })
}, },
searchTable1() { // 查询请款表 searchTable1() { // 查询请款表
this.tableData2 = []
let check1, check2 let check1, check2
this.dateRange ? check1 = 1 : (check1 = 0, this.dateRange = '') this.dateRange ? check1 = 1 : (check1 = 0, this.dateRange = '')
this.supplierValue ? check2 = 1 : check2 = 0 this.supplierValue ? check2 = 1 : check2 = 0
@@ -298,6 +400,37 @@ export default {
this.supplierValue = '' this.supplierValue = ''
this.fetchData() // 重新获取供应商 this.fetchData() // 重新获取供应商
this.tableData01 = [] this.tableData01 = []
this.tableData02 = []
},
searchTable03(row) { // 查询离线合同明细
searchMateriel(row.离线合同流水号).then(response => {
this.tableData02 = response.data
})
},
getSummaries(param) { // 合计
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总价'
} else if (index === 7) {
const values = data.map(item => Number(parseFloat(item['单价']) * parseInt(item['数量'])))
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ' 元'
} else {
sums[index] = 'N/A'
}
}
})
return sums
}, },
searchTable01() { // 查询待请款 searchTable01() { // 查询待请款
if (this.supplierValue) { if (this.supplierValue) {
@@ -316,6 +449,11 @@ export default {
this.$message.error('请选择供应商') this.$message.error('请选择供应商')
} }
}, },
searchTable2(row) { // 查询离线合同明细
searchMateriel(row.离线合同流水号).then(response => {
this.tableData2 = response.data
})
},
handleSelectionChange(val) { handleSelectionChange(val) {
this.SUM = 0 this.SUM = 0
this.contractGroup = [] this.contractGroup = []