diff --git a/klp-ui/package.json b/klp-ui/package.json
index 89204e7f..3aa6eea9 100644
--- a/klp-ui/package.json
+++ b/klp-ui/package.json
@@ -48,6 +48,7 @@
"dom-to-image": "^2.6.0",
"echarts": "5.4.0",
"element-ui": "2.15.12",
+ "exceljs": "^4.4.0",
"file-saver": "2.0.5",
"flv.js": "^1.6.2",
"fuse.js": "6.4.3",
diff --git a/klp-ui/src/views/wms/coil/allocation.vue b/klp-ui/src/views/wms/coil/allocation.vue
new file mode 100644
index 00000000..700d82fd
--- /dev/null
+++ b/klp-ui/src/views/wms/coil/allocation.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/klp-ui/src/views/wms/coil/panels/LabelRender/WhereTag.vue b/klp-ui/src/views/wms/coil/panels/LabelRender/WhereTag.vue
new file mode 100644
index 00000000..372d849e
--- /dev/null
+++ b/klp-ui/src/views/wms/coil/panels/LabelRender/WhereTag.vue
@@ -0,0 +1,297 @@
+
+
+
+
+ | 卷号 |
+
+ {{ content.currentCoilNo || '' }}
+ |
+ 来源 |
+
+ {{ content.warehouseName || '' }}
+ |
+
+
+ | 班组 |
+
+ {{ content.team || '' }}
+ |
+ 净重 |
+
+ {{ content.netWeight || '' }}
+ |
+
+
+ | 规格 |
+
+ {{ content.specification || '' }}
+ |
+ 材质 |
+
+ {{ content.material || '' }}
+ |
+
+
+ | 卷名 |
+
+ {{ content.itemName || '' }}
+ |
+ 厂家 |
+
+ {{ content.manufacturer || '' }}
+ |
+
+
+ | 时间 |
+
+ {{ content.updateTime || '' }}
+ |
+ 去向 |
+
+ {{ content.nextWarehouseName || '' }}
+ |
+
+
+
+
+
+
+
+
diff --git a/klp-ui/src/views/wms/coil/panels/LabelRender/index.vue b/klp-ui/src/views/wms/coil/panels/LabelRender/index.vue
index 960de4bc..76f239df 100644
--- a/klp-ui/src/views/wms/coil/panels/LabelRender/index.vue
+++ b/klp-ui/src/views/wms/coil/panels/LabelRender/index.vue
@@ -3,23 +3,29 @@
+
@@ -40,6 +46,7 @@ import { PDFDocument } from 'pdf-lib';
import MaterialTag from './MaterialTag.vue';
import OuterTagPreview from './OuterTagPreview.vue';
import GalvanizedTag from './GalvanizedTag.vue';
+import WhereTag from './WhereTag.vue';
// import SampleTagPreview from './SampleTagPreview.vue';
// import ForgeTagPreview from './ForgeTagPreview.vue';
// import SaltSprayTagPreview from './SaltSprayTagPreview.vue';
@@ -50,6 +57,7 @@ export default {
MaterialTag,
OuterTagPreview,
GalvanizedTag,
+ WhereTag,
// SampleTagPreview,
// ForgeTagPreview,
// SaltSprayTagPreview,
@@ -57,6 +65,32 @@ export default {
data() {
return {
labelType: '2',
+ tagSizeMap: {
+ '2': {
+ width: 100,
+ height: 80,
+ },
+ '3': {
+ width: 180,
+ height: 100,
+ },
+ '4': {
+ width: 180,
+ height: 100,
+ },
+ 'where': {
+ width: 100,
+ height: 80,
+ },
+ }
+ }
+ },
+ computed: {
+ tagType() {
+ if (this.forceSpecialTag) {
+ return this.forceSpecialTag;
+ }
+ return this.labelType;
}
},
props: {
@@ -64,6 +98,10 @@ export default {
// type: String,
// required: true,
// },
+ forceSpecialTag: {
+ type: String,
+ required: false,
+ },
content: {
type: Object,
required: true,
@@ -139,8 +177,8 @@ export default {
// 2. 计算纸张尺寸(与批量导出保持一致)
// 根据 labelType 判断:'2' 是材料标签(100x80,宽100高80),'3' 是外标(180x100)
const isMaterial = this.labelType === '2';
- const paperWidthMm = isMaterial ? 100 : 180;
- const paperHeightMm = isMaterial ? 80 : 100;
+ const paperWidthMm = this.tagSizeMap[this.tagType].width || 100;
+ const paperHeightMm = this.tagSizeMap[this.tagType].height || 80;
// 使用合适的scale值生成高清Canvas(但不超过纸张尺寸)
const canvasScale = 3; // 提高清晰度(单张打印)
diff --git a/klp-ui/src/views/wms/coil/panels/abnormal.vue b/klp-ui/src/views/wms/coil/panels/abnormal.vue
new file mode 100644
index 00000000..20bf52e5
--- /dev/null
+++ b/klp-ui/src/views/wms/coil/panels/abnormal.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-ui/src/views/wms/coil/panels/base.vue b/klp-ui/src/views/wms/coil/panels/base.vue
index be1d1fde..90929464 100644
--- a/klp-ui/src/views/wms/coil/panels/base.vue
+++ b/klp-ui/src/views/wms/coil/panels/base.vue
@@ -146,7 +146,17 @@
+
+
+
+
+
+
+
+
@@ -274,10 +284,10 @@
-
+
-
+
@@ -293,10 +303,14 @@
+
+
+
+
@@ -335,6 +349,7 @@ import MutiSelect from "@/components/MutiSelect";
import html2canvas from 'html2canvas';
import { PDFDocument } from 'pdf-lib';
import { listUser } from "@/api/system/user";
+import AbnormalList from "./abnormal.vue";
export default {
name: "MaterialCoil",
@@ -354,8 +369,9 @@ export default {
MemoInput,
MutiSelect,
OuterTagPreview,
+ AbnormalList,
},
- dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status'],
+ dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status', 'warehouse_sync'],
props: {
qrcode: {
type: Boolean,
@@ -405,6 +421,14 @@ export default {
type: Boolean,
default: false,
},
+ editNext: {
+ type: Boolean,
+ default: false,
+ },
+ forceSpecialTag: {
+ type: String,
+ required: false,
+ },
},
data() {
return {
@@ -568,6 +592,8 @@ export default {
],
title: '详细信息'
},
+ abnormalOpen: false,
+ currentCoilId: '',
userList: [],
};
},
@@ -598,6 +624,24 @@ export default {
this.userList = res.rows || [];
});
},
+ handleNextWarehouseChange(row) {
+ if (!this.editNext) {
+ return;
+ }
+ updateMaterialCoilSimple(row).then(res => {
+ if (res.code === 200) {
+ this.$message({
+ message: '更新成功',
+ type: 'success',
+ });
+ } else {
+ this.$message({
+ message: res.msg || '更新失败',
+ type: 'error',
+ });
+ }
+ })
+ },
// 打印标签
handlePrintLabel(row) {
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
@@ -701,12 +745,14 @@ export default {
}
},
handleAbnormal(row) {
- this.$router.push({
- path: '/quality/detail',
- query: {
- coilId: row.coilId,
- }
- })
+ // this.$router.push({
+ // path: '/quality/detail',
+ // query: {
+ // coilId: row.coilId,
+ // }
+ // })
+ this.currentCoilId = row.coilId;
+ this.abnormalOpen = true;
},
// 取消按钮
cancel() {
diff --git a/klp-ui/src/views/wms/coil/views/jishu.vue b/klp-ui/src/views/wms/coil/views/jishu.vue
new file mode 100644
index 00000000..0971466b
--- /dev/null
+++ b/klp-ui/src/views/wms/coil/views/jishu.vue
@@ -0,0 +1,28 @@
+