This commit is contained in:
hayu 2025-11-18 16:17:50 +08:00
parent 9714a6edf3
commit a7b1518097
1 changed files with 135 additions and 46 deletions

View File

@ -50,6 +50,23 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 退役数量列 -->
<el-table-column label="退役数量" align="center" width="115">
<template slot-scope="scope">
<el-input-number
v-model="scope.row.retirementNum"
:min="0"
:max="getRetirementMax(scope.row)"
:precision="0"
:disabled="isRetirementNumDisabled(scope.row)"
controls-position="right"
size="mini"
style="width: 90px"
@change="handleRetirementNumChange(scope.row)"
/>
</template>
</el-table-column>
<el-table-column label="附件" align="center" width="90" :show-overflow-tooltip="true"> <el-table-column label="附件" align="center" width="90" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="display: flex; align-items: center; justify-content: space-between"> <div style="display: flex; align-items: center; justify-content: space-between">
@ -95,10 +112,6 @@
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -161,7 +174,7 @@ export default {
{ label: '类目', prop: 'groupName' }, { label: '类目', prop: 'groupName' },
{ label: '名称', prop: 'typeName' }, { label: '名称', prop: 'typeName' },
{ label: '规格型号', prop: 'typeModelName' }, { label: '规格型号', prop: 'typeModelName' },
{ label: '管理模式', prop: 'manageMode' }, { label: '管理模式', prop: 'manageMode', width: 90 },
{ label: '设备编码', prop: 'code' }, { label: '设备编码', prop: 'code' },
{ label: '维修数量', prop: 'repairNum', width: 80 }, { label: '维修数量', prop: 'repairNum', width: 80 },
{ {
@ -172,17 +185,30 @@ export default {
h('el-select', { h('el-select', {
props: { props: {
value: row.isScrap || '', value: row.isScrap || '',
disabled: row.status === '通过' // disabled: row.status === '通过' // ""
}, },
on: { on: {
input: val => { input: val => {
this.$set(row, 'isScrap', val) this.$set(row, 'isScrap', val)
// 退
if (val === '0') { if (val === '0') {
// 退0
this.$set(row, 'reasonVal', '') this.$set(row, 'reasonVal', '')
this.$set(row, 'reasonDisabled', true) this.$set(row, 'reasonDisabled', true)
this.$set(row, 'retirementNum', 0)
} else { } else {
// 退
this.$set(row, 'reasonDisabled', false) this.$set(row, 'reasonDisabled', false)
if (row.manageMode === '编码管理') {
// 退1
this.$set(row, 'retirementNum', 1)
} else {
// 退0
if (!row.retirementNum) {
this.$set(row, 'retirementNum', 0)
}
}
} }
} }
}, },
@ -245,6 +271,43 @@ export default {
this.getList() this.getList()
}, },
methods: { methods: {
// 退
// 退
isRetirementNumDisabled(row) {
// ""
if (row.status === '通过') return true
//
if (!row.isScrap && row.isScrap !== '0') return true
//
if (row.isScrap === '0') return true
//
if (row.manageMode === '编码管理' && row.isScrap === '1') return true
//
return false
},
// 退
getRetirementMax(row) {
// 1
if (row.manageMode === '编码管理') return 1
//
return row.repairNum || 0
},
// 退
handleRetirementNumChange(row) {
// 退
if (row.retirementNum < 0) {
this.$set(row, 'retirementNum', 0)
} else if (row.retirementNum > this.getRetirementMax(row)) {
this.$set(row, 'retirementNum', this.getRetirementMax(row))
}
},
// - // -
// //
handleFileSuccess2(response, file, fileList) { handleFileSuccess2(response, file, fileList) {
@ -323,7 +386,16 @@ export default {
this.isLoading = true this.isLoading = true
try { try {
const res = await getRepairDetailsList({ ...this.queryParams }) const res = await getRepairDetailsList({ ...this.queryParams })
this.tableList = res.data || [] this.tableList = (res.data || []).map(item => {
// 退0
if (item.retirementNum === undefined || item.retirementNum === null) {
item.retirementNum = 0
}
if (item.isScrap=='0'){
item.reasonDisabled=true
}
return item
})
/** ⭐ 获取列表后同步给弹窗的 selectedMap **/ /** ⭐ 获取列表后同步给弹窗的 selectedMap **/
if (this.$refs.addNum && this.$refs.addNum.selectedMap) { if (this.$refs.addNum && this.$refs.addNum.selectedMap) {
@ -383,6 +455,10 @@ export default {
newRows.forEach(item => { newRows.forEach(item => {
if (item.manageMode === '编码管理') item.repairNum = 1 if (item.manageMode === '编码管理') item.repairNum = 1
else if (!item.repairNum) item.repairNum = 1 else if (!item.repairNum) item.repairNum = 1
// 退0
if (item.retirementNum === undefined || item.retirementNum === null) {
item.retirementNum = 0
}
if (this.$refs.addNum && this.$refs.addNum.selectedMap) this.$refs.addNum.selectedMap.set(item.keyId, item) if (this.$refs.addNum && this.$refs.addNum.selectedMap) this.$refs.addNum.selectedMap.set(item.keyId, item)
}) })
this.tableList = [...this.tableList, ...newRows] this.tableList = [...this.tableList, ...newRows]
@ -409,6 +485,19 @@ export default {
return this.$message.warning(`${row.typeName}】请选择退役原因`) return this.$message.warning(`${row.typeName}】请选择退役原因`)
} }
// 退
if (row.isScrap === '1') {
// 退
if (row.retirementNum === undefined || row.retirementNum === null) {
return this.$message.warning(`${row.typeName}】退役数量不能为空`)
}
if (row.retirementNum <= 0) {
return this.$message.warning(`${row.typeName}】退役数量必须大于0`)
}
if (row.manageMode === '数量管理' && row.retirementNum > row.repairNum) {
return this.$message.warning(`${row.typeName}】退役数量不能大于维修数量`)
}
}
} }
const payload = { const payload = {