|
|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div class="p-2">
|
|
|
|
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
|
|
|
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
|
|
|
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
|
|
|
|
<div v-show="showSearch" class="mb-[10px]">
|
|
|
|
|
<el-card shadow="hover">
|
|
|
|
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
|
|
@ -8,10 +9,12 @@
|
|
|
|
|
<el-input v-model="queryParams.instockPrintId" placeholder="请输入入库单子表主键" clearable @keyup.enter="handleQuery" />
|
|
|
|
|
</el-form-item> -->
|
|
|
|
|
<el-form-item label="入库单号" prop="instockCode">
|
|
|
|
|
<el-input v-model="queryParams.instockCode" placeholder="请输入入库单号" clearable @keyup.enter="handleQuery" />
|
|
|
|
|
<el-input v-model="queryParams.instockCode" placeholder="请输入入库单号" clearable
|
|
|
|
|
@keyup.enter="handleQuery" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="批次码" prop="batchCode">
|
|
|
|
|
<el-input v-model="queryParams.batchCode" placeholder="请输入批次码" clearable @keyup.enter="handleQuery" />
|
|
|
|
|
<el-input v-model="queryParams.batchCode" placeholder="请输入批次码" clearable
|
|
|
|
|
@keyup.enter="handleQuery" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<!-- <el-form-item label="条码数量" prop="materialQty">
|
|
|
|
|
<el-input v-model="queryParams.materialQty" placeholder="请输入条码数量" clearable @keyup.enter="handleQuery" />
|
|
|
|
|
@ -87,9 +90,11 @@
|
|
|
|
|
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:instockPrint:export']">导出</el-button>
|
|
|
|
|
</el-col>-->
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button type="warning" plain icon="Download" @click="handlePrint" v-if="!inboundStatusdVisble">打印</el-button>
|
|
|
|
|
<el-button type="warning" plain icon="Download" @click="handlePrint" v-if="!inboundStatusdVisble">打印
|
|
|
|
|
</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<right-toolbar v-model:showSearch="showSearch" :columns="columns" :search="true" @queryTable="getList"></right-toolbar>
|
|
|
|
|
<right-toolbar v-model:showSearch="showSearch" :columns="columns" :search="true"
|
|
|
|
|
@queryTable="getList"></right-toolbar>
|
|
|
|
|
</el-row>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -97,7 +102,22 @@
|
|
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
|
|
<!-- <el-table-column label="入库单子表主键" align="center" prop="instockPrintId" v-if="columns[0].visible"/> -->
|
|
|
|
|
<el-table-column label="入库单号" align="center" prop="instockCode" v-if="columns[0].visible" />
|
|
|
|
|
<el-table-column label="批次码" align="center" prop="batchCode" v-if="columns[1].visible"/>
|
|
|
|
|
<el-table-column label="批次码" align="center" prop="batchCode" v-if="columns[1].visible">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-popover
|
|
|
|
|
placement="right-start"
|
|
|
|
|
>
|
|
|
|
|
<template #reference>
|
|
|
|
|
<span>{{ scope.row.batchCode }}</span>
|
|
|
|
|
</template>
|
|
|
|
|
<div>
|
|
|
|
|
<img :src="qrcodeList.find(e=>e.code === scope.row.batchCode).src"
|
|
|
|
|
:style="{ width:'100px',height:'100px',objectFit:'contain'}"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="每包数量" align="center" prop="materialQty" v-if="columns[2].visible" />
|
|
|
|
|
<el-table-column label="条码数量" align="center" prop="apportionQty" v-if="columns[3].visible" />
|
|
|
|
|
<!-- <el-table-column label="物料id" align="center" prop="materialId" v-if="columns[6].visible"/> -->
|
|
|
|
|
@ -121,7 +141,8 @@
|
|
|
|
|
<dict-tag :options="wms_inbound_status" :value="scope.row.inboundStatus"/>
|
|
|
|
|
</template>w
|
|
|
|
|
</el-table-column> -->
|
|
|
|
|
<el-table-column label="实际入库时间" align="center" prop="actualInboundTime" width="120px" v-if="!inboundStatusdVisble">
|
|
|
|
|
<el-table-column label="实际入库时间" align="center" prop="actualInboundTime" width="120px"
|
|
|
|
|
v-if="!inboundStatusdVisble">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<span>{{ parseTime(scope.row.actualInboundTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
|
|
|
|
</template>
|
|
|
|
|
@ -151,7 +172,8 @@
|
|
|
|
|
</el-table-column> -->
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
|
|
|
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<!-- 添加或修改入库单-物料打印条码对话框 -->
|
|
|
|
|
@ -205,16 +227,31 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup name="InstockPrint" lang="ts">
|
|
|
|
|
import { listInstockPrint, getInstockPrint, delInstockPrint, addInstockPrint, updateInstockPrint, printInstockPrint } from '@/api/wms/instockPrint';
|
|
|
|
|
import {
|
|
|
|
|
listInstockPrint,
|
|
|
|
|
getInstockPrint,
|
|
|
|
|
delInstockPrint,
|
|
|
|
|
addInstockPrint,
|
|
|
|
|
updateInstockPrint,
|
|
|
|
|
printInstockPrint
|
|
|
|
|
} from '@/api/wms/instockPrint';
|
|
|
|
|
import { InstockPrintVO, InstockPrintQuery, InstockPrintForm } from '@/api/wms/instockPrint/types';
|
|
|
|
|
import {
|
|
|
|
|
getMaterialList
|
|
|
|
|
} from '@/api/wms/linkage'
|
|
|
|
|
} from '@/api/wms/linkage';
|
|
|
|
|
import QRCode from 'qrcode';
|
|
|
|
|
|
|
|
|
|
const qrcodeList = ref([]);
|
|
|
|
|
|
|
|
|
|
import { getBaseMaterialCategoryListInWMS } from '@/api/wms/baseMaterialCategory';
|
|
|
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
|
const { material_mategories, wms_barcode_if, inspection_request, wms_inbound_status } = toRefs<any>(proxy?.useDict('material_mategories', 'wms_barcode_if', 'inspection_request', 'wms_inbound_status'));
|
|
|
|
|
const {
|
|
|
|
|
material_mategories,
|
|
|
|
|
wms_barcode_if,
|
|
|
|
|
inspection_request,
|
|
|
|
|
wms_inbound_status
|
|
|
|
|
} = toRefs<any>(proxy?.useDict('material_mategories', 'wms_barcode_if', 'inspection_request', 'wms_inbound_status'));
|
|
|
|
|
const instockPrintList = ref<InstockPrintVO[]>([]);
|
|
|
|
|
const buttonLoading = ref(false);
|
|
|
|
|
const loading = ref(true);
|
|
|
|
|
@ -229,7 +266,6 @@ const queryFormRef = ref<ElFormInstance>();
|
|
|
|
|
const instockPrintFormRef = ref<ElFormInstance>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const initFormData: InstockPrintForm = {
|
|
|
|
|
instockPrintId: undefined,
|
|
|
|
|
instockCode: undefined,
|
|
|
|
|
@ -248,8 +284,8 @@ const initFormData: InstockPrintForm = {
|
|
|
|
|
inboundStatus: undefined,
|
|
|
|
|
actualInboundTime: undefined,
|
|
|
|
|
createTime: undefined,
|
|
|
|
|
inspectionRequest: undefined,
|
|
|
|
|
}
|
|
|
|
|
inspectionRequest: undefined
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const data = reactive<PageData<InstockPrintForm, InstockPrintQuery>>({
|
|
|
|
|
form: { ...initFormData },
|
|
|
|
|
@ -274,8 +310,7 @@ const data = reactive<PageData<InstockPrintForm, InstockPrintQuery>>({
|
|
|
|
|
actualInboundTime: undefined,
|
|
|
|
|
createTime: undefined,
|
|
|
|
|
inspectionRequest: undefined,
|
|
|
|
|
params: {
|
|
|
|
|
}
|
|
|
|
|
params: {}
|
|
|
|
|
},
|
|
|
|
|
rules: {
|
|
|
|
|
// instockPrintId: [
|
|
|
|
|
@ -369,62 +404,72 @@ const getList = async () => {
|
|
|
|
|
loading.value = true;
|
|
|
|
|
const res = await listInstockPrint(queryParams.value);
|
|
|
|
|
instockPrintList.value = res.rows;
|
|
|
|
|
qrcodeList.value = res.rows.map(row => {
|
|
|
|
|
return {
|
|
|
|
|
code: row.batchCode,
|
|
|
|
|
src: ''
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
qrcodeList.value.forEach(async row => {
|
|
|
|
|
row.src = await QRCode.toDataURL(row.code);
|
|
|
|
|
});
|
|
|
|
|
console.log(qrcodeList.value);
|
|
|
|
|
total.value = res.total;
|
|
|
|
|
loading.value = false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 取消按钮 */
|
|
|
|
|
const cancel = () => {
|
|
|
|
|
reset();
|
|
|
|
|
dialog.visible = false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 表单重置 */
|
|
|
|
|
const reset = () => {
|
|
|
|
|
form.value = { ...initFormData };
|
|
|
|
|
queryParams.value.inboundStatus = routeInboundStatusValue;
|
|
|
|
|
instockPrintFormRef.value?.resetFields();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 搜索按钮操作 */
|
|
|
|
|
const handleQuery = () => {
|
|
|
|
|
queryParams.value.pageNum = 1;
|
|
|
|
|
queryParams.value.inboundStatus = routeInboundStatusValue;
|
|
|
|
|
getList();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 重置按钮操作 */
|
|
|
|
|
const resetQuery = () => {
|
|
|
|
|
queryFormRef.value?.resetFields();
|
|
|
|
|
queryParams.value.inboundStatus = routeInboundStatusValue;
|
|
|
|
|
handleQuery();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 多选框选中数据 */
|
|
|
|
|
const handleSelectionChange = (selection: InstockPrintVO[]) => {
|
|
|
|
|
vos.value = selection
|
|
|
|
|
console.log(vos.value)
|
|
|
|
|
vos.value = selection;
|
|
|
|
|
console.log(vos.value);
|
|
|
|
|
ids.value = selection.map(item => item.instockPrintId);
|
|
|
|
|
single.value = selection.length != 1;
|
|
|
|
|
multiple.value = !selection.length;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 新增按钮操作 */
|
|
|
|
|
const handleAdd = () => {
|
|
|
|
|
reset();
|
|
|
|
|
dialog.visible = true;
|
|
|
|
|
dialog.title = "添加入库单-物料打印条码";
|
|
|
|
|
}
|
|
|
|
|
dialog.title = '添加入库单-物料打印条码';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
|
|
const handleUpdate = async (row?: InstockPrintVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
const _instockPrintId = row?.instockPrintId || ids.value[0]
|
|
|
|
|
const _instockPrintId = row?.instockPrintId || ids.value[0];
|
|
|
|
|
const res = await getInstockPrint(_instockPrintId);
|
|
|
|
|
Object.assign(form.value, res.data);
|
|
|
|
|
dialog.visible = true;
|
|
|
|
|
dialog.title = "修改入库单-物料打印条码";
|
|
|
|
|
}
|
|
|
|
|
dialog.title = '修改入库单-物料打印条码';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 提交按钮 */
|
|
|
|
|
const submitForm = () => {
|
|
|
|
|
@ -436,37 +481,37 @@ const submitForm = () => {
|
|
|
|
|
} else {
|
|
|
|
|
await addInstockPrint(form.value).finally(() => buttonLoading.value = false);
|
|
|
|
|
}
|
|
|
|
|
proxy?.$modal.msgSuccess("操作成功");
|
|
|
|
|
proxy?.$modal.msgSuccess('操作成功');
|
|
|
|
|
dialog.visible = false;
|
|
|
|
|
await getList();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 删除按钮操作 */
|
|
|
|
|
const handleDelete = async (row?: InstockPrintVO) => {
|
|
|
|
|
const _instockPrintIds = row?.instockPrintId || ids.value;
|
|
|
|
|
await proxy?.$modal.confirm('是否确认删除入库单-物料打印条码编号为"' + _instockPrintIds + '"的数据项?').finally(() => loading.value = false);
|
|
|
|
|
await delInstockPrint(_instockPrintIds);
|
|
|
|
|
proxy?.$modal.msgSuccess("删除成功");
|
|
|
|
|
proxy?.$modal.msgSuccess('删除成功');
|
|
|
|
|
await getList();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
/** 打印按钮操作 */
|
|
|
|
|
const handlePrint = async (row?: InstockPrintVO) => {
|
|
|
|
|
console.log(vos.value)
|
|
|
|
|
console.log(vos.value);
|
|
|
|
|
const _instockPrintVOs = vos.value;
|
|
|
|
|
// await proxy?.$modal.confirm('是否确认删除入库单-物料打印条码编号为"' + _instockPrintIds + '"的数据项?').finally(() => loading.value = false);
|
|
|
|
|
await printInstockPrint({ 'vos': _instockPrintVOs });
|
|
|
|
|
// proxy?.$modal.msgSuccess("删除成功");
|
|
|
|
|
await getList();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 导出按钮操作 */
|
|
|
|
|
const handleExport = () => {
|
|
|
|
|
proxy?.download('wms/instockPrint/export', {
|
|
|
|
|
...queryParams.value
|
|
|
|
|
}, `instockPrint_${new Date().getTime()}.xlsx`)
|
|
|
|
|
}
|
|
|
|
|
}, `instockPrint_${new Date().getTime()}.xlsx`);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
let mategoryOptions = ref([]);
|
|
|
|
|
const getMaterialCategorySelect = async () => {
|
|
|
|
|
@ -477,8 +522,8 @@ const getMaterialCategorySelect = async () => {
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
|
|
|
|
|
getMaterialList().then(e => {
|
|
|
|
|
materialList.value = e.data
|
|
|
|
|
})
|
|
|
|
|
materialList.value = e.data;
|
|
|
|
|
});
|
|
|
|
|
getList();
|
|
|
|
|
getMaterialCategorySelect();
|
|
|
|
|
});
|
|
|
|
|
|