diff --git a/package.json b/package.json
index 3ee972492..68d6ef42b 100644
--- a/package.json
+++ b/package.json
@@ -53,6 +53,7 @@
"element-plus": "2.11.1",
"fast-xml-parser": "^4.3.2",
"highlight.js": "^11.9.0",
+ "jsbarcode": "^3.12.3",
"jsencrypt": "^3.3.2",
"jsoneditor": "^10.1.3",
"lodash-es": "^4.17.21",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1e3f9526b..0d1beb2ab 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -92,6 +92,9 @@ importers:
highlight.js:
specifier: ^11.9.0
version: 11.10.0
+ jsbarcode:
+ specifier: ^3.12.3
+ version: 3.12.3
jsencrypt:
specifier: ^3.3.2
version: 3.3.2
@@ -3669,6 +3672,9 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ jsbarcode@3.12.3:
+ resolution: {integrity: sha512-CuHU9hC6dPsHF5oVFMo8NW76uQVjH4L22CsP4hW+dNnGywJHC/B0ThA1CTDVLnxKLrrpYdicBLnd2xsgTfRnvg==, tarball: https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.12.3.tgz}
+
jsencrypt@3.3.2:
resolution: {integrity: sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==}
@@ -4603,7 +4609,7 @@ packages:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz}
engines: {node: '>=0.10.0'}
split2@4.2.0:
@@ -9023,6 +9029,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsbarcode@3.12.3: {}
+
jsencrypt@3.3.2: {}
jsesc@3.0.2: {}
diff --git a/src/views/mes/wm/barcode/BarcodeForm.vue b/src/views/mes/wm/barcode/BarcodeForm.vue
new file mode 100644
index 000000000..63de2041a
--- /dev/null
+++ b/src/views/mes/wm/barcode/BarcodeForm.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
diff --git a/src/views/mes/wm/barcode/BarcodeViewDialog.vue b/src/views/mes/wm/barcode/BarcodeViewDialog.vue
new file mode 100644
index 000000000..5dd8d70eb
--- /dev/null
+++ b/src/views/mes/wm/barcode/BarcodeViewDialog.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/mes/wm/barcode/constants/BarcodeConstants.ts b/src/views/mes/wm/barcode/constants/BarcodeConstants.ts
new file mode 100644
index 000000000..83c481a30
--- /dev/null
+++ b/src/views/mes/wm/barcode/constants/BarcodeConstants.ts
@@ -0,0 +1,29 @@
+// TODO @AI:迁移到 /Users/yunai/Java/yudao-all-in-one/yudao-ui-admin-vue3/src/views/mes/utils/constants.ts
+/**
+ * 条码格式枚举
+ */
+export enum BarcodeFormatEnum {
+ QR_CODE = 1,
+ EAN13 = 2,
+ CODE39 = 3,
+ UPC_A = 4
+}
+
+/**
+ * 条码格式映射表
+ */
+// TODO @AI:拿到需要的地方,貌似就一次性的;
+export const BARCODE_FORMAT_MAP: Record = {
+ [BarcodeFormatEnum.QR_CODE]: 'QR_CODE',
+ [BarcodeFormatEnum.EAN13]: 'EAN13',
+ [BarcodeFormatEnum.CODE39]: 'CODE39',
+ [BarcodeFormatEnum.UPC_A]: 'UPC_A'
+}
+
+/**
+ * 是否为有效的条码格式
+ */
+// TODO @AI:去掉,拿到需要的地方;
+export const isValidBarcodeFormat = (format: number): boolean => {
+ return Object.values(BarcodeFormatEnum).includes(format)
+}
diff --git a/src/views/mes/wm/barcode/index.vue b/src/views/mes/wm/barcode/index.vue
new file mode 100644
index 000000000..6e00c73bf
--- /dev/null
+++ b/src/views/mes/wm/barcode/index.vue
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 删除
+
+
+ 条码设置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+