From efe0972ca3e0f816bc274c4e579d61763ac2adcf Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期一, 09 二月 2026 16:34:58 +0800
Subject: [PATCH] 翻译修复

---
 rsf-admin/src/page/orders/outStock/OutStockPublic.jsx           |    2 
 rsf-admin/conf.d/server.conf                                    |   88 +++++++++
 rsf-admin/src/i18n/core/chineseMessages.js                      |  187 ++++++++++----------
 rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml |    1 
 rsf-admin/src/page/histories/taskLog/TaskLogList.jsx            |    2 
 rsf-admin/nginx.conf                                            |  128 +++++---------
 rsf-admin/src/page/histories/taskLog/TaskItemLogList.jsx        |    2 
 rsf-admin/src/page/task/TaskItemList.jsx                        |    2 
 rsf-admin/src/page/basicInfo/whMat/mySearchInput.jsx            |    4 
 rsf-admin/src/page/task/TaskList.jsx                            |    2 
 rsf-admin/src/i18n/zh.js                                        |   38 ++++
 rsf-admin/src/page/orders/outStock/OutOrderList.jsx             |   62 +++---
 rsf-admin/src/page/system/dept/DeptList.jsx                     |    2 
 rsf-admin/src/page/orders/check/CheckPreviewTable.jsx           |    2 
 14 files changed, 310 insertions(+), 212 deletions(-)

diff --git a/rsf-admin/conf.d/server.conf b/rsf-admin/conf.d/server.conf
new file mode 100644
index 0000000..bab3436
--- /dev/null
+++ b/rsf-admin/conf.d/server.conf
@@ -0,0 +1,88 @@
+# Server 閰嶇疆鏂囦欢
+
+server {
+    listen       8080;
+    server_name  localhost;
+
+    charset utf-8;
+    root   D:/work/nginx-1.26.3/html/dist;
+    index  index.html index.htm;
+
+    # 鍓嶇璺敱
+    location / {
+        try_files $uri $uri/ /index.html;
+    }
+
+    # 闈欐�佽祫婧愮紦瀛�
+    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
+        expires 30d;
+        add_header Cache-Control "public, immutable";
+        access_log off;
+    }
+
+    # 鍐呴儴 location锛氳褰曡姹備綋
+    location = /_log_request_body {
+        internal;
+        client_body_buffer_size 128k;
+        client_max_body_size 10m;
+        client_body_in_file_only off;
+        client_body_in_single_buffer on;
+        access_log logs/request_body.log json_log;
+        return 200 "";
+    }
+
+    # API 浠g悊
+    location /rsf-open-api/ {
+        client_body_buffer_size 128k;
+        client_max_body_size 10m;
+        mirror /_log_request_body;
+        mirror_request_body on;
+        access_log logs/api_access.log api_log;
+        access_log logs/access.log;
+        
+        proxy_pass http://api_backend/rsf-open-api/;
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto $scheme;
+        proxy_buffers 8 16k;
+        proxy_buffer_size 32k;
+    }
+
+    # rsf-server 浠g悊
+    location /rsf-server/ {
+        client_body_buffer_size 128k;
+        client_max_body_size 10m;
+        mirror /_log_request_body;
+        mirror_request_body on;
+        access_log logs/server_access.log api_log;
+        access_log logs/access.log;
+        
+        proxy_pass http://server_backend/rsf-server/;
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto $scheme;
+        proxy_buffers 8 16k;
+        proxy_buffer_size 32k;
+    }
+
+    # WebSocket 浠g悊
+    location /ws/ {
+        proxy_pass http://api_backend/ws/;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection "upgrade";
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto $scheme;
+        proxy_buffering off;
+    }
+
+    # 閿欒椤甸潰
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   html;
+    }
+}
diff --git a/rsf-admin/nginx.conf b/rsf-admin/nginx.conf
index e928cce..db41c4e 100644
--- a/rsf-admin/nginx.conf
+++ b/rsf-admin/nginx.conf
@@ -1,103 +1,69 @@
-user  nginx;
+# Windows Nginx 涓婚厤缃枃浠�
+
 worker_processes  auto;
 
-error_log  /var/log/nginx/error.log notice;
-pid        /var/run/nginx.pid;
+error_log  logs/error.log notice;
+pid        logs/nginx.pid;
 
 events {
     worker_connections  2048;
 }
 
 http {
-    include       /etc/nginx/mime.types;
+    include       mime.types;
     default_type  application/octet-stream;
 
+    # 鏃ュ織鏍煎紡瀹氫箟
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                       '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for"';
 
-    access_log  /var/log/nginx/access.log  main;
-    error_log  /var/log/nginx/error.log error;
+    log_format api_log '$remote_addr - $remote_user [$time_local] '
+                       '"$request_method $request_uri HTTP/$server_protocol" '
+                       '$status $body_bytes_sent "$http_referer" '
+                       '"$http_user_agent" "$http_x_forwarded_for" '
+                       'request_time="$request_time" '
+                       'upstream_response_time="$upstream_response_time" '
+                       'request_length="$request_length"';
 
+    log_format json_log '$remote_addr - $remote_user [$time_local] '
+                        '"$request_method $request_uri HTTP/$server_protocol" '
+                        '$status $body_bytes_sent '
+                        '"$http_referer" "$http_user_agent" '
+                        '"$http_x_forwarded_for" '
+                        'request_body="$request_body" '
+                        'content_type="$content_type" '
+                        'request_time="$request_time" '
+                        'upstream_response_time="$upstream_response_time"';
+
+    # 鍏ㄥ眬鏃ュ織锛坰erver 涓彲瑕嗙洊锛�
+    access_log  logs/access.log  main;
+    error_log   logs/error.log error;
+
+    # 鍏ㄥ眬閰嶇疆
     client_max_body_size 300M;
-
-    upstream api_backend {
-        server 10.10.10.199:8088;
-        # ......
-    }
-
-    server {
-        listen       80;
-	    listen	     8080;
-        server_name  localhost;
-
-        location / {
-            root   /app/www;
-	        try_files $uri $uri/ /index.html;
-            index  index.html index.htm;
-        }
-
-        # Http
-        location /api/ {
-            # rewrite ^/api/(.*)$ /$1 break;  # if you wanna remove proxy prefix
-            proxy_pass http://api_backend/api/;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-
-            # buffer
-            proxy_buffers 8 16k;
-            proxy_buffer_size 32k;
-            
-            # timeout
-            # proxy_connect_timeout 60s;
-            # proxy_read_timeout 60s;
-            # proxy_send_timeout 60s;
-        }
-
-        # WebSocket
-        location /ws/ {
-            # ws
-            proxy_pass http://api_backend/ws/;
-            # wss
-            # proxy_pass wss://api_backend/ws/;
-            
-            proxy_http_version 1.1;
-            proxy_set_header Upgrade $http_upgrade;
-            proxy_set_header Connection "upgrade";
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_buffering off;
-
-            # timeout
-            # proxy_connect_timeout 60s;
-            # proxy_read_timeout 60s;
-            # proxy_send_timeout 60s;
-        }
-        
-        # HTTPS
-        # listen 443 ssl;
-        # ssl_certificate /path/to/cert.pem;
-        # ssl_certificate_key /path/to/key.pem;
-
-        error_page   500 502 503 504  /50x.html;
-
-        location = /50x.html {
-            root   html;
-        }
-        
-    }
-
     sendfile        on;
-    #tcp_nopush     on;
-
+    tcp_nopush      on;
+    tcp_nodelay     on;
     keepalive_timeout  65;
 
-    #gzip  on;
+    # Gzip 鍘嬬缉
+    gzip  on;
+    gzip_vary on;
+    gzip_min_length 1000;
+    gzip_proxied any;
+    gzip_comp_level 6;
+    gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
 
-    include /etc/nginx/conf.d/*.conf;
+    # 鍚庣鏈嶅姟鍣ㄩ厤缃�
+    upstream api_backend {
+        server 127.0.0.1:8081;
+    }
     
+    upstream server_backend {
+        server 127.0.0.1:8085;
+    }
+
+    # 寮曞叆 server 閰嶇疆
+    include conf.d/*.conf;
 }
diff --git a/rsf-admin/src/i18n/core/chineseMessages.js b/rsf-admin/src/i18n/core/chineseMessages.js
index fd05cb0..d49627d 100644
--- a/rsf-admin/src/i18n/core/chineseMessages.js
+++ b/rsf-admin/src/i18n/core/chineseMessages.js
@@ -19,7 +19,8 @@
       list: "鍒楄〃",
       refresh: "鍒锋柊",
       remove_filter: "绉婚櫎杩欎釜杩囨护鍣�",
-      remove_all_filters: "绉婚櫎鎵�鏈�",
+      remove_all_filters: "娓呴櫎鎵�鏈夎繃婊ゆ潯浠�",
+      clear_filters: "娓呴櫎杩囨护鏉′欢",
       remove: "绉婚櫎",
       approved: "瀹℃牳",
       save: "淇濆瓨",
@@ -32,15 +33,15 @@
       unselect: "鍙栨秷閫夋嫨",
       expand: "灞曞紑",
       close: "鍏抽棴",
-      open_menu: "Open menu",
-      close_menu: "Close menu",
+      open_menu: "鎵撳紑鑿滃崟",
+      close_menu: "鍏抽棴鑿滃崟",
       update: "淇敼",
-      move_up: "Move up",
-      move_down: "Move down",
-      open: "Open",
+      move_up: "涓婄Щ",
+      move_down: "涓嬬Щ",
+      open: "鎵撳紑",
       toggle_theme: "娴呰壊/娣辫壊",
       select_columns: "绛涢�夊垪",
-      update_application: "Reload Application",
+      update_application: "閲嶆柊鍔犺浇搴旂敤",
     },
     boolean: {
       true: "鏄�",
@@ -48,16 +49,17 @@
       null: "鈥�",
     },
     page: {
-      create: "Create %{name}",
-      dashboard: "Dashboard",
+      create: "鍒涘缓 %{name}",
+      dashboard: "鎺у埗鍙�",
       edit: "%{name} %{recordRepresentation}",
-      error: "Something went wrong",
+      error: "鍑洪敊浜�",
       list: "%{name}",
-      loading: "Loading",
-      not_found: "Not Found",
+      loading: "鍔犺浇涓�",
+      not_found: "鏈壘鍒�",
       show: "%{name} %{recordRepresentation}",
-      empty: "No %{name} yet.",
-      invite: "Do you want to add one?",
+      empty: "鏆傛棤 %{name}銆�",
+      invite: "鏄惁瑕佹坊鍔犱竴涓紵",
+      empty_with_filters: "浣跨敤褰撳墠杩囨护鏉′欢鏈壘鍒扮粨鏋溿��",
     },
     input: {
       file: {
@@ -65,139 +67,142 @@
         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.",
+        upload_several: "鎷栨斁涓�浜涘浘鐗囪繘琛屼笂浼狅紝鎴栧崟鍑婚�夋嫨涓�涓�",
+        upload_single: "鎷栨斁鍥剧墖杩涜涓婁紶锛屾垨鍗曞嚮閫夋嫨瀹�",
       },
       references: {
-        all_missing: "Unable to find references data.",
+        all_missing: "鏃犳硶鎵惧埌寮曠敤鏁版嵁銆�",
         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",
+        toggle_visible: "闅愯棌瀵嗙爜",
+        toggle_hidden: "鏄剧ず瀵嗙爜",
+      },
+      search: {
+        placeholder: "鎼滅储",
       },
     },
     message: {
-      about: "About",
-      are_you_sure: "Are you sure?",
+      about: "鍏充簬",
+      are_you_sure: "鎮ㄧ‘瀹氬悧锛�",
       auth_error:
-        "An error occurred while validating the authentication token.",
+        "楠岃瘉韬唤浠ょ墝鏃跺彂鐢熼敊璇��",
       bulk_delete_content:
         "纭畾瑕佸垹闄よ繖涓� %{name}? |||| 纭瑕佸垹闄よ繖浜� %{smart_count} 鏄庣粏?",
       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?",
+        "鎮ㄧ‘瀹氳鏇存柊杩欎釜 %{name}? |||| 鎮ㄧ‘瀹氳鏇存柊杩欎簺 %{smart_count} 椤瑰悧?",
       bulk_update_title: "淇敼 %{name} |||| 淇敼 %{smart_count} %{name}",
-      clear_array_input: "Are you sure you want to clear the whole list?",
+      clear_array_input: "鎮ㄧ‘瀹氳娓呯┖鏁翠釜鍒楄〃鍚楋紵",
       delete_content: "鎮ㄧ‘瀹炶鍒犻櫎姝ら」鍚楋紵",
       delete_title: "鍒犻櫎 %{name} #%{id}",
-      details: "Details",
-      error: "A client error occurred and your request couldn't be completed.",
+      details: "璇︽儏",
+      error: "鍙戠敓瀹㈡埛绔敊璇紝鎮ㄧ殑璇锋眰鏃犳硶瀹屾垚銆�",
       
       invalid_form: "琛ㄥ崟鏃犳晥 璇锋鏌ユ槸鍚︽湁閿欒!",
-      loading: "Please wait",
-      no: "No",
-      not_found: "Either you typed a wrong URL, or you followed a bad link.",
-      yes: "Yes",
+      loading: "璇风◢鍊�",
+      no: "鍚�",
+      not_found: "鎮ㄨ緭鍏ョ殑URL閿欒锛屾垨鑰呮偍鐐瑰嚮浜嗛敊璇殑閾炬帴銆�",
+      yes: "鏄�",
       unsaved_changes:
         "鎮ㄦ墍鍋氱殑閮ㄥ垎鏇存敼灏氭湭淇濆瓨銆傜‘瀹氳蹇界暐杩欎簺鏇存敼鍚楋紵",
     },
     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}",
+        "椤电爜 %{page} 瓒呭嚭鑼冨洿銆傝灏濊瘯涓婁竴椤点��",
+      page_out_of_boundaries: "椤电爜 %{page} 瓒呭嚭鑼冨洿",
+      page_out_from_end: "鏃犳硶璺宠浆鍒版渶鍚庝竴椤典箣鍚�",
+      page_out_from_begin: "鏃犳硶璺宠浆鍒扮1椤典箣鍓�",
+      page_range_info: "绗� %{from}-%{to} 鏉★紝鍏� %{count} 鏉�",
       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",
+        "绗� %{from}-%{to} 鏉★紝瓒呰繃 %{to} 鏉�",
+      current_page: "绗� %{page} 椤�",
+      page: "璺宠浆鍒扮 %{page} 椤�",
+      first: "璺宠浆鍒扮涓�椤�",
+      last: "璺宠浆鍒版渶鍚庝竴椤�",
+      next: "涓嬩竴椤�",
+      previous: "涓婁竴椤�",
       page_rows_per_page: "姣忛〉鏁伴噺:",
-      skip_nav: "Skip to content",
+      skip_nav: "璺宠浆鍒板唴瀹�",
     },
     sort: {
-      sort_by: "Sort by %{field} %{order}",
-      ASC: "ascending",
-      DESC: "descending",
+      sort_by: "鎸� %{field} %{order} 鎺掑簭",
+      ASC: "鍗囧簭",
+      DESC: "闄嶅簭",
     },
     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",
+      auth_check_error: "璇风櫥褰曚互缁х画",
+      user_menu: "涓汉璧勬枡",
+      username: "鐢ㄦ埛鍚�",
+      password: "瀵嗙爜",
+      sign_in: "鐧诲綍",
+      sign_in_error: "韬唤楠岃瘉澶辫触锛岃閲嶈瘯",
       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.",
+      bad_item: "閿欒鐨勫厓绱�",
+      item_doesnt_exist: "鍏冪礌涓嶅瓨鍦�",
+      http_error: "鏈嶅姟鍣ㄩ�氫俊閿欒",
+      data_provider_error: "鏁版嵁鎻愪緵绋嬪簭閿欒銆傝鏌ョ湅鎺у埗鍙颁簡瑙h鎯呫��",
+      i18n_error: "鏃犳硶鍔犺浇鎸囧畾璇█鐨勭炕璇�",
+      canceled: "鎿嶄綔宸插彇娑�",
+      logged_out: "鎮ㄧ殑浼氳瘽宸茬粨鏉燂紝璇烽噸鏂拌繛鎺ャ��",
+      not_authorized: "鎮ㄦ棤鏉冭闂璧勬簮銆�",
+      application_update_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",
+      minLength: "鑷冲皯闇�瑕� %{min} 涓瓧绗�",
+      maxLength: "鏈�澶� %{max} 涓瓧绗�",
+      minValue: "鑷冲皯涓� %{min}",
+      maxValue: "鏈�澶氫负 %{max}",
+      number: "蹇呴』鏄暟瀛�",
+      email: "蹇呴』鏄湁鏁堢殑閭鍦板潃",
+      oneOf: "蹇呴』鏄互涓嬩箣涓�: %{options}",
+      regex: "蹇呴』鍖归厤鐗瑰畾鏍煎紡 (姝e垯琛ㄨ揪寮�): %{pattern}",
+      unique: "蹇呴』鍞竴",
     },
     saved_queries: {
       label: "淇濆瓨杩囨护",
-      query_name: "Query name",
+      query_name: "鏌ヨ鍚嶇О",
       new_label: "淇濆瓨杩囨护鏉′欢...",
-      new_dialog_title: "Save current query as",
+      new_dialog_title: "灏嗗綋鍓嶆煡璇繚瀛樹负",
       remove_label: "绉婚櫎杩囨护鏉′欢",
-      remove_label_with_name: 'Remove query "%{name}"',
+      remove_label_with_name: '绉婚櫎鏌ヨ "%{name}"',
       remove_dialog_title: "绉婚櫎杩囨护鏉′欢?",
       remove_message: "鎮ㄧ‘瀹氳绉婚櫎宸蹭繚瀛樿繃婊ゆ潯浠跺悧锛�",
-      help: "Filter the list and save this query for later",
+      help: "杩囨护鍒楄〃骞朵繚瀛樻鏌ヨ浠ヤ緵浠ュ悗浣跨敤",
     },
     configurable: {
-      customize: "Customize",
-      configureMode: "Configure this page",
+      customize: "鑷畾涔�",
+      configureMode: "閰嶇疆姝ら〉闈�",
       inspector: {
-        title: "Inspector",
-        content: "Hover the application UI elements to configure them",
-        reset: "Reset Settings",
-        hideAll: "Hide All",
-        showAll: "Show All",
+        title: "妫�鏌ュ櫒",
+        content: "灏嗛紶鏍囨偓鍋滃湪搴旂敤绋嬪簭UI鍏冪礌涓婁互閰嶇疆瀹冧滑",
+        reset: "閲嶇疆璁剧疆",
+        hideAll: "闅愯棌鍏ㄩ儴",
+        showAll: "鏄剧ず鍏ㄩ儴",
       },
       Datagrid: {
-        title: "Datagrid",
-        unlabeled: "Unlabeled column #%{column}",
+        title: "鏁版嵁缃戞牸",
+        unlabeled: "鏈爣璁扮殑鍒� #%{column}",
       },
       SimpleForm: {
-        title: "Form",
-        unlabeled: "Unlabeled input #%{input}",
+        title: "琛ㄥ崟",
+        unlabeled: "鏈爣璁扮殑杈撳叆 #%{input}",
       },
       SimpleList: {
-        title: "List",
-        primaryText: "Primary text",
-        secondaryText: "Secondary text",
-        tertiaryText: "Tertiary text",
+        title: "鍒楄〃",
+        primaryText: "涓昏鏂囨湰",
+        secondaryText: "娆¤鏂囨湰",
+        tertiaryText: "绗笁鏂囨湰",
       },
     },
   },
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 00dfcf8..d1417c0 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1388,11 +1388,49 @@
     },
     ra: {
         action: {
+            search: '鎼滅储',
+            add_filter: '杩囨护鏉′欢',
+            add: '娣诲姞',
+            create: '娣诲姞',
+            export: '瀵煎嚭',
+            import: '瀵煎叆',
+            edit: '缂栬緫',
+            delete: '鍒犻櫎',
+            save: '淇濆瓨',
+            cancel: '鍙栨秷',
+            refresh: '鍒锋柊',
+            select_columns: '绛涢�夊垪',
+            select_all: '鍏ㄩ儴閫変腑',
+            unselect: '鍙栨秷閫夋嫨',
+            approved: '瀹℃牳',
+            remove_filter: '绉婚櫎杩欎釜杩囨护鍣�',
+            remove_all_filters: '娓呴櫎鎵�鏈夎繃婊ゆ潯浠�',
+            clear_filters: '娓呴櫎杩囨护鏉′欢',
             close: '鍏抽棴褰撳墠鏍囩',
             closeLeft: '鍏抽棴宸︿晶鏍囩',
             closeRight: '鍏抽棴鍙充晶鏍囩',
             closeOthers: '鍏抽棴鍏朵粬鏍囩',
             closeAll: '鍏抽棴鎵�鏈夋爣绛�',
+        },
+        page: {
+            empty_with_filters: '浣跨敤褰撳墠杩囨护鏉′欢鏈壘鍒扮粨鏋溿��',
+        },
+        navigation: {
+            no_results: '娌℃湁鎵惧埌鏁版嵁',
+            no_more_results: '椤电爜 %{page} 瓒呭嚭鑼冨洿銆傝灏濊瘯涓婁竴椤点��',
+            page_out_of_boundaries: '椤电爜 %{page} 瓒呭嚭鑼冨洿',
+            page_out_from_end: '鏃犳硶璺宠浆鍒版渶鍚庝竴椤典箣鍚�',
+            page_out_from_begin: '鏃犳硶璺宠浆鍒扮1椤典箣鍓�',
+            page_range_info: '绗� %{from}-%{to} 鏉★紝鍏� %{count} 鏉�',
+            partial_page_range_info: '绗� %{from}-%{to} 鏉★紝瓒呰繃 %{to} 鏉�',
+            current_page: '绗� %{page} 椤�',
+            page: '璺宠浆鍒扮 %{page} 椤�',
+            first: '璺宠浆鍒扮涓�椤�',
+            last: '璺宠浆鍒版渶鍚庝竴椤�',
+            next: '涓嬩竴椤�',
+            previous: '涓婁竴椤�',
+            page_rows_per_page: '姣忛〉鏁伴噺:',
+            skip_nav: '璺宠浆鍒板唴瀹�',
         }
     },
     request: {
diff --git a/rsf-admin/src/page/basicInfo/whMat/mySearchInput.jsx b/rsf-admin/src/page/basicInfo/whMat/mySearchInput.jsx
index 92e46b1..1a13041 100644
--- a/rsf-admin/src/page/basicInfo/whMat/mySearchInput.jsx
+++ b/rsf-admin/src/page/basicInfo/whMat/mySearchInput.jsx
@@ -1,17 +1,19 @@
 import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
 import { Card, useTheme, List, CardContent, Input, InputAdornment, IconButton, TextField } from "@mui/material";
 import { useForm } from 'react-hook-form';
+import { useTranslate } from 'react-admin';
 import Warehouse from "./warehouse";
 import { Filter, SearchInput } from 'react-admin';
 
 
 export const MySearchInput = (props) => {
     const [searchTerm, setSearchTerm] = useState('');
+    const translate = useTranslate();
     
     return (
         <>
             <TextField
-                label="Search"
+                label={translate('common.action.search')}
                 value={searchTerm}
                 onChange={(e) => setSearchTerm(e.target.value)}
             />
diff --git a/rsf-admin/src/page/histories/taskLog/TaskItemLogList.jsx b/rsf-admin/src/page/histories/taskLog/TaskItemLogList.jsx
index 92557e6..5908286 100644
--- a/rsf-admin/src/page/histories/taskLog/TaskItemLogList.jsx
+++ b/rsf-admin/src/page/histories/taskLog/TaskItemLogList.jsx
@@ -123,7 +123,7 @@
                 <DynamicFields />
             </List>
             <PageDrawer
-                title='TaskItemLog Detail'
+                title={translate('toolbar.detail')}
                 drawerVal={drawerVal}
                 setDrawerVal={setDrawerVal}
             >
diff --git a/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx b/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
index bf00454..c856e32 100644
--- a/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
+++ b/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
@@ -155,7 +155,7 @@
                 setOpen={setCreateDialog}
             /> */}
             <PageDrawer
-                title='TaskLog Detail'
+                title={translate('toolbar.detail')}
                 drawerVal={drawerVal}
                 setDrawerVal={setDrawerVal}
             >
diff --git a/rsf-admin/src/page/orders/check/CheckPreviewTable.jsx b/rsf-admin/src/page/orders/check/CheckPreviewTable.jsx
index f4a9aa3..e8ea846 100644
--- a/rsf-admin/src/page/orders/check/CheckPreviewTable.jsx
+++ b/rsf-admin/src/page/orders/check/CheckPreviewTable.jsx
@@ -69,7 +69,7 @@
         getActions: (params) => [
             <GridActionsCellItem
                 icon={<Delete />}
-                label="Delete"
+                label={translate('ra.action.delete')}
                 onClick={() => handleDelete(params.row, rows, setRows)}
             />,
         ]
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
index c8055c7..8934fe5 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -82,37 +82,6 @@
   },
 }));
 
-const filters = [
-  <SearchInput source="condition" alwaysOn />,
-  <TextInput source="code" label="table.field.outStock.code" alwaysOn />,
-  <TextInput source="poCode" label="table.field.outStock.poCode" />,
-  <NumberInput source="poId" label="table.field.outStock.poId" />,
-  <ReferenceInput source="type" reference="dictData" filter={{ dictTypeCode: 'sys_order_type', group: '2' }} label="table.field.outStock.type" alwaysOn>
-    <AutocompleteInput label="table.field.outStock.type" optionValue="value" />
-  </ReferenceInput>,
-  <ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_business_type', group: '2' }} label="table.field.outStock.wkType" alwaysOn>
-    <AutocompleteInput label="table.field.outStock.wkType" optionValue="value" />
-  </ReferenceInput>,
-  <NumberInput source="anfme" label="table.field.outStock.anfme" />,
-  <NumberInput source="qty" label="table.field.outStock.qty" />,
-  <TextInput source="logisNo" label="table.field.outStock.logisNo" />,
-  <DateInput source="arrTime" label="table.field.outStock.arrTime" />,
-  <SelectInput source="rleStatus" label="table.field.outStock.rleStatus"
-    choices={[
-      { id: 0, name: ' 姝e父' },
-      { id: 1, name: ' 宸查噴鏀�' },
-    ]}
-  />,
-
-  <TextInput label="common.field.memo" source="memo" />,
-  <DictionarySelect
-    label='table.field.outStock.exceStatus'
-    name="exceStatus"
-    dictTypeCode="sys_asn_exce_status"
-    alwaysOn
-  />,
-]
-
 const OutOrderList = (props) => {
 
   const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_business_type')) || [];
@@ -125,6 +94,37 @@
   const [modalType, setmodalType] = useState(0);
   const [select, setSelect] = useState(0);
   const translate = useTranslate();
+  
+  const filters = [
+    <SearchInput source="condition" alwaysOn placeholder={translate('ra.action.search')} />,
+    <TextInput source="code" label="table.field.outStock.code" alwaysOn />,
+    <TextInput source="poCode" label="table.field.outStock.poCode" />,
+    <NumberInput source="poId" label="table.field.outStock.poId" />,
+    <ReferenceInput source="type" reference="dictData" filter={{ dictTypeCode: 'sys_order_type', group: '2' }} label="table.field.outStock.type" alwaysOn>
+      <AutocompleteInput label="table.field.outStock.type" optionValue="value" />
+    </ReferenceInput>,
+    <ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_business_type', group: '2' }} label="table.field.outStock.wkType" alwaysOn>
+      <AutocompleteInput label="table.field.outStock.wkType" optionValue="value" />
+    </ReferenceInput>,
+    <NumberInput source="anfme" label="table.field.outStock.anfme" />,
+    <NumberInput source="qty" label="table.field.outStock.qty" />,
+    <TextInput source="logisNo" label="table.field.outStock.logisNo" />,
+    <DateInput source="arrTime" label="table.field.outStock.arrTime" />,
+    <SelectInput source="rleStatus" label="table.field.outStock.rleStatus"
+      choices={[
+        { id: 0, name: ' 姝e父' },
+        { id: 1, name: ' 宸查噴鏀�' },
+      ]}
+    />,
+
+    <TextInput label="common.field.memo" source="memo" />,
+    <DictionarySelect
+      label='table.field.outStock.exceStatus'
+      name="exceStatus"
+      dictTypeCode="sys_asn_exce_status"
+      alwaysOn
+    />,
+  ];
   const refresh = useRefresh();
   const notify = useNotify();
   const billReload = useRef();
diff --git a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
index c8628e2..1877e2f 100644
--- a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
@@ -423,7 +423,7 @@
         getActions: (params) => [
             <GridActionsCellItem
                 icon={<Delete />}
-                label="Delete"
+                label={translate('ra.action.delete')}
                 onClick={() => handleDelete(params.row, rows, setRows)}
             />,
         ]
diff --git a/rsf-admin/src/page/system/dept/DeptList.jsx b/rsf-admin/src/page/system/dept/DeptList.jsx
index ebd19c7..6cb12df 100644
--- a/rsf-admin/src/page/system/dept/DeptList.jsx
+++ b/rsf-admin/src/page/system/dept/DeptList.jsx
@@ -253,7 +253,7 @@
             <Box sx={{ mt: 1, mr: 3, display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
                 <Box width={300}>
                     <TextField
-                        label="Search"
+                        label={translate('common.action.search')}
                         value={filter}
                         onChange={({ target }) => {
                             setFilter(target.value)
diff --git a/rsf-admin/src/page/task/TaskItemList.jsx b/rsf-admin/src/page/task/TaskItemList.jsx
index 8aada40..fc18fcd 100644
--- a/rsf-admin/src/page/task/TaskItemList.jsx
+++ b/rsf-admin/src/page/task/TaskItemList.jsx
@@ -117,7 +117,7 @@
                 open={createDialog}
                 setOpen={setCreateDialog} />
             <PageDrawer
-                title='TaskItem Detail'
+                title={translate('toolbar.detail')}
                 drawerVal={drawerVal}
                 setDrawerVal={setDrawerVal}
             >
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 85ec42e..1667f99 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -191,7 +191,7 @@
                 </StyledDatagrid>
             </List>
             <PageDrawer
-                title='Task Detail'
+                title={translate('toolbar.detail')}
                 drawerVal={drawerVal}
                 setDrawerVal={setDrawerVal}
             >
diff --git a/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml b/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
index d839a40..fe6b5bd 100644
--- a/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
@@ -16,7 +16,6 @@
         SELECT * FROM
             (
                 SELECT
-                    id,
                     IF ( task_type = 1, COUNT( 1 ), 0 ) AS in_qty,
                     IF ( task_type = 1, SUM( anfme ), 0 ) AS in_anfme,
                     IF ( task_type = 101, SUM( anfme ), 0 ) AS out_anfme,

--
Gitblit v1.9.1