diff --git a/klp-ui/package.json b/klp-ui/package.json index cc73234a..4946dbd0 100644 --- a/klp-ui/package.json +++ b/klp-ui/package.json @@ -42,6 +42,7 @@ "bpmn-js-token-simulation": "0.10.0", "clipboard": "2.0.8", "core-js": "3.25.3", + "dom-to-image": "^2.6.0", "echarts": "5.4.0", "element-ui": "2.15.12", "file-saver": "2.0.5", @@ -54,6 +55,7 @@ "jsencrypt": "3.0.0-rc.1", "mqtt": "^5.13.3", "nprogress": "0.2.0", + "print-js": "^1.6.0", "qrcode": "^1.5.4", "quill": "1.3.7", "screenfull": "5.0.2", diff --git a/klp-ui/src/api/wms/generateRecord.js b/klp-ui/src/api/wms/generateRecord.js new file mode 100644 index 00000000..8faa544c --- /dev/null +++ b/klp-ui/src/api/wms/generateRecord.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询二维码生成记录列表 +export function listGenerateRecord(query) { + return request({ + url: '/klp/generateRecord/list', + method: 'get', + params: query + }) +} + +// 查询二维码生成记录详细 +export function getGenerateRecord(recordId) { + return request({ + url: '/klp/generateRecord/' + recordId, + method: 'get' + }) +} + +// 新增二维码生成记录 +export function addGenerateRecord(data) { + return request({ + url: '/klp/generateRecord', + method: 'post', + data: data + }) +} + +// 修改二维码生成记录 +export function updateGenerateRecord(data) { + return request({ + url: '/klp/generateRecord', + method: 'put', + data: data + }) +} + +// 删除二维码生成记录 +export function delGenerateRecord(recordId) { + return request({ + url: '/klp/generateRecord/' + recordId, + method: 'delete' + }) +} diff --git a/klp-ui/src/assets/styles/element-ui.scss b/klp-ui/src/assets/styles/element-ui.scss index 7885fcec..c5ce8887 100644 --- a/klp-ui/src/assets/styles/element-ui.scss +++ b/klp-ui/src/assets/styles/element-ui.scss @@ -275,20 +275,25 @@ body { } .el-button--medium { - padding: 4px 8px; + padding: 4px 8px !important; font-size: 12px; height: $--btn-height - 4px; } // 迷你按钮(超紧凑) .el-button--mini { - padding: 4px 8px; + padding: 4px 8px !important; font-size: 12px; height: $--btn-height - 4px; + &.is-circle { + padding: 4px !important; + } } -.el-button--mini.is-circle { - padding: 4px !important; +.el-button--small { + padding: 4px 8px !important; + font-size: 12px; + height: $--btn-height - 4px; } @@ -385,6 +390,10 @@ body { } } + &__empty-block { + background: #1e2227; + } + // 适配尺寸类(统一紧凑) &.el-table--medium .el-table__cell, &.el-table--mini .el-table__cell { @@ -1638,12 +1647,12 @@ div.pagination-container { // ---------------------- 3.8 自定义工具类 ---------------------- // 固定按钮宽度 -.fixed-width { - .el-button--mini { - padding: 7px 10px; - width: 60px; - } -} +// .fixed-width { +// .el-button--mini { +// padding: 7px 10px; +// width: 60px; +// } +// } // 居中单元格(深色表头) .is-center.is-leaf.el-table__cell { diff --git a/klp-ui/src/assets/styles/sidebar.scss b/klp-ui/src/assets/styles/sidebar.scss index fe9caed7..c08bd169 100644 --- a/klp-ui/src/assets/styles/sidebar.scss +++ b/klp-ui/src/assets/styles/sidebar.scss @@ -213,7 +213,7 @@ min-width: $base-sidebar-width !important; } - .el-submenu .el-menu{ + .el-submenu .el-menu { padding-left: 10px; } diff --git a/klp-ui/src/components/WarehouseSelect/index.vue b/klp-ui/src/components/WarehouseSelect/index.vue index 05083c19..3bfe376b 100644 --- a/klp-ui/src/components/WarehouseSelect/index.vue +++ b/klp-ui/src/components/WarehouseSelect/index.vue @@ -38,7 +38,8 @@ export default { data() { return { warehouseOptions: [], - innerValue: this.value + innerValue: this.value, + list: [] }; }, watch: { @@ -52,6 +53,7 @@ export default { methods: { loadOptions() { listWarehouse().then(response => { + this.list = response.data; const options = []; if (this.showTop) { const top = { warehouseId: 0, warehouseName: '顶级节点', children: [] }; @@ -88,6 +90,9 @@ export default { this.innerValue = null; } else { this.$emit('input', val); + // 查找完整的仓库对象 + const warehouse = this.list.find(item => item.warehouseId === val); + this.$emit('change', warehouse); } } } diff --git a/klp-ui/src/views/wms/print/components/QRCode.vue b/klp-ui/src/views/wms/print/components/QRCode.vue new file mode 100644 index 00000000..586fe982 --- /dev/null +++ b/klp-ui/src/views/wms/print/components/QRCode.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/print/index.vue b/klp-ui/src/views/wms/print/index.vue index 487aa944..7847ddab 100644 --- a/klp-ui/src/views/wms/print/index.vue +++ b/klp-ui/src/views/wms/print/index.vue @@ -346,7 +346,8 @@ export default { } try { - saveAsImage( + console.log(this.barCodeConfigs[index], index); + saveAsImage( this.barCodeConfigs[index].code, this.barCodeConfigs[index].textTpl, index, @@ -435,7 +436,6 @@ $card-hover-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); // 页面整体容器 - 优化高度计算、增加内边距 .print-page-container { padding: 16px 20px; // Slightly reduced padding - background-color: $gray-light; height: calc(100vh - 100px); box-sizing: border-box; overflow: hidden; @@ -513,19 +513,7 @@ $card-hover-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); display: block; } - ::-webkit-scrollbar-thumb { - background: #d1d5db; - display: block; - border-radius: 3px; - transition: background 0.3s ease; - - &:hover { - background: #9ca3af; - } - } - ::-webkit-scrollbar-track { - background: #f9fafb; display: block; border-radius: 3px; } @@ -534,25 +522,10 @@ $card-hover-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); // 配置卡片 - 优化阴影和间距 .config-card { - border: 1px solid $gray-mid; border-radius: 8px; transition: all 0.3s ease; - background-color: #fff; overflow: hidden; - - &:hover { - border-color: $primary-color; - box-shadow: $card-hover-shadow; - } - - &.invalid-card { - border-color: rgba($danger-color, 0.3); - background-color: rgba($danger-color, 0.02); - - &:hover { - border-color: $danger-color; - } - } + border: 1px solid $gray-mid; } // 配置卡片头部 - 优化布局和样式 @@ -561,8 +534,6 @@ $card-hover-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); justify-content: space-between; align-items: center; padding: 10px 12px; // Reduced padding - border-bottom: 1px solid $gray-mid; - background-color: #f9fafb; .card-title-wrap { display: flex; diff --git a/klp-ui/src/views/wms/print/pages/code/index.vue b/klp-ui/src/views/wms/print/pages/code/index.vue new file mode 100644 index 00000000..11b8df56 --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/code/index.vue @@ -0,0 +1,312 @@ + + + diff --git a/klp-ui/src/views/wms/print/pages/gen/index.vue b/klp-ui/src/views/wms/print/pages/gen/index.vue new file mode 100644 index 00000000..22af5d0a --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/gen/index.vue @@ -0,0 +1,754 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/ForgeTagPreview.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/ForgeTagPreview.vue new file mode 100644 index 00000000..aaa554fd --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/ForgeTagPreview.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/OuterTagPreview.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/OuterTagPreview.vue new file mode 100644 index 00000000..39d58831 --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/OuterTagPreview.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/ProductionTagPreview.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/ProductionTagPreview.vue new file mode 100644 index 00000000..8add397e --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/ProductionTagPreview.vue @@ -0,0 +1,89 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/SaltSprayTagPreview.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/SaltSprayTagPreview.vue new file mode 100644 index 00000000..704bc599 --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/SaltSprayTagPreview.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/SampleTagPreview.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/SampleTagPreview.vue new file mode 100644 index 00000000..1c9bb07b --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/SampleTagPreview.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/klp-ui/src/views/wms/print/pages/tt/LabelRender/index.vue b/klp-ui/src/views/wms/print/pages/tt/LabelRender/index.vue new file mode 100644 index 00000000..b4986b25 --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/LabelRender/index.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/print/pages/tt/index.vue b/klp-ui/src/views/wms/print/pages/tt/index.vue new file mode 100644 index 00000000..dfea6517 --- /dev/null +++ b/klp-ui/src/views/wms/print/pages/tt/index.vue @@ -0,0 +1,326 @@ + + + \ No newline at end of file