feat(工单物料领用): 添加炉号显示列并调整表单提交数据
移除炉号输入表单项,改为在表格中显示炉号列 调整表单提交数据,将炉号替换为批次号
This commit is contained in:
@@ -126,568 +126,92 @@
|
||||
</el-table>
|
||||
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 入库单dialog -->
|
||||
<el-dialog :title="title" :lock-scroll="false" v-model="openStorage">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料编码" prop="materialCode">
|
||||
<el-select
|
||||
value-key="id"
|
||||
@change="handleMaterialChange"
|
||||
v-model="form.materialCode"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
:disabled="opertype == 3">
|
||||
<el-option
|
||||
v-for="(item, index) in options"
|
||||
:key="item.id"
|
||||
:label="`${item.type || ''} ${item.materialCode || ''} ${item.materialName || ''} [${item.supplierName || ''}]`"
|
||||
:value="item">
|
||||
<span style="float: left"
|
||||
>{{ item.type || '' }} {{ item.materialCode || '' }} {{ item.materialName || '' }} [{{ item.supplierName || '' }}]</span
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 入库对话框 -->
|
||||
<InventoryStorageDialog
|
||||
v-model:dialogVisible="openStorage"
|
||||
:title="title"
|
||||
:form="form"
|
||||
:rules="rules"
|
||||
:opertype="opertype"
|
||||
:options="options"
|
||||
:transactionOptions="transactionOptions"
|
||||
:locationOptions="locationOptions"
|
||||
@submit="submitStorage"
|
||||
@cancel="cancel"
|
||||
@material-change="handleMaterialChange"
|
||||
@location-change="handleLocationChange" />
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料名称" prop="materialName">
|
||||
<el-input :disabled="true" v-model="form.materialName" placeholder="请输入物料名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 出库对话框 -->
|
||||
<InventoryOutStorageDialog
|
||||
v-model:dialogVisible="openOutStorage"
|
||||
:title="title"
|
||||
:form="form"
|
||||
:rules="rulesOut"
|
||||
:opertype="opertype"
|
||||
:options="options"
|
||||
:transactionOptions="transactionOptions"
|
||||
:locationOptions="locationOptions"
|
||||
@submit="submitOutStorage"
|
||||
@cancel="cancel"
|
||||
@material-change="handleMaterialChange"
|
||||
@location-change="handleLocationChange" />
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="标号" prop="type">
|
||||
<el-input :disabled="true" v-model="form.type" placeholder="标号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 出货对话框 -->
|
||||
<InventoryShipmentDialog
|
||||
v-model:dialogVisible="openShipment"
|
||||
:title="title"
|
||||
:form="form"
|
||||
:rules="rulesOut"
|
||||
:opertype="opertype"
|
||||
:options="options"
|
||||
:transactionOptions="transactionOptions"
|
||||
:locationOptions="locationOptions"
|
||||
@submit="submitShipment"
|
||||
@cancel="cancel"
|
||||
@material-change="handleMaterialChange"
|
||||
@location-change="handleLocationChange" />
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="供应商名称" prop="supplierName">
|
||||
<el-input :disabled="true" v-model="form.supplierName" placeholder="供应商名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 更新对话框 -->
|
||||
<InventoryUpdateDialog
|
||||
v-model:dialogVisible="openUpdate"
|
||||
:title="title"
|
||||
:form="form"
|
||||
:rules="rulesUpdate"
|
||||
:opertype="opertype"
|
||||
:options="options"
|
||||
:locationOptions="locationOptions"
|
||||
@submit="submitUpdateForm"
|
||||
@cancel="cancel"
|
||||
@material-change="handleMaterialChange"
|
||||
@location-change="handleLocationChange" />
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位编码" prop="locationCode">
|
||||
<el-select value-key="locationCode" @change="handleLocationChange" v-model="form.locationCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in locationOptions" :key="item.locationCode" :label="item.locationCode" :value="item">
|
||||
<span style="float: left">{{ item.locationCode }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.locationName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 出入库记录对话框 -->
|
||||
<InventoryRecordDialog
|
||||
v-model:dialogVisible="openRecord"
|
||||
:title="title"
|
||||
:queryParams="queryParamsRecord"
|
||||
:recordData="recordData"
|
||||
:recordTotal="recordTotal"
|
||||
:transactionOptions="transactionOptions"
|
||||
:loading="loading"
|
||||
@update:dialogVisible="(val) => (openRecord = val)"
|
||||
@queryRecord="queryRecord"
|
||||
@resetQuery="resetQueryRecord"
|
||||
@sortChange="sortChange"
|
||||
@handleCancel="handleCancel"
|
||||
@handleRecordFlagChange="handleRecordFlagChange" />
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位名称" prop="locationName">
|
||||
<el-input :disabled="true" v-model="form.locationName" placeholder="请输入库位名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="仓库编码" prop="warehouseCode">
|
||||
<el-input :disabled="true" v-model="form.warehouseCode" placeholder="请输入仓库编码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="入库类型" prop="transactionType">
|
||||
<el-select v-model="form.transactionType" filterable placeholder="请选择" :disabled="opertype == 3">
|
||||
<el-option v-for="item in transactionOptions" :key="item.id" :label="item.typeCode" :value="item.typeName"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="入库数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入入库数量" :disabled="opertype == 3" style="font-weight: bold" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="原材料批次号" prop="batchNo">
|
||||
<el-input v-model="form.batchNo" placeholder="请输入原材料批次号" />
|
||||
<!-- <el-select v-model="form.batchNo" filterable placeholder="请选择" :disabled="opertype == 3">
|
||||
<el-option v-for="item in options.batchNoOptions" :key="item.id" :label="item.typeCode" :value="item.typeName"> </el-option>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12" v-if="form.transactionType !== '采购入库'">
|
||||
<el-form-item label="制造工单号" prop="workorder">
|
||||
<el-input v-model="form.workorder" placeholder="请输入制造工单号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="炉号" prop="stoveCode">
|
||||
<el-input v-model="form.stoveCode" placeholder="请输入炉号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="操作员" prop="operator">
|
||||
<el-select value-key="locationCode" @change="handleLocationChange" v-model="form.locationCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in locationOptions" :key="item.locationCode" :label="item.locationCode" :value="item">
|
||||
<span style="float: left">{{ item.locationCode }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.locationName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer v-if="opertype != 3">
|
||||
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="submitInboundForm">{{ $t('btn.submit') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 出库单dialog -->
|
||||
<el-dialog :title="title" :lock-scroll="false" v-model="openOutStorage">
|
||||
<el-form ref="formRef" :model="form" :rules="rulesOut" label-width="120px">
|
||||
<el-row :gutter="20">
|
||||
<!-- <el-col :lg="12" v-if="opertype != 1">
|
||||
<el-form-item label="主键ID" prop="id">
|
||||
<el-input-number v-model.number="form.id" controls-position="right" placeholder="请输入主键ID" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<!-- <el-col :lg="12" v-if="opertype == 1">
|
||||
<el-form-item label="出库单号" prop="outboundNo">
|
||||
<el-input v-model="form.outboundNo" placeholder="请输入出库单号" :disabled="opertype == 3" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料编码" prop="materialCode">
|
||||
<el-select
|
||||
value-key="id"
|
||||
@change="handleMaterialChange"
|
||||
v-model="form.materialCode"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
:disabled="opertype == 2">
|
||||
<el-option
|
||||
v-for="(item, index) in options"
|
||||
:key="item.id"
|
||||
:label="`${item.type || ''} ${item.materialCode} ${item.materialName} [${item.supplierName || ''}]`"
|
||||
:value="item">
|
||||
<span style="float: left"
|
||||
>{{ item.type || '' }} {{ item.materialCode }} {{ item.materialName }} [{{ item.supplierName || '' }}]</span
|
||||
>
|
||||
</el-option>
|
||||
<!-- <el-option v-for="item in options" :key="item.materialCode" :label="item.materialCode" :value="item.materialCode"> </el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :lg="12">
|
||||
<el-form-item label="物料分类编码" prop="categoryCode">
|
||||
<el-input v-model="form.categoryCode" placeholder="请输入物料分类编码" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料名称" prop="materialName">
|
||||
<el-input :disabled="true" v-model="form.materialName" placeholder="物料名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="标号" prop="type">
|
||||
<el-input :disabled="true" v-model="form.type" placeholder="标号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="供应商名称" prop="supplierName">
|
||||
<el-input :disabled="true" v-model="form.supplierName" placeholder="供应商名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位编码" prop="locationCode">
|
||||
<el-select value-key="locationCode" @change="handleLocationChange" v-model="form.locationCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in locationOptions" :key="item.locationCode" :label="item.locationCode" :value="item">
|
||||
<span style="float: left">{{ item.locationCode }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.locationName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位名称" prop="locationName">
|
||||
<el-input :disabled="true" v-model="form.locationName" placeholder="库位名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12" v-if="opertype == 1">
|
||||
<el-form-item label="出库数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入出库数量" :disabled="opertype == 2" style="font-weight: bold" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="12" v-if="opertype == 2">
|
||||
<el-form-item label="库存数量" prop="currentQty">
|
||||
<el-input v-model="form.currentQty" :disabled="opertype == 2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :lg="12">
|
||||
<el-form-item label="规格型号" prop="specificationModel">
|
||||
<el-input v-model="form.specificationModel" placeholder="请输入规格型号" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :lg="12" v-if="opertype == 1">
|
||||
<el-form-item label="出库类型" prop="transactionType">
|
||||
<el-select v-model="form.transactionType" filterable placeholder="请选择" :disabled="opertype == 2">
|
||||
<el-option v-for="item in transactionOptions" :key="item.id" :label="item.typeCode" :value="item.typeName"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="仓库编码" prop="warehouseCode">
|
||||
<el-input :disabled="true" v-model="form.warehouseCode" placeholder="仓库编码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="原材料批次号" prop="batchNo">
|
||||
<!-- <el-select v-model="form.batchNo" filterable placeholder="请选择" :disabled="opertype == 3">
|
||||
<el-option v-for="item in options.batchNoOptions" :key="item.id" :label="item.typeCode" :value="item.typeName"> </el-option>
|
||||
</el-select> -->
|
||||
<el-input v-model="form.batchNo" placeholder="请输入原材料批次号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="制造工单号" prop="workorder">
|
||||
<el-input v-model="form.workorder" placeholder="请输入制造工单号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :lg="12">
|
||||
<el-form-item label="制造工单号" prop="orderNo">
|
||||
<el-input v-model="form.orderNo" placeholder="请输入制造工单号" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="操作员" prop="operator">
|
||||
<el-select value-key="locationCode" @change="handleLocationChange" v-model="form.locationCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in locationOptions" :key="item.locationCode" :label="item.locationCode" :value="item">
|
||||
<span style="float: left">{{ item.locationCode }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.locationName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :lg="12">
|
||||
<el-form-item label="生产日期" prop="productionDate">
|
||||
<el-date-picker v-model="form.productionDate" type="datetime" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="有效期至" prop="expiryDate">
|
||||
<el-date-picker v-model="form.expiryDate" type="datetime" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="最后更新时间" prop="lastUpdatedTime">
|
||||
<el-date-picker v-model="form.lastUpdatedTime" type="datetime" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<!-- <el-col :lg="12" v-if="opertype != 1">
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="form.createdTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:disabled="opertype == 3">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer v-if="opertype != 3">
|
||||
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="submitOutboundForm">{{ $t('btn.submit') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 用户导入对话框 -->
|
||||
<el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="uploadRef"
|
||||
:limit="1"
|
||||
accept=".xlsx,.xls"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:on-success="handleFileSuccess"
|
||||
:auto-upload="false"
|
||||
drag>
|
||||
<el-icon class="el-icon--upload">
|
||||
<upload-filled />
|
||||
</el-icon>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<template #tip>
|
||||
<div class="el-upload__tip text-center">
|
||||
<!-- <div class="el-upload__tip">
|
||||
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
|
||||
</div> -->
|
||||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
|
||||
</div>
|
||||
</template>
|
||||
</el-upload>
|
||||
<template #footer>
|
||||
<el-button @click="upload.open = false">{{ $t('btn.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="submitFileForm">{{ $t('btn.submit') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 修改弹窗 -->
|
||||
<el-dialog :title="title" :lock-scroll="false" v-model="openUpdate">
|
||||
<el-form ref="formRef" :model="form" :rules="rulesUpdate" label-width="100px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料编码" prop="materialCode">
|
||||
<el-select value-key="id" @change="handleMaterialChange" v-model="form.materialCode" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="(item, index) in options"
|
||||
:key="`${item.materialCode}-${item.supplierCode || 'none'}`"
|
||||
:label="`${item.type || ''} ${item.materialCode} ${item.materialName} [${item.supplierName || ''}]`"
|
||||
:value="item">
|
||||
<span style="float: left"
|
||||
>{{ item.type || '' }} {{ item.materialCode }} {{ item.materialName }} [{{ item.supplierName || '' }}]</span
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="物料名称" prop="materialName">
|
||||
<el-input :disabled="true" v-model="form.materialName" placeholder="请输入物料名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="标号" prop="type">
|
||||
<el-input :disabled="true" v-model="form.type" placeholder="标号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="供应商名称" prop="supplierName">
|
||||
<el-input :disabled="true" v-model="form.supplierName" placeholder="供应商名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位编码" prop="locationCode">
|
||||
<el-select @change="handleLocationChange" v-model="form.locationCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in locationOptions" :key="item.locationCode" :label="item.locationCode" :value="item">
|
||||
<span style="float: left">{{ item.locationCode }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.locationName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库位名称" prop="locationName">
|
||||
<el-input :disabled="true" v-model="form.locationName" placeholder="请输入库位名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="仓库编码" prop="warehouseCode">
|
||||
<el-input :disabled="true" v-model="form.warehouseCode" placeholder="请输入仓库编码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="原材料批次号" prop="batchNo">
|
||||
<el-input v-model="form.batchNo" placeholder="请输入原材料批次号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :lg="12">
|
||||
<el-form-item label="炉号" prop="stoveCode">
|
||||
<el-input v-model="form.stoveCode" placeholder="请输入炉号" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="库存数量" prop="currentQty">
|
||||
<el-input v-model="form.currentQty" placeholder="请输入库存数量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12">
|
||||
<el-form-item label="操作员" prop="operator">
|
||||
<el-input v-model="form.operator" placeholder="请输入操作员" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="submitUpdateForm">{{ $t('btn.submit') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 进出库记录弹出框 -->
|
||||
<el-dialog :title="title" v-model="openRecord" width="90%" top="5vh">
|
||||
<el-form :model="queryParamsRecord" label-position="right" inline ref="queryRecordRef" @submit.prevent>
|
||||
<el-form-item label="出入库" prop="searchType">
|
||||
<el-select @change="handleRecordFlagChange" v-model="queryParamsRecord.recordFlag" filterable placeholder="请选择出入库">
|
||||
<el-option label="入库" value="入库"> </el-option>
|
||||
<el-option label="出库" value="出库"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出入库类别" prop="transactionType">
|
||||
<el-select v-model="queryParamsRecord.transactionType" filterable placeholder="请选择出入库类别">
|
||||
<el-option label="全部" value=""> </el-option>
|
||||
<el-option v-for="item in transactionOptions" :key="item.id" :label="item.typeCode" :value="item.typeName"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建日期" prop="createdTime">
|
||||
<el-date-picker
|
||||
v-model="queryParamsRecord.createdTime"
|
||||
type="datetimerange"
|
||||
:shortcuts="dateOptions"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
placeholder="请选择添加时间"
|
||||
align="right">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button icon="search" type="primary" @click="queryRecord">{{ $t('btn.search') }}</el-button>
|
||||
<el-button icon="refresh" @click="resetQueryRecord">{{ $t('btn.reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-if="inoroutFlag == '出库'"
|
||||
:data="recordData"
|
||||
height="64vh"
|
||||
v-loading="loading"
|
||||
ref="table"
|
||||
border
|
||||
header-cell-class-name="el-table-header-cell"
|
||||
highlight-current-row
|
||||
@sort-change="sortChange"
|
||||
:default-sort="{ prop: 'createdTime', order: 'descending' }">
|
||||
<!-- <el-table-column prop="id" label="主键ID" align="center" v-if="columns.showColumn('id')" /> -->
|
||||
<el-table-column prop="createdTime" sortable label="创建时间" align="center" v-if="columns.showColumn('createdTime')" />
|
||||
<el-table-column prop="outboundNo" label="出库单号" align="center" />
|
||||
<el-table-column prop="materialCode" label="物料编码" align="center" />
|
||||
<el-table-column prop="materialName" label="物料名称" align="center" v-if="columns.showColumn('materialName')" />
|
||||
<el-table-column prop="locationCode" label="库位编码" align="center" v-if="columns.showColumn('locationCode')" />
|
||||
<el-table-column prop="locationName" label="库位名称" align="center" v-if="columns.showColumn('locationName')" />
|
||||
<el-table-column prop="quantity" label="出库数量" align="center" v-if="columns.showColumn('quantity')">
|
||||
<template #default="scope">
|
||||
<span style="font-weight: bold">{{ scope.row.quantity }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="transactionType" label="出库类型" align="center" v-if="columns.showColumn('transactionType')" />
|
||||
<el-table-column prop="unit" label="计量单位" align="center" v-if="columns.showColumn('unit')" />
|
||||
<el-table-column prop="batchNo" label="原材料批次号" align="center" v-if="columns.showColumn('batchNo')" />
|
||||
<!-- <el-table-column prop="orderNo" label="关联订单号" align="center" v-if="columns.showColumn('orderNo')" /> -->
|
||||
<el-table-column prop="workorder" label="工单号" align="center" v-if="columns.showColumn('workorder')" />
|
||||
<el-table-column prop="operator" label="操作员" align="center" v-if="columns.showColumn('operator')" />
|
||||
<el-table-column prop="remarks" label="备注" align="center" v-if="columns.showColumn('remarks')" />
|
||||
<el-table-column label="操作">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="scope.row.remarks == '已撤销' || scope.row.transactionType == '出库红单'"
|
||||
type="info"
|
||||
size="small"
|
||||
title="已撤销"
|
||||
v-hasPermi="['mmrecordinbound:delete']"
|
||||
disabled
|
||||
>已撤销</el-button
|
||||
>
|
||||
<el-button v-else type="info" size="small" title="撤销" v-hasPermi="['mmrecordinbound:delete']" @click="handleCancel(scope.row)"
|
||||
>撤销</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table
|
||||
v-if="inoroutFlag == '入库'"
|
||||
:data="recordData"
|
||||
height="64vh"
|
||||
v-loading="loading"
|
||||
ref="table"
|
||||
border
|
||||
header-cell-class-name="el-table-header-cell"
|
||||
highlight-current-row
|
||||
@sort-change="sortChange"
|
||||
:default-sort="{ prop: 'createdTime', order: 'descending' }">
|
||||
<!-- <el-table-column prop="id" label="主键ID" align="center" v-if="columns.showColumn('id')" /> -->
|
||||
<el-table-column prop="createdTime" sortable label="创建时间" align="center" v-if="columns.showColumn('createdTime')" />
|
||||
<el-table-column prop="inboundNo" label="入库单号" align="left" v-if="columns.showColumn('inboundNo')" />
|
||||
<el-table-column prop="materialCode" label="物料编码" align="left" v-if="columns.showColumn('materialCode')" />
|
||||
<el-table-column prop="materialName" label="物料名称" align="left" v-if="columns.showColumn('materialName')" />
|
||||
<el-table-column prop="stoveCode" label="炉号" align="center" />
|
||||
<el-table-column prop="supplierCode" label="供应商编码" align="center" v-if="columns.showColumn('supplierCode')" />
|
||||
<el-table-column prop="supplierName" label="供应商名称" align="center" v-if="columns.showColumn('supplierName')" />
|
||||
<el-table-column prop="locationCode" label="库位编码" align="center" v-if="columns.showColumn('locationCode')" />
|
||||
<el-table-column prop="locationName" label="库位名称" align="center" v-if="columns.showColumn('locationName')" />
|
||||
<el-table-column prop="quantity" label="入库数量" align="center" v-if="columns.showColumn('quantity')">
|
||||
<template #default="scope">
|
||||
<span style="font-weight: bold">{{ scope.row.quantity }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="transactionType" label="入库类型" align="center" v-if="columns.showColumn('transactionType')" />
|
||||
<el-table-column prop="batchNo" label="原材料批次号" align="center" v-if="columns.showColumn('batchNo')" />
|
||||
<el-table-column prop="workorder" label="工单号" align="center" />
|
||||
<el-table-column prop="operator" label="操作员" align="center" />
|
||||
<el-table-column prop="remarks" label="备注" align="center" />
|
||||
<el-table-column label="操作">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="scope.row.remarks == '已撤销' || scope.row.transactionType == '入库红单'"
|
||||
type="info"
|
||||
size="small"
|
||||
title="撤销"
|
||||
v-hasPermi="['mmrecordinbound:delete']"
|
||||
@click="handleCancel(scope.row)"
|
||||
disabled
|
||||
>已撤销</el-button
|
||||
>
|
||||
<el-button
|
||||
v-else
|
||||
type="info"
|
||||
size="small"
|
||||
icon="refresh-left"
|
||||
title="撤销"
|
||||
v-hasPermi="['mmrecordinbound:delete']"
|
||||
@click="handleCancel(scope.row)"
|
||||
>撤销</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination :total="recordTotal" v-model:page="queryParamsRecord.pageNum" v-model:limit="queryParamsRecord.pageSize" @pagination="queryRecord" />
|
||||
</el-dialog>
|
||||
<!-- 导入对话框 -->
|
||||
<InventoryImportDialog
|
||||
v-model:dialogVisible="upload.open"
|
||||
:title="upload.title"
|
||||
:upload="upload"
|
||||
@update:dialogVisible="(val) => (upload.open = val)"
|
||||
@cancel="cancel"
|
||||
@submitFileForm="submitFileForm"
|
||||
@importTemplate="importTemplate"
|
||||
@handleFileSuccess="handleFileSuccess"
|
||||
@handleFileUploadProgress="handleFileUploadProgress" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -695,8 +219,6 @@
|
||||
import { ref, reactive, onMounted, getCurrentInstance, toRefs } from 'vue'
|
||||
import {
|
||||
listMmInventory,
|
||||
addMmInventory,
|
||||
delMmInventory,
|
||||
updateMmInventory,
|
||||
getMmInventory,
|
||||
getMaterialOption,
|
||||
@@ -707,7 +229,6 @@ import {
|
||||
cancelMmInventory
|
||||
} from '@/api/materialManagement/productionMaterial/mminventory.js'
|
||||
import { listMmTransactionType } from '@/api/materialManagement/productionMaterial/mmtransactiontype.js'
|
||||
import { warehouseOptions } from '@/utils/warehouse.js'
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import { exportMmInventory } from '@/api/materialManagement/productionMaterial/mminventory.js'
|
||||
import { getToken } from '@/utils/auth'
|
||||
@@ -748,7 +269,6 @@ const columns = ref([
|
||||
const total = ref(0)
|
||||
const dataList = ref([])
|
||||
const queryRef = ref()
|
||||
const defaultTime = ref([new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)])
|
||||
|
||||
/*** 用户导入参数 */
|
||||
const upload = reactive({
|
||||
@@ -766,8 +286,6 @@ const upload = reactive({
|
||||
url: import.meta.env.VITE_APP_BASE_API + '/mes/productionMaterial/MmInventory/importData'
|
||||
})
|
||||
|
||||
var dictParams = []
|
||||
|
||||
function getList() {
|
||||
loading.value = true
|
||||
try {
|
||||
@@ -835,8 +353,6 @@ const openShipment = ref(false)
|
||||
const openUpdate = ref(false)
|
||||
const openRecord = ref(false)
|
||||
const state = reactive({
|
||||
single: true,
|
||||
multiple: true,
|
||||
form: {},
|
||||
rules: {
|
||||
materialCode: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
|
||||
@@ -889,8 +405,7 @@ const state = reactive({
|
||||
recordData: []
|
||||
})
|
||||
|
||||
const { form, rules, rulesOut, rulesUpdate, options, transactionOptions, locationOptions, supplierOptions, single, multiple, inOrOut, recordData } =
|
||||
toRefs(state)
|
||||
const { form, rules, rulesOut, rulesUpdate, options, transactionOptions, locationOptions, supplierOptions, inOrOut, recordData } = toRefs(state)
|
||||
|
||||
// 关闭dialog
|
||||
function cancel() {
|
||||
@@ -929,42 +444,88 @@ function reset() {
|
||||
// 填入库单操作
|
||||
function handleStorage(data) {
|
||||
reset()
|
||||
|
||||
openStorage.value = true
|
||||
title.value = '填写入库单信息'
|
||||
opertype.value = 1
|
||||
inOrOut.value = '入库'
|
||||
getTypeOfWarehousingList(inOrOut.value)
|
||||
openStorage.value = true
|
||||
|
||||
// 如果有数据传递过来,填充表单
|
||||
if (data) {
|
||||
state.form = {
|
||||
...data
|
||||
...state.form,
|
||||
materialCode: data.materialCode,
|
||||
materialName: data.materialName,
|
||||
supplierCode: data.supplierCode,
|
||||
supplierName: data.supplierName,
|
||||
warehouseCode: data.warehouseCode,
|
||||
warehouseName: data.warehouseName,
|
||||
locationCode: data.locationCode,
|
||||
locationName: data.locationName,
|
||||
batchNo: data.batchNo,
|
||||
unit: data.unit
|
||||
}
|
||||
}
|
||||
|
||||
// 获取入库类型列表
|
||||
getTypeOfWarehousingList('入库')
|
||||
}
|
||||
// 出库操作
|
||||
function handleOutStorage(data) {
|
||||
reset()
|
||||
openOutStorage.value = true
|
||||
title.value = '填写出库单信息'
|
||||
opertype.value = 1
|
||||
inOrOut.value = '出库'
|
||||
getTypeOfWarehousingList(inOrOut.value)
|
||||
openOutStorage.value = true
|
||||
|
||||
// 如果有数据传递过来,填充表单
|
||||
if (data) {
|
||||
state.form = {
|
||||
...data
|
||||
...state.form,
|
||||
materialCode: data.materialCode,
|
||||
materialName: data.materialName,
|
||||
supplierCode: data.supplierCode,
|
||||
supplierName: data.supplierName,
|
||||
warehouseCode: data.warehouseCode,
|
||||
warehouseName: data.warehouseName,
|
||||
locationCode: data.locationCode,
|
||||
locationName: data.locationName,
|
||||
batchNo: data.batchNo,
|
||||
currentQty: data.currentQty,
|
||||
unit: data.unit
|
||||
}
|
||||
}
|
||||
|
||||
// 获取出库类型列表
|
||||
getTypeOfWarehousingList('出库')
|
||||
}
|
||||
|
||||
// 出货操作
|
||||
function handleShipment(data) {
|
||||
reset()
|
||||
openShipment.value = true
|
||||
title.value = '填写出货单信息'
|
||||
opertype.value = 1
|
||||
inOrOut.value = '出库'
|
||||
getTypeOfWarehousingList(inOrOut.value)
|
||||
openShipment.value = true
|
||||
|
||||
// 如果有数据传递过来,填充表单
|
||||
if (data) {
|
||||
state.form = {
|
||||
...data
|
||||
...state.form,
|
||||
materialCode: data.materialCode,
|
||||
materialName: data.materialName,
|
||||
supplierCode: data.supplierCode,
|
||||
supplierName: data.supplierName,
|
||||
warehouseCode: data.warehouseCode,
|
||||
warehouseName: data.warehouseName,
|
||||
locationCode: data.locationCode,
|
||||
locationName: data.locationName,
|
||||
batchNo: data.batchNo,
|
||||
currentQty: data.currentQty,
|
||||
unit: data.unit
|
||||
}
|
||||
state.form.transactionType = '出货出库'
|
||||
}
|
||||
|
||||
// 获取出库类型列表(出货属于出库的一种)
|
||||
getTypeOfWarehousingList('出库')
|
||||
}
|
||||
|
||||
// 修改按钮操作
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
@@ -1052,42 +613,6 @@ function resetQueryRecord() {
|
||||
queryRecord()
|
||||
}
|
||||
|
||||
// 添加&修改 表单提交
|
||||
function submitInboundForm(formData) {
|
||||
try {
|
||||
createInboundReceipt(formData || state.form).then((res) => {
|
||||
const { code, msg } = res
|
||||
if (code == 200) {
|
||||
proxy.$modal.msgSuccess('入库成功')
|
||||
openStorage.value = false
|
||||
getList()
|
||||
} else {
|
||||
proxy.$modal.msgError(msg || '入库失败')
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
proxy.$modal.msgError(error.message || '入库失败')
|
||||
}
|
||||
}
|
||||
|
||||
function submitOutboundForm(formData) {
|
||||
try {
|
||||
createOutboundReceipt(formData || state.form).then((res) => {
|
||||
const { code, msg } = res
|
||||
if (code == 200) {
|
||||
proxy.$modal.msgSuccess('出库成功')
|
||||
openOutStorage.value = false
|
||||
openShipment.value = false
|
||||
getList()
|
||||
} else {
|
||||
proxy.$modal.msgError(msg || '出库失败')
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
proxy.$modal.msgError(error.message || '出库失败')
|
||||
}
|
||||
}
|
||||
|
||||
function submitUpdateForm(formData) {
|
||||
try {
|
||||
updateMmInventory(formData || state.form).then((res) => {
|
||||
@@ -1105,25 +630,6 @@ function submitUpdateForm(formData) {
|
||||
}
|
||||
}
|
||||
|
||||
// 删除按钮操作
|
||||
function handleDelete(row) {
|
||||
const Ids = row.id || ids.value
|
||||
|
||||
proxy
|
||||
.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?', '警告', {
|
||||
confirmButtonText: proxy.$t('common.ok'),
|
||||
cancelButtonText: proxy.$t('common.cancel'),
|
||||
type: 'warning'
|
||||
})
|
||||
.then(function () {
|
||||
return delMmInventory(Ids)
|
||||
})
|
||||
.then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess('删除成功')
|
||||
})
|
||||
}
|
||||
|
||||
// 物料编码列表
|
||||
function getMaterialCodeList() {
|
||||
try {
|
||||
@@ -1178,6 +684,60 @@ function handleMaterialChange(val) {
|
||||
state.form.supplierName = val.supplierName || ''
|
||||
}
|
||||
|
||||
// 入库提交操作
|
||||
function submitStorage(formData) {
|
||||
try {
|
||||
createInboundReceipt(formData).then((res) => {
|
||||
const { code, msg } = res
|
||||
if (code == 200) {
|
||||
proxy.$modal.msgSuccess('入库成功')
|
||||
openStorage.value = false
|
||||
getList()
|
||||
} else {
|
||||
proxy.$modal.msgError(msg || '入库失败')
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
proxy.$modal.msgError(error.message || '入库失败')
|
||||
}
|
||||
}
|
||||
|
||||
// 出库提交操作
|
||||
function submitOutStorage(formData) {
|
||||
try {
|
||||
createOutboundReceipt(formData).then((res) => {
|
||||
const { code, msg } = res
|
||||
if (code == 200) {
|
||||
proxy.$modal.msgSuccess('出库成功')
|
||||
openOutStorage.value = false
|
||||
getList()
|
||||
} else {
|
||||
proxy.$modal.msgError(msg || '出库失败')
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
proxy.$modal.msgError(error.message || '出库失败')
|
||||
}
|
||||
}
|
||||
|
||||
// 出货提交操作
|
||||
function submitShipment(formData) {
|
||||
try {
|
||||
createOutboundReceipt(formData).then((res) => {
|
||||
const { code, msg } = res
|
||||
if (code == 200) {
|
||||
proxy.$modal.msgSuccess('出货成功')
|
||||
openShipment.value = false
|
||||
getList()
|
||||
} else {
|
||||
proxy.$modal.msgError(msg || '出货失败')
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
proxy.$modal.msgError(error.message || '出货失败')
|
||||
}
|
||||
}
|
||||
|
||||
// 库位编码选择器改变事件
|
||||
function handleLocationChange(val) {
|
||||
state.form.locationCode = val.locationCode
|
||||
@@ -1200,7 +760,6 @@ const handleFileUploadProgress = (event, file, fileList) => {
|
||||
upload.isUploading = true
|
||||
}
|
||||
/** 文件上传成功处理 */
|
||||
/** 文件上传成功处理 */
|
||||
const handleFileSuccess = (response, file, fileList) => {
|
||||
const { code, msg, data } = response
|
||||
upload.open = false
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<el-table-column prop="supplierCode" label="供应商编码" width="100" />
|
||||
<el-table-column prop="supplierName" label="供应商名称" width="100" />
|
||||
<el-table-column prop="batchNo" label="原材料批次号" width="120" />
|
||||
<el-table-column prop="stoveCode" label="炉号" width="140" />
|
||||
<el-table-column prop="workorderRaw" label="领料工单号" width="120" />
|
||||
<el-table-column prop="quantity" label="领料数量" />
|
||||
<el-table-column label="操作">
|
||||
@@ -148,9 +149,9 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="炉号" prop="stoveCode">
|
||||
<!-- <el-form-item label="炉号" prop="stoveCode">
|
||||
<el-input v-model="formData.stoveCode" placeholder="请输入炉号" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button text @click="showPickForm = false">取消</el-button>
|
||||
@@ -513,7 +514,8 @@ function submitForm() {
|
||||
workorder: formData.workorder,
|
||||
quantity: formData.pickQuantity,
|
||||
materialInventoryId: formData.materialId,
|
||||
stoveCode: formData.stoveCode,
|
||||
feedOrder: formData.batchNo || '',
|
||||
|
||||
operator: formData.operator,
|
||||
workorderRaw: formData.workorderRaw || ''
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user