Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling
commit
6e8b12e2a6
9 changed files with 1614 additions and 1378 deletions
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,164 @@ |
||||
<template> |
||||
<el-dialog |
||||
title="批量送检" |
||||
append-to-body |
||||
:modelValue="openShow" |
||||
width="90%" |
||||
@close="closeDialog" |
||||
> |
||||
<el-table |
||||
ref="xTable" |
||||
:loading="btnLoading" |
||||
:data="rowData" |
||||
border |
||||
show-overflow |
||||
class="el-table-element" |
||||
stripe |
||||
height="400px" |
||||
highlight-current-row |
||||
row-id="rowIndex" |
||||
> |
||||
<!-- <el-table-column type="checkbox" width="40" /> --> |
||||
<el-table-column label="物料编码" align="center" prop="goodsCode" min-width="120" /> |
||||
|
||||
<el-table-column label="物料名称" align="center" prop="goodsName" min-width="150" /> |
||||
<el-table-column label="送检数量" align="center" prop="esQty" min-width="150"> |
||||
<template #header> |
||||
<span><i style="color: red">*</i>送检数量</span> |
||||
</template> |
||||
<template #default="scope"> |
||||
<!-- <el-input v-model="scope.row.esQty" placeholder="请输入" /> --> |
||||
<el-input-number v-model="scope.row.esQty" :min="0" label="请输入"></el-input-number> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="送检部门" align="center" prop="esDeptId" min-width="150"> |
||||
<template #header> |
||||
<span><i style="color: red">*</i>送检部门</span> |
||||
</template> |
||||
<template #default="scope"> |
||||
<el-select |
||||
v-model="scope.row.esDeptId" |
||||
clearable |
||||
filterable |
||||
@change="deptChange(scope.row)" |
||||
> |
||||
<el-option |
||||
v-for="(item, index) in deplList" |
||||
:key="index" |
||||
:label="item.deptName" |
||||
:value="item.id" |
||||
></el-option> |
||||
</el-select> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="炉批号" align="center" prop="stovePiNo" min-width="100" /> |
||||
<el-table-column label="型号/牌号" align="center" prop="specifications" min-width="100" /> |
||||
<el-table-column label="生产标识" align="center" min-width="100" prop="quantityLevel" /> |
||||
<el-table-column label="检验编号" align="center" prop="checkoutCode" width="100" /> |
||||
<el-table-column label="供方代码" align="center" prop="splyCode" width="100" /> |
||||
</el-table> |
||||
<template #footer> |
||||
<span class="dialog-footer"> |
||||
<el-button @click="closeDialog">取 消</el-button> |
||||
<el-button type="primary" @click="submit">确 定</el-button> |
||||
</span> |
||||
</template> |
||||
</el-dialog> |
||||
</template> |
||||
<script> |
||||
import { getDeplList } from '@/api/flowManagement/index'; |
||||
import { save } from '@/api/storeManagement/matureSubmission'; |
||||
export default { |
||||
props: { |
||||
showDialog: { |
||||
type: Boolean, |
||||
default: false, |
||||
}, |
||||
rowData: { |
||||
type: Array, |
||||
default: () => [], |
||||
}, |
||||
}, |
||||
data() { |
||||
return { |
||||
openShow: false, |
||||
deplList: [], |
||||
}; |
||||
}, |
||||
mounted() { |
||||
this.openShow = this.showDialog; |
||||
|
||||
console.log('rowData', this.rowData); |
||||
this.getDeplLists(); |
||||
}, |
||||
methods: { |
||||
// 制单部门名称 |
||||
deptChange(row) { |
||||
let sel = this.deplList.filter(item => item.id == row.esDeptId)[0]; |
||||
row.esDept = sel.deptName; |
||||
}, |
||||
// 获取部门列表 |
||||
getDeplLists() { |
||||
getDeplList().then(res => { |
||||
let data = res.data.data; |
||||
data.forEach(item => { |
||||
if (item.deptName == '热表分厂') { |
||||
this.deplList = item.children || []; |
||||
} |
||||
}); |
||||
}); |
||||
}, |
||||
closeDialog() { |
||||
this.openShow = false; |
||||
this.$emit('closeDialog'); |
||||
}, |
||||
submit() { |
||||
if (!this.rowData || this.rowData.length === 0) { |
||||
this.$message.warning('没有可提交的数据'); |
||||
return; |
||||
} |
||||
|
||||
// 2. 遍历每一行进行校验 |
||||
for (let i = 0; i < this.rowData.length; i++) { |
||||
const row = this.rowData[i]; |
||||
|
||||
// 校验送检数量 (esQty) |
||||
// 注意:el-input-number 的值可能是数字 0,如果是 0 通常也视为无效或未输入,根据业务需求调整 |
||||
// 如果允许为0,则只判断 null/undefined;如果不允许为0,则判断 !row.esQty |
||||
if (row.esQty === null || row.esQty === undefined || row.esQty === '') { |
||||
this.$message.error(`第 ${i + 1} 行数据的“送检数量”不能为空`); |
||||
return; // 发现错误立即停止 |
||||
} |
||||
|
||||
// 校验送检部门 (esDeptId) |
||||
if (!row.esDeptId) { |
||||
this.$message.error(`第 ${i + 1} 行数据的“送检部门”不能为空`); |
||||
return; // 发现错误立即停止 |
||||
} |
||||
} |
||||
|
||||
// 3. 校验通过,执行提交逻辑 |
||||
console.log('校验通过,准备提交数据:', this.rowData); |
||||
save(this.rowData) |
||||
.then(res => { |
||||
this.$message.success('送检成功'); |
||||
this.closeDialog(); |
||||
}) |
||||
.catch(err => { |
||||
this.closeDialog(); |
||||
}); |
||||
// TODO: 调用后端接口 |
||||
// submitInspection(this.rowData).then(res => { |
||||
// if (res.data.code === 200) { |
||||
// this.$message.success('送检成功'); |
||||
// this.closeDialog(); |
||||
// } |
||||
// }); |
||||
|
||||
// this.$message.success('校验通过'); |
||||
// this.closeDialog(); |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
<style lang="scss" scoped></style> |
||||
Loading…
Reference in new issue