feat: 新增钢卷相关字段并优化页面功能

1.  在可选列配置中新增合同号、原料厚度字段,调整原料材质字段位置
2.  优化库存预警页面操作按钮权限逻辑,移除多余的状态判断
3.  新增钢卷异常管理弹窗组件,重构异常页面结构
4.  优化报表页面的分页加载和数据展示逻辑
5.  调整表单布局和代码格式,优化用户体验
This commit is contained in:
2026-06-23 09:57:29 +08:00
parent 29d99a4f8d
commit 2d008f64ea
9 changed files with 195 additions and 936 deletions

View File

@@ -79,8 +79,7 @@
</el-form-item>
<el-form-item label="备注">
<el-input v-model="queryParams.remark" placeholder="请输入备注" clearable
@keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.remark" placeholder="请输入备注" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="业务员" prop="saleName">
@@ -123,20 +122,9 @@
<el-button type="danger" v-if="showWaybill" plain icon="el-icon-close" size="mini" :disabled="multiple"
:loading="buttonLoading" @click="handleBatchRemoveFromWaybill">批量移出发货单</el-button>
</el-form-item>
<!-- <el-form-item style="float: right;" v-if="showWaybill" v-loading="loading">
<el-descriptions :column="2" border>
<el-descriptions-item label="已发货数量">{{ shippedCount }}</el-descriptions-item>
<el-descriptions-item label="未发货数量">{{ unshippedCount }}</el-descriptions-item>
</el-descriptions>
</el-form-item> -->
</el-form>
<el-row :gutter="10" class="mb8" v-if="showControl">
<!-- <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
@click="handleCheck">修正</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExportAll">导出当前</el-button>
</el-col>
@@ -144,11 +132,6 @@
<el-button type="info" plain icon="el-icon-download" size="mini" @click="handleExportAllProps">导出全部</el-button>
</el-col>
<!-- <el-col :span="2" v-if="canExportAll">
<el-button type="info" plain icon="el-icon-printer" size="mini" :disabled="multiple"
@click="handleBatchPrintLabel">批量打印标签</el-button>
</el-col> -->
<el-col :span="1.5" v-if="showOrderBy">
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList"
label="orderBy">按实际库区排序</el-checkbox>
@@ -230,12 +213,21 @@
<el-table-column v-if="moreColumn" label="材质" prop="material"></el-table-column>
<el-table-column v-if="moreColumn" label="厂家" prop="manufacturer"></el-table-column>
<el-table-column v-if="moreColumn" label="表面处理" prop="surfaceTreatmentDesc"></el-table-column>
<el-table-column label="品质" prop="qualityStatus"></el-table-column>
<el-table-column label="品质" prop="qualityStatus" width="80">
<template slot-scope="scope">
<div @click.stop="handleQualityStatusClick(scope.row)"
style="cursor: pointer; background-color: #f5f7fa; display: flex; align-items: center; justify-content: center;">
<dict-tag v-if="scope.row.qualityStatus" :options="dict.type.coil_quality_status"
:value="scope.row.qualityStatus"></dict-tag>
<span v-else>暂未判级</span>
</div>
</template>
</el-table-column>
<el-table-column v-if="moreColumn" label="备注" prop="remark" show-overflow-tooltip></el-table-column>
<el-table-column v-if="moreColumn" label="切边" prop="trimmingRequirement"></el-table-column>
<el-table-column v-if="moreColumn" label="包装" prop="packagingRequirement"></el-table-column>
<el-table-column v-if="moreColumn" label="镀层质量" prop="zincLayer"></el-table-column>
<el-table-column v-if="hasTransferType" label="调拨类型" align="center" prop="transferType" />
<el-table-column v-if="hasTransferType" label="改判原因" align="center" prop="rejudgeInfo.rejudgeReason" />
@@ -266,13 +258,15 @@
</template>
</el-table-column>
<el-table-column label="发货计划" align="center" prop="nextWarehouseId" v-if="showWaybill || (isShipView && shipViewModel.status == 'has')" width="150">
<el-table-column label="发货计划" align="center" prop="nextWarehouseId"
v-if="showWaybill || (isShipView && shipViewModel.status == 'has')" width="150">
<template slot-scope="scope">
{{ scope.row.bindPlanName || '-' }}
</template>
</el-table-column>
<el-table-column label="发货单据" align="center" prop="nextWarehouseId" v-if="showWaybill || (isShipView && shipViewModel.status == 'has')" width="150">
<el-table-column label="发货单据" align="center" prop="nextWarehouseId"
v-if="showWaybill || (isShipView && shipViewModel.status == 'has')" width="150">
<template slot-scope="scope">
<el-popover placement="top" width="400" trigger="hover">
<div>
@@ -563,7 +557,8 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="钢卷表面处理" prop="coilSurfaceTreatment">
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.coilSurfaceTreatment" placeholder="请输入钢卷表面处理" />
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.coilSurfaceTreatment"
placeholder="请输入钢卷表面处理" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -581,7 +576,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="生产结束时间" prop="productionEndTime">
<TimeInput v-model="form.productionEndTime" @input="calculateFormProductionDuration" :show-now-button="true" />
<TimeInput v-model="form.productionEndTime" @input="calculateFormProductionDuration"
:show-now-button="true" />
</el-form-item>
</el-col>
</el-row>
@@ -607,7 +603,8 @@
<el-col :span="12">
<el-form-item label="创建人" prop="createBy">
<el-select v-model="form.createBy" placeholder="请选择创建人" style="width: 100%;" clearable filterable>
<el-option v-for="item in userList" :key="item.userName" :label="item.nickName" :value="item.userName" />
<el-option v-for="item in userList" :key="item.userName" :label="item.nickName"
:value="item.userName" />
</el-select>
</el-form-item>
</el-col>
@@ -684,8 +681,6 @@
</div>
</el-dialog>
<abnormal-list v-if="showAbnormal && currentCoilId" :coil-id="currentCoilId"></abnormal-list>
<log-table v-if="showWareLog && currentCoilId" :coil-id="currentCoilId"></log-table>
<DragResizeBox v-if="editNext && showProcessFlow" storageKey="coil-process-flow" @size-change="resizeChart">
@@ -914,6 +909,10 @@
</el-table-column>
</el-table>
</el-dialog>
<el-dialog title="钢卷异常信息" :visible.sync="abmornal.visible" fullscreen>
<exception-manager :coilId="currentCoilId" :show-inherit-button="true"/>
</el-dialog>
</div>
</template>
@@ -969,6 +968,7 @@ import { listDeliveryWaybillDetail, delDeliveryWaybillDetail } from "@/api/wms/d
import { listDeliveryPlan } from "@/api/wms/deliveryPlan";
import { addCoilQualityRejudge } from "@/api/wms/coilQualityRejudge";
import { listCoilContractRel, addCoilContractRel, updateCoilContractRel } from "@/api/wms/coilContractRel";
import ExceptionManager from '../components/ExceptionManager'
export default {
name: "MaterialCoil",
@@ -994,6 +994,7 @@ export default {
WarehouseTree,
TimeInput,
ContractSelect,
ExceptionManager,
},
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status', 'wms_next_warehouse', 'coil_business_purpose'],
props: {
@@ -1124,6 +1125,12 @@ export default {
hasCount: 0,
noneCount: 0,
},
abmornal: {
visible: false,
data: {},
loading: false,
currentCoil: {},
},
// 按钮loading
buttonLoading: false,
contractLoading: false,
@@ -1435,6 +1442,11 @@ export default {
this.selectedCoilsVisible = true;
},
handleQualityStatusClick(row) {
this.abmornal.visible = true
this.currentCoilId = row.coilId;
},
// 编辑单据名称
editOrderName(order) {
this.$prompt('请输入新的单据名称', '编辑单据名称', {