Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling

dev-scheduling
ysn 2 months ago
commit 6e8b12e2a6
  1. 9
      src/api/storeManagement/matureSubmission.js
  2. 1
      src/views/inboundOutboundManagement/components/addEditDialog.vue
  3. 389
      src/views/inboundOutboundManagement/otherIssuing/index.vue
  4. 661
      src/views/inboundOutboundManagement/otherIssuing/otherIssuingDailog.vue
  5. 7
      src/views/orderManagement/components/exception/dataMissing.vue
  6. 1
      src/views/productionManagement/components/coatingMater/assayedContent.vue
  7. 4
      src/views/system/menu.vue
  8. 164
      src/views/warehouseManagement/materialExpiration/InspectionDialog.vue
  9. 224
      src/views/warehouseManagement/materialExpiration/matureSubmission.vue

@ -9,3 +9,12 @@ export const getList = params => {
params params
}); });
}; };
// 确认送检 stExpireSubmission/submit
export const save = params => {
return request({
url: '/api/blade-wms/stExpireSubmission/submit',
method: 'post',
data: params
});
};

@ -402,6 +402,7 @@ export default {
console.log('index--------', index); console.log('index--------', index);
getGlassPieList({ getGlassPieList({
woCode: e.target.value, woCode: e.target.value,
goodsCode:this.tableData[index].goodsCode,
}).then(res => { }).then(res => {
console.log('res--------', res); console.log('res--------', res);
}); });

@ -1,26 +1,58 @@
<template> <template>
<basic-container> <basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" <avue-crud
v-model:page="page" ref="crud" :option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
v-model:search="searchForm" v-model:search="searchForm"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @row-del="rowDel"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @search-change="searchChange"
:before-open="beforeOpen"> @search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
:before-open="beforeOpen"
>
<template #menu-left> <template #menu-left>
<el-input v-model="checkCode" @keyup.enter.native="changeCode" style="width: 240px; margin-right: 24px" placeholder="请扫描条形码" /> <el-input
v-model="checkCode"
@keyup.enter.native="changeCode"
style="width: 240px; margin-right: 24px"
placeholder="请扫描条形码"
/>
<el-button type="primary" @click="addView()">新增</el-button> <el-button type="primary" @click="addView()">新增</el-button>
</template> </template>
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="handeDetails(scope.row)">详情</el-button> <el-button type="text" @click="handeDetails(scope.row)">详情</el-button>
<el-button type="text" v-if="scope.row.approvalStatus === 0" @click="handeExamine(scope.row)">审批</el-button> <el-button
type="text"
v-if="scope.row.approvalStatus === 0"
@click="handeExamine(scope.row)"
>审批</el-button
>
</template> </template>
<!-- <template #menu="scope"> <!-- <template #menu="scope">
<el-button type="text" size="mini" @click="handle(scope.row.tbId)">处理</el-button> <el-button type="text" size="mini" @click="handle(scope.row.tbId)">处理</el-button>
</template> --> </template> -->
</avue-crud> </avue-crud>
<otherIssuingDailog v-if="openShow" :showDialog="openShow" :checkCode="checkCode" @closeDialog="closeDialog"></otherIssuingDailog> <otherIssuingDailog
<detailsDialog v-if="showDetail" :showDialog="showDetail" :id="checkId" @closeDialog="closeDialog"></detailsDialog> v-if="openShow"
:showDialog="openShow"
:checkCode="checkCode"
@closeDialog="closeDialog"
></otherIssuingDailog>
<detailsDialog
v-if="showDetail"
:showDialog="showDetail"
:id="checkId"
@closeDialog="closeDialog"
></detailsDialog>
<el-dialog width="30%" v-model="approveDialog" title="审批"> <el-dialog width="30%" v-model="approveDialog" title="审批">
<el-form :model="auditForm" :rules="auditRules" ref="auditForm"> <el-form :model="auditForm" :rules="auditRules" ref="auditForm">
<el-form-item label="是否审核通过" prop="approvalResult"> <el-form-item label="是否审核通过" prop="approvalResult">
@ -38,8 +70,8 @@
</basic-container> </basic-container>
</template> </template>
<script> <script>
import {getList,getDetail,approve} from "@/api/storeManagement/otherIssuing" import { getList, getDetail, approve } from '@/api/storeManagement/otherIssuing';
import otherIssuingDailog from "./otherIssuingDailog.vue"; import otherIssuingDailog from './otherIssuingDailog.vue';
import detailsDialog from './detailsDialog.vue'; import detailsDialog from './detailsDialog.vue';
export default { export default {
components: { components: {
@ -49,15 +81,15 @@ export default {
data() { data() {
return { return {
openShow: false, openShow: false,
checkId:'', checkId: '',
showDetail:false, showDetail: false,
checkCode:"", checkCode: '',
selectionList: [], selectionList: [],
query:{}, query: {},
searchForm:{}, searchForm: {},
loading:false, loading: false,
option: { option: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
// size: "medium", // size: "medium",
@ -73,12 +105,12 @@ export default {
viewBtn: false, viewBtn: false,
delBtn: false, delBtn: false,
addBtn: false, addBtn: false,
editBtnText: "修改", editBtnText: '修改',
editBtn:false, editBtn: false,
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
dialogWidth: 1200, dialogWidth: 1200,
@ -91,22 +123,22 @@ export default {
excelBtn: true, excelBtn: true,
columnSort: true, columnSort: true,
index: true, index: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelWidth: "auto", searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "center", menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [ column: [
{ {
label: "出库单号", label: '出库单号',
prop: "sirCode", prop: 'sirCode',
// bind: "stAccBill.billCode", // bind: "stAccBill.billCode",
sortable: true, sortable: true,
filter: true, filter: true,
@ -115,18 +147,24 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "出库日期", label: '出库日期',
prop: "inOutDate", prop: 'inOutDate',
// bind: "stAccBill.billDate", // bind: "stAccBill.billDate",
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
type: 'date',
searchRange: true,
valueFormat: 'YYYY-MM-DD',
format: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
}, },
{ {
label: "出库仓库", label: '出库仓库',
prop: "shName", prop: 'shName',
// bind: "stAccBill.coStorehouse.shName", // bind: "stAccBill.coStorehouse.shName",
search: true, search: true,
sortable: true, sortable: true,
@ -135,91 +173,89 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "出库类别", label: '出库类别',
prop: "outType", prop: 'outType',
type: "select", type: 'select',
// bind: "stAccBill.billFlagStr", // bind: "stAccBill.billFlagStr",
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
width:110, width: 110,
dicData:[ dicData: [
/*0:报废出库,1:料头出库,2.超额出库,3复检出库,4领用出库,5库转移,6退货出库,11不合格退库*/ /*0:报废出库,1:料头出库,2.超额出库,3复检出库,4领用出库,5库转移,6退货出库,11不合格退库*/
{ label: "报废出库", value: 0 }, { label: '报废出库', value: 0 },
{ label: "料头出库", value: 1 }, { label: '料头出库', value: 1 },
{ label: "超额出库", value: 2 }, { label: '超额出库', value: 2 },
{ label: "复检出库", value: 3 }, { label: '复检出库', value: 3 },
{ label: "领用出库", value: 4 }, { label: '领用出库', value: 4 },
{ label: "库转移", value: 5 }, { label: '库转移', value: 5 },
{ label: "退货出库", value: 6 }, { label: '退货出库', value: 6 },
{ label: "班组提请", value: 8 }, { label: '班组提请', value: 8 },
{ label: "不合格退库", value: 11 }, { label: '不合格退库', value: 11 },
],
]
}, },
{ {
label: "出库原因", label: '出库原因',
prop: "inOutReason", prop: 'inOutReason',
type: "select", type: 'select',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
dicData:[ dicData: [
{ {
value: '0', value: '0',
label: "报废出库" label: '报废出库',
}, },
{ {
value: '1', value: '1',
label: "料头出库" label: '料头出库',
}, },
{ {
value: '2', value: '2',
label: "超额出库" label: '超额出库',
}, },
{ {
value: '3', value: '3',
label: "复检出库" label: '复检出库',
}, },
{ {
value: '4', value: '4',
label: "领用出库" label: '领用出库',
}, },
{ {
value: '5', value: '5',
label: "库转移" label: '库转移',
}, },
{ {
value: '6', value: '6',
label: "退货出库" label: '退货出库',
}, },
{ {
value: '7', value: '7',
label: "物料出库" label: '物料出库',
}, },
{ {
value: '8', value: '8',
label: "班组提请" label: '班组提请',
}, },
{label:'不合格退库',value:'11'} { label: '不合格退库', value: '11' },
] ],
}, },
{ {
label: "领料人", label: '领料人',
prop: "pickerName", prop: 'pickerName',
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
width: 100, width: 100,
}, },
{ {
label: "制单人", label: '制单人',
prop: "createUserName", prop: 'createUserName',
// bind: "stAccBill.createMan.userName", // bind: "stAccBill.createMan.userName",
search: false, search: false,
sortable: true, sortable: true,
@ -228,8 +264,8 @@ export default {
width: 100, width: 100,
}, },
{ {
label: "工装编号", label: '工装编号',
prop: "toolCode", prop: 'toolCode',
// bind: "pjMold.toolingCode", // bind: "pjMold.toolingCode",
search: false, search: false,
sortable: true, sortable: true,
@ -239,8 +275,8 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "报废单号", label: '报废单号',
prop: "bfCode", prop: 'bfCode',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -249,8 +285,8 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "关联车间订单号", label: '关联车间订单号',
prop: "woCode", prop: 'woCode',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -259,26 +295,26 @@ export default {
width: 150, width: 150,
}, },
{ {
label: "审批状态", label: '审批状态',
prop: "approvalStatus", prop: 'approvalStatus',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
type: "select", type: 'select',
width: 180, width: 180,
dicData: [ dicData: [
{ {
label: "审批中", label: '审批中',
value: 0, value: 0,
}, },
{ {
label: "审批通过", label: '审批通过',
value: 1, value: 1,
}, },
{ {
label: "审批驳回", label: '审批驳回',
value: 10, value: 10,
}, },
// { // {
@ -288,8 +324,8 @@ export default {
], ],
}, },
{ {
label: "审批意见", label: '审批意见',
prop: "approvalOpinion", prop: 'approvalOpinion',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -298,8 +334,8 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "审批人", label: '审批人',
prop: "approverName", prop: 'approverName',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -308,22 +344,22 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "审批时间", label: '审批时间',
prop: "approvalTime", prop: 'approvalTime',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
type: "datetime", type: 'datetime',
width: 180, width: 180,
}, },
{ {
label: "报废原因", label: '报废原因',
prop: "bfType", prop: 'bfType',
// bind: "scrapReason", // bind: "scrapReason",
search: false, search: false,
type:"select", type: 'select',
sortable: true, sortable: true,
// /** // /**
// * // *
@ -337,11 +373,11 @@ export default {
// * // *
// */ // */
// public static final Short BF_TYPE_GLASS_CAKE = 3; // public static final Short BF_TYPE_GLASS_CAKE = 3;
dicData:[ dicData: [
{ label: "到期维护报废", value: 1 }, { label: '到期维护报废', value: 1 },
{ label: "未报废", value: 0 }, { label: '未报废', value: 0 },
{ label: "归还报废", value: 2 }, { label: '归还报废', value: 2 },
{ label: "玻璃饼报废", value: 3 } { label: '玻璃饼报废', value: 3 },
], ],
filter: true, filter: true,
span: 24, span: 24,
@ -349,8 +385,8 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "提请单号", label: '提请单号',
prop: "crCode", prop: 'crCode',
// bind: "stAccBill.billCode", // bind: "stAccBill.billCode",
sortable: true, sortable: true,
filter: true, filter: true,
@ -359,8 +395,8 @@ export default {
width: 180, width: 180,
}, },
{ {
label: "备注", label: '备注',
prop: "memo", prop: 'memo',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -368,7 +404,6 @@ export default {
display: false, display: false,
width: 180, width: 180,
}, },
], ],
}, },
form: {}, form: {},
@ -377,15 +412,15 @@ export default {
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
approveDialog:false, approveDialog: false,
auditForm:{}, auditForm: {},
auditRules:{ auditRules: {
approvalResult:[{ required: true, message: '请选择是否通过审核', trigger: 'blur' }] approvalResult: [{ required: true, message: '请选择是否通过审核', trigger: 'blur' }],
}, },
}; };
}, },
created(){ created() {
if (JSON.stringify(this.$store.state.client.otherOutParams) !== "{}") { if (JSON.stringify(this.$store.state.client.otherOutParams) !== '{}') {
this.query = this.$store.state.client.otherOutParams; this.query = this.$store.state.client.otherOutParams;
this.searchForm = this.$store.state.client.otherOutParams; this.searchForm = this.$store.state.client.otherOutParams;
} }
@ -394,82 +429,82 @@ export default {
addView() { addView() {
this.openShow = true; this.openShow = true;
}, },
changeCode(val){ changeCode(val) {
if(this.checkCode == "") return if (this.checkCode == '') return;
this.openShow = true this.openShow = true;
}, },
beforeOpen(done, type){ beforeOpen(done, type) {
if(['view'].includes(type)){ if (['view'].includes(type)) {
getDetail({id:this.form.id}).then(res =>{ getDetail({ id: this.form.id }).then(res => {
console.log('res=============',res) console.log('res=============', res);
}) });
}else{ } else {
done(); done();
} }
}, },
searchChange(params, done){ searchChange(params, done) {
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad() this.onLoad();
this.$store.dispatch("changeSetting", { this.$store.dispatch('changeSetting', {
title: "otherOutParams", title: 'otherOutParams',
form: this.query, form: this.query,
}); });
done() done();
}, },
searchReset(){ searchReset() {
this.query = {} this.query = {};
this.$store.dispatch("changeSetting", { this.$store.dispatch('changeSetting', {
title: "otherOutParams", title: 'otherOutParams',
form: this.query, form: this.query,
}); });
this.onLoad() this.onLoad();
}, },
currentChange(currentPage){ currentChange(currentPage) {
this.page.currentPage = currentPage this.page.currentPage = currentPage;
}, },
sizeChange(pageSize){ sizeChange(pageSize) {
this.page.pageSize = pageSize this.page.pageSize = pageSize;
}, },
closeDialog(val){ closeDialog(val) {
this.openShow = false this.openShow = false;
this.showDetail = false this.showDetail = false;
if(val){ if (val) {
this.onLoad() this.onLoad();
} }
}, },
handleDelete() { handleDelete() {
if (this.selectionList.length === 0) { if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据"); this.$message.warning('请选择至少一条数据');
return; return;
} }
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => { }); }).then(() => {});
}, },
handeExamine(row){ handeExamine(row) {
this.auditForm = {} this.auditForm = {};
this.auditForm.id = row.id this.auditForm.id = row.id;
this.approveDialog = true this.approveDialog = true;
}, },
handeDetails(row){ handeDetails(row) {
this.showDetail = true this.showDetail = true;
this.checkId = row.id this.checkId = row.id;
}, },
submit(){ submit() {
this.$refs.auditForm.validate(valid => { this.$refs.auditForm.validate(valid => {
if(valid){ if (valid) {
approve({...this.auditForm}).then(res =>{ approve({ ...this.auditForm }).then(res => {
if(res.data.code == 200){ if (res.data.code == 200) {
this.$message.success('审批成功') this.$message.success('审批成功');
this.approveDialog = false this.approveDialog = false;
this.onLoad() this.onLoad();
} }
}) });
} }
}) });
}, },
// //
selectionChange(list) { selectionChange(list) {
@ -477,18 +512,26 @@ export default {
}, },
onLoad() { onLoad() {
this.loading = true; this.loading = true;
let params = {
...this.query,
startInOutDate:
this.query.inOutDate && this.query.inOutDate.length != 0 && this.query.inOutDate[0],
endInOutDate:
this.query.inOutDate && this.query.inOutDate.length != 0 && this.query.inOutDate[1],
};
if (params.inOutDate) delete params.inOutDate;
getList({ getList({
current: this.page.currentPage, current: this.page.currentPage,
size: this.page.pageSize, size: this.page.pageSize,
...this.query, ...params,
}).then(res => { }).then(res => {
res.data.data.records.forEach(item => { res.data.data.records.forEach(item => {
item.approvalStatus = item.approvalStatus === -1 ? '' : item.approvalStatus item.approvalStatus = item.approvalStatus === -1 ? '' : item.approvalStatus;
}) });
this.data = res.data.data.records this.data = res.data.data.records;
this.page.total = res.data.data.total this.page.total = res.data.data.total;
this.loading = false this.loading = false;
}) });
// this.data = [ // this.data = [
// { // {
// tbId: 'OT2023001', // tbId: 'OT2023001',

@ -876,7 +876,6 @@ export default {
} }
}, },
partCodeChange(val,value,item) { partCodeChange(val,value,item) {
console.log(val, value,item,9090909090)
this.editForm.partName =item.partName this.editForm.partName =item.partName
}, },
submitEdit() { submitEdit() {
@ -1011,3 +1010,9 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
:deep(.el-dialog){
height: 85vh;
margin-top: 5vh;
}
</style>

@ -151,7 +151,6 @@ export default {
label: '化验时间', label: '化验时间',
prop: 'assayTime', prop: 'assayTime',
span: 24, span: 24,
type: 'datetime',
overflow: true, overflow: true,
search: false, search: false,
headerAlign: 'center', headerAlign: 'center',

@ -102,12 +102,12 @@ addBtnIcon: ' ',
delBtnIcon: ' ', delBtnIcon: ' ',
editBtnIcon: ' ', editBtnIcon: ' ',
searchShowBtn:false, searchShowBtn:false,
align: 'center', // align: 'center',
column: [ column: [
{ {
label: '菜单名称', label: '菜单名称',
prop: 'name', prop: 'name',
width: 300, width: 240,
search: true, search: true,
rules: [ rules: [
{ {

@ -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/undefined0 !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>

@ -1,9 +1,22 @@
<template> <template>
<basic-container> <basic-container>
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud" <avue-crud
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" :option="option"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" v-model:search="search"
@refresh-change="refreshChange" @on-load="onLoad"> :table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> <template #menu-left>
<!-- 批量送检 对接erp中的数据 --> <!-- 批量送检 对接erp中的数据 -->
<el-button type="primary" @click="allocationFun()">批量送检</el-button> <el-button type="primary" @click="allocationFun()">批量送检</el-button>
@ -18,25 +31,38 @@
<template #menu="scope"> <template #menu="scope">
<!-- <el-button type="text" @click="handle(scope.row.tbId)">调拨</el-button> --> <!-- <el-button type="text" @click="handle(scope.row.tbId)">调拨</el-button> -->
</template> </template>
</avue-crud> </avue-crud>
<!-- 到期送检 -->
<inspectionDialog
ref="inspectionDialog"
@closeDialog="closeDialog"
:showDialog="inspectionShow"
:rowData="rowData"
v-if="inspectionShow"
/>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import {getList} from "@/api/storeManagement/matureSubmission" import { getList } from '@/api/storeManagement/matureSubmission';
import inspectionDialog from './InspectionDialog.vue';
export default { export default {
components: {
inspectionDialog,
},
data() { data() {
return { return {
inspectionShow: false,
selectionList: [], selectionList: [],
loading: false, loading: false,
search:{ search: {
days:30 days: 30,
}, },
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
// size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -90,7 +116,6 @@ export default {
{ {
label: '物料编码', label: '物料编码',
prop: 'goodsCode', prop: 'goodsCode',
// bind: 'coGoods.goodsCode',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -100,27 +125,16 @@ export default {
{ {
label: '物料名称', label: '物料名称',
prop: 'goodsName', prop: 'goodsName',
// bind: 'coGoods.goodsName',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
search: false, search: false,
width: 120, width: 120,
}, },
// {
// label: '',
// prop: 'shName',
// // bind: 'stRealtimeStock.coStorehouse.shName',
// sortable: true,
// filter: true,
// span: 12,
// search: false,
// width: 120,
// },
{ {
label: '所属仓库', label: '所属仓库',
prop: 'shName', prop: 'shName',
// bind: 'stRealtimeStock.storageLocation.location',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -131,7 +145,6 @@ export default {
{ {
label: '炉批号', label: '炉批号',
prop: 'stovePiNo', prop: 'stovePiNo',
// bind: 'stovePiNo',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -141,7 +154,6 @@ export default {
{ {
label: '检验编号', label: '检验编号',
prop: 'checkCode', prop: 'checkCode',
// bind: 'checkCode',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -151,7 +163,6 @@ export default {
{ {
label: '质量等级', label: '质量等级',
prop: 'quantityLevel', prop: 'quantityLevel',
// bind: 'quantityLevel',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -188,7 +199,6 @@ export default {
{ {
label: '送检人', label: '送检人',
prop: 'esMan', prop: 'esMan',
// bind: 'userName',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
@ -197,93 +207,110 @@ export default {
}, },
{ {
label: '临期天数', label: '临期天数',
prop:"expireDays", prop: 'expireDays',
width:120 width: 120,
}, },
{ {
label: '到期状态', label: '到期状态',
prop: 'expireStatus', prop: 'expireStatus',
// bind: 'wsMan.userName',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
search: false, search: true,
width: 120, width: 120,
fixed: 'right',
type: 'select', type: 'select',
dicData: [ dicData: [
{ {
label: '到期', label: '即将到期',
value: 0 value: 0,
}, },
{ {
label: '已期', label: '已期',
value: 1 value: 1,
} },
] ],
}, },
{ {
label: '送检状态', label: '送检状态',
prop: 'applyFor', prop: 'applyFor',
// bind: 'wsMan.userName',
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
search: true, search: true,
width: 120, width: 120,
type: 'select', type: 'select',
fixed: 'right',
dicData: [ dicData: [
{ {
label: '未送检', label: '未送检',
value: false value: false,
}, },
{ {
label: '已送检', label: '已送检',
value: true value: true,
}
]
}, },
],
]
}, },
form: { ],
}, },
form: {},
page: { page: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
query:{} query: {},
} rowData:[]
};
}, },
methods: { methods: {
searchChange(params, done){ closeDialog() {
this.query = params this.inspectionShow = false;
this.onLoad(this.page, this.query);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad() this.onLoad();
done() done();
}, },
searchReset(){ searchReset() {
this.query = {} this.query = {};
this.onLoad() this.onLoad();
}, },
currentChange(currentPage){ currentChange(currentPage) {
this.page.currentPage = currentPage; this.page.currentPage = currentPage;
}, },
sizeChange(pageSize){ sizeChange(pageSize) {
this.page.pageSize = pageSize; this.page.pageSize = pageSize;
}, },
warehousing() { warehousing() {},
warehousingLog() {},
searchData(type) {
this.query.expireStatus = type;
this.onLoad();
}, },
warehousingLog() { //
allocationFun() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
const allUninspected = this.selectionList.every(item => item.applyFor === false);
if (!allUninspected) {
this.$message.error('只能对“未送检”的数据进行批量送检,请检查选中项');
return;
}
this.selectionList.forEach(item => {
item.esDept = '' //
item.esQty = '' //
item.esDeptId='' //id
});
this.rowData = this.selectionList
this.inspectionShow = true
},
searchData(type){
this.query.expireStatus = type
this.onLoad()
},
allocationFun(arId) {
// this.$confirm('', '', { // this.$confirm('', '', {
// confirmButtonText: '', // confirmButtonText: '',
// cancelButtonText: '', // cancelButtonText: '',
@ -320,66 +347,25 @@ export default {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
}).then(() => { }).then(() => {});
})
}, },
// //
selectionChange(list) { selectionChange(list) {
this.selectionList = list; this.selectionList = list;
}, },
onLoad() { onLoad() {
this.loading = true this.loading = true;
getList({ getList({
current:this.page.currentPage, current: this.page.currentPage,
size:this.page.pageSize, size: this.page.pageSize,
...this.query ...this.query,
}).then(res =>{ }).then(res => {
this.data = res.data.data.records this.data = res.data.data.records;
console.log('data-----------',this.data) this.page.total = res.data.data.total;
this.page.total = res.data.data.total this.loading = false;
this.loading = false });
}) },
// this.data = [ },
// { };
// "wsCode": "34544554",
// "goodsCode": "876788",
// "goodsName": "",
// "shName": "",
// "location": "()",
// "stovePiNo": "87889",
// "checkCode": "8767677",
// "quantityLevel": "",
// "wsQty": 89,
// "wsDept": "",
// "wsTime": "2025-10-09",
// "userName": "",
// "status": "",
// "statusTitle": ""
// },
// {
// "wsCode": "34544554",
// "goodsCode": "876788",
// "goodsName": "",
// "shName": "",
// "location": "",
// "stovePiNo": "87889",
// "checkCode": "8767677",
// "quantityLevel": "",
// "wsQty": 89,
// "wsDept": "",
// "wsTime": "2025-10-09",
// "userName": "",
// "status": "",
// "statusTitle": ""
// }
// ]
// this.page.total = this.data.length
// this.loading = false
// setTimeout(() => {
// this.selectionClear()
// }, 500)
}
}
}
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>
Loading…
Cancel
Save