|
|
@ -18,7 +18,7 @@ |
|
|
<el-option label="全部" value=""></el-option> |
|
|
<el-option label="全部" value=""></el-option> |
|
|
<el-option label="已下达" value="已下达"></el-option> |
|
|
<el-option label="已下达" value="已下达"></el-option> |
|
|
<el-option label="已取消" value="已取消"></el-option> |
|
|
<el-option label="已取消" value="已取消"></el-option> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
@ -53,7 +53,7 @@ |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<template v-if="editMode && item.editAble && item.columnProp==='supplierName'"> |
|
|
<template v-if="editMode && item.editAble && item.columnProp==='supplierName'"> |
|
|
<el-select |
|
|
<el-select |
|
|
v-model="rowSupplierNo[scope.row.id]" |
|
|
|
|
|
|
|
|
v-model="rowSupplierNo[scope.row.id]" |
|
|
size="mini" |
|
|
size="mini" |
|
|
style="width: 100%" |
|
|
style="width: 100%" |
|
|
clearable |
|
|
clearable |
|
|
@ -76,7 +76,7 @@ |
|
|
clearable |
|
|
clearable |
|
|
filterable |
|
|
filterable |
|
|
placeholder="请选择物料" |
|
|
placeholder="请选择物料" |
|
|
@change="(val) => handlePartNoChange(scope.row, val)"> |
|
|
|
|
|
|
|
|
@change="(val) => handlePartNoChange(scope.row, val)"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="opt in poPartNoOptions" |
|
|
v-for="opt in poPartNoOptions" |
|
|
:key="String(opt.value)" |
|
|
:key="String(opt.value)" |
|
|
@ -93,7 +93,7 @@ |
|
|
clearable |
|
|
clearable |
|
|
filterable |
|
|
filterable |
|
|
placeholder="请选择始发港" |
|
|
placeholder="请选择始发港" |
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
|
|
|
|
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="opt in poDepartureOptions" |
|
|
v-for="opt in poDepartureOptions" |
|
|
:key="String(opt.value)" |
|
|
:key="String(opt.value)" |
|
|
@ -110,7 +110,7 @@ |
|
|
clearable |
|
|
clearable |
|
|
filterable |
|
|
filterable |
|
|
placeholder="请选择目的港" |
|
|
placeholder="请选择目的港" |
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
|
|
|
|
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="opt in poDestinationOptions" |
|
|
v-for="opt in poDestinationOptions" |
|
|
:key="String(opt.value)" |
|
|
:key="String(opt.value)" |
|
|
@ -127,7 +127,7 @@ |
|
|
clearable |
|
|
clearable |
|
|
filterable |
|
|
filterable |
|
|
placeholder="请选择运输方式" |
|
|
placeholder="请选择运输方式" |
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
|
|
|
|
|
|
@change="(val) => handlePortChange(scope.row, val)"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="opt in transportOptions" |
|
|
v-for="opt in transportOptions" |
|
|
:key="String(opt.value)" |
|
|
:key="String(opt.value)" |
|
|
@ -160,7 +160,7 @@ |
|
|
size="mini" |
|
|
size="mini" |
|
|
@change="onCellChange(scope.row)"> |
|
|
@change="onCellChange(scope.row)"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
<!-- 时间控件 --> |
|
|
|
|
|
|
|
|
<!-- 时间控件 --> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-else-if="item.editType === 'date'" |
|
|
v-else-if="item.editType === 'date'" |
|
|
v-model="scope.row[item.columnProp]" |
|
|
v-model="scope.row[item.columnProp]" |
|
|
@ -170,7 +170,7 @@ |
|
|
value-format="yyyy-MM-dd" |
|
|
value-format="yyyy-MM-dd" |
|
|
placeholder="选择日期" |
|
|
placeholder="选择日期" |
|
|
@change="onCellChange(scope.row)"> |
|
|
@change="onCellChange(scope.row)"> |
|
|
</el-date-picker> |
|
|
|
|
|
|
|
|
</el-date-picker> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-else-if="item.editType === 'datetime'" |
|
|
v-else-if="item.editType === 'datetime'" |
|
|
v-model="scope.row[item.columnProp]" |
|
|
v-model="scope.row[item.columnProp]" |
|
|
@ -188,7 +188,7 @@ |
|
|
size="mini" |
|
|
size="mini" |
|
|
@change="onCellChange(scope.row)"> |
|
|
@change="onCellChange(scope.row)"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</template> |
|
|
</template> |
|
|
<span v-else>{{ scope.row[item.columnProp] }}</span> |
|
|
<span v-else>{{ scope.row[item.columnProp] }}</span> |
|
|
</template> |
|
|
</template> |
|
|
@ -335,7 +335,7 @@ export default { |
|
|
showOverflowTooltip: true, |
|
|
showOverflowTooltip: true, |
|
|
editAble: true, |
|
|
editAble: true, |
|
|
editType: 'select', |
|
|
editType: 'select', |
|
|
selectOptionsKey: 'supplierOptions', |
|
|
|
|
|
|
|
|
selectOptionsKey: 'supplierOptions', |
|
|
selectOptions: null |
|
|
selectOptions: null |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
@ -1199,8 +1199,8 @@ export default { |
|
|
}, |
|
|
}, |
|
|
created () { |
|
|
created () { |
|
|
this.getDataList() |
|
|
this.getDataList() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
mounted () { |
|
|
mounted () { |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
@ -1232,7 +1232,7 @@ export default { |
|
|
} |
|
|
} |
|
|
return [] |
|
|
return [] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getDataList() { |
|
|
getDataList() { |
|
|
this.loading = true |
|
|
this.loading = true |
|
|
const params = { |
|
|
const params = { |
|
|
@ -1248,7 +1248,7 @@ export default { |
|
|
...row, |
|
|
...row, |
|
|
changeFlag: 0 // 初始化变更标记 |
|
|
changeFlag: 0 // 初始化变更标记 |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.pageIndex = data.page.currPage |
|
|
this.pageIndex = data.page.currPage |
|
|
this.pageSize = data.page.pageSize |
|
|
this.pageSize = data.page.pageSize |
|
|
this.totalPage = data.page.totalCount |
|
|
this.totalPage = data.page.totalCount |
|
|
@ -1276,38 +1276,37 @@ export default { |
|
|
|
|
|
|
|
|
handleSupplierChange(row, supplierNo) { |
|
|
handleSupplierChange(row, supplierNo) { |
|
|
console.log('供应商变更:', supplierNo, '行ID:', row.id) |
|
|
console.log('供应商变更:', supplierNo, '行ID:', row.id) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const selectedOption = this.supplierOptions.find(opt => opt.value === supplierNo) |
|
|
const selectedOption = this.supplierOptions.find(opt => opt.value === supplierNo) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (selectedOption) { |
|
|
if (selectedOption) { |
|
|
this.$set(row, 'supplierName', selectedOption.label) |
|
|
this.$set(row, 'supplierName', selectedOption.label) |
|
|
this.$set(row, 'supplierNo', selectedOption.value) |
|
|
this.$set(row, 'supplierNo', selectedOption.value) |
|
|
this.$set(row, 'shortOffice', selectedOption.shortOffice || '') |
|
|
this.$set(row, 'shortOffice', selectedOption.shortOffice || '') |
|
|
this.$set(row, 'shortNpc', selectedOption.shortNpc || '') |
|
|
this.$set(row, 'shortNpc', selectedOption.shortNpc || '') |
|
|
this.$set(row, 'changeFlag', 1) |
|
|
this.$set(row, 'changeFlag', 1) |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handlePartNoChange(row, partNo) { |
|
|
handlePartNoChange(row, partNo) { |
|
|
console.log('物料变更:', partNo, '行ID:', row.id) |
|
|
console.log('物料变更:', partNo, '行ID:', row.id) |
|
|
|
|
|
|
|
|
// 根据 partNo 找到对应的物料信息 |
|
|
// 根据 partNo 找到对应的物料信息 |
|
|
const selectedOption = this.poPartNoOptions.find(opt => opt.value === partNo) |
|
|
const selectedOption = this.poPartNoOptions.find(opt => opt.value === partNo) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (selectedOption) { |
|
|
if (selectedOption) { |
|
|
// 更新物料相关信息 |
|
|
// 更新物料相关信息 |
|
|
this.$set(row, 'partNo', selectedOption.label) |
|
|
|
|
|
|
|
|
this.$set(row, 'partNo', selectedOption.label) |
|
|
//同时更新 category 和 sku |
|
|
//同时更新 category 和 sku |
|
|
this.$set(row, 'category', selectedOption.category || '') |
|
|
this.$set(row, 'category', selectedOption.category || '') |
|
|
this.$set(row, 'sku', selectedOption.sku || '') |
|
|
|
|
|
this.$set(row, 'changeFlag', 1) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.$set(row, 'sku', selectedOption.sku || '') |
|
|
|
|
|
this.$set(row, 'changeFlag', 1) |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
handlePortChange(row, field, value) { |
|
|
handlePortChange(row, field, value) { |
|
|
console.log(`${field}变更:`, value, '行ID:', row.id) |
|
|
console.log(`${field}变更:`, value, '行ID:', row.id) |
|
|
this.$set(row, field, value) // 直接设置字段值 |
|
|
this.$set(row, field, value) // 直接设置字段值 |
|
|
this.$set(row, 'changeFlag', 1) |
|
|
this.$set(row, 'changeFlag', 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 注意:这里还需要同步更新对应的 rowDeparture/rowDestination/rowShipVia |
|
|
// 注意:这里还需要同步更新对应的 rowDeparture/rowDestination/rowShipVia |
|
|
if (field === 'departure') { |
|
|
if (field === 'departure') { |
|
|
this.$set(this.rowDeparture, row.id, value) |
|
|
this.$set(this.rowDeparture, row.id, value) |
|
|
@ -1316,7 +1315,7 @@ export default { |
|
|
} else if (field === 'shipVia') { |
|
|
} else if (field === 'shipVia') { |
|
|
this.$set(this.rowShipVia, row.id, value) |
|
|
this.$set(this.rowShipVia, row.id, value) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果三个字段都填写了,获取运输方式选项 |
|
|
// 如果三个字段都填写了,获取运输方式选项 |
|
|
if (row.departure && row.destination && row.shipVia) { |
|
|
if (row.departure && row.destination && row.shipVia) { |
|
|
this.getTransportOptions(row.departure, row.destination, row.shipVia) |
|
|
this.getTransportOptions(row.departure, row.destination, row.shipVia) |
|
|
@ -1346,11 +1345,11 @@ export default { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
const changed = this.masterRows.filter(r => r.changeFlag === 1) |
|
|
const changed = this.masterRows.filter(r => r.changeFlag === 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.batchUpdatePoOrder(changed) |
|
|
this.batchUpdatePoOrder(changed) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getPartNoOptions() { |
|
|
getPartNoOptions() { |
|
|
console.log('获取分类选项') |
|
|
console.log('获取分类选项') |
|
|
getPartList( |
|
|
getPartList( |
|
|
@ -1363,18 +1362,18 @@ export default { |
|
|
this.poPartNoOptions = (data.rows || []).map(item => ({ |
|
|
this.poPartNoOptions = (data.rows || []).map(item => ({ |
|
|
label: item.partNo, |
|
|
label: item.partNo, |
|
|
value: item.partNo, |
|
|
value: item.partNo, |
|
|
category: item.category, |
|
|
|
|
|
sku: item.sku |
|
|
|
|
|
|
|
|
category: item.category, |
|
|
|
|
|
sku: item.sku |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
} |
|
|
} |
|
|
}).catch(error => { |
|
|
}).catch(error => { |
|
|
this.$message.error('操作失败: ' + error.message) |
|
|
this.$message.error('操作失败: ' + error.message) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
getSupplierOptions(){ |
|
|
getSupplierOptions(){ |
|
|
console.log('获取供应商选项') |
|
|
console.log('获取供应商选项') |
|
|
@ -1385,14 +1384,14 @@ export default { |
|
|
).then(({data}) => { |
|
|
).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
console.log('接口返回的rows:', data.rows) // 查看返回数据 |
|
|
console.log('接口返回的rows:', data.rows) // 查看返回数据 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.supplierOptions = (data.rows || []).map(item => ({ |
|
|
this.supplierOptions = (data.rows || []).map(item => ({ |
|
|
label: item.supplierName, |
|
|
label: item.supplierName, |
|
|
value: item.supplierNo, |
|
|
value: item.supplierNo, |
|
|
shortOffice: item.cshortOffice, |
|
|
shortOffice: item.cshortOffice, |
|
|
shortNpc: item.cshortNpc |
|
|
|
|
|
|
|
|
shortNpc: item.cshortNpc |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
} |
|
|
} |
|
|
@ -1409,16 +1408,16 @@ export default { |
|
|
).then(({data}) => { |
|
|
).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
console.log('接口返回的rows:', data.rows) // 查看返回数据 |
|
|
console.log('接口返回的rows:', data.rows) // 查看返回数据 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.transportOptions = (data.rows || []).map(item => ({ |
|
|
this.transportOptions = (data.rows || []).map(item => ({ |
|
|
label: item.supplierName, |
|
|
label: item.supplierName, |
|
|
value: item.supplierNo, |
|
|
value: item.supplierNo, |
|
|
destination: item.destination, |
|
|
destination: item.destination, |
|
|
departure: item.departure, |
|
|
departure: item.departure, |
|
|
shipVia: item.shipVia, |
|
|
shipVia: item.shipVia, |
|
|
etc: item.eta |
|
|
|
|
|
|
|
|
etc: item.eta |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
this.$message.error(data.msg || '操作失败') |
|
|
} |
|
|
} |
|
|
@ -1434,7 +1433,7 @@ export default { |
|
|
id: row.id, |
|
|
id: row.id, |
|
|
...row |
|
|
...row |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 调用批量修改接口 |
|
|
// 调用批量修改接口 |
|
|
batchUpdatePoDetail(updateData) |
|
|
batchUpdatePoDetail(updateData) |
|
|
.then(({ data }) => { |
|
|
.then(({ data }) => { |
|
|
@ -1447,7 +1446,7 @@ export default { |
|
|
changed.forEach(r => { |
|
|
changed.forEach(r => { |
|
|
this.$set(r, 'changeFlag', 0) |
|
|
this.$set(r, 'changeFlag', 0) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.editMode = false |
|
|
this.editMode = false |
|
|
this.getDataList() |
|
|
this.getDataList() |
|
|
} else { |
|
|
} else { |
|
|
@ -1458,7 +1457,7 @@ export default { |
|
|
this.$message.error('操作失败: ' + error.message) |
|
|
this.$message.error('操作失败: ' + error.message) |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|