feat(wms): 重构报表配置并添加销售员管理功能

重构各报表模块配置,将重复配置提取到config.js统一管理
在打包记录和打包页面添加销售员选择和显示功能
新增销售员管理页面,支持销售员标签的增删改查
This commit is contained in:
砂糖
2026-03-24 15:38:30 +08:00
parent 0e808964c9
commit 602b10b689
29 changed files with 532 additions and 381 deletions

View File

@@ -25,6 +25,12 @@
<el-form-item label="批次号" prop="batchNo">
<el-input v-model="form.batchNo" placeholder="请输入批次号" clearable />
</el-form-item>
<el-form-item label="销售员" prop="saleName">
<el-select v-model="form.saleName" placeholder="请选择销售名称" clearable filterable>
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="打包时间" prop="packingTime">
@@ -34,8 +40,6 @@
<el-form-item label="操作人" prop="packingBy">
<el-input v-model="form.packingBy" placeholder="请输入操作人" clearable />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" :rows="2" placeholder="请输入备注" />
</el-form-item>
@@ -66,19 +70,15 @@
<el-table-column label="重量" align="center" prop="coilNetWeight" width="80">
<template slot-scope="scope">{{ scope.row.coilNetWeight }}t</template>
</el-table-column>
<el-table-column label="销售名称" align="center" prop="saleName" width="100">
<!-- <el-table-column label="销售名称" align="center" prop="saleName" width="140">
<template slot-scope="scope">
<el-input v-model="scope.row.saleName"></el-input>
</template>
</el-table-column>
<el-table-column label="打包前位置" align="center" prop="fromWarehouseName" min-width="120"
show-overflow-tooltip />
<!-- <el-table-column label="打包后位置" align="center" prop="toWarehouseName" min-width="120">
<template slot-scope="scope">
<el-input v-if="scope.row.editing" v-model="scope.row.toWarehouseName" size="mini" placeholder="输入位置" />
<span v-else>{{ scope.row.toWarehouseName || '' }}</span>
<el-select v-model="scope.row.saleName" placeholder="请选择销售名称">
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column> -->
<el-table-column label="打包前位置" align="center" prop="fromWarehouseName" min-width="120"
show-overflow-tooltip />
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<template v-if="scope.row.editing">
@@ -86,7 +86,6 @@
<el-button size="mini" type="text" @click="scope.row.editing = false">取消</el-button>
</template>
<template v-else>
<!-- <el-button size="mini" type="text" @click="handleEditDetail(scope.row)">修改</el-button> -->
<el-button size="mini" type="text" @click="handleDeleteDetail(scope.row)">删除</el-button>
</template>
</template>
@@ -142,6 +141,7 @@ export default {
ProductInfo,
RawMaterialInfo
},
dicts: ['wip_pack_saleman'],
data() {
return {
// 表单参数
@@ -237,7 +237,6 @@ export default {
};
createPacking(data).then(response => {
this.$modal.msgSuccess('创建成功');
this.form.packingNo = response.data.packingNo;
this.getRecentList();
this.resetForm();
}).finally(() => {

View File

@@ -41,6 +41,7 @@
<el-table-column label="批次号" align="center" prop="batchNo" />
<el-table-column label="打包日期" align="center" prop="packingTime" />
<el-table-column label="操作人" align="center" prop="packingBy" />
<el-table-column label="销售员" align="center" prop="saleName" />
<el-table-column label="卷数" align="center" prop="coilCount" />
<el-table-column label="总重" align="center" prop="totalNetWeight">
<template slot-scope="scope">{{ scope.row.totalNetWeight }}t</template>
@@ -93,6 +94,11 @@
<el-input v-model="selectedPacking.packingBy" @change="handleSaveEdit" placeholder="请输入操作人" clearable
style="width: 180px" />
</el-descriptions-item>
<el-descriptions-item label="销售员">
<el-select v-model="selectedPacking.saleName" placeholder="请选择销售名称" filterable @change="handleSaveEdit">
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-descriptions-item>
<el-descriptions-item label="卷数">{{ selectedPacking.coilCount }}</el-descriptions-item>
<el-descriptions-item label="总重">{{ selectedPacking.totalNetWeight }}t</el-descriptions-item>
@@ -119,9 +125,11 @@
<el-table-column label="重量" align="center" prop="coilNetWeight" width="80"></el-table-column>
<el-table-column label="质量状态" align="center" prop="coil.qualityStatus" width="80"></el-table-column>
<el-table-column label="实际库区" align="center" prop="coil.actualWarehouseName"></el-table-column>
<el-table-column label="销售名称" align="center" prop="coil.saleName" width="100">
<el-table-column label="销售名称" align="center" prop="coil.saleName" width="140">
<template slot-scope="scope">
<el-input v-model="scope.row.coil.saleName" @change="updateSaleName(scope.row.coil)"></el-input>
<el-select v-model="scope.row.coil.saleName" placeholder="请选择销售名称" @change="updateSaleName(scope.row.coil)" filterable>
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column>
<!-- <el-table-column label="打包前位置" align="center" prop="fromWarehouseName" min-width="120" show-overflow-tooltip /> -->
@@ -158,6 +166,7 @@ export default {
ProductInfo,
RawMaterialInfo
},
dicts: ['wip_pack_saleman'],
data() {
return {
// 遮罩层