|
|
@ -90,11 +90,14 @@ |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-table |
|
|
<el-table |
|
|
|
|
|
ref="materialTable" |
|
|
:data="materialList" |
|
|
:data="materialList" |
|
|
border |
|
|
border |
|
|
class="material-table" |
|
|
class="material-table" |
|
|
max-height="58vh" |
|
|
max-height="58vh" |
|
|
style="width: 100%"> |
|
|
|
|
|
|
|
|
style="width: 100%" |
|
|
|
|
|
@selection-change="handleMaterialSelectionChange"> |
|
|
|
|
|
<el-table-column type="selection" width="50" align="center" header-align="center"></el-table-column> |
|
|
<el-table-column type="index" width="50" label="序号" align="center" header-align="center"></el-table-column> |
|
|
<el-table-column type="index" width="50" label="序号" align="center" header-align="center"></el-table-column> |
|
|
<el-table-column prop="applyNo" label="试验单号" width="110" align="center" header-align="center"></el-table-column> |
|
|
<el-table-column prop="applyNo" label="试验单号" width="110" align="center" header-align="center"></el-table-column> |
|
|
<el-table-column prop="workOrderNo" label="工单号" width="130" align="center" header-align="center" show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="workOrderNo" label="工单号" width="130" align="center" header-align="center" show-overflow-tooltip></el-table-column> |
|
|
@ -135,8 +138,12 @@ |
|
|
|
|
|
|
|
|
<div slot="footer" class="dialog-footer" style="margin-top: 20px"> |
|
|
<div slot="footer" class="dialog-footer" style="margin-top: 20px"> |
|
|
<el-button @click="materialDialogVisible = false" :disabled="createLoading">取消</el-button> |
|
|
<el-button @click="materialDialogVisible = false" :disabled="createLoading">取消</el-button> |
|
|
<el-button class="create-btn" |
|
|
|
|
|
type="success" @click="submitCreateIssue" :loading="createLoading"> |
|
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
class="create-btn" |
|
|
|
|
|
type="success" |
|
|
|
|
|
:disabled="selectedMaterialRows.length === 0" |
|
|
|
|
|
@click="submitCreateIssue" |
|
|
|
|
|
:loading="createLoading"> |
|
|
{{ createLoading ? '创建中...' : '确定创建' }} |
|
|
{{ createLoading ? '创建中...' : '确定创建' }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
@ -173,6 +180,8 @@ export default { |
|
|
tableHeight: (window.innerHeight - 260), |
|
|
tableHeight: (window.innerHeight - 260), |
|
|
materialDialogVisible: false, |
|
|
materialDialogVisible: false, |
|
|
materialList: [], |
|
|
materialList: [], |
|
|
|
|
|
// 弹窗内勾选的原材料,创建时只提交这部分 |
|
|
|
|
|
selectedMaterialRows: [], |
|
|
issueNeedDate: '', |
|
|
issueNeedDate: '', |
|
|
createLoading: false |
|
|
createLoading: false |
|
|
} |
|
|
} |
|
|
@ -291,8 +300,15 @@ export default { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
this.materialList = availableList |
|
|
this.materialList = availableList |
|
|
|
|
|
this.selectedMaterialRows = [] |
|
|
this.issueNeedDate = availableList[0].needDate |
|
|
this.issueNeedDate = availableList[0].needDate |
|
|
this.materialDialogVisible = true |
|
|
this.materialDialogVisible = true |
|
|
|
|
|
// 每次打开都不带上次勾选,避免误提交 |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
if (this.$refs.materialTable && this.$refs.materialTable.clearSelection) { |
|
|
|
|
|
this.$refs.materialTable.clearSelection() |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(data.msg || '加载领料明细失败') |
|
|
this.$message.error(data.msg || '加载领料明细失败') |
|
|
} |
|
|
} |
|
|
@ -302,21 +318,28 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 创建领料单 |
|
|
|
|
|
|
|
|
* 弹窗表格勾选变化 |
|
|
|
|
|
*/ |
|
|
|
|
|
handleMaterialSelectionChange(selection) { |
|
|
|
|
|
this.selectedMaterialRows = selection || [] |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 创建领料单,只提交弹窗内勾选的原材料 |
|
|
*/ |
|
|
*/ |
|
|
submitCreateIssue() { |
|
|
submitCreateIssue() { |
|
|
if (!this.materialList || this.materialList.length === 0) { |
|
|
|
|
|
this.$message.warning('领料明细不能为空') |
|
|
|
|
|
|
|
|
if (!this.selectedMaterialRows || this.selectedMaterialRows.length === 0) { |
|
|
|
|
|
this.$message.warning('请先勾选需要领料的原材料') |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const invalidItem = this.materialList.find(item => this.toNumber(item.issueQty) <= 0) |
|
|
|
|
|
|
|
|
const invalidItem = this.selectedMaterialRows.find(item => this.toNumber(item.issueQty) <= 0) |
|
|
if (invalidItem) { |
|
|
if (invalidItem) { |
|
|
this.$message.warning(`试验单${invalidItem.applyNo}存在本次领料数量小于等于0的记录`) |
|
|
this.$message.warning(`试验单${invalidItem.applyNo}存在本次领料数量小于等于0的记录`) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const overItem = this.materialList.find(item => this.toNumber(item.issueQty) > this.toNumber(item.availableQty)) |
|
|
|
|
|
|
|
|
const overItem = this.selectedMaterialRows.find(item => this.toNumber(item.issueQty) > this.toNumber(item.availableQty)) |
|
|
if (overItem) { |
|
|
if (overItem) { |
|
|
this.$message.warning(`试验单${overItem.applyNo}的本次领料数量不能超过可申请数量`) |
|
|
this.$message.warning(`试验单${overItem.applyNo}的本次领料数量不能超过可申请数量`) |
|
|
return |
|
|
return |
|
|
@ -327,7 +350,7 @@ export default { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const materialList = this.materialList.map(item => ({ |
|
|
|
|
|
|
|
|
const materialList = this.selectedMaterialRows.map(item => ({ |
|
|
rawMaterialId: item.rawMaterialId, |
|
|
rawMaterialId: item.rawMaterialId, |
|
|
applyNo: item.applyNo, |
|
|
applyNo: item.applyNo, |
|
|
issueQty: this.toNumber(item.issueQty), |
|
|
issueQty: this.toNumber(item.issueQty), |
|
|
@ -342,6 +365,7 @@ export default { |
|
|
this.$message.success(`创建成功,领料单号:${data.issueNo}`) |
|
|
this.$message.success(`创建成功,领料单号:${data.issueNo}`) |
|
|
this.materialDialogVisible = false |
|
|
this.materialDialogVisible = false |
|
|
this.materialList = [] |
|
|
this.materialList = [] |
|
|
|
|
|
this.selectedMaterialRows = [] |
|
|
this.issueNeedDate = '' |
|
|
this.issueNeedDate = '' |
|
|
this.getDataList() |
|
|
this.getDataList() |
|
|
} else { |
|
|
} else { |
|
|
|