From 8c2c1c08526015c310a4687e9afc876c6c550ff0 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期二, 11 三月 2025 13:46:51 +0800
Subject: [PATCH] fix:po order
---
rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 380 +++--
rsf-admin/src/page/components/MyExportButton.jsx | 145 -
rsf-admin/src/page/purchaseItem/PurchaseItemList.jsx | 384 +++--
rsf-admin/src/page/system/serialRule/SerialRuleDetail.jsx | 2
rsf-admin/src/page/asnOrderItem/AsnOrderItemList.jsx | 406 +++--
rsf-admin/src/page/components/MyCreateButton.jsx | 100
rsf-admin/src/config/MyDataProvider.js | 1
rsf-admin/src/i18n/core/chineseMessages.js | 412 ++--
rsf-admin/src/i18n/zh.js | 1056 +++++++-------
rsf-admin/src/i18n/en.js | 1073 +++++++-------
rsf-admin/src/page/purchase/PurchaseList.jsx | 365 ++--
11 files changed, 2,311 insertions(+), 2,013 deletions(-)
diff --git a/rsf-admin/src/config/MyDataProvider.js b/rsf-admin/src/config/MyDataProvider.js
index 2255bbc..cfc312f 100644
--- a/rsf-admin/src/config/MyDataProvider.js
+++ b/rsf-admin/src/config/MyDataProvider.js
@@ -135,7 +135,6 @@
// export excel from all data
export: async (resource, params) => {
- console.log("export", resource, params);
const _params = Common.integrateParams(params);
try {
const res = await request.post(`${resource}/export`, _params, {
diff --git a/rsf-admin/src/i18n/core/chineseMessages.js b/rsf-admin/src/i18n/core/chineseMessages.js
index f6eafa3..0dc0430 100644
--- a/rsf-admin/src/i18n/core/chineseMessages.js
+++ b/rsf-admin/src/i18n/core/chineseMessages.js
@@ -1,213 +1,205 @@
const chineseMessages = {
- ra: {
- action: {
- add_filter: '杩囨护鏉′欢',
- add: '娣诲姞',
- back: '杩斿洖',
- bulk_actions: '1 item selected |||| %{smart_count} items selected',
- cancel: '鍙栨秷',
- clear_array_input: '鎯呯┖鍒楄〃',
- clear_input_value: '娓呯┖',
- clone: '鍏嬮殕',
- confirm: '纭畾',
- create: '娣诲姞',
- create_item: '娣诲姞 %{item}',
- delete: '鍒犻櫎',
- edit: '缂栬緫',
- export: '瀵煎嚭',
- list: '鍒楄〃',
- refresh: '鍒锋柊',
- remove_filter: 'Remove this filter',
- remove_all_filters: '绉婚櫎鎵�鏈�',
- remove: '绉婚櫎',
- save: '淇濆瓨',
- search: '鎼滅储',
- select_all: '鍏ㄩ儴閫変腑',
- select_row: '閫変腑涓�琛�',
- show: '鏄剧ず',
- sort: '鎺掑簭',
- undo: '鎾ら攢',
- unselect: '鍙栨秷閫夋嫨',
- expand: '灞曞紑',
- close: '鍏抽棴',
- open_menu: 'Open menu',
- close_menu: 'Close menu',
- update: '淇敼',
- move_up: 'Move up',
- move_down: 'Move down',
- open: 'Open',
- toggle_theme: 'Toggle light/dark mode',
- select_columns: '绛涢�夊垪',
- update_application: 'Reload Application',
- },
- boolean: {
- true: '鏄�',
- false: '鍚�',
- null: '鈥�',
- },
- page: {
- create: 'Create %{name}',
- dashboard: 'Dashboard',
- edit: '%{name} %{recordRepresentation}',
- error: 'Something went wrong',
- list: '%{name}',
- loading: 'Loading',
- not_found: 'Not Found',
- show: '%{name} %{recordRepresentation}',
- empty: 'No %{name} yet.',
- invite: 'Do you want to add one?',
- },
- input: {
- file: {
- upload_several:
- '鎷栨斁涓�浜涜涓婁紶鐨勬枃浠讹紝鎴栧崟鍑讳互閫夋嫨涓�涓�',
- upload_single: '鎷栨斁瑕佷笂浼犵殑鏂囦欢锛屾垨鍗曞嚮浠ラ�夋嫨瀹�',
- },
- image: {
- upload_several:
- 'Drop some pictures to upload, or click to select one.',
- upload_single:
- 'Drop a picture to upload, or click to select it.',
- },
- references: {
- all_missing: 'Unable to find references data.',
- many_missing:
- 'At least one of the associated references no longer appears to be available.',
- single_missing:
- 'Associated reference no longer appears to be available.',
- },
- password: {
- toggle_visible: 'Hide password',
- toggle_hidden: 'Show password',
- },
- },
- message: {
- about: 'About',
- are_you_sure: 'Are you sure?',
- auth_error:
- 'An error occurred while validating the authentication token.',
- bulk_delete_content:
- 'Are you sure you want to delete this %{name}? |||| Are you sure you want to delete these %{smart_count} items?',
- bulk_delete_title:
- '鍒犻櫎 %{name} |||| 鍒犻櫎 %{smart_count} %{name}',
- bulk_update_content:
- 'Are you sure you want to update this %{name}? |||| Are you sure you want to update these %{smart_count} items?',
- bulk_update_title:
- '淇敼 %{name} |||| 淇敼 %{smart_count} %{name}',
- clear_array_input: 'Are you sure you want to clear the whole list?',
- delete_content: '鎮ㄧ‘瀹炶鍒犻櫎姝ら」鍚楋紵',
- delete_title: '鍒犻櫎 %{name} #%{id}',
- details: 'Details',
- error: "A client error occurred and your request couldn't be completed.",
-
- invalid_form: '琛ㄥ崟鏃犳晥 璇锋鏌ユ槸鍚︽湁閿欒!',
- loading: 'Please wait',
- no: 'No',
- not_found:
- 'Either you typed a wrong URL, or you followed a bad link.',
- yes: 'Yes',
- unsaved_changes:
- "Some of your changes weren't saved. Are you sure you want to ignore them?",
- },
- navigation: {
- no_results: '娌℃湁鎵惧埌鏁版嵁',
- no_more_results:
- 'The page number %{page} is out of boundaries. Try the previous page.',
- page_out_of_boundaries: 'Page number %{page} out of boundaries',
- page_out_from_end: 'Cannot go after last page',
- page_out_from_begin: 'Cannot go before page 1',
- page_range_info: '%{offsetBegin}-%{offsetEnd} of %{total}',
- partial_page_range_info:
- '%{offsetBegin}-%{offsetEnd} of more than %{offsetEnd}',
- current_page: 'Page %{page}',
- page: 'Go to page %{page}',
- first: 'Go to first page',
- last: 'Go to last page',
- next: 'Go to next page',
- previous: 'Go to previous page',
- page_rows_per_page: '姣忛〉鏁伴噺:',
- skip_nav: 'Skip to content',
- },
- sort: {
- sort_by: 'Sort by %{field} %{order}',
- ASC: 'ascending',
- DESC: 'descending',
- },
- auth: {
- auth_check_error: 'Please login to continue',
- user_menu: 'Profile',
- username: 'Username',
- password: 'Password',
- sign_in: 'Sign in',
- sign_in_error: 'Authentication failed, please retry',
- logout: 'Logout',
- },
- notification: {
- updated: '淇敼鎴愬姛 |||| %{smart_count} 椤� 淇敼鎴愬姛',
- created: '娣诲姞鎴愬姛',
- deleted: '鍒犻櫎鎴愬姛 |||| %{smart_count} 椤� 鍒犻櫎鎴愬姛',
- bad_item: 'Incorrect element',
- item_doesnt_exist: 'Element does not exist',
- http_error: 'Server communication error',
- data_provider_error:
- 'dataProvider error. Check the console for details.',
- i18n_error:
- 'Cannot load the translations for the specified language',
- canceled: 'Action cancelled',
- logged_out: 'Your session has ended, please reconnect.',
- not_authorized: "You're not authorized to access this resource.",
- application_update_available: 'A new version is available.',
- },
- validation: {
- required: '蹇呭~椤�',
- minLength: 'Must be %{min} characters at least',
- maxLength: 'Must be %{max} characters or less',
- minValue: 'Must be at least %{min}',
- maxValue: 'Must be %{max} or less',
- number: 'Must be a number',
- email: 'Must be a valid email',
- oneOf: 'Must be one of: %{options}',
- regex: 'Must match a specific format (regexp): %{pattern}',
- unique: 'Must be unique',
- },
- saved_queries: {
- label: '淇濆瓨杩囨护',
- query_name: 'Query name',
- new_label: '淇濆瓨杩囨护鏉′欢...',
- new_dialog_title: 'Save current query as',
- remove_label: '绉婚櫎杩囨护鏉′欢',
- remove_label_with_name: 'Remove query "%{name}"',
- remove_dialog_title: '绉婚櫎杩囨护鏉′欢?',
- remove_message:
- '鎮ㄧ‘瀹氳绉婚櫎宸蹭繚瀛樿繃婊ゆ潯浠跺悧锛�',
- help: 'Filter the list and save this query for later',
- },
- configurable: {
- customize: 'Customize',
- configureMode: 'Configure this page',
- inspector: {
- title: 'Inspector',
- content: 'Hover the application UI elements to configure them',
- reset: 'Reset Settings',
- hideAll: 'Hide All',
- showAll: 'Show All',
- },
- Datagrid: {
- title: 'Datagrid',
- unlabeled: 'Unlabeled column #%{column}',
- },
- SimpleForm: {
- title: 'Form',
- unlabeled: 'Unlabeled input #%{input}',
- },
- SimpleList: {
- title: 'List',
- primaryText: 'Primary text',
- secondaryText: 'Secondary text',
- tertiaryText: 'Tertiary text',
- },
- },
+ ra: {
+ action: {
+ add_filter: "杩囨护鏉′欢",
+ add: "娣诲姞",
+ back: "杩斿洖",
+ bulk_actions: "1 item selected |||| %{smart_count} items selected",
+ cancel: "鍙栨秷",
+ clear_array_input: "鎯呯┖鍒楄〃",
+ clear_input_value: "娓呯┖",
+ clone: "鍏嬮殕",
+ confirm: "纭畾",
+ create: "娣诲姞",
+ create_item: "娣诲姞 %{item}",
+ delete: "鍒犻櫎",
+ edit: "缂栬緫",
+ export: "瀵煎嚭",
+ import: "瀵煎叆",
+ list: "鍒楄〃",
+ refresh: "鍒锋柊",
+ remove_filter: "Remove this filter",
+ remove_all_filters: "绉婚櫎鎵�鏈�",
+ remove: "绉婚櫎",
+ save: "淇濆瓨",
+ search: "鎼滅储",
+ select_all: "鍏ㄩ儴閫変腑",
+ select_row: "閫変腑涓�琛�",
+ show: "鏄剧ず",
+ sort: "鎺掑簭",
+ undo: "鎾ら攢",
+ unselect: "鍙栨秷閫夋嫨",
+ expand: "灞曞紑",
+ close: "鍏抽棴",
+ open_menu: "Open menu",
+ close_menu: "Close menu",
+ update: "淇敼",
+ move_up: "Move up",
+ move_down: "Move down",
+ open: "Open",
+ toggle_theme: "Toggle light/dark mode",
+ select_columns: "绛涢�夊垪",
+ update_application: "Reload Application",
},
-}
+ boolean: {
+ true: "鏄�",
+ false: "鍚�",
+ null: "鈥�",
+ },
+ page: {
+ create: "Create %{name}",
+ dashboard: "Dashboard",
+ edit: "%{name} %{recordRepresentation}",
+ error: "Something went wrong",
+ list: "%{name}",
+ loading: "Loading",
+ not_found: "Not Found",
+ show: "%{name} %{recordRepresentation}",
+ empty: "No %{name} yet.",
+ invite: "Do you want to add one?",
+ },
+ input: {
+ file: {
+ upload_several: "鎷栨斁涓�浜涜涓婁紶鐨勬枃浠讹紝鎴栧崟鍑讳互閫夋嫨涓�涓�",
+ upload_single: "鎷栨斁瑕佷笂浼犵殑鏂囦欢锛屾垨鍗曞嚮浠ラ�夋嫨瀹�",
+ },
+ image: {
+ upload_several: "Drop some pictures to upload, or click to select one.",
+ upload_single: "Drop a picture to upload, or click to select it.",
+ },
+ references: {
+ all_missing: "Unable to find references data.",
+ many_missing:
+ "At least one of the associated references no longer appears to be available.",
+ single_missing:
+ "Associated reference no longer appears to be available.",
+ },
+ password: {
+ toggle_visible: "Hide password",
+ toggle_hidden: "Show password",
+ },
+ },
+ message: {
+ about: "About",
+ are_you_sure: "Are you sure?",
+ auth_error:
+ "An error occurred while validating the authentication token.",
+ bulk_delete_content:
+ "Are you sure you want to delete this %{name}? |||| Are you sure you want to delete these %{smart_count} items?",
+ bulk_delete_title: "鍒犻櫎 %{name} |||| 鍒犻櫎 %{smart_count} %{name}",
+ bulk_update_content:
+ "Are you sure you want to update this %{name}? |||| Are you sure you want to update these %{smart_count} items?",
+ bulk_update_title: "淇敼 %{name} |||| 淇敼 %{smart_count} %{name}",
+ clear_array_input: "Are you sure you want to clear the whole list?",
+ delete_content: "鎮ㄧ‘瀹炶鍒犻櫎姝ら」鍚楋紵",
+ delete_title: "鍒犻櫎 %{name} #%{id}",
+ details: "Details",
+ error: "A client error occurred and your request couldn't be completed.",
-export default chineseMessages;
\ No newline at end of file
+ invalid_form: "琛ㄥ崟鏃犳晥 璇锋鏌ユ槸鍚︽湁閿欒!",
+ loading: "Please wait",
+ no: "No",
+ not_found: "Either you typed a wrong URL, or you followed a bad link.",
+ yes: "Yes",
+ unsaved_changes:
+ "Some of your changes weren't saved. Are you sure you want to ignore them?",
+ },
+ navigation: {
+ no_results: "娌℃湁鎵惧埌鏁版嵁",
+ no_more_results:
+ "The page number %{page} is out of boundaries. Try the previous page.",
+ page_out_of_boundaries: "Page number %{page} out of boundaries",
+ page_out_from_end: "Cannot go after last page",
+ page_out_from_begin: "Cannot go before page 1",
+ page_range_info: "%{offsetBegin}-%{offsetEnd} of %{total}",
+ partial_page_range_info:
+ "%{offsetBegin}-%{offsetEnd} of more than %{offsetEnd}",
+ current_page: "Page %{page}",
+ page: "Go to page %{page}",
+ first: "Go to first page",
+ last: "Go to last page",
+ next: "Go to next page",
+ previous: "Go to previous page",
+ page_rows_per_page: "姣忛〉鏁伴噺:",
+ skip_nav: "Skip to content",
+ },
+ sort: {
+ sort_by: "Sort by %{field} %{order}",
+ ASC: "ascending",
+ DESC: "descending",
+ },
+ auth: {
+ auth_check_error: "Please login to continue",
+ user_menu: "Profile",
+ username: "Username",
+ password: "Password",
+ sign_in: "Sign in",
+ sign_in_error: "Authentication failed, please retry",
+ logout: "Logout",
+ },
+ notification: {
+ updated: "淇敼鎴愬姛 |||| %{smart_count} 椤� 淇敼鎴愬姛",
+ created: "娣诲姞鎴愬姛",
+ deleted: "鍒犻櫎鎴愬姛 |||| %{smart_count} 椤� 鍒犻櫎鎴愬姛",
+ bad_item: "Incorrect element",
+ item_doesnt_exist: "Element does not exist",
+ http_error: "Server communication error",
+ data_provider_error: "dataProvider error. Check the console for details.",
+ i18n_error: "Cannot load the translations for the specified language",
+ canceled: "Action cancelled",
+ logged_out: "Your session has ended, please reconnect.",
+ not_authorized: "You're not authorized to access this resource.",
+ application_update_available: "A new version is available.",
+ },
+ validation: {
+ required: "蹇呭~椤�",
+ minLength: "Must be %{min} characters at least",
+ maxLength: "Must be %{max} characters or less",
+ minValue: "Must be at least %{min}",
+ maxValue: "Must be %{max} or less",
+ number: "Must be a number",
+ email: "Must be a valid email",
+ oneOf: "Must be one of: %{options}",
+ regex: "Must match a specific format (regexp): %{pattern}",
+ unique: "Must be unique",
+ },
+ saved_queries: {
+ label: "淇濆瓨杩囨护",
+ query_name: "Query name",
+ new_label: "淇濆瓨杩囨护鏉′欢...",
+ new_dialog_title: "Save current query as",
+ remove_label: "绉婚櫎杩囨护鏉′欢",
+ remove_label_with_name: 'Remove query "%{name}"',
+ remove_dialog_title: "绉婚櫎杩囨护鏉′欢?",
+ remove_message: "鎮ㄧ‘瀹氳绉婚櫎宸蹭繚瀛樿繃婊ゆ潯浠跺悧锛�",
+ help: "Filter the list and save this query for later",
+ },
+ configurable: {
+ customize: "Customize",
+ configureMode: "Configure this page",
+ inspector: {
+ title: "Inspector",
+ content: "Hover the application UI elements to configure them",
+ reset: "Reset Settings",
+ hideAll: "Hide All",
+ showAll: "Show All",
+ },
+ Datagrid: {
+ title: "Datagrid",
+ unlabeled: "Unlabeled column #%{column}",
+ },
+ SimpleForm: {
+ title: "Form",
+ unlabeled: "Unlabeled input #%{input}",
+ },
+ SimpleList: {
+ title: "List",
+ primaryText: "Primary text",
+ secondaryText: "Secondary text",
+ tertiaryText: "Tertiary text",
+ },
+ },
+ },
+};
+
+export default chineseMessages;
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index de2d385..d75ea04 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -1,544 +1,565 @@
-import englishMessages from 'ra-language-english';
+import englishMessages from "ra-language-english";
const customEnglishMessages = {
- ...englishMessages,
- hello: 'Hello World',
- common: {
- response: {
- success: "Success",
- fail: "Fail",
- dataError: "Submit data was error, Please check",
- },
- field: {
- id: 'ID',
- uuid: 'uuid',
- name: 'name',
- createTime: 'create time',
- createBy: 'create by',
- updateTime: 'update time',
- updateBy: 'update by',
- status: 'status',
- memoWrap: 'memo wrap',
- memo: 'memo',
- opt: 'operate',
- },
- list: {
- empty: {
- tip: 'No data to display',
- }
- },
- edit: {
- title: {
- main: 'Main',
- common: 'Common',
- changePwd: 'Change Password',
- },
- side: {
- title: 'More Info'
- }
- },
+ ...englishMessages,
+ hello: "Hello World",
+ common: {
+ response: {
+ success: "Success",
+ fail: "Fail",
+ dataError: "Submit data was error, Please check",
+ },
+ field: {
+ id: "ID",
+ uuid: "uuid",
+ name: "name",
+ createTime: "create time",
+ createBy: "create by",
+ updateTime: "update time",
+ updateBy: "update by",
+ status: "status",
+ memoWrap: "memo wrap",
+ memo: "memo",
+ opt: "operate",
+ },
+ list: {
+ empty: {
+ tip: "No data to display",
+ },
+ },
+ edit: {
+ title: {
+ main: "Main",
+ common: "Common",
+ changePwd: "Change Password",
+ },
+ side: {
+ title: "More Info",
+ },
+ },
+ enums: {
+ statusTrue: "Enable",
+ statusFalse: "Disable",
+ true: "Yes",
+ false: "No",
+ },
+ time: {
+ after: "Time After",
+ before: "Time Before",
+ },
+ action: {
+ reset: "Reset",
+ expand: "Expand",
+ expandAll: "Expand All",
+ collapse: "Collapse",
+ collapseAll: "Collapse All",
+ scope: "Assign",
+ import: {
+ title: "Import",
+ stop: "Stop import",
+ msg: "Here is a sample CSV file you can use as a template",
+ tips: "The import is running, please do not close this tab.",
+ err: "Failed to import this file, please make sure your provided a valid CSV file.",
+ download: "Download Import Template",
+ result:
+ "Contacts import complete. Imported %{success} success, with %{error} errors",
+ },
+ loadMore: "Load More Data",
+ complete: "Complete",
+ deprecate: "Deprecate",
+ resend: "RESEND",
+ selected: "selected",
+ },
+ msg: {
+ confirm: {
+ tip: "Tip",
+ desc: "Are you sure you want to proceed?",
+ },
+ placeholder: "Please enter your search content",
+ },
+ },
+ filters: {
+ lastCreated: "Last created",
+ today: "Today",
+ thisWeek: "This week",
+ lastWeek: "Last week",
+ thisMonth: "This month",
+ lastMonth: "Last month",
+ earlier: "Earlier...",
+ },
+ validate: {
+ pwdMisMatch: "The password confirmation is not the same as the password.",
+ },
+ settings: {
+ base: "Base",
+ security: "Security",
+ },
+ create: {
+ title: "Create",
+ empty: {
+ title: "Data Empty",
+ desc: "Please Create Data First",
+ button: "Create Data",
+ },
+ },
+ update: {
+ title: "Update",
+ },
+ menu: {
+ dashboard: "Dashboard",
+ basicInfo: "BasicInfo",
+ settings: "Settings",
+ basicInfo: "BasicInfo",
+ system: "System",
+ user: "User",
+ role: "Role",
+ menu: "Menu",
+ host: "Host",
+ department: "Department",
+ token: "Token",
+ operation: "Operation",
+ config: "Config",
+ tenant: "Tenant",
+ userLogin: "Token",
+ customer: "Customer",
+ shipper: "shipper",
+ matnr: "Matnr",
+ matnrGroup: "MatnrGroup",
+ warehouse: "Warehouse",
+ warehouseAreas: "WarehouseAreas",
+ loc: "Loc",
+ container: "Container",
+ contract: "Contract",
+ qlyInspect: "QlyInspect",
+ dictType: "DictType",
+ dictData: "DictData",
+ companys: "Companys",
+ serialRuleItem: "SerialRuleItem",
+ serialRule: "SerialRule",
+ asnOrder: "AsnOrder",
+ asnOrderItem: "AsnOrderItem",
+ purchase: "Purchase",
+ purchaseItem: "PurchaseItem",
+ whMat: "Warehouse Mat",
+ },
+ table: {
+ field: {
+ host: {},
+ config: {
+ uuid: "uuid",
+ name: "name",
+ flag: "flag",
+ val: "val",
+ content: "content",
+ type: "type",
+ },
+ tenant: {
+ name: "name",
+ flag: "flag",
+ root: "root",
+ },
+ role: {
+ name: "name",
+ code: "code",
+ },
+ userLogin: {
+ userId: "user",
+ token: "token",
+ ip: "ip",
+ type: "type",
+ system: "system",
+ },
+ dept: {
+ name: "name",
+ parentId: "parent id",
+ parentName: "higher",
+ path: "path",
+ pathName: "path name",
+ fullName: "full name",
+ brief: "brief",
+ code: "code",
+ type: "type",
+ leader: "leader",
+ count: "count",
+ sort: "sort",
+ },
+ menu: {
+ name: "name",
+ parentId: "parent id",
+ parentName: "higher",
+ path: "path",
+ pathName: "pathName",
+ route: "route",
+ component: "component",
+ brief: "brief",
+ code: "code",
+ type: "type",
+ authority: "authority",
+ icon: "icon",
+ sort: "sort",
+ meta: "meta",
enums: {
- statusTrue: 'Enable',
- statusFalse: 'Disable',
- true: 'Yes',
- false: 'No',
+ menu: "Menu",
+ button: "Button",
},
- time: {
- after: 'Time After',
- before: 'Time Before'
+ },
+ user: {
+ username: "username",
+ password: "password",
+ confirmPwd: "confirm password",
+ nickname: "nickname",
+ avatar: "avatar",
+ code: "code",
+ sex: "sex",
+ phone: "phone",
+ email: "email",
+ emailVerified: "email verified",
+ deptId: "department",
+ realName: "real name",
+ idCard: "idCard",
+ birthday: "birthday",
+ introduction: "introduction",
+ role: "role",
+ sexes: {
+ male: "Male",
+ female: "Female",
+ unknown: "Unknown",
},
- action: {
- reset: 'Reset',
- expand: 'Expand',
- expandAll: 'Expand All',
- collapse: 'Collapse',
- collapseAll: 'Collapse All',
- scope: 'Assign',
- import: {
- title: 'Import',
- stop: 'Stop import',
- msg: 'Here is a sample CSV file you can use as a template',
- tips: 'The import is running, please do not close this tab.',
- err: 'Failed to import this file, please make sure your provided a valid CSV file.',
- download: 'Download Import Template',
- result: 'Contacts import complete. Imported %{success} success, with %{error} errors',
- },
- loadMore: 'Load More Data',
- complete: 'Complete',
- deprecate: 'Deprecate',
- resend: 'RESEND',
- selected: 'selected',
- },
- msg: {
- confirm: {
- tip: 'Tip',
- desc: 'Are you sure you want to proceed?',
- },
- placeholder: 'Please enter your search content',
- },
+ },
+ operationRecord: {
+ namespace: "namespace",
+ url: "url",
+ appkey: "appkey",
+ timestamp: "timestamp",
+ clientIp: "client ip",
+ request: "request",
+ response: "response",
+ spendTime: "spend time",
+ err: "error",
+ result: "result",
+ userId: "user",
+ },
+ customer: {
+ uuid: "uuid",
+ name: "name",
+ },
+ shipper: {
+ uuid: "uuid",
+ name: "name",
+ },
+ matnr: {
+ name: "name",
+ code: "code",
+ shipperId: "shipperId",
+ groupId: "groupId",
+ rglarId: "RegularId",
+ erpCode: "erpCode",
+ spec: "spec",
+ model: "model",
+ weight: "weight",
+ color: "color",
+ size: "size",
+ describle: "describle",
+ nromNum: "nromNum",
+ unit: "unit",
+ purUnit: "purchaseUnit",
+ stockUnit: "stockUnit",
+ stockLevel: "stockLeval",
+ isLabelMange: "isLabelMange",
+ safeQty: "safetyQty",
+ minQty: "minQty",
+ maxQty: "maxQty",
+ stagn: "stagnate",
+ valid: "validity",
+ validWarn: "validityWarn",
+ flagCheck: "flagCheck",
+ },
+ matnrGroup: {
+ name: "name",
+ code: "code",
+ parentId: "parentId",
+ },
+ warehouse: {
+ name: "name",
+ code: "code",
+ factory: "factory",
+ address: "address",
+ longitude: "longitude",
+ latgitude: "latgitude",
+ length: "length",
+ width: "width",
+ height: "height",
+ },
+ warehouseAreas: {
+ uuid: "uuid",
+ name: "name",
+ code: "code",
+ shipperId: "shipperId",
+ supplierId: "supplierId",
+ flagMinus: "flagMinus",
+ flagLabelMange: "flagLabelMange",
+ flagMix: "flagMix",
+ },
+ loc: {
+ warehouseId: "Warehouse",
+ areaId: "Area",
+ code: "Code",
+ type: "Type",
+ name: "Name",
+ flagLogic: "FlagLogic",
+ fucAtrrs: "FucAtrrs",
+ barcode: "Barcode",
+ unit: "Unit",
+ size: "Size",
+ row: "Row",
+ col: "Col",
+ lev: "Lev",
+ channel: "Channel",
+ maxParts: "MaxParts",
+ maxPack: "MaxPack",
+ flagLabelMange: "FlagLabelMange",
+ locAttrs: "LocAttrs",
+ },
+ container: {
+ code: "Code",
+ name: "Name",
+ typeId: "TypeId",
+ used: "Used",
+ lenght: "Lenght",
+ width: "Width",
+ height: "Height",
+ rstLen: "RstLen",
+ rstWid: "RstWid",
+ rstWei: "RstWei",
+ rstHei: "RstHei",
+ panrentId: "PanrentId",
+ vaildTime: "VaildTime",
+ flagRycle: "FlagRycle",
+ flagLogic: "FlagLogic",
+ },
+ contract: {
+ code: "Code",
+ name: "Name",
+ projectName: "ProjectName",
+ },
+ qlyInspect: {
+ code: "Code",
+ name: "Name",
+ },
+ dictType: {
+ code: "Code",
+ name: "Name",
+ description: "Description",
+ },
+ dictData: {
+ dictTypeId: "dictTypeId",
+ dictTypeCode: "dictTypeCode",
+ value: "value",
+ label: "label",
+ sort: "sort",
+ color: "color",
+ },
+ companys: {
+ code: "Code",
+ name: "Name",
+ nameEn: "NameEn",
+ breifCode: "BreifCode",
+ type: "Type",
+ contact: "Contact",
+ tel: "Tel",
+ email: "Email",
+ pcode: "PCode",
+ province: "Province",
+ city: "City",
+ address: "Address",
+ },
+ serialRuleItem: {
+ ruleId: "ruleId",
+ wkType: "wkType",
+ feildValue: "feildValue",
+ len: "len",
+ lenStr: "lenStr",
+ sort: "sort",
+ },
+ serialRule: {
+ code: "code",
+ name: "name",
+ delimit: "delimit",
+ reset: "reset",
+ resetDep: "resetDep",
+ currValue: "currValue",
+ lastCode: "lastCode",
+ },
+ whMat: {
+ matnrCode: "matnrCode",
+ matnrName: "matnrName",
+ matnrGroupId: "matnrGroupId",
+ spec: "spec",
+ color: "color",
+ size: "size",
+ minWeight: "minWeight",
+ maxWeight: "maxWeight",
+ },
+ asnOrder: {
+ code: "Code",
+ poCode: "poCode",
+ poId: "poId",
+ type: "Type",
+ wkType: "wkType",
+ anfme: "anfme",
+ qty: "qty",
+ logisNo: "logisNo",
+ arrTime: "Arrived",
+ rleStatus: "Release",
+ ntyStatus: "Notify",
+ },
+ asnOrderItem: {
+ asnId: "asnId",
+ asnCode: "asnCode",
+ poDetlId: "poDetlId",
+ poDetlCode: "poDetlCode",
+ matnrId: "matnrId",
+ matnk: "matnk",
+ anfme: "anfme",
+ stockUnit: "stockUnit",
+ purQty: "purQty",
+ purUnit: "purUnit",
+ qty: "qty",
+ splrCode: "splrCode",
+ splrName: "splrName",
+ qrcode: "qrcode",
+ barcode: "barcode",
+ packName: "packName",
+ ntyStatus: "ntyStatus",
+ },
+ purchaseItem: {
+ purchaseId: "purchaseId",
+ erpItemId: "erpItemId",
+ matnrCode: "matnrCode",
+ matnrName: "matnrName",
+ unit: "unit",
+ anfme: "anfme",
+ qty: "qty",
+ nromQty: "nromQty",
+ asnQty: "asnQty",
+ printQty: "printQty",
+ splrName: "splrName",
+ splrCode: "splrCode",
+ splrBatch: "splrBatch",
+ },
+ purchase: {
+ code: "code",
+ erpId: "erpId",
+ type: "type",
+ wkType: "wkType",
+ source: "source",
+ preArr: "preArr",
+ anfme: "anfme",
+ qty: "qty",
+ workQty: "workQty",
+ channel: "channel",
+ erpCode: "erpCode",
+ project: "project",
+ startTime: "startTime",
+ endTime: "endTime",
+ },
+ purchaseItem: {
+ purchaseId: "purchaseId",
+ erpItemId: "erpItemId",
+ matnrCode: "matnrCode",
+ matnrName: "matnrName",
+ unit: "unit",
+ anfme: "anfme",
+ qty: "qty",
+ nromQty: "nromQty",
+ asnQty: "asnQty",
+ printQty: "printQty",
+ splrName: "splrName",
+ splrCode: "splrCode",
+ splrBatch: "splrBatch",
+ },
},
- filters: {
- lastCreated: 'Last created',
- today: 'Today',
- thisWeek: 'This week',
- lastWeek: 'Last week',
- thisMonth: 'This month',
- lastMonth: 'Last month',
- earlier: 'Earlier...',
+ },
+ page: {
+ welcome: {
+ index: " Welcome to the RSF Management System.",
+ tech: " Technology stack: Java 17, SpringBoot2.5.3, Mybatis-plus_3.4.1, Spring Security, Druid 1.2.6, Redis, Mysql5.7, Node18, ReactJs, Material UI5.16, Axios, React-Admin5.1",
},
- validate: {
- pwdMisMatch: 'The password confirmation is not the same as the password.'
+ login: {
+ title: "Welcome",
+ footer: "Footer Goes Here",
+ tenant: "Company",
+ email: "Email Address",
+ username: "Username",
+ password: "Password",
+ confirmPwd: "Confirm Password",
+ code: "Verification Code",
+ tab: {
+ login: "SIGN IN",
+ register: "SIGN UP",
+ },
+ button: {
+ login: "SIGN IN",
+ register: "SIGN UP",
+ code: "Send Code",
+ },
},
settings: {
- base: 'Base',
- security: 'Security',
+ resetPwd: {
+ currPwd: "Current Password",
+ newPwd: "New Password",
+ confirmNewPwd: "Confirm Password",
+ resetBtn: "Reset",
+ tip: {
+ usernameLimit:
+ "Only 3-20 English letters or numbers are allowed. No special characters.",
+ pwdInputLimit:
+ "New Password must be 6-13 characters long and include both letters and numbers.",
+ pwdNotSameAsOld:
+ "New Password cannot be the same as the Current Password.",
+ pwdNotMatch: "New Password and Confirm Password do not match.",
+ },
+ },
},
- create: {
- title: 'Create',
- empty: {
- title: 'Data Empty',
- desc: 'Please Create Data First',
- button: 'Create Data',
+ tenant: {
+ create: {
+ title: {
+ basic: "Basic Information",
+ root: "Add Administrator",
+ confirm: "Confirm",
},
+ btn: {
+ next: "Next Step",
+ back: "Back Step",
+ },
+ tip: {
+ onlyEn: "Only 3-20 English letters are allowed.",
+ },
+ },
},
- update: {
- title: 'Update'
+ matnr: {
+ title: {
+ basic: "basic info",
+ control: "control",
+ batchRole: "batch role",
+ },
},
- menu: {
- dashboard: 'Dashboard',
- basicInfo: 'BasicInfo',
- settings: 'Settings',
- basicInfo: 'BasicInfo',
- system: 'System',
- user: 'User',
- role: 'Role',
- menu: 'Menu',
- host: 'Host',
- department: 'Department',
- token: 'Token',
- operation: 'Operation',
- config: 'Config',
- tenant: 'Tenant',
- userLogin: 'Token',
- customer: 'Customer',
- shipper: 'shipper',
- matnr: 'Matnr',
- matnrGroup: 'MatnrGroup',
- warehouse: 'Warehouse',
- warehouseAreas: 'WarehouseAreas',
- loc: 'Loc',
- container: 'Container',
- contract: 'Contract',
- qlyInspect: 'QlyInspect',
- dictType: 'DictType',
- dictData: 'DictData',
- companys: 'Companys',
- serialRuleItem: 'SerialRuleItem',
- serialRule: 'SerialRule',
- asnOrder: 'AsnOrder',
- asnOrderItem: 'AsnOrderItem',
- purchase: 'Purchase',
- purchaseItem: 'PurchaseItem',
- whMat: 'Warehouse Mat',
+ whMat: {
+ title: {
+ add: "add",
+ },
},
- table: {
- field: {
- host: {
-
- },
- config: {
- uuid: "uuid",
- name: "name",
- flag: "flag",
- val: "val",
- content: "content",
- type: "type",
- },
- tenant: {
- name: "name",
- flag: "flag",
- root: "root",
- },
- role: {
- name: "name",
- code: "code",
- },
- userLogin: {
- userId: "user",
- token: "token",
- ip: "ip",
- type: "type",
- system: "system",
- },
- dept: {
- name: "name",
- parentId: "parent id",
- parentName: "higher",
- path: "path",
- pathName: "path name",
- fullName: "full name",
- brief: "brief",
- code: "code",
- type: "type",
- leader: "leader",
- count: "count",
- sort: "sort",
- },
- menu: {
- name: "name",
- parentId: "parent id",
- parentName: "higher",
- path: "path",
- pathName: "pathName",
- route: "route",
- component: "component",
- brief: "brief",
- code: "code",
- type: "type",
- authority: "authority",
- icon: "icon",
- sort: "sort",
- meta: "meta",
- enums: {
- menu: 'Menu',
- button: 'Button',
- }
- },
- user: {
- username: "username",
- password: "password",
- confirmPwd: "confirm password",
- nickname: "nickname",
- avatar: "avatar",
- code: "code",
- sex: "sex",
- phone: "phone",
- email: "email",
- emailVerified: "email verified",
- deptId: "department",
- realName: "real name",
- idCard: "idCard",
- birthday: "birthday",
- introduction: "introduction",
- role: "role",
- sexes: {
- male: 'Male',
- female: 'Female',
- unknown: 'Unknown',
- }
- },
- operationRecord: {
- namespace: "namespace",
- url: "url",
- appkey: "appkey",
- timestamp: "timestamp",
- clientIp: "client ip",
- request: "request",
- response: "response",
- spendTime: "spend time",
- err: "error",
- result: "result",
- userId: "user",
- },
- customer: {
- uuid: "uuid",
- name: "name",
- },
- shipper: {
- uuid: "uuid",
- name: "name",
- },
- matnr: {
- name: "name",
- code: "code",
- shipperId: "shipperId",
- groupId: "groupId",
- rglarId: "RegularId",
- platCode: "platCode",
- spec: "spec",
- model: "model",
- weight: "weight",
- color: "color",
- size: "size",
- describle: "describle",
- nromNum: "nromNum",
- unit: "unit",
- purUnit: "purchaseUnit",
- stockUnit: "stockUnit",
- stockLevel: "stockLeval",
- isLabelMange: "isLabelMange",
- safeQty: "safetyQty",
- minQty: "minQty",
- maxQty: "maxQty",
- stagn: "stagnate",
- valid: "validity",
- validWarn: "validityWarn",
- flagCheck: "flagCheck",
- },
- matnrGroup: {
- name: "name",
- code: "code",
- parentId: "parentId",
- },
- warehouse: {
- name: "name",
- code: "code",
- factory: "factory",
- address: "address",
- longitude: "longitude",
- latgitude: "latgitude",
- length: "length",
- width: "width",
- height: "height",
- },
- warehouseAreas: {
- uuid: "uuid",
- name: "name",
- code: "code",
- shipperId: "shipperId",
- supplierId: "supplierId",
- flagMinus: "flagMinus",
- flagLabelMange: "flagLabelMange",
- flagMix: "flagMix",
- },
- loc: {
- warehouseId: "Warehouse",
- areaId: "Area",
- code: "Code",
- type: "Type",
- name: "Name",
- flagLogic: "FlagLogic",
- fucAtrrs: "FucAtrrs",
- barcode: "Barcode",
- unit: "Unit",
- size: "Size",
- row: "Row",
- col: "Col",
- lev: "Lev",
- channel: "Channel",
- maxParts: "MaxParts",
- maxPack: "MaxPack",
- flagLabelMange: "FlagLabelMange",
- locAttrs: "LocAttrs",
- },
- container: {
- code: "Code",
- name: "Name",
- typeId: "TypeId",
- used: "Used",
- lenght: "Lenght",
- width: "Width",
- height: "Height",
- rstLen: "RstLen",
- rstWid: "RstWid",
- rstWei: "RstWei",
- rstHei: "RstHei",
- panrentId: "PanrentId",
- vaildTime: "VaildTime",
- flagRycle: "FlagRycle",
- flagLogic: "FlagLogic",
- },
- contract: {
- code: "Code",
- name: "Name",
- projectName: "ProjectName",
- },
- qlyInspect: {
- code: "Code",
- name: "Name",
- },
- dictType: {
- code: "Code",
- name: "Name",
- description: "Description",
- },
- dictData: {
- dictTypeId: "dictTypeId",
- dictTypeCode: "dictTypeCode",
- value: "value",
- label: "label",
- sort: "sort",
- color: "color",
- },
- companys: {
- code: "Code",
- name: "Name",
- nameEn: "NameEn",
- breifCode: "BreifCode",
- type: "Type",
- contact: "Contact",
- tel: "Tel",
- email: "Email",
- pcode: "PCode",
- province: "Province",
- city: "City",
- address: "Address",
- },
- serialRuleItem: {
- ruleId: "ruleId",
- wkType: "wkType",
- feildValue: "feildValue",
- len: "len",
- lenStr: "lenStr",
- sort: "sort",
- },
- serialRule: {
- code: "code",
- name: "name",
- delimit: "delimit",
- reset: "reset",
- resetDep: "resetDep",
- currValue: "currValue",
- lastCode: "lastCode",
- },
- whMat: {
- matnrCode: "matnrCode",
- matnrName: "matnrName",
- matnrGroupId: "matnrGroupId",
- spec: "spec",
- color: "color",
- size: "size",
- minWeight: "minWeight",
- maxWeight: "maxWeight",
- },
- asnOrder: {
- code: "Code",
- poCode: "poCode",
- poId: "poId",
- type: "Type",
- wkType: "wkType",
- anfme: "anfme",
- qty: "qty",
- logisNo: "logisNo",
- arrTime: "Arrived",
- rleStatus: "Release",
- ntyStatus: "Notify",
- },
- asnOrderItem: {
- asnId: "asnId",
- asnCode: "asnCode",
- poDetlId: "poDetlId",
- poDetlCode: "poDetlCode",
- matnrId: "matnrId",
- matnk: "matnk",
- anfme: "anfme",
- stockUnit: "stockUnit",
- purQty: "purQty",
- purUnit: "purUnit",
- qty: "qty",
- splrCode: "splrCode",
- splrName: "splrName",
- qrcode: "qrcode",
- barcode: "barcode",
- packName: "packName",
- ntyStatus: "ntyStatus",
- },
- purchase: {
- code: "code",
- platId: "PlatId",
- type: "type",
- wkType: "wkType",
- source: "source",
- preArr: "preArr",
- anfme: "anfme",
- qty: "qty",
- workQty: "workQty",
- channel: "channel",
- platCode: "platCode",
- project: "project",
- startTime: "startTime",
- endTime: "endTime",
- },
- purchaseItem: {
- purchaseId: "purchaseId",
- platItemId: "erpItemId",
- matnrCode: "matnrCode",
- matnrName: "matnrName",
- unit: "unit",
- anfme: "anfme",
- qty: "qty",
- nromQty: "nromQty",
- asnQty: "asnQty",
- printQty: "printQty",
- splrName: "splrName",
- splrCode: "splrCode",
- splrBatch: "splrBatch",
- },
- }
+ },
+ form: {
+ matnr: {
+ shipper: "shipper is required",
+ groupId: "groupId is required",
},
- page: {
- welcome: {
- index: ' Welcome to the RSF Management System.',
- tech: ' Technology stack: Java 17, SpringBoot2.5.3, Mybatis-plus_3.4.1, Spring Security, Druid 1.2.6, Redis, Mysql5.7, Node18, ReactJs, Material UI5.16, Axios, React-Admin5.1'
- },
- login: {
- title: 'Welcome',
- footer: 'Footer Goes Here',
- tenant: 'Company',
- email: 'Email Address',
- username: 'Username',
- password: 'Password',
- confirmPwd: 'Confirm Password',
- code: 'Verification Code',
- tab: {
- login: 'SIGN IN',
- register: 'SIGN UP',
- },
- button: {
- login: 'SIGN IN',
- register: 'SIGN UP',
- code: 'Send Code',
- },
- },
- settings: {
- resetPwd: {
- currPwd: 'Current Password',
- newPwd: 'New Password',
- confirmNewPwd: 'Confirm Password',
- resetBtn: 'Reset',
- tip: {
- usernameLimit: 'Only 3-20 English letters or numbers are allowed. No special characters.',
- pwdInputLimit: "New Password must be 6-13 characters long and include both letters and numbers.",
- pwdNotSameAsOld: "New Password cannot be the same as the Current Password.",
- pwdNotMatch: "New Password and Confirm Password do not match.",
- }
- }
- },
- tenant: {
- create: {
- title: {
- basic: 'Basic Information',
- root: 'Add Administrator',
- confirm: 'Confirm',
- },
- btn: {
- next: 'Next Step',
- back: 'Back Step',
- },
- tip: {
- onlyEn: 'Only 3-20 English letters are allowed.'
- },
- },
- },
- matnr: {
- title: {
- basic: 'basic info',
- control: 'control',
- batchRole: 'batch role',
- }
- },
- whMat: {
- title: {
- add: 'add',
- }
- },
- },
- form: {
- matnr: {
- shipper: 'shipper is required',
- groupId: 'groupId is required',
- }
- }
+ },
+ toolbar: {
+ inspection: "Inspection",
+ creatcode: "creatcode",
+ },
};
export default customEnglishMessages;
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 0b1ed79..80056a6 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1,546 +1,548 @@
import chineseMessages from "./core/chineseMessages";
const customChineseMessages = {
- ...chineseMessages,
- hello: '浣犲ソ涓栫晫',
- common: {
- response: {
- success: "鎿嶄綔鎴愬姛",
- fail: "鏈嶅姟鍣ㄩ敊璇�",
- dataError: "鏁版嵁閿欒锛岃浠旂粏妫�鏌�",
- },
- field: {
- id: 'ID',
- uuid: '缂栧彿',
- name: '鍚嶇О',
- createTime: '娣诲姞鏃堕棿',
- createBy: '娣诲姞浜哄憳',
- updateTime: '淇敼鏃堕棿',
- updateBy: '淇敼浜哄憳',
- status: '鐘舵��',
- memoWrap: '鏄剧ず澶囨敞',
- memo: '澶囨敞',
- opt: '鎿嶄綔',
- },
- list: {
- empty: {
- tip: '娌℃湁鍙樉绀烘暟鎹�',
- }
- },
- edit: {
- title: {
- main: '涓昏',
- common: '閫氱敤',
- changePwd: '閲嶇疆瀵嗙爜',
- },
- side: {
- title: '鏇村'
- }
- },
+ ...chineseMessages,
+ hello: "浣犲ソ涓栫晫",
+ common: {
+ response: {
+ success: "鎿嶄綔鎴愬姛",
+ fail: "鏈嶅姟鍣ㄩ敊璇�",
+ dataError: "鏁版嵁閿欒锛岃浠旂粏妫�鏌�",
+ },
+ field: {
+ id: "ID",
+ uuid: "缂栧彿",
+ name: "鍚嶇О",
+ createTime: "娣诲姞鏃堕棿",
+ createBy: "娣诲姞浜哄憳",
+ updateTime: "淇敼鏃堕棿",
+ updateBy: "淇敼浜哄憳",
+ status: "鐘舵��",
+ memoWrap: "鏄剧ず澶囨敞",
+ memo: "澶囨敞",
+ opt: "鎿嶄綔",
+ },
+ list: {
+ empty: {
+ tip: "娌℃湁鍙樉绀烘暟鎹�",
+ },
+ },
+ edit: {
+ title: {
+ main: "涓昏",
+ common: "閫氱敤",
+ changePwd: "閲嶇疆瀵嗙爜",
+ },
+ side: {
+ title: "鏇村",
+ },
+ },
+ enums: {
+ statusTrue: "姝e父",
+ statusFalse: "绂佺敤",
+ true: "鏄�",
+ false: "鍚�",
+ },
+ time: {
+ after: "寮�濮嬫椂闂�",
+ before: "缁撴潫鏃堕棿",
+ },
+ action: {
+ reset: "閲嶇疆",
+ expand: "灞曞紑",
+ expandAll: "鍏ㄩ儴灞曞紑",
+ collapse: "鎶樺彔",
+ collapseAll: "鍏ㄩ儴鎶樺彔",
+ scope: "鏉冮檺",
+ import: {
+ title: "瀵煎叆",
+ stop: "鍋滄瀵煎叆",
+ msg: "杩欐槸涓�涓彲浠ョ敤浣滄ā鏉跨殑绀轰緥 CSV 鏂囦欢",
+ tips: "姝e湪瀵煎叆涓紝璇蜂笉瑕佸叧闂绐楀彛",
+ err: "鏃犳硶瀵煎叆姝ゆ枃浠讹紝璇风‘淇濇偍鎻愪緵浜嗘湁鏁堢殑 CSV 鏂囦欢",
+ download: "涓嬭浇瀵煎叆妯℃澘",
+ result: "瀵煎叆瀹屾垚銆傚凡瀵煎叆 %{success} 鎴愬姛, 鍜� %{error} 澶辫触",
+ },
+ loadMore: "鍔犺浇鏇村",
+ complete: "瀹屾垚",
+ deprecate: "搴熷純",
+ resend: "閲嶅彂",
+ selected: "椤归�変腑",
+ },
+ msg: {
+ confirm: {
+ tip: "鎻愮ず",
+ desc: "鎮ㄧ‘瀹氳鎵ц姝ゆ搷浣滃悧锛�",
+ },
+ placeholder: "璇疯緭鍏ユ悳绱㈠唴瀹�",
+ },
+ },
+ filters: {
+ lastCreated: "鏈�杩戝垱寤�",
+ today: "浠婂ぉ",
+ thisWeek: "鏈懆",
+ lastWeek: "涓婂懆",
+ thisMonth: "鏈湀",
+ lastMonth: "涓婃湀",
+ earlier: "鏇存棭...",
+ },
+ validate: {
+ pwdMisMatch: "瀵嗙爜涓嶄竴鑷�",
+ },
+ settings: {
+ base: "鍩烘湰璁剧疆",
+ security: "瀹夊叏璁剧疆",
+ },
+ create: {
+ title: "娣诲姞",
+ empty: {
+ title: "鏆傛棤鏁版嵁",
+ desc: "璇峰厛娣诲姞鏁版嵁",
+ button: "娣诲姞鏁版嵁",
+ },
+ },
+ update: {
+ title: "淇敼",
+ },
+ menu: {
+ dashboard: "鎺у埗鍙�",
+ settings: "涓汉璁剧疆",
+ basicInfo: "鍩虹淇℃伅",
+ system: "绯荤粺璁剧疆",
+ user: "鐢ㄦ埛绠$悊",
+ role: "瑙掕壊绠$悊",
+ menu: "鑿滃崟绠$悊",
+ host: "鏈烘瀯绠$悊",
+ department: "閮ㄩ棬绠$悊",
+ token: "鐧诲綍鏃ュ織",
+ operation: "鎿嶄綔鏃ュ織",
+ config: "閰嶇疆鍙傛暟",
+ tenant: "绉熸埛绠$悊",
+ userLogin: "鐧诲綍鏃ュ織",
+ customer: "瀹㈡埛琛�",
+ shipper: "璐т富淇℃伅",
+ matnr: "鐗╂枡琛�",
+ matnrGroup: "鐗╂枡鍒嗙粍",
+ warehouse: "浠撳簱淇℃伅",
+ warehouseAreas: "浠撳簱搴撳尯",
+ loc: "鍩虹搴撲綅",
+ container: "瀹瑰櫒绠$悊",
+ contract: "鍚堝悓淇℃伅",
+ qlyInspect: "璐ㄦ淇℃伅",
+ dictType: "鏁版嵁瀛楀吀",
+ dictData: "瀛楀吀鏁版嵁闆�",
+ companys: "寰�鏉ヤ紒涓�",
+ serialRuleItem: "缂栫爜瑙勫垯瀛愯〃",
+ serialRule: "缂栫爜瑙勫垯",
+ asnOrder: "鏀惰揣閫氱煡鍗�",
+ asnOrderItem: "鏀惰揣鏄庣粏",
+ purchase: "PO鍗�",
+ purchaseItem: "PO鍗曟槑缁�",
+ whMat: "搴撳尯鐗╂枡鍏崇郴",
+ },
+ table: {
+ field: {
+ host: {},
+ config: {
+ uuid: "缂栧彿",
+ name: "閰嶇疆鍚�",
+ flag: "鏍囪瘑 (EN) ",
+ val: "閰嶇疆鍊�",
+ content: "閰嶇疆鍐呭",
+ type: "鏁版嵁绫诲瀷",
+ },
+ tenant: {
+ name: "绉熸埛鍚�",
+ flag: "浠g爜",
+ root: "绠$悊鍛�",
+ },
+ role: {
+ name: "瑙掕壊鍚嶇О",
+ code: "瑙掕壊鏍囪瘑",
+ },
+ userLogin: {
+ userId: "鐢ㄦ埛",
+ token: "token",
+ ip: "ip",
+ type: "绫诲瀷",
+ system: "绯荤粺",
+ },
+ dept: {
+ name: "閮ㄩ棬鍚嶇О",
+ parentId: "涓婄骇閮ㄩ棬ID",
+ parentName: "涓婄骇閮ㄩ棬",
+ path: "璺緞",
+ pathName: "璺緞鍚�",
+ fullName: "鍏ㄧО",
+ brief: "绠�杩�",
+ code: "鏍囪瘑",
+ type: "绫诲瀷",
+ leader: "璐熻矗浜�",
+ count: "鏁伴噺",
+ sort: "鎺掑簭",
+ },
+ menu: {
+ name: "鑿滃崟鍚嶇О",
+ parentId: "涓婄骇鑿滃崟ID",
+ parentName: "涓婄骇鑿滃崟",
+ path: "璺緞",
+ pathName: "璺緞鍚�",
+ route: "璺敱鍦板潃",
+ component: "缁勪欢",
+ brief: "绠�杩�",
+ code: "鏍囪瘑",
+ type: "绫诲瀷",
+ authority: "閴存潈",
+ icon: "鍥炬爣",
+ sort: "鎺掑簭",
+ meta: "鍏�",
enums: {
- statusTrue: '姝e父',
- statusFalse: '绂佺敤',
- true: '鏄�',
- false: '鍚�',
+ menu: "鑿滃崟",
+ button: "鎸夐挳",
},
- time: {
- after: '寮�濮嬫椂闂�',
- before: '缁撴潫鏃堕棿'
+ },
+ user: {
+ username: "璐﹀彿",
+ password: "瀵嗙爜",
+ confirmPwd: "纭瀵嗙爜",
+ nickname: "鏄电О",
+ avatar: "澶村儚",
+ code: "浠e彿",
+ sex: "鎬у埆",
+ phone: "鑱旂郴鏂瑰紡",
+ email: "閭",
+ emailVerified: "閭楠岃瘉",
+ deptId: "閮ㄩ棬",
+ realName: "鐪熷疄濮撳悕",
+ idCard: "韬唤璇�",
+ birthday: "鐢熸棩",
+ introduction: "绠�浠�",
+ role: "瑙掕壊",
+ sexes: {
+ male: "鐢锋��",
+ female: "濂虫��",
+ unknown: "鏈煡",
},
- action: {
- reset: '閲嶇疆',
- expand: '灞曞紑',
- expandAll: '鍏ㄩ儴灞曞紑',
- collapse: '鎶樺彔',
- collapseAll: '鍏ㄩ儴鎶樺彔',
- scope: '鏉冮檺',
- import: {
- title: '瀵煎叆',
- stop: '鍋滄瀵煎叆',
- msg: '杩欐槸涓�涓彲浠ョ敤浣滄ā鏉跨殑绀轰緥 CSV 鏂囦欢',
- tips: '姝e湪瀵煎叆涓紝璇蜂笉瑕佸叧闂绐楀彛',
- err: '鏃犳硶瀵煎叆姝ゆ枃浠讹紝璇风‘淇濇偍鎻愪緵浜嗘湁鏁堢殑 CSV 鏂囦欢',
- download: '涓嬭浇瀵煎叆妯℃澘',
- result: '瀵煎叆瀹屾垚銆傚凡瀵煎叆 %{success} 鎴愬姛, 鍜� %{error} 澶辫触',
- },
- loadMore: '鍔犺浇鏇村',
- complete: '瀹屾垚',
- deprecate: '搴熷純',
- resend: '閲嶅彂',
- selected: '椤归�変腑',
- },
- msg: {
- confirm: {
- tip: '鎻愮ず',
- desc: '鎮ㄧ‘瀹氳鎵ц姝ゆ搷浣滃悧锛�',
- },
- placeholder: '璇疯緭鍏ユ悳绱㈠唴瀹�',
- },
+ },
+ operationRecord: {
+ namespace: "鍛藉悕绌洪棿",
+ url: "url",
+ appkey: "瀵嗛挜",
+ timestamp: "鏃堕棿鎴�",
+ clientIp: "瀹㈡埛绔疘P",
+ request: "璇锋眰鍐呭",
+ response: "鍝嶅簲鍐呭",
+ spendTime: "鑺辫垂鏃堕棿",
+ err: "閿欒淇℃伅",
+ result: "result",
+ userId: "鎿嶄綔鐢ㄦ埛",
+ },
+ customer: {
+ uuid: "缂栧彿",
+ name: "瀹㈡埛鍚�",
+ },
+ shipper: {
+ uuid: "缂栫爜",
+ name: "鍚嶇О",
+ },
+ matnr: {
+ name: "鐗╂枡鍚嶇О",
+ code: "鐗╂枡缂栫爜",
+ shipperId: "璐т富鏍囪瘑",
+ groupId: "鍒嗙粍鏍囪瘑",
+ rglarId: "鎵规瑙勫垯鏍囪瘑",
+ erpCode: "ERP缂栫爜",
+ spec: "瑙勬牸",
+ model: "鍨嬪彿",
+ weight: "閲嶉噺",
+ color: "棰滆壊",
+ size: "灏哄",
+ describle: "鎻忚堪",
+ nromNum: "鏍囧寘鏁伴噺",
+ unit: "鍗曚綅",
+ purUnit: "閲囪喘鍗曚綅",
+ stockUnit: "搴撳瓨鍗曚綅",
+ stockLevel: "ABC鍒嗙被",
+ isLabelMange: "鏍囩绠$悊",
+ safeQty: "瀹夊叏鍊�",
+ minQty: "鏈�灏忓��",
+ maxQty: "鏈�澶у��",
+ stagn: "鍋滄粸棰勮鍊�",
+ valid: "淇濊川鏈�",
+ validWarn: "鏁堟湡棰勮",
+ flagCheck: "鍏嶆",
+ },
+ matnrGroup: {
+ name: "鍚嶇О",
+ code: "缂栫爜",
+ parentId: "鐖剁被鏍囪瘑",
+ },
+ warehouse: {
+ name: "鍚嶇О",
+ code: "缂栫爜",
+ factory: "宸ュ巶",
+ address: "鍦板潃",
+ longitude: "缁忓害",
+ latgitude: "绾害",
+ length: "闀�",
+ width: "瀹�",
+ height: "楂�",
+ },
+ warehouseAreas: {
+ uuid: "鍞竴缂栫爜",
+ name: "鍚嶇О",
+ code: "缂栫爜",
+ shipperId: "璐т富",
+ supplierId: "渚涘簲鍟�",
+ flagMinus: "鍏佽璐熷簱瀛�",
+ flagLabelMange: "鏍囩绠$悊",
+ flagMix: "娣锋斁",
+ },
+ loc: {
+ warehouseId: "浠撳簱",
+ areaId: "搴撳尯",
+ code: "缂栫爜",
+ type: "绫诲瀷",
+ name: "鍚嶇О",
+ flagLogic: "铏氭嫙搴撲綅",
+ fucAtrrs: "鍔熻兘灞炴��",
+ barcode: "瀹瑰櫒鐮�",
+ unit: "鍗曚綅",
+ size: "闀�/瀹�/楂�",
+ row: "鎺�",
+ col: "鍒�",
+ lev: "灞�",
+ channel: "閫氶亾",
+ maxParts: "鏈�澶ч浂浠舵暟",
+ maxPack: "鏈�澶у寘瑁呮暟",
+ flagLabelMange: "鏍囩绠$悊",
+ locAttrs: "灞炴��",
+ },
+
+ container: {
+ code: "缂栫爜",
+ name: "鍚嶇О",
+ typeId: "绫诲瀷",
+ used: "浣跨敤娆℃暟",
+ lenght: "闀垮害",
+ width: "瀹�",
+ height: "楂�",
+ rstLen: "闄愰暱",
+ rstWid: "闄愬",
+ rstWei: "闄愰噸",
+ rstHei: "闄愰珮",
+ panrentId: "鐖剁骇",
+ vaildTime: "鏈夋晥鏈�",
+ flagRycle: "鍥炴敹",
+ flagLogic: "铏氭嫙瀹瑰櫒",
+ },
+ contract: {
+ code: "缂栫爜",
+ name: "鍚嶇О",
+ projectName: "椤圭洰鍚嶇О",
+ },
+ qlyInspect: {
+ code: "缂栫爜",
+ name: "鍚嶇О",
+ },
+ dictType: {
+ code: "瀛楀吀缂栫爜",
+ name: "瀛楀吀鍚嶇О",
+ description: "鍐呭鎻忚堪",
+ },
+ dictData: {
+ dictTypeId: "瀛楀吀鏍囪瘑",
+ dictTypeCode: "瀛楀吀缂栫爜",
+ value: "鍊�",
+ label: "鍒悕",
+ sort: "鎺掑簭",
+ color: "棰滆壊",
+ },
+ companys: {
+ code: "浼佷笟缂栫爜",
+ name: "鍚嶇О",
+ nameEn: "鑻辨枃鍒悕",
+ breifCode: "鍔╄鐮�",
+ type: "绫诲瀷",
+ contact: "鑱旂郴浜�",
+ tel: "鑱旂郴鐢佃瘽",
+ email: "鐢靛瓙閭欢",
+ pcode: "閭紪",
+ province: "鐪佷唤",
+ city: "鍩庡競",
+ address: "鍦板潃",
+ },
+ serialRuleItem: {
+ ruleId: "瑙勫垯鏍囪瘑",
+ wkType: "瑙勫垯绫诲瀷",
+ feildValue: "瑙勫垯鍙傛暟",
+ len: "鎴彇闀垮害",
+ lenStr: "鎴彇璧峰浣嶇疆",
+ sort: "鎺掑簭",
+ },
+ serialRule: {
+ code: "瑙勫垯缂栫爜",
+ name: "瑙勫垯鍚嶇О",
+ delimit: "鍒嗛殧绗�",
+ reset: "閲嶇疆瑙勫垯",
+ resetDep: "閲嶇疆渚濊禆",
+ currValue: "褰撳墠娴佹按鍙�",
+ lastCode: "鏈�杩戠敓鎴愮紪鐮�",
+ },
+ whMat: {
+ matnrCode: "鐗╂枡缂栫爜",
+ matnrName: "鐗╂枡鍚嶇О",
+ matnrGroupId: "鐗╂枡鍒嗙粍",
+ spec: "瑙勬牸",
+ color: "棰滆壊",
+ size: "灏哄",
+ minWeight: "鏈�灏忛噸閲�",
+ maxWeight: "鏈�澶ч噸閲�",
+ },
+ asnOrder: {
+ code: "缂栫爜",
+ poCode: "PO缂栫爜",
+ poId: "PO鏍囪瘑",
+ type: "鍗曟嵁绫诲瀷",
+ wkType: "涓氬姟绫诲瀷",
+ anfme: "鏁伴噺",
+ qty: "宸插畬鎴愭暟閲�",
+ logisNo: "logisNo",
+ arrTime: "棰勮鍒拌揪鏃堕棿",
+ rleStatus: "閲婃斁鐘舵��",
+ ntyStatus: "璐ㄦ涓婃姤鐘舵��",
+ },
+ asnOrderItem: {
+ asnId: "涓诲崟鏍囪瘑",
+ asnCode: "涓诲崟缂栫爜",
+ poDetlId: "PO鍗曟爣璇�",
+ poDetlCode: "PO鍗曠紪鐮�",
+ matnrId: "鐗╂枡鏍囪瘑",
+ matnk: "鐗╂枡鍚嶇О",
+ anfme: "鏁伴噺",
+ stockUnit: "搴撳瓨鍗曚綅",
+ purQty: "閲囪喘鏁伴噺",
+ purUnit: "閲囪喘鍗曚綅",
+ qty: "宸插畬鎴愭暟閲�",
+ splrCode: "渚涘簲鍟嗙紪鐮�",
+ splrName: "渚涘簲鍟嗗悕绉�",
+ qrcode: "浜岀淮鐮�",
+ barcode: "鏉″舰鐮�",
+ packName: "鍖呰鍚嶇О",
+ ntyStatus: "鎶ユ鐘舵��",
+ },
+ purchase: {
+ code: "缂栫爜",
+ erpId: "erp鏍囪瘑",
+ type: "鍗曟嵁绫诲瀷",
+ wkType: "涓氬姟绫诲瀷",
+ source: "鏉ユ簮",
+ preArr: "棰勮鍒拌揪",
+ anfme: "鏁伴噺",
+ qty: "宸插畬鎴愭暟閲�",
+ workQty: "鎵ц涓暟閲�",
+ channel: "鏀惰揣閫氶亾",
+ erpCode: "Erp缂栫爜",
+ project: "椤圭洰鍚嶇О",
+ startTime: "寮�濮嬫椂闂�",
+ endTime: "缁撴潫鏃堕棿",
+ },
+ purchaseItem: {
+ purchaseId: "PO涓诲崟鏍囪瘑",
+ erpItemId: "erp鏄庣粏鏍囪瘑",
+ matnrCode: "鐗╂枡缂栫爜",
+ matnrName: "鐗╂枡鍚嶇О",
+ unit: "璁¢噺鍗曚綅",
+ anfme: "鏁伴噺",
+ qty: "宸插畬鎴�",
+ nromQty: "鏍囧寘鏁伴噺",
+ asnQty: "鍗曟嵁鏁伴噺",
+ printQty: "鎵撳嵃鏁伴噺",
+ splrName: "渚涘簲鍟嗗悕绉�",
+ splrCode: "渚涘簲鍟嗙紪鐮�",
+ splrBatch: "渚涘簲鍟嗘壒娆�",
+ },
},
- filters: {
- lastCreated: '鏈�杩戝垱寤�',
- today: '浠婂ぉ',
- thisWeek: '鏈懆',
- lastWeek: '涓婂懆',
- thisMonth: '鏈湀',
- lastMonth: '涓婃湀',
- earlier: '鏇存棭...',
+ },
+ page: {
+ welcome: {
+ index: " 娆㈣繋浣跨敤RSF绠$悊绯荤粺",
+ tech: " 鎶�鏈爤: Java17, SpringBoot2.5.3, Mybatis-plus_3.4.1, Spring Security, Druid 1.2.6, Redis, Mysql5.7, Node18, ReactJs, Material UI5.16, Axios, React-Admin5.1",
},
- validate: {
- pwdMisMatch: '瀵嗙爜涓嶄竴鑷�'
+ login: {
+ title: "娆㈣繋浣跨敤",
+ footer: "Footer Goes Here",
+ tenant: "鍏徃",
+ email: "閭鍦板潃",
+ username: "鐧诲綍璐﹀彿",
+ password: "瀵嗙爜",
+ confirmPwd: "纭瀵嗙爜",
+ code: "楠岃瘉鐮�",
+ tab: {
+ login: "鐧诲綍",
+ register: "娉ㄥ唽",
+ },
+ button: {
+ login: "鐧诲綍",
+ register: "娉ㄥ唽",
+ code: "鑾峰彇楠岃瘉鐮�",
+ },
},
settings: {
- base: '鍩烘湰璁剧疆',
- security: '瀹夊叏璁剧疆',
+ resetPwd: {
+ currPwd: "褰撳墠瀵嗙爜",
+ newPwd: "鏂板瘑鐮�",
+ confirmNewPwd: "纭鏂板瘑鐮�",
+ resetBtn: "閲嶇疆瀵嗙爜",
+ tip: {
+ usernameLimit: "浠呭厑璁歌緭鍏� 3-20 涓嫳鏂囧瓧姣嶆垨鏁板瓧锛屼笉鑳藉寘鍚壒娈婂瓧绗�",
+ pwdInputLimit: "瀵嗙爜蹇呴』涓�6-13浣�,涓斿繀椤诲寘鍚瓧姣嶅拰鏁板瓧",
+ pwdNotSameAsOld: "鏂板瘑鐮佷笉鑳戒笌褰撳墠瀵嗙爜鐩稿悓",
+ pwdNotMatch: "纭瀵嗙爜涓嶄竴鑷�",
+ },
+ },
},
- create: {
- title: '娣诲姞',
- empty: {
- title: '鏆傛棤鏁版嵁',
- desc: '璇峰厛娣诲姞鏁版嵁',
- button: '娣诲姞鏁版嵁'
+ tenant: {
+ create: {
+ title: {
+ basic: "鍩虹淇℃伅",
+ root: "娣诲姞绠$悊鍛�",
+ confirm: "纭",
},
+ btn: {
+ next: "涓嬩竴姝�",
+ back: "涓婁竴姝�",
+ },
+ tip: {
+ onlyEn: "浠呭厑璁歌緭鍏� 3-20 涓嫳鏂囧瓧姣�",
+ },
+ },
},
- update: {
- title: '淇敼'
+ matnr: {
+ title: {
+ basic: "鍩虹灞炴��",
+ control: "鎺у埗灞炴��",
+ batchRole: "鎵规瑙勫垯",
+ },
},
- menu: {
- dashboard: '鎺у埗鍙�',
- settings: '涓汉璁剧疆',
- basicInfo: '鍩虹淇℃伅',
- system: '绯荤粺璁剧疆',
- user: '鐢ㄦ埛绠$悊',
- role: '瑙掕壊绠$悊',
- menu: '鑿滃崟绠$悊',
- host: '鏈烘瀯绠$悊',
- department: '閮ㄩ棬绠$悊',
- token: '鐧诲綍鏃ュ織',
- operation: '鎿嶄綔鏃ュ織',
- config: '閰嶇疆鍙傛暟',
- tenant: '绉熸埛绠$悊',
- userLogin: '鐧诲綍鏃ュ織',
- customer: '瀹㈡埛琛�',
- shipper: '璐т富淇℃伅',
- matnr: '鐗╂枡琛�',
- matnrGroup: '鐗╂枡鍒嗙粍',
- warehouse: '浠撳簱淇℃伅',
- warehouseAreas: '浠撳簱搴撳尯',
- loc: '鍩虹搴撲綅',
- container: '瀹瑰櫒绠$悊',
- contract: '鍚堝悓淇℃伅',
- qlyInspect: '璐ㄦ淇℃伅',
- dictType: '鏁版嵁瀛楀吀',
- dictData: '瀛楀吀鏁版嵁闆�',
- companys: '寰�鏉ヤ紒涓�',
- serialRuleItem: '缂栫爜瑙勫垯瀛愯〃',
- serialRule: '缂栫爜瑙勫垯',
- asnOrder: '鏀惰揣閫氱煡鍗�',
- asnOrderItem: '鏀惰揣鏄庣粏',
- purchase: 'PO鍗�',
- purchaseItem: 'PO鍗曟槑缁�',
- whMat: '搴撳尯鐗╂枡鍏崇郴',
+ whMat: {
+ title: {
+ add: "娣诲姞",
+ },
},
- table: {
- field: {
- host: {
-
- },
- config: {
- uuid: "缂栧彿",
- name: "閰嶇疆鍚�",
- flag: "鏍囪瘑 (EN) ",
- val: "閰嶇疆鍊�",
- content: "閰嶇疆鍐呭",
- type: "鏁版嵁绫诲瀷",
- },
- tenant: {
- name: "绉熸埛鍚�",
- flag: "浠g爜",
- root: "绠$悊鍛�",
- },
- role: {
- name: "瑙掕壊鍚嶇О",
- code: "瑙掕壊鏍囪瘑",
- },
- userLogin: {
- userId: "鐢ㄦ埛",
- token: "token",
- ip: "ip",
- type: "绫诲瀷",
- system: "绯荤粺",
- },
- dept: {
- name: "閮ㄩ棬鍚嶇О",
- parentId: "涓婄骇閮ㄩ棬ID",
- parentName: "涓婄骇閮ㄩ棬",
- path: "璺緞",
- pathName: "璺緞鍚�",
- fullName: "鍏ㄧО",
- brief: "绠�杩�",
- code: "鏍囪瘑",
- type: "绫诲瀷",
- leader: "璐熻矗浜�",
- count: "鏁伴噺",
- sort: "鎺掑簭",
- },
- menu: {
- name: "鑿滃崟鍚嶇О",
- parentId: "涓婄骇鑿滃崟ID",
- parentName: "涓婄骇鑿滃崟",
- path: "璺緞",
- pathName: "璺緞鍚�",
- route: "璺敱鍦板潃",
- component: "缁勪欢",
- brief: "绠�杩�",
- code: "鏍囪瘑",
- type: "绫诲瀷",
- authority: "閴存潈",
- icon: "鍥炬爣",
- sort: "鎺掑簭",
- meta: "鍏�",
- enums: {
- menu: '鑿滃崟',
- button: '鎸夐挳',
- }
- },
- user: {
- username: "璐﹀彿",
- password: "瀵嗙爜",
- confirmPwd: "纭瀵嗙爜",
- nickname: "鏄电О",
- avatar: "澶村儚",
- code: "浠e彿",
- sex: "鎬у埆",
- phone: "鑱旂郴鏂瑰紡",
- email: "閭",
- emailVerified: "閭楠岃瘉",
- deptId: "閮ㄩ棬",
- realName: "鐪熷疄濮撳悕",
- idCard: "韬唤璇�",
- birthday: "鐢熸棩",
- introduction: "绠�浠�",
- role: "瑙掕壊",
- sexes: {
- male: '鐢锋��',
- female: '濂虫��',
- unknown: '鏈煡',
- }
- },
- operationRecord: {
- namespace: "鍛藉悕绌洪棿",
- url: "url",
- appkey: "瀵嗛挜",
- timestamp: "鏃堕棿鎴�",
- clientIp: "瀹㈡埛绔疘P",
- request: "璇锋眰鍐呭",
- response: "鍝嶅簲鍐呭",
- spendTime: "鑺辫垂鏃堕棿",
- err: "閿欒淇℃伅",
- result: "result",
- userId: "鎿嶄綔鐢ㄦ埛",
- },
- customer: {
- uuid: "缂栧彿",
- name: "瀹㈡埛鍚�",
- },
- shipper: {
- uuid: "缂栫爜",
- name: "鍚嶇О",
- },
- matnr: {
- name: "鐗╂枡鍚嶇О",
- code: "鐗╂枡缂栫爜",
- shipperId: "璐т富鏍囪瘑",
- groupId: "鍒嗙粍鏍囪瘑",
- rglarId: "鎵规瑙勫垯鏍囪瘑",
- platCode: "ERP缂栫爜",
- spec: "瑙勬牸",
- model: "鍨嬪彿",
- weight: "閲嶉噺",
- color: "棰滆壊",
- size: "灏哄",
- describle: "鎻忚堪",
- nromNum: "鏍囧寘鏁伴噺",
- unit: "鍗曚綅",
- purUnit: "閲囪喘鍗曚綅",
- stockUnit: "搴撳瓨鍗曚綅",
- stockLevel: "ABC鍒嗙被",
- isLabelMange: "鏍囩绠$悊",
- safeQty: "瀹夊叏鍊�",
- minQty: "鏈�灏忓��",
- maxQty: "鏈�澶у��",
- stagn: "鍋滄粸棰勮鍊�",
- valid: "淇濊川鏈�",
- validWarn: "鏁堟湡棰勮",
- flagCheck: "鍏嶆",
- },
- matnrGroup: {
- name: "鍚嶇О",
- code: "缂栫爜",
- parentId: "鐖剁被鏍囪瘑",
- },
- warehouse: {
- name: "鍚嶇О",
- code: "缂栫爜",
- factory: "宸ュ巶",
- address: "鍦板潃",
- longitude: "缁忓害",
- latgitude: "绾害",
- length: "闀�",
- width: "瀹�",
- height: "楂�",
- },
- warehouseAreas: {
- uuid: "鍞竴缂栫爜",
- name: "鍚嶇О",
- code: "缂栫爜",
- shipperId: "璐т富",
- supplierId: "渚涘簲鍟�",
- flagMinus: "鍏佽璐熷簱瀛�",
- flagLabelMange: "鏍囩绠$悊",
- flagMix: "娣锋斁",
- },
- loc: {
- warehouseId: "浠撳簱",
- areaId: "搴撳尯",
- code: "缂栫爜",
- type: "绫诲瀷",
- name: "鍚嶇О",
- flagLogic: "铏氭嫙搴撲綅",
- fucAtrrs: "鍔熻兘灞炴��",
- barcode: "瀹瑰櫒鐮�",
- unit: "鍗曚綅",
- size: "闀�/瀹�/楂�",
- row: "鎺�",
- col: "鍒�",
- lev: "灞�",
- channel: "閫氶亾",
- maxParts: "鏈�澶ч浂浠舵暟",
- maxPack: "鏈�澶у寘瑁呮暟",
- flagLabelMange: "鏍囩绠$悊",
- locAttrs: "灞炴��",
- },
-
- container: {
- code: "缂栫爜",
- name: "鍚嶇О",
- typeId: "绫诲瀷",
- used: "浣跨敤娆℃暟",
- lenght: "闀垮害",
- width: "瀹�",
- height: "楂�",
- rstLen: "闄愰暱",
- rstWid: "闄愬",
- rstWei: "闄愰噸",
- rstHei: "闄愰珮",
- panrentId: "鐖剁骇",
- vaildTime: "鏈夋晥鏈�",
- flagRycle: "鍥炴敹",
- flagLogic: "铏氭嫙瀹瑰櫒",
- },
- contract: {
- code: "缂栫爜",
- name: "鍚嶇О",
- projectName: "椤圭洰鍚嶇О",
- },
- qlyInspect: {
- code: "缂栫爜",
- name: "鍚嶇О",
- },
- dictType: {
- code: "瀛楀吀缂栫爜",
- name: "瀛楀吀鍚嶇О",
- description: "鍐呭鎻忚堪",
- },
- dictData: {
- dictTypeId: "瀛楀吀鏍囪瘑",
- dictTypeCode: "瀛楀吀缂栫爜",
- value: "鍊�",
- label: "鍒悕",
- sort: "鎺掑簭",
- color: "棰滆壊",
- },
- companys: {
- code: "浼佷笟缂栫爜",
- name: "鍚嶇О",
- nameEn: "鑻辨枃鍒悕",
- breifCode: "鍔╄鐮�",
- type: "绫诲瀷",
- contact: "鑱旂郴浜�",
- tel: "鑱旂郴鐢佃瘽",
- email: "鐢靛瓙閭欢",
- pcode: "閭紪",
- province: "鐪佷唤",
- city: "鍩庡競",
- address: "鍦板潃",
- },
- serialRuleItem: {
- ruleId: "瑙勫垯鏍囪瘑",
- wkType: "瑙勫垯绫诲瀷",
- feildValue: "瑙勫垯鍙傛暟",
- len: "鎴彇闀垮害",
- lenStr: "鎴彇璧峰浣嶇疆",
- sort: "鎺掑簭",
- },
- serialRule: {
- code: "瑙勫垯缂栫爜",
- name: "瑙勫垯鍚嶇О",
- delimit: "鍒嗛殧绗�",
- reset: "閲嶇疆瑙勫垯",
- resetDep: "閲嶇疆渚濊禆",
- currValue: "褰撳墠娴佹按鍙�",
- lastCode: "鏈�杩戠敓鎴愮紪鐮�",
- },
- whMat: {
- matnrCode: "鐗╂枡缂栫爜",
- matnrName: "鐗╂枡鍚嶇О",
- matnrGroupId: "鐗╂枡鍒嗙粍",
- spec: "瑙勬牸",
- color: "棰滆壊",
- size: "灏哄",
- minWeight: "鏈�灏忛噸閲�",
- maxWeight: "鏈�澶ч噸閲�",
- },
- asnOrder: {
- code: "缂栫爜",
- poCode: "PO缂栫爜",
- poId: "PO鏍囪瘑",
- type: "鍗曟嵁绫诲瀷",
- wkType: "涓氬姟绫诲瀷",
- anfme: "鏁伴噺",
- qty: "宸插畬鎴愭暟閲�",
- logisNo: "logisNo",
- arrTime: "棰勮鍒拌揪鏃堕棿",
- rleStatus: "閲婃斁鐘舵��",
- ntyStatus: "璐ㄦ涓婃姤鐘舵��",
- },
- asnOrderItem: {
- asnId: "涓诲崟鏍囪瘑",
- asnCode: "涓诲崟缂栫爜",
- poDetlId: "PO鍗曟爣璇�",
- poDetlCode: "PO鍗曠紪鐮�",
- matnrId: "鐗╂枡鏍囪瘑",
- matnk: "鐗╂枡鍚嶇О",
- anfme: "鏁伴噺",
- stockUnit: "搴撳瓨鍗曚綅",
- purQty: "閲囪喘鏁伴噺",
- purUnit: "閲囪喘鍗曚綅",
- qty: "宸插畬鎴愭暟閲�",
- splrCode: "渚涘簲鍟嗙紪鐮�",
- splrName: "渚涘簲鍟嗗悕绉�",
- qrcode: "浜岀淮鐮�",
- barcode: "鏉″舰鐮�",
- packName: "鍖呰鍚嶇О",
- ntyStatus: "鎶ユ鐘舵��",
- },
- purchase: {
- code: "缂栫爜",
- platId: "骞冲彴鏍囪瘑",
- type: "鍗曟嵁绫诲瀷",
- wkType: "涓氬姟绫诲瀷",
- source: "鏉ユ簮",
- preArr: "棰勮鍒拌揪",
- anfme: "鏁伴噺",
- qty: "宸插畬鎴愭暟閲�",
- workQty: "鎵ц涓暟閲�",
- channel: "鏀惰揣閫氶亾",
- platCode: "Erp缂栫爜",
- project: "椤圭洰鍚嶇О",
- startTime: "寮�濮嬫椂闂�",
- endTime: "缁撴潫鏃堕棿",
- },
- purchaseItem: {
- purchaseId: "PO涓诲崟鏍囪瘑",
- platItemId: "erp鏄庣粏鏍囪瘑",
- matnrCode: "鐗╂枡缂栫爜",
- matnrName: "鐗╂枡鍚嶇О",
- unit: "璁¢噺鍗曚綅",
- anfme: "鏁伴噺",
- qty: "宸插畬鎴�",
- nromQty: "鏍囧寘鏁伴噺",
- asnQty: "鍗曟嵁鏁伴噺",
- printQty: "鎵撳嵃鏁伴噺",
- splrName: "渚涘簲鍟嗗悕绉�",
- splrCode: "渚涘簲鍟嗙紪鐮�",
- splrBatch: "渚涘簲鍟嗘壒娆�",
- },
- }
+ },
+ form: {
+ matnr: {
+ name: "鐗╂枡鍚嶇О涓嶈兘涓虹┖",
+ code: "鐗╂枡缂栫爜涓嶈兘涓虹┖",
+ shipper: "璐т富涓嶈兘涓虹┖",
+ groupId: "鍒嗙粍涓嶈兘涓虹┖",
},
- page: {
- welcome: {
- index: ' 娆㈣繋浣跨敤RSF绠$悊绯荤粺',
- tech: ' 鎶�鏈爤: Java17, SpringBoot2.5.3, Mybatis-plus_3.4.1, Spring Security, Druid 1.2.6, Redis, Mysql5.7, Node18, ReactJs, Material UI5.16, Axios, React-Admin5.1'
- },
- login: {
- title: '娆㈣繋浣跨敤',
- footer: 'Footer Goes Here',
- tenant: '鍏徃',
- email: '閭鍦板潃',
- username: '鐧诲綍璐﹀彿',
- password: '瀵嗙爜',
- confirmPwd: '纭瀵嗙爜',
- code: '楠岃瘉鐮�',
- tab: {
- login: '鐧诲綍',
- register: '娉ㄥ唽',
- },
- button: {
- login: '鐧诲綍',
- register: '娉ㄥ唽',
- code: '鑾峰彇楠岃瘉鐮�',
- },
- },
- settings: {
- resetPwd: {
- currPwd: '褰撳墠瀵嗙爜',
- newPwd: '鏂板瘑鐮�',
- confirmNewPwd: '纭鏂板瘑鐮�',
- resetBtn: '閲嶇疆瀵嗙爜',
- tip: {
- usernameLimit: '浠呭厑璁歌緭鍏� 3-20 涓嫳鏂囧瓧姣嶆垨鏁板瓧锛屼笉鑳藉寘鍚壒娈婂瓧绗�',
- pwdInputLimit: "瀵嗙爜蹇呴』涓�6-13浣�,涓斿繀椤诲寘鍚瓧姣嶅拰鏁板瓧",
- pwdNotSameAsOld: "鏂板瘑鐮佷笉鑳戒笌褰撳墠瀵嗙爜鐩稿悓",
- pwdNotMatch: "纭瀵嗙爜涓嶄竴鑷�",
- }
- }
- },
- tenant: {
- create: {
- title: {
- basic: '鍩虹淇℃伅',
- root: '娣诲姞绠$悊鍛�',
- confirm: '纭',
- },
- btn: {
- next: '涓嬩竴姝�',
- back: '涓婁竴姝�',
- },
- tip: {
- onlyEn: '浠呭厑璁歌緭鍏� 3-20 涓嫳鏂囧瓧姣�'
- },
- },
- },
- matnr: {
- title: {
- basic: '鍩虹灞炴��',
- control: '鎺у埗灞炴��',
- batchRole: '鎵规瑙勫垯',
- }
- },
- whMat: {
- title: {
- add: '娣诲姞',
- }
- },
- },
- form: {
- matnr: {
- name: '鐗╂枡鍚嶇О涓嶈兘涓虹┖',
- code: '鐗╂枡缂栫爜涓嶈兘涓虹┖',
- shipper: '璐т富涓嶈兘涓虹┖',
- groupId: '鍒嗙粍涓嶈兘涓虹┖',
- }
- }
+ },
+ toolbar: {
+ inspection: "鎶ユ",
+ creatcode: "鐢熸垚鏉$爜",
+ },
};
export default customChineseMessages;
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
index a12b89b..57ee098 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
@@ -1,176 +1,248 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useMemo,
+ useCallback,
+} from "react";
+import { useNavigate } from "react-router-dom";
import {
- List,
- DatagridConfigurable,
- SearchInput,
- TopToolbar,
- SelectColumnsButton,
- EditButton,
- FilterButton,
- CreateButton,
- ExportButton,
- BulkDeleteButton,
- WrapperField,
- useRecordContext,
- useTranslate,
- useNotify,
- useListContext,
- FunctionField,
- TextField,
- NumberField,
- DateField,
- BooleanField,
- ReferenceField,
- TextInput,
- DateTimeInput,
- DateInput,
- SelectInput,
- NumberInput,
- ReferenceInput,
- ReferenceArrayInput,
- AutocompleteInput,
- DeleteButton,
-} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
+ List,
+ DatagridConfigurable,
+ SearchInput,
+ TopToolbar,
+ SelectColumnsButton,
+ EditButton,
+ FilterButton,
+ CreateButton,
+ ExportButton,
+ BulkDeleteButton,
+ WrapperField,
+ useRecordContext,
+ useTranslate,
+ useNotify,
+ useListContext,
+ FunctionField,
+ TextField,
+ NumberField,
+ DateField,
+ BooleanField,
+ ReferenceField,
+ TextInput,
+ DateTimeInput,
+ DateInput,
+ SelectInput,
+ NumberInput,
+ ReferenceInput,
+ ReferenceArrayInput,
+ AutocompleteInput,
+ DeleteButton,
+ Button,
+} from "react-admin";
+import { Box, Typography, Card, Stack } from "@mui/material";
+import { styled } from "@mui/material/styles";
import AsnOrderCreate from "./AsnOrderCreate";
import AsnOrderPanel from "./AsnOrderPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
-import MyExportButton from '../components/MyExportButton';
+import MyExportButton from "../components/MyExportButton";
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
+import ConstructionIcon from "@mui/icons-material/Construction";
+import UploadloadIcon from "@mui/icons-material/Upload";
+import {
+ PAGE_DRAWER_WIDTH,
+ OPERATE_MODE,
+ DEFAULT_PAGE_SIZE,
+} from "@/config/setting";
+import * as Common from "@/utils/common";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
- '& .css-1vooibu-MuiSvgIcon-root': {
- height: '.9em'
- },
- '& .RaDatagrid-row': {
- cursor: 'auto'
- },
- '& .column-name': {
- },
- '& .opt': {
- width: 200
- },
+ "& .css-1vooibu-MuiSvgIcon-root": {
+ height: ".9em",
+ },
+ "& .RaDatagrid-row": {
+ cursor: "auto",
+ },
+ "& .column-name": {},
+ "& .opt": {
+ width: 200,
+ },
}));
const filters = [
- <SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+ <SearchInput source="condition" alwaysOn />,
- <TextInput source="code" label="table.field.asnOrder.code" />,
- <TextInput source="poCode" label="table.field.asnOrder.poCode" />,
- <NumberInput source="poId" label="table.field.asnOrder.poId" />,
- <TextInput source="type" label="table.field.asnOrder.type" />,
- <TextInput source="wkType" label="table.field.asnOrder.wkType" />,
- <NumberInput source="anfme" label="table.field.asnOrder.anfme" />,
- <NumberInput source="qty" label="table.field.asnOrder.qty" />,
- <TextInput source="logisNo" label="table.field.asnOrder.logisNo" />,
- <DateInput source="arrTime" label="table.field.asnOrder.arrTime" />,
- <SelectInput source="rleStatus" label="table.field.asnOrder.rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />,
+ <TextInput source="code" label="table.field.asnOrder.code" />,
+ <TextInput source="poCode" label="table.field.asnOrder.poCode" />,
+ <NumberInput source="poId" label="table.field.asnOrder.poId" />,
+ <TextInput source="type" label="table.field.asnOrder.type" />,
+ <TextInput source="wkType" label="table.field.asnOrder.wkType" />,
+ <NumberInput source="anfme" label="table.field.asnOrder.anfme" />,
+ <NumberInput source="qty" label="table.field.asnOrder.qty" />,
+ <TextInput source="logisNo" label="table.field.asnOrder.logisNo" />,
+ <DateInput source="arrTime" label="table.field.asnOrder.arrTime" />,
+ <SelectInput
+ source="rleStatus"
+ label="table.field.asnOrder.rleStatus"
+ choices={[
+ { id: 0, name: " 姝e父" },
+ { id: 1, name: " 宸查噴鏀�" },
+ ]}
+ />,
+ <TextInput source="name" label="table.field.asnOrder.name" />,
- <TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
- />,
-]
+ <TextInput label="common.field.memo" source="memo" />,
+ <SelectInput
+ label="common.field.status"
+ source="status"
+ choices={[
+ { id: "1", name: "common.enums.statusTrue" },
+ { id: "0", name: "common.enums.statusFalse" },
+ ]}
+ resettable
+ />,
+];
const AsnOrderList = () => {
- const translate = useTranslate();
+ const translate = useTranslate();
- const [createDialog, setCreateDialog] = useState(false);
- const [drawerVal, setDrawerVal] = useState(false);
+ const [createDialog, setCreateDialog] = useState(false);
+ const [drawerVal, setDrawerVal] = useState(false);
- return (
- <Box display="flex">
- <List
- sx={{
- flexGrow: 1,
- transition: (theme) =>
- theme.transitions.create(['all'], {
- duration: theme.transitions.duration.enteringScreen,
- }),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
- }}
- title={"menu.asnOrder"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
- filters={filters}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
- <SelectColumnsButton preferenceKey='asnOrder' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='asnOrder'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <AsnOrderPanel />}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
- >
- <NumberField source="id" />
- <TextField source="code" label="table.field.asnOrder.code" />
- <TextField source="poCode" label="table.field.asnOrder.poCode" />
- <NumberField source="poId" label="table.field.asnOrder.poId" />
- <TextField source="type" label="table.field.asnOrder.type" />
- <TextField source="wkType" label="table.field.asnOrder.wkType" />
- <NumberField source="anfme" label="table.field.asnOrder.anfme" />
- <NumberField source="qty" label="table.field.asnOrder.qty" />
- <TextField source="logisNo" label="table.field.asnOrder.logisNo" />
- <DateField source="arrTime" label="table.field.asnOrder.arrTime" showTime />
- <TextField source="rleStatus$" label="table.field.asnOrder.rleStatus" sortable={false} />
- <TextField source="name" label="table.field.asnOrder.name" />
+ const navigate = useNavigate();
+ const assign = (record) => {
+ navigate(`/asnOrderItem?asnId=${record.id}`);
+ };
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="updateTime" label="common.field.updateTime" showTime />
- <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="createTime" label="common.field.createTime" showTime />
- <BooleanField source="statusBool" label="common.field.status" sortable={false} />
- <TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
- <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
- </StyledDatagrid>
- </List>
- <AsnOrderCreate
- open={createDialog}
- setOpen={setCreateDialog}
+ const importList = () => {};
+ const inspection = () => {};
+
+ return (
+ <Box display="flex">
+ <List
+ sx={{
+ flexGrow: 1,
+ transition: (theme) =>
+ theme.transitions.create(["all"], {
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ }}
+ title={"menu.asnOrder"}
+ empty={
+ <EmptyData
+ onClick={() => {
+ setCreateDialog(true);
+ }}
+ />
+ }
+ filters={filters}
+ sort={{ field: "create_time", order: "desc" }}
+ actions={
+ <TopToolbar>
+ <Button onClick={importList} label={"toolbar.inspection"}>
+ <UploadloadIcon />
+ </Button>
+
+ <Button onClick={inspection} label={"ra.action.import"}>
+ <ConstructionIcon />
+ </Button>
+
+ <FilterButton />
+ <MyCreateButton
+ onClick={() => {
+ setCreateDialog(true);
+ }}
/>
- <PageDrawer
- title='AsnOrder Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
+ <SelectColumnsButton preferenceKey="asnOrder" />
+ <MyExportButton />
+ </TopToolbar>
+ }
+ perPage={DEFAULT_PAGE_SIZE}
+ >
+ <StyledDatagrid
+ preferenceKey="asnOrder"
+ bulkActionButtons={() => (
+ <BulkDeleteButton mutationMode={OPERATE_MODE} />
+ )}
+ rowClick={(id, resource, record) => false}
+ expand={() => <AsnOrderPanel />}
+ expandSingle={true}
+ omit={["id", "createTime", "createBy", "memo"]}
+ >
+ <NumberField source="id" />
+ <TextField source="code" label="table.field.asnOrder.code" />
+ <TextField source="poCode" label="table.field.asnOrder.poCode" />
+ <NumberField source="poId" label="table.field.asnOrder.poId" />
+ <TextField source="type" label="table.field.asnOrder.type" />
+ <TextField source="wkType" label="table.field.asnOrder.wkType" />
+ <NumberField source="anfme" label="table.field.asnOrder.anfme" />
+ <NumberField source="qty" label="table.field.asnOrder.qty" />
+ <TextField source="logisNo" label="table.field.asnOrder.logisNo" />
+ <DateField
+ source="arrTime"
+ label="table.field.asnOrder.arrTime"
+ showTime
+ />
+ <TextField
+ source="rleStatus$"
+ label="table.field.asnOrder.rleStatus"
+ sortable={false}
+ />
+ <TextField source="name" label="table.field.asnOrder.name" />
+
+ <ReferenceField
+ source="updateBy"
+ label="common.field.updateBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="updateTime"
+ label="common.field.updateTime"
+ showTime
+ />
+ <ReferenceField
+ source="createBy"
+ label="common.field.createBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="createTime"
+ label="common.field.createTime"
+ showTime
+ />
+ <BooleanField
+ source="statusBool"
+ label="common.field.status"
+ sortable={false}
+ />
+ <TextField source="memo" label="common.field.memo" sortable={false} />
+ <WrapperField cellClassName="opt" label="common.field.opt">
+ <EditButton sx={{ padding: "1px", fontSize: ".75rem" }} />
+ <DeleteButton
+ sx={{ padding: "1px", fontSize: ".75rem" }}
+ mutationMode={OPERATE_MODE}
+ />
+ </WrapperField>
+ </StyledDatagrid>
+ </List>
+ <AsnOrderCreate open={createDialog} setOpen={setCreateDialog} />
+ <PageDrawer
+ title="AsnOrder Detail"
+ drawerVal={drawerVal}
+ setDrawerVal={setDrawerVal}
+ ></PageDrawer>
+ </Box>
+ );
+};
export default AsnOrderList;
diff --git a/rsf-admin/src/page/asnOrderItem/AsnOrderItemList.jsx b/rsf-admin/src/page/asnOrderItem/AsnOrderItemList.jsx
index 5ddf5ee..df78071 100644
--- a/rsf-admin/src/page/asnOrderItem/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/asnOrderItem/AsnOrderItemList.jsx
@@ -1,182 +1,268 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useMemo,
+ useCallback,
+} from "react";
+import { useNavigate, useLocation } from "react-router-dom";
import {
- List,
- DatagridConfigurable,
- SearchInput,
- TopToolbar,
- SelectColumnsButton,
- EditButton,
- FilterButton,
- CreateButton,
- ExportButton,
- BulkDeleteButton,
- WrapperField,
- useRecordContext,
- useTranslate,
- useNotify,
- useListContext,
- FunctionField,
- TextField,
- NumberField,
- DateField,
- BooleanField,
- ReferenceField,
- TextInput,
- DateTimeInput,
- DateInput,
- SelectInput,
- NumberInput,
- ReferenceInput,
- ReferenceArrayInput,
- AutocompleteInput,
- DeleteButton,
-} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
+ List,
+ DatagridConfigurable,
+ SearchInput,
+ TopToolbar,
+ SelectColumnsButton,
+ EditButton,
+ FilterButton,
+ CreateButton,
+ ExportButton,
+ BulkDeleteButton,
+ WrapperField,
+ useRecordContext,
+ useTranslate,
+ useNotify,
+ useListContext,
+ FunctionField,
+ TextField,
+ NumberField,
+ DateField,
+ BooleanField,
+ ReferenceField,
+ TextInput,
+ DateTimeInput,
+ DateInput,
+ SelectInput,
+ NumberInput,
+ ReferenceInput,
+ ReferenceArrayInput,
+ AutocompleteInput,
+ DeleteButton,
+ Button,
+} from "react-admin";
+import { Box, Typography, Card, Stack } from "@mui/material";
+import { styled } from "@mui/material/styles";
import AsnOrderItemCreate from "./AsnOrderItemCreate";
import AsnOrderItemPanel from "./AsnOrderItemPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
-import MyExportButton from '../components/MyExportButton';
+import MyExportButton from "../components/MyExportButton";
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
+import QrCodeIcon from "@mui/icons-material/QrCode";
+import {
+ PAGE_DRAWER_WIDTH,
+ OPERATE_MODE,
+ DEFAULT_PAGE_SIZE,
+} from "@/config/setting";
+import * as Common from "@/utils/common";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
- '& .css-1vooibu-MuiSvgIcon-root': {
- height: '.9em'
- },
- '& .RaDatagrid-row': {
- cursor: 'auto'
- },
- '& .column-name': {
- },
- '& .opt': {
- width: 200
- },
+ "& .css-1vooibu-MuiSvgIcon-root": {
+ height: ".9em",
+ },
+ "& .RaDatagrid-row": {
+ cursor: "auto",
+ },
+ "& .column-name": {},
+ "& .opt": {
+ width: 200,
+ },
}));
const filters = [
- <SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+ <SearchInput source="condition" alwaysOn />,
- <NumberInput source="asnId" label="table.field.asnOrderItem.asnId" />,
- <TextInput source="asnCode" label="table.field.asnOrderItem.asnCode" />,
- <TextInput source="poDetlId" label="table.field.asnOrderItem.poDetlId" />,
- <TextInput source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" />,
- <TextInput source="matnrId" label="table.field.asnOrderItem.matnrId" />,
- <TextInput source="matnk" label="table.field.asnOrderItem.matnk" />,
- <NumberInput source="anfme" label="table.field.asnOrderItem.anfme" />,
- <TextInput source="stockUnit" label="table.field.asnOrderItem.stockUnit" />,
- <NumberInput source="purQty" label="table.field.asnOrderItem.purQty" />,
- <TextInput source="purUnit" label="table.field.asnOrderItem.purUnit" />,
- <NumberInput source="qty" label="table.field.asnOrderItem.qty" />,
- <TextInput source="splrCode" label="table.field.asnOrderItem.splrCode" />,
- <TextInput source="splrName" label="table.field.asnOrderItem.splrName" />,
- <TextInput source="qrcode" label="table.field.asnOrderItem.qrcode" />,
- <TextInput source="barcode" label="table.field.asnOrderItem.barcode" />,
- <TextInput source="packName" label="table.field.asnOrderItem.packName" />,
+ <NumberInput source="asnId" label="table.field.asnOrderItem.asnId" />,
+ <TextInput source="asnCode" label="table.field.asnOrderItem.asnCode" />,
+ <TextInput source="poDetlId" label="table.field.asnOrderItem.poDetlId" />,
+ <TextInput source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" />,
+ <TextInput source="matnrId" label="table.field.asnOrderItem.matnrId" />,
+ <TextInput source="matnk" label="table.field.asnOrderItem.matnk" />,
+ <NumberInput source="anfme" label="table.field.asnOrderItem.anfme" />,
+ <TextInput source="stockUnit" label="table.field.asnOrderItem.stockUnit" />,
+ <NumberInput source="purQty" label="table.field.asnOrderItem.purQty" />,
+ <TextInput source="purUnit" label="table.field.asnOrderItem.purUnit" />,
+ <NumberInput source="qty" label="table.field.asnOrderItem.qty" />,
+ <TextInput source="splrCode" label="table.field.asnOrderItem.splrCode" />,
+ <TextInput source="splrName" label="table.field.asnOrderItem.splrName" />,
+ <TextInput source="qrcode" label="table.field.asnOrderItem.qrcode" />,
+ <TextInput source="barcode" label="table.field.asnOrderItem.barcode" />,
+ <TextInput source="packName" label="table.field.asnOrderItem.packName" />,
- <TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
- />,
-]
+ <TextInput label="common.field.memo" source="memo" />,
+ <SelectInput
+ label="common.field.status"
+ source="status"
+ choices={[
+ { id: "1", name: "common.enums.statusTrue" },
+ { id: "0", name: "common.enums.statusFalse" },
+ ]}
+ resettable
+ />,
+];
const AsnOrderItemList = () => {
- const translate = useTranslate();
+ const translate = useTranslate();
- const [createDialog, setCreateDialog] = useState(false);
- const [drawerVal, setDrawerVal] = useState(false);
+ const [createDialog, setCreateDialog] = useState(false);
+ const [drawerVal, setDrawerVal] = useState(false);
- return (
- <Box display="flex">
- <List
- sx={{
- flexGrow: 1,
- transition: (theme) =>
- theme.transitions.create(['all'], {
- duration: theme.transitions.duration.enteringScreen,
- }),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
- }}
- title={"menu.asnOrderItem"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
- filters={filters}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
- <SelectColumnsButton preferenceKey='asnOrderItem' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='asnOrderItem'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <AsnOrderItemPanel />}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
- >
- <NumberField source="id" />
- <NumberField source="asnId" label="table.field.asnOrderItem.asnId" />
- <TextField source="asnCode" label="table.field.asnOrderItem.asnCode" />
- <TextField source="poDetlId" label="table.field.asnOrderItem.poDetlId" />
- <TextField source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" />
- <TextField source="matnrId" label="table.field.asnOrderItem.matnrId" />
- <TextField source="matnk" label="table.field.asnOrderItem.matnk" />
- <NumberField source="anfme" label="table.field.asnOrderItem.anfme" />
- <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" />
- <NumberField source="purQty" label="table.field.asnOrderItem.purQty" />
- <TextField source="purUnit" label="table.field.asnOrderItem.purUnit" />
- <NumberField source="qty" label="table.field.asnOrderItem.qty" />
- <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />
- <TextField source="splrName" label="table.field.asnOrderItem.splrName" />
- <TextField source="qrcode" label="table.field.asnOrderItem.qrcode" />
- <TextField source="barcode" label="table.field.asnOrderItem.barcode" />
- <TextField source="packName" label="table.field.asnOrderItem.packName" />
+ const location = useLocation();
+ const queryParams = new URLSearchParams(location.search);
+ const ruleId = queryParams.get("ruleId");
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="updateTime" label="common.field.updateTime" showTime />
- <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="createTime" label="common.field.createTime" showTime />
- <BooleanField source="statusBool" label="common.field.status" sortable={false} />
- <TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
- <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
- </StyledDatagrid>
- </List>
- <AsnOrderItemCreate
- open={createDialog}
- setOpen={setCreateDialog}
+ const creatCode = () => {};
+
+ return (
+ <Box display="flex">
+ <List
+ sx={{
+ flexGrow: 1,
+ transition: (theme) =>
+ theme.transitions.create(["all"], {
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ }}
+ title={"menu.asnOrderItem"}
+ empty={
+ <EmptyData
+ onClick={() => {
+ setCreateDialog(true);
+ }}
+ />
+ }
+ filters={filters}
+ sort={{ field: "create_time", order: "desc" }}
+ actions={
+ <TopToolbar>
+ <Button onClick={creatCode} label={"toolbar.creatcode"}>
+ <QrCodeIcon />
+ </Button>
+ <FilterButton />
+ <MyCreateButton
+ onClick={() => {
+ setCreateDialog(true);
+ }}
/>
- <PageDrawer
- title='AsnOrderItem Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
+ <SelectColumnsButton preferenceKey="asnOrderItem" />
+ <MyExportButton />
+ </TopToolbar>
+ }
+ perPage={DEFAULT_PAGE_SIZE}
+ >
+ <StyledDatagrid
+ preferenceKey="asnOrderItem"
+ bulkActionButtons={() => (
+ <BulkDeleteButton mutationMode={OPERATE_MODE} />
+ )}
+ rowClick={(id, resource, record) => false}
+ expand={() => <AsnOrderItemPanel />}
+ expandSingle={true}
+ omit={["id", "createTime", "createBy", "memo"]}
+ >
+ <NumberField source="id" />
+ <NumberField source="asnId" label="table.field.asnOrderItem.asnId" />
+ <TextField
+ source="asnCode"
+ label="table.field.asnOrderItem.asnCode"
+ />
+ <TextField
+ source="poDetlId"
+ label="table.field.asnOrderItem.poDetlId"
+ />
+ <TextField
+ source="poDetlCode"
+ label="table.field.asnOrderItem.poDetlCode"
+ />
+ <TextField
+ source="matnrId"
+ label="table.field.asnOrderItem.matnrId"
+ />
+ <TextField source="matnk" label="table.field.asnOrderItem.matnk" />
+ <NumberField source="anfme" label="table.field.asnOrderItem.anfme" />
+ <TextField
+ source="stockUnit"
+ label="table.field.asnOrderItem.stockUnit"
+ />
+ <NumberField
+ source="purQty"
+ label="table.field.asnOrderItem.purQty"
+ />
+ <TextField
+ source="purUnit"
+ label="table.field.asnOrderItem.purUnit"
+ />
+ <NumberField source="qty" label="table.field.asnOrderItem.qty" />
+ <TextField
+ source="splrCode"
+ label="table.field.asnOrderItem.splrCode"
+ />
+ <TextField
+ source="splrName"
+ label="table.field.asnOrderItem.splrName"
+ />
+ <TextField source="qrcode" label="table.field.asnOrderItem.qrcode" />
+ <TextField
+ source="barcode"
+ label="table.field.asnOrderItem.barcode"
+ />
+ <TextField
+ source="packName"
+ label="table.field.asnOrderItem.packName"
+ />
+
+ <ReferenceField
+ source="updateBy"
+ label="common.field.updateBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="updateTime"
+ label="common.field.updateTime"
+ showTime
+ />
+ <ReferenceField
+ source="createBy"
+ label="common.field.createBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="createTime"
+ label="common.field.createTime"
+ showTime
+ />
+ <BooleanField
+ source="statusBool"
+ label="common.field.status"
+ sortable={false}
+ />
+ <TextField source="memo" label="common.field.memo" sortable={false} />
+ <WrapperField cellClassName="opt" label="common.field.opt">
+ <EditButton sx={{ padding: "1px", fontSize: ".75rem" }} />
+ <DeleteButton
+ sx={{ padding: "1px", fontSize: ".75rem" }}
+ mutationMode={OPERATE_MODE}
+ />
+ </WrapperField>
+ </StyledDatagrid>
+ </List>
+ <AsnOrderItemCreate open={createDialog} setOpen={setCreateDialog} />
+ <PageDrawer
+ title="AsnOrderItem Detail"
+ drawerVal={drawerVal}
+ setDrawerVal={setDrawerVal}
+ ></PageDrawer>
+ </Box>
+ );
+};
export default AsnOrderItemList;
diff --git a/rsf-admin/src/page/components/MyCreateButton.jsx b/rsf-admin/src/page/components/MyCreateButton.jsx
index b61f9fc..1e16745 100644
--- a/rsf-admin/src/page/components/MyCreateButton.jsx
+++ b/rsf-admin/src/page/components/MyCreateButton.jsx
@@ -1,70 +1,64 @@
import React, { useState, useRef, useEffect, useMemo } from "react";
-import {
- Button,
- useTranslate,
-} from 'react-admin';
-import { Fab, useMediaQuery } from '@mui/material';
-import ContentAdd from '@mui/icons-material/Add';
-import { styled } from '@mui/material/styles';
-import { Link } from 'react-router-dom';
+import { Button, useTranslate } from "react-admin";
+import { Fab, useMediaQuery } from "@mui/material";
+import ContentAdd from "@mui/icons-material/Add";
+import { styled } from "@mui/material/styles";
+import { Link } from "react-router-dom";
const MyCreateButton = (props) => {
- const translate = useTranslate();
+ const translate = useTranslate();
+ const isSmall = useMediaQuery((theme) => theme.breakpoints.down("md"));
- const isSmall = useMediaQuery((theme) =>
- theme.breakpoints.down('md')
- );
+ return isSmall ? (
+ <StyledFab
+ color="primary"
+ className={CreateButtonClasses.floating}
+ aria-label={label && translate(label)}
+ onClick={props.onClick}
+ {...props}
+ >
+ {defaultIcon}
+ </StyledFab>
+ ) : (
+ <StyledButton
+ className={CreateButtonClasses.floating}
+ label={label}
+ onClick={props.onClick}
+ {...props}
+ >
+ {defaultIcon}
+ </StyledButton>
+ );
+};
- return isSmall ? (
- <StyledFab
- color="primary"
- className={CreateButtonClasses.floating}
- aria-label={label && translate(label)}
- onClick={props.onClick}
- {...props}
- >
- {defaultIcon}
- </StyledFab>
- ) : (
- <StyledButton
- className={CreateButtonClasses.floating}
- label={label}
- onClick={props.onClick}
- {...props}
- >
- {defaultIcon}
- </StyledButton>
- );
-}
-
-const label = 'ra.action.create';
-const PREFIX = 'RaCreateButton';
+const label = "ra.action.create";
+const PREFIX = "RaCreateButton";
const defaultIcon = <ContentAdd />;
export const CreateButtonClasses = {
- root: `${PREFIX}-root`,
- floating: `${PREFIX}-floating`,
+ root: `${PREFIX}-root`,
+ floating: `${PREFIX}-floating`,
};
const StyledFab = styled(Fab, {
- name: PREFIX,
- overridesResolver: (_props, styles) => styles.root,
+ name: PREFIX,
+ overridesResolver: (_props, styles) => styles.root,
})(({ theme }) => ({
- [`&.${CreateButtonClasses.floating}`]: {
- color: theme.palette.getContrastText(theme.palette.primary.main),
- margin: 0,
- top: 'auto',
- right: 20,
- bottom: 60,
- left: 'auto',
- position: 'fixed',
- zIndex: 1000,
- },
+ [`&.${CreateButtonClasses.floating}`]: {
+ color: theme.palette.getContrastText(theme.palette.primary.main),
+ margin: 0,
+ top: "auto",
+ right: 20,
+ bottom: 60,
+ left: "auto",
+ position: "fixed",
+ zIndex: 1000,
+ },
}));
const StyledButton = styled(Button, {
- name: PREFIX,
- overridesResolver: (_props, styles) => styles.root,
+ name: PREFIX,
+ overridesResolver: (_props, styles) => styles.root,
})({});
-export default MyCreateButton;
\ No newline at end of file
+export default MyCreateButton;
diff --git a/rsf-admin/src/page/components/MyExportButton.jsx b/rsf-admin/src/page/components/MyExportButton.jsx
index 143bdc1..f70dced 100644
--- a/rsf-admin/src/page/components/MyExportButton.jsx
+++ b/rsf-admin/src/page/components/MyExportButton.jsx
@@ -1,87 +1,84 @@
-import * as React from 'react';
-import { useCallback } from 'react';
-import DownloadIcon from '@mui/icons-material/GetApp';
+import * as React from "react";
+import { useCallback } from "react";
+import DownloadIcon from "@mui/icons-material/GetApp";
import {
- Button, useDataProvider, useNotify, useListContext
-} from 'react-admin';
+ Button,
+ useDataProvider,
+ useNotify,
+ useListContext,
+} from "react-admin";
const MyExportButton = (props) => {
- const {
- maxResults = 1000,
- onClick,
- label = 'ra.action.export',
- icon = defaultIcon,
- exporter: customExporter,
- meta,
- ...rest
- } = props;
+ const {
+ maxResults = 1000,
+ onClick,
+ label = "ra.action.export",
+ icon = defaultIcon,
+ exporter: customExporter,
+ meta,
+ ...rest
+ } = props;
- const {
- filter,
- filterValues,
- resource,
- sort,
- total,
- } = useListContext();
+ const { filter, filterValues, resource, sort, total } = useListContext();
- const dataProvider = useDataProvider();
- const notify = useNotify();
+ const dataProvider = useDataProvider();
+ const notify = useNotify();
- const handleClick = useCallback(
- event => {
- dataProvider.export(resource, {
- sort,
- filter: filter
- ? { ...filterValues, ...filter }
- : filterValues,
- pagination: { page: 1, perPage: maxResults },
- meta,
- }).then((res) => {
- const url = window.URL.createObjectURL(new Blob([res.data], { type: res.headers['content-type'] }));
- const link = document.createElement('a');
- link.href = url;
- link.setAttribute('download', `${resource}.xlsx`);
- document.body.appendChild(link);
- link.click();
- link.remove();
- }).catch(error => {
- console.error(error);
- notify('ra.notification.http_error', { type: 'error' });
- });
- if (typeof onClick === 'function') {
- onClick(event);
- }
- },
- [
- dataProvider,
- filter,
- filterValues,
- maxResults,
- notify,
- onClick,
- resource,
- sort,
- meta,
- ]
- );
+ const handleClick = useCallback(
+ (event) => {
+ dataProvider
+ .export(resource, {
+ sort,
+ filter: filter ? { ...filterValues, ...filter } : filterValues,
+ pagination: { page: 1, perPage: maxResults },
+ meta,
+ })
+ .then((res) => {
+ const url = window.URL.createObjectURL(
+ new Blob([res.data], { type: res.headers["content-type"] }),
+ );
+ const link = document.createElement("a");
+ link.href = url;
+ link.setAttribute("download", `${resource}.xlsx`);
+ document.body.appendChild(link);
+ link.click();
+ link.remove();
+ })
+ .catch((error) => {
+ console.error(error);
+ notify("ra.notification.http_error", { type: "error" });
+ });
+ if (typeof onClick === "function") {
+ onClick(event);
+ }
+ },
+ [
+ dataProvider,
+ filter,
+ filterValues,
+ maxResults,
+ notify,
+ onClick,
+ resource,
+ sort,
+ meta,
+ ],
+ );
- return (
- <Button
- onClick={handleClick}
- label={label}
- disabled={total === 0}
- {...sanitizeRestProps(rest)}
- >
- {icon}
- </Button>
- );
+ return (
+ <Button
+ onClick={handleClick}
+ label={label}
+ disabled={total === 0}
+ {...sanitizeRestProps(rest)}
+ >
+ {icon}
+ </Button>
+ );
};
const defaultIcon = <DownloadIcon />;
-const sanitizeRestProps = ({
- resource,
- ...rest
-}) => rest;
+const sanitizeRestProps = ({ resource, ...rest }) => rest;
export default MyExportButton;
diff --git a/rsf-admin/src/page/purchase/PurchaseList.jsx b/rsf-admin/src/page/purchase/PurchaseList.jsx
index 08f1ce5..8946696 100644
--- a/rsf-admin/src/page/purchase/PurchaseList.jsx
+++ b/rsf-admin/src/page/purchase/PurchaseList.jsx
@@ -1,172 +1,233 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useMemo,
+ useCallback,
+} from "react";
+import { useNavigate } from "react-router-dom";
import {
- List,
- DatagridConfigurable,
- SearchInput,
- TopToolbar,
- SelectColumnsButton,
- EditButton,
- FilterButton,
- CreateButton,
- ExportButton,
- BulkDeleteButton,
- WrapperField,
- useRecordContext,
- useTranslate,
- useNotify,
- useListContext,
- FunctionField,
- TextField,
- NumberField,
- DateField,
- BooleanField,
- ReferenceField,
- TextInput,
- DateTimeInput,
- DateInput,
- SelectInput,
- NumberInput,
- ReferenceInput,
- ReferenceArrayInput,
- AutocompleteInput,
- DeleteButton,
-} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
+ List,
+ DatagridConfigurable,
+ SearchInput,
+ TopToolbar,
+ SelectColumnsButton,
+ EditButton,
+ FilterButton,
+ CreateButton,
+ ExportButton,
+ BulkDeleteButton,
+ WrapperField,
+ useRecordContext,
+ useTranslate,
+ useNotify,
+ useListContext,
+ FunctionField,
+ TextField,
+ NumberField,
+ DateField,
+ BooleanField,
+ ReferenceField,
+ TextInput,
+ DateTimeInput,
+ DateInput,
+ SelectInput,
+ NumberInput,
+ ReferenceInput,
+ ReferenceArrayInput,
+ AutocompleteInput,
+ DeleteButton,
+} from "react-admin";
+import { Box, Typography, Card, Stack } from "@mui/material";
+import { styled } from "@mui/material/styles";
import PurchaseCreate from "./PurchaseCreate";
import PurchasePanel from "./PurchasePanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
-import MyExportButton from '../components/MyExportButton';
+import MyExportButton from "../components/MyExportButton";
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
+import {
+ PAGE_DRAWER_WIDTH,
+ OPERATE_MODE,
+ DEFAULT_PAGE_SIZE,
+} from "@/config/setting";
+import * as Common from "@/utils/common";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
- '& .css-1vooibu-MuiSvgIcon-root': {
- height: '.9em'
- },
- '& .RaDatagrid-row': {
- cursor: 'auto'
- },
- '& .column-name': {
- },
- '& .opt': {
- width: 200
- },
+ "& .css-1vooibu-MuiSvgIcon-root": {
+ height: ".9em",
+ },
+ "& .RaDatagrid-row": {
+ cursor: "auto",
+ },
+ "& .column-name": {},
+ "& .opt": {
+ width: 200,
+ },
}));
const filters = [
- <SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
- <TextInput source="code" label="table.field.purchase.code" />,
- <TextInput source="type" label="table.field.purchase.type" />,
- <TextInput source="source" label="table.field.purchase.source" />,
- <DateInput source="preArr" label="table.field.purchase.preArr" />,
- <NumberInput source="anfme" label="table.field.purchase.anfme" />,
- <NumberInput source="qty" label="table.field.purchase.qty" />,
- <NumberInput source="workQty" label="table.field.purchase.workQty" />,
- <TextInput source="channel" label="table.field.purchase.channel" />,
- <TextInput source="platCode" label="table.field.purchase.platCode" />,
- <DateInput source="startTime" label="table.field.purchase.startTime" />,
- <DateInput source="endTime" label="table.field.purchase.endTime" />,
- <TextInput source="project" label="table.field.purchase.project" />,
- <TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
- />,
-]
+ <SearchInput source="condition" alwaysOn />,
+
+ <TextInput source="code" label="table.field.purchase.code" />,
+ <TextInput source="type" label="table.field.purchase.type" />,
+ <TextInput source="from" label="table.field.purchase.from" />,
+ <DateInput source="preArr" label="table.field.purchase.preArr" />,
+ <NumberInput source="anfme" label="table.field.purchase.anfme" />,
+ <NumberInput source="qty" label="table.field.purchase.qty" />,
+ <NumberInput source="workQty" label="table.field.purchase.workQty" />,
+ <TextInput source="channel" label="table.field.purchase.channel" />,
+ <TextInput source="erpCode" label="table.field.purchase.erpCode" />,
+ <DateInput source="startTime" label="table.field.purchase.startTime" />,
+ <DateInput source="endTime" label="table.field.purchase.endTime" />,
+ <TextInput source="project" label="table.field.purchase.project" />,
+
+ <TextInput label="common.field.memo" source="memo" />,
+ <SelectInput
+ label="common.field.status"
+ source="status"
+ choices={[
+ { id: "1", name: "common.enums.statusTrue" },
+ { id: "0", name: "common.enums.statusFalse" },
+ ]}
+ resettable
+ />,
+];
const PurchaseList = () => {
- const translate = useTranslate();
+ const translate = useTranslate();
- const [createDialog, setCreateDialog] = useState(false);
- const [drawerVal, setDrawerVal] = useState(false);
+ const [createDialog, setCreateDialog] = useState(false);
+ const [drawerVal, setDrawerVal] = useState(false);
- return (
- <Box display="flex">
- <List
- sx={{
- flexGrow: 1,
- transition: (theme) =>
- theme.transitions.create(['all'], {
- duration: theme.transitions.duration.enteringScreen,
- }),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
- }}
- title={"menu.purchase"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
- filters={filters}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
- <SelectColumnsButton preferenceKey='purchase' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='purchase'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <PurchasePanel />}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
- >
- <NumberField source="id" />
- <TextField source="code" label="table.field.purchase.code" />
- <TextField source="type" label="table.field.purchase.type" />
- <TextField source="source" label="table.field.purchase.source" />
- <DateField source="preArr" label="table.field.purchase.preArr" showTime />
- <NumberField source="anfme" label="table.field.purchase.anfme" />
- <NumberField source="qty" label="table.field.purchase.qty" />
- <NumberField source="workQty" label="table.field.purchase.workQty" />
- <TextField source="channel" label="table.field.purchase.channel" />
- <TextField source="platCode" label="table.field.purchase.platCode" />
- <DateField source="startTime" label="table.field.purchase.startTime" showTime />
- <DateField source="endTime" label="table.field.purchase.endTime" showTime />
- <TextField source="project" label="table.field.purchase.project" />
+ const navigate = useNavigate();
+ const assign = (record) => {
+ navigate(`/purchaseItem?poId=${record.id}`);
+ };
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="updateTime" label="common.field.updateTime" showTime />
- <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="createTime" label="common.field.createTime" showTime />
- <BooleanField source="statusBool" label="common.field.status" sortable={false} />
- <TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
- <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
- </StyledDatagrid>
- </List>
- <PurchaseCreate
- open={createDialog}
- setOpen={setCreateDialog}
+ return (
+ <Box display="flex">
+ <List
+ sx={{
+ flexGrow: 1,
+ transition: (theme) =>
+ theme.transitions.create(["all"], {
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ }}
+ title={"menu.purchase"}
+ empty={
+ <EmptyData
+ onClick={() => {
+ setCreateDialog(true);
+ }}
+ />
+ }
+ filters={filters}
+ sort={{ field: "create_time", order: "desc" }}
+ actions={
+ <TopToolbar>
+ <FilterButton />
+ <MyCreateButton
+ onClick={() => {
+ setCreateDialog(true);
+ }}
/>
- <PageDrawer
- title='Purchase Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
+ <SelectColumnsButton preferenceKey="purchase" />
+ <MyExportButton />
+ </TopToolbar>
+ }
+ perPage={DEFAULT_PAGE_SIZE}
+ >
+ <StyledDatagrid
+ preferenceKey="purchase"
+ bulkActionButtons={() => (
+ <BulkDeleteButton mutationMode={OPERATE_MODE} />
+ )}
+ rowClick={(id, resource, record) => false}
+ expand={() => <PurchasePanel />}
+ expandSingle={true}
+ omit={["id", "createTime", "createBy", "memo"]}
+ >
+ <NumberField source="id" />
+ <TextField source="code" label="table.field.purchase.code" />
+ <TextField source="type" label="table.field.purchase.type" />
+ <TextField source="from" label="table.field.purchase.from" />
+ <DateField
+ source="preArr"
+ label="table.field.purchase.preArr"
+ showTime
+ />
+ <NumberField source="anfme" label="table.field.purchase.anfme" />
+ <NumberField source="qty" label="table.field.purchase.qty" />
+ <NumberField source="workQty" label="table.field.purchase.workQty" />
+ <TextField source="channel" label="table.field.purchase.channel" />
+ <TextField source="erpCode" label="table.field.purchase.erpCode" />
+ <DateField
+ source="startTime"
+ label="table.field.purchase.startTime"
+ showTime
+ />
+ <DateField
+ source="endTime"
+ label="table.field.purchase.endTime"
+ showTime
+ />
+ <TextField source="project" label="table.field.purchase.project" />
+
+ <ReferenceField
+ source="updateBy"
+ label="common.field.updateBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="updateTime"
+ label="common.field.updateTime"
+ showTime
+ />
+ <ReferenceField
+ source="createBy"
+ label="common.field.createBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="createTime"
+ label="common.field.createTime"
+ showTime
+ />
+ <BooleanField
+ source="statusBool"
+ label="common.field.status"
+ sortable={false}
+ />
+ <TextField source="memo" label="common.field.memo" sortable={false} />
+ <WrapperField cellClassName="opt" label="common.field.opt">
+ <EditButton sx={{ padding: "1px", fontSize: ".75rem" }} />
+ <DeleteButton
+ sx={{ padding: "1px", fontSize: ".75rem" }}
+ mutationMode={OPERATE_MODE}
+ />
+ </WrapperField>
+ </StyledDatagrid>
+ </List>
+ <PurchaseCreate open={createDialog} setOpen={setCreateDialog} />
+ <PageDrawer
+ title="Purchase Detail"
+ drawerVal={drawerVal}
+ setDrawerVal={setDrawerVal}
+ ></PageDrawer>
+ </Box>
+ );
+};
export default PurchaseList;
diff --git a/rsf-admin/src/page/purchaseItem/PurchaseItemList.jsx b/rsf-admin/src/page/purchaseItem/PurchaseItemList.jsx
index 088c9cb..140a740 100644
--- a/rsf-admin/src/page/purchaseItem/PurchaseItemList.jsx
+++ b/rsf-admin/src/page/purchaseItem/PurchaseItemList.jsx
@@ -1,176 +1,252 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useMemo,
+ useCallback,
+} from "react";
+import { useNavigate, useLocation } from "react-router-dom";
import {
- List,
- DatagridConfigurable,
- SearchInput,
- TopToolbar,
- SelectColumnsButton,
- EditButton,
- FilterButton,
- CreateButton,
- ExportButton,
- BulkDeleteButton,
- WrapperField,
- useRecordContext,
- useTranslate,
- useNotify,
- useListContext,
- FunctionField,
- TextField,
- NumberField,
- DateField,
- BooleanField,
- ReferenceField,
- TextInput,
- DateTimeInput,
- DateInput,
- SelectInput,
- NumberInput,
- ReferenceInput,
- ReferenceArrayInput,
- AutocompleteInput,
- DeleteButton,
-} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
+ List,
+ DatagridConfigurable,
+ SearchInput,
+ TopToolbar,
+ SelectColumnsButton,
+ EditButton,
+ FilterButton,
+ CreateButton,
+ ExportButton,
+ BulkDeleteButton,
+ WrapperField,
+ useRecordContext,
+ useTranslate,
+ useNotify,
+ useListContext,
+ FunctionField,
+ TextField,
+ NumberField,
+ DateField,
+ BooleanField,
+ ReferenceField,
+ TextInput,
+ DateTimeInput,
+ DateInput,
+ SelectInput,
+ NumberInput,
+ ReferenceInput,
+ ReferenceArrayInput,
+ AutocompleteInput,
+ DeleteButton,
+} from "react-admin";
+import { Box, Typography, Card, Stack } from "@mui/material";
+import { styled } from "@mui/material/styles";
import PurchaseItemCreate from "./PurchaseItemCreate";
import PurchaseItemPanel from "./PurchaseItemPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
-import MyExportButton from '../components/MyExportButton';
+import MyExportButton from "../components/MyExportButton";
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
+import {
+ PAGE_DRAWER_WIDTH,
+ OPERATE_MODE,
+ DEFAULT_PAGE_SIZE,
+} from "@/config/setting";
+import * as Common from "@/utils/common";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
- '& .css-1vooibu-MuiSvgIcon-root': {
- height: '.9em'
- },
- '& .RaDatagrid-row': {
- cursor: 'auto'
- },
- '& .column-name': {
- },
- '& .opt': {
- width: 200
- },
+ "& .css-1vooibu-MuiSvgIcon-root": {
+ height: ".9em",
+ },
+ "& .RaDatagrid-row": {
+ cursor: "auto",
+ },
+ "& .column-name": {},
+ "& .opt": {
+ width: 200,
+ },
}));
const filters = [
- <SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+ <SearchInput source="condition" alwaysOn />,
- <NumberInput source="purchaseId" label="table.field.purchaseItem.purchaseId" />,
- <TextInput source="platItemId" label="table.field.purchaseItem.platItemId" />,
- <TextInput source="matnrCode" label="table.field.purchaseItem.matnrCode" />,
- <TextInput source="matnrName" label="table.field.purchaseItem.matnrName" />,
- <TextInput source="unit" label="table.field.purchaseItem.unit" />,
- <NumberInput source="anfme" label="table.field.purchaseItem.anfme" />,
- <NumberInput source="qty" label="table.field.purchaseItem.qty" />,
- <NumberInput source="nromQty" label="table.field.purchaseItem.nromQty" />,
- <NumberInput source="asnQty" label="table.field.purchaseItem.asnQty" />,
- <NumberInput source="printQty" label="table.field.purchaseItem.printQty" />,
- <TextInput source="splrName" label="table.field.purchaseItem.splrName" />,
- <TextInput source="splrCode" label="table.field.purchaseItem.splrCode" />,
- <TextInput source="splrBatch" label="table.field.purchaseItem.splrBatch" />,
+ <NumberInput
+ source="purchaseId"
+ label="table.field.purchaseItem.purchaseId"
+ />,
+ <TextInput source="erpId" label="table.field.purchaseItem.erpId" />,
+ <TextInput source="matnrCode" label="table.field.purchaseItem.matnrCode" />,
+ <TextInput source="matnrName" label="table.field.purchaseItem.matnrName" />,
+ <TextInput source="unit" label="table.field.purchaseItem.unit" />,
+ <NumberInput source="anfme" label="table.field.purchaseItem.anfme" />,
+ <NumberInput source="qty" label="table.field.purchaseItem.qty" />,
+ <NumberInput source="nomQty" label="table.field.purchaseItem.nomQty" />,
+ <NumberInput source="asnQty" label="table.field.purchaseItem.asnQty" />,
+ <NumberInput source="printQty" label="table.field.purchaseItem.printQty" />,
+ <TextInput source="pulrName" label="table.field.purchaseItem.pulrName" />,
+ <TextInput source="pulrCode" label="table.field.purchaseItem.pulrCode" />,
+ <TextInput source="pulrBatch" label="table.field.purchaseItem.pulrBatch" />,
- <TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
- />,
-]
+ <TextInput label="common.field.memo" source="memo" />,
+ <SelectInput
+ label="common.field.status"
+ source="status"
+ choices={[
+ { id: "1", name: "common.enums.statusTrue" },
+ { id: "0", name: "common.enums.statusFalse" },
+ ]}
+ resettable
+ />,
+];
const PurchaseItemList = () => {
- const translate = useTranslate();
+ const translate = useTranslate();
- const [createDialog, setCreateDialog] = useState(false);
- const [drawerVal, setDrawerVal] = useState(false);
+ const [createDialog, setCreateDialog] = useState(false);
+ const [drawerVal, setDrawerVal] = useState(false);
- return (
- <Box display="flex">
- <List
- sx={{
- flexGrow: 1,
- transition: (theme) =>
- theme.transitions.create(['all'], {
- duration: theme.transitions.duration.enteringScreen,
- }),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
- }}
- title={"menu.purchaseItem"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
- filters={filters}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
- <SelectColumnsButton preferenceKey='purchaseItem' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='purchaseItem'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <PurchaseItemPanel />}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
- >
- <NumberField source="id" />
- <NumberField source="purchaseId" label="table.field.purchaseItem.purchaseId" />
- <TextField source="platItemId" label="table.field.purchaseItem.platItemId" />
- <TextField source="matnrCode" label="table.field.purchaseItem.matnrCode" />
- <TextField source="matnrName" label="table.field.purchaseItem.matnrName" />
- <TextField source="unit" label="table.field.purchaseItem.unit" />
- <NumberField source="anfme" label="table.field.purchaseItem.anfme" />
- <NumberField source="qty" label="table.field.purchaseItem.qty" />
- <NumberField source="nromQty" label="table.field.purchaseItem.nromQty" />
- <NumberField source="asnQty" label="table.field.purchaseItem.asnQty" />
- <NumberField source="printQty" label="table.field.purchaseItem.printQty" />
- <TextField source="splrName" label="table.field.purchaseItem.splrName" />
- <TextField source="splrCode" label="table.field.purchaseItem.splrCode" />
- <TextField source="splrBatch" label="table.field.purchaseItem.splrBatch" />
+ const location = useLocation();
+ const queryParams = new URLSearchParams(location.search);
+ const ruleId = queryParams.get("ruleId");
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="updateTime" label="common.field.updateTime" showTime />
- <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
- <DateField source="createTime" label="common.field.createTime" showTime />
- <BooleanField source="statusBool" label="common.field.status" sortable={false} />
- <TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
- <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
- </StyledDatagrid>
- </List>
- <PurchaseItemCreate
- open={createDialog}
- setOpen={setCreateDialog}
+ return (
+ <Box display="flex">
+ <List
+ sx={{
+ flexGrow: 1,
+ transition: (theme) =>
+ theme.transitions.create(["all"], {
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ }}
+ title={"menu.purchaseItem"}
+ empty={
+ <EmptyData
+ onClick={() => {
+ setCreateDialog(true);
+ }}
+ />
+ }
+ filters={filters}
+ sort={{ field: "create_time", order: "desc" }}
+ actions={
+ <TopToolbar>
+ <FilterButton />
+ <MyCreateButton
+ onClick={() => {
+ setCreateDialog(true);
+ }}
/>
- <PageDrawer
- title='PurchaseItem Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
+ <SelectColumnsButton preferenceKey="purchaseItem" />
+ <MyExportButton />
+ </TopToolbar>
+ }
+ perPage={DEFAULT_PAGE_SIZE}
+ >
+ <StyledDatagrid
+ preferenceKey="purchaseItem"
+ bulkActionButtons={() => (
+ <BulkDeleteButton mutationMode={OPERATE_MODE} />
+ )}
+ rowClick={(id, resource, record) => false}
+ expand={() => <PurchaseItemPanel />}
+ expandSingle={true}
+ omit={["id", "createTime", "createBy", "memo"]}
+ >
+ <NumberField source="id" />
+ <NumberField
+ source="purchaseId"
+ label="table.field.purchaseItem.purchaseId"
+ />
+ <TextField source="erpId" label="table.field.purchaseItem.erpId" />
+ <TextField
+ source="matnrCode"
+ label="table.field.purchaseItem.matnrCode"
+ />
+ <TextField
+ source="matnrName"
+ label="table.field.purchaseItem.matnrName"
+ />
+ <TextField source="unit" label="table.field.purchaseItem.unit" />
+ <NumberField source="anfme" label="table.field.purchaseItem.anfme" />
+ <NumberField source="qty" label="table.field.purchaseItem.qty" />
+ <NumberField
+ source="nomQty"
+ label="table.field.purchaseItem.nomQty"
+ />
+ <NumberField
+ source="asnQty"
+ label="table.field.purchaseItem.asnQty"
+ />
+ <NumberField
+ source="printQty"
+ label="table.field.purchaseItem.printQty"
+ />
+ <TextField
+ source="pulrName"
+ label="table.field.purchaseItem.pulrName"
+ />
+ <TextField
+ source="pulrCode"
+ label="table.field.purchaseItem.pulrCode"
+ />
+ <TextField
+ source="pulrBatch"
+ label="table.field.purchaseItem.pulrBatch"
+ />
+
+ <ReferenceField
+ source="updateBy"
+ label="common.field.updateBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="updateTime"
+ label="common.field.updateTime"
+ showTime
+ />
+ <ReferenceField
+ source="createBy"
+ label="common.field.createBy"
+ reference="user"
+ link={false}
+ sortable={false}
+ >
+ <TextField source="nickname" />
+ </ReferenceField>
+ <DateField
+ source="createTime"
+ label="common.field.createTime"
+ showTime
+ />
+ <BooleanField
+ source="statusBool"
+ label="common.field.status"
+ sortable={false}
+ />
+ <TextField source="memo" label="common.field.memo" sortable={false} />
+ <WrapperField cellClassName="opt" label="common.field.opt">
+ <EditButton sx={{ padding: "1px", fontSize: ".75rem" }} />
+ <DeleteButton
+ sx={{ padding: "1px", fontSize: ".75rem" }}
+ mutationMode={OPERATE_MODE}
+ />
+ </WrapperField>
+ </StyledDatagrid>
+ </List>
+ <PurchaseItemCreate open={createDialog} setOpen={setCreateDialog} />
+ <PageDrawer
+ title="PurchaseItem Detail"
+ drawerVal={drawerVal}
+ setDrawerVal={setDrawerVal}
+ ></PageDrawer>
+ </Box>
+ );
+};
export default PurchaseItemList;
diff --git a/rsf-admin/src/page/system/serialRule/SerialRuleDetail.jsx b/rsf-admin/src/page/system/serialRule/SerialRuleDetail.jsx
index 9e7031c..c3d15cc 100644
--- a/rsf-admin/src/page/system/serialRule/SerialRuleDetail.jsx
+++ b/rsf-admin/src/page/system/serialRule/SerialRuleDetail.jsx
@@ -54,8 +54,6 @@
});
};
- console.log(SerialRuleItem);
-
return (
<>
<Dialog
--
Gitblit v1.9.1