问题修复

This commit is contained in:
hongchao 2025-12-01 17:59:40 +08:00
parent 55fe44c055
commit ae2f431b2b
7 changed files with 186 additions and 49 deletions

View File

@ -766,7 +766,8 @@ export default {
maTypeName: parents[parents.length - 1] || '',
unitName: node.unitName,
unitValue: node.unitValue,
manageType: node.manageType
manageType: node.manageType,
isAlert: node.isAlert,
})
}
@ -809,7 +810,14 @@ export default {
this.$message.error('所选物资规格类型暂时无出库,无法申请!')
this.tempDeviceType = this.tempDeviceType.filter(id => id !== lastSelected)
} else {
console.log(typeData)
console.log('xxxxxxxxxxxxxxxxxx',typeData)
if(typeData.isAlert){
this.$message({
message: '当前工器具仍有班组在用,请核实退料单位',
type: 'warning'
})
}
//
this.equipmentList.unshift({
...typeData,
@ -822,10 +830,12 @@ export default {
bmFileInfos: []
})
this.deviceType.push(lastSelected)
this.$message({
message: `已添加 ${typeData.typeName}`,
type: 'success'
})
if(!typeData.isAlert){
this.$message({
message: `已添加 ${typeData.typeName}`,
type: 'success'
})
}
}
}
@ -1193,7 +1203,22 @@ export default {
this.open = true
},
codeSelectionChange(selection) {
console.log('yyyyyyyyyyyyyyyy',selection)
if (!this.open) return
// isActivetrue
const previousSelectionIds = new Set(this.maCodeList.map(item => item.maId))
console.log('zzzzzzzzzzz',previousSelectionIds)
const newlySelected = selection.filter(item => !previousSelectionIds.has(item.maId))
console.log('pppppppppppppp',newlySelected)
newlySelected.forEach(row => {
if (row.isAlert) {
this.$message({
message: '当前工器具仍有班组在用,请核实退料单位',
type: 'warning'
})
}
})
this.maCodeList = selection
// console.log(selection)
// this.queryParams.equipmentList = selection

View File

@ -505,7 +505,8 @@ export default {
deptName: undefined,
applyList: [],
projectName: undefined, //
unitName: undefined //
unitName: undefined, //
exportName: '', //
}
},
mounted() {
@ -577,6 +578,13 @@ export default {
console.log('📋 解析后的数据:', arr)
this.rowData = arr
console.log('📋 准备调用 getDataAll() 获取详情数据')
this.exportName = arr.map(item => {
const projectName = item.projectName || ''
const unitName = item.unitName || ''
const agreementCode = item.agreementCode || ''
return `${projectName}_${unitName}_${agreementCode}`
}).join(', ') //
this.getDataAll()
},
// ,getUnitList, getProjectList
@ -755,7 +763,7 @@ export default {
this.download(
'material/slt_agreement_info/exportLease',
{ ...params },
`${this.projectName}_租赁费用明细_${currentTime}.xlsx`
`${this.exportName}_租赁费用明细_${currentTime}.xlsx`
)
},
//
@ -776,7 +784,7 @@ export default {
this.download(
'material/slt_agreement_info/exportLose',
{ ...params },
`${this.projectName}_丢失费用明细_${currentTime}.xlsx`
`${this.exportName}_丢失费用明细_${currentTime}.xlsx`
)
},
//
@ -797,7 +805,7 @@ export default {
this.download(
'material/slt_agreement_info/exportRepair',
{ ...params },
`${this.projectName}_维修费用明细_${currentTime}.xlsx`
`${this.exportName}_维修费用明细_${currentTime}.xlsx`
)
},
//
@ -818,7 +826,7 @@ export default {
this.download(
'material/slt_agreement_info/exportScrap',
{ ...params },
`${this.projectName}_报废费用明细_${currentTime}.xlsx`
`${this.exportName}_报废费用明细_${currentTime}.xlsx`
)
// this.downloadJson(
// 'material/slt_agreement_info/exportScrap',
@ -843,7 +851,7 @@ export default {
this.download(
'material/slt_agreement_info/exportReduction',
{ ...params },
`${this.projectName}_减免费用明细_${currentTime}.xlsx`
`${this.exportName}_减免费用明细_${currentTime}.xlsx`
)
},
@ -864,7 +872,7 @@ export default {
this.download(
'material/slt_agreement_info/exportAll',
{ ...params },
`${this.projectName}_全部费用明细_${currentTime}.xlsx`
`${this.exportName}_全部费用明细_${currentTime}.xlsx`
)
},
handleExportEach() {
@ -884,7 +892,7 @@ export default {
this.download(
'material/slt_agreement_info/exportEach',
{ ...params },
`${this.projectName}_各费用明细_${currentTime}.xlsx`
`${this.exportName}_各费用明细_${currentTime}.xlsx`
)
}
}

View File

@ -648,12 +648,19 @@ export default {
applyList: [],
projectName: undefined, //
unitName: undefined, //
exportName: '', //
}
},
mounted() {
console.log('33333333333',this.row)
let arr = JSON.parse(this.row)
this.rowData = arr
this.exportName = arr.map(item => {
const projectName = item.projectName || ''
const unitName = item.unitName || ''
const agreementCode = item.agreementCode || ''
return `${projectName}_${unitName}_${agreementCode}`
}).join(', ') //
this.getDataAll()
// this.getUnitList();
// this.getProjectList();
@ -807,7 +814,7 @@ export default {
this.download(
'material/slt_agreement_info/exportLease',
{...params,},
`租赁费用明细_${currentTime}.xlsx`,
`${this.exportName}_租赁费用明细_${currentTime}.xlsx`,
)
},
//
@ -828,7 +835,7 @@ export default {
this.download(
'material/slt_agreement_info/exportLose',
{...params,},
`丢失费用明细_${currentTime}.xlsx`,
`${this.exportName}_丢失费用明细_${currentTime}.xlsx`,
)
},
//
@ -849,7 +856,7 @@ export default {
this.download(
'material/slt_agreement_info/exportRepair',
{...params,},
`维修费用明细_${currentTime}.xlsx`,
`${this.exportName}_维修费用明细_${currentTime}.xlsx`,
)
},
//
@ -870,7 +877,7 @@ export default {
this.download(
'material/slt_agreement_info/exportScrap',
{...params,},
`报废费用明细_${currentTime}.xlsx`,
`${this.exportName}_报废费用明细_${currentTime}.xlsx`,
)
// this.downloadJson(
// 'material/slt_agreement_info/exportScrap',
@ -895,7 +902,7 @@ export default {
this.download(
'material/slt_agreement_info/exportReduction',
{...params,},
`减免费用明细_${currentTime}.xlsx`,
`${this.exportName}_减免费用明细_${currentTime}.xlsx`,
)
},
@ -916,7 +923,7 @@ export default {
this.download(
'material/slt_agreement_info/exportAll',
{...params,},
`全部费用明细_${currentTime}.xlsx`,
`${this.exportName}_全部费用明细_${currentTime}.xlsx`,
)
},
},

View File

@ -416,7 +416,7 @@ export default {
try {
// 簿
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('租赁费用区间报表');
const worksheet = workbook.addWorksheet('租赁费用区间统计报表');
//
const columns = [
@ -504,7 +504,7 @@ export default {
});
//
let fileName = '租赁费用区间报表';
let fileName = '租赁费用区间统计报表';
if (this.queryParams.startDate && this.queryParams.endDate) {
fileName += `_${this.queryParams.startDate}_至_${this.queryParams.endDate}`;
}

View File

@ -1,7 +1,8 @@
<template>
<div class="" id="lostReportList">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item prop="unitIds">
<el-row>
<el-form-item label="结算单位" prop="unitIds">
<treeselect
v-model="queryParams.unitId"
:options="unitList" :normalizer="normalizer"
@ -10,7 +11,7 @@
placeholder="请选择结算单位" @select="unitChange"
/>
</el-form-item>
<el-form-item prop="projectIds">
<el-form-item label="结算工程" prop="projectIds">
<treeselect
v-model="queryParams.projectId"
:options="proList" :normalizer="normalizer"
@ -19,8 +20,8 @@
placeholder="请选择结算工程" @select="proChange"
/>
</el-form-item>
<el-form-item prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable/>
<el-form-item prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable style="width: 220px"/>
</el-form-item>
<el-form-item prop="startTime">
<el-date-picker
@ -43,11 +44,56 @@
style="width: 130px"
/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="物资名称" prop="typeName">
<el-select
v-model="queryParams.typeName"
placeholder="请选择物资名称"
style="width: 240px"
clearable
filterable
>
<el-option
v-for="item in typeNameOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-select
v-model="queryParams.modelName"
placeholder="请选择规格型号"
style="width: 240px"
clearable
filterable
>
<el-option
v-for="item in typeModelNameOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable :maxlength="20"
style="width: 220px"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button>
<el-button type="success" icon="el-icon-download" size="mini" @click="exportExcel" :disabled="tableList.length === 0">导出Excel</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="loading" :data="tableList" border stripe :max-height="650">
@ -95,6 +141,7 @@ import {
getAgreementInfoById,
getUnitListFilterTeam,
} from '@/api/back/index.js'
import {getDeviceType} from "@/api/ma/device";
import { getLostReportList } from '@/api/cost/cost'
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@ -127,16 +174,57 @@ export default {
dateRange: null,
startTime: null,
endTime: null,
typeName: null,
modelName: null,
keyWord: null,
},
typeNameOptions:[],
typeModelNameOptions:[],
}
},
created() {
this.initDefaultDateRange()
this.GetUnitData()
this.GetProData()
this.getDeviceType()
this.getList()
},
methods: {
// async handleTypeNameChange(e){
// this.queryParams.modelName=null
// this.typeModelNameOptions=[]
// getDeviceType({ level: 4, typeId:e }).then(response => {
// let matNameRes = response.data
// this.typeModelNameOptions = matNameRes.map((item) => {
// return {
// label: item.typeName,
// value: item.typeId
// }
// })
// })
// },
getDeviceType() {
getDeviceType({ level: 3 }).then(response => {
let matNameRes = response.data
this.typeNameOptions = matNameRes.map((item) => {
return {
label: item.typeName,
value: item.typeName
}
})
})
getDeviceType({ level: 4 }).then(response => {
let matModelRes = response.data
this.typeModelNameOptions = matModelRes.map((item) => {
return {
label: item.typeName,
value: item.typeName
}
})
})
},
//
initDefaultDateRange() {
const now = new Date()
@ -271,11 +359,15 @@ export default {
dateRange: null,
startTime: null,
endTime: null,
typeName: null,
modelName: null,
keyWord: null,
}
//
this.initDefaultDateRange()
this.resetForm('queryForm')
this.handleQuery()
this.getDeviceType()
},
// Excel

View File

@ -771,7 +771,7 @@ export default {
{ key: 'days', title: '天数' },
{ key: 'cost', title: '费用(元)' }
];
fileName = '租赁费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '租赁费用';
break;
case 'repair':
@ -782,7 +782,7 @@ export default {
{ key: 'repairQuantity', title: '维修数量' },
{ key: 'cost', title: '维修费用(元)' }
];
fileName = '维修费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '维修费用';
break;
case 'lose':
@ -793,7 +793,7 @@ export default {
{ key: 'loseQuantity', title: '丢失数量' },
{ key: 'cost', title: '丢失费用(元)' }
];
fileName = '丢失费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '丢失费用';
break;
case 'scrap':
@ -804,7 +804,7 @@ export default {
{ key: 'scrapQuantity', title: '报废数量' },
{ key: 'cost', title: '报废费用(元)' }
];
fileName = '报废费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '报废费用';
break;
case 'total':
@ -821,7 +821,7 @@ export default {
{ key: 'cost', title: '费用(元)' },
{ key: 'costType', title: '费用类型' }
];
fileName = '合计费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '合计费用';
break;
default:
@ -979,10 +979,10 @@ export default {
worksheet['!cols'] = columnWidths;
// 簿
XLSX.utils.book_append_sheet(workbook, worksheet, '结算记录');
XLSX.utils.book_append_sheet(workbook, worksheet, '已结算报表');
//
let fileName = '结算记录';
let fileName = '已结算报表';
if (this.queryParams.startTime && this.queryParams.endTime) {
fileName += `_${this.queryParams.startTime}_至_${this.queryParams.endTime}`;
}

View File

@ -569,17 +569,14 @@ import {
getUnitList,
getAgreementInfoById, getUnitListFilterTeam,
} from '@/api/back/index.js'
import {getSltList, costExamine, getSltReportedList, getSltReportList, getHistoryReportList,
getHistoryLeaseCostDetails, getHistoryRepairCostDetails, getHistoryLoseCostDetails, getHistoryScrapCostDetails,
getExportZipUnsettled,getExportZipProgress
} from '@/api/cost/cost'
import {getSltList, costExamine, getSltReportedList, getSltReportList, getHistoryReportList, getHistoryLeaseCostDetails, getHistoryRepairCostDetails, getHistoryLoseCostDetails, getHistoryScrapCostDetails} from '@/api/cost/cost'
import { toChineseAmount } from '@/utils/bonus.js'
import vueEasyPrint from "vue-easy-print";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import * as XLSX from 'xlsx';
import request from '@/utils/request'
import { download,downloadJson,downloadZip } from '@/utils/request'
export default {
name: 'UnreportHome',
@ -882,7 +879,12 @@ export default {
this.statusText = '开始导出...'
const response = await getExportZipUnsettled(param)
const response = await request({
url: '/material/slt_agreement_info/exportUnsettled',
method: 'post',
data: JSON.stringify(param),
timeout: 60000 // 10
})
const result = response
this.taskId = result.taskId
this.totalZip = result.total
@ -901,9 +903,12 @@ export default {
startPolling() {
this.pollInterval = setInterval(async () => {
try {
const param = { taskId: this.taskId }
const response = await getExportZipProgress(param)
const response = await request({
url: `/material/slt_agreement_info/exportProgress/${this.taskId}`,
method: 'get'
})
const progress = response
this.progress = progress.percentage
this.current = progress.current
@ -925,7 +930,7 @@ export default {
this.statusText = '查询进度失败'
this.exportFlag = false
}
}, 5000)
}, 1000)
},
downloadFile() {
@ -935,7 +940,7 @@ export default {
this.downloadZip(
'material/slt_agreement_info/downloadExport',
JSON.stringify(param),
`未结算批量明细导出_${new Date().getTime()}.zip`,
`未结算报表批量明细导出_${new Date().getTime()}.zip`,
)
}
@ -1132,7 +1137,7 @@ export default {
{ key: 'days', title: '天数' },
{ key: 'cost', title: '费用(元)' }
];
fileName = '租赁费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '租赁费用';
break;
case 'repair':
@ -1144,7 +1149,7 @@ export default {
{ key: 'partType', title: '是否收费' },
{ key: 'cost', title: '维修费用(元)' }
];
fileName = '维修费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '维修费用';
break;
case 'lose':
@ -1155,7 +1160,7 @@ export default {
{ key: 'loseQuantity', title: '丢失数量' },
{ key: 'cost', title: '丢失费用(元)' }
];
fileName = '丢失费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '丢失费用';
break;
case 'scrap':
@ -1166,7 +1171,7 @@ export default {
{ key: 'scrapQuantity', title: '报废数量' },
{ key: 'cost', title: '报废费用(元)' }
];
fileName = '报废费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '报废费用';
break;
case 'reduction':
@ -1177,7 +1182,7 @@ export default {
{ key: 'reductionQuantity', title: '减免数量' },
{ key: 'cost', title: '减免费用(元)' }
];
fileName = '减免费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '减免费用';
break;
case 'total':
@ -1194,7 +1199,7 @@ export default {
{ key: 'cost', title: '费用(元)' },
{ key: 'costType', title: '费用类型' }
];
fileName = '合计费用详情';
fileName = `${this.costDetailTitle}`;
sheetName = '合计费用';
break;
default: