diff --git a/package.json b/package.json index 0ea1ac6..1cfaf29 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,13 @@ "@icon-park/vue-next": "^1.4.2", "@vueuse/core": "^13.7.0", "axios": "^1.11.0", + "decimal.js": "^10.6.0", "element-plus": "^2.10.7", "mitt": "^3.0.1", "nprogress": "^0.2.0", "pinia": "^3.0.3", "pinia-plugin-persistedstate": "^4.5.0", + "qrcode": "^1.5.4", "qs": "^6.14.0", "sortablejs": "^1.15.6", "vue": "^3.5.18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9e5855..9fd73cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: axios: specifier: ^1.11.0 version: 1.11.0 + decimal.js: + specifier: ^10.6.0 + version: 10.6.0 element-plus: specifier: ^2.10.7 version: 2.10.7(vue@3.5.18(typescript@5.9.2)) @@ -35,6 +38,9 @@ importers: pinia-plugin-persistedstate: specifier: ^4.5.0 version: 4.5.0(pinia@3.0.3(typescript@5.9.2)(vue@3.5.18(typescript@5.9.2))) + qrcode: + specifier: ^1.5.4 + version: 1.5.4 qs: specifier: ^6.14.0 version: 6.14.0 @@ -1689,6 +1695,9 @@ packages: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -2061,6 +2070,9 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -2140,6 +2152,9 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3865,6 +3880,10 @@ packages: pkg-types@2.2.0: resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -4154,6 +4173,11 @@ packages: (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -4241,6 +4265,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resolve-dir@1.0.1: resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} engines: {node: '>=0.10.0'} @@ -4380,6 +4407,9 @@ packages: sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -5185,6 +5215,9 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which-typed-array@1.1.18: resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} @@ -5213,6 +5246,10 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -5249,6 +5286,9 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5264,6 +5304,10 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -5272,6 +5316,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -6930,6 +6978,12 @@ snapshots: is-wsl: 3.1.0 is64bit: 2.0.0 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -7361,6 +7415,8 @@ snapshots: decamelize@1.2.0: {} + decimal.js@10.6.0: {} + decode-uri-component@0.2.2: {} dedent@0.7.0: {} @@ -7424,6 +7480,8 @@ snapshots: detect-newline@3.1.0: {} + dijkstrajs@1.0.3: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -9233,6 +9291,8 @@ snapshots: exsolve: 1.0.7 pathe: 2.0.3 + pngjs@5.0.0: {} + posix-character-classes@0.1.1: {} possible-typed-array-names@1.0.0: {} @@ -9494,6 +9554,12 @@ snapshots: q@1.5.1: {} + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -9599,6 +9665,8 @@ snapshots: require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + resolve-dir@1.0.1: dependencies: expand-tilde: 2.0.2 @@ -9740,6 +9808,8 @@ snapshots: tslib: 2.8.1 upper-case-first: 2.0.2 + set-blocking@2.0.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -10720,6 +10790,8 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 + which-module@2.0.1: {} + which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 @@ -10745,6 +10817,12 @@ snapshots: wordwrap@1.0.0: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -10788,6 +10866,8 @@ snapshots: xtend@4.0.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -10796,10 +10876,29 @@ snapshots: yaml@2.8.1: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@16.2.0: dependencies: cliui: 7.0.4 diff --git a/src/common/languages/locales/en-US.ts b/src/common/languages/locales/en-US.ts index de1233a..ab2232c 100644 --- a/src/common/languages/locales/en-US.ts +++ b/src/common/languages/locales/en-US.ts @@ -18,12 +18,596 @@ export default { [SERVER_ERROR_NAME]: "404", [GATEWAY_TIMEOUT_NAME]: "500", [HOME_NAME]: "Workbenches", - [TEST_NAME]: "summary table", - - SYS: "SystemManage", - SYSUSER: "UserManage", - + [TEST_NAME]: "Summary Table", ErrorLog: "Error Logger", + + SYS: "System Manage", + SYSUSER: "User Manage", + + warehouse: "Warehouse", + warehouse_item: "Warehouse Item", + stock_by_type: "Stock By Type", + stock_by_brand: "Stock By Brand", + stock_by_warehouse: "Stock By Warehouse", + stock_transfer_order: "Stock Transfer Order", + warehouse_receipt: "Warehouse Receipt", + inventory_count: "Inventory Count", + + production: "Production", + bom: "BOM", + production_plan: "Production Plan", + production_issue: "Production Issue", + production_return: "Production Return", + finished_product_receipt: "Finished Product Receipt", + finished_product_shipment: "Finished Product Shipment", + + purchase: "Purchase", + purchase_plan: "Purchase Plan", + purchase_order: "Purchase Order", + + sale: "Sale", + sale_order: "Sale Order", + device_sn: "Device SN", + repair_record: "Repair Record", + + systemset: "System Setting", + syschannel: "Channel", + key_account: "Key Account", + vendor: "Vendor", + store: "Store", + sysrecord: "Record", + sysrole: "Role", + }, + _prop: { + common: { + tel: "Tel", + address: "Address", + createDate: "Create Date", + status: "Status", + operate: "Operate", + remark: "Remark", + startdate: "Start Date", + enddate: "End Date", + }, + warehouse: { + warehouse: { + storeMark: "Remark", + storeName: "Store Name", + }, + warehouse_item: { + productPacking: "Min Packing", + productPackSize: "Pack Size", + productBrand: "Brand", + productMark: "Remark", + createUserName: "Creator", + partNumber: "Part Number", + productSpecs: "Specs", + productType: "Type", + productPrice: "Price", + availableVendors: "Available Vendors", + selectedVendors: "Selected Vendors", + vendorName: "Vendor Name", + costPrice: "Cost Price", + procureDate: "Last Procure Date", + }, + stock: { + productCount: "Count", + }, + stocktransferorder: { + outStoreName: "Out Store", + formCode: "Form Code", + formName: "Form Name", + formMark: "Form Mark", + storeName: "In Store", + storeId: "In Store", + outStoreId: "Out Store", + createDate: "Create Date", + }, + warehousereceipt: { + formCode: "Form Code", + formName: "Form Name", + formMark: "Form Mark", + storeName: "Store Name", + storeId: "Store", + }, + inventorycount: { + formCode: "Form Code", + formName: "Form Name", + formMark: "Form Mark", + storeName: "Store Name", + storeId: "Store", + }, + }, + production: { + bom: { + brandName: "Brand Name", + bomNo: "BOM No", + formMark: "BOM Mark", + bomName: "BOM Name", + customerName: "Customer Name", + spec: "Spec", + manufacturer: "Manufacturer", + searchCode: "BOM No / Name", + }, + bom_item: { + productPackSize: "Pack Size", + productBrand: "Brand", + productMark: "Remark", + manufactureCount: "Count", + partNumber: "Part Number", + productSpecs: "Specs", + productType: "Type", + itemPosition: "Position", + sameUseCount: "Same Use Count", + sameUseNum: "Same Use", + }, + production_plan: { + storeNo: "Store No", + productionNote: "Note", + storeName: "Store Name", + productionCount: "Count", + projectName: "Project Name", + projectId: "Project Id", + productionMark: "Mark", + productionNum: "Form No", + requiredQty: "Required Qty", + stockQty: "Stock Qty", + diffQty: "Diff Qty", + outStoreNo: "Out Store", + actualQty: "Actual Qty", + }, + production_issue: { + formCode: "Form Code", + formStatus: "Status", + formMark: "Mark", + storeName: "Store", + requiredQty: "Required Qty", + actualQty: "Actual Qty", + expectedReturnQty: "Expected Return", + actualReturnQty: "Actual Return", + }, + production_return: { + formCode: "Form Code", + formStatus: "Status", + formMark: "Mark", + storeName: "Store", + returnQty: "Return Qty", + }, + finishedproductreceipt: { + totalValue: "Total Value", + formCode: "Form Code", + formName: "Form Name", + formMark: "Form Mark", + storeName: "Store", + }, + }, + purchase: { + purchase_plan: { + planNo: "Plan No", + remask: "Remark", + planName: "Plan Name", + planStatus: "Status", + storeName: "Store", + vendorName: "Vendor", + baseTitle: "Basic Info", + tableTitle: "Details", + generateOrder: "Generate Order", + model: "Model", + defaultVendor: "Default Vendor", + demandQuantity: "Demand Qty", + packQuantity: "Pack Qty", + purchaseQuantity: "Purchase Qty", + unitPrice: "Unit Price", + totalPrice: "Total Price", + purchaseStatus: "Status", + }, + purchase_plan_item: { + partNumber: "Part Number", + purchaseCount: "Count", + completeCount: "Complete", + price: "Price", + currentCount: "Current", + input_partNumber: "Enter Part Number", + input_purchaseCount: "Enter Count", + input_price: "Enter Price", + input_currentCount: "Enter Current", + }, + purchaseorder: { + totalValue: "Total Value", + formCode: "Form Code", + formMark: "Mark", + formStatus: "Status", + vendorName: "Vendor", + }, + finishedproductshipment: { + formCode: "Form Code", + formName: "Form Name", + formMark: "Mark", + storeName: "Store", + }, + }, + sale: { + saleorder: { + totalValue: "Total Value", + formCode: "Form Code", + formName: "Form Name", + formMark: "Mark", + formStatus: "Status", + customerName: "Customer", + }, + devicesn: { + softVersion: "Soft Version", + AlVersion: "AL Version", + serialNum: "Serial Num", + productSn: "Product SN", + repairMark: "Repair Mark", + outProductDate: "Out Date", + productType: "Type", + mac: "MAC", + }, + repairrecord: { + productSn: "Product SN", + repairMark: "Repair Mark", + outProductDate: "Out Date", + repairDate: "Repair Date", + productType: "Type", + mac: "MAC", + }, + }, + systemset: { + vendor: { + vendorName: "Vendor Name", + contactPerson: "Contact", + vendorMark: "Remark", + }, + store: { + storeMark: "Remark", + storeName: "Store Name", + }, + keyaccount: { + contactPerson: "Contact", + keyAccountMark: "Remark", + keyAccountName: "Account Name", + }, + syschannel: { + iconName: "Icon", + show: "Show", + eventName: "Event Name", + channelName: "Channel Name", + className: "Class", + channelType: "Type", + sort: "Sort", + channelLink: "Link", + viewLink: "View Link", + }, + sysrecord: { + recordType: "Type", + ip: "IP", + linkUrl: "URL", + channelName: "Channel", + remark: "Remark", + createUserName: "Operator", + isSuccess: "Status", + createDate: "Date", + }, + sysrole: { + roleName: "Role Name", + roleType: "Role Type", + }, + }, + }, + _button: { + add: "Add", + edit: "Edit", + remove: "Delete", + batchRemove: "Batch Delete", + submit: "Submit", + confirm: "Confirm", + cancel: "Cancel", + reset: "Reset", + enable: "Enable", + disable: "Disable", + search: "Search", + save: "Save", + showItem: "Show Details", + generatePurchasePlan: "Generate Purchase Plan", + generateProductionIssue: "Generate Issue", + generateTransferOrder: "Generate Transfer", + viewMaterialShortage: "View Shortage", + viewLossRate: "View Loss Rate", + shortageFilterButton: "Shortage Data", + unfilterButton: "All Data", + approve: "Approve", + reject: "Reject", + productionReturn: "Return", + generatePurchaseOrder: "Generate Order", + download: "Download", + print: "Print", + vendorList: "Vendor List", + printQrCode: "Print QR Code", + }, + _message: { + common: { + input_tel: "Enter Tel", + type_tel: "Tel must be number", + input_address: "Enter Address", + input_remark: "Enter Remark", + select_status: "Select Status", + add_success: "Add Success!", + add_failure: "Add Failed: ", + edit_success: "Update Success!", + edit_failure: "Update Failed: ", + delete_confirm: "Confirm Delete", + delete_success: "Delete Success!", + delete_failure: "Delete Failed: ", + delete_cannel: "Delete Cancelled", + generate_document_mark_prefix: "System [", + generate_document_mark_suffix: "]", + approve_confirm: "Confirm Approve", + approve_success: "Approve Success", + approve_fail: "Approve Failed", + approve_cannel: "Approve Cancelled", + reject_confirm: "Confirm Reject", + reject_success: "Reject Success", + reject_fail: "Reject Failed", + reject_cannel: "Reject Cancelled", + }, + warehouse: { + warehouse_item: { + input_productNumber: "Enter Part Number", + input_productSpec: "Enter Specs", + input_productType: "Enter Type", + input_productBrand: "Enter Brand", + input_productPackSize: "Enter Pack Size", + input_productPacking: "Enter Min Packing", + input_productMark: "Enter Remark", + input_partNumber: "Enter Part Number", + input_productSpecs: "Enter Specs", + input_costPrice: "Enter Cost Price", + select_vendor: "Select Vendor", + select_procureDate: "Select Procure Date", + search_vendor: "Search Vendor", + delete_message: "Delete Warehouse Item", + not_exist_partNumber: "Part Number Not Exist", + no_qrcode_content: "No QR Code Content", + vendor_duplicate: "Vendor cannot be duplicated", + }, + stocktransferorder: { + input_storeId: "Enter In Store", + input_outStoreId: "Enter Out Store", + input_formName: "Enter Form Name", + input_formMark: "Enter Form Mark", + delete_message: "Delete Transfer Order", + }, + warehousereceipt: { + select_storeId: "Select Store", + input_formName: "Enter Form Name", + input_formMark: "Enter Form Mark", + delete_message: "Delete Receipt", + }, + inventorycount: { + select_storeId: "Select Store", + input_formName: "Enter Form Name", + input_formMark: "Enter Form Mark", + delete_message: "Delete Count", + }, + }, + production: { + bom: { + input_bomNo: "Enter BOM No", + input_bomName: "Enter BOM Name", + input_manufacturer: "Enter Manufacturer", + input_spec: "Enter Spec", + input_brandName: "Enter Brand", + input_formMark: "Enter BOM Mark", + delete_message: "Delete BOM", + upload_bomitems: "Upload BOM Items", + input_manufactureCount: "Enter Count", + input_itemPosition: "Enter Position", + unpair_manufactureCount_itemPosition: "Count not match Position", + }, + production_plan: { + select_projectId: "Select BOM", + input_productionNum: "Enter Form No", + select_storeNo: "Select Store", + input_productionCount: "Enter Count", + input_productionMark: "Enter Mark", + input_productionNote: "Enter Note", + delete_message: "Delete Plan", + select_production_plan: "Select Plan", + duplicate_store_no: "Only one store supported", + generate_purchase_plan_confirm: "Generate Purchase Plan?", + generate_purchase_plan_mark_suffix: "] Generate Plan [", + generate_purchase_plan_name_suffix: " Shortage", + generate_purchase_plan_success: "Generate Success", + generate_purchase_plan_fail: "Generate Failed: ", + generate_transfer_order_confirm: "Generate Transfer?", + generate_transfer_order_mark_suffix: "] Generate Transfer [", + generate_transfer_order_name_suffix: " Transfer", + generate_transfer_order_success: "Generate Success", + generate_transfer_order_fail: "Generate Failed: ", + generate_production_issue_confirm: "Generate Issue?", + generate_production_issue_mark_suffix: "] Generate Issue [", + generate_production_issue_name_suffix: " Issue", + generate_production_issue_success: "Generate Success", + generate_production_issue_fail: "Generate Failed: ", + error_production_status: "Only incomplete plans", + }, + production_issue: { + only_approved_can_return: "Only approved can return", + get_detail_failed: "Get detail failed", + no_return_data: "No return data", + enter_valid_return_qty: "Enter valid return qty", + return_order_created: "Return order created", + create_return_order_failed: "Create failed", + generate_return_confirm: "Generate Return?", + generate_return_mark_suffix: "] Generate Return [", + generate_return_name_suffix: " Return", + generate_return_success: "Generate Success", + generate_return_fail: "Generate Failed: ", + }, + production_return: {}, + finishedproductreceipt: { + delete_message: "Delete Receipt", + }, + }, + purchase: { + purchase_plan: { + delete_message: "Delete Plan", + input_planName: "Enter Plan Name", + select_vendor: "Select Vendor", + select_store: "Select Store", + input_remask: "Enter Remark", + upload_planItems: "Upload Items", + get_items_error: "Get items failed", + select_items: "Select items", + generate_order_success: "Generate Success", + generate_order_error: "Generate Failed", + vendor_priority_tip: "Priority", + }, + purchaseorder: { + delete_message: "Delete Order", + }, + finishedproductshipment: { + delete_message: "Delete Shipment", + }, + }, + sale: { + saleorder: { + delete_message: "Delete Order", + }, + }, + systemset: { + vendor: { + input_vendorName: "Enter Vendor Name", + input_contactPerson: "Enter Contact", + input_vendorMark: "Enter Remark", + delete_message: "Delete Vendor", + }, + store: { + input_storeName: "Enter Store Name", + input_storeMark: "Enter Remark", + delete_message: "Delete Store", + }, + keyaccount: { + input_keyAccountName: "Enter Account Name", + input_contactPerson: "Enter Contact", + input_keyAccountMark: "Enter Remark", + delete_message: "Delete Account", + }, + syschannel: { + input_channelName: "Enter Channel Name", + input_channelLink: "Enter Link", + input_eventName: "Enter Event", + input_className: "Enter Class", + input_iconName: "Enter Icon", + input_channelType: "Select Type", + input_sort: "Enter Sort", + input_show: "Select Show", + input_viewLink: "Enter View Link", + delete_message: "Delete Channel", + }, + sysrole: { + input_roleName: "Enter Role Name", + select_roleType: "Select Type", + delete_message: "Delete Role", + }, + }, + }, + _title: { + warehouse: { + warehouseitem: { + add: "Add Warehouse Item", + edit: "Edit Warehouse Item", + vendorList: "Vendor List", + printQrCode: "Print QR Code", + }, + stocktransferorder: { + add: "Add Transfer", + edit: "Edit Transfer", + }, + warehousereceipt: { + add: "Add Receipt", + edit: "Edit Receipt", + }, + inventorycount: { + add: "Add Count", + edit: "Edit Count", + }, + }, + production: { + bom: { + add: "Add BOM", + edit: "Edit BOM", + showItem: "BOM Items", + baseTitle: "BOM Info", + tableTitle: "BOM Details", + }, + production_plan: { + add: "Add Plan", + edit: "Edit Plan", + dialog: "Shortage View", + issueDialog: "Issue Edit", + }, + production_issue: { + returnDialog: "Return Edit", + }, + finishedproductreceipt: { + add: "Add Receipt", + edit: "Edit Receipt", + }, + finishedproductshipment: { + add: "Add Shipment", + edit: "Edit Shipment", + }, + }, + purchase: { + purchase_plan: { + add: "Add Plan", + edit: "Edit Plan", + generateOrder: "Generate Order", + model: "Model", + defaultVendor: "Default Vendor", + demandQuantity: "Demand Qty", + packQuantity: "Pack Qty", + purchaseQuantity: "Purchase Qty", + unitPrice: "Unit Price", + totalPrice: "Total Price", + purchaseStatus: "Status", + }, + purchaseorder: { + add: "Add Order", + edit: "Edit Order", + }, + }, + sale: { + saleorder: { + add: "Add Order", + edit: "Edit Order", + }, + }, + systemset: { + vendor: { + add: "Add Vendor", + edit: "Edit Vendor", + }, + store: { + add: "Add Store", + edit: "Edit Store", + }, + keyaccount: { + add: "Add Account", + edit: "Edit Account", + }, + syschannel: { + add: "Add Channel", + edit: "Edit Channel", + }, + sysrole: { + add: "Add Role", + edit: "Edit Role", + }, + }, }, _tabNav: { refresh: "Refresh Page", @@ -40,7 +624,7 @@ export default { }, _headerBar: { search: "Search", - changeLanguage: "Successfully modified the language!", + changeLanguage: "Successfully modified the language!", profile: "My Profile", setting: "My Setting", messageCenter: "My Message", @@ -232,4 +816,42 @@ export default { selectKeydown: "Select", closeKeyDown: " Close", }, + _base_info: { + unknown: "-", + status: { + enable: "Enable", + disable: "Disable", + }, + production: { + production_plan: { + no_complete: "Not Complete", + completed: "Completed", + approving: "Approving", + reviewed: "Reviewed", + }, + }, + purchase: { + purchase_plan: { + pending: "Pending", + in_progress: "In Progress", + completed: "Completed", + }, + purchase_plan_item: { + no_start: "Not Purchased", + ordered: "Purchasing", + completed: "Purchased", + }, + }, + form_status: { + no_approve: "Not Approved", + approve: "Approved", + reject: "Rejected", + no_complete: "Not Complete", + complete: "Completed", + receipting: "Receiving", + imported: "Imported", + approving: "Approving", + returned: "Returned", + }, + }, }; diff --git a/src/common/languages/locales/zh-CN.ts b/src/common/languages/locales/zh-CN.ts index ad5c4d9..1f5d483 100644 --- a/src/common/languages/locales/zh-CN.ts +++ b/src/common/languages/locales/zh-CN.ts @@ -84,6 +84,11 @@ export default { productSpecs: "型号", productType: "规格名称", productPrice: "参考价格", + availableVendors: "可选供应商", + selectedVendors: "已选供应商", + vendorName: "供应商名称", + costPrice: "成本价", + procureDate: "最后采购日期", }, stock: { productCount: "数量", @@ -97,6 +102,11 @@ export default { storeId: "入货仓库", outStoreId: "出货仓库", createDate: "创建时间", + formStatus: "单据状态", + partNumber: "物料编号", + productSpec: "物料规格", + productCount: "调拨数量", + demandCount: "库存数量", }, warehousereceipt: { formCode: "单据编号", @@ -104,6 +114,11 @@ export default { formMark: "单据备注", storeName: "仓库名称", storeId: "仓库", + formStatus: "单据状态", + partNumber: "物料编号", + productSpec: "物料规格", + productCount: "入库数量", + createDate: "创建时间", }, inventorycount: { formCode: "单据编号", @@ -111,6 +126,16 @@ export default { formMark: "单据备注", storeName: "仓库名称", storeId: "仓库", + partNumber: "物料编号", + productSpec: "物料规格", + productCount: "盘点数量", + originalProductCount: "原始数量", + diffCount: "差异数量", + stockTakingMark: "盘点备注", + reserve1: "预留字段1", + reserve2: "预留字段2", + createDate: "创建时间", + formStatus: "单据状态", }, }, production: { @@ -151,17 +176,22 @@ export default { outStoreNo: "发料仓库", actualQty: "实发数量", }, - productionissue: { + production_issue: { formCode: "单据编号", formStatus: "单据状态", formMark: "单据备注", storeName: "仓库", + requiredQty: "需求数量", + actualQty: "实发数量", + expectedReturnQty: "应退数量", + actualReturnQty: "实退数量", }, - productionreturn: { + production_return: { formCode: "单据编号", formStatus: "单据状态", formMark: "单据备注", storeName: "仓库", + returnQty: "退料数量", }, finishedproductreceipt: { totalValue: "入库数量", @@ -169,15 +199,51 @@ export default { formName: "单据名称", formMark: "单据备注", storeName: "仓库", + storeId: "仓库", + formStatus: "单据状态", + productType: "型号", + productSn: "SN号", + mac: "MAC地址", + serialNum: "序列号", + softVersion: "软件版本", + alVersion: "算法版本", + alNum: "算法标志", + alTxt: "激活状态", + manufacturingDate: "时间", + mark: "备注", + createDate: "创建时间", }, }, purchase: { - purchaseplan: { + purchase_plan: { planNo: "采购计划号", remask: "备注", planName: "计划单名称", planStatus: "计划状态", storeName: "入库仓库", + vendorName: "供应商", + baseTitle: "采购计划基本信息", + tableTitle: "采购明细", + generateOrder: "生成采购订单", + model: "型号", + defaultVendor: "默认供应商", + demandQuantity: "需求量", + packQuantity: "包装数量", + purchaseQuantity: "采购数量", + unitPrice: "单价", + totalPrice: "总价", + purchaseStatus: "采购状态", + }, + purchase_plan_item: { + partNumber: "商品编号", + purchaseCount: "计划数量", + completeCount: "已完成数量", + price: "单价", + currentCount: "本次采购数量", + input_partNumber: "请输入商品编号", + input_purchaseCount: "请输入计划数量", + input_price: "请输入单价", + input_currentCount: "请输入本次采购数量", }, purchaseorder: { totalValue: "订单总额", @@ -191,6 +257,19 @@ export default { formName: "单据名称", formMark: "单据备注", storeName: "仓库", + storeId: "仓库", + formStatus: "单据状态", + productType: "型号", + productSn: "SN号", + mac: "MAC地址", + serialNum: "序列号", + softVersion: "软件版本", + alVersion: "算法版本", + alNum: "算法标志", + alTxt: "激活状态", + manufacturingDate: "时间", + mark: "备注", + createDate: "创建时间", }, }, sale: { @@ -201,6 +280,14 @@ export default { formMark: "单据备注", formStatus: "审核状态", customerName: "客户名称", + customerId: "客户", + partNumber: "物料编号", + saleCount: "销售数量", + price: "单价", + totalPrice: "总价", + sendCount: "出库数量", + surplusCount: "剩余量", + saleMark: "备注", }, devicesn: { softVersion: "软件版本", @@ -211,6 +298,12 @@ export default { outProductDate: "出货时间", productType: "型号", mac: "MAC 地址", + alNum: "算法标志", + alStatus: "激活状态", + mark: "备注", + keyAccountId: "客户", + keyAccountName: "客户名称", + outStatus: "出货状态", }, repairrecord: { productSn: "SN 号", @@ -219,6 +312,10 @@ export default { repairDate: "维修日期", productType: "型号", mac: "MAC 地址", + repairStatus: "维修状态", + manufacturingDate: "生产日期", + mark: "备注", + keyAccountId: "客户", }, }, systemset: { @@ -275,6 +372,7 @@ export default { enable: "启用", disable: "禁用", search: "查询", + save: "保存", showItem: "展示明细", generatePurchasePlan: "生成采购计划", generateProductionIssue: "生成发料单", @@ -283,6 +381,14 @@ export default { viewLossRate: "查看损耗率", shortageFilterButton: "缺料数据", unfilterButton: "全部数据", + approve: "审核", + reject: "反审", + productionReturn: "退料", + generatePurchaseOrder: "生成采购订单", + download: "下载", + print: "打印", + editVendors: "供应商列表", + printQrCode: "打印二维码", }, _message: { common: { @@ -295,11 +401,20 @@ export default { add_failure: "添加失败!失败信息:", edit_success: "更新成功!", edit_failure: "更新失败!失败信息:", + delete_confirm: "是否删除", delete_success: "删除成功!", delete_failure: "删除失败!失败信息:", delete_cannel: "取消删除!", generate_document_mark_prefix: "系统由【", generate_document_mark_suffix: "】", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + approve_cannel: "审核取消", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + reject_cannel: "反审取消", }, warehouse: { warehouse_item: { @@ -307,11 +422,21 @@ export default { input_productSpec: "请输入物料型号", input_productType: "请输入物料规格", input_productBrand: "请输入品牌", - input_productPackSize: "请输入最小包装数量", - input_productPacking: "请输入封装", - input_productMark: "请输入说明", + input_productPackSize: "请输入封装", + input_productPacking: "请输入最小包装数量", + input_productMark: "请输入备注", + input_partNumber: "请输入物料编号", + input_productSpecs: "请输入物料型号", + input_costPrice: "请输入成本价", + select_vendor: "请选择供应商", + select_procureDate: "请选择采购日期", + search_vendor: "搜索供应商", delete_message: "删除物料信息", not_exist_partNumber: "物料不存在", + no_qrcode_content: "无二维码内容", + vendor_duplicate: "供应商不能重复", + save_vendors_success: "保存供应商成功", + save_vendors_fail: "保存供应商失败", }, stocktransferorder: { input_storeId: "请输入入货仓库", @@ -319,17 +444,66 @@ export default { input_formName: "请输入单据名称", input_formMark: "请输入单据备注", delete_message: "删除调拨单", + input_formCode: "请输入单据编号", + select_storeId: "请选择入货仓库", + select_outStoreId: "请选择出货仓库", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + same_warehouse: "入库仓库和出库仓库不能相同", + insufficient_stock: "物料库存不足", + already_approved: "调拨单已经审核", + not_approved: "调拨单不是已审核状态,不能反审", + no_materials: "调拨单没有明细", + import_success: "导入成功", + import_fail: "导入失败", + input_productCount: "请输入调拨数量", + productCount_min_1: "调拨数量必须大于等于1", }, warehousereceipt: { select_storeId: "请选择仓库", input_formName: "请输入单据名称", input_formMark: "请输入单据备注", delete_message: "删除入库单", + input_formCode: "请输入单据编号", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "入库单已经审核", + not_approved: "入库单不是已审核状态,不能反审", + no_materials: "入库单没有明细", + import_success: "导入成功", + import_fail: "导入失败", }, inventorycount: { select_storeId: "请选择仓库", input_formName: "请输入单据名称", input_formMark: "请输入单据备注", + input_formCode: "请输入单据编号", + input_partNumber: "请输入物料编号", + input_productSpec: "请输入物料规格", + input_productCount: "请输入盘点数量", + input_originalProductCount: "请输入原始数量", + input_diffCount: "请输入差异数量", + input_stockTakingMark: "请输入盘点备注", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "盘点单已经审核", + not_approved: "盘点单不是已审核状态,不能反审", + no_items: "盘点单没有明细", + init_already_exists: "当前仓库已经有初始库存单", + import_success: "导入成功", + import_fail: "导入失败", delete_message: "删除盘点单", }, }, @@ -374,23 +548,168 @@ export default { generate_production_issue_fail: "生成出料单失败,失败信息:", error_production_status: "只能选择未完成的计划", }, + production_issue: { + only_approved_can_return: "只有审核通过的发料单才能生成退料单", + get_detail_failed: "获取发料单明细失败", + no_return_data: "没有退料数据", + enter_valid_return_qty: "请输入有效的退料数量", + return_order_created: "退料单创建成功", + create_return_order_failed: "创建退料单失败", + generate_return_confirm: "是否生成退料单", + generate_return_mark_suffix: "】生成退料单【", + generate_return_name_suffix: " 退料", + generate_return_success: "生成退料单成功", + generate_return_fail: "生成退料单失败,失败信息:", + }, + production_return: {}, finishedproductreceipt: { + select_storeId: "请选择仓库", + input_formName: "请输入单据名称", + input_formMark: "请输入单据备注", + input_formCode: "请输入单据编号", + input_productType: "请输入型号", + input_productSn: "请输入SN号", + input_mac: "请输入MAC地址", + input_serialNum: "请输入序列号", + input_softVersion: "请输入软件版本", + input_alVersion: "请输入算法版本", + input_alNum: "请输入算法标志", + input_alTxt: "请输入激活状态", + input_manufacturingDate: "请输入时间", + input_mark: "请输入备注", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "成品入库单已经审核", + not_approved: "成品入库单不是已审核状态,不能反审", + no_module_sn_items: "成品入库单没有明细", + duplicate_sn_in_request: "导入数据中存在重复SN号", + invalid_activation_status: "存在未激活的SN号:", + sn_already_exists: "系统中已存在的SN号:", + cannot_unapprove_with_shipped: "成品入库单已出货,不能反审", + import_success: "导入成功", + import_fail: "导入失败", delete_message: "删除成品入库单", }, + finishedproductshipment: { + select_storeId: "请选择仓库", + input_formName: "请输入单据名称", + input_formMark: "请输入单据备注", + input_formCode: "请输入单据编号", + input_productType: "请输入型号", + input_productSn: "请输入SN号", + input_mac: "请输入MAC地址", + input_serialNum: "请输入序列号", + input_softVersion: "请输入软件版本", + input_alVersion: "请输入算法版本", + input_alNum: "请输入算法标志", + input_alTxt: "请输入激活状态", + input_manufacturingDate: "请输入时间", + input_mark: "请输入备注", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "成品出库单已经审核", + not_approved: "成品出库单不是已审核状态,不能反审", + no_module_sn_items: "成品出库单没有明细", + duplicate_sn_in_request: "导入数据中存在重复SN号", + sn_not_found: "系统中不存在的SN号:", + sn_already_shipped: "已经出货的SN号:", + import_success: "导入成功", + import_fail: "导入失败", + delete_message: "删除成品出货单", + }, + devicesn: { + input_productSn: "请输入SN号", + input_mac: "请输入MAC地址", + }, + repairrecord: { + input_productSn: "请输入SN号", + input_mac: "请输入MAC地址", + input_repairStatus: "请选择维修状态", + input_repairDate: "请输入维修日期", + input_manufacturingDate: "请输入生产日期", + input_mark: "请输入备注", + input_repairMark: "请输入返修记录", + }, }, purchase: { - purchaseplan: { + purchase_plan: { delete_message: "删除采购计划", + input_planName: "请输入计划单名称", + select_vendor: "请选择供应商", + select_store: "请选择入库仓库", + input_remask: "请输入备注", + upload_planItems: "请上传采购明细", + get_items_error: "获取采购计划明细失败", + select_items: "请选择要采购的物料", + generate_order_success: "生成采购订单成功", + generate_order_error: "生成采购订单失败", + vendor_priority_tip: "优先", }, purchaseorder: { delete_message: "删除采购订单", }, finishedproductshipment: { + select_storeId: "请选择仓库", + input_formName: "请输入单据名称", + input_formMark: "请输入单据备注", + input_formCode: "请输入单据编号", + input_productType: "请输入型号", + input_productSn: "请输入SN号", + input_mac: "请输入MAC地址", + input_serialNum: "请输入序列号", + input_softVersion: "请输入软件版本", + input_alVersion: "请输入算法版本", + input_alNum: "请输入算法标志", + input_alTxt: "请输入激活状态", + input_manufacturingDate: "请输入时间", + input_mark: "请输入备注", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "成品出库单已经审核", + not_approved: "成品出库单不是已审核状态,不能反审", + no_module_sn_items: "成品出库单没有明细", + duplicate_sn_in_request: "导入数据中存在重复SN号", + sn_not_found: "系统中不存在的SN号:", + sn_already_shipped: "已经出货的SN号:", + import_success: "导入成功", + import_fail: "导入失败", delete_message: "删除成品出货单", }, }, sale: { saleorder: { + select_customerId: "请选择客户", + input_formName: "请输入单据名称", + input_formMark: "请输入单据备注", + input_formCode: "请输入单据编号", + input_partNumber: "请输入物料编号", + input_saleCount: "请输入销售数量", + input_price: "请输入单价", + input_saleMark: "请输入备注", + approve_confirm: "是否审核通过", + approve_success: "审核成功", + approve_fail: "审核失败", + reject_confirm: "是否需要反审", + reject_success: "反审成功", + reject_fail: "反审失败", + already_approved: "销售订单已经审核", + not_approved: "销售订单不是已审核状态,不能反审", + no_sale_order_items: "销售订单没有明细", + cannot_unapprove_with_shipped: "销售订单已出货,不能反审", + import_success: "导入成功", + import_fail: "导入失败", delete_message: "删除销售订单", }, }, @@ -436,10 +755,15 @@ export default { warehouseitem: { add: "添加物料信息", edit: "编辑物料信息", + vendorList: "供应商列表", + printQrCode: "打印二维码", }, stocktransferorder: { add: "添加调拨单", edit: "编辑调拨单", + showItem: "调拨明细", + baseTitle: "调拨单基本信息", + tableTitle: "调拨明细", }, warehousereceipt: { add: "添加入库单", @@ -448,6 +772,9 @@ export default { inventorycount: { add: "添加盘点单", edit: "编辑盘点单", + showItem: "盘点明细", + baseTitle: "盘点单基本信息", + tableTitle: "盘点明细", }, }, production: { @@ -464,19 +791,44 @@ export default { dialog: "缺料查看", issueDialog: "发料编辑", }, + production_issue: { + returnDialog: "退料编辑", + }, finishedproductreceipt: { add: "添加成品入库单", edit: "编辑成品入库单", + showItem: "成品明细", + baseTitle: "成品入库单基本信息", + tableTitle: "成品明细", }, finishedproductshipment: { add: "添加成品出货单", edit: "编辑成品出货单", + showItem: "成品明细", + baseTitle: "成品出货单基本信息", + tableTitle: "成品明细", + }, + saleorder: { + add: "添加销售订单", + edit: "编辑销售订单", + showItem: "销售明细", + baseTitle: "销售订单基本信息", + tableTitle: "销售明细", }, }, purchase: { - purchaseplan: { + purchase_plan: { add: "新建采购计划", edit: "编辑采购计划", + generateOrder: "生成采购订单", + model: "型号", + defaultVendor: "默认供应商", + demandQuantity: "需求量", + packQuantity: "包装数量", + purchaseQuantity: "采购数量", + unitPrice: "单价", + totalPrice: "总价", + purchaseStatus: "采购状态", }, purchaseorder: { add: "新建采购订单", @@ -739,5 +1091,28 @@ export default { reviewed: "已审核", }, }, + purchase: { + purchase_plan: { + pending: "待采购", + in_progress: "采购中", + completed: "已完成", + }, + purchase_plan_item: { + no_start: "未采购", + ordered: "采购中", + completed: "已采购", + }, + }, + form_status: { + no_approve: "未审核", + approve: "已审核", + reject: "驳回", + no_complete: "未完成", + complete: "已完成", + receipting: "入库中", + imported: "已导入", + approving: "审批中", + returned: "已退料", + }, }, }; diff --git a/src/common/languages/mapping/base-info-mapping.ts b/src/common/languages/mapping/base-info-mapping.ts index 5d5f436..987e122 100644 --- a/src/common/languages/mapping/base-info-mapping.ts +++ b/src/common/languages/mapping/base-info-mapping.ts @@ -27,5 +27,58 @@ export const useStatus = () => { return key ? t(key) : t(unknown); }; - return { commonStatusKeyMap, getCommonStatusLabel, productionPlanStatusKeyMap, getProductionPlanStatusLabel }; + const formStatusKeyMap: Record = { + 0: "_base_info.form_status.no_approve", + 1: "_base_info.form_status.approve", + 2: "_base_info.form_status.reject", + 3: "_base_info.form_status.no_complete", + 4: "_base_info.form_status.complete", + 5: "_base_info.form_status.receipting", + 6: "_base_info.form_status.imported", + 7: "_base_info.form_status.approving", + 8: "_base_info.form_status.returned", + }; + + const getFormStatusLabel = (code: number | null): string => { + if (code === null || code === undefined) return ""; + const key = formStatusKeyMap[code]; + return key ? t(key) : t(unknown); + }; + + const purchasePlanItemStatusKeyMap: Record = { + 0: "_base_info.purchase.purchase_plan_item.no_start", + 1: "_base_info.purchase.purchase_plan_item.ordered", + 2: "_base_info.purchase.purchase_plan_item.completed", + }; + + const getPurchasePlanItemStatusLabel = (code: number | null): string => { + if (code === null || code === undefined) return ""; + const key = purchasePlanItemStatusKeyMap[code]; + return key ? t(key) : t(unknown); + }; + + const purchasePlanStatusKeyMap: Record = { + 0: "_base_info.purchase.purchase_plan.pending", + 1: "_base_info.purchase.purchase_plan.in_progress", + 2: "_base_info.purchase.purchase_plan.completed", + }; + + const getPurchasePlanStatusLabel = (code: number | null): string => { + if (code === null || code === undefined) return ""; + const key = purchasePlanStatusKeyMap[code]; + return key ? t(key) : t(unknown); + }; + + return { + commonStatusKeyMap, + getCommonStatusLabel, + productionPlanStatusKeyMap, + getProductionPlanStatusLabel, + formStatusKeyMap, + getFormStatusLabel, + purchasePlanItemStatusKeyMap, + getPurchasePlanItemStatusLabel, + purchasePlanStatusKeyMap, + getPurchasePlanStatusLabel, + }; }; diff --git a/src/components/base/base-pageable-table/BasePageableTable.vue b/src/components/base/base-pageable-table/BasePageableTable.vue index fab612a..83d60f8 100644 --- a/src/components/base/base-pageable-table/BasePageableTable.vue +++ b/src/components/base/base-pageable-table/BasePageableTable.vue @@ -69,7 +69,6 @@ defineExpose({ tableMainRef.value?.toggleRowExpansion(row, expanded); }, sort: (field: string, order: string) => { - console.log(tableMainRef.value?.tableRef); tableMainRef.value?.tableRef?.sort(field, order); }, }); @@ -78,6 +77,7 @@ onMounted(loadData); diff --git a/src/views/production/production-issue/ProductionIssueView.vue b/src/views/production/production-issue/ProductionIssueView.vue index 8e26466..247195d 100644 --- a/src/views/production/production-issue/ProductionIssueView.vue +++ b/src/views/production/production-issue/ProductionIssueView.vue @@ -1,93 +1,204 @@