优化结算页面问题

This commit is contained in:
BianLzhaoMin 2024-07-26 15:40:54 +08:00
parent cb3652fb1e
commit d585da9247
1 changed files with 307 additions and 309 deletions

View File

@ -472,322 +472,320 @@
</template> </template>
<script> <script>
import { import {
getAgreementList, getAgreementList,
getUnitList, getUnitList,
getProjectList, getProjectList,
} from '@/api/claimAndRefund/receive' } from '@/api/claimAndRefund/receive'
import { getSltInfo, submitFee, exportLease } from '@/api/cost/cost' import { getSltInfo, submitFee, exportLease } from '@/api/cost/cost'
export default { export default {
name: 'Agreement', name: 'Agreement',
dicts: ['sys_normal_disable'], dicts: ['sys_normal_disable'],
data() { data() {
return { return {
// //
loading: false, loading: false,
// //
ids: [], ids: [],
// //
single: true, single: true,
// //
multiple: true, multiple: true,
// //
showSearch: true, showSearch: true,
// //
total: 0, total: 0,
// //
unitList: [], unitList: [],
// //
projectList: [], projectList: [],
statusList: [ statusList: [
{ id: '0', name: '请选择' }, { id: '0', name: '请选择' },
{ id: '1', name: '已结算' }, { id: '1', name: '已结算' },
{ id: '2', name: '未结算' }, { id: '2', name: '未结算' },
{ id: '3', name: '待审核' }, { id: '3', name: '待审核' },
], // ], //
// //
agreementList: [], agreementList: [],
// //
title: '', title: '',
// //
open: false, open: false,
// //
dateRange: [], dateRange: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
keyWord: undefined, keyWord: undefined,
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl: '',
imageName: '',
fileList: [],
field101fileList: [],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + '/system', //
//
rules: {
contractCode: [
{
required: true,
message: '合同编号不能为空',
trigger: 'blur',
},
],
signTime: [
{
required: true,
message: '签订日期不能为空',
trigger: 'blur',
},
],
unitName: [
{
required: true,
message: '往来单位不能为空',
trigger: 'blur',
},
],
projectName: [
{
required: true,
message: '工程名称不能为空',
trigger: 'blur',
},
],
},
peopleOpen: false,
noticeOpen: false,
nform: {
notice: '',
},
nrules: {
notice: [
{
required: true,
message: '通知内容不能为空',
trigger: 'blur',
},
],
},
leaseList: [], //
leaseCost: 0,
repairList: [], //
repairCost: 0,
scrapList: [], //
scrapCost: 0,
loseList: [], //
loseCost: 0,
costAll: 0,
deptName: undefined,
applyVisible: false,
applyList: [],
}
},
mounted() {
let arr = JSON.parse(this.$route.query.rowData)
this.rowData = arr
this.getDataAll()
// this.getUnitList();
// this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList() {
getUnitList().then((response) => {
this.unitList = response.data
})
}, },
getProjectList() { //
getProjectList().then((response) => { form: {},
this.projectList = response.data //
}) uploadHeader: process.env.VUE_APP_BASE_API,
}, imageUrl: '',
imageName: '',
/** 查询列表 */ fileList: [],
getDataAll() { field101fileList: [],
getSltInfo(this.rowData).then((response) => { dialogImageUrl: '',
// this.agreementList = response.rows; dialogVisible: false,
this.leaseList = response.data.leaseList // //
this.leaseCost = this.countCost(this.leaseList) // uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
this.repairList = response.data.repairList // uploadUrl: process.env.VUE_APP_BASE_API + '/system', //
this.repairCost = this.countCost(this.repairList) //
rules: {
this.scrapList = response.data.scrapList // contractCode: [
this.scrapCost = this.countCost(this.scrapList) {
required: true,
this.loseList = response.data.loseList // message: '合同编号不能为空',
this.loseCost = this.countCost(this.loseList) trigger: 'blur',
this.applyList = response.data.relations
this.applyList.forEach((item) => {
item.cost =
Number(item.leaseCost) +
Number(item.repairCost) +
Number(item.scrapCost) +
Number(item.loseCost) +
Number(item.addCost) -
Number(item.subCost)
})
let costSum =
Number(this.leaseCost) +
Number(this.repairCost) +
Number(this.scrapCost) +
Number(this.loseCost)
this.costAll = costSum.toFixed(2)
})
},
//1
countCost(list) {
let arrCost = 0
list.forEach((item) => {
// arrCost += parseInt(item.costs)
console.log(item)
if (item.partType != 0 && item.scrapType != 0) {
arrCost = arrCost + Number(item.costs)
}
})
return arrCost.toFixed(2)
},
//
handleAdd() {
this.applyVisible = true
},
//el-table-
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 9) {
sums[index] = '最终费用'
return
}
const values = data.map((item) =>
Number(item[column.property]),
)
// amount
if (column.property === 'cost') {
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] = '---'
}
}
})
return sums
},
countNum(row) {
row.cost =
Number(row.leaseCost) +
Number(row.repairCost) +
Number(row.scrapCost) +
Number(row.loseCost) +
Number(row.addCost) -
Number(row.subCost)
},
//
submitApply() {
let costAll = 0
this.applyList.forEach((item) => {
costAll = costAll + item.cost
})
console.log(costAll)
let param = {
relations: this.applyList,
cost: costAll,
}
console.log(param)
submitFee(param).then((res) => {
console.log(res)
if (res.code == 200) {
this.$tab.closeOpenPage({
path: '/cost/cost/costApplyList',
})
}
})
},
//
handleBack() {
this.$tab.closeOpenPage({
path: '/cost/cost/costApplyList',
query: {
isEdit: true,
}, },
}) ],
signTime: [
{
required: true,
message: '签订日期不能为空',
trigger: 'blur',
},
],
unitName: [
{
required: true,
message: '往来单位不能为空',
trigger: 'blur',
},
],
projectName: [
{
required: true,
message: '工程名称不能为空',
trigger: 'blur',
},
],
}, },
// peopleOpen: false,
handleSelectionChange(selection) { noticeOpen: false,
this.ids = selection.map((item) => item.agreementId) nform: {
this.single = selection.length != 1 notice: '',
this.multiple = !selection.length
}, },
/** 导出按钮操作 */ nrules: {
// notice: [
handleExport1() { {
this.downloadJson( required: true,
'material/sltAgreementInfo/exportLease', message: '通知内容不能为空',
JSON.stringify(this.rowData), trigger: 'blur',
`租赁费用明细_${new Date().getTime()}.xlsx`, },
) ],
},
//
handleExport2() {
this.downloadJson(
'material/sltAgreementInfo/exportLose',
JSON.stringify(this.rowData),
`丢失费用明细_${new Date().getTime()}.xlsx`,
)
},
//
handleExport3() {
this.downloadJson(
'material/sltAgreementInfo/exportRepair',
JSON.stringify(this.rowData),
`维修费用明细_${new Date().getTime()}.xlsx`,
)
},
//
handleExport4() {
this.downloadJson(
'material/sltAgreementInfo/exportScrap',
JSON.stringify(this.rowData),
`报废费用明细_${new Date().getTime()}.xlsx`,
)
},
handleExportAll() {
this.handleExport1()
this.handleExport2()
this.handleExport3()
this.handleExport4()
}, },
leaseList: [], //
leaseCost: 0,
repairList: [], //
repairCost: 0,
scrapList: [], //
scrapCost: 0,
loseList: [], //
loseCost: 0,
costAll: 0,
deptName: undefined,
applyVisible: false,
applyList: [],
}
},
mounted() {
let arr = JSON.parse(this.$route.query.rowData)
this.rowData = arr
this.getDataAll()
// this.getUnitList();
// this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList() {
getUnitList().then((response) => {
this.unitList = response.data
})
}, },
} getProjectList() {
getProjectList().then((response) => {
this.projectList = response.data
})
},
/** 查询列表 */
getDataAll() {
getSltInfo(this.rowData).then((response) => {
// this.agreementList = response.rows;
this.leaseList = response.data.leaseList //
this.leaseCost = this.countCost(this.leaseList)
this.repairList = response.data.repairList //
this.repairCost = this.countCost(this.repairList)
this.scrapList = response.data.scrapList //
this.scrapCost = this.countCost(this.scrapList)
this.loseList = response.data.loseList //
this.loseCost = this.countCost(this.loseList)
this.applyList = response.data.relations
this.applyList.forEach((item) => {
item.cost =
Number(item.leaseCost) +
Number(item.repairCost) +
Number(item.scrapCost) +
Number(item.loseCost) +
Number(item.addCost) -
Number(item.subCost)
})
let costSum =
Number(this.leaseCost) +
Number(this.repairCost) +
Number(this.scrapCost) +
Number(this.loseCost)
this.costAll = costSum.toFixed(2)
})
},
//1
countCost(list) {
let arrCost = 0
list.forEach((item) => {
// arrCost += parseInt(item.costs)
console.log(item)
if (item.partType != 0 && item.scrapType != 0) {
arrCost = arrCost + Number(item.costs)
}
})
return arrCost.toFixed(2)
},
//
handleAdd() {
this.applyVisible = true
},
//el-table-
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 9) {
sums[index] = '最终费用'
return
}
const values = data.map((item) => Number(item[column.property]))
// amount
if (column.property === 'cost') {
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] = '---'
}
}
})
return sums
},
countNum(row) {
row.cost =
Number(row.leaseCost) +
Number(row.repairCost) +
Number(row.scrapCost) +
Number(row.loseCost) +
Number(row.addCost || 0) -
Number(row.subCost || 0)
},
//
submitApply() {
let costAll = 0
this.applyList.forEach((item) => {
costAll = costAll + item.cost
})
console.log(costAll)
let param = {
relations: this.applyList,
cost: costAll,
}
console.log(param)
submitFee(param).then((res) => {
console.log(res)
if (res.code == 200) {
this.$tab.closeOpenPage({
path: '/cost/cost/costApplyList',
})
}
})
},
//
handleBack() {
this.$tab.closeOpenPage({
path: '/cost/cost/costApplyList',
query: {
isEdit: true,
},
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.agreementId)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 导出按钮操作 */
//
handleExport1() {
this.downloadJson(
'material/sltAgreementInfo/exportLease',
JSON.stringify(this.rowData),
`租赁费用明细_${new Date().getTime()}.xlsx`,
)
},
//
handleExport2() {
this.downloadJson(
'material/sltAgreementInfo/exportLose',
JSON.stringify(this.rowData),
`丢失费用明细_${new Date().getTime()}.xlsx`,
)
},
//
handleExport3() {
this.downloadJson(
'material/sltAgreementInfo/exportRepair',
JSON.stringify(this.rowData),
`维修费用明细_${new Date().getTime()}.xlsx`,
)
},
//
handleExport4() {
this.downloadJson(
'material/sltAgreementInfo/exportScrap',
JSON.stringify(this.rowData),
`报废费用明细_${new Date().getTime()}.xlsx`,
)
},
handleExportAll() {
this.handleExport1()
this.handleExport2()
this.handleExport3()
this.handleExport4()
},
},
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini { ::v-deep.el-table .fixed-width .el-button--mini {
width: 80px !important; width: 80px !important;
margin-bottom: 10px; margin-bottom: 10px;
} }
</style> </style>