diff --git a/src/locales/en-US.js b/src/locales/en-US.js index b2c2e57..d3f82f0 100644 --- a/src/locales/en-US.js +++ b/src/locales/en-US.js @@ -1,1740 +1,1748 @@ -export default { - common: { - submit: 'Submit', - close: 'Close', - exit: 'Exit', - notice: 'Notice', - moduleBuilding: 'This module is under construction', - updateSuccess: 'Updated successfully', - confirmLogout: 'Are you sure you want to log out?', - languageSwitched: 'Language switched', - more: 'More', - reset: 'Reset', - complete: 'Done', - edit: 'Edit', - saveFailed: 'Save failed' - }, - tab: { - home: 'Home', - report: 'Reports', - work: 'Manage', - mine: 'Mine' - }, - work:{ - mold: '模具', - equipmentMaintenance: 'Equipment Maintenance', - keypart: '关键件', - spare: '备件', - }, - nav: { - home: 'Home', - mine: 'Profile', - avatar: 'Edit Avatar', - info: 'Profile', - editInfo: 'Edit Profile', - pwd: 'Change Password', - setting: 'App Settings', - help: 'FAQ', - about: 'About' - }, - dashboard: { - welcome: 'Welcome to', - subtitle: 'Besure Digital Intelligent Control Platform', - functionNav: 'Function Navigation', - editNavMenu: 'Edit Shortcuts', - configuredNav: 'Added', - unconfiguredNav: 'Add More', - dragHint: 'Drag icons to reorder, icons above will be displayed in control center', - clickHint: 'Tap icons to add or remove from configuration', - allNavMenu: 'All Functions', - productionOverview: 'Production Overview', - qualityOverview: 'Quality Overview', - productionPlan: 'Production Summary', - production: 'Production', - quality: 'Quality', - totalCount: 'Total', - passCount: 'Pass Count', - failCount: 'Fail Count', - qualityTrend: 'Quality Trend', - chartPlaceholder: 'Chart loading...', - totalWangongNumber: 'Total Reported', - totalPassNumber: 'Total Passed', - totalNoPassNumber: 'Total Failed', - totalPassRate: 'Total Pass Rate', - productPassRateRanking: 'Product Pass Rate Ranking', - passNumber: 'Pass Count', - noPassNumber: 'Fail Count', - periodLastWeek: 'Last Week', - periodThisWeek: 'This Week', - periodLast7Days: 'Last 7 Days', - periodLastMonth: 'Last Month', - periodThisMonth: 'This Month', - periodLastYear: 'Last Year', - collapseList: 'Collapse', - viewMore: 'View More ›', - productName: 'Product', - pipeline: 'Production Line', - planNumber: 'Planned Qty', - planStart: 'Start', - planEnd: 'End', - back: 'Back', - todoTitle: 'To-do Tasks', - noTodo: 'No pending tasks', - taskCode: 'Task Code: {value}', - taskType: 'Task Type: {value}', - taskTarget: 'Target: {value}', - createTime: 'Created At: {value}', - all: 'Total', - pending: 'Pending', - running: 'In Progress', - finished: 'Done', - mold: 'Mold', - equipment: 'Equipment', - keypart: 'Key Part', - spare: 'Spare Part', - product: 'Product Material', - statusScheduled: 'Scheduled', - statusTrial: 'Trial', - statusMass: 'Mass', - statusPause: 'Paused', - statusWaitStockIn: 'Waiting Stock-in', - viewPlan: 'View Plan: {code}', - filterTask: 'Task', - filterProduct: 'Product', - dateRange: 'Date Range', - startDate: 'Start Time', - endDate: 'End Time', - baogongNum: 'Reported', - passNum: 'Qualified', - noPassNum: 'Unqualified', - passRate: 'Pass Rate', - trendChart: 'Trend', - taskPlaceholder: 'Task mode under development', - totalTask: 'Total Tasks', - issuedNum: 'Issued', - partialScheduledNum: 'Partial Scheduled', - waitingProduction: 'Waiting', - producing: 'Producing', - completed: 'Completed', - taskTrend: 'Task Trend', - rangeYear: 'Last Year', - rangeMonth: 'This Month', - rangeWeek: 'This Week', - rangeToday: 'Today', - rangeCustom: 'Custom', - monday: 'Mon', - tuesday: 'Tue', - wednesday: 'Wed', - thursday: 'Thu', - friday: 'Fri', - saturday: 'Sat', - sunday: 'Sun' - }, - deviceOverview: { - title: 'Device Overview', - totalDevices: 'Total', - runningCount: 'Running', - standbyCount: 'Standby', - faultCount: 'Fault', - offlineCount: 'Offline', - utilizationRate: 'Utilization', - bootRate: 'Boot Rate', - faultRate: 'Fault Rate', - rateTrend: 'Utilization / Boot Rate Trend', - onlyScheduled: 'Scheduled Only', - skipHoliday: 'Skip Holidays', - periodLastWeek: 'Last Week', - periodThisWeek: 'This Week', - periodLast7Days: 'Last 7 Days', - periodLastMonth: 'Last Month', - periodThisMonth: 'This Month', - periodLastYear: 'Last Year', - utilizationRanking: 'Last 7 Days Utilization Ranking', - utilizationRateTrend: 'Utilization Rate', - deviceRateTrend: 'Single Device 7-Day Utilization/Boot Rate Trend', - selectDevice: 'Select Device', - selectDeviceHint: 'Please select a device to view trend' - }, - taskList: { - filter: 'Filter', - code: 'Task Code', - status: 'Status', - taskType: 'Task Type', - orderDate: 'Order Date', - deliveryDate: 'Delivery Date', - remark: 'Remark', - createTime: 'Create Time', - totalNumber: 'Total', - planNumber: 'Planned', - unPlanNumber: 'Unplanned', - storedPlanNumber: 'Stored', - urgent: 'Urgent', - noData: 'No task data', - viewTask: 'View Task: {code}' - }, - planList: { - taskCode: 'Task Code', - planCode: 'Plan Code', - employeeName: 'Reporter', - baogongNum: 'Reported', - passNum: 'Passed', - noPassNum: 'Failed', - passRate: 'Pass Rate', - baogongTime: 'Report Time', - reason: 'Reason', - noData: 'No report data', - viewDetail: 'View Detail: {code}' - }, - functionCommon: { - search: 'Search', - reset: 'Reset', - cancel: 'Cancel', - confirm: 'Confirm', - save: 'Save', - loading: 'Loading...', - loadingMore: 'Loading more...', - noMoreData: 'No more data', - noIdView: 'Missing ID, cannot view details', - noIdEdit: 'Missing ID, cannot edit', - noIdDelete: 'Missing ID, cannot delete', - loadFailed: 'Load failed', - deleteSuccess: 'Deleted successfully', - deleteFailed: 'Delete failed', - saveSuccess: 'Saved successfully', - saveFailed: 'Save failed', - createSuccess: 'Created successfully', - updateSuccess: 'Updated successfully', - confirmDelete: 'Confirm deletion', - uploading: 'Uploading', - uploadImageFailed: 'Image upload failed', - yes: 'Yes', - no: 'No', - all: 'All', - noMore: 'No more data', - confirmTitle: 'Confirm' - }, - moldGet: { - moduleName: 'Mold Stock-out', - subTitle: 'Filter quickly by no and status', - detailTitle: 'Mold Stock-out Detail', - basicInfo: 'Basic Info', - outNo: 'Stock-out No', - outType: 'Stock-out Type', - outTime: 'Stock-out Time', - outTimeSingle: 'Stock-out Date', - outTimePlaceholder: 'Select stock-out date', - warehouse: 'Warehouse', - allWarehouse: 'All Warehouses', - warehousePlaceholder: 'Select warehouse', - creator: 'Creator', - status: 'Status', - allStatus: 'All Status', - remark: 'Remark', - itemRemark: 'Item Remark', - attachment: 'Attachment', - fileUrlPlaceholder: 'Enter attachment URL', - remarkPlaceholder: 'Enter remark', - moldName: 'Mold', - moldCode: 'Mold Code', - moldStatus: 'Mold Status', - moldUseTime: 'Use Time', - machineName: 'Machine', - isEnable: 'Enabled', - createTime: 'Created At', - searchNo: 'Enter stock-out no', - searchMold: 'Enter mold code or name', - searchCode: 'Enter mold code', - searchName: 'Enter mold name', - itemListTitle: 'Item List', - selectMold: 'Select Mold', - noItems: 'No items', - count: 'Count', - noAuto: 'Generated automatically', - createTitle: 'Create Mold Stock-out', - editTitle: 'Edit Mold Stock-out', - edit: 'Edit', - delete: 'Delete', - approve: 'Approve', - empty: 'No mold stock-out data', - noMoldData: 'No mold options', - loadEditFailed: 'Failed to load edit data', - validatorOutTimeRequired: 'Stock-out date is required', - validatorWarehouseRequired: 'Warehouse is required', - validatorItemRequired: 'Select at least one mold', - validatorCountRequired: 'Count must be greater than 0', - confirmDelete: 'Delete stock-out {no}?', - confirmApprove: 'Approve stock-out {no}?', - approveSuccess: 'Approved successfully' - }, - moldReturn: { - moduleName: 'Mold Stock-in', - subTitle: 'Filter quickly by no and status', - detailTitle: 'Mold Stock-in Detail', - basicInfo: 'Basic Info', - inNo: 'Stock-in No', - inType: 'Stock-in Type', - inTime: 'Stock-in Time', - inTimeSingle: 'Stock-in Date', - inTimePlaceholder: 'Select stock-in date', - warehouse: 'Warehouse', - allWarehouse: 'All Warehouses', - warehousePlaceholder: 'Select warehouse', - creator: 'Creator', - status: 'Status', - allStatus: 'All Status', - remark: 'Remark', - itemRemark: 'Item Remark', - attachment: 'Attachment', - fileUrlPlaceholder: 'Enter attachment URL', - remarkPlaceholder: 'Enter remark', - moldName: 'Mold', - moldCode: 'Mold Code', - moldStatus: 'Mold Status', - moldUseTime: 'Use Time', - searchNo: 'Enter stock-in no', - searchCode: 'Enter mold code', - searchName: 'Enter mold name', - itemListTitle: 'Item List', - selectMold: 'Select Mold', - noItems: 'No items', - count: 'Count', - noAuto: 'Generated automatically', - createTitle: 'Create Mold Stock-in', - editTitle: 'Edit Mold Stock-in', - approve: 'Approve', - empty: 'No mold stock-in data', - noMoldData: 'No mold options', - loadEditFailed: 'Failed to load edit data', - validatorInTimeRequired: 'Stock-in date is required', - validatorWarehouseRequired: 'Warehouse is required', - validatorItemRequired: 'Select at least one mold', - validatorCountRequired: 'Count must be greater than 0', - confirmDelete: 'Delete stock-in {no}?', - confirmApprove: 'Approve stock-in {no}?', - approveSuccess: 'Approved successfully' - }, - moldOperate: { - moduleName: 'Mold Operate', - subTitle: 'Mold mounting and dismounting records', - detailTitle: 'Mold Operate Detail', - basicInfo: 'Basic Info', - tabUp: 'Mount', - tabDown: 'Dismount', - operateType: 'Operation Type', - mold: 'Mold', - lowerMold: 'Dismount Mold', - selectMold: 'Select Mold', - noSelectedMold: 'No selected molds', - allMold: 'All Molds', - searchRemark: 'Enter remark keyword', - searchCode: 'Enter mold code', - searchName: 'Enter mold name', - moldCode: 'Mold Code', - moldName: 'Mold Name', - device: 'Device', - deviceName: 'Device Name', - creatorName: 'Creator', - remark: 'Remark', - createTime: 'Created At', - createTitle: 'Create Mold Operate', - editTitle: 'Edit Mold Operate', - empty: 'No mold operate data', - noMoldData: 'No mold options', - placeholderDevice: 'Select device', - placeholderRemark: 'Enter remark', - validatorOperateTypeRequired: 'Operation type is required', - validatorDeviceRequired: 'Device is required', - validatorMoldRequired: 'Select at least one mold for mounting', - validatorOperatorRequired: 'Please select operator', - validatorLowerMoldRequired: 'Select at least one mold for dismounting', - loadEditFailed: 'Failed to load edit data', - confirmDelete: 'Confirm delete this mold operate record?', - scanDevice: 'Scan Device', - selectDevice: 'Select Device', - selectedDevice: 'Selected Device', - deviceCode: 'Device Code', - productionLine: 'Production Line', - currentMold: 'Current Mold', - deviceStatus: 'Device Status', - statusRunning: 'Running', - statusStop: 'Stopped', - statusFault: 'Fault', - selectMountMold: 'Select Mold to Mount', - product: 'Product', - status: 'Status', - pendingMount: 'Pending Mount', - confirmMount: 'Confirm Mount', - clickSelectMold: 'Click to select mold', - noDeviceData: 'No device data', - deviceNotFound: 'Device not found', - deviceInfo: 'Device Info', - currentMoldInfo: 'Current Mold on Machine', - mountTime: 'Mount Time', - useCount: 'Usage Count', - countUnit: '', - changeMountTarget: 'Change Mount Target', - changeTarget: 'Change Dismount Target', - confirmDismount: 'Confirm Dismount', - clickSelectDeviceFirst: 'Please select a device first', - noMoldOnDevice: 'No mold on this device', - historySuffix: ' History', - historyTitle: 'Mold Operate History', - searchPlaceholder: 'Search device/mold name', - placeholderOperator: 'Select operator', - filterAll: 'All', - filterToday: 'Today', - filterWeek: 'This Week', - historyEmpty: 'No history records', - totalPrefix: 'Total: ', - totalSuffix: '', - confirmDeleteHistory: 'Confirm delete this history record?', - operateTime: 'Operate Time', - operator: 'Operator' - }, - moldInspectionItems: { - moduleName: 'Inspection Items', - subTitle: 'Mold management inspection items', - detailTitle: 'Inspection Item Detail', - basicInfo: 'Basic Info', - code: 'Item Code', - name: 'Item Name', - inspectionMethod: 'Inspection Method', - valueType: 'Value Type', - isEnable: 'Enabled', - judgmentCriteria: 'Judgment Criteria', - creatorName: 'Creator', - createTime: 'Created At', - searchPlaceholder: 'Enter code/name/criteria', - createTitle: 'Create Inspection Item', - editTitle: 'Edit Inspection Item', - empty: 'No inspection items', - loadEditFailed: 'Failed to load edit data', - confirmDelete: 'Confirm delete this inspection item?', - placeholderCode: 'Enter item code', - placeholderName: 'Enter item name', - placeholderInspectionMethod: 'Select inspection method', - placeholderValueType: 'Select value type', - placeholderIsEnable: 'Select enabled status', - placeholderJudgmentCriteria: 'Enter judgment criteria', - validatorSubjectCodeRequired: 'Item code is required', - validatorSubjectNameRequired: 'Item name is required', - validatorInspectionMethodRequired: 'Inspection method is required', - validatorValueTypeRequired: 'Value type is required', - validatorIsEnableRequired: 'Enabled status is required', - validatorJudgmentCriteriaRequired: 'Judgment criteria is required' - }, - moldInspectionPlan: { - moduleName: 'Inspection Plan', - subTitle: 'Mold management inspection plan', - detailTitle: 'Inspection Plan Detail', - basicInfo: 'Basic Info', - planName: 'Plan Name', - planType: 'Plan Type', - planTypeMaintain: 'Maintenance', - planTypeInspect: 'Inspection', - description: 'Description', - subjectName: 'Inspection Items', - creatorName: 'Creator', - createTime: 'Created At', - updateTime: 'Updated At', - searchPlaceholder: 'Enter plan name', - createTitle: 'Create Inspection Plan', - editTitle: 'Edit Inspection Plan', - empty: 'No inspection plan data', - loadEditFailed: 'Failed to load edit data', - confirmDelete: 'Confirm delete this inspection plan?', - placeholderPlanName: 'Enter plan name', - placeholderPlanType: 'Select plan type', - placeholderDescription: 'Enter description', - placeholderSubjectSelect: 'Select inspection items', - subjectSelectTitle: 'Select Inspection Items', - noSubjectData: 'No inspection items', - validatorPlanNameRequired: 'Plan name is required', - validatorPlanTypeRequired: 'Plan type is required', - subjectListTitle: 'Related Inspection Items', - subjectCode: 'Item Code', - inspectionMethod: 'Inspection Method', - judgmentCriteria: 'Judgment Criteria' - }, - moldTaskConfig: { - moduleName: 'Inspection Task', - subTitle: 'Mold management inspection task', - detailTitle: 'Inspection Task Detail', - basicInfo: 'Basic Info', - name: 'Task Name', - taskType: 'Task Type', - taskTypeInspect: 'Inspection', - taskTypeMaintain: 'Maintenance', - moldList: 'Mold List', - projectForm: 'Inspection Plan', - projectFormName: 'Project Form', - dateRange: 'Valid Date Range', - startDate: 'Start Date', - endDate: 'End Date', - cronExpression: 'Cron Expression', - operableUsers: 'Operable Users', - enabled: 'Enabled', - creatorName: 'Creator', - createTime: 'Created At', - updateTime: 'Updated At', - searchPlaceholder: 'Enter task name', - createTitle: 'Create Inspection Task', - editTitle: 'Edit Inspection Task', - empty: 'No inspection task data', - loadEditFailed: 'Failed to load edit data', - confirmDeleteContent: 'Confirm delete this inspection task [{name}]?', - placeholderName: 'Enter task name', - placeholderTaskType: 'Select task type', - placeholderMoldList: 'Select molds', - placeholderProjectForm: 'Select inspection plans', - placeholderStartDate: 'Select start date', - placeholderEndDate: 'Select end date', - placeholderCron: 'Enter cron expression', - placeholderOperableUsers: 'Select operable users', - validatorNameRequired: 'Task name is required', - validatorTaskTypeRequired: 'Task type is required', - validatorMoldListRequired: 'Mold list is required', - validatorProjectFormRequired: 'Inspection plan is required', - validatorDateRangeRequired: 'Date range is required', - createTicketSuccess: 'Work order created successfully', - createTicketFail: 'Work order creation failed', - moldSelectTitle: 'Select Molds', - planSelectTitle: 'Select Inspection Plans', - userSelectTitle: 'Select Operable Users' - }, - equipmentInspectionTasks: { - moduleName: 'Equipment Inspection Tasks', - subTitle: 'Work order management for equipment inspection tasks', - detailTitle: 'Equipment Inspection Task Detail', - basicInfo: 'Basic Info', - createTicket: 'Add Work Order Management', - name: 'Task Name', - taskType: 'Task Type', - taskTypeInspect: 'Inspection', - taskTypeMaintain: 'Maintenance', - deviceList: 'Device List', - projectFormName: 'Project Form', - dateRange: 'Valid Date Range', - cronExpression: 'Cron Expression', - operableUsers: 'Operable Users', - enabled: 'Enabled', - creatorName: 'Creator', - createTime: 'Created At', - updateTime: 'Updated At', - searchPlaceholder: 'Enter task name/device code/device name', - empty: 'No equipment inspection tasks', - createTicketSuccess: 'Work order created successfully', - createTicketFail: 'Work order creation failed', - lineFilter: 'Line', - }, - equipmentInspectionRecord: { - moduleName: 'Equipment Inspection Records', - subTitle: 'Equipment inspection record list', - detailTitle: 'Equipment Inspection Record Detail', - taskType: 'Task Type', - taskTypeInspect: 'Inspection', - taskTypeMaintain: 'Maintenance', - taskTypeInspectShort: 'I', - taskTypeMaintainShort: 'M', - planNo: 'Task No.', - deviceName: 'Device Name', - configName: 'Inspection Template', - jobStatus: 'Job Status', - jobStatusPending: 'Pending', - jobStatusProcessing: 'Processing', - jobStatusCompleted: 'Completed', - jobStatusTimeout: 'Timeout', - jobStatusCancelled: 'Cancelled', - jobResult: 'Result', - jobResultOk: 'Pass', - jobResultNg: 'Fail', - taskTime: 'Job Time', - searchPlaceholder: 'Enter task no/device code/device name', - empty: 'No equipment inspection records', - progressTitle: 'Progress', - inspectionMethod: 'Inspection Method', - judgmentCriteria: 'Criteria', - valueType: 'Value Type', - resultText: 'Result', - requiredText: 'Required', - inspectionResultPending: 'Pending', - inspectionResultPass: 'Pass', - inspectionResultFail: 'Fail', - textInput: 'Input Value', - inputPlaceholder: 'Please enter', - remark: 'Remark', - images: 'Images', - maxUploadCount: 'You can upload up to 9 images', - selectAllDecisionError: 'Please choose a result for all pending items', - noResultData: 'No inspection items', - lineFilter: 'Line', - }, - moldWorkOrder: { - moduleName: 'Inspection Records', - subTitle: 'Mold management inspection records', - detailTitle: 'Inspection Record Detail', - basicInfo: 'Basic Info', - resultListTitle: 'Inspection Results', - planNo: 'Ticket No.', - moldName: 'Mold Name', - planType: 'Task Type', - planTypeInspect: 'Inspection', - planTypeMaintain: 'Maintenance', - configName: 'Task Config', - jobStatus: 'Job Status', - jobStatusPending: 'Pending', - jobStatusProcessing: 'Processing', - jobStatusCompleted: 'Completed', - jobStatusTimeout: 'Timeout', - jobStatusCancelled: 'Cancelled', - jobResult: 'Job Result', - jobResultOk: 'OK', - jobResultNg: 'NG', - operatorName: 'Operator', - taskTime: 'Task Time', - taskEndTime: 'End Time', - cancelReason: 'Cancel Reason', - createTime: 'Created At', - searchPlaceholder: 'Enter ticket no.', - empty: 'No inspection records', - cancelTask: 'Cancel Task', - cancelSuccess: 'Cancelled successfully', - cancelFail: 'Cancel failed', - placeholderCancelReason: 'Enter cancel reason', - validatorCancelReasonRequired: 'Cancel reason is required', - inspectionItemName: 'Inspection Item', - inspectionMethod: 'Inspection Method', - judgmentCriteria: 'Judgment Criteria', - valueType: 'Value Type', - inspectionResult: 'Inspection Result', - inspectionResultPending: 'Pending', - inspectionResultPass: 'Pass', - inspectionResultFail: 'Fail', - textInput: 'Input Value', - remark: 'Remark', - images: 'Images', - noResultData: 'No inspection result data', - loadMore: 'Load More' - }, - mine: { - clickLogin: 'Tap to sign in', - username: 'Username: {name}', - profile: 'Profile', - feedback: 'Feedback', - service: 'Support', - changePassword: 'Change Password', - logout: 'Log Out', - editProfile: 'Edit Profile', - faq: 'FAQ', - about: 'About', - appSettings: 'Settings' - }, - setting: { - language: 'System Language', - currentLanguage: 'Current: {language}', - terminalMode: 'Terminal Mode', - currentTerminal: 'Current Terminal: {terminal}', - switchingTerminal: 'Switching terminal...', - terminalSwitched: 'Switched to {terminal}', - switchLanguage: 'Switch Language', - checkUpdate: 'Check Updates', - cleanCache: 'Clear Cache', - logout: 'Log Out', - serverAddress: 'Server Address', - serverAddressHint: 'Enter the backend API address for the current account', - serverAddressPlaceholder: 'Enter backend address', - serverAddressRequired: 'Please enter the backend address', - serverAddressSaved: 'Server address saved. Please log in again', - mobile: 'Mobile', - scanner: 'Scanner', - zhCN: 'Chinese', - enUS: 'English' - }, - about: { - appName: 'Besure Production System', - version: 'Version', - email: 'Official Email', - hotline: 'Service Hotline', - website: 'Website' - }, - help: { - appUserQuestion: 'App User Questions', - otherQuestion: 'Other Questions', - appFeatureQuestion: 'What business features are supported by the app?', - appFeatureAnswer: 'Plan start, production report, material feeding records, production records', - reportQuestion: 'How can I submit a production report?', - reportAnswer: 'You can submit it on the report page.', - planQuestion: 'How is plan management handled?', - planAnswer: 'Use the plan management module.', - materialQuestion: 'How to manage feeding records?', - materialAnswer: 'Use the feeding record module.', - logoutQuestion: 'How do I log out?', - logoutAnswer: 'Go to [Mine] - [App Settings] - [Log Out] to sign out.', - avatarQuestion: 'How do I change my avatar?', - avatarAnswer: 'Go to [Mine] - [Choose Avatar] - [Submit] to update your avatar.', - passwordQuestion: 'How do I change my login password?', - passwordAnswer: 'Go to [Mine] - [App Settings] - [Change Password] to update your password.' - }, - info: { - username: 'Username', - nickname: 'Nickname', - gender: 'Gender', - male: 'Male', - female: 'Female', - phone: 'Mobile', - email: 'Email', - createdAt: 'Created At' - }, - editInfo: { - nickname: 'Nickname', - nicknamePlaceholder: 'Enter nickname', - phone: 'Mobile', - phonePlaceholder: 'Enter mobile number', - email: 'Email', - emailPlaceholder: 'Enter email', - gender: 'Gender', - nicknameRequired: 'Nickname is required', - phoneRequired: 'Mobile number is required', - phoneInvalid: 'Please enter a valid mobile number', - emailRequired: 'Email is required', - emailInvalid: 'Please enter a valid email' - }, - pwd: { - oldPassword: 'Current Password', - newPassword: 'New Password', - confirmPassword: 'Confirm Password', - oldPasswordPlaceholder: 'Enter current password', - newPasswordPlaceholder: 'Enter new password', - confirmPasswordPlaceholder: 'Confirm new password', - oldPasswordRequired: 'Current password is required', - newPasswordRequired: 'New password is required', - passwordLength: 'Length must be between 6 and 20 characters', - confirmPasswordRequired: 'Please confirm password', - passwordNotMatch: 'The two passwords do not match' - }, - avatar: { - chooseAvatar: 'Choose Avatar' - }, - materialCategory: { - moduleName: 'Product Category', - subTitle: 'Product material category management', - detailTitle: 'Category Detail', - basicInfo: 'Basic Info', - code: 'Category Code', - name: 'Category Name', - parentName: 'Parent Category', - rootCategory: 'None (Top Level)', - sort: 'Sort', - status: 'Status', - statusEnable: 'Enable', - statusDisable: 'Disable', - createTime: 'Created At', - searchPlaceholder: 'Enter category code/name', - createTitle: 'Create Category', - editTitle: 'Edit Category', - empty: 'No category data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing category ID', - loadFailed: 'Failed to load category detail', - placeholderCode: 'Enter category code', - placeholderName: 'Enter category name', - placeholderParent: 'Select parent category', - placeholderSort: 'Enter sort order', - placeholderStatus: 'Select status', - validatorCodeRequired: 'Category code is required', - validatorNameRequired: 'Category name is required', - validatorSortRequired: 'Sort order is required', - validatorStatusRequired: 'Status is required', - confirmDeleteContent: 'Confirm delete category [{name}]?' - }, - materialInfo: { - moduleName: 'Product Material', - subTitle: 'Product material information management', - detailTitle: 'Material Detail', - basicInfo: 'Basic Info', - barCode: 'Barcode', - name: 'Material Name', - category: 'Category', - unit: 'Unit', - standard: 'Specification', - expiryDay: 'Shelf Life (Days)', - status: 'Status', - statusEnable: 'Enable', - statusDisable: 'Disable', - remark: 'Remark', - createTime: 'Created At', - autoCode: 'Auto Generate', - searchPlaceholder: 'Enter material name/barcode', - createTitle: 'Create Material', - editTitle: 'Edit Material', - empty: 'No material data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing material ID', - loadFailed: 'Failed to load material detail', - placeholderBarCode: 'Enter barcode', - placeholderName: 'Enter material name', - placeholderCategory: 'Select category', - placeholderUnit: 'Select unit', - placeholderStandard: 'Enter specification', - placeholderExpiryDay: 'Enter shelf life days', - placeholderStatus: 'Select status', - placeholderRemark: 'Enter remark', - validatorBarCodeRequired: 'Barcode is required', - validatorNameRequired: 'Material name is required', - validatorCategoryRequired: 'Category is required', - validatorUnitRequired: 'Unit is required', - confirmDeleteContent: 'Confirm delete material [{name}]?' - }, - productBom: { - moduleName: 'Product BOM', - subTitle: 'Product BOM management', - detailTitle: 'BOM Detail', - basicInfo: 'Basic Info', - code: 'BOM Code', - version: 'Version', - product: 'Product', - unit: 'Unit', - yieldRate: 'Yield Rate', - isEnable: 'Enabled', - enableYes: 'Yes', - enableNo: 'No', - remark: 'Remark', - createTime: 'Created At', - searchPlaceholder: 'Enter BOM code', - createTitle: 'Create BOM', - editTitle: 'Edit BOM', - empty: 'No BOM data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing BOM ID', - loadFailed: 'Failed to load BOM detail', - placeholderCode: 'Enter BOM code', - placeholderVersion: 'Enter version', - placeholderProduct: 'Select product', - placeholderUnit: 'Select unit', - placeholderYieldRate: 'Enter yield rate', - placeholderEnable: 'Select enabled status', - placeholderRemark: 'Enter remark', - validatorCodeRequired: 'BOM code is required', - validatorVersionRequired: 'Version is required', - validatorProductRequired: 'Product is required', - validatorUnitRequired: 'Unit is required', - validatorEnableRequired: 'Enabled status is required', - confirmDeleteContent: 'Confirm delete BOM [{code}]?', - detailTab: 'BOM Details', - detailUsageNumber: 'Usage Qty', - detailUnit: 'Unit', - detailLossRate: 'Loss Rate', - detailRemark: 'Remark', - detailEmpty: 'No BOM detail data' - }, - equipmentCategory: { - moduleName: 'Equipment Category', - subTitle: 'Equipment category management', - detailTitle: 'Category Detail', - basicInfo: 'Basic Info', - code: 'Category Code', - name: 'Category Name', - parentName: 'Parent Category', - rootCategory: 'None (Top Level)', - sort: 'Sort', - remark: 'Remark', - createTime: 'Created At', - searchPlaceholder: 'Enter category code/name', - createTitle: 'Create Category', - editTitle: 'Edit Category', - empty: 'No category data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing category ID', - loadFailed: 'Failed to load category detail', - placeholderCode: 'Enter category code', - placeholderName: 'Enter category name', - placeholderParent: 'Select parent category', - placeholderSort: 'Enter sort order', - placeholderRemark: 'Enter remark', - validatorCodeRequired: 'Category code is required', - validatorNameRequired: 'Category name is required', - confirmDeleteContent: 'Confirm delete category [{name}]?' - }, - equipmentLedger: { - moduleName: 'Equipment Ledger11', - subTitle: 'Equipment ledger management', - detailTitle: 'Equipment Detail', - basicInfo: 'Basic Info', - deviceCode: 'Device Code', - deviceName: 'Device Name', - deviceType: 'Device Type', - deviceStatus: 'Device Status', - lineFilter: 'Line', - scanUnrecognized: 'QR code content not recognized', - scanTypeMismatch: 'QR code type does not match', - scanFailed: 'Scan failed', - deviceSpec: 'Device Spec', - isScheduled: 'Scheduled', - ratedCapacity: 'Rated Capacity', - dailyAverageValue: 'Daily Avg Value', - dataCollectionCapacity: 'Data Collection Capacity', - productionDate: 'Production Date', - factoryEntryDate: 'Factory Entry Date', - deviceLocation: 'Device Location', - deviceManagerName: 'Device Manager', - workshop: 'Workshop', - remark: 'Remark', - creatorName: 'Creator', - createTime: 'Created At', - autoCode: 'Auto Generate', - yes: 'Yes', - no: 'No', - searchPlaceholder: 'Enter device code/name', - createTitle: 'Create Equipment', - editTitle: 'Edit Equipment', - empty: 'No equipment data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing equipment ID', - loadFailed: 'Failed to load equipment detail', - placeholderDeviceCode: 'Enter device code', - placeholderDeviceName: 'Enter device name', - placeholderDeviceType: 'Select device type', - placeholderDeviceSpec: 'Enter device spec', - placeholderRatedCapacity: 'Enter rated capacity', - placeholderDailyAverageValue: 'Enter daily average value', - placeholderDataCollectionCapacity: 'Enter data collection capacity', - placeholderProductionDate: 'Select production date', - placeholderFactoryEntryDate: 'Select factory entry date', - placeholderDeviceLocation: 'Enter device location', - placeholderRemark: 'Enter remark', - validatorDeviceCodeRequired: 'Device code is required', - validatorDeviceNameRequired: 'Device name is required', - validatorDeviceTypeRequired: 'Device type is required', - validatorProductionDateRequired: 'Production date is required', - validatorFactoryEntryDateRequired: 'Factory entry date is required', - validatorRatedCapacityRequired: 'Rated capacity is required', - validatorDailyAverageValueRequired: 'Daily average value is required', - validatorDataCollectionCapacityRequired: 'Data collection capacity is required', - confirmDeleteContent: 'Confirm delete equipment [{name}]?', - checkHistory: 'Inspection', - maintainHistory: 'Maintenance', - repairHistory: 'Repair', - operator: 'Operator', - inspectionMethod: 'Inspection Method', - criteria: 'Criteria', - inspectionTime: 'Inspection Time', - maintainMethod: 'Maintenance Method', - maintainTime: 'Maintenance Time', - repairName: 'Repair Order Name', - faultPhenomenon: 'Fault Phenomenon', - faultDescription: 'Fault Description', - replacementParts: 'Replacement Parts', - repairContent: 'Repair Content', - finishDate: 'Finish Date', - faultImages: 'Fault Images', - repairedImages: 'After-repair Images', - noHistoryData: 'No history data', - resultPending: 'Pending', - resultPass: 'Pass', - resultFail: 'Fail', - repairPending: 'Pending', - repairProcessing: 'Processing', - repairCompleted: 'Completed', - repairAbnormal: 'Abnormal' - }, - equipmentMaintenance: { - moduleName: 'Equipment Repair', - createTitle: 'Create Equipment Repair', - editTitle: 'Edit Equipment Repair', - detailTitle: 'Equipment Repair Detail', - repairTitle: 'Repair Processing', - basicInfo: 'Basic Info', - repairObject: 'Repair Object', - repairCode: 'Repair Order No.', - repairName: 'Repair Order Name', - requireDate: 'Report Date', - acceptedBy: 'Repair Technician', - confirmBy: 'Inspector', - machineryTypeId: 'Equipment Type', - machineryTypeDevice: 'Equipment', - machineryTypeKeyItem: 'Key Component', - device: 'Equipment', - component: 'Key Component', - faultLevel: 'Failure Level', - isShutdown: 'Shutdown Required', - status: 'Document Status', - faultInfo: 'Fault Info', - faultPhenomenon: 'Fault Phenomenon', - faultDescription: 'Fault Description', - faultImages: 'Fault Images', - repairResultSection: 'Repair Result', - repairResult: 'Repair Result', - finishDate: 'Completion Date', - confirmDate: 'Acceptance Date', - downtimeDuration: 'Downtime Duration', - faultReason: 'Fault Cause', - handlingMeasures: 'Handling Measures', - replacementParts: 'Replacement Parts', - repairContent: 'Repair Content', - repairedImages: 'Post-repair Images', - remark: 'Remark', - autoCode: 'Auto Generate', - deviceLabel: 'Equipment', - reportTimeLabel: 'Report Time', - searchPlaceholder: 'Enter order no/device code/device name', - empty: 'No repair records', - statusPending: 'Pending Repair', - statusPassed: 'Passed', - statusRejected: 'Rejected', - placeholderRepairCode: 'Enter repair order no.', - placeholderRepairName: 'Enter repair order name', - placeholderRequireDate: 'Select report date', - placeholderAcceptedBy: 'Select repair technician', - placeholderConfirmBy: 'Select inspector', - placeholderDevice: 'Select equipment', - placeholderComponent: 'Select key component', - placeholderFaultPhenomenon: 'Enter fault phenomenon', - placeholderFaultDescription: 'Enter fault description', - placeholderFinishDate: 'Select completion date', - placeholderConfirmDate: 'Select acceptance date', - placeholderDowntimeDuration: 'Enter downtime duration in hours', - placeholderFaultReason: 'Enter fault cause', - placeholderHandlingMeasures: 'Enter handling measures', - placeholderReplacementParts: 'Enter replacement parts', - placeholderRepairContent: 'Enter repair content', - placeholderRemark: 'Enter remark', - loadDetailFailed: 'Failed to load details', - scanUnrecognized: 'No content recognized', - scanEquipmentRequired: 'Please scan an equipment QR code', - deviceNotFound: 'Matching equipment not found', - scanFailed: 'Scan failed', - maxUploadCount: 'You can upload up to 9 images', - saving: 'Saving', - saveSuccess: 'Saved successfully', - submitSuccess: 'Submitted successfully', - submitFailed: 'Submit failed', - noId: 'Missing repair order ID', - confirmDeleteContent: 'Delete repair order "{code}"?', - validatorRepairCodeRequired: 'Please enter the repair order no.', - validatorRepairNameRequired: 'Please enter the repair order name', - validatorDeviceRequired: 'Please select equipment', - validatorComponentRequired: 'Please select key component', - validatorRequireDateRequired: 'Please select the report date', - validatorFaultLevelRequired: 'Please select the failure level', - validatorIsShutdownRequired: 'Please select whether shutdown is required', - validatorFaultPhenomenonRequired: 'Please enter the fault phenomenon', - lineFilter: 'Line', - validatorRepairStatusRequired: 'Please select the repair result', - validatorFinishDateRequired: 'Please select the completion date', - validatorConfirmDateRequired: 'Please select the acceptance date' - }, - criticalComponent: { - moduleName: 'Critical Component', - subTitle: 'Equipment critical component management', - detailTitle: 'Component Detail', - basicInfo: 'Basic Info', - code: 'Component Code', - name: 'Component Name', - deviceSpec: 'Specification', - description: 'Description', - count: 'Count', - remark: 'Remark', - creatorName: 'Creator', - createTime: 'Created At', - autoCode: 'Auto Generate', - searchPlaceholder: 'Enter code/name', - createTitle: 'Create Component', - editTitle: 'Edit Component', - empty: 'No component data', - loadEditFailed: 'Failed to load edit data', - noId: 'Missing component ID', - loadFailed: 'Failed to load component detail', - placeholderCode: 'Enter component code', - placeholderName: 'Enter component name', - placeholderDeviceSpec: 'Enter specification', - placeholderDescription: 'Enter description', - placeholderCount: 'Enter count', - placeholderRemark: 'Enter remark', - validatorCodeRequired: 'Component code is required', - validatorNameRequired: 'Component name is required', - confirmDeleteContent: 'Confirm delete component [{name}]?' - }, - moldLedger: { - moduleName: 'Mold Ledger', - subTitle: 'Mold ledger management', - detailTitle: 'Mold Detail', - basicInfo: 'Mold Basic Info', - moldPlaceholder: 'Mold', - moldName: 'Mold Name', - product: 'Product', - moldCode: 'Mold Code', - status: 'Status', - versionSpec: 'Version/Spec', - cavityCount: 'Cavity Count', - currentDevice: 'Current Device', - useCount: 'Use Count', - expand: 'Expand', - collapse: 'Collapse', - tabChildMold: 'Sub-molds', - tabInspection: 'Inspection', - tabRepair: 'Repair', - tabMaintenance: 'Maintenance', - tabInstall: 'Installation', - installLocation: 'Install Location', - material: 'Material', - quantity: 'Quantity', - lastReplace: 'Last Replace', - usedDays: 'Used {days} days', - remark: 'Remark', - noChildMold: 'No sub-mold data', - noInspection: 'No inspection records', - noRepair: 'No repair records', - noMaintenance: 'No maintenance records', - noInstall: 'No installation records', - inspectionMethod: 'Inspection Method', - criteria: 'Criteria', - inspectionTime: 'Inspection Time', - maintainMethod: 'Maintenance Method', - maintainTime: 'Maintenance Time', - repairProject: 'Repair Project', - projectContent: 'Project Content', - finishTime: 'Finish Time', - operateMold: 'Mold', - operator: 'Operator', - time: 'Time', - upperMold: 'Mount', - lowerMold: 'Dismount', - missingBrandId: 'Missing mold brand ID', - detailLoadFailed: 'Failed to load detail', - childLoadFailed: 'Failed to load sub-molds', - inspectionLoadFailed: 'Failed to load inspection records', - repairLoadFailed: 'Failed to load repair records', - maintainLoadFailed: 'Failed to load maintenance records', - installLoadFailed: 'Failed to load installation records', - resultPending: 'Pending', - resultPass: 'Pass', - resultWarning: 'Warning', - repairCompleted: 'Completed', - repairAbnormal: 'Abnormal', - repairProcessing: 'Processing', - searchPlaceholder: 'Enter mold code or name', - allStatus: 'All', - selectMoldStatus: 'Select Mold Status', - clear: 'Clear', - name: 'Name', - createTime: 'Created At', - confirmDeleteContent: 'Confirm delete mold brand "{name}"?', - empty: 'No mold ledger data', - scanUnrecognized: 'Unrecognized QR code', - scanFormatError: 'Invalid QR code format', - scanFailed: 'Scan failed', - noIdView: 'Missing ID, cannot view details', - noIdDelete: 'Missing ID, cannot delete' - }, - moldCheck: { - moduleName: 'Mold Inspection', - addTitle: 'Add Inspection', - detailTitle: 'Inspection Detail', - searchPlaceholder: 'Enter inspection No.', - empty: 'No inspection records', - add: 'Add', - moldName: 'Mold Name', - moldCode: 'Mold Code', - product: 'Product', - status: 'Status', - taskType: 'Task Type', - taskTypeInspect: 'Inspection', - taskTypeMaintain: 'Maintenance', - planNo: 'Inspection No.', - taskTime: 'Task Time', - template: 'Template', - operator: 'Operator', - jobStatusPending: 'Pending', - jobStatusProcessing: 'Processing', - jobStatusCompleted: 'Completed', - jobStatusTimeout: 'Timeout', - jobStatusCancelled: 'Cancelled', - jobResultOk: 'OK', - jobResultNg: 'NG', - progressTitle: 'Progress', - noResultData: 'No inspection result data', - requiredText: 'Required', - inspectionMethod: 'Inspection Method', - judgmentCriteria: 'Judgment Criteria', - textInput: 'Input Value', - inputPlaceholder: 'Enter value', - images: 'Images', - remark: 'Remark', - resultText: 'Result', - inspectionResultPass: 'Pass', - inspectionResultFail: 'Fail', - inspectionResultPending: 'Pending', - maxUploadCount: 'Max 3 images', - selectAllDecisionError: 'Please select all inspection results', - currentMoldInfo: 'Mold Info', - moldGroupCode: 'Mold Group Code', - moldGroupName: 'Mold Group Name', - cavityCount: 'Cavity Count', - moldSize: 'Mold Size', - currentDevice: 'Current Device', - selectMold: 'Select Mold', - reSelectMold: 'Re-select Mold', - selectMoldError: 'Please select a mold', - searchMold: 'Enter mold name', - noMoldInfo: 'Please select a mold', - noMoldData: 'No molds available', - taskName: 'Task Name', - taskInfo: 'Task Info', - placeholderTaskName: 'Enter task name', - templateSelection: 'Template/Task Selection', - selectTemplate: 'Select Template', - selectTemplateError: 'Please select inspection template', - noItems: 'Please select inspection template first', - noTemplate: 'No templates', - resultListTitle: 'Inspection Results', - editResult: 'Edit', - cancelEdit: 'Cancel Edit', - submit: 'Submit Inspection', - submitSuccess: 'Inspection submitted successfully', - submitFailed: 'Failed to submit inspection', - reInspect: 'Re-inspect' - }, - moldMaintain: { - moduleName: 'Mold Maintenance', - addTitle: 'Add Maintenance', - detailTitle: 'Maintenance Detail', - searchPlaceholder: 'Enter maintenance No.', - empty: 'No maintenance records', - add: 'Add', - moldName: 'Mold Name', - moldCode: 'Mold Code', - product: 'Product', - status: 'Status', - taskType: 'Task Type', - taskTypeInspect: 'Inspection', - taskTypeMaintain: 'Maintenance', - planNo: 'Maintenance No.', - taskTime: 'Task Time', - template: 'Template', - operator: 'Operator', - jobResultOk: 'OK', - jobResultNg: 'NG', - progressTitle: 'Progress', - noResultData: 'No maintenance result data', - requiredText: 'Required', - inspectionMethod: 'Maintenance Method', - judgmentCriteria: 'Judgment Criteria', - textInput: 'Input Value', - inputPlaceholder: 'Enter value', - images: 'Images', - remark: 'Remark', - resultText: 'Result', - inspectionResultPass: 'Pass', - inspectionResultFail: 'Fail', - inspectionResultPending: 'Pending', - maxUploadCount: 'Max 3 images', - selectAllDecisionError: 'Please select all maintenance results', - currentMoldInfo: 'Mold Info', - moldGroupCode: 'Mold Group Code', - moldGroupName: 'Mold Group Name', - cavityCount: 'Cavity Count', - moldSize: 'Mold Size', - currentDevice: 'Current Device', - selectMold: 'Select Mold', - reSelectMold: 'Re-select Mold', - selectMoldError: 'Please select a mold', - searchMold: 'Enter mold name', - noMoldInfo: 'Please select a mold', - noMoldData: 'No molds available', - taskName: 'Task Name', - taskInfo: 'Task Info', - placeholderTaskName: 'Enter task name', - templateSelection: 'Template/Task Selection', - selectTemplate: 'Select Template', - selectTemplateError: 'Please select maintenance template', - noItems: 'Please select maintenance template first', - noTemplate: 'No templates', - resultListTitle: 'Inspection Results', - editResult: 'Edit', - cancelEdit: 'Cancel Edit', - submit: 'Submit Maintenance', - submitSuccess: 'Maintenance submitted successfully', - submitFailed: 'Failed to submit maintenance', - reInspect: 'Re-maintain' - }, - moldPressureNet: { - moduleName: 'Replace Pressure Net', - recordTitle: 'Pressure Net Replacement', - recordDesc: 'Select mold group and sub-mold, then confirm replacement time', - history: 'History', - historyTitle: 'Pressure Net History', - moldGroup: 'Mold Group', - selectMoldGroup: 'Select Mold Group', - searchMoldGroup: 'Enter mold group name', - noMoldGroup: 'No mold groups', - moldGroupName: 'Mold Group Name', - moldGroupCode: 'Mold Group Code', - product: 'Product', - subMold: 'Sub-mold', - selectSubMold: 'Select Sub-mold', - reSelectMoldGroup: 'Re-select Mold Group', - reSelectSubMold: 'Re-select Sub-mold', - subMoldCode: 'Sub-mold Code', - subMoldName: 'Sub-mold Name', - searchSubMold: 'Search sub-mold name/code', - noSubMold: 'No sub-molds', - replaceInfo: 'Replacement Info', - replaceTime: 'Replacement Time', - pressureNetTime: 'Pressure Net Time', - selectReplaceTime: 'Select replacement time', - operator: 'Operator', - selectOperator: 'Select operator', - noOperator: 'No operators', - remark: 'Remark', - remarkPlaceholder: 'Enter replacement reason or remark', - confirmReplace: 'Confirm', - selectMoldGroupError: 'Please select a mold group', - selectSubMoldError: 'Please select a sub-mold', - selectedCount: '{count} sub-mold(s) selected', - selectReplaceTimeError: 'Please select replacement time', - submitSuccess: 'Saved successfully', - submitFailed: 'Save failed', - historyMoldIdPlaceholder: 'Enter sub-mold ID, blank for all', - searchBrandName: 'Mold Group Name', - selectDate: 'Select Date', - createTime: 'Create Time', - noHistory: 'No pressure net history' - }, - moldRepair: { - moduleName: 'Mold Repair', - createTitle: 'Create Mold Repair', - editTitle: 'Edit Mold Repair', - detailTitle: 'Mold Repair Detail', - repairTitle: 'Repair Processing', - basicInfo: 'Basic Info', - repairObject: 'Repair Object', - repairCode: 'Repair Code', - repairName: 'Repair Name', - requireDate: 'Require Date', - acceptedBy: 'Repair User', - confirmBy: 'Confirm User', - mold: 'Mold', - moldCode: 'Mold Code', - moldName: 'Mold Name', - specModel: 'Spec Model', - brand: 'Brand', - faultLevel: 'Fault Level', - isShutdown: 'Is Shutdown', - status: 'Status', - faultInfo: 'Fault Info', - faultPhenomenon: 'Fault Phenomenon', - faultDescription: 'Fault Description', - faultImages: 'Fault Images', - repairResultSection: 'Repair Result', - repairResult: 'Repair Result', - finishDate: 'Finish Date', - confirmDate: 'Confirm Date', - downtimeDuration: 'Downtime Duration', - faultReason: 'Fault Reason', - handlingMeasures: 'Handling Measures', - replacementParts: 'Replacement Parts', - repairContent: 'Repair Content', - repairedImages: 'Repaired Images', - remark: 'Remark', - autoCode: 'Auto Code', - moldLabel: 'Mold', - reportTimeLabel: 'Report Time', - searchPlaceholder: 'Enter code or mold code', - empty: 'No repair records', - statusPending: 'Pending', - statusPassed: 'Passed', - statusRejected: 'Rejected', - orderStatusPending: 'Pending', - orderStatusDone: 'Completed', - placeholderRepairCode: 'Enter repair code', - placeholderRepairName: 'Enter repair name', - placeholderRequireDate: 'Select require date', - placeholderAcceptedBy: 'Select repair user', - placeholderConfirmBy: 'Select confirm user', - placeholderUserSearch: 'Search by nickname', - placeholderMold: 'Select mold', - placeholderMoldNameAuto: 'Auto filled', - placeholderMoldCodeAuto: 'Auto filled', - placeholderFaultPhenomenon: 'Enter fault phenomenon', - placeholderFaultDescription: 'Enter fault description', - placeholderFinishDate: 'Select finish date', - placeholderConfirmDate: 'Select confirm date', - placeholderDowntimeDuration: 'Enter downtime duration (hours)', - placeholderFaultReason: 'Enter fault reason', - placeholderHandlingMeasures: 'Enter handling measures', - placeholderReplacementParts: 'Enter replacement parts', - placeholderRepairContent: 'Enter repair content', - placeholderRemark: 'Enter remark', - loadDetailFailed: 'Failed to load detail', - scanUnrecognized: 'Unrecognized content', - scanMoldRequired: 'Please scan mold QR code', - moldNotFound: 'Mold not found', - scanFailed: 'Scan failed', - maxUploadCount: 'Max 9 images', - noUserData: 'No user data', - saving: 'Saving', - saveSuccess: 'Saved successfully', - submitSuccess: 'Submitted successfully', - submitFailed: 'Submit failed', - noId: 'Missing repair ID', - confirmDeleteContent: 'Confirm delete repair "{code}"?', - validatorRepairCodeRequired: 'Repair code is required', - validatorRepairNameRequired: 'Repair name is required', - validatorMoldRequired: 'Mold is required', - validatorRequireDateRequired: 'Require date is required', - validatorFaultLevelRequired: 'Fault level is required', - validatorIsShutdownRequired: 'Is shutdown is required', - validatorFaultPhenomenonRequired: 'Fault phenomenon is required', - validatorUserRequired: 'Please select a user', - validatorRepairStatusRequired: 'Repair result is required', - validatorFinishDateRequired: 'Finish date is required', - validatorConfirmDateRequired: 'Confirm date is required' - }, - productInbound: { - moduleName: 'Product Inbound', - createTitle: 'New Product Inbound', - detailTitle: 'Product Inbound Detail', - selectProductTitle: 'Select Product', - selectTaskTitle: 'Select Task Order', - selectTaskProductTitle: 'Select Task Product', - selectPalletTitle: 'Select Pallet', - createPalletTitle: 'New Pallet', - all: 'All', - inboundStatus: 'Inbound Status', - reset: 'Reset', - clear: 'Clear', - loading: 'Loading...', - loadingMore: 'Loading more...', - noMoreData: 'No more data', - confirm: 'Confirm', - cancel: 'Cancel', - back: 'Back', - submit: 'OK', - submitting: 'Submitting...', - tip: 'Tip', - choose: 'Please select', - yes: 'Yes', - no: 'No', - statusPending: 'Pending Inbound', - statusAuditing: 'Pending Review', - statusStored: 'Stored', - statusRejected: 'Rejected', - searchDocumentPlaceholder: 'Enter inbound No.', - searchProductPlaceholder: 'Search product name/code/spec', - searchTaskPlaceholder: 'Search task order No.', - searchTaskProductPlaceholder: 'Search product name/code', - searchPalletPlaceholder: 'Search pallet code', - productInfo: 'Product Info', - inboundInfo: 'Inbound Info', - inboundTime: 'Inbound Time', - selectInboundTime: 'Select inbound time', - operator: 'Operator', - selectOperator: 'Select operator', - inboundQuantity: 'Inbound Quantity', - reviewer: 'Reviewer', - auditor: 'Auditor', - documentNo: 'Document No.', - inboundType: 'Inbound Type', - remark: 'Remark', - remarkPlaceholder: 'Enter remark', - attachment: 'Attachment', - chooseFile: 'Choose File', - itemList: 'Inbound List', - addProduct: 'Add Product', - product: 'Product', - pallet: 'Pallet', - packageCount: 'Packages', - pieceCount: 'Pieces', - inboundPackageCount: 'Inbound Packages', - inboundPieceCount: 'Inbound Pieces', - palletQuantity: 'Pallets', - taskOrder: 'Task Order', - taskProduct: 'Task Product', - emptyAddProduct: 'Please add a product', - emptyInboundList: 'No product inbound orders', - emptyItemList: 'No inbound items', - confirmInbound: 'Confirm Inbound', - inboundSuccess: 'Inbound successful', - saveFailed: 'Save failed', - loadFailed: 'Load failed', - detailLoadFailed: 'Failed to load detail', - operationFailed: 'Operation failed', - submitAudit: 'Submit Review', - auditPass: 'Approve', - auditReject: 'Reject', - auditPassSuccess: 'Approved', - auditRejectSuccess: 'Rejected', - submitAuditSuccess: 'Review submitted', - submitFailed: 'Submit failed', - selectAuditor: 'Select auditor', - selectInboundStatus: 'Select Inbound Status', - confirmAuditPass: 'Confirm approving this product inbound order?', - confirmAuditReject: 'Confirm rejecting this product inbound order?', - noDetailId: 'No detail ID', - completeProductPalletInfo: 'Complete product and pallet information', - addProductFirst: 'Please add a product first', - taskInfo: 'Task Info', - relatedTask: 'Related Task Order', - selectTask: 'Select task order', - selectTaskProduct: 'Select task product', - selectProduct: 'Select product', - selectPallet: 'Select pallet', - selectPalletFirst: 'Select pallet first', - selectTaskFirst: 'Select task order first', - selectProductFirst: 'Select product first', - emptyTaskProducts: 'No products for this task order', - completePalletInfo: 'Complete pallet warehouse/location/packages', - productAdded: 'Product added', - taskProductLoadFailed: 'Failed to load task products', - workOrderNo: 'Work Order No.', - code: 'Code', - packagingScheme: 'Packaging Scheme', - palletPackageQuantity: 'Packages per Pallet', - packageQuantity: 'Pieces per Package', - selectedPalletCount: '{count} pallet(s) selected', - selectedCount: '{count} selected', - packageUnit: '{count} pkg', - pieceUnit: '{count} pcs', - warehouse: 'Warehouse', - area: 'Area', - location: 'Location', - deliveryDate: 'Delivery Date', - emptyTask: 'No task orders', - emptyProduct: 'No product data', - emptyTaskProduct: 'No task products', - emptyPallet: 'No pallets', - spec: 'Spec', - unit: 'Unit', - palletCode: 'Pallet Code', - palletType: 'Pallet Type', - palletStatus: 'Pallet Status', - autoCode: 'Auto Code', - length: 'Length', - width: 'Width', - height: 'Height', - productCount: 'Packages', - ratedLoadWeight: 'Rated Load', - enterPalletCode: 'Enter pallet code', - selectPalletType: 'Select pallet type', - selectPalletStatus: 'Select pallet status', - enterPackageCount: 'Enter packages', - selectWarehouse: 'Select warehouse', - selectArea: 'Select area', - selectUnit: 'Select unit', - selectWarehouseFirst: 'Select warehouse first', - emptyArea: 'No areas', - enterRatedLoadWeight: 'Enter rated load', - createSuccess: 'Created successfully', - createPalletFailed: 'Failed to create pallet' - }, - productCheck: { - moduleName: 'Product Stock Check', - createTitle: 'New Product Stock Check', - executeTitle: 'Execute Stock Check', - detailTitle: 'Product Stock Check Detail', - selectProductTitle: 'Select Product', - selectItemTitle: 'Select Check Items', - selectWarehouseTitle: 'Select Warehouse', - selectAreaTitle: 'Select Area', - all: 'All', - reset: 'Reset', - clear: 'Clear', - loading: 'Loading...', - loadingMore: 'Loading more...', - noMoreData: 'No more data', - confirm: 'Confirm', - cancel: 'Cancel', - submit: 'OK', - submitting: 'Submitting...', - tip: 'Tip', - choose: 'Please select', - delete: 'Delete', - save: 'Save', - statusDraft: 'Pending Submit', - statusAuditing: 'Pending Review', - statusApproved: 'Reviewed', - statusRejected: 'Rejected', - searchDocumentPlaceholder: 'Enter check No.', - searchProductPlaceholder: 'Search product name/code/spec', - searchWarehousePlaceholder: 'Search warehouse name', - searchAreaPlaceholder: 'Search area name/code', - searchItemPlaceholder: 'Search product/warehouse/area', - productInfo: 'Product Info', - checkInfo: 'Check Info', - checkTime: 'Check Time', - selectCheckTime: 'Select check time', - sourceType: 'Source Type', - sourceTypeStock: 'By Stock', - sourceTypeProduct: 'By Product', - selectWarehouse: 'Select warehouse', - selectWarehouseFirst: 'Select warehouse first', - selectArea: 'Select area', - warehouse: 'Warehouse', - area: 'Area', - warehouseAddress: 'Address', - principal: 'Principal', - checkStatus: 'Check Status', - checked: 'Checked', - unchecked: 'Unchecked', - creator: 'Creator', - reviewer: 'Reviewer', - auditor: 'Reviewer', - documentNo: 'Check No.', - remark: 'Remark', - remarkPlaceholder: 'Enter remark', - productAndItems: 'Products & Items', - selectProduct: 'Select Product', - product: 'Product', - checkItems: 'Check Items', - selectAll: 'Select All', - selectedCount: '{count} selected', - selectedItemCount: '{count} item(s) selected', - selectCheckItems: 'Select check items', - stockCount: 'Book Qty', - code: 'Code', - spec: 'Spec', - unit: 'Unit', - difference: 'Difference', - actualCount: 'Actual Qty', - saveDraft: 'Save Draft', - finishCheck: 'Finish Check', - execute: 'Execute', - submitAudit: 'Submit Review', - auditPass: 'Approve', - auditReject: 'Reject', - auditPassSuccess: 'Approved', - auditRejectSuccess: 'Rejected', - submitAuditSuccess: 'Review submitted', - submitFailed: 'Submit failed', - selectAuditor: 'Select reviewer', - selectStatus: 'Select Check Status', - confirmAuditPass: 'Approve this product stock check?', - confirmAuditReject: 'Reject this product stock check?', - confirmDelete: 'Delete this product stock check?', - deleteSuccess: 'Deleted', - operationFailed: 'Operation failed', - loadFailed: 'Load failed', - detailLoadFailed: 'Failed to load detail', - emptyList: 'No product stock checks', - emptyProduct: 'No product data', - emptyWarehouse: 'No warehouses', - emptyArea: 'No areas', - emptyItemList: 'No check items', - emptyAddProduct: 'Please add a product', - selectProductFirst: 'Select product first', - completeCheckItems: 'Complete check item information', - createSuccess: 'Created successfully', - saveFailed: 'Save failed', - saveSuccess: 'Saved', - checkSuccess: 'Check completed', - noDetailId: 'No detail ID', - enterActualCount: 'Enter actual quantity', - confirmActualCountZero: '{items} actual quantity is 0. Continue?' - }, - productOutbound: { - moduleName: 'Product Outbound', - createTitle: 'New Product Outbound', - detailTitle: 'Product Outbound Detail', - selectProductTitle: 'Select Product', - selectPalletTitle: 'Select Pallet', - all: 'All', - outboundStatus: 'Outbound Status', - reset: 'Reset', - clear: 'Clear', - loading: 'Loading...', - loadingMore: 'Loading more...', - noMoreData: 'No more data', - confirm: 'Confirm', - cancel: 'Cancel', - back: 'Back', - submit: 'OK', - submitting: 'Submitting...', - tip: 'Tip', - choose: 'Please select', - statusPending: 'Pending Outbound', - statusAuditing: 'Pending Review', - statusStored: 'Outbounded', - statusRejected: 'Rejected', - searchDocumentPlaceholder: 'Enter outbound No.', - searchProductPlaceholder: 'Search product name/code/spec', - searchPalletPlaceholder: 'Search pallet code', - productInfo: 'Product Info', - outboundInfo: 'Outbound Info', - outboundTime: 'Outbound Time', - selectOutboundTime: 'Select outbound time', - operator: 'Operator', - selectOperator: 'Select operator', - outboundQuantity: 'Outbound Qty', - reviewer: 'Reviewer', - auditor: 'Reviewer', - documentNo: 'Document No.', - outboundType: 'Outbound Type', - remark: 'Remark', - remarkPlaceholder: 'Enter remark', - attachment: 'Attachment', - chooseFile: 'Choose File', - itemList: 'Outbound Items', - addProduct: 'Add Product', - product: 'Product', - pallet: 'Pallet', - packageCount: 'Packages', - pieceCount: 'Pieces', - outboundPackageCount: 'Outbound Packages', - outboundPieceCount: 'Outbound Pieces', - availablePackageCount: 'Available Packages', - enterOutboundPackageCount: 'Enter outbound packages', - palletQuantity: 'Pallet Qty', - emptyAddProduct: 'Please add product', - emptyOutboundList: 'No product outbound records', - emptyItemList: 'No outbound items', - confirmOutbound: 'Confirm Outbound', - outboundSuccess: 'Outbound success', - saveFailed: 'Save failed', - loadFailed: 'Load failed', - detailLoadFailed: 'Detail load failed', - operationFailed: 'Operation failed', - submitAudit: 'Submit Review', - auditPass: 'Approve', - auditReject: 'Reject', - auditPassSuccess: 'Approved', - auditRejectSuccess: 'Rejected', - submitAuditSuccess: 'Submitted for review', - submitFailed: 'Submit failed', - selectAuditor: 'Select reviewer', - selectOutboundStatus: 'Select outbound status', - confirmAuditPass: 'Approve this product outbound order?', - confirmAuditReject: 'Reject this product outbound order?', - noDetailId: 'No detail ID', - completeProductPalletInfo: 'Complete product and pallet info', - addProductFirst: 'Add product first', - selectProduct: 'Select product', - selectPallet: 'Select pallet', - selectPalletFirst: 'Select pallet first', - selectProductFirst: 'Select product first', - completePalletInfo: 'Complete pallet warehouse/location/package info', - productAdded: 'Product added', - code: 'Code', - packagingScheme: 'Packaging Scheme', - palletPackageQuantity: 'Packages per Pallet', - packageQuantity: 'Pieces per Package', - selectedPalletCount: '{count} pallets selected', - selectedCount: '{count} selected', - packageUnit: '{count} packages', - pieceUnit: '{count} pieces', - warehouse: 'Warehouse', - area: 'Area', - location: 'Location', - emptyProduct: 'No product data', - emptyPallet: 'No pallets', - spec: 'Spec', - unit: 'Unit', - palletCode: 'Pallet Code', - palletType: 'Pallet Type', - palletStatus: 'Pallet Status', - outMode: 'Outbound Mode', - outModeWholePallet: 'Whole Pallet', - outModeSplitPallet: 'Split Pallet' - }, +export default { + common: { + submit: 'Submit', + close: 'Close', + exit: 'Exit', + notice: 'Notice', + moduleBuilding: 'This module is under construction', + updateSuccess: 'Updated successfully', + confirmLogout: 'Are you sure you want to log out?', + languageSwitched: 'Language switched', + more: 'More', + reset: 'Reset', + complete: 'Done', + edit: 'Edit', + saveFailed: 'Save failed' + }, + tab: { + home: 'Home', + report: 'Reports', + work: 'Manage', + mine: 'Mine' + }, + work:{ + mold: '模具', + equipmentMaintenance: 'Equipment Maintenance', + keypart: '关键件', + spare: '备件', + }, + nav: { + home: 'Home', + mine: 'Profile', + avatar: 'Edit Avatar', + info: 'Profile', + editInfo: 'Edit Profile', + pwd: 'Change Password', + setting: 'App Settings', + help: 'FAQ', + about: 'About' + }, + dashboard: { + welcome: 'Welcome to', + subtitle: 'Besure Digital Intelligent Control Platform', + functionNav: 'Function Navigation', + editNavMenu: 'Edit Shortcuts', + configuredNav: 'Added', + unconfiguredNav: 'Add More', + dragHint: 'Drag icons to reorder, icons above will be displayed in control center', + clickHint: 'Tap icons to add or remove from configuration', + allNavMenu: 'All Functions', + productionOverview: 'Production Overview', + qualityOverview: 'Quality Overview', + productionPlan: 'Production Summary', + production: 'Production', + quality: 'Quality', + totalCount: 'Total', + passCount: 'Pass Count', + failCount: 'Fail Count', + qualityTrend: 'Quality Trend', + chartPlaceholder: 'Chart loading...', + totalWangongNumber: 'Total Reported', + totalPassNumber: 'Total Passed', + totalNoPassNumber: 'Total Failed', + totalPassRate: 'Total Pass Rate', + productPassRateRanking: 'Product Pass Rate Ranking', + passNumber: 'Pass Count', + noPassNumber: 'Fail Count', + periodLastWeek: 'Last Week', + periodThisWeek: 'This Week', + periodLast7Days: 'Last 7 Days', + periodLastMonth: 'Last Month', + periodThisMonth: 'This Month', + periodLastYear: 'Last Year', + collapseList: 'Collapse', + viewMore: 'View More ›', + productName: 'Product', + pipeline: 'Production Line', + planNumber: 'Planned Qty', + planStart: 'Start', + planEnd: 'End', + back: 'Back', + todoTitle: 'To-do Tasks', + noTodo: 'No pending tasks', + taskCode: 'Task Code: {value}', + taskType: 'Task Type: {value}', + taskTarget: 'Target: {value}', + createTime: 'Created At: {value}', + all: 'Total', + pending: 'Pending', + running: 'In Progress', + finished: 'Done', + mold: 'Mold', + equipment: 'Equipment', + keypart: 'Key Part', + spare: 'Spare Part', + product: 'Product Material', + statusScheduled: 'Scheduled', + statusTrial: 'Trial', + statusMass: 'Mass', + statusPause: 'Paused', + statusWaitStockIn: 'Waiting Stock-in', + viewPlan: 'View Plan: {code}', + filterTask: 'Task', + filterProduct: 'Product', + dateRange: 'Date Range', + startDate: 'Start Time', + endDate: 'End Time', + baogongNum: 'Reported', + passNum: 'Qualified', + noPassNum: 'Unqualified', + passRate: 'Pass Rate', + trendChart: 'Trend', + taskPlaceholder: 'Task mode under development', + totalTask: 'Total Tasks', + issuedNum: 'Issued', + partialScheduledNum: 'Partial Scheduled', + waitingProduction: 'Waiting', + producing: 'Producing', + completed: 'Completed', + taskTrend: 'Task Trend', + rangeYear: 'Last Year', + rangeMonth: 'This Month', + rangeWeek: 'This Week', + rangeToday: 'Today', + rangeCustom: 'Custom', + monday: 'Mon', + tuesday: 'Tue', + wednesday: 'Wed', + thursday: 'Thu', + friday: 'Fri', + saturday: 'Sat', + sunday: 'Sun' + }, + deviceOverview: { + title: 'Device Overview', + totalDevices: 'Total', + runningCount: 'Running', + standbyCount: 'Standby', + faultCount: 'Fault', + offlineCount: 'Offline', + utilizationRate: 'Utilization', + bootRate: 'Boot Rate', + faultRate: 'Fault Rate', + rateTrend: 'Utilization / Boot Rate Trend', + onlyScheduled: 'Scheduled Only', + skipHoliday: 'Skip Holidays', + periodLastWeek: 'Last Week', + periodThisWeek: 'This Week', + periodLast7Days: 'Last 7 Days', + periodLastMonth: 'Last Month', + periodThisMonth: 'This Month', + periodLastYear: 'Last Year', + utilizationRanking: 'Last 7 Days Utilization Ranking', + utilizationRateTrend: 'Utilization Rate', + deviceRateTrend: 'Single Device 7-Day Utilization/Boot Rate Trend', + selectDevice: 'Select Device', + selectDeviceHint: 'Please select a device to view trend' + }, + taskList: { + filter: 'Filter', + code: 'Task Code', + status: 'Status', + taskType: 'Task Type', + orderDate: 'Order Date', + deliveryDate: 'Delivery Date', + remark: 'Remark', + createTime: 'Create Time', + totalNumber: 'Total', + planNumber: 'Planned', + unPlanNumber: 'Unplanned', + storedPlanNumber: 'Stored', + urgent: 'Urgent', + noData: 'No task data', + viewTask: 'View Task: {code}' + }, + planList: { + taskCode: 'Task Code', + planCode: 'Plan Code', + employeeName: 'Reporter', + baogongNum: 'Reported', + passNum: 'Passed', + noPassNum: 'Failed', + passRate: 'Pass Rate', + baogongTime: 'Report Time', + reason: 'Reason', + noData: 'No report data', + viewDetail: 'View Detail: {code}' + }, + functionCommon: { + search: 'Search', + reset: 'Reset', + cancel: 'Cancel', + confirm: 'Confirm', + save: 'Save', + loading: 'Loading...', + loadingMore: 'Loading more...', + noMoreData: 'No more data', + noIdView: 'Missing ID, cannot view details', + noIdEdit: 'Missing ID, cannot edit', + noIdDelete: 'Missing ID, cannot delete', + loadFailed: 'Load failed', + deleteSuccess: 'Deleted successfully', + deleteFailed: 'Delete failed', + saveSuccess: 'Saved successfully', + saveFailed: 'Save failed', + createSuccess: 'Created successfully', + updateSuccess: 'Updated successfully', + confirmDelete: 'Confirm deletion', + uploading: 'Uploading', + uploadImageFailed: 'Image upload failed', + yes: 'Yes', + no: 'No', + all: 'All', + noMore: 'No more data', + confirmTitle: 'Confirm' + }, + moldGet: { + moduleName: 'Mold Stock-out', + subTitle: 'Filter quickly by no and status', + detailTitle: 'Mold Stock-out Detail', + basicInfo: 'Basic Info', + outNo: 'Stock-out No', + outType: 'Stock-out Type', + outTime: 'Stock-out Time', + outTimeSingle: 'Stock-out Date', + outTimePlaceholder: 'Select stock-out date', + warehouse: 'Warehouse', + allWarehouse: 'All Warehouses', + warehousePlaceholder: 'Select warehouse', + creator: 'Creator', + status: 'Status', + allStatus: 'All Status', + remark: 'Remark', + itemRemark: 'Item Remark', + attachment: 'Attachment', + fileUrlPlaceholder: 'Enter attachment URL', + remarkPlaceholder: 'Enter remark', + moldName: 'Mold', + moldCode: 'Mold Code', + moldStatus: 'Mold Status', + moldUseTime: 'Use Time', + machineName: 'Machine', + isEnable: 'Enabled', + createTime: 'Created At', + searchNo: 'Enter stock-out no', + searchMold: 'Enter mold code or name', + searchCode: 'Enter mold code', + searchName: 'Enter mold name', + itemListTitle: 'Item List', + selectMold: 'Select Mold', + noItems: 'No items', + count: 'Count', + noAuto: 'Generated automatically', + createTitle: 'Create Mold Stock-out', + editTitle: 'Edit Mold Stock-out', + edit: 'Edit', + delete: 'Delete', + approve: 'Approve', + empty: 'No mold stock-out data', + noMoldData: 'No mold options', + loadEditFailed: 'Failed to load edit data', + validatorOutTimeRequired: 'Stock-out date is required', + validatorWarehouseRequired: 'Warehouse is required', + validatorItemRequired: 'Select at least one mold', + validatorCountRequired: 'Count must be greater than 0', + confirmDelete: 'Delete stock-out {no}?', + confirmApprove: 'Approve stock-out {no}?', + approveSuccess: 'Approved successfully' + }, + moldReturn: { + moduleName: 'Mold Stock-in', + subTitle: 'Filter quickly by no and status', + detailTitle: 'Mold Stock-in Detail', + basicInfo: 'Basic Info', + inNo: 'Stock-in No', + inType: 'Stock-in Type', + inTime: 'Stock-in Time', + inTimeSingle: 'Stock-in Date', + inTimePlaceholder: 'Select stock-in date', + warehouse: 'Warehouse', + allWarehouse: 'All Warehouses', + warehousePlaceholder: 'Select warehouse', + creator: 'Creator', + status: 'Status', + allStatus: 'All Status', + remark: 'Remark', + itemRemark: 'Item Remark', + attachment: 'Attachment', + fileUrlPlaceholder: 'Enter attachment URL', + remarkPlaceholder: 'Enter remark', + moldName: 'Mold', + moldCode: 'Mold Code', + moldStatus: 'Mold Status', + moldUseTime: 'Use Time', + searchNo: 'Enter stock-in no', + searchCode: 'Enter mold code', + searchName: 'Enter mold name', + itemListTitle: 'Item List', + selectMold: 'Select Mold', + noItems: 'No items', + count: 'Count', + noAuto: 'Generated automatically', + createTitle: 'Create Mold Stock-in', + editTitle: 'Edit Mold Stock-in', + approve: 'Approve', + empty: 'No mold stock-in data', + noMoldData: 'No mold options', + loadEditFailed: 'Failed to load edit data', + validatorInTimeRequired: 'Stock-in date is required', + validatorWarehouseRequired: 'Warehouse is required', + validatorItemRequired: 'Select at least one mold', + validatorCountRequired: 'Count must be greater than 0', + confirmDelete: 'Delete stock-in {no}?', + confirmApprove: 'Approve stock-in {no}?', + approveSuccess: 'Approved successfully' + }, + moldOperate: { + moduleName: 'Mold Operate', + subTitle: 'Mold mounting and dismounting records', + detailTitle: 'Mold Operate Detail', + basicInfo: 'Basic Info', + tabUp: 'Mount', + tabDown: 'Dismount', + operateType: 'Operation Type', + mold: 'Mold', + lowerMold: 'Dismount Mold', + selectMold: 'Select Mold', + noSelectedMold: 'No selected molds', + allMold: 'All Molds', + searchRemark: 'Enter remark keyword', + searchCode: 'Enter mold code', + searchName: 'Enter mold name', + moldCode: 'Mold Code', + moldName: 'Mold Name', + device: 'Device', + deviceName: 'Device Name', + creatorName: 'Creator', + remark: 'Remark', + createTime: 'Created At', + createTitle: 'Create Mold Operate', + editTitle: 'Edit Mold Operate', + empty: 'No mold operate data', + noMoldData: 'No mold options', + placeholderDevice: 'Select device', + placeholderRemark: 'Enter remark', + validatorOperateTypeRequired: 'Operation type is required', + validatorDeviceRequired: 'Device is required', + validatorMoldRequired: 'Select at least one mold for mounting', + validatorOperatorRequired: 'Please select operator', + validatorLowerMoldRequired: 'Select at least one mold for dismounting', + loadEditFailed: 'Failed to load edit data', + confirmDelete: 'Confirm delete this mold operate record?', + scanDevice: 'Scan Device', + selectDevice: 'Select Device', + selectedDevice: 'Selected Device', + deviceCode: 'Device Code', + productionLine: 'Production Line', + currentMold: 'Current Mold', + deviceStatus: 'Device Status', + statusRunning: 'Running', + statusStop: 'Stopped', + statusFault: 'Fault', + selectMountMold: 'Select Mold to Mount', + product: 'Product', + status: 'Status', + pendingMount: 'Pending Mount', + confirmMount: 'Confirm Mount', + clickSelectMold: 'Click to select mold', + noDeviceData: 'No device data', + deviceNotFound: 'Device not found', + deviceInfo: 'Device Info', + currentMoldInfo: 'Current Mold on Machine', + mountTime: 'Mount Time', + useCount: 'Usage Count', + countUnit: '', + changeMountTarget: 'Change Mount Target', + changeTarget: 'Change Dismount Target', + confirmDismount: 'Confirm Dismount', + clickSelectDeviceFirst: 'Please select a device first', + noMoldOnDevice: 'No mold on this device', + historySuffix: ' History', + historyTitle: 'Mold Operate History', + searchPlaceholder: 'Search device/mold name', + placeholderOperator: 'Select operator', + filterAll: 'All', + filterToday: 'Today', + filterWeek: 'This Week', + historyEmpty: 'No history records', + totalPrefix: 'Total: ', + totalSuffix: '', + confirmDeleteHistory: 'Confirm delete this history record?', + operateTime: 'Operate Time', + operator: 'Operator' + }, + moldInspectionItems: { + moduleName: 'Inspection Items', + subTitle: 'Mold management inspection items', + detailTitle: 'Inspection Item Detail', + basicInfo: 'Basic Info', + code: 'Item Code', + name: 'Item Name', + inspectionMethod: 'Inspection Method', + valueType: 'Value Type', + isEnable: 'Enabled', + judgmentCriteria: 'Judgment Criteria', + creatorName: 'Creator', + createTime: 'Created At', + searchPlaceholder: 'Enter code/name/criteria', + createTitle: 'Create Inspection Item', + editTitle: 'Edit Inspection Item', + empty: 'No inspection items', + loadEditFailed: 'Failed to load edit data', + confirmDelete: 'Confirm delete this inspection item?', + placeholderCode: 'Enter item code', + placeholderName: 'Enter item name', + placeholderInspectionMethod: 'Select inspection method', + placeholderValueType: 'Select value type', + placeholderIsEnable: 'Select enabled status', + placeholderJudgmentCriteria: 'Enter judgment criteria', + validatorSubjectCodeRequired: 'Item code is required', + validatorSubjectNameRequired: 'Item name is required', + validatorInspectionMethodRequired: 'Inspection method is required', + validatorValueTypeRequired: 'Value type is required', + validatorIsEnableRequired: 'Enabled status is required', + validatorJudgmentCriteriaRequired: 'Judgment criteria is required' + }, + moldInspectionPlan: { + moduleName: 'Inspection Plan', + subTitle: 'Mold management inspection plan', + detailTitle: 'Inspection Plan Detail', + basicInfo: 'Basic Info', + planName: 'Plan Name', + planType: 'Plan Type', + planTypeMaintain: 'Maintenance', + planTypeInspect: 'Inspection', + description: 'Description', + subjectName: 'Inspection Items', + creatorName: 'Creator', + createTime: 'Created At', + updateTime: 'Updated At', + searchPlaceholder: 'Enter plan name', + createTitle: 'Create Inspection Plan', + editTitle: 'Edit Inspection Plan', + empty: 'No inspection plan data', + loadEditFailed: 'Failed to load edit data', + confirmDelete: 'Confirm delete this inspection plan?', + placeholderPlanName: 'Enter plan name', + placeholderPlanType: 'Select plan type', + placeholderDescription: 'Enter description', + placeholderSubjectSelect: 'Select inspection items', + subjectSelectTitle: 'Select Inspection Items', + noSubjectData: 'No inspection items', + validatorPlanNameRequired: 'Plan name is required', + validatorPlanTypeRequired: 'Plan type is required', + subjectListTitle: 'Related Inspection Items', + subjectCode: 'Item Code', + inspectionMethod: 'Inspection Method', + judgmentCriteria: 'Judgment Criteria' + }, + moldTaskConfig: { + moduleName: 'Inspection Task', + subTitle: 'Mold management inspection task', + detailTitle: 'Inspection Task Detail', + basicInfo: 'Basic Info', + name: 'Task Name', + taskType: 'Task Type', + taskTypeInspect: 'Inspection', + taskTypeMaintain: 'Maintenance', + moldList: 'Mold List', + projectForm: 'Inspection Plan', + projectFormName: 'Project Form', + dateRange: 'Valid Date Range', + startDate: 'Start Date', + endDate: 'End Date', + cronExpression: 'Cron Expression', + operableUsers: 'Operable Users', + enabled: 'Enabled', + creatorName: 'Creator', + createTime: 'Created At', + updateTime: 'Updated At', + searchPlaceholder: 'Enter task name', + createTitle: 'Create Inspection Task', + editTitle: 'Edit Inspection Task', + empty: 'No inspection task data', + loadEditFailed: 'Failed to load edit data', + confirmDeleteContent: 'Confirm delete this inspection task [{name}]?', + placeholderName: 'Enter task name', + placeholderTaskType: 'Select task type', + placeholderMoldList: 'Select molds', + placeholderProjectForm: 'Select inspection plans', + placeholderStartDate: 'Select start date', + placeholderEndDate: 'Select end date', + placeholderCron: 'Enter cron expression', + placeholderOperableUsers: 'Select operable users', + validatorNameRequired: 'Task name is required', + validatorTaskTypeRequired: 'Task type is required', + validatorMoldListRequired: 'Mold list is required', + validatorProjectFormRequired: 'Inspection plan is required', + validatorDateRangeRequired: 'Date range is required', + createTicketSuccess: 'Work order created successfully', + createTicketFail: 'Work order creation failed', + moldSelectTitle: 'Select Molds', + planSelectTitle: 'Select Inspection Plans', + userSelectTitle: 'Select Operable Users' + }, + equipmentInspectionTasks: { + moduleName: 'Equipment Inspection Tasks', + subTitle: 'Work order management for equipment inspection tasks', + detailTitle: 'Equipment Inspection Task Detail', + basicInfo: 'Basic Info', + createTicket: 'Add Work Order Management', + name: 'Task Name', + taskType: 'Task Type', + taskTypeInspect: 'Inspection', + taskTypeMaintain: 'Maintenance', + deviceList: 'Device List', + projectFormName: 'Project Form', + dateRange: 'Valid Date Range', + cronExpression: 'Cron Expression', + operableUsers: 'Operable Users', + enabled: 'Enabled', + creatorName: 'Creator', + createTime: 'Created At', + updateTime: 'Updated At', + searchPlaceholder: 'Enter task name/device code/device name', + empty: 'No equipment inspection tasks', + createTicketSuccess: 'Work order created successfully', + createTicketFail: 'Work order creation failed', + lineFilter: 'Line', }, + equipmentInspectionRecord: { + moduleName: 'Equipment Inspection Records', + subTitle: 'Equipment inspection record list', + detailTitle: 'Equipment Inspection Record Detail', + taskType: 'Task Type', + taskTypeInspect: 'Inspection', + taskTypeMaintain: 'Maintenance', + taskTypeInspectShort: 'I', + taskTypeMaintainShort: 'M', + planNo: 'Task No.', + deviceName: 'Device Name', + configName: 'Inspection Template', + jobStatus: 'Job Status', + jobStatusPending: 'Pending', + jobStatusProcessing: 'Processing', + jobStatusCompleted: 'Completed', + jobStatusTimeout: 'Timeout', + jobStatusCancelled: 'Cancelled', + jobResult: 'Result', + jobResultOk: 'Pass', + jobResultNg: 'Fail', + taskTime: 'Job Time', + searchPlaceholder: 'Enter task no/device code/device name', + empty: 'No equipment inspection records', + progressTitle: 'Progress', + inspectionMethod: 'Inspection Method', + judgmentCriteria: 'Criteria', + valueType: 'Value Type', + resultText: 'Result', + requiredText: 'Required', + inspectionResultPending: 'Pending', + inspectionResultPass: 'Pass', + inspectionResultFail: 'Fail', + textInput: 'Input Value', + inputPlaceholder: 'Please enter', + remark: 'Remark', + images: 'Images', + maxUploadCount: 'You can upload up to 9 images', + selectAllDecisionError: 'Please choose a result for all pending items', + noResultData: 'No inspection items', + lineFilter: 'Line', + }, + moldWorkOrder: { + moduleName: 'Inspection Records', + subTitle: 'Mold management inspection records', + detailTitle: 'Inspection Record Detail', + basicInfo: 'Basic Info', + resultListTitle: 'Inspection Results', + planNo: 'Ticket No.', + moldName: 'Mold Name', + planType: 'Task Type', + planTypeInspect: 'Inspection', + planTypeMaintain: 'Maintenance', + configName: 'Task Config', + jobStatus: 'Job Status', + jobStatusPending: 'Pending', + jobStatusProcessing: 'Processing', + jobStatusCompleted: 'Completed', + jobStatusTimeout: 'Timeout', + jobStatusCancelled: 'Cancelled', + jobResult: 'Job Result', + jobResultOk: 'OK', + jobResultNg: 'NG', + operatorName: 'Operator', + taskTime: 'Task Time', + taskEndTime: 'End Time', + cancelReason: 'Cancel Reason', + createTime: 'Created At', + searchPlaceholder: 'Enter ticket no.', + empty: 'No inspection records', + cancelTask: 'Cancel Task', + cancelSuccess: 'Cancelled successfully', + cancelFail: 'Cancel failed', + placeholderCancelReason: 'Enter cancel reason', + validatorCancelReasonRequired: 'Cancel reason is required', + inspectionItemName: 'Inspection Item', + inspectionMethod: 'Inspection Method', + judgmentCriteria: 'Judgment Criteria', + valueType: 'Value Type', + inspectionResult: 'Inspection Result', + inspectionResultPending: 'Pending', + inspectionResultPass: 'Pass', + inspectionResultFail: 'Fail', + textInput: 'Input Value', + remark: 'Remark', + images: 'Images', + noResultData: 'No inspection result data', + loadMore: 'Load More' + }, + mine: { + clickLogin: 'Tap to sign in', + username: 'Username: {name}', + profile: 'Profile', + feedback: 'Feedback', + service: 'Support', + changePassword: 'Change Password', + logout: 'Log Out', + editProfile: 'Edit Profile', + faq: 'FAQ', + about: 'About', + appSettings: 'Settings' + }, + setting: { + language: 'System Language', + currentLanguage: 'Current: {language}', + terminalMode: 'Terminal Mode', + currentTerminal: 'Current Terminal: {terminal}', + switchingTerminal: 'Switching terminal...', + terminalSwitched: 'Switched to {terminal}', + switchLanguage: 'Switch Language', + checkUpdate: 'Check Updates', + cleanCache: 'Clear Cache', + logout: 'Log Out', + serverAddress: 'Server Address', + serverAddressHint: 'Enter the backend API address for the current account', + serverAddressPlaceholder: 'Enter backend address', + serverAddressRequired: 'Please enter the backend address', + serverAddressSaved: 'Server address saved. Please log in again', + mobile: 'Mobile', + scanner: 'Scanner', + zhCN: 'Chinese', + enUS: 'English' + }, + about: { + appName: 'Besure Production System', + version: 'Version', + email: 'Official Email', + hotline: 'Service Hotline', + website: 'Website' + }, + help: { + appUserQuestion: 'App User Questions', + otherQuestion: 'Other Questions', + appFeatureQuestion: 'What business features are supported by the app?', + appFeatureAnswer: 'Plan start, production report, material feeding records, production records', + reportQuestion: 'How can I submit a production report?', + reportAnswer: 'You can submit it on the report page.', + planQuestion: 'How is plan management handled?', + planAnswer: 'Use the plan management module.', + materialQuestion: 'How to manage feeding records?', + materialAnswer: 'Use the feeding record module.', + logoutQuestion: 'How do I log out?', + logoutAnswer: 'Go to [Mine] - [App Settings] - [Log Out] to sign out.', + avatarQuestion: 'How do I change my avatar?', + avatarAnswer: 'Go to [Mine] - [Choose Avatar] - [Submit] to update your avatar.', + passwordQuestion: 'How do I change my login password?', + passwordAnswer: 'Go to [Mine] - [App Settings] - [Change Password] to update your password.' + }, + info: { + username: 'Username', + nickname: 'Nickname', + gender: 'Gender', + male: 'Male', + female: 'Female', + phone: 'Mobile', + email: 'Email', + createdAt: 'Created At' + }, + editInfo: { + nickname: 'Nickname', + nicknamePlaceholder: 'Enter nickname', + phone: 'Mobile', + phonePlaceholder: 'Enter mobile number', + email: 'Email', + emailPlaceholder: 'Enter email', + gender: 'Gender', + nicknameRequired: 'Nickname is required', + phoneRequired: 'Mobile number is required', + phoneInvalid: 'Please enter a valid mobile number', + emailRequired: 'Email is required', + emailInvalid: 'Please enter a valid email' + }, + pwd: { + oldPassword: 'Current Password', + newPassword: 'New Password', + confirmPassword: 'Confirm Password', + oldPasswordPlaceholder: 'Enter current password', + newPasswordPlaceholder: 'Enter new password', + confirmPasswordPlaceholder: 'Confirm new password', + oldPasswordRequired: 'Current password is required', + newPasswordRequired: 'New password is required', + passwordLength: 'Length must be between 6 and 20 characters', + confirmPasswordRequired: 'Please confirm password', + passwordNotMatch: 'The two passwords do not match' + }, + avatar: { + chooseAvatar: 'Choose Avatar' + }, + materialCategory: { + moduleName: 'Product Category', + subTitle: 'Product material category management', + detailTitle: 'Category Detail', + basicInfo: 'Basic Info', + code: 'Category Code', + name: 'Category Name', + parentName: 'Parent Category', + rootCategory: 'None (Top Level)', + sort: 'Sort', + status: 'Status', + statusEnable: 'Enable', + statusDisable: 'Disable', + createTime: 'Created At', + searchPlaceholder: 'Enter category code/name', + createTitle: 'Create Category', + editTitle: 'Edit Category', + empty: 'No category data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing category ID', + loadFailed: 'Failed to load category detail', + placeholderCode: 'Enter category code', + placeholderName: 'Enter category name', + placeholderParent: 'Select parent category', + placeholderSort: 'Enter sort order', + placeholderStatus: 'Select status', + validatorCodeRequired: 'Category code is required', + validatorNameRequired: 'Category name is required', + validatorSortRequired: 'Sort order is required', + validatorStatusRequired: 'Status is required', + confirmDeleteContent: 'Confirm delete category [{name}]?' + }, + materialInfo: { + moduleName: 'Product Material', + subTitle: 'Product material information management', + detailTitle: 'Material Detail', + basicInfo: 'Basic Info', + barCode: 'Barcode', + name: 'Material Name', + category: 'Category', + unit: 'Unit', + standard: 'Specification', + expiryDay: 'Shelf Life (Days)', + status: 'Status', + statusEnable: 'Enable', + statusDisable: 'Disable', + remark: 'Remark', + createTime: 'Created At', + autoCode: 'Auto Generate', + searchPlaceholder: 'Enter material name/barcode', + createTitle: 'Create Material', + editTitle: 'Edit Material', + empty: 'No material data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing material ID', + loadFailed: 'Failed to load material detail', + placeholderBarCode: 'Enter barcode', + placeholderName: 'Enter material name', + placeholderCategory: 'Select category', + placeholderUnit: 'Select unit', + placeholderStandard: 'Enter specification', + placeholderExpiryDay: 'Enter shelf life days', + placeholderStatus: 'Select status', + placeholderRemark: 'Enter remark', + validatorBarCodeRequired: 'Barcode is required', + validatorNameRequired: 'Material name is required', + validatorCategoryRequired: 'Category is required', + validatorUnitRequired: 'Unit is required', + confirmDeleteContent: 'Confirm delete material [{name}]?' + }, + productBom: { + moduleName: 'Product BOM', + subTitle: 'Product BOM management', + detailTitle: 'BOM Detail', + basicInfo: 'Basic Info', + code: 'BOM Code', + version: 'Version', + product: 'Product', + unit: 'Unit', + yieldRate: 'Yield Rate', + isEnable: 'Enabled', + enableYes: 'Yes', + enableNo: 'No', + remark: 'Remark', + createTime: 'Created At', + searchPlaceholder: 'Enter BOM code', + createTitle: 'Create BOM', + editTitle: 'Edit BOM', + empty: 'No BOM data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing BOM ID', + loadFailed: 'Failed to load BOM detail', + placeholderCode: 'Enter BOM code', + placeholderVersion: 'Enter version', + placeholderProduct: 'Select product', + placeholderUnit: 'Select unit', + placeholderYieldRate: 'Enter yield rate', + placeholderEnable: 'Select enabled status', + placeholderRemark: 'Enter remark', + validatorCodeRequired: 'BOM code is required', + validatorVersionRequired: 'Version is required', + validatorProductRequired: 'Product is required', + validatorUnitRequired: 'Unit is required', + validatorEnableRequired: 'Enabled status is required', + confirmDeleteContent: 'Confirm delete BOM [{code}]?', + detailTab: 'BOM Details', + detailUsageNumber: 'Usage Qty', + detailUnit: 'Unit', + detailLossRate: 'Loss Rate', + detailRemark: 'Remark', + detailEmpty: 'No BOM detail data' + }, + equipmentCategory: { + moduleName: 'Equipment Category', + subTitle: 'Equipment category management', + detailTitle: 'Category Detail', + basicInfo: 'Basic Info', + code: 'Category Code', + name: 'Category Name', + parentName: 'Parent Category', + rootCategory: 'None (Top Level)', + sort: 'Sort', + remark: 'Remark', + createTime: 'Created At', + searchPlaceholder: 'Enter category code/name', + createTitle: 'Create Category', + editTitle: 'Edit Category', + empty: 'No category data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing category ID', + loadFailed: 'Failed to load category detail', + placeholderCode: 'Enter category code', + placeholderName: 'Enter category name', + placeholderParent: 'Select parent category', + placeholderSort: 'Enter sort order', + placeholderRemark: 'Enter remark', + validatorCodeRequired: 'Category code is required', + validatorNameRequired: 'Category name is required', + confirmDeleteContent: 'Confirm delete category [{name}]?' + }, + equipmentLedger: { + moduleName: 'Equipment Ledger11', + subTitle: 'Equipment ledger management', + detailTitle: 'Equipment Detail', + basicInfo: 'Basic Info', + deviceCode: 'Device Code', + deviceName: 'Device Name', + deviceType: 'Device Type', + deviceStatus: 'Device Status', + lineFilter: 'Line', + allFilter: 'All Filters', + categoryStatus: 'Category & Status', + dateFilter: 'Date Filter', + deviceBrand: 'Device Brand', + sn: 'Serial No.', + scanUnrecognized: 'QR code content not recognized', + scanTypeMismatch: 'QR code type does not match', + scanFailed: 'Scan failed', + deviceSpec: 'Device Spec', + isScheduled: 'Scheduled', + ratedCapacity: 'Rated Capacity', + dailyAverageValue: 'Daily Avg Value', + dataCollectionCapacity: 'Data Collection Capacity', + productionDate: 'Production Date', + outgoingTime: 'Outgoing Date', + factoryEntryDate: 'Factory Entry Date', + deviceLocation: 'Device Location', + deviceManagerName: 'Device Manager', + workshop: 'Workshop', + remark: 'Remark', + creatorName: 'Creator', + createTime: 'Created At', + autoCode: 'Auto Generate', + yes: 'Yes', + no: 'No', + searchPlaceholder: 'Enter device code/name', + createTitle: 'Create Equipment', + editTitle: 'Edit Equipment', + empty: 'No equipment data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing equipment ID', + loadFailed: 'Failed to load equipment detail', + placeholderDeviceCode: 'Enter device code', + placeholderDeviceName: 'Enter device name', + placeholderDeviceBrand: 'Enter device brand', + placeholderSn: 'Enter serial number', + placeholderDeviceType: 'Select device type', + placeholderDeviceSpec: 'Enter device spec', + placeholderRatedCapacity: 'Enter rated capacity', + placeholderDailyAverageValue: 'Enter daily average value', + placeholderDataCollectionCapacity: 'Enter data collection capacity', + placeholderProductionDate: 'Select production date', + placeholderOutgoingTime: 'Select outgoing date', + placeholderFactoryEntryDate: 'Select factory entry date', + placeholderDeviceLocation: 'Enter device location', + placeholderRemark: 'Enter remark', + validatorDeviceCodeRequired: 'Device code is required', + validatorDeviceNameRequired: 'Device name is required', + validatorDeviceTypeRequired: 'Device type is required', + validatorProductionDateRequired: 'Production date is required', + validatorFactoryEntryDateRequired: 'Factory entry date is required', + validatorRatedCapacityRequired: 'Rated capacity is required', + validatorDailyAverageValueRequired: 'Daily average value is required', + validatorDataCollectionCapacityRequired: 'Data collection capacity is required', + confirmDeleteContent: 'Confirm delete equipment [{name}]?', + checkHistory: 'Inspection', + maintainHistory: 'Maintenance', + repairHistory: 'Repair', + operator: 'Operator', + inspectionMethod: 'Inspection Method', + criteria: 'Criteria', + inspectionTime: 'Inspection Time', + maintainMethod: 'Maintenance Method', + maintainTime: 'Maintenance Time', + repairName: 'Repair Order Name', + faultPhenomenon: 'Fault Phenomenon', + faultDescription: 'Fault Description', + replacementParts: 'Replacement Parts', + repairContent: 'Repair Content', + finishDate: 'Finish Date', + faultImages: 'Fault Images', + repairedImages: 'After-repair Images', + noHistoryData: 'No history data', + resultPending: 'Pending', + resultPass: 'Pass', + resultFail: 'Fail', + repairPending: 'Pending', + repairProcessing: 'Processing', + repairCompleted: 'Completed', + repairAbnormal: 'Abnormal' + }, + equipmentMaintenance: { + moduleName: 'Equipment Repair', + createTitle: 'Create Equipment Repair', + editTitle: 'Edit Equipment Repair', + detailTitle: 'Equipment Repair Detail', + repairTitle: 'Repair Processing', + basicInfo: 'Basic Info', + repairObject: 'Repair Object', + repairCode: 'Repair Order No.', + repairName: 'Repair Order Name', + requireDate: 'Report Date', + acceptedBy: 'Repair Technician', + confirmBy: 'Inspector', + machineryTypeId: 'Equipment Type', + machineryTypeDevice: 'Equipment', + machineryTypeKeyItem: 'Key Component', + device: 'Equipment', + component: 'Key Component', + faultLevel: 'Failure Level', + isShutdown: 'Shutdown Required', + status: 'Document Status', + faultInfo: 'Fault Info', + faultPhenomenon: 'Fault Phenomenon', + faultDescription: 'Fault Description', + faultImages: 'Fault Images', + repairResultSection: 'Repair Result', + repairResult: 'Repair Result', + finishDate: 'Completion Date', + confirmDate: 'Acceptance Date', + downtimeDuration: 'Downtime Duration', + faultReason: 'Fault Cause', + handlingMeasures: 'Handling Measures', + replacementParts: 'Replacement Parts', + repairContent: 'Repair Content', + repairedImages: 'Post-repair Images', + remark: 'Remark', + autoCode: 'Auto Generate', + deviceLabel: 'Equipment', + reportTimeLabel: 'Report Time', + searchPlaceholder: 'Enter order no/device code/device name', + empty: 'No repair records', + statusPending: 'Pending Repair', + statusPassed: 'Passed', + statusRejected: 'Rejected', + placeholderRepairCode: 'Enter repair order no.', + placeholderRepairName: 'Enter repair order name', + placeholderRequireDate: 'Select report date', + placeholderAcceptedBy: 'Select repair technician', + placeholderConfirmBy: 'Select inspector', + placeholderDevice: 'Select equipment', + placeholderComponent: 'Select key component', + placeholderFaultPhenomenon: 'Enter fault phenomenon', + placeholderFaultDescription: 'Enter fault description', + placeholderFinishDate: 'Select completion date', + placeholderConfirmDate: 'Select acceptance date', + placeholderDowntimeDuration: 'Enter downtime duration in hours', + placeholderFaultReason: 'Enter fault cause', + placeholderHandlingMeasures: 'Enter handling measures', + placeholderReplacementParts: 'Enter replacement parts', + placeholderRepairContent: 'Enter repair content', + placeholderRemark: 'Enter remark', + loadDetailFailed: 'Failed to load details', + scanUnrecognized: 'No content recognized', + scanEquipmentRequired: 'Please scan an equipment QR code', + deviceNotFound: 'Matching equipment not found', + scanFailed: 'Scan failed', + maxUploadCount: 'You can upload up to 9 images', + saving: 'Saving', + saveSuccess: 'Saved successfully', + submitSuccess: 'Submitted successfully', + submitFailed: 'Submit failed', + noId: 'Missing repair order ID', + confirmDeleteContent: 'Delete repair order "{code}"?', + validatorRepairCodeRequired: 'Please enter the repair order no.', + validatorRepairNameRequired: 'Please enter the repair order name', + validatorDeviceRequired: 'Please select equipment', + validatorComponentRequired: 'Please select key component', + validatorRequireDateRequired: 'Please select the report date', + validatorFaultLevelRequired: 'Please select the failure level', + validatorIsShutdownRequired: 'Please select whether shutdown is required', + validatorFaultPhenomenonRequired: 'Please enter the fault phenomenon', + lineFilter: 'Line', + validatorRepairStatusRequired: 'Please select the repair result', + validatorFinishDateRequired: 'Please select the completion date', + validatorConfirmDateRequired: 'Please select the acceptance date' + }, + criticalComponent: { + moduleName: 'Critical Component', + subTitle: 'Equipment critical component management', + detailTitle: 'Component Detail', + basicInfo: 'Basic Info', + code: 'Component Code', + name: 'Component Name', + deviceSpec: 'Specification', + description: 'Description', + count: 'Count', + remark: 'Remark', + creatorName: 'Creator', + createTime: 'Created At', + autoCode: 'Auto Generate', + searchPlaceholder: 'Enter code/name', + createTitle: 'Create Component', + editTitle: 'Edit Component', + empty: 'No component data', + loadEditFailed: 'Failed to load edit data', + noId: 'Missing component ID', + loadFailed: 'Failed to load component detail', + placeholderCode: 'Enter component code', + placeholderName: 'Enter component name', + placeholderDeviceSpec: 'Enter specification', + placeholderDescription: 'Enter description', + placeholderCount: 'Enter count', + placeholderRemark: 'Enter remark', + validatorCodeRequired: 'Component code is required', + validatorNameRequired: 'Component name is required', + confirmDeleteContent: 'Confirm delete component [{name}]?' + }, + moldLedger: { + moduleName: 'Mold Ledger', + subTitle: 'Mold ledger management', + detailTitle: 'Mold Detail', + basicInfo: 'Mold Basic Info', + moldPlaceholder: 'Mold', + moldName: 'Mold Name', + product: 'Product', + moldCode: 'Mold Code', + status: 'Status', + versionSpec: 'Version/Spec', + cavityCount: 'Cavity Count', + currentDevice: 'Current Device', + useCount: 'Use Count', + expand: 'Expand', + collapse: 'Collapse', + tabChildMold: 'Sub-molds', + tabInspection: 'Inspection', + tabRepair: 'Repair', + tabMaintenance: 'Maintenance', + tabInstall: 'Installation', + installLocation: 'Install Location', + material: 'Material', + quantity: 'Quantity', + lastReplace: 'Last Replace', + usedDays: 'Used {days} days', + remark: 'Remark', + noChildMold: 'No sub-mold data', + noInspection: 'No inspection records', + noRepair: 'No repair records', + noMaintenance: 'No maintenance records', + noInstall: 'No installation records', + inspectionMethod: 'Inspection Method', + criteria: 'Criteria', + inspectionTime: 'Inspection Time', + maintainMethod: 'Maintenance Method', + maintainTime: 'Maintenance Time', + repairProject: 'Repair Project', + projectContent: 'Project Content', + finishTime: 'Finish Time', + operateMold: 'Mold', + operator: 'Operator', + time: 'Time', + upperMold: 'Mount', + lowerMold: 'Dismount', + missingBrandId: 'Missing mold brand ID', + detailLoadFailed: 'Failed to load detail', + childLoadFailed: 'Failed to load sub-molds', + inspectionLoadFailed: 'Failed to load inspection records', + repairLoadFailed: 'Failed to load repair records', + maintainLoadFailed: 'Failed to load maintenance records', + installLoadFailed: 'Failed to load installation records', + resultPending: 'Pending', + resultPass: 'Pass', + resultWarning: 'Warning', + repairCompleted: 'Completed', + repairAbnormal: 'Abnormal', + repairProcessing: 'Processing', + searchPlaceholder: 'Enter mold code or name', + allStatus: 'All', + selectMoldStatus: 'Select Mold Status', + clear: 'Clear', + name: 'Name', + createTime: 'Created At', + confirmDeleteContent: 'Confirm delete mold brand "{name}"?', + empty: 'No mold ledger data', + scanUnrecognized: 'Unrecognized QR code', + scanFormatError: 'Invalid QR code format', + scanFailed: 'Scan failed', + noIdView: 'Missing ID, cannot view details', + noIdDelete: 'Missing ID, cannot delete' + }, + moldCheck: { + moduleName: 'Mold Inspection', + addTitle: 'Add Inspection', + detailTitle: 'Inspection Detail', + searchPlaceholder: 'Enter inspection No.', + empty: 'No inspection records', + add: 'Add', + moldName: 'Mold Name', + moldCode: 'Mold Code', + product: 'Product', + status: 'Status', + taskType: 'Task Type', + taskTypeInspect: 'Inspection', + taskTypeMaintain: 'Maintenance', + planNo: 'Inspection No.', + taskTime: 'Task Time', + template: 'Template', + operator: 'Operator', + jobStatusPending: 'Pending', + jobStatusProcessing: 'Processing', + jobStatusCompleted: 'Completed', + jobStatusTimeout: 'Timeout', + jobStatusCancelled: 'Cancelled', + jobResultOk: 'OK', + jobResultNg: 'NG', + progressTitle: 'Progress', + noResultData: 'No inspection result data', + requiredText: 'Required', + inspectionMethod: 'Inspection Method', + judgmentCriteria: 'Judgment Criteria', + textInput: 'Input Value', + inputPlaceholder: 'Enter value', + images: 'Images', + remark: 'Remark', + resultText: 'Result', + inspectionResultPass: 'Pass', + inspectionResultFail: 'Fail', + inspectionResultPending: 'Pending', + maxUploadCount: 'Max 3 images', + selectAllDecisionError: 'Please select all inspection results', + currentMoldInfo: 'Mold Info', + moldGroupCode: 'Mold Group Code', + moldGroupName: 'Mold Group Name', + cavityCount: 'Cavity Count', + moldSize: 'Mold Size', + currentDevice: 'Current Device', + selectMold: 'Select Mold', + reSelectMold: 'Re-select Mold', + selectMoldError: 'Please select a mold', + searchMold: 'Enter mold name', + noMoldInfo: 'Please select a mold', + noMoldData: 'No molds available', + taskName: 'Task Name', + taskInfo: 'Task Info', + placeholderTaskName: 'Enter task name', + templateSelection: 'Template/Task Selection', + selectTemplate: 'Select Template', + selectTemplateError: 'Please select inspection template', + noItems: 'Please select inspection template first', + noTemplate: 'No templates', + resultListTitle: 'Inspection Results', + editResult: 'Edit', + cancelEdit: 'Cancel Edit', + submit: 'Submit Inspection', + submitSuccess: 'Inspection submitted successfully', + submitFailed: 'Failed to submit inspection', + reInspect: 'Re-inspect' + }, + moldMaintain: { + moduleName: 'Mold Maintenance', + addTitle: 'Add Maintenance', + detailTitle: 'Maintenance Detail', + searchPlaceholder: 'Enter maintenance No.', + empty: 'No maintenance records', + add: 'Add', + moldName: 'Mold Name', + moldCode: 'Mold Code', + product: 'Product', + status: 'Status', + taskType: 'Task Type', + taskTypeInspect: 'Inspection', + taskTypeMaintain: 'Maintenance', + planNo: 'Maintenance No.', + taskTime: 'Task Time', + template: 'Template', + operator: 'Operator', + jobResultOk: 'OK', + jobResultNg: 'NG', + progressTitle: 'Progress', + noResultData: 'No maintenance result data', + requiredText: 'Required', + inspectionMethod: 'Maintenance Method', + judgmentCriteria: 'Judgment Criteria', + textInput: 'Input Value', + inputPlaceholder: 'Enter value', + images: 'Images', + remark: 'Remark', + resultText: 'Result', + inspectionResultPass: 'Pass', + inspectionResultFail: 'Fail', + inspectionResultPending: 'Pending', + maxUploadCount: 'Max 3 images', + selectAllDecisionError: 'Please select all maintenance results', + currentMoldInfo: 'Mold Info', + moldGroupCode: 'Mold Group Code', + moldGroupName: 'Mold Group Name', + cavityCount: 'Cavity Count', + moldSize: 'Mold Size', + currentDevice: 'Current Device', + selectMold: 'Select Mold', + reSelectMold: 'Re-select Mold', + selectMoldError: 'Please select a mold', + searchMold: 'Enter mold name', + noMoldInfo: 'Please select a mold', + noMoldData: 'No molds available', + taskName: 'Task Name', + taskInfo: 'Task Info', + placeholderTaskName: 'Enter task name', + templateSelection: 'Template/Task Selection', + selectTemplate: 'Select Template', + selectTemplateError: 'Please select maintenance template', + noItems: 'Please select maintenance template first', + noTemplate: 'No templates', + resultListTitle: 'Inspection Results', + editResult: 'Edit', + cancelEdit: 'Cancel Edit', + submit: 'Submit Maintenance', + submitSuccess: 'Maintenance submitted successfully', + submitFailed: 'Failed to submit maintenance', + reInspect: 'Re-maintain' + }, + moldPressureNet: { + moduleName: 'Replace Pressure Net', + recordTitle: 'Pressure Net Replacement', + recordDesc: 'Select mold group and sub-mold, then confirm replacement time', + history: 'History', + historyTitle: 'Pressure Net History', + moldGroup: 'Mold Group', + selectMoldGroup: 'Select Mold Group', + searchMoldGroup: 'Enter mold group name', + noMoldGroup: 'No mold groups', + moldGroupName: 'Mold Group Name', + moldGroupCode: 'Mold Group Code', + product: 'Product', + subMold: 'Sub-mold', + selectSubMold: 'Select Sub-mold', + reSelectMoldGroup: 'Re-select Mold Group', + reSelectSubMold: 'Re-select Sub-mold', + subMoldCode: 'Sub-mold Code', + subMoldName: 'Sub-mold Name', + searchSubMold: 'Search sub-mold name/code', + noSubMold: 'No sub-molds', + replaceInfo: 'Replacement Info', + replaceTime: 'Replacement Time', + pressureNetTime: 'Pressure Net Time', + selectReplaceTime: 'Select replacement time', + operator: 'Operator', + selectOperator: 'Select operator', + noOperator: 'No operators', + remark: 'Remark', + remarkPlaceholder: 'Enter replacement reason or remark', + confirmReplace: 'Confirm', + selectMoldGroupError: 'Please select a mold group', + selectSubMoldError: 'Please select a sub-mold', + selectedCount: '{count} sub-mold(s) selected', + selectReplaceTimeError: 'Please select replacement time', + submitSuccess: 'Saved successfully', + submitFailed: 'Save failed', + historyMoldIdPlaceholder: 'Enter sub-mold ID, blank for all', + searchBrandName: 'Mold Group Name', + selectDate: 'Select Date', + createTime: 'Create Time', + noHistory: 'No pressure net history' + }, + moldRepair: { + moduleName: 'Mold Repair', + createTitle: 'Create Mold Repair', + editTitle: 'Edit Mold Repair', + detailTitle: 'Mold Repair Detail', + repairTitle: 'Repair Processing', + basicInfo: 'Basic Info', + repairObject: 'Repair Object', + repairCode: 'Repair Code', + repairName: 'Repair Name', + requireDate: 'Require Date', + acceptedBy: 'Repair User', + confirmBy: 'Confirm User', + mold: 'Mold', + moldCode: 'Mold Code', + moldName: 'Mold Name', + specModel: 'Spec Model', + brand: 'Brand', + faultLevel: 'Fault Level', + isShutdown: 'Is Shutdown', + status: 'Status', + faultInfo: 'Fault Info', + faultPhenomenon: 'Fault Phenomenon', + faultDescription: 'Fault Description', + faultImages: 'Fault Images', + repairResultSection: 'Repair Result', + repairResult: 'Repair Result', + finishDate: 'Finish Date', + confirmDate: 'Confirm Date', + downtimeDuration: 'Downtime Duration', + faultReason: 'Fault Reason', + handlingMeasures: 'Handling Measures', + replacementParts: 'Replacement Parts', + repairContent: 'Repair Content', + repairedImages: 'Repaired Images', + remark: 'Remark', + autoCode: 'Auto Code', + moldLabel: 'Mold', + reportTimeLabel: 'Report Time', + searchPlaceholder: 'Enter code or mold code', + empty: 'No repair records', + statusPending: 'Pending', + statusPassed: 'Passed', + statusRejected: 'Rejected', + orderStatusPending: 'Pending', + orderStatusDone: 'Completed', + placeholderRepairCode: 'Enter repair code', + placeholderRepairName: 'Enter repair name', + placeholderRequireDate: 'Select require date', + placeholderAcceptedBy: 'Select repair user', + placeholderConfirmBy: 'Select confirm user', + placeholderUserSearch: 'Search by nickname', + placeholderMold: 'Select mold', + placeholderMoldNameAuto: 'Auto filled', + placeholderMoldCodeAuto: 'Auto filled', + placeholderFaultPhenomenon: 'Enter fault phenomenon', + placeholderFaultDescription: 'Enter fault description', + placeholderFinishDate: 'Select finish date', + placeholderConfirmDate: 'Select confirm date', + placeholderDowntimeDuration: 'Enter downtime duration (hours)', + placeholderFaultReason: 'Enter fault reason', + placeholderHandlingMeasures: 'Enter handling measures', + placeholderReplacementParts: 'Enter replacement parts', + placeholderRepairContent: 'Enter repair content', + placeholderRemark: 'Enter remark', + loadDetailFailed: 'Failed to load detail', + scanUnrecognized: 'Unrecognized content', + scanMoldRequired: 'Please scan mold QR code', + moldNotFound: 'Mold not found', + scanFailed: 'Scan failed', + maxUploadCount: 'Max 9 images', + noUserData: 'No user data', + saving: 'Saving', + saveSuccess: 'Saved successfully', + submitSuccess: 'Submitted successfully', + submitFailed: 'Submit failed', + noId: 'Missing repair ID', + confirmDeleteContent: 'Confirm delete repair "{code}"?', + validatorRepairCodeRequired: 'Repair code is required', + validatorRepairNameRequired: 'Repair name is required', + validatorMoldRequired: 'Mold is required', + validatorRequireDateRequired: 'Require date is required', + validatorFaultLevelRequired: 'Fault level is required', + validatorIsShutdownRequired: 'Is shutdown is required', + validatorFaultPhenomenonRequired: 'Fault phenomenon is required', + validatorUserRequired: 'Please select a user', + validatorRepairStatusRequired: 'Repair result is required', + validatorFinishDateRequired: 'Finish date is required', + validatorConfirmDateRequired: 'Confirm date is required' + }, + productInbound: { + moduleName: 'Product Inbound', + createTitle: 'New Product Inbound', + detailTitle: 'Product Inbound Detail', + selectProductTitle: 'Select Product', + selectTaskTitle: 'Select Task Order', + selectTaskProductTitle: 'Select Task Product', + selectPalletTitle: 'Select Pallet', + createPalletTitle: 'New Pallet', + all: 'All', + inboundStatus: 'Inbound Status', + reset: 'Reset', + clear: 'Clear', + loading: 'Loading...', + loadingMore: 'Loading more...', + noMoreData: 'No more data', + confirm: 'Confirm', + cancel: 'Cancel', + back: 'Back', + submit: 'OK', + submitting: 'Submitting...', + tip: 'Tip', + choose: 'Please select', + yes: 'Yes', + no: 'No', + statusPending: 'Pending Inbound', + statusAuditing: 'Pending Review', + statusStored: 'Stored', + statusRejected: 'Rejected', + searchDocumentPlaceholder: 'Enter inbound No.', + searchProductPlaceholder: 'Search product name/code/spec', + searchTaskPlaceholder: 'Search task order No.', + searchTaskProductPlaceholder: 'Search product name/code', + searchPalletPlaceholder: 'Search pallet code', + productInfo: 'Product Info', + inboundInfo: 'Inbound Info', + inboundTime: 'Inbound Time', + selectInboundTime: 'Select inbound time', + operator: 'Operator', + selectOperator: 'Select operator', + inboundQuantity: 'Inbound Quantity', + reviewer: 'Reviewer', + auditor: 'Auditor', + documentNo: 'Document No.', + inboundType: 'Inbound Type', + remark: 'Remark', + remarkPlaceholder: 'Enter remark', + attachment: 'Attachment', + chooseFile: 'Choose File', + itemList: 'Inbound List', + addProduct: 'Add Product', + product: 'Product', + pallet: 'Pallet', + packageCount: 'Packages', + pieceCount: 'Pieces', + inboundPackageCount: 'Inbound Packages', + inboundPieceCount: 'Inbound Pieces', + palletQuantity: 'Pallets', + taskOrder: 'Task Order', + taskProduct: 'Task Product', + emptyAddProduct: 'Please add a product', + emptyInboundList: 'No product inbound orders', + emptyItemList: 'No inbound items', + confirmInbound: 'Confirm Inbound', + inboundSuccess: 'Inbound successful', + saveFailed: 'Save failed', + loadFailed: 'Load failed', + detailLoadFailed: 'Failed to load detail', + operationFailed: 'Operation failed', + submitAudit: 'Submit Review', + auditPass: 'Approve', + auditReject: 'Reject', + auditPassSuccess: 'Approved', + auditRejectSuccess: 'Rejected', + submitAuditSuccess: 'Review submitted', + submitFailed: 'Submit failed', + selectAuditor: 'Select auditor', + selectInboundStatus: 'Select Inbound Status', + confirmAuditPass: 'Confirm approving this product inbound order?', + confirmAuditReject: 'Confirm rejecting this product inbound order?', + noDetailId: 'No detail ID', + completeProductPalletInfo: 'Complete product and pallet information', + addProductFirst: 'Please add a product first', + taskInfo: 'Task Info', + relatedTask: 'Related Task Order', + selectTask: 'Select task order', + selectTaskProduct: 'Select task product', + selectProduct: 'Select product', + selectPallet: 'Select pallet', + selectPalletFirst: 'Select pallet first', + selectTaskFirst: 'Select task order first', + selectProductFirst: 'Select product first', + emptyTaskProducts: 'No products for this task order', + completePalletInfo: 'Complete pallet warehouse/location/packages', + productAdded: 'Product added', + taskProductLoadFailed: 'Failed to load task products', + workOrderNo: 'Work Order No.', + code: 'Code', + packagingScheme: 'Packaging Scheme', + palletPackageQuantity: 'Packages per Pallet', + packageQuantity: 'Pieces per Package', + selectedPalletCount: '{count} pallet(s) selected', + selectedCount: '{count} selected', + packageUnit: '{count} pkg', + pieceUnit: '{count} pcs', + warehouse: 'Warehouse', + area: 'Area', + location: 'Location', + deliveryDate: 'Delivery Date', + emptyTask: 'No task orders', + emptyProduct: 'No product data', + emptyTaskProduct: 'No task products', + emptyPallet: 'No pallets', + spec: 'Spec', + unit: 'Unit', + palletCode: 'Pallet Code', + palletType: 'Pallet Type', + palletStatus: 'Pallet Status', + autoCode: 'Auto Code', + length: 'Length', + width: 'Width', + height: 'Height', + productCount: 'Packages', + ratedLoadWeight: 'Rated Load', + enterPalletCode: 'Enter pallet code', + selectPalletType: 'Select pallet type', + selectPalletStatus: 'Select pallet status', + enterPackageCount: 'Enter packages', + selectWarehouse: 'Select warehouse', + selectArea: 'Select area', + selectUnit: 'Select unit', + selectWarehouseFirst: 'Select warehouse first', + emptyArea: 'No areas', + enterRatedLoadWeight: 'Enter rated load', + createSuccess: 'Created successfully', + createPalletFailed: 'Failed to create pallet' + }, + productCheck: { + moduleName: 'Product Stock Check', + createTitle: 'New Product Stock Check', + executeTitle: 'Execute Stock Check', + detailTitle: 'Product Stock Check Detail', + selectProductTitle: 'Select Product', + selectItemTitle: 'Select Check Items', + selectWarehouseTitle: 'Select Warehouse', + selectAreaTitle: 'Select Area', + all: 'All', + reset: 'Reset', + clear: 'Clear', + loading: 'Loading...', + loadingMore: 'Loading more...', + noMoreData: 'No more data', + confirm: 'Confirm', + cancel: 'Cancel', + submit: 'OK', + submitting: 'Submitting...', + tip: 'Tip', + choose: 'Please select', + delete: 'Delete', + save: 'Save', + statusDraft: 'Pending Submit', + statusAuditing: 'Pending Review', + statusApproved: 'Reviewed', + statusRejected: 'Rejected', + searchDocumentPlaceholder: 'Enter check No.', + searchProductPlaceholder: 'Search product name/code/spec', + searchWarehousePlaceholder: 'Search warehouse name', + searchAreaPlaceholder: 'Search area name/code', + searchItemPlaceholder: 'Search product/warehouse/area', + productInfo: 'Product Info', + checkInfo: 'Check Info', + checkTime: 'Check Time', + selectCheckTime: 'Select check time', + sourceType: 'Source Type', + sourceTypeStock: 'By Stock', + sourceTypeProduct: 'By Product', + selectWarehouse: 'Select warehouse', + selectWarehouseFirst: 'Select warehouse first', + selectArea: 'Select area', + warehouse: 'Warehouse', + area: 'Area', + warehouseAddress: 'Address', + principal: 'Principal', + checkStatus: 'Check Status', + checked: 'Checked', + unchecked: 'Unchecked', + creator: 'Creator', + reviewer: 'Reviewer', + auditor: 'Reviewer', + documentNo: 'Check No.', + remark: 'Remark', + remarkPlaceholder: 'Enter remark', + productAndItems: 'Products & Items', + selectProduct: 'Select Product', + product: 'Product', + checkItems: 'Check Items', + selectAll: 'Select All', + selectedCount: '{count} selected', + selectedItemCount: '{count} item(s) selected', + selectCheckItems: 'Select check items', + stockCount: 'Book Qty', + code: 'Code', + spec: 'Spec', + unit: 'Unit', + difference: 'Difference', + actualCount: 'Actual Qty', + saveDraft: 'Save Draft', + finishCheck: 'Finish Check', + execute: 'Execute', + submitAudit: 'Submit Review', + auditPass: 'Approve', + auditReject: 'Reject', + auditPassSuccess: 'Approved', + auditRejectSuccess: 'Rejected', + submitAuditSuccess: 'Review submitted', + submitFailed: 'Submit failed', + selectAuditor: 'Select reviewer', + selectStatus: 'Select Check Status', + confirmAuditPass: 'Approve this product stock check?', + confirmAuditReject: 'Reject this product stock check?', + confirmDelete: 'Delete this product stock check?', + deleteSuccess: 'Deleted', + operationFailed: 'Operation failed', + loadFailed: 'Load failed', + detailLoadFailed: 'Failed to load detail', + emptyList: 'No product stock checks', + emptyProduct: 'No product data', + emptyWarehouse: 'No warehouses', + emptyArea: 'No areas', + emptyItemList: 'No check items', + emptyAddProduct: 'Please add a product', + selectProductFirst: 'Select product first', + completeCheckItems: 'Complete check item information', + createSuccess: 'Created successfully', + saveFailed: 'Save failed', + saveSuccess: 'Saved', + checkSuccess: 'Check completed', + noDetailId: 'No detail ID', + enterActualCount: 'Enter actual quantity', + confirmActualCountZero: '{items} actual quantity is 0. Continue?' + }, + productOutbound: { + moduleName: 'Product Outbound', + createTitle: 'New Product Outbound', + detailTitle: 'Product Outbound Detail', + selectProductTitle: 'Select Product', + selectPalletTitle: 'Select Pallet', + all: 'All', + outboundStatus: 'Outbound Status', + reset: 'Reset', + clear: 'Clear', + loading: 'Loading...', + loadingMore: 'Loading more...', + noMoreData: 'No more data', + confirm: 'Confirm', + cancel: 'Cancel', + back: 'Back', + submit: 'OK', + submitting: 'Submitting...', + tip: 'Tip', + choose: 'Please select', + statusPending: 'Pending Outbound', + statusAuditing: 'Pending Review', + statusStored: 'Outbounded', + statusRejected: 'Rejected', + searchDocumentPlaceholder: 'Enter outbound No.', + searchProductPlaceholder: 'Search product name/code/spec', + searchPalletPlaceholder: 'Search pallet code', + productInfo: 'Product Info', + outboundInfo: 'Outbound Info', + outboundTime: 'Outbound Time', + selectOutboundTime: 'Select outbound time', + operator: 'Operator', + selectOperator: 'Select operator', + outboundQuantity: 'Outbound Qty', + reviewer: 'Reviewer', + auditor: 'Reviewer', + documentNo: 'Document No.', + outboundType: 'Outbound Type', + remark: 'Remark', + remarkPlaceholder: 'Enter remark', + attachment: 'Attachment', + chooseFile: 'Choose File', + itemList: 'Outbound Items', + addProduct: 'Add Product', + product: 'Product', + pallet: 'Pallet', + packageCount: 'Packages', + pieceCount: 'Pieces', + outboundPackageCount: 'Outbound Packages', + outboundPieceCount: 'Outbound Pieces', + availablePackageCount: 'Available Packages', + enterOutboundPackageCount: 'Enter outbound packages', + palletQuantity: 'Pallet Qty', + emptyAddProduct: 'Please add product', + emptyOutboundList: 'No product outbound records', + emptyItemList: 'No outbound items', + confirmOutbound: 'Confirm Outbound', + outboundSuccess: 'Outbound success', + saveFailed: 'Save failed', + loadFailed: 'Load failed', + detailLoadFailed: 'Detail load failed', + operationFailed: 'Operation failed', + submitAudit: 'Submit Review', + auditPass: 'Approve', + auditReject: 'Reject', + auditPassSuccess: 'Approved', + auditRejectSuccess: 'Rejected', + submitAuditSuccess: 'Submitted for review', + submitFailed: 'Submit failed', + selectAuditor: 'Select reviewer', + selectOutboundStatus: 'Select outbound status', + confirmAuditPass: 'Approve this product outbound order?', + confirmAuditReject: 'Reject this product outbound order?', + noDetailId: 'No detail ID', + completeProductPalletInfo: 'Complete product and pallet info', + addProductFirst: 'Add product first', + selectProduct: 'Select product', + selectPallet: 'Select pallet', + selectPalletFirst: 'Select pallet first', + selectProductFirst: 'Select product first', + completePalletInfo: 'Complete pallet warehouse/location/package info', + productAdded: 'Product added', + code: 'Code', + packagingScheme: 'Packaging Scheme', + palletPackageQuantity: 'Packages per Pallet', + packageQuantity: 'Pieces per Package', + selectedPalletCount: '{count} pallets selected', + selectedCount: '{count} selected', + packageUnit: '{count} packages', + pieceUnit: '{count} pieces', + warehouse: 'Warehouse', + area: 'Area', + location: 'Location', + emptyProduct: 'No product data', + emptyPallet: 'No pallets', + spec: 'Spec', + unit: 'Unit', + palletCode: 'Pallet Code', + palletType: 'Pallet Type', + palletStatus: 'Pallet Status', + outMode: 'Outbound Mode', + outModeWholePallet: 'Whole Pallet', + outModeSplitPallet: 'Split Pallet' + }, productInventory: { moduleName: 'Product Inventory', detailTitle: 'Product Inventory Detail', diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js index 3ec6af9..a5cb438 100644 --- a/src/locales/zh-CN.js +++ b/src/locales/zh-CN.js @@ -1,1824 +1,1830 @@ -export default { - common: { - submit: '提交', - close: '关闭', - exit: '退出', - notice: '通知', - moduleBuilding: '模块建设中~', - updateSuccess: '修改成功', - confirmLogout: '确定注销并退出系统吗', - languageSwitched: '语言已切换', - more: '更多', - reset: '重置', - complete: '完成', - edit: '编辑', - saveFailed: '保存失败' - }, - tab: { - home: '首页', - report: '报表', - work: '管理', - mine: '我的' - }, - work:{ - mold: '模具', - equipmentMaintenance: '设备运维', - keypart: '关键件', - spare: '备件', - }, - nav: { - home: '首页', - mine: '个人中心', - avatar: '修改头像', - info: '个人信息', - editInfo: '编辑资料', - pwd: '修改密码', - setting: '应用设置', - help: '常见问题', - about: '关于我们' - }, - dashboard: { - welcome: '欢迎您使用', - subtitle: '必硕数字化智能中控平台', - functionNav: '功能导航', - editNavMenu: '编辑快捷开关', - configuredNav: '已添加', - unconfiguredNav: '添加更多', - dragHint: '拖动图标进行排序,上方图标将显示在控制中心', - clickHint: '点击图标添加到已配置或取消配置', - allNavMenu: '全部功能', - productionOverview: '生产整体概况', - qualityOverview: '质量概况', - productionPlan: '生产概括', - production: '生产', - quality: '质量', - totalCount: '总数', - passCount: '合格数', - failCount: '不合格数', - qualityTrend: '质量趋势', - chartPlaceholder: '图表加载中...', - totalWangongNumber: '报工总数', - totalPassNumber: '合格总数', - totalNoPassNumber: '不合格总数', - totalPassRate: '总合格率', - productPassRateRanking: '产品合格率排行', - passNumber: '合格数', - noPassNumber: '不合格数', - periodLastWeek: '上周', - periodThisWeek: '本周', - periodLast7Days: '近7日', - periodLastMonth: '上月', - periodThisMonth: '本月', - periodLastYear: '近一年', - collapseList: '收起列表', - viewMore: '查看更多 ›', - productName: '产品名称', - pipeline: '生产线', - planNumber: '计划数量', - planStart: '计划开始', - planEnd: '计划结束', - back: '返回', - todoTitle: '待办任务', - noTodo: '暂无待办任务', - taskCode: '任务编号:{value}', - taskType: '任务类型:{value}', - taskTarget: '目标:{value}', - createTime: '创建时间:{value}', - all: '总数', - pending: '未开工', - running: '生产中', - finished: '已完成', - mold: '模具', - equipment: '设备', - keypart: '关键件', - spare: '备件', - product: '产品物料', - statusScheduled: '已排产', - statusTrial: '试产', - statusMass: '量产', - statusPause: '暂停', - statusWaitStockIn: '待入库', - viewPlan: '查看计划: {code}', - filterTask: '任务', - filterProduct: '产品', - dateRange: '日期范围', - startDate: '开始时间', - endDate: '结束时间', - baogongNum: '报工数', - passNum: '合格数', - noPassNum: '不合格数', - passRate: '合格率', - trendChart: '趋势图', - taskPlaceholder: '任务模式开发中', - totalTask: '任务总数', - issuedNum: '下达数', - partialScheduledNum: '部分排产数', - waitingProduction: '待生产', - producing: '生产中', - completed: '已完成', - taskTrend: '任务趋势', - rangeYear: '近一年', - rangeMonth: '本月', - rangeWeek: '本周', - rangeToday: '今日', - rangeCustom: '自定义', - monday: '周一', - tuesday: '周二', - wednesday: '周三', - thursday: '周四', - friday: '周五', - saturday: '周六', - sunday: '周日' - }, - deviceOverview: { - title: '设备概括', - totalDevices: '设备总数', - runningCount: '运行', - standbyCount: '待机', - faultCount: '故障', - offlineCount: '离线', - utilizationRate: '利用率', - bootRate: '开机率', - faultRate: '故障率', - rateTrend: '稼动率/开机率趋势', - onlyScheduled: '只统计排产设备', - skipHoliday: '跳过节假日', - periodLastWeek: '上周', - periodThisWeek: '本周', - periodLast7Days: '近7日', - periodLastMonth: '上月', - periodThisMonth: '本月', - periodLastYear: '近一年', - utilizationRanking: '近7日平均稼动率排名', - utilizationRateTrend: '稼动率', - deviceRateTrend: '单设备近7日稼动率/开机率趋势', - selectDevice: '选择设备', - selectDeviceHint: '请选择设备查看趋势' - }, - taskList: { - filter: '筛选条件', - code: '任务单编码', - status: '状态', - taskType: '任务类型', - orderDate: '下单日期', - deliveryDate: '交付日期', - remark: '备注', - createTime: '创建时间', - totalNumber: '总数量', - planNumber: '已排产', - unPlanNumber: '未排产', - storedPlanNumber: '已入库', - urgent: '紧急', - noData: '暂无任务数据', - viewTask: '查看任务: {code}' - }, - planList: { - taskCode: '任务编号', - planCode: '计划编号', - employeeName: '报工人', - baogongNum: '报工数', - passNum: '合格数', - noPassNum: '不合格数', - passRate: '合格率', - baogongTime: '报工时间', - reason: '原因', - noData: '暂无报工数据', - viewDetail: '查看详情: {code}' - }, - functionCommon: { - search: '查询', - reset: '重置', - cancel: '取消', - confirm: '确认', - save: '保存', - loading: '加载中...', - loadingMore: '正在加载更多...', - noMoreData: '没有更多数据了', - noIdView: '缺少ID,无法查看详情', - noIdEdit: '缺少ID,无法编辑', - noIdDelete: '缺少ID,无法删除', - loadFailed: '加载失败', - deleteSuccess: '删除成功', - deleteFailed: '删除失败', - saveSuccess: '保存成功', - saveFailed: '保存失败', - createSuccess: '新增成功', - updateSuccess: '更新成功', - confirmDelete: '确认删除', - uploading: '上传中', - uploadImageFailed: '图片上传失败', - yes: '是', - no: '否', - all: '全部', - noMore: '没有更多数据了', - confirmTitle: '提示' - }, - moldGet: { - moduleName: '模具出库', - subTitle: '按出库单号与状态快速筛选', - detailTitle: '模具出库详情', - basicInfo: '基础信息', - outNo: '出库单号', - outType: '出库类型', - outTime: '出库时间', - outTimeSingle: '出库日期', - outTimePlaceholder: '请选择出库日期', - warehouse: '仓库', - allWarehouse: '全部仓库', - warehousePlaceholder: '请选择仓库', - creator: '创建人', - status: '状态', - allStatus: '全部状态', - remark: '备注', - itemRemark: '明细备注', - attachment: '附件', - fileUrlPlaceholder: '请输入附件地址', - remarkPlaceholder: '请输入备注', - moldName: '模具', - moldCode: '模具编码', - moldStatus: '模具状态', - moldUseTime: '使用次数', - machineName: '使用设备', - isEnable: '是否启用', - createTime: '创建时间', - searchNo: '请输入出库单号', - searchMold: '请输入模具编码或名称', - searchCode: '请输入模具编码', - searchName: '请输入模具名称', - itemListTitle: '出库明细', - selectMold: '选择模具', - noItems: '暂无出库明细', - count: '数量', - noAuto: '系统自动生成', - createTitle: '新增模具出库', - editTitle: '编辑模具出库', - edit: '编辑', - delete: '删除', - approve: '审批', - empty: '暂无模具出库数据', - noMoldData: '暂无可选模具', - loadEditFailed: '加载编辑数据失败', - validatorOutTimeRequired: '出库日期不能为空', - validatorWarehouseRequired: '仓库不能为空', - validatorItemRequired: '请至少选择一个模具', - validatorCountRequired: '数量必须大于0', - confirmDelete: '确认删除出库单 {no} 吗?', - confirmApprove: '确认审批出库单 {no} 吗?', - approveSuccess: '审批成功' - }, - moldReturn: { - moduleName: '模具入库', - subTitle: '按入库单号与状态快速筛选', - detailTitle: '模具入库详情', - basicInfo: '基础信息', - inNo: '入库单号', - inType: '入库类型', - inTime: '入库时间', - inTimeSingle: '入库日期', - inTimePlaceholder: '请选择入库日期', - warehouse: '仓库', - allWarehouse: '全部仓库', - warehousePlaceholder: '请选择仓库', - creator: '创建人', - status: '状态', - allStatus: '全部状态', - remark: '备注', - itemRemark: '明细备注', - attachment: '附件', - fileUrlPlaceholder: '请输入附件地址', - remarkPlaceholder: '请输入备注', - moldName: '模具', - moldCode: '模具编码', - moldStatus: '模具状态', - moldUseTime: '使用次数', - searchNo: '请输入入库单号', - searchCode: '请输入模具编码', - searchName: '请输入模具名称', - itemListTitle: '入库明细', - selectMold: '选择模具', - noItems: '暂无入库明细', - count: '数量', - noAuto: '系统自动生成', - createTitle: '新增模具入库', - editTitle: '编辑模具入库', - approve: '审批', - empty: '暂无模具入库数据', - noMoldData: '暂无可选模具', - loadEditFailed: '加载编辑数据失败', - validatorInTimeRequired: '入库日期不能为空', - validatorWarehouseRequired: '仓库不能为空', - validatorItemRequired: '请至少选择一个模具', - validatorCountRequired: '数量必须大于0', - confirmDelete: '确认删除入库单 {no} 吗?', - confirmApprove: '确认审批入库单 {no} 吗?', - approveSuccess: '审批成功' - }, - moldOperate: { - moduleName: '上下模', - subTitle: '模具上模/下模操作记录', - detailTitle: '上下模详情', - basicInfo: '基础信息', - tabUp: '上模', - tabDown: '下模', - operateType: '操作类型', - mold: '模具', - lowerMold: '下模模具', - selectMold: '选择模具', - noSelectedMold: '暂无已选模具', - allMold: '全部模具', - searchRemark: '请输入备注关键字', - searchCode: '请输入模具编码', - searchName: '请输入模具名称', - moldCode: '模具编码', - moldName: '模具名称', - device: '设备', - deviceName: '设备名称', - creatorName: '创建人', - remark: '备注', - createTime: '创建时间', - createTitle: '新增上下模', - editTitle: '编辑上下模', - empty: '暂无上下模数据', - noMoldData: '暂无可选模具', - placeholderDevice: '请选择设备', - placeholderRemark: '请输入备注', - validatorOperateTypeRequired: '操作类型不能为空', - validatorDeviceRequired: '设备不能为空', - validatorMoldRequired: '请至少选择一个上模模具', - validatorOperatorRequired: '请选择操作人', - validatorLowerMoldRequired: '请至少选择一个下模模具', - loadEditFailed: '加载编辑数据失败', - confirmDelete: '确认删除该上下模记录吗?', - scanDevice: '扫设备码', - selectDevice: '选择设备', - selectedDevice: '已选设备', - deviceCode: '设备编码', - productionLine: '所属产线', - currentMold: '当前在机模具', - deviceStatus: '设备状态', - statusRunning: '正常', - statusStop: '停用', - statusFault: '故障', - selectMountMold: '选择待上模模具', - product: '产品', - status: '状态', - pendingMount: '待上模', - confirmMount: '确认上模', - clickSelectMold: '点击选择模具', - noDeviceData: '暂无设备数据', - deviceNotFound: '未找到对应设备', - deviceInfo: '设备信息', - currentMoldInfo: '当前在机模具', - mountTime: '上模时间', - useCount: '使用次数', - countUnit: '次', - changeMountTarget: '更换上模对象', - changeTarget: '更换下模对象', - confirmDismount: '确认下模', - clickSelectDeviceFirst: '请先选择设备', - noMoldOnDevice: '该设备暂无在机模具', - historySuffix: '历史', - historyTitle: '上下模历史', - searchPlaceholder: '搜索设备/模具名称', - placeholderOperator: '请选择操作人', - filterAll: '全部', - filterToday: '今天', - filterWeek: '本周', - historyEmpty: '暂无历史记录', - totalPrefix: '共 ', - totalSuffix: ' 条', - confirmDeleteHistory: '确认删除该历史记录吗?', - operateTime: '操作时间', - operator: '操作人' - }, - moldInspectionItems: { - moduleName: '点检项库', - subTitle: '模具管理点检项维护', - detailTitle: '点检项库详情', - basicInfo: '基础信息', - code: '项目编码', - name: '项目名称', - inspectionMethod: '检验方式', - valueType: '值类型', - isEnable: '是否启用', - judgmentCriteria: '判定基准', - creatorName: '创建人', - createTime: '创建时间', - searchPlaceholder: '请输入编码/名称/判定基准', - createTitle: '新增点检项', - editTitle: '编辑点检项', - empty: '暂无点检项数据', - loadEditFailed: '加载编辑数据失败', - confirmDelete: '确认删除该点检项吗?', - placeholderCode: '请输入项目编码', - placeholderName: '请输入项目名称', - placeholderInspectionMethod: '请选择检验方式', - placeholderValueType: '请选择值类型', - placeholderIsEnable: '请选择是否启用', - placeholderJudgmentCriteria: '请输入判定基准', - validatorSubjectCodeRequired: '项目编码不能为空', - validatorSubjectNameRequired: '项目名称不能为空', - validatorInspectionMethodRequired: '检验方式不能为空', - validatorValueTypeRequired: '值类型不能为空', - validatorIsEnableRequired: '是否启用不能为空', - validatorJudgmentCriteriaRequired: '判定基准不能为空' - }, - moldInspectionPlan: { - moduleName: '点检模板', - subTitle: '模具管理点检模板维护', - detailTitle: '点检模板详情', - basicInfo: '基础信息', - planName: '模板名称', - planType: '模板类型', - planTypeMaintain: '保养', - planTypeInspect: '点检', - description: '描述', - subjectName: '点检项', - creatorName: '创建人', - createTime: '创建时间', - updateTime: '更新时间', - searchPlaceholder: '请输入模板名称', - createTitle: '新增点检模板', - editTitle: '编辑点检模板', - empty: '暂无点检模板数据', - loadEditFailed: '加载编辑数据失败', - confirmDelete: '确认删除该点检模板吗?', - placeholderPlanName: '请输入模板名称', - placeholderPlanType: '请选择模板类型', - placeholderDescription: '请输入描述', - placeholderSubjectSelect: '请选择点检项', - subjectSelectTitle: '选择点检项', - noSubjectData: '暂无点检项数据', - validatorPlanNameRequired: '模板名称不能为空', - validatorPlanTypeRequired: '模板类型不能为空', - subjectListTitle: '关联点检项', - subjectCode: '项目编码', - inspectionMethod: '检验方式', - judgmentCriteria: '判定基准' - }, - moldTaskConfig: { - moduleName: '点检任务', - subTitle: '模具管理点检任务维护', - detailTitle: '点检任务详情', - basicInfo: '基础信息', - name: '任务名称', - taskType: '任务类型', - taskTypeInspect: '点检', - taskTypeMaintain: '保养', - moldList: '模具列表', - projectForm: '点检模板', - projectFormName: '项目方案', - dateRange: '有效日期', - startDate: '开始日期', - endDate: '结束日期', - cronExpression: 'Cron表达式', - operableUsers: '可操作用户', - enabled: '是否启用', - creatorName: '创建人', - createTime: '创建时间', - updateTime: '更新时间', - searchPlaceholder: '请输入任务名称', - createTitle: '新增点检任务', - editTitle: '编辑点检任务', - empty: '暂无点检任务数据', - loadEditFailed: '加载编辑数据失败', - confirmDeleteContent: '确认删除该点检任务【{name}】吗?', - placeholderName: '请输入任务名称', - placeholderTaskType: '请选择任务类型', - placeholderMoldList: '请选择模具', - placeholderProjectForm: '请选择点检模板', - placeholderStartDate: '选择开始日期', - placeholderEndDate: '选择结束日期', - placeholderCron: '请输入Cron表达式', - placeholderOperableUsers: '请选择可操作用户', - validatorNameRequired: '任务名称不能为空', - validatorTaskTypeRequired: '任务类型不能为空', - validatorMoldListRequired: '模具列表不能为空', - validatorProjectFormRequired: '点检模板不能为空', - validatorDateRangeRequired: '有效日期不能为空', - createTicketSuccess: '工单创建成功', - createTicketFail: '工单创建失败', - moldSelectTitle: '选择模具', - planSelectTitle: '选择点检模板', - userSelectTitle: '选择可操作用户' - }, - equipmentInspectionTasks: { - moduleName: '设备点检任务', - subTitle: '设备点检任务工单管理', - detailTitle: '设备点检任务详情', - basicInfo: '基础信息', - createTicket: '新增工单管理', - name: '任务名称', - taskType: '任务类型', - taskTypeInspect: '点检', - taskTypeMaintain: '保养', - deviceList: '设备列表', - projectFormName: '项目方案', - dateRange: '有效日期', - cronExpression: 'Cron表达式', - operableUsers: '可操作用户', - enabled: '是否启用', - creatorName: '创建人', - createTime: '创建时间', - updateTime: '更新时间', - searchPlaceholder: '请输入任务名称/设备编码/设备名称', - empty: '暂无设备点检任务数据', - createTicketSuccess: '工单创建成功', - createTicketFail: '工单创建失败', - lineFilter: '产线', - }, - equipmentInspectionRecord: { - moduleName: '设备点检记录', - subTitle: '设备点检记录查询', - detailTitle: '设备点检记录详情', - taskType: '任务类型', - taskTypeInspect: '点检', - taskTypeMaintain: '保养', - taskTypeInspectShort: '检', - taskTypeMaintainShort: '养', - planNo: '任务编号', - deviceName: '设备名称', - configName: '点检模板', - jobStatus: '作业状态', - jobStatusPending: '待处理', - jobStatusProcessing: '处理中', - jobStatusCompleted: '已完成', - jobStatusTimeout: '已超时', - jobStatusCancelled: '已取消', - jobResult: '结果', - jobResultOk: '通过', - jobResultNg: '不通过', - taskTime: '作业时间', - searchPlaceholder: '请输入任务编号/设备编码/设备名称', - empty: '暂无设备点检记录数据', - progressTitle: '执行进度', - inspectionMethod: '检验方式', - judgmentCriteria: '标准要求', - valueType: '值类型', - resultText: '结果', - requiredText: '必检', - inspectionResultPending: '待检', - inspectionResultPass: '通过', - inspectionResultFail: '不通过', - textInput: '输入值', - inputPlaceholder: '请输入', - remark: '备注', - images: '图片', - maxUploadCount: '最多上传 9 张图片', - selectAllDecisionError: '请为所有待检项选择结果', - noResultData: '暂无点检项数据', - lineFilter: '产线', - }, - moldWorkOrder: { - moduleName: '点检记录', - subTitle: '模具管理点检记录查询', - detailTitle: '点检记录详情', - basicInfo: '基础信息', - resultListTitle: '检验结果', - planNo: '工单编号', - moldName: '模具名称', - planType: '任务类型', - planTypeInspect: '点检', - planTypeMaintain: '保养', - configName: '任务配置', - jobStatus: '作业状态', - jobStatusPending: '待处理', - jobStatusProcessing: '处理中', - jobStatusCompleted: '已完成', - jobStatusTimeout: '已超时', - jobStatusCancelled: '已取消', - jobResult: '作业结果', - jobResultOk: 'OK', - jobResultNg: 'NG', - operatorName: '操作人', - taskTime: '任务时间', - taskEndTime: '结束时间', - cancelReason: '取消原因', - createTime: '创建时间', - searchPlaceholder: '请输入工单编号', - empty: '暂无点检记录数据', - cancelTask: '取消任务', - cancelSuccess: '取消成功', - cancelFail: '取消失败', - placeholderCancelReason: '请输入取消原因', - validatorCancelReasonRequired: '取消原因不能为空', - inspectionItemName: '检验项名称', - inspectionMethod: '检验方式', - judgmentCriteria: '判定基准', - valueType: '值类型', - inspectionResult: '检验结果', - inspectionResultPending: '待检', - inspectionResultPass: '合格', - inspectionResultFail: '不合格', - textInput: '输入值', - remark: '备注', - images: '图片', - noResultData: '暂无检验结果数据', - loadMore: '加载更多' - }, - mine: { - clickLogin: '点击登录', - username: '用户名:{name}', - profile: '个人信息', - feedback: '反馈中心', - service: '在线客服', - changePassword: '修改密码', - logout: '退出登录', - editProfile: '编辑资料', - faq: '常见问题', - about: '关于我们', - appSettings: '应用设置' - }, - setting: { - language: '系统语言', - currentLanguage: '当前语言:{language}', - terminalMode: '终端模式', - currentTerminal: '当前终端:{terminal}', - switchingTerminal: '正在切换终端...', - terminalSwitched: '已切换到{terminal}', - switchLanguage: '切换语言', - checkUpdate: '检查更新', - cleanCache: '清理缓存', - logout: '退出登录', - serverAddress: '服务器地址', - serverAddressHint: '请输入当前账号对应的后端接口地址', - serverAddressPlaceholder: '请输入后端访问地址', - serverAddressRequired: '请输入后端访问地址', - serverAddressSaved: '服务器地址已保存,请重新登录', - mobile: '手机', - scanner: '扫码器', - zhCN: '中文', - enUS: '英文' - }, - about: { - appName: '必硕生管系统', - version: '版本信息', - email: '官方邮箱', - hotline: '服务热线', - website: '公司网站' - }, - help: { - appUserQuestion: 'APP用户问题', - otherQuestion: '其他问题', - appFeatureQuestion: 'APP支持的功能业务有哪些?', - appFeatureAnswer: '计划开工、生产报工、投料记录、生产记录', - reportQuestion: '生产报工如何报工?', - reportAnswer: '可以', - planQuestion: '计划管理如何进行?', - planAnswer: '计划管理', - materialQuestion: '投料记录如何进行?', - materialAnswer: '投料记录', - logoutQuestion: '如何退出登录?', - logoutAnswer: '请点击[我的] - [应用设置] - [退出登录]即可退出登录', - avatarQuestion: '如何修改用户头像?', - avatarAnswer: '请点击[我的] - [选择头像] - [点击提交]即可更换用户头像', - passwordQuestion: '如何修改登录密码?', - passwordAnswer: '请点击[我的] - [应用设置] - [修改密码]即可修改登录密码' - }, - info: { - username: '用户名称', - nickname: '昵称', - gender: '性别', - male: '男', - female: '女', - phone: '手机号码', - email: '邮箱', - createdAt: '创建日期' - }, - editInfo: { - nickname: '用户昵称', - nicknamePlaceholder: '请输入昵称', - phone: '手机号码', - phonePlaceholder: '请输入手机号码', - email: '邮箱', - emailPlaceholder: '请输入邮箱', - gender: '性别', - nicknameRequired: '用户昵称不能为空', - phoneRequired: '手机号码不能为空', - phoneInvalid: '请输入正确的手机号码', - emailRequired: '邮箱地址不能为空', - emailInvalid: '请输入正确的邮箱地址' - }, - pwd: { - oldPassword: '旧密码', - newPassword: '新密码', - confirmPassword: '确认密码', - oldPasswordPlaceholder: '请输入旧密码', - newPasswordPlaceholder: '请输入新密码', - confirmPasswordPlaceholder: '请确认新密码', - oldPasswordRequired: '旧密码不能为空', - newPasswordRequired: '新密码不能为空', - passwordLength: '长度在 6 到 20 个字符', - confirmPasswordRequired: '确认密码不能为空', - passwordNotMatch: '两次输入的密码不一致' - }, - avatar: { - chooseAvatar: '选择头像' - }, - materialCategory: { - moduleName: '产品物料分类', - subTitle: '产品物料分类管理', - detailTitle: '分类详情', - basicInfo: '基础信息', - code: '分类编码', - name: '分类名称', - parentName: '上级分类', - rootCategory: '无(顶级分类)', - sort: '排序', - status: '状态', - statusEnable: '启用', - statusDisable: '禁用', - createTime: '创建时间', - searchPlaceholder: '请输入分类编码/名称', - createTitle: '新增分类', - editTitle: '编辑分类', - empty: '暂无分类数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少分类ID', - loadFailed: '加载分类详情失败', - placeholderCode: '请输入分类编码', - placeholderName: '请输入分类名称', - placeholderParent: '请选择上级分类', - placeholderSort: '请输入排序', - placeholderStatus: '请选择状态', - validatorCodeRequired: '分类编码不能为空', - validatorNameRequired: '分类名称不能为空', - validatorSortRequired: '排序不能为空', - validatorStatusRequired: '状态不能为空', - confirmDeleteContent: '确认删除分类【{name}】吗?' - }, - materialInfo: { - moduleName: '产品物料信息', - subTitle: '产品物料信息管理', - detailTitle: '物料详情', - basicInfo: '基础信息', - barCode: '物料条码', - name: '物料名称', - category: '物料小类', - unit: '库存单位', - standard: '规格', - expiryDay: '保质期天数', - status: '状态', - statusEnable: '启用', - statusDisable: '禁用', - remark: '备注', - createTime: '创建时间', - autoCode: '自动生成', - searchPlaceholder: '请输入物料名称/条码', - createTitle: '新增物料', - editTitle: '编辑物料', - empty: '暂无物料数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少物料ID', - loadFailed: '加载物料详情失败', - placeholderBarCode: '请输入物料条码', - placeholderName: '请输入物料名称', - placeholderCategory: '请选择物料分类', - placeholderUnit: '请选择单位', - placeholderStandard: '请输入规格', - placeholderExpiryDay: '请输入保质期天数', - placeholderStatus: '请选择状态', - placeholderRemark: '请输入备注', - validatorBarCodeRequired: '物料条码不能为空', - validatorNameRequired: '物料名称不能为空', - validatorCategoryRequired: '物料分类不能为空', - validatorUnitRequired: '单位不能为空', - confirmDeleteContent: '确认删除物料【{name}】吗?' - }, - productBom: { - moduleName: '产品BOM', - subTitle: '产品BOM管理', - detailTitle: 'BOM详情', - basicInfo: '基础信息', - code: 'BOM编码', - version: '版本', - product: '产品', - unit: '库存单位', - yieldRate: '良品率', - isEnable: '是否启用', - enableYes: '是', - enableNo: '否', - remark: '备注', - createTime: '创建时间', - searchPlaceholder: '请输入BOM编码', - createTitle: '新增BOM', - editTitle: '编辑BOM', - empty: '暂无BOM数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少BOM ID', - loadFailed: '加载BOM详情失败', - placeholderCode: '请输入BOM编码', - placeholderVersion: '请输入版本', - placeholderProduct: '请选择产品', - placeholderUnit: '请选择单位', - placeholderYieldRate: '请输入良品率', - placeholderEnable: '请选择是否启用', - placeholderRemark: '请输入备注', - validatorCodeRequired: 'BOM编码不能为空', - validatorVersionRequired: '版本不能为空', - validatorProductRequired: '产品不能为空', - validatorUnitRequired: '单位不能为空', - validatorEnableRequired: '是否启用不能为空', - confirmDeleteContent: '确认删除BOM【{code}】吗?', - detailTab: 'BOM明细', - detailUsageNumber: '用量', - detailUnit: '单位', - detailLossRate: '损耗率', - detailRemark: '备注', - detailEmpty: '暂无BOM明细数据' - }, - equipmentCategory: { - moduleName: '设备分类', - subTitle: '设备分类管理', - detailTitle: '设备分类详情', - basicInfo: '基础信息', - code: '分类编码', - name: '分类名称', - parentName: '上级分类', - rootCategory: '无(顶级分类)', - sort: '排序', - remark: '备注', - createTime: '创建时间', - searchPlaceholder: '请输入分类编码/名称', - createTitle: '新增设备分类', - editTitle: '编辑设备分类', - empty: '暂无设备分类数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少分类ID', - loadFailed: '加载分类详情失败', - placeholderCode: '请输入分类编码', - placeholderName: '请输入分类名称', - placeholderParent: '请选择上级分类', - placeholderSort: '请输入排序', - placeholderRemark: '请输入备注', - validatorCodeRequired: '分类编码不能为空', - validatorNameRequired: '分类名称不能为空', - confirmDeleteContent: '确认删除分类【{name}】吗?' - }, - equipmentLedger: { - moduleName: '设备台账', - subTitle: '设备台账管理', - detailTitle: '设备台账详情', - basicInfo: '基础信息', - deviceCode: '设备编码', - deviceName: '设备名称', - deviceType: '设备类型', - deviceStatus: '设备状态', - lineFilter: '产线', - scanUnrecognized: '未识别二维码内容', - scanTypeMismatch: '二维码类型不匹配', - scanFailed: '扫码失败', - deviceSpec: '设备规格', - isScheduled: '是否排产', - ratedCapacity: '额定产能', - dailyAverageValue: '每日报工平均值', - dataCollectionCapacity: '数据采集产能', - productionDate: '生产日期', - outgoingTime: '出厂日期', - factoryEntryDate: '入厂日期', - deviceLocation: '设备位置', - deviceManagerName: '设备负责人', - workshop: '所属车间', - remark: '备注', - creatorName: '创建人', - createTime: '创建时间', - autoCode: '自动生成', - yes: '是', - no: '否', - searchPlaceholder: '请输入设备编码/名称', - createTitle: '新增设备台账', - editTitle: '编辑设备台账', - empty: '暂无设备台账数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少设备ID', - loadFailed: '加载设备详情失败', - placeholderDeviceCode: '请输入设备编码', - placeholderDeviceName: '请输入设备名称', - placeholderDeviceType: '请选择设备类型', - placeholderDeviceSpec: '请输入设备规格', - placeholderRatedCapacity: '请输入额定产能', - placeholderDailyAverageValue: '请输入每日报工平均值', - placeholderDataCollectionCapacity: '请输入数据采集产能', - placeholderProductionDate: '请选择生产日期', - placeholderOutgoingTime: '请选择出厂日期', - placeholderFactoryEntryDate: '请选择入厂日期', - placeholderDeviceLocation: '请输入设备位置', - placeholderRemark: '请输入备注', - validatorDeviceCodeRequired: '设备编码不能为空', - validatorDeviceNameRequired: '设备名称不能为空', - validatorDeviceTypeRequired: '设备类型不能为空', - validatorProductionDateRequired: '生产日期不能为空', - validatorOutgoingTimeRequired: '出厂日期不能为空', - validatorFactoryEntryDateRequired: '入厂日期不能为空', - validatorRatedCapacityRequired: '额定产能不能为空', - validatorDailyAverageValueRequired: '每日报工平均值不能为空', - validatorDataCollectionCapacityRequired: '数据采集产能不能为空', - confirmDeleteContent: '确认删除设备【{name}】吗?', - checkHistory: '点检记录', - maintainHistory: '保养记录', - repairHistory: '报修记录', - operator: '操作人', - inspectionMethod: '点检方式', - criteria: '判定标准', - inspectionTime: '点检时间', - maintainMethod: '保养方式', - maintainTime: '保养时间', - repairName: '维修单名称', - faultPhenomenon: '故障现象', - faultDescription: '故障描述', - replacementParts: '更换配件', - repairContent: '维修内容', - finishDate: '完成日期', - faultImages: '故障图片', - repairedImages: '维修后图片', - noHistoryData: '暂无历史记录', - resultPending: '待处理', - resultPass: '合格', - resultFail: '不合格', - repairPending: '待处理', - repairProcessing: '处理中', - repairCompleted: '已完成', - repairAbnormal: '异常' - }, - equipmentMaintenance: { - moduleName: '设备维修', - createTitle: '新增设备维修', - editTitle: '编辑设备维修', - detailTitle: '设备维修详情', - repairTitle: '维修处理', - basicInfo: '基本信息', - repairObject: '维修对象', - repairCode: '维修单编号', - repairName: '维修单名称', - requireDate: '报修日期', - acceptedBy: '维修人员', - confirmBy: '验收人员', - machineryTypeId: '设备类型', - machineryTypeDevice: '设备', - machineryTypeKeyItem: '关键件', - device: '设备', - component: '关键件', - faultLevel: '故障等级', - isShutdown: '是否停机', - status: '单据状态', - faultInfo: '故障信息', - faultPhenomenon: '故障现象', - faultDescription: '故障描述', - faultImages: '故障图片', - repairResultSection: '处理结果', - repairResult: '维修结果', - finishDate: '完成日期', - confirmDate: '验收日期', - downtimeDuration: '停机时长', - faultReason: '故障原因', - handlingMeasures: '处理措施', - replacementParts: '更换配件', - repairContent: '维修内容', - repairedImages: '维修后图片', - remark: '备注', - autoCode: '自动生成', - deviceLabel: '设备', - reportTimeLabel: '报修时间', - searchPlaceholder: '请输入单号/设备编码/设备名称', - empty: '暂无维修记录', - statusPending: '待维修', - statusPassed: '通过', - statusRejected: '不通过', - placeholderRepairCode: '请输入维修单编号', - placeholderRepairName: '请输入维修单名称', - placeholderRequireDate: '请选择报修日期', - placeholderAcceptedBy: '请选择维修人员', - placeholderConfirmBy: '请选择验收人员', - placeholderDevice: '请选择设备', - placeholderComponent: '请选择关键件', - placeholderFaultPhenomenon: '请输入故障现象', - placeholderFaultDescription: '请输入故障描述', - placeholderFinishDate: '请选择完成日期', - placeholderConfirmDate: '请选择验收日期', - placeholderDowntimeDuration: '请输入停机时长,单位小时', - placeholderFaultReason: '请输入故障原因', - placeholderHandlingMeasures: '请输入处理措施', - placeholderReplacementParts: '请输入更换配件', - placeholderRepairContent: '请输入维修内容', - placeholderRemark: '请输入备注', - loadDetailFailed: '加载详情失败', - scanUnrecognized: '未识别到内容', - scanEquipmentRequired: '请扫描设备二维码', - deviceNotFound: '未找到对应设备', - scanFailed: '扫码失败', - maxUploadCount: '最多上传 9 张图片', - saving: '保存中', - saveSuccess: '保存成功', - submitSuccess: '提交成功', - submitFailed: '提交失败', - noId: '缺少维修单 ID', - confirmDeleteContent: '确定删除维修单“{code}”吗?', - validatorRepairCodeRequired: '请输入维修单编号', - validatorRepairNameRequired: '请输入维修单名称', - validatorDeviceRequired: '请选择设备', - validatorComponentRequired: '请选择关键件', - validatorRequireDateRequired: '请选择报修日期', - validatorFaultLevelRequired: '请选择故障等级', - validatorIsShutdownRequired: '请选择是否停机', - validatorFaultPhenomenonRequired: '请输入故障现象', - lineFilter: '产线', - validatorRepairStatusRequired: '请选择维修结果', - validatorFinishDateRequired: '请选择完成日期', - validatorConfirmDateRequired: '请选择验收日期' - }, - criticalComponent: { - moduleName: '设备关键件', - subTitle: '设备关键件管理', - detailTitle: '设备关键件详情', - basicInfo: '基础信息', - code: '关键件编码', - name: '关键件名称', - deviceSpec: '规格', - description: '描述', - count: '数量', - remark: '备注', - creatorName: '创建人', - createTime: '创建时间', - autoCode: '自动生成', - searchPlaceholder: '请输入编码/名称', - createTitle: '新增设备关键件', - editTitle: '编辑设备关键件', - empty: '暂无设备关键件数据', - loadEditFailed: '加载编辑数据失败', - noId: '缺少关键件ID', - loadFailed: '加载关键件详情失败', - placeholderCode: '请输入关键件编码', - placeholderName: '请输入关键件名称', - placeholderDeviceSpec: '请输入规格', - placeholderDescription: '请输入描述', - placeholderCount: '请输入数量', - placeholderRemark: '请输入备注', - validatorCodeRequired: '关键件编码不能为空', - validatorNameRequired: '关键件名称不能为空', - confirmDeleteContent: '确认删除关键件【{name}】吗?' - }, - moldLedger: { - moduleName: '模具台账', - subTitle: '模具台账管理', - detailTitle: '模具详情', - basicInfo: '模具基本信息', - moldPlaceholder: '模具', - moldName: '模具名称', - product: '产品', - moldCode: '模具编号', - status: '状态', - versionSpec: '版本/规格', - cavityCount: '模穴数', - currentDevice: '当前设备', - useCount: '使用次数', - expand: '展开', - collapse: '收起', - tabChildMold: '子模具', - tabInspection: '点检记录', - tabRepair: '维修记录', - tabMaintenance: '保养记录', - tabInstall: '安装记录', - installLocation: '安装位置', - material: '材质', - quantity: '数量', - lastReplace: '上次更换', - usedDays: '已使用{days}天', - remark: '备注', - noChildMold: '暂无子模具数据', - noInspection: '暂无点检记录', - noRepair: '暂无维修记录', - noMaintenance: '暂无保养记录', - noInstall: '暂无安装记录', - inspectionMethod: '点检方式', - criteria: '判定标准', - inspectionTime: '点检时间', - maintainMethod: '保养方式', - maintainTime: '保养时间', - repairProject: '维修项目', - projectContent: '项目内容', - finishTime: '完成时间', - operateMold: '模具', - operator: '操作人', - time: '时间', - upperMold: '上模', - lowerMold: '下模', - missingBrandId: '缺少模具组ID', - detailLoadFailed: '详情加载失败', - childLoadFailed: '子模具加载失败', - inspectionLoadFailed: '点检记录加载失败', - repairLoadFailed: '维修记录加载失败', - maintainLoadFailed: '保养记录加载失败', - installLoadFailed: '安装记录加载失败', - resultPending: '待处理', - resultPass: '合格', - resultWarning: '警告', - repairCompleted: '完成', - repairAbnormal: '异常', - repairProcessing: '处理中', - searchPlaceholder: '请输入模具组编码或名称', - allStatus: '全部', - selectMoldStatus: '选择模具状态', - clear: '清空', - name: '名称', - createTime: '创建时间', - confirmDeleteContent: '确认删除模具组"{name}"吗?', - empty: '暂无模具台账数据', - scanUnrecognized: '无法识别二维码', - scanFormatError: '二维码格式不正确', - scanFailed: '扫描失败', - noIdView: '缺少ID,无法查看详情', - noIdDelete: '缺少ID,无法删除' - }, - moldCheck: { - moduleName: '模具点检', - addTitle: '新增点检', - detailTitle: '点检详情', - searchPlaceholder: '请输入点检单号', - empty: '暂无点检记录', - add: '新增', - moldName: '模具名称', - moldCode: '模具编号', - product: '产品', - status: '状态', - taskType: '任务类型', - taskTypeInspect: '点检', - taskTypeMaintain: '保养', - planNo: '点检单号', - taskTime: '执行时间', - template: '配置模板', - operator: '操作员', - jobStatusPending: '待执行', - jobStatusProcessing: '执行中', - jobStatusCompleted: '已完成', - jobStatusTimeout: '已超时', - jobStatusCancelled: '已取消', - jobResultOk: '通过', - jobResultNg: '不通过', - progressTitle: '进度', - noResultData: '暂无点检结果数据', - requiredText: '必检', - inspectionMethod: '点检方式', - judgmentCriteria: '判定标准', - textInput: '输入值', - inputPlaceholder: '请输入', - images: '图片', - remark: '备注', - resultText: '结果', - inspectionResultPass: '通过', - inspectionResultFail: '不通过', - inspectionResultPending: '待判定', - maxUploadCount: '最多上传3张图片', - selectAllDecisionError: '请选择所有点检项的判定结果', - currentMoldInfo: '模具信息', - moldGroupCode: '模具组编码', - moldGroupName: '模具组名称', - cavityCount: '模穴数', - moldSize: '模具尺寸', - currentDevice: '当前设备', - selectMold: '选择模具', - reSelectMold: '重新选择模具', - selectMoldError: '请选择模具', - searchMold: '请输入模具名称', - noMoldInfo: '请选择模具', - noMoldData: '暂无可选模具', - taskName: '任务名称', - taskInfo: '任务信息', - placeholderTaskName: '请输入任务名称', - templateSelection: '模板/任务选择', - selectTemplate: '请选择模板', - selectTemplateError: '请选择点检模板', - noItems: '请先选择点检模板', - noTemplate: '暂无模板', - resultListTitle: '检验结果', - editResult: '编辑', - cancelEdit: '取消编辑', - submit: '提交点检', - submitSuccess: '点检提交成功', - submitFailed: '点检提交失败', - reInspect: '再次点检' - }, - moldMaintain: { - moduleName: '模具保养', - addTitle: '新增保养', - detailTitle: '保养详情', - searchPlaceholder: '请输入保养单号', - empty: '暂无保养记录', - add: '新增', - moldName: '模具名称', - moldCode: '模具编号', - product: '产品', - status: '状态', - taskType: '任务类型', - taskTypeInspect: '点检', - taskTypeMaintain: '保养', - planNo: '保养单号', - taskTime: '执行时间', - template: '配置模板', - operator: '操作员', - jobResultOk: '通过', - jobResultNg: '不通过', - progressTitle: '进度', - noResultData: '暂无保养结果数据', - requiredText: '必检', - inspectionMethod: '保养方式', - judgmentCriteria: '判定基准', - textInput: '输入值', - inputPlaceholder: '请输入', - images: '图片', - remark: '备注', - resultText: '结果', - inspectionResultPass: '通过', - inspectionResultFail: '不通过', - inspectionResultPending: '待判定', - maxUploadCount: '最多上传3张图片', - selectAllDecisionError: '请选择所有保养项的判定结果', - currentMoldInfo: '模具信息', - moldGroupCode: '模具组编码', - moldGroupName: '模具组名称', - cavityCount: '模穴数', - moldSize: '模具尺寸', - currentDevice: '当前设备', - selectMold: '选择模具', - reSelectMold: '重新选择模具', - selectMoldError: '请选择模具', - searchMold: '请输入模具名称', - noMoldInfo: '请选择模具', - noMoldData: '暂无可选模具', - taskName: '任务名称', - taskInfo: '任务信息', - placeholderTaskName: '请输入任务名称', - templateSelection: '模板/任务选择', - selectTemplate: '请选择模板', - selectTemplateError: '请选择保养模板', - noItems: '请先选择保养模板', - noTemplate: '暂无模板', - resultListTitle: '检验结果', - editResult: '编辑', - cancelEdit: '取消编辑', - submit: '提交保养', - submitSuccess: '保养提交成功', - submitFailed: '保养提交失败', - reInspect: '再次保养' - }, - moldPressureNet: { - moduleName: '更换压网', - recordTitle: '压网更换记录', - recordDesc: '请选择模具组和子模,确认更换时间', - history: '历史数据', - historyTitle: '压网历史', - moldGroup: '模具组', - selectMoldGroup: '选择模具组', - searchMoldGroup: '请输入模具组名称', - noMoldGroup: '暂无模具组', - moldGroupName: '模具组名称', - moldGroupCode: '模具组编号', - product: '产品', - subMold: '子模', - selectSubMold: '选择子模', - reSelectMoldGroup: '重新选择模具组', - reSelectSubMold: '重新选择子模', - subMoldCode: '子模编码', - subMoldName: '子模名称', - searchSubMold: '搜索子模名称/编号', - noSubMold: '暂无子模', - replaceInfo: '更换信息', - replaceTime: '更换时间', - pressureNetTime: '压网时间', - selectReplaceTime: '请选择更换时间', - operator: '操作人', - selectOperator: '请选择操作人', - noOperator: '暂无操作人', - remark: '备注', - remarkPlaceholder: '请输入更换原因或备注', - confirmReplace: '确认更换', - selectMoldGroupError: '请选择模具组', - selectSubMoldError: '请选择子模', - selectedCount: '已选{count}个子模', - selectReplaceTimeError: '请选择更换时间', - submitSuccess: '压网更换保存成功', - submitFailed: '压网更换保存失败', - historyMoldIdPlaceholder: '输入子模ID筛选,不填查全部', - searchBrandName: '模具组名称', - selectDate: '选择日期', - createTime: '创建时间', - noHistory: '暂无压网历史记录' - }, - moldRepair: { - moduleName: '模具维修', - createTitle: '新增模具维修', - editTitle: '编辑模具维修', - detailTitle: '模具维修详情', - repairTitle: '维修处理', - basicInfo: '基本信息', - repairObject: '维修对象', - repairCode: '维修单编号', - repairName: '维修单名称', - requireDate: '报修日期', - acceptedBy: '维修人员', - confirmBy: '验收人员', - mold: '模具', - moldCode: '模具编码', - moldName: '模具名称', - specModel: '规格型号', - brand: '品牌', - faultLevel: '故障等级', - isShutdown: '是否停机', - status: '单据状态', - faultInfo: '故障信息', - faultPhenomenon: '故障现象', - faultDescription: '故障描述', - faultImages: '故障图片', - repairResultSection: '处理结果', - repairResult: '维修结果', - finishDate: '完成日期', - confirmDate: '验收日期', - downtimeDuration: '停机时长', - faultReason: '故障原因', - handlingMeasures: '处理措施', - replacementParts: '更换配件', - repairContent: '维修内容', - repairedImages: '维修后图片', - remark: '备注', - autoCode: '自动生成', - moldLabel: '模具', - reportTimeLabel: '报修时间', - searchPlaceholder: '请输入单号或模具编码', - empty: '暂无维修记录', - statusPending: '待维修', - statusPassed: '通过', - statusRejected: '不通过', - orderStatusPending: '待处理', - orderStatusDone: '已完成', - placeholderRepairCode: '请输入维修单编号', - placeholderRepairName: '请输入维修单名称', - placeholderRequireDate: '请选择报修日期', - placeholderAcceptedBy: '请选择维修人员', - placeholderConfirmBy: '请选择验收人员', - placeholderUserSearch: '请输入姓名搜索', - placeholderMold: '请选择模具', - placeholderMoldNameAuto: '自动带出', - placeholderMoldCodeAuto: '自动带出', - placeholderFaultPhenomenon: '请输入故障现象', - placeholderFaultDescription: '请输入故障描述', - placeholderFinishDate: '请选择完成日期', - placeholderConfirmDate: '请选择验收日期', - placeholderDowntimeDuration: '请输入停机时长,单位小时', - placeholderFaultReason: '请输入故障原因', - placeholderHandlingMeasures: '请输入处理措施', - placeholderReplacementParts: '请输入更换配件', - placeholderRepairContent: '请输入维修内容', - placeholderRemark: '请输入备注', - loadDetailFailed: '加载详情失败', - scanUnrecognized: '未识别到内容', - scanMoldRequired: '请扫描模具二维码', - moldNotFound: '未找到对应模具', - scanFailed: '扫码失败', - maxUploadCount: '最多上传 9 张图片', - noUserData: '暂无人员数据', - saving: '保存中', - saveSuccess: '保存成功', - submitSuccess: '提交成功', - submitFailed: '提交失败', - noId: '缺少维修单 ID', - confirmDeleteContent: '确定删除维修单"{code}"吗?', - validatorRepairCodeRequired: '请输入维修单编号', - validatorRepairNameRequired: '请输入维修单名称', - validatorMoldRequired: '请选择模具', - validatorRequireDateRequired: '请选择报修日期', - validatorFaultLevelRequired: '请选择故障等级', - validatorIsShutdownRequired: '请选择是否停机', - validatorFaultPhenomenonRequired: '请输入故障现象', - validatorUserRequired: '请选择人员', - validatorRepairStatusRequired: '请选择维修结果', - validatorFinishDateRequired: '请选择完成日期', - validatorConfirmDateRequired: '请选择验收日期' - }, - productInbound: { - moduleName: '产品入库', - createTitle: '新增产品入库', - detailTitle: '产品入库详情', - selectProductTitle: '选择产品', - selectTaskTitle: '选择任务单', - selectTaskProductTitle: '选择任务产品', - selectPalletTitle: '选择托盘', - createPalletTitle: '新增托盘', - all: '全部', - inboundStatus: '入库状态', - reset: '重置', - clear: '清空', - loading: '加载中...', - loadingMore: '加载更多...', - noMoreData: '没有更多数据', - confirm: '确认', - cancel: '取消', - back: '返回', - submit: '确定', - submitting: '提交中...', - tip: '提示', - choose: '请选择', - yes: '是', - no: '否', - statusPending: '待入库', - statusAuditing: '待审核', - statusStored: '已入库', - statusRejected: '已驳回', - searchDocumentPlaceholder: '请输入入库单号', - searchProductPlaceholder: '搜索产品名称/编码/规格', - searchTaskPlaceholder: '搜索任务单号', - searchTaskProductPlaceholder: '搜索产品名称/编码', - searchPalletPlaceholder: '搜索托盘码', - productInfo: '产品信息', - inboundInfo: '入库信息', - inboundTime: '入库时间', - selectInboundTime: '请选择入库时间', - operator: '经办人', - selectOperator: '请选择经办人', - inboundQuantity: '入库数量', - reviewer: '审核人', - auditor: '审核人', - documentNo: '单据编号', - inboundType: '入库类型', - remark: '备注', - remarkPlaceholder: '请输入备注', - attachment: '附件', - chooseFile: '选择文件', - itemList: '入库清单', - addProduct: '添加产品', - product: '产品', - pallet: '托盘', - packageCount: '包数', - pieceCount: '个数', - inboundPackageCount: '入库包数', - inboundPieceCount: '入库个数', - palletQuantity: '托盘数量', - taskOrder: '任务单', - taskProduct: '任务产品', - emptyAddProduct: '请添加产品', - emptyInboundList: '暂无产品入库单', - emptyItemList: '暂无入库清单', - confirmInbound: '确认入库', - inboundSuccess: '入库成功', - saveFailed: '保存失败', - loadFailed: '加载失败', - detailLoadFailed: '详情加载失败', - operationFailed: '操作失败', - submitAudit: '提交审核', - auditPass: '审核通过', - auditReject: '审核驳回', - auditPassSuccess: '审核通过', - auditRejectSuccess: '已驳回', - submitAuditSuccess: '提交审核成功', - submitFailed: '提交失败', - selectAuditor: '请选择审核人', - selectInboundStatus: '选择入库状态', - confirmAuditPass: '确认审核通过该产品入库单?', - confirmAuditReject: '确认驳回该产品入库单?', - noDetailId: '暂无详情ID', - completeProductPalletInfo: '请完善产品和托盘信息', - addProductFirst: '请先添加产品', - taskInfo: '任务信息', - relatedTask: '关联任务单', - selectTask: '请选择任务单', - selectTaskProduct: '请选择任务产品', - selectProduct: '请选择产品', - selectPallet: '请选择托盘', - selectPalletFirst: '请先选择托盘', - selectTaskFirst: '请先选择任务单', - selectProductFirst: '请先选择产品', - emptyTaskProducts: '当前任务单暂无产品', - completePalletInfo: '请完善托盘仓库/库位/包数', - productAdded: '已添加产品', - taskProductLoadFailed: '任务产品加载失败', - workOrderNo: '工单号', - code: '编码', - packagingScheme: '包装方案', - palletPackageQuantity: '每托包数', - packageQuantity: '每包个数', - selectedPalletCount: '已选择 {count} 个托盘', - selectedCount: '已选 {count} 个', - packageUnit: '{count} 包', - pieceUnit: '{count} 个', - warehouse: '仓库', - area: '库区', - location: '库位', - deliveryDate: '交付日期', - emptyTask: '暂无任务单', - emptyProduct: '暂无产品数据', - emptyTaskProduct: '暂无任务产品', - emptyPallet: '暂无托盘', - spec: '规格', - unit: '单位', - palletCode: '托盘码', - palletType: '托盘类型', - palletStatus: '托盘状态', - autoCode: '自动编码', - length: '长', - width: '宽', - height: '高', - productCount: '包数', - ratedLoadWeight: '额定载重', - enterPalletCode: '请输入托盘码', - selectPalletType: '请选择托盘类型', - selectPalletStatus: '请选择托盘状态', - enterPackageCount: '请输入包数', - selectWarehouse: '请选择仓库', - selectArea: '请选择库区', - selectUnit: '请选择单位', - selectWarehouseFirst: '请先选择仓库', - emptyArea: '暂无库区', - enterRatedLoadWeight: '请输入额定载重', - createSuccess: '新增成功', - createPalletFailed: '新增托盘失败' - }, - productCheck: { - moduleName: '产品盘点执行', - createTitle: '新增产品盘点', - executeTitle: '执行盘点', - detailTitle: '\u4ea7\u54c1\u76d8\u70b9\u8be6\u60c5', - selectProductTitle: '选择产品', - selectItemTitle: '选择盘点项', - selectWarehouseTitle: '选择仓库', - selectAreaTitle: '选择库区', - all: '全部', - reset: '重置', - clear: '清空', - loading: '加载中...', - loadingMore: '加载更多...', - noMoreData: '没有更多数据', - confirm: '确认', - cancel: '取消', - submit: '确定', - submitting: '提交中...', - tip: '提示', - choose: '请选择', - delete: '删除', - save: '保存', - statusDraft: '待提交', - statusAuditing: '待审核', - statusApproved: '已审核', - statusRejected: '已驳回', - searchDocumentPlaceholder: '请输入盘点单号', - searchProductPlaceholder: '搜索产品名称/编码/规格', - searchWarehousePlaceholder: '搜索仓库名称', - searchAreaPlaceholder: '搜索库区名称/编码', - searchItemPlaceholder: '搜索产品/仓库/库区', - productInfo: '产品信息', - checkInfo: '盘点信息', - checkTime: '盘点时间', - selectCheckTime: '请选择盘点时间', - sourceType: '生成来源', - sourceTypeStock: '按库存', - sourceTypeProduct: '按产品', - selectWarehouse: '请选择仓库', - selectWarehouseFirst: '请先选择仓库', - selectArea: '请选择库区', - warehouse: '仓库', - area: '库区', - warehouseAddress: '地址', - principal: '负责人', - checkStatus: '盘点状态', - checked: '已盘点', - unchecked: '未盘点', - creator: '创建人', - reviewer: '审核人', - auditor: '审核人', - documentNo: '盘点单号', - remark: '备注', - remarkPlaceholder: '请输入备注', - productAndItems: '产品与盘点项', - selectProduct: '选择产品', - product: '产品', - checkItems: '盘点项', - selectAll: '全选', - selectedCount: '已选 {count} 个', - selectedItemCount: '已选 {count} 项', - selectCheckItems: '请选择盘点项', - stockCount: '账面数量', - code: '编码', - spec: '规格', - unit: '单位', - difference: '差异', - actualCount: '实盘数量', - saveDraft: '保存草稿', - finishCheck: '完成盘点', - execute: '执行盘点', - submitAudit: '提交审核', - auditPass: '审核通过', - auditReject: '审核驳回', - auditPassSuccess: '审核通过', - auditRejectSuccess: '已驳回', - submitAuditSuccess: '提交审核成功', - submitFailed: '提交失败', - selectAuditor: '请选择审核人', - selectStatus: '选择盘点状态', - confirmAuditPass: '确认审核通过该产品盘点单?', - confirmAuditReject: '确认驳回该产品盘点单?', - confirmDelete: '确认删除该产品盘点单?', - deleteSuccess: '删除成功', - operationFailed: '操作失败', - loadFailed: '加载失败', - detailLoadFailed: '详情加载失败', - emptyList: '暂无产品盘点单', - emptyProduct: '暂无产品数据', - emptyWarehouse: '暂无仓库', - emptyArea: '暂无库区', - emptyItemList: '暂无盘点项', - emptyAddProduct: '请添加产品', - selectProductFirst: '请先选择产品', - completeCheckItems: '请完善盘点项信息', - createSuccess: '创建成功', - saveFailed: '保存失败', - saveSuccess: '保存成功', - checkSuccess: '盘点完成', - noDetailId: '暂无详情ID', - enterActualCount: '请输入实盘数量', - confirmActualCountZero: '{items} 实盘数量为 0,确认继续?' - }, - productOutbound: { - moduleName: '产品出库', - createTitle: '新增产品出库', - detailTitle: '产品出库详情', - selectProductTitle: '选择产品', - selectPalletTitle: '选择托盘', - all: '全部', - outboundStatus: '出库状态', - reset: '重置', - clear: '清空', - loading: '加载中...', - loadingMore: '加载更多...', - noMoreData: '没有更多数据', - confirm: '确认', - cancel: '取消', - back: '返回', - submit: '确定', - submitting: '提交中...', - tip: '提示', - choose: '请选择', - statusPending: '待出库', - statusAuditing: '待审核', - statusStored: '已出库', - statusRejected: '已驳回', - searchDocumentPlaceholder: '请输入出库单号', - searchProductPlaceholder: '搜索产品名称/编码/规格', - searchPalletPlaceholder: '搜索托盘码', - productInfo: '产品信息', - outboundInfo: '出库信息', - outboundTime: '出库时间', - selectOutboundTime: '请选择出库时间', - operator: '经办人', - selectOperator: '请选择经办人', - outboundQuantity: '出库数量', - reviewer: '审核人', - auditor: '审核人', - documentNo: '单据编号', - outboundType: '出库类型', - remark: '备注', - remarkPlaceholder: '请输入备注', - attachment: '附件', - chooseFile: '选择文件', - itemList: '出库清单', - addProduct: '添加产品', - product: '产品', - pallet: '托盘', - packageCount: '包数', - pieceCount: '个数', - outboundPackageCount: '出库包数', - outboundPieceCount: '出库个数', - availablePackageCount: '可用包数', - enterOutboundPackageCount: '请输入出库包数', - palletQuantity: '托盘数量', - emptyAddProduct: '请添加产品', - emptyOutboundList: '暂无产品出库单', - emptyItemList: '暂无出库清单', - confirmOutbound: '确认出库', - outboundSuccess: '出库成功', - saveFailed: '保存失败', - loadFailed: '加载失败', - detailLoadFailed: '详情加载失败', - operationFailed: '操作失败', - submitAudit: '提交审核', - auditPass: '审核通过', - auditReject: '审核驳回', - auditPassSuccess: '审核通过', - auditRejectSuccess: '已驳回', - submitAuditSuccess: '提交审核成功', - submitFailed: '提交失败', - selectAuditor: '请选择审核人', - selectOutboundStatus: '选择出库状态', - confirmAuditPass: '确认审核通过该产品出库单?', - confirmAuditReject: '确认驳回该产品出库单?', - noDetailId: '暂无详情ID', - completeProductPalletInfo: '请完善产品和托盘信息', - addProductFirst: '请先添加产品', - selectProduct: '请选择产品', - selectPallet: '请选择托盘', - selectPalletFirst: '请先选择托盘', - selectProductFirst: '请先选择产品', - completePalletInfo: '请完善托盘仓库/库位/包数', - productAdded: '已添加产品', - code: '编码', - packagingScheme: '包装方案', - palletPackageQuantity: '每托包数', - packageQuantity: '每包个数', - selectedPalletCount: '已选择 {count} 个托盘', - selectedCount: '已选 {count} 个', - packageUnit: '{count} 包', - pieceUnit: '{count} 个', - warehouse: '仓库', - area: '库区', - location: '库位', - emptyProduct: '暂无产品数据', - emptyPallet: '暂无托盘', - spec: '规格', - unit: '单位', - palletCode: '托盘码', - palletType: '托盘类型', - palletStatus: '托盘状态', - outMode: '出库方式', - outModeWholePallet: '整托出库', - outModeSplitPallet: '拆托出库' - }, - sparepartInbound: { - moduleName: '备件入库', - tabPending: '待入库', - tabAuditing: '待审核', - searchPlaceholder: '搜索入库单号', - sparepartInfo: '备件信息', - inboundTime: '入库时间', - creator: '创建人', - quantity: '数量', - reviewer: '审核人', - approve: '已入库', - reject: '驳回', - confirmApprove: '确定审核通过该入库单吗?', - confirmReject: '确定驳回该入库单吗?', - approveSuccess: '审核通过', - rejectSuccess: '已驳回', - deleteSuccess: '删除成功', - empty: '暂无入库单据', - createTitle: '新增备件入库', - scanSparepart: '扫备件码', - selectSparepart: '选择备件', - searchSparepartPlaceholder: '搜索备件编码/名称', - sparepartCode: '备件编码', - category: '分类', - spec: '规格', - unit: '库存单位', - purchaseUnit: '采购单位', - convertRatio: '换算关系', - defaultWarehouse: '默认仓库/库区', - selectedSpareparts: '已选备件', - noSelectedSparepart: '请扫码或选择备件', - alreadySelected: '该备件已添加', - confirmRemove: '确定移除此备件吗?', - currentStock: '当前库存', - minStockUnit: '最小库存单位', - inboundQuantity: '入库数量', - qtyPlaceholder: '请输入', - noSparepartData: '暂无备件数据', - validatorSparepartRequired: '请选择备件' - }, - sparepartOutbound: { - moduleName: '备件出库', - tabPending: '待出库', - tabAuditing: '待审核', - searchPlaceholder: '搜索出库单号', - sparepartInfo: '备件信息', - outboundTime: '出库时间', - creator: '创建人', - quantity: '数量', - reviewer: '审核人', - approve: '已出库', - reject: '驳回', - confirmApprove: '确定审核通过该出库单吗?', - confirmReject: '确定驳回该出库单吗?', - approveSuccess: '审核通过', - rejectSuccess: '已驳回', - deleteSuccess: '删除成功', - empty: '暂无出库单据', - createTitle: '新增备件出库' - }, - materialOutbound: { - moduleName: '物料出库', - tabPending: '待出库', - tabAuditing: '待审核', - searchPlaceholder: '搜索出库单号', - sparepartInfo: '物料信息', - materialInfo: '物料信息', - outboundTime: '出库时间', - creator: '创建人', - quantity: '数量', - reviewer: '审核人', - approve: '已出库', - reject: '驳回', - confirmApprove: '确定审核通过该出库单吗?', - confirmReject: '确定驳回该出库单吗?', - approveSuccess: '审核通过', - rejectSuccess: '已驳回', - deleteSuccess: '删除成功', - empty: '暂无出库单据', - createTitle: '新增物料出库' - }, +export default { + common: { + submit: '提交', + close: '关闭', + exit: '退出', + notice: '通知', + moduleBuilding: '模块建设中~', + updateSuccess: '修改成功', + confirmLogout: '确定注销并退出系统吗', + languageSwitched: '语言已切换', + more: '更多', + reset: '重置', + complete: '完成', + edit: '编辑', + saveFailed: '保存失败' + }, + tab: { + home: '首页', + report: '报表', + work: '管理', + mine: '我的' + }, + work:{ + mold: '模具', + equipmentMaintenance: '设备运维', + keypart: '关键件', + spare: '备件', + }, + nav: { + home: '首页', + mine: '个人中心', + avatar: '修改头像', + info: '个人信息', + editInfo: '编辑资料', + pwd: '修改密码', + setting: '应用设置', + help: '常见问题', + about: '关于我们' + }, + dashboard: { + welcome: '欢迎您使用', + subtitle: '必硕数字化智能中控平台', + functionNav: '功能导航', + editNavMenu: '编辑快捷开关', + configuredNav: '已添加', + unconfiguredNav: '添加更多', + dragHint: '拖动图标进行排序,上方图标将显示在控制中心', + clickHint: '点击图标添加到已配置或取消配置', + allNavMenu: '全部功能', + productionOverview: '生产整体概况', + qualityOverview: '质量概况', + productionPlan: '生产概括', + production: '生产', + quality: '质量', + totalCount: '总数', + passCount: '合格数', + failCount: '不合格数', + qualityTrend: '质量趋势', + chartPlaceholder: '图表加载中...', + totalWangongNumber: '报工总数', + totalPassNumber: '合格总数', + totalNoPassNumber: '不合格总数', + totalPassRate: '总合格率', + productPassRateRanking: '产品合格率排行', + passNumber: '合格数', + noPassNumber: '不合格数', + periodLastWeek: '上周', + periodThisWeek: '本周', + periodLast7Days: '近7日', + periodLastMonth: '上月', + periodThisMonth: '本月', + periodLastYear: '近一年', + collapseList: '收起列表', + viewMore: '查看更多 ›', + productName: '产品名称', + pipeline: '生产线', + planNumber: '计划数量', + planStart: '计划开始', + planEnd: '计划结束', + back: '返回', + todoTitle: '待办任务', + noTodo: '暂无待办任务', + taskCode: '任务编号:{value}', + taskType: '任务类型:{value}', + taskTarget: '目标:{value}', + createTime: '创建时间:{value}', + all: '总数', + pending: '未开工', + running: '生产中', + finished: '已完成', + mold: '模具', + equipment: '设备', + keypart: '关键件', + spare: '备件', + product: '产品物料', + statusScheduled: '已排产', + statusTrial: '试产', + statusMass: '量产', + statusPause: '暂停', + statusWaitStockIn: '待入库', + viewPlan: '查看计划: {code}', + filterTask: '任务', + filterProduct: '产品', + dateRange: '日期范围', + startDate: '开始时间', + endDate: '结束时间', + baogongNum: '报工数', + passNum: '合格数', + noPassNum: '不合格数', + passRate: '合格率', + trendChart: '趋势图', + taskPlaceholder: '任务模式开发中', + totalTask: '任务总数', + issuedNum: '下达数', + partialScheduledNum: '部分排产数', + waitingProduction: '待生产', + producing: '生产中', + completed: '已完成', + taskTrend: '任务趋势', + rangeYear: '近一年', + rangeMonth: '本月', + rangeWeek: '本周', + rangeToday: '今日', + rangeCustom: '自定义', + monday: '周一', + tuesday: '周二', + wednesday: '周三', + thursday: '周四', + friday: '周五', + saturday: '周六', + sunday: '周日' + }, + deviceOverview: { + title: '设备概括', + totalDevices: '设备总数', + runningCount: '运行', + standbyCount: '待机', + faultCount: '故障', + offlineCount: '离线', + utilizationRate: '利用率', + bootRate: '开机率', + faultRate: '故障率', + rateTrend: '稼动率/开机率趋势', + onlyScheduled: '只统计排产设备', + skipHoliday: '跳过节假日', + periodLastWeek: '上周', + periodThisWeek: '本周', + periodLast7Days: '近7日', + periodLastMonth: '上月', + periodThisMonth: '本月', + periodLastYear: '近一年', + utilizationRanking: '近7日平均稼动率排名', + utilizationRateTrend: '稼动率', + deviceRateTrend: '单设备近7日稼动率/开机率趋势', + selectDevice: '选择设备', + selectDeviceHint: '请选择设备查看趋势' + }, + taskList: { + filter: '筛选条件', + code: '任务单编码', + status: '状态', + taskType: '任务类型', + orderDate: '下单日期', + deliveryDate: '交付日期', + remark: '备注', + createTime: '创建时间', + totalNumber: '总数量', + planNumber: '已排产', + unPlanNumber: '未排产', + storedPlanNumber: '已入库', + urgent: '紧急', + noData: '暂无任务数据', + viewTask: '查看任务: {code}' + }, + planList: { + taskCode: '任务编号', + planCode: '计划编号', + employeeName: '报工人', + baogongNum: '报工数', + passNum: '合格数', + noPassNum: '不合格数', + passRate: '合格率', + baogongTime: '报工时间', + reason: '原因', + noData: '暂无报工数据', + viewDetail: '查看详情: {code}' + }, + functionCommon: { + search: '查询', + reset: '重置', + cancel: '取消', + confirm: '确认', + save: '保存', + loading: '加载中...', + loadingMore: '正在加载更多...', + noMoreData: '没有更多数据了', + noIdView: '缺少ID,无法查看详情', + noIdEdit: '缺少ID,无法编辑', + noIdDelete: '缺少ID,无法删除', + loadFailed: '加载失败', + deleteSuccess: '删除成功', + deleteFailed: '删除失败', + saveSuccess: '保存成功', + saveFailed: '保存失败', + createSuccess: '新增成功', + updateSuccess: '更新成功', + confirmDelete: '确认删除', + uploading: '上传中', + uploadImageFailed: '图片上传失败', + yes: '是', + no: '否', + all: '全部', + noMore: '没有更多数据了', + confirmTitle: '提示' + }, + moldGet: { + moduleName: '模具出库', + subTitle: '按出库单号与状态快速筛选', + detailTitle: '模具出库详情', + basicInfo: '基础信息', + outNo: '出库单号', + outType: '出库类型', + outTime: '出库时间', + outTimeSingle: '出库日期', + outTimePlaceholder: '请选择出库日期', + warehouse: '仓库', + allWarehouse: '全部仓库', + warehousePlaceholder: '请选择仓库', + creator: '创建人', + status: '状态', + allStatus: '全部状态', + remark: '备注', + itemRemark: '明细备注', + attachment: '附件', + fileUrlPlaceholder: '请输入附件地址', + remarkPlaceholder: '请输入备注', + moldName: '模具', + moldCode: '模具编码', + moldStatus: '模具状态', + moldUseTime: '使用次数', + machineName: '使用设备', + isEnable: '是否启用', + createTime: '创建时间', + searchNo: '请输入出库单号', + searchMold: '请输入模具编码或名称', + searchCode: '请输入模具编码', + searchName: '请输入模具名称', + itemListTitle: '出库明细', + selectMold: '选择模具', + noItems: '暂无出库明细', + count: '数量', + noAuto: '系统自动生成', + createTitle: '新增模具出库', + editTitle: '编辑模具出库', + edit: '编辑', + delete: '删除', + approve: '审批', + empty: '暂无模具出库数据', + noMoldData: '暂无可选模具', + loadEditFailed: '加载编辑数据失败', + validatorOutTimeRequired: '出库日期不能为空', + validatorWarehouseRequired: '仓库不能为空', + validatorItemRequired: '请至少选择一个模具', + validatorCountRequired: '数量必须大于0', + confirmDelete: '确认删除出库单 {no} 吗?', + confirmApprove: '确认审批出库单 {no} 吗?', + approveSuccess: '审批成功' + }, + moldReturn: { + moduleName: '模具入库', + subTitle: '按入库单号与状态快速筛选', + detailTitle: '模具入库详情', + basicInfo: '基础信息', + inNo: '入库单号', + inType: '入库类型', + inTime: '入库时间', + inTimeSingle: '入库日期', + inTimePlaceholder: '请选择入库日期', + warehouse: '仓库', + allWarehouse: '全部仓库', + warehousePlaceholder: '请选择仓库', + creator: '创建人', + status: '状态', + allStatus: '全部状态', + remark: '备注', + itemRemark: '明细备注', + attachment: '附件', + fileUrlPlaceholder: '请输入附件地址', + remarkPlaceholder: '请输入备注', + moldName: '模具', + moldCode: '模具编码', + moldStatus: '模具状态', + moldUseTime: '使用次数', + searchNo: '请输入入库单号', + searchCode: '请输入模具编码', + searchName: '请输入模具名称', + itemListTitle: '入库明细', + selectMold: '选择模具', + noItems: '暂无入库明细', + count: '数量', + noAuto: '系统自动生成', + createTitle: '新增模具入库', + editTitle: '编辑模具入库', + approve: '审批', + empty: '暂无模具入库数据', + noMoldData: '暂无可选模具', + loadEditFailed: '加载编辑数据失败', + validatorInTimeRequired: '入库日期不能为空', + validatorWarehouseRequired: '仓库不能为空', + validatorItemRequired: '请至少选择一个模具', + validatorCountRequired: '数量必须大于0', + confirmDelete: '确认删除入库单 {no} 吗?', + confirmApprove: '确认审批入库单 {no} 吗?', + approveSuccess: '审批成功' + }, + moldOperate: { + moduleName: '上下模', + subTitle: '模具上模/下模操作记录', + detailTitle: '上下模详情', + basicInfo: '基础信息', + tabUp: '上模', + tabDown: '下模', + operateType: '操作类型', + mold: '模具', + lowerMold: '下模模具', + selectMold: '选择模具', + noSelectedMold: '暂无已选模具', + allMold: '全部模具', + searchRemark: '请输入备注关键字', + searchCode: '请输入模具编码', + searchName: '请输入模具名称', + moldCode: '模具编码', + moldName: '模具名称', + device: '设备', + deviceName: '设备名称', + creatorName: '创建人', + remark: '备注', + createTime: '创建时间', + createTitle: '新增上下模', + editTitle: '编辑上下模', + empty: '暂无上下模数据', + noMoldData: '暂无可选模具', + placeholderDevice: '请选择设备', + placeholderRemark: '请输入备注', + validatorOperateTypeRequired: '操作类型不能为空', + validatorDeviceRequired: '设备不能为空', + validatorMoldRequired: '请至少选择一个上模模具', + validatorOperatorRequired: '请选择操作人', + validatorLowerMoldRequired: '请至少选择一个下模模具', + loadEditFailed: '加载编辑数据失败', + confirmDelete: '确认删除该上下模记录吗?', + scanDevice: '扫设备码', + selectDevice: '选择设备', + selectedDevice: '已选设备', + deviceCode: '设备编码', + productionLine: '所属产线', + currentMold: '当前在机模具', + deviceStatus: '设备状态', + statusRunning: '正常', + statusStop: '停用', + statusFault: '故障', + selectMountMold: '选择待上模模具', + product: '产品', + status: '状态', + pendingMount: '待上模', + confirmMount: '确认上模', + clickSelectMold: '点击选择模具', + noDeviceData: '暂无设备数据', + deviceNotFound: '未找到对应设备', + deviceInfo: '设备信息', + currentMoldInfo: '当前在机模具', + mountTime: '上模时间', + useCount: '使用次数', + countUnit: '次', + changeMountTarget: '更换上模对象', + changeTarget: '更换下模对象', + confirmDismount: '确认下模', + clickSelectDeviceFirst: '请先选择设备', + noMoldOnDevice: '该设备暂无在机模具', + historySuffix: '历史', + historyTitle: '上下模历史', + searchPlaceholder: '搜索设备/模具名称', + placeholderOperator: '请选择操作人', + filterAll: '全部', + filterToday: '今天', + filterWeek: '本周', + historyEmpty: '暂无历史记录', + totalPrefix: '共 ', + totalSuffix: ' 条', + confirmDeleteHistory: '确认删除该历史记录吗?', + operateTime: '操作时间', + operator: '操作人' + }, + moldInspectionItems: { + moduleName: '点检项库', + subTitle: '模具管理点检项维护', + detailTitle: '点检项库详情', + basicInfo: '基础信息', + code: '项目编码', + name: '项目名称', + inspectionMethod: '检验方式', + valueType: '值类型', + isEnable: '是否启用', + judgmentCriteria: '判定基准', + creatorName: '创建人', + createTime: '创建时间', + searchPlaceholder: '请输入编码/名称/判定基准', + createTitle: '新增点检项', + editTitle: '编辑点检项', + empty: '暂无点检项数据', + loadEditFailed: '加载编辑数据失败', + confirmDelete: '确认删除该点检项吗?', + placeholderCode: '请输入项目编码', + placeholderName: '请输入项目名称', + placeholderInspectionMethod: '请选择检验方式', + placeholderValueType: '请选择值类型', + placeholderIsEnable: '请选择是否启用', + placeholderJudgmentCriteria: '请输入判定基准', + validatorSubjectCodeRequired: '项目编码不能为空', + validatorSubjectNameRequired: '项目名称不能为空', + validatorInspectionMethodRequired: '检验方式不能为空', + validatorValueTypeRequired: '值类型不能为空', + validatorIsEnableRequired: '是否启用不能为空', + validatorJudgmentCriteriaRequired: '判定基准不能为空' + }, + moldInspectionPlan: { + moduleName: '点检模板', + subTitle: '模具管理点检模板维护', + detailTitle: '点检模板详情', + basicInfo: '基础信息', + planName: '模板名称', + planType: '模板类型', + planTypeMaintain: '保养', + planTypeInspect: '点检', + description: '描述', + subjectName: '点检项', + creatorName: '创建人', + createTime: '创建时间', + updateTime: '更新时间', + searchPlaceholder: '请输入模板名称', + createTitle: '新增点检模板', + editTitle: '编辑点检模板', + empty: '暂无点检模板数据', + loadEditFailed: '加载编辑数据失败', + confirmDelete: '确认删除该点检模板吗?', + placeholderPlanName: '请输入模板名称', + placeholderPlanType: '请选择模板类型', + placeholderDescription: '请输入描述', + placeholderSubjectSelect: '请选择点检项', + subjectSelectTitle: '选择点检项', + noSubjectData: '暂无点检项数据', + validatorPlanNameRequired: '模板名称不能为空', + validatorPlanTypeRequired: '模板类型不能为空', + subjectListTitle: '关联点检项', + subjectCode: '项目编码', + inspectionMethod: '检验方式', + judgmentCriteria: '判定基准' + }, + moldTaskConfig: { + moduleName: '点检任务', + subTitle: '模具管理点检任务维护', + detailTitle: '点检任务详情', + basicInfo: '基础信息', + name: '任务名称', + taskType: '任务类型', + taskTypeInspect: '点检', + taskTypeMaintain: '保养', + moldList: '模具列表', + projectForm: '点检模板', + projectFormName: '项目方案', + dateRange: '有效日期', + startDate: '开始日期', + endDate: '结束日期', + cronExpression: 'Cron表达式', + operableUsers: '可操作用户', + enabled: '是否启用', + creatorName: '创建人', + createTime: '创建时间', + updateTime: '更新时间', + searchPlaceholder: '请输入任务名称', + createTitle: '新增点检任务', + editTitle: '编辑点检任务', + empty: '暂无点检任务数据', + loadEditFailed: '加载编辑数据失败', + confirmDeleteContent: '确认删除该点检任务【{name}】吗?', + placeholderName: '请输入任务名称', + placeholderTaskType: '请选择任务类型', + placeholderMoldList: '请选择模具', + placeholderProjectForm: '请选择点检模板', + placeholderStartDate: '选择开始日期', + placeholderEndDate: '选择结束日期', + placeholderCron: '请输入Cron表达式', + placeholderOperableUsers: '请选择可操作用户', + validatorNameRequired: '任务名称不能为空', + validatorTaskTypeRequired: '任务类型不能为空', + validatorMoldListRequired: '模具列表不能为空', + validatorProjectFormRequired: '点检模板不能为空', + validatorDateRangeRequired: '有效日期不能为空', + createTicketSuccess: '工单创建成功', + createTicketFail: '工单创建失败', + moldSelectTitle: '选择模具', + planSelectTitle: '选择点检模板', + userSelectTitle: '选择可操作用户' + }, + equipmentInspectionTasks: { + moduleName: '设备点检任务', + subTitle: '设备点检任务工单管理', + detailTitle: '设备点检任务详情', + basicInfo: '基础信息', + createTicket: '新增工单管理', + name: '任务名称', + taskType: '任务类型', + taskTypeInspect: '点检', + taskTypeMaintain: '保养', + deviceList: '设备列表', + projectFormName: '项目方案', + dateRange: '有效日期', + cronExpression: 'Cron表达式', + operableUsers: '可操作用户', + enabled: '是否启用', + creatorName: '创建人', + createTime: '创建时间', + updateTime: '更新时间', + searchPlaceholder: '请输入任务名称/设备编码/设备名称', + empty: '暂无设备点检任务数据', + createTicketSuccess: '工单创建成功', + createTicketFail: '工单创建失败', + lineFilter: '产线', }, + equipmentInspectionRecord: { + moduleName: '设备点检记录', + subTitle: '设备点检记录查询', + detailTitle: '设备点检记录详情', + taskType: '任务类型', + taskTypeInspect: '点检', + taskTypeMaintain: '保养', + taskTypeInspectShort: '检', + taskTypeMaintainShort: '养', + planNo: '任务编号', + deviceName: '设备名称', + configName: '点检模板', + jobStatus: '作业状态', + jobStatusPending: '待处理', + jobStatusProcessing: '处理中', + jobStatusCompleted: '已完成', + jobStatusTimeout: '已超时', + jobStatusCancelled: '已取消', + jobResult: '结果', + jobResultOk: '通过', + jobResultNg: '不通过', + taskTime: '作业时间', + searchPlaceholder: '请输入任务编号/设备编码/设备名称', + empty: '暂无设备点检记录数据', + progressTitle: '执行进度', + inspectionMethod: '检验方式', + judgmentCriteria: '标准要求', + valueType: '值类型', + resultText: '结果', + requiredText: '必检', + inspectionResultPending: '待检', + inspectionResultPass: '通过', + inspectionResultFail: '不通过', + textInput: '输入值', + inputPlaceholder: '请输入', + remark: '备注', + images: '图片', + maxUploadCount: '最多上传 9 张图片', + selectAllDecisionError: '请为所有待检项选择结果', + noResultData: '暂无点检项数据', + lineFilter: '产线', + }, + moldWorkOrder: { + moduleName: '点检记录', + subTitle: '模具管理点检记录查询', + detailTitle: '点检记录详情', + basicInfo: '基础信息', + resultListTitle: '检验结果', + planNo: '工单编号', + moldName: '模具名称', + planType: '任务类型', + planTypeInspect: '点检', + planTypeMaintain: '保养', + configName: '任务配置', + jobStatus: '作业状态', + jobStatusPending: '待处理', + jobStatusProcessing: '处理中', + jobStatusCompleted: '已完成', + jobStatusTimeout: '已超时', + jobStatusCancelled: '已取消', + jobResult: '作业结果', + jobResultOk: 'OK', + jobResultNg: 'NG', + operatorName: '操作人', + taskTime: '任务时间', + taskEndTime: '结束时间', + cancelReason: '取消原因', + createTime: '创建时间', + searchPlaceholder: '请输入工单编号', + empty: '暂无点检记录数据', + cancelTask: '取消任务', + cancelSuccess: '取消成功', + cancelFail: '取消失败', + placeholderCancelReason: '请输入取消原因', + validatorCancelReasonRequired: '取消原因不能为空', + inspectionItemName: '检验项名称', + inspectionMethod: '检验方式', + judgmentCriteria: '判定基准', + valueType: '值类型', + inspectionResult: '检验结果', + inspectionResultPending: '待检', + inspectionResultPass: '合格', + inspectionResultFail: '不合格', + textInput: '输入值', + remark: '备注', + images: '图片', + noResultData: '暂无检验结果数据', + loadMore: '加载更多' + }, + mine: { + clickLogin: '点击登录', + username: '用户名:{name}', + profile: '个人信息', + feedback: '反馈中心', + service: '在线客服', + changePassword: '修改密码', + logout: '退出登录', + editProfile: '编辑资料', + faq: '常见问题', + about: '关于我们', + appSettings: '应用设置' + }, + setting: { + language: '系统语言', + currentLanguage: '当前语言:{language}', + terminalMode: '终端模式', + currentTerminal: '当前终端:{terminal}', + switchingTerminal: '正在切换终端...', + terminalSwitched: '已切换到{terminal}', + switchLanguage: '切换语言', + checkUpdate: '检查更新', + cleanCache: '清理缓存', + logout: '退出登录', + serverAddress: '服务器地址', + serverAddressHint: '请输入当前账号对应的后端接口地址', + serverAddressPlaceholder: '请输入后端访问地址', + serverAddressRequired: '请输入后端访问地址', + serverAddressSaved: '服务器地址已保存,请重新登录', + mobile: '手机', + scanner: '扫码器', + zhCN: '中文', + enUS: '英文' + }, + about: { + appName: '必硕生管系统', + version: '版本信息', + email: '官方邮箱', + hotline: '服务热线', + website: '公司网站' + }, + help: { + appUserQuestion: 'APP用户问题', + otherQuestion: '其他问题', + appFeatureQuestion: 'APP支持的功能业务有哪些?', + appFeatureAnswer: '计划开工、生产报工、投料记录、生产记录', + reportQuestion: '生产报工如何报工?', + reportAnswer: '可以', + planQuestion: '计划管理如何进行?', + planAnswer: '计划管理', + materialQuestion: '投料记录如何进行?', + materialAnswer: '投料记录', + logoutQuestion: '如何退出登录?', + logoutAnswer: '请点击[我的] - [应用设置] - [退出登录]即可退出登录', + avatarQuestion: '如何修改用户头像?', + avatarAnswer: '请点击[我的] - [选择头像] - [点击提交]即可更换用户头像', + passwordQuestion: '如何修改登录密码?', + passwordAnswer: '请点击[我的] - [应用设置] - [修改密码]即可修改登录密码' + }, + info: { + username: '用户名称', + nickname: '昵称', + gender: '性别', + male: '男', + female: '女', + phone: '手机号码', + email: '邮箱', + createdAt: '创建日期' + }, + editInfo: { + nickname: '用户昵称', + nicknamePlaceholder: '请输入昵称', + phone: '手机号码', + phonePlaceholder: '请输入手机号码', + email: '邮箱', + emailPlaceholder: '请输入邮箱', + gender: '性别', + nicknameRequired: '用户昵称不能为空', + phoneRequired: '手机号码不能为空', + phoneInvalid: '请输入正确的手机号码', + emailRequired: '邮箱地址不能为空', + emailInvalid: '请输入正确的邮箱地址' + }, + pwd: { + oldPassword: '旧密码', + newPassword: '新密码', + confirmPassword: '确认密码', + oldPasswordPlaceholder: '请输入旧密码', + newPasswordPlaceholder: '请输入新密码', + confirmPasswordPlaceholder: '请确认新密码', + oldPasswordRequired: '旧密码不能为空', + newPasswordRequired: '新密码不能为空', + passwordLength: '长度在 6 到 20 个字符', + confirmPasswordRequired: '确认密码不能为空', + passwordNotMatch: '两次输入的密码不一致' + }, + avatar: { + chooseAvatar: '选择头像' + }, + materialCategory: { + moduleName: '产品物料分类', + subTitle: '产品物料分类管理', + detailTitle: '分类详情', + basicInfo: '基础信息', + code: '分类编码', + name: '分类名称', + parentName: '上级分类', + rootCategory: '无(顶级分类)', + sort: '排序', + status: '状态', + statusEnable: '启用', + statusDisable: '禁用', + createTime: '创建时间', + searchPlaceholder: '请输入分类编码/名称', + createTitle: '新增分类', + editTitle: '编辑分类', + empty: '暂无分类数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少分类ID', + loadFailed: '加载分类详情失败', + placeholderCode: '请输入分类编码', + placeholderName: '请输入分类名称', + placeholderParent: '请选择上级分类', + placeholderSort: '请输入排序', + placeholderStatus: '请选择状态', + validatorCodeRequired: '分类编码不能为空', + validatorNameRequired: '分类名称不能为空', + validatorSortRequired: '排序不能为空', + validatorStatusRequired: '状态不能为空', + confirmDeleteContent: '确认删除分类【{name}】吗?' + }, + materialInfo: { + moduleName: '产品物料信息', + subTitle: '产品物料信息管理', + detailTitle: '物料详情', + basicInfo: '基础信息', + barCode: '物料条码', + name: '物料名称', + category: '物料小类', + unit: '库存单位', + standard: '规格', + expiryDay: '保质期天数', + status: '状态', + statusEnable: '启用', + statusDisable: '禁用', + remark: '备注', + createTime: '创建时间', + autoCode: '自动生成', + searchPlaceholder: '请输入物料名称/条码', + createTitle: '新增物料', + editTitle: '编辑物料', + empty: '暂无物料数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少物料ID', + loadFailed: '加载物料详情失败', + placeholderBarCode: '请输入物料条码', + placeholderName: '请输入物料名称', + placeholderCategory: '请选择物料分类', + placeholderUnit: '请选择单位', + placeholderStandard: '请输入规格', + placeholderExpiryDay: '请输入保质期天数', + placeholderStatus: '请选择状态', + placeholderRemark: '请输入备注', + validatorBarCodeRequired: '物料条码不能为空', + validatorNameRequired: '物料名称不能为空', + validatorCategoryRequired: '物料分类不能为空', + validatorUnitRequired: '单位不能为空', + confirmDeleteContent: '确认删除物料【{name}】吗?' + }, + productBom: { + moduleName: '产品BOM', + subTitle: '产品BOM管理', + detailTitle: 'BOM详情', + basicInfo: '基础信息', + code: 'BOM编码', + version: '版本', + product: '产品', + unit: '库存单位', + yieldRate: '良品率', + isEnable: '是否启用', + enableYes: '是', + enableNo: '否', + remark: '备注', + createTime: '创建时间', + searchPlaceholder: '请输入BOM编码', + createTitle: '新增BOM', + editTitle: '编辑BOM', + empty: '暂无BOM数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少BOM ID', + loadFailed: '加载BOM详情失败', + placeholderCode: '请输入BOM编码', + placeholderVersion: '请输入版本', + placeholderProduct: '请选择产品', + placeholderUnit: '请选择单位', + placeholderYieldRate: '请输入良品率', + placeholderEnable: '请选择是否启用', + placeholderRemark: '请输入备注', + validatorCodeRequired: 'BOM编码不能为空', + validatorVersionRequired: '版本不能为空', + validatorProductRequired: '产品不能为空', + validatorUnitRequired: '单位不能为空', + validatorEnableRequired: '是否启用不能为空', + confirmDeleteContent: '确认删除BOM【{code}】吗?', + detailTab: 'BOM明细', + detailUsageNumber: '用量', + detailUnit: '单位', + detailLossRate: '损耗率', + detailRemark: '备注', + detailEmpty: '暂无BOM明细数据' + }, + equipmentCategory: { + moduleName: '设备分类', + subTitle: '设备分类管理', + detailTitle: '设备分类详情', + basicInfo: '基础信息', + code: '分类编码', + name: '分类名称', + parentName: '上级分类', + rootCategory: '无(顶级分类)', + sort: '排序', + remark: '备注', + createTime: '创建时间', + searchPlaceholder: '请输入分类编码/名称', + createTitle: '新增设备分类', + editTitle: '编辑设备分类', + empty: '暂无设备分类数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少分类ID', + loadFailed: '加载分类详情失败', + placeholderCode: '请输入分类编码', + placeholderName: '请输入分类名称', + placeholderParent: '请选择上级分类', + placeholderSort: '请输入排序', + placeholderRemark: '请输入备注', + validatorCodeRequired: '分类编码不能为空', + validatorNameRequired: '分类名称不能为空', + confirmDeleteContent: '确认删除分类【{name}】吗?' + }, + equipmentLedger: { + moduleName: '设备台账', + subTitle: '设备台账管理', + detailTitle: '设备台账详情', + basicInfo: '基础信息', + deviceCode: '设备编码', + deviceName: '设备名称', + deviceType: '设备类型', + deviceStatus: '设备状态', + lineFilter: '产线', + allFilter: '\u5168\u90e8\u7b5b\u9009', + categoryStatus: '\u5206\u7c7b\u72b6\u6001', + dateFilter: '\u65e5\u671f\u7b5b\u9009', + deviceBrand: '\u8bbe\u5907\u54c1\u724c', + sn: '\u5e8f\u5217\u53f7', + scanUnrecognized: '未识别二维码内容', + scanTypeMismatch: '二维码类型不匹配', + scanFailed: '扫码失败', + deviceSpec: '设备规格', + isScheduled: '是否排产', + ratedCapacity: '额定产能', + dailyAverageValue: '每日报工平均值', + dataCollectionCapacity: '数据采集产能', + productionDate: '生产日期', + outgoingTime: '出厂日期', + factoryEntryDate: '入厂日期', + deviceLocation: '设备位置', + deviceManagerName: '设备负责人', + workshop: '所属车间', + remark: '备注', + creatorName: '创建人', + createTime: '创建时间', + autoCode: '自动生成', + yes: '是', + no: '否', + searchPlaceholder: '请输入设备编码/名称', + createTitle: '新增设备台账', + editTitle: '编辑设备台账', + empty: '暂无设备台账数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少设备ID', + loadFailed: '加载设备详情失败', + placeholderDeviceCode: '请输入设备编码', + placeholderDeviceName: '请输入设备名称', + placeholderDeviceBrand: '\u8bf7\u8f93\u5165\u8bbe\u5907\u54c1\u724c', + placeholderSn: '\u8bf7\u8f93\u5165\u5e8f\u5217\u53f7', + placeholderDeviceType: '请选择设备类型', + placeholderDeviceSpec: '请输入设备规格', + placeholderRatedCapacity: '请输入额定产能', + placeholderDailyAverageValue: '请输入每日报工平均值', + placeholderDataCollectionCapacity: '请输入数据采集产能', + placeholderProductionDate: '请选择生产日期', + placeholderOutgoingTime: '请选择出厂日期', + placeholderFactoryEntryDate: '请选择入厂日期', + placeholderDeviceLocation: '请输入设备位置', + placeholderRemark: '请输入备注', + validatorDeviceCodeRequired: '设备编码不能为空', + validatorDeviceNameRequired: '设备名称不能为空', + validatorDeviceTypeRequired: '设备类型不能为空', + validatorProductionDateRequired: '生产日期不能为空', + validatorOutgoingTimeRequired: '出厂日期不能为空', + validatorFactoryEntryDateRequired: '入厂日期不能为空', + validatorRatedCapacityRequired: '额定产能不能为空', + validatorDailyAverageValueRequired: '每日报工平均值不能为空', + validatorDataCollectionCapacityRequired: '数据采集产能不能为空', + confirmDeleteContent: '确认删除设备【{name}】吗?', + checkHistory: '点检记录', + maintainHistory: '保养记录', + repairHistory: '报修记录', + operator: '操作人', + inspectionMethod: '点检方式', + criteria: '判定标准', + inspectionTime: '点检时间', + maintainMethod: '保养方式', + maintainTime: '保养时间', + repairName: '维修单名称', + faultPhenomenon: '故障现象', + faultDescription: '故障描述', + replacementParts: '更换配件', + repairContent: '维修内容', + finishDate: '完成日期', + faultImages: '故障图片', + repairedImages: '维修后图片', + noHistoryData: '暂无历史记录', + resultPending: '待处理', + resultPass: '合格', + resultFail: '不合格', + repairPending: '待处理', + repairProcessing: '处理中', + repairCompleted: '已完成', + repairAbnormal: '异常' + }, + equipmentMaintenance: { + moduleName: '设备维修', + createTitle: '新增设备维修', + editTitle: '编辑设备维修', + detailTitle: '设备维修详情', + repairTitle: '维修处理', + basicInfo: '基本信息', + repairObject: '维修对象', + repairCode: '维修单编号', + repairName: '维修单名称', + requireDate: '报修日期', + acceptedBy: '维修人员', + confirmBy: '验收人员', + machineryTypeId: '设备类型', + machineryTypeDevice: '设备', + machineryTypeKeyItem: '关键件', + device: '设备', + component: '关键件', + faultLevel: '故障等级', + isShutdown: '是否停机', + status: '单据状态', + faultInfo: '故障信息', + faultPhenomenon: '故障现象', + faultDescription: '故障描述', + faultImages: '故障图片', + repairResultSection: '处理结果', + repairResult: '维修结果', + finishDate: '完成日期', + confirmDate: '验收日期', + downtimeDuration: '停机时长', + faultReason: '故障原因', + handlingMeasures: '处理措施', + replacementParts: '更换配件', + repairContent: '维修内容', + repairedImages: '维修后图片', + remark: '备注', + autoCode: '自动生成', + deviceLabel: '设备', + reportTimeLabel: '报修时间', + searchPlaceholder: '请输入单号/设备编码/设备名称', + empty: '暂无维修记录', + statusPending: '待维修', + statusPassed: '通过', + statusRejected: '不通过', + placeholderRepairCode: '请输入维修单编号', + placeholderRepairName: '请输入维修单名称', + placeholderRequireDate: '请选择报修日期', + placeholderAcceptedBy: '请选择维修人员', + placeholderConfirmBy: '请选择验收人员', + placeholderDevice: '请选择设备', + placeholderComponent: '请选择关键件', + placeholderFaultPhenomenon: '请输入故障现象', + placeholderFaultDescription: '请输入故障描述', + placeholderFinishDate: '请选择完成日期', + placeholderConfirmDate: '请选择验收日期', + placeholderDowntimeDuration: '请输入停机时长,单位小时', + placeholderFaultReason: '请输入故障原因', + placeholderHandlingMeasures: '请输入处理措施', + placeholderReplacementParts: '请输入更换配件', + placeholderRepairContent: '请输入维修内容', + placeholderRemark: '请输入备注', + loadDetailFailed: '加载详情失败', + scanUnrecognized: '未识别到内容', + scanEquipmentRequired: '请扫描设备二维码', + deviceNotFound: '未找到对应设备', + scanFailed: '扫码失败', + maxUploadCount: '最多上传 9 张图片', + saving: '保存中', + saveSuccess: '保存成功', + submitSuccess: '提交成功', + submitFailed: '提交失败', + noId: '缺少维修单 ID', + confirmDeleteContent: '确定删除维修单“{code}”吗?', + validatorRepairCodeRequired: '请输入维修单编号', + validatorRepairNameRequired: '请输入维修单名称', + validatorDeviceRequired: '请选择设备', + validatorComponentRequired: '请选择关键件', + validatorRequireDateRequired: '请选择报修日期', + validatorFaultLevelRequired: '请选择故障等级', + validatorIsShutdownRequired: '请选择是否停机', + validatorFaultPhenomenonRequired: '请输入故障现象', + lineFilter: '产线', + validatorRepairStatusRequired: '请选择维修结果', + validatorFinishDateRequired: '请选择完成日期', + validatorConfirmDateRequired: '请选择验收日期' + }, + criticalComponent: { + moduleName: '设备关键件', + subTitle: '设备关键件管理', + detailTitle: '设备关键件详情', + basicInfo: '基础信息', + code: '关键件编码', + name: '关键件名称', + deviceSpec: '规格', + description: '描述', + count: '数量', + remark: '备注', + creatorName: '创建人', + createTime: '创建时间', + autoCode: '自动生成', + searchPlaceholder: '请输入编码/名称', + createTitle: '新增设备关键件', + editTitle: '编辑设备关键件', + empty: '暂无设备关键件数据', + loadEditFailed: '加载编辑数据失败', + noId: '缺少关键件ID', + loadFailed: '加载关键件详情失败', + placeholderCode: '请输入关键件编码', + placeholderName: '请输入关键件名称', + placeholderDeviceSpec: '请输入规格', + placeholderDescription: '请输入描述', + placeholderCount: '请输入数量', + placeholderRemark: '请输入备注', + validatorCodeRequired: '关键件编码不能为空', + validatorNameRequired: '关键件名称不能为空', + confirmDeleteContent: '确认删除关键件【{name}】吗?' + }, + moldLedger: { + moduleName: '模具台账', + subTitle: '模具台账管理', + detailTitle: '模具详情', + basicInfo: '模具基本信息', + moldPlaceholder: '模具', + moldName: '模具名称', + product: '产品', + moldCode: '模具编号', + status: '状态', + versionSpec: '版本/规格', + cavityCount: '模穴数', + currentDevice: '当前设备', + useCount: '使用次数', + expand: '展开', + collapse: '收起', + tabChildMold: '子模具', + tabInspection: '点检记录', + tabRepair: '维修记录', + tabMaintenance: '保养记录', + tabInstall: '安装记录', + installLocation: '安装位置', + material: '材质', + quantity: '数量', + lastReplace: '上次更换', + usedDays: '已使用{days}天', + remark: '备注', + noChildMold: '暂无子模具数据', + noInspection: '暂无点检记录', + noRepair: '暂无维修记录', + noMaintenance: '暂无保养记录', + noInstall: '暂无安装记录', + inspectionMethod: '点检方式', + criteria: '判定标准', + inspectionTime: '点检时间', + maintainMethod: '保养方式', + maintainTime: '保养时间', + repairProject: '维修项目', + projectContent: '项目内容', + finishTime: '完成时间', + operateMold: '模具', + operator: '操作人', + time: '时间', + upperMold: '上模', + lowerMold: '下模', + missingBrandId: '缺少模具组ID', + detailLoadFailed: '详情加载失败', + childLoadFailed: '子模具加载失败', + inspectionLoadFailed: '点检记录加载失败', + repairLoadFailed: '维修记录加载失败', + maintainLoadFailed: '保养记录加载失败', + installLoadFailed: '安装记录加载失败', + resultPending: '待处理', + resultPass: '合格', + resultWarning: '警告', + repairCompleted: '完成', + repairAbnormal: '异常', + repairProcessing: '处理中', + searchPlaceholder: '请输入模具组编码或名称', + allStatus: '全部', + selectMoldStatus: '选择模具状态', + clear: '清空', + name: '名称', + createTime: '创建时间', + confirmDeleteContent: '确认删除模具组"{name}"吗?', + empty: '暂无模具台账数据', + scanUnrecognized: '无法识别二维码', + scanFormatError: '二维码格式不正确', + scanFailed: '扫描失败', + noIdView: '缺少ID,无法查看详情', + noIdDelete: '缺少ID,无法删除' + }, + moldCheck: { + moduleName: '模具点检', + addTitle: '新增点检', + detailTitle: '点检详情', + searchPlaceholder: '请输入点检单号', + empty: '暂无点检记录', + add: '新增', + moldName: '模具名称', + moldCode: '模具编号', + product: '产品', + status: '状态', + taskType: '任务类型', + taskTypeInspect: '点检', + taskTypeMaintain: '保养', + planNo: '点检单号', + taskTime: '执行时间', + template: '配置模板', + operator: '操作员', + jobStatusPending: '待执行', + jobStatusProcessing: '执行中', + jobStatusCompleted: '已完成', + jobStatusTimeout: '已超时', + jobStatusCancelled: '已取消', + jobResultOk: '通过', + jobResultNg: '不通过', + progressTitle: '进度', + noResultData: '暂无点检结果数据', + requiredText: '必检', + inspectionMethod: '点检方式', + judgmentCriteria: '判定标准', + textInput: '输入值', + inputPlaceholder: '请输入', + images: '图片', + remark: '备注', + resultText: '结果', + inspectionResultPass: '通过', + inspectionResultFail: '不通过', + inspectionResultPending: '待判定', + maxUploadCount: '最多上传3张图片', + selectAllDecisionError: '请选择所有点检项的判定结果', + currentMoldInfo: '模具信息', + moldGroupCode: '模具组编码', + moldGroupName: '模具组名称', + cavityCount: '模穴数', + moldSize: '模具尺寸', + currentDevice: '当前设备', + selectMold: '选择模具', + reSelectMold: '重新选择模具', + selectMoldError: '请选择模具', + searchMold: '请输入模具名称', + noMoldInfo: '请选择模具', + noMoldData: '暂无可选模具', + taskName: '任务名称', + taskInfo: '任务信息', + placeholderTaskName: '请输入任务名称', + templateSelection: '模板/任务选择', + selectTemplate: '请选择模板', + selectTemplateError: '请选择点检模板', + noItems: '请先选择点检模板', + noTemplate: '暂无模板', + resultListTitle: '检验结果', + editResult: '编辑', + cancelEdit: '取消编辑', + submit: '提交点检', + submitSuccess: '点检提交成功', + submitFailed: '点检提交失败', + reInspect: '再次点检' + }, + moldMaintain: { + moduleName: '模具保养', + addTitle: '新增保养', + detailTitle: '保养详情', + searchPlaceholder: '请输入保养单号', + empty: '暂无保养记录', + add: '新增', + moldName: '模具名称', + moldCode: '模具编号', + product: '产品', + status: '状态', + taskType: '任务类型', + taskTypeInspect: '点检', + taskTypeMaintain: '保养', + planNo: '保养单号', + taskTime: '执行时间', + template: '配置模板', + operator: '操作员', + jobResultOk: '通过', + jobResultNg: '不通过', + progressTitle: '进度', + noResultData: '暂无保养结果数据', + requiredText: '必检', + inspectionMethod: '保养方式', + judgmentCriteria: '判定基准', + textInput: '输入值', + inputPlaceholder: '请输入', + images: '图片', + remark: '备注', + resultText: '结果', + inspectionResultPass: '通过', + inspectionResultFail: '不通过', + inspectionResultPending: '待判定', + maxUploadCount: '最多上传3张图片', + selectAllDecisionError: '请选择所有保养项的判定结果', + currentMoldInfo: '模具信息', + moldGroupCode: '模具组编码', + moldGroupName: '模具组名称', + cavityCount: '模穴数', + moldSize: '模具尺寸', + currentDevice: '当前设备', + selectMold: '选择模具', + reSelectMold: '重新选择模具', + selectMoldError: '请选择模具', + searchMold: '请输入模具名称', + noMoldInfo: '请选择模具', + noMoldData: '暂无可选模具', + taskName: '任务名称', + taskInfo: '任务信息', + placeholderTaskName: '请输入任务名称', + templateSelection: '模板/任务选择', + selectTemplate: '请选择模板', + selectTemplateError: '请选择保养模板', + noItems: '请先选择保养模板', + noTemplate: '暂无模板', + resultListTitle: '检验结果', + editResult: '编辑', + cancelEdit: '取消编辑', + submit: '提交保养', + submitSuccess: '保养提交成功', + submitFailed: '保养提交失败', + reInspect: '再次保养' + }, + moldPressureNet: { + moduleName: '更换压网', + recordTitle: '压网更换记录', + recordDesc: '请选择模具组和子模,确认更换时间', + history: '历史数据', + historyTitle: '压网历史', + moldGroup: '模具组', + selectMoldGroup: '选择模具组', + searchMoldGroup: '请输入模具组名称', + noMoldGroup: '暂无模具组', + moldGroupName: '模具组名称', + moldGroupCode: '模具组编号', + product: '产品', + subMold: '子模', + selectSubMold: '选择子模', + reSelectMoldGroup: '重新选择模具组', + reSelectSubMold: '重新选择子模', + subMoldCode: '子模编码', + subMoldName: '子模名称', + searchSubMold: '搜索子模名称/编号', + noSubMold: '暂无子模', + replaceInfo: '更换信息', + replaceTime: '更换时间', + pressureNetTime: '压网时间', + selectReplaceTime: '请选择更换时间', + operator: '操作人', + selectOperator: '请选择操作人', + noOperator: '暂无操作人', + remark: '备注', + remarkPlaceholder: '请输入更换原因或备注', + confirmReplace: '确认更换', + selectMoldGroupError: '请选择模具组', + selectSubMoldError: '请选择子模', + selectedCount: '已选{count}个子模', + selectReplaceTimeError: '请选择更换时间', + submitSuccess: '压网更换保存成功', + submitFailed: '压网更换保存失败', + historyMoldIdPlaceholder: '输入子模ID筛选,不填查全部', + searchBrandName: '模具组名称', + selectDate: '选择日期', + createTime: '创建时间', + noHistory: '暂无压网历史记录' + }, + moldRepair: { + moduleName: '模具维修', + createTitle: '新增模具维修', + editTitle: '编辑模具维修', + detailTitle: '模具维修详情', + repairTitle: '维修处理', + basicInfo: '基本信息', + repairObject: '维修对象', + repairCode: '维修单编号', + repairName: '维修单名称', + requireDate: '报修日期', + acceptedBy: '维修人员', + confirmBy: '验收人员', + mold: '模具', + moldCode: '模具编码', + moldName: '模具名称', + specModel: '规格型号', + brand: '品牌', + faultLevel: '故障等级', + isShutdown: '是否停机', + status: '单据状态', + faultInfo: '故障信息', + faultPhenomenon: '故障现象', + faultDescription: '故障描述', + faultImages: '故障图片', + repairResultSection: '处理结果', + repairResult: '维修结果', + finishDate: '完成日期', + confirmDate: '验收日期', + downtimeDuration: '停机时长', + faultReason: '故障原因', + handlingMeasures: '处理措施', + replacementParts: '更换配件', + repairContent: '维修内容', + repairedImages: '维修后图片', + remark: '备注', + autoCode: '自动生成', + moldLabel: '模具', + reportTimeLabel: '报修时间', + searchPlaceholder: '请输入单号或模具编码', + empty: '暂无维修记录', + statusPending: '待维修', + statusPassed: '通过', + statusRejected: '不通过', + orderStatusPending: '待处理', + orderStatusDone: '已完成', + placeholderRepairCode: '请输入维修单编号', + placeholderRepairName: '请输入维修单名称', + placeholderRequireDate: '请选择报修日期', + placeholderAcceptedBy: '请选择维修人员', + placeholderConfirmBy: '请选择验收人员', + placeholderUserSearch: '请输入姓名搜索', + placeholderMold: '请选择模具', + placeholderMoldNameAuto: '自动带出', + placeholderMoldCodeAuto: '自动带出', + placeholderFaultPhenomenon: '请输入故障现象', + placeholderFaultDescription: '请输入故障描述', + placeholderFinishDate: '请选择完成日期', + placeholderConfirmDate: '请选择验收日期', + placeholderDowntimeDuration: '请输入停机时长,单位小时', + placeholderFaultReason: '请输入故障原因', + placeholderHandlingMeasures: '请输入处理措施', + placeholderReplacementParts: '请输入更换配件', + placeholderRepairContent: '请输入维修内容', + placeholderRemark: '请输入备注', + loadDetailFailed: '加载详情失败', + scanUnrecognized: '未识别到内容', + scanMoldRequired: '请扫描模具二维码', + moldNotFound: '未找到对应模具', + scanFailed: '扫码失败', + maxUploadCount: '最多上传 9 张图片', + noUserData: '暂无人员数据', + saving: '保存中', + saveSuccess: '保存成功', + submitSuccess: '提交成功', + submitFailed: '提交失败', + noId: '缺少维修单 ID', + confirmDeleteContent: '确定删除维修单"{code}"吗?', + validatorRepairCodeRequired: '请输入维修单编号', + validatorRepairNameRequired: '请输入维修单名称', + validatorMoldRequired: '请选择模具', + validatorRequireDateRequired: '请选择报修日期', + validatorFaultLevelRequired: '请选择故障等级', + validatorIsShutdownRequired: '请选择是否停机', + validatorFaultPhenomenonRequired: '请输入故障现象', + validatorUserRequired: '请选择人员', + validatorRepairStatusRequired: '请选择维修结果', + validatorFinishDateRequired: '请选择完成日期', + validatorConfirmDateRequired: '请选择验收日期' + }, + productInbound: { + moduleName: '产品入库', + createTitle: '新增产品入库', + detailTitle: '产品入库详情', + selectProductTitle: '选择产品', + selectTaskTitle: '选择任务单', + selectTaskProductTitle: '选择任务产品', + selectPalletTitle: '选择托盘', + createPalletTitle: '新增托盘', + all: '全部', + inboundStatus: '入库状态', + reset: '重置', + clear: '清空', + loading: '加载中...', + loadingMore: '加载更多...', + noMoreData: '没有更多数据', + confirm: '确认', + cancel: '取消', + back: '返回', + submit: '确定', + submitting: '提交中...', + tip: '提示', + choose: '请选择', + yes: '是', + no: '否', + statusPending: '待入库', + statusAuditing: '待审核', + statusStored: '已入库', + statusRejected: '已驳回', + searchDocumentPlaceholder: '请输入入库单号', + searchProductPlaceholder: '搜索产品名称/编码/规格', + searchTaskPlaceholder: '搜索任务单号', + searchTaskProductPlaceholder: '搜索产品名称/编码', + searchPalletPlaceholder: '搜索托盘码', + productInfo: '产品信息', + inboundInfo: '入库信息', + inboundTime: '入库时间', + selectInboundTime: '请选择入库时间', + operator: '经办人', + selectOperator: '请选择经办人', + inboundQuantity: '入库数量', + reviewer: '审核人', + auditor: '审核人', + documentNo: '单据编号', + inboundType: '入库类型', + remark: '备注', + remarkPlaceholder: '请输入备注', + attachment: '附件', + chooseFile: '选择文件', + itemList: '入库清单', + addProduct: '添加产品', + product: '产品', + pallet: '托盘', + packageCount: '包数', + pieceCount: '个数', + inboundPackageCount: '入库包数', + inboundPieceCount: '入库个数', + palletQuantity: '托盘数量', + taskOrder: '任务单', + taskProduct: '任务产品', + emptyAddProduct: '请添加产品', + emptyInboundList: '暂无产品入库单', + emptyItemList: '暂无入库清单', + confirmInbound: '确认入库', + inboundSuccess: '入库成功', + saveFailed: '保存失败', + loadFailed: '加载失败', + detailLoadFailed: '详情加载失败', + operationFailed: '操作失败', + submitAudit: '提交审核', + auditPass: '审核通过', + auditReject: '审核驳回', + auditPassSuccess: '审核通过', + auditRejectSuccess: '已驳回', + submitAuditSuccess: '提交审核成功', + submitFailed: '提交失败', + selectAuditor: '请选择审核人', + selectInboundStatus: '选择入库状态', + confirmAuditPass: '确认审核通过该产品入库单?', + confirmAuditReject: '确认驳回该产品入库单?', + noDetailId: '暂无详情ID', + completeProductPalletInfo: '请完善产品和托盘信息', + addProductFirst: '请先添加产品', + taskInfo: '任务信息', + relatedTask: '关联任务单', + selectTask: '请选择任务单', + selectTaskProduct: '请选择任务产品', + selectProduct: '请选择产品', + selectPallet: '请选择托盘', + selectPalletFirst: '请先选择托盘', + selectTaskFirst: '请先选择任务单', + selectProductFirst: '请先选择产品', + emptyTaskProducts: '当前任务单暂无产品', + completePalletInfo: '请完善托盘仓库/库位/包数', + productAdded: '已添加产品', + taskProductLoadFailed: '任务产品加载失败', + workOrderNo: '工单号', + code: '编码', + packagingScheme: '包装方案', + palletPackageQuantity: '每托包数', + packageQuantity: '每包个数', + selectedPalletCount: '已选择 {count} 个托盘', + selectedCount: '已选 {count} 个', + packageUnit: '{count} 包', + pieceUnit: '{count} 个', + warehouse: '仓库', + area: '库区', + location: '库位', + deliveryDate: '交付日期', + emptyTask: '暂无任务单', + emptyProduct: '暂无产品数据', + emptyTaskProduct: '暂无任务产品', + emptyPallet: '暂无托盘', + spec: '规格', + unit: '单位', + palletCode: '托盘码', + palletType: '托盘类型', + palletStatus: '托盘状态', + autoCode: '自动编码', + length: '长', + width: '宽', + height: '高', + productCount: '包数', + ratedLoadWeight: '额定载重', + enterPalletCode: '请输入托盘码', + selectPalletType: '请选择托盘类型', + selectPalletStatus: '请选择托盘状态', + enterPackageCount: '请输入包数', + selectWarehouse: '请选择仓库', + selectArea: '请选择库区', + selectUnit: '请选择单位', + selectWarehouseFirst: '请先选择仓库', + emptyArea: '暂无库区', + enterRatedLoadWeight: '请输入额定载重', + createSuccess: '新增成功', + createPalletFailed: '新增托盘失败' + }, + productCheck: { + moduleName: '产品盘点执行', + createTitle: '新增产品盘点', + executeTitle: '执行盘点', + detailTitle: '\u4ea7\u54c1\u76d8\u70b9\u8be6\u60c5', + selectProductTitle: '选择产品', + selectItemTitle: '选择盘点项', + selectWarehouseTitle: '选择仓库', + selectAreaTitle: '选择库区', + all: '全部', + reset: '重置', + clear: '清空', + loading: '加载中...', + loadingMore: '加载更多...', + noMoreData: '没有更多数据', + confirm: '确认', + cancel: '取消', + submit: '确定', + submitting: '提交中...', + tip: '提示', + choose: '请选择', + delete: '删除', + save: '保存', + statusDraft: '待提交', + statusAuditing: '待审核', + statusApproved: '已审核', + statusRejected: '已驳回', + searchDocumentPlaceholder: '请输入盘点单号', + searchProductPlaceholder: '搜索产品名称/编码/规格', + searchWarehousePlaceholder: '搜索仓库名称', + searchAreaPlaceholder: '搜索库区名称/编码', + searchItemPlaceholder: '搜索产品/仓库/库区', + productInfo: '产品信息', + checkInfo: '盘点信息', + checkTime: '盘点时间', + selectCheckTime: '请选择盘点时间', + sourceType: '生成来源', + sourceTypeStock: '按库存', + sourceTypeProduct: '按产品', + selectWarehouse: '请选择仓库', + selectWarehouseFirst: '请先选择仓库', + selectArea: '请选择库区', + warehouse: '仓库', + area: '库区', + warehouseAddress: '地址', + principal: '负责人', + checkStatus: '盘点状态', + checked: '已盘点', + unchecked: '未盘点', + creator: '创建人', + reviewer: '审核人', + auditor: '审核人', + documentNo: '盘点单号', + remark: '备注', + remarkPlaceholder: '请输入备注', + productAndItems: '产品与盘点项', + selectProduct: '选择产品', + product: '产品', + checkItems: '盘点项', + selectAll: '全选', + selectedCount: '已选 {count} 个', + selectedItemCount: '已选 {count} 项', + selectCheckItems: '请选择盘点项', + stockCount: '账面数量', + code: '编码', + spec: '规格', + unit: '单位', + difference: '差异', + actualCount: '实盘数量', + saveDraft: '保存草稿', + finishCheck: '完成盘点', + execute: '执行盘点', + submitAudit: '提交审核', + auditPass: '审核通过', + auditReject: '审核驳回', + auditPassSuccess: '审核通过', + auditRejectSuccess: '已驳回', + submitAuditSuccess: '提交审核成功', + submitFailed: '提交失败', + selectAuditor: '请选择审核人', + selectStatus: '选择盘点状态', + confirmAuditPass: '确认审核通过该产品盘点单?', + confirmAuditReject: '确认驳回该产品盘点单?', + confirmDelete: '确认删除该产品盘点单?', + deleteSuccess: '删除成功', + operationFailed: '操作失败', + loadFailed: '加载失败', + detailLoadFailed: '详情加载失败', + emptyList: '暂无产品盘点单', + emptyProduct: '暂无产品数据', + emptyWarehouse: '暂无仓库', + emptyArea: '暂无库区', + emptyItemList: '暂无盘点项', + emptyAddProduct: '请添加产品', + selectProductFirst: '请先选择产品', + completeCheckItems: '请完善盘点项信息', + createSuccess: '创建成功', + saveFailed: '保存失败', + saveSuccess: '保存成功', + checkSuccess: '盘点完成', + noDetailId: '暂无详情ID', + enterActualCount: '请输入实盘数量', + confirmActualCountZero: '{items} 实盘数量为 0,确认继续?' + }, + productOutbound: { + moduleName: '产品出库', + createTitle: '新增产品出库', + detailTitle: '产品出库详情', + selectProductTitle: '选择产品', + selectPalletTitle: '选择托盘', + all: '全部', + outboundStatus: '出库状态', + reset: '重置', + clear: '清空', + loading: '加载中...', + loadingMore: '加载更多...', + noMoreData: '没有更多数据', + confirm: '确认', + cancel: '取消', + back: '返回', + submit: '确定', + submitting: '提交中...', + tip: '提示', + choose: '请选择', + statusPending: '待出库', + statusAuditing: '待审核', + statusStored: '已出库', + statusRejected: '已驳回', + searchDocumentPlaceholder: '请输入出库单号', + searchProductPlaceholder: '搜索产品名称/编码/规格', + searchPalletPlaceholder: '搜索托盘码', + productInfo: '产品信息', + outboundInfo: '出库信息', + outboundTime: '出库时间', + selectOutboundTime: '请选择出库时间', + operator: '经办人', + selectOperator: '请选择经办人', + outboundQuantity: '出库数量', + reviewer: '审核人', + auditor: '审核人', + documentNo: '单据编号', + outboundType: '出库类型', + remark: '备注', + remarkPlaceholder: '请输入备注', + attachment: '附件', + chooseFile: '选择文件', + itemList: '出库清单', + addProduct: '添加产品', + product: '产品', + pallet: '托盘', + packageCount: '包数', + pieceCount: '个数', + outboundPackageCount: '出库包数', + outboundPieceCount: '出库个数', + availablePackageCount: '可用包数', + enterOutboundPackageCount: '请输入出库包数', + palletQuantity: '托盘数量', + emptyAddProduct: '请添加产品', + emptyOutboundList: '暂无产品出库单', + emptyItemList: '暂无出库清单', + confirmOutbound: '确认出库', + outboundSuccess: '出库成功', + saveFailed: '保存失败', + loadFailed: '加载失败', + detailLoadFailed: '详情加载失败', + operationFailed: '操作失败', + submitAudit: '提交审核', + auditPass: '审核通过', + auditReject: '审核驳回', + auditPassSuccess: '审核通过', + auditRejectSuccess: '已驳回', + submitAuditSuccess: '提交审核成功', + submitFailed: '提交失败', + selectAuditor: '请选择审核人', + selectOutboundStatus: '选择出库状态', + confirmAuditPass: '确认审核通过该产品出库单?', + confirmAuditReject: '确认驳回该产品出库单?', + noDetailId: '暂无详情ID', + completeProductPalletInfo: '请完善产品和托盘信息', + addProductFirst: '请先添加产品', + selectProduct: '请选择产品', + selectPallet: '请选择托盘', + selectPalletFirst: '请先选择托盘', + selectProductFirst: '请先选择产品', + completePalletInfo: '请完善托盘仓库/库位/包数', + productAdded: '已添加产品', + code: '编码', + packagingScheme: '包装方案', + palletPackageQuantity: '每托包数', + packageQuantity: '每包个数', + selectedPalletCount: '已选择 {count} 个托盘', + selectedCount: '已选 {count} 个', + packageUnit: '{count} 包', + pieceUnit: '{count} 个', + warehouse: '仓库', + area: '库区', + location: '库位', + emptyProduct: '暂无产品数据', + emptyPallet: '暂无托盘', + spec: '规格', + unit: '单位', + palletCode: '托盘码', + palletType: '托盘类型', + palletStatus: '托盘状态', + outMode: '出库方式', + outModeWholePallet: '整托出库', + outModeSplitPallet: '拆托出库' + }, + sparepartInbound: { + moduleName: '备件入库', + tabPending: '待入库', + tabAuditing: '待审核', + searchPlaceholder: '搜索入库单号', + sparepartInfo: '备件信息', + inboundTime: '入库时间', + creator: '创建人', + quantity: '数量', + reviewer: '审核人', + approve: '已入库', + reject: '驳回', + confirmApprove: '确定审核通过该入库单吗?', + confirmReject: '确定驳回该入库单吗?', + approveSuccess: '审核通过', + rejectSuccess: '已驳回', + deleteSuccess: '删除成功', + empty: '暂无入库单据', + createTitle: '新增备件入库', + scanSparepart: '扫备件码', + selectSparepart: '选择备件', + searchSparepartPlaceholder: '搜索备件编码/名称', + sparepartCode: '备件编码', + category: '分类', + spec: '规格', + unit: '库存单位', + purchaseUnit: '采购单位', + convertRatio: '换算关系', + defaultWarehouse: '默认仓库/库区', + selectedSpareparts: '已选备件', + noSelectedSparepart: '请扫码或选择备件', + alreadySelected: '该备件已添加', + confirmRemove: '确定移除此备件吗?', + currentStock: '当前库存', + minStockUnit: '最小库存单位', + inboundQuantity: '入库数量', + qtyPlaceholder: '请输入', + noSparepartData: '暂无备件数据', + validatorSparepartRequired: '请选择备件' + }, + sparepartOutbound: { + moduleName: '备件出库', + tabPending: '待出库', + tabAuditing: '待审核', + searchPlaceholder: '搜索出库单号', + sparepartInfo: '备件信息', + outboundTime: '出库时间', + creator: '创建人', + quantity: '数量', + reviewer: '审核人', + approve: '已出库', + reject: '驳回', + confirmApprove: '确定审核通过该出库单吗?', + confirmReject: '确定驳回该出库单吗?', + approveSuccess: '审核通过', + rejectSuccess: '已驳回', + deleteSuccess: '删除成功', + empty: '暂无出库单据', + createTitle: '新增备件出库' + }, + materialOutbound: { + moduleName: '物料出库', + tabPending: '待出库', + tabAuditing: '待审核', + searchPlaceholder: '搜索出库单号', + sparepartInfo: '物料信息', + materialInfo: '物料信息', + outboundTime: '出库时间', + creator: '创建人', + quantity: '数量', + reviewer: '审核人', + approve: '已出库', + reject: '驳回', + confirmApprove: '确定审核通过该出库单吗?', + confirmReject: '确定驳回该出库单吗?', + approveSuccess: '审核通过', + rejectSuccess: '已驳回', + deleteSuccess: '删除成功', + empty: '暂无出库单据', + createTitle: '新增物料出库' + }, productInventory: { moduleName: '产品库存查询', detailTitle: '产品库存详情', @@ -1846,40 +1852,40 @@ export default { empty: '暂无产品库存数据', noDetailId: '暂无产品库存ID' }, - sparepartInventory: { - moduleName: '备件库存查询', - searchPlaceholder: '请输入备件编码或名称', - allArea: '全部库区', - areaPlaceholder: '库区筛选', - productName: '物料名称', - barCode: '物料编码', - warehouse: '仓库', - area: '库区', - count: '基本数量', - stockDisplay: '库存展示', - unit: '单位', - category: '物料小类', - packagingRule: '包装/换算规则', - recentInTime: '最近入库', - recentOutTime: '最近出库', - empty: '暂无备件库存数据' - }, - materialInventory: { - moduleName: '物料库存查询', - searchPlaceholder: '请输入物料编码或名称', - allArea: '全部库区', - areaPlaceholder: '库区筛选', - productName: '物料名称', - barCode: '物料编码', - warehouse: '仓库', - area: '库区', - count: '基本数量', - stockDisplay: '库存展示', - unit: '单位', - category: '物料小类', - packagingRule: '包装/换算规则', - recentInTime: '最近入库', - recentOutTime: '最近出库', - empty: '暂无物料库存数据' - } -} + sparepartInventory: { + moduleName: '备件库存查询', + searchPlaceholder: '请输入备件编码或名称', + allArea: '全部库区', + areaPlaceholder: '库区筛选', + productName: '物料名称', + barCode: '物料编码', + warehouse: '仓库', + area: '库区', + count: '基本数量', + stockDisplay: '库存展示', + unit: '单位', + category: '物料小类', + packagingRule: '包装/换算规则', + recentInTime: '最近入库', + recentOutTime: '最近出库', + empty: '暂无备件库存数据' + }, + materialInventory: { + moduleName: '物料库存查询', + searchPlaceholder: '请输入物料编码或名称', + allArea: '全部库区', + areaPlaceholder: '库区筛选', + productName: '物料名称', + barCode: '物料编码', + warehouse: '仓库', + area: '库区', + count: '基本数量', + stockDisplay: '库存展示', + unit: '单位', + category: '物料小类', + packagingRule: '包装/换算规则', + recentInTime: '最近入库', + recentOutTime: '最近出库', + empty: '暂无物料库存数据' + } +} diff --git a/src/pages_function/pages/equipmentLedger/index.vue b/src/pages_function/pages/equipmentLedger/index.vue index d6bbcb4..5f3a2e0 100644 --- a/src/pages_function/pages/equipmentLedger/index.vue +++ b/src/pages_function/pages/equipmentLedger/index.vue @@ -3,76 +3,48 @@ - - + + {{ selectedLineLabel }} - - - - - - - - {{ selectedLineLabel }} + + + + + {{ selectedStatusLabel }} - + ]">{{ selectedStatusLabel }} + + + + + + + + + + - - {{ - resetFilterText - }} - + + + + - - + {{ textValue(item.deviceCode) }} - + - - {{ getStatusText(item.deviceStatus) }} + + {{ getStatusText(item.deviceStatus) + }} @@ -103,19 +75,127 @@ - + + + + {{ t('equipmentLedger.allFilter') }} + + + + + {{ t('equipmentLedger.basicInfo') }} + + + + {{ t('equipmentLedger.deviceCode') }} + + + + {{ t('equipmentLedger.deviceName') }} + + + + {{ t('equipmentLedger.deviceBrand') }} + + + + {{ t('equipmentLedger.sn') }} + + + + + + + + {{ t('equipmentLedger.categoryStatus') }} + + + + {{ t('equipmentLedger.deviceStatus') }} + + + {{ selectedStatusLabel }} + + + + + + {{ t('equipmentLedger.deviceType') }} + + {{ selectedDeviceTypeLabel }} + + + + + {{ option.name }} + + + + + {{ t('equipmentLedger.lineFilter') }} + + {{ selectedLineLabel }} + + + + + {{ option.name }} + + + + + + + + + {{ t('equipmentLedger.dateFilter') }} + + + {{ t('equipmentLedger.outgoingTime') }} + + + + + + + + {{ + resetFilterText + }} + {{ + t('functionCommon.confirm') + }} + + + + + + @@ -131,6 +211,7 @@ import { updateDeviceLedger, } from '@/api/mes/deviceLedger'; import { getDeviceLineTree } from '@/api/mes/deviceLine'; +import { getDeviceTypeTree } from '@/api/mes/deviceType'; import { DICT_TYPE, getDictLabel, initAllDict } from '@/utils/dict'; import useDictStore from '@/store/modules/dict'; @@ -140,10 +221,24 @@ const resetFilterText = computed(() => t('functionCommon.reset')); const searchKeyword = ref(''); const selectedStatus = ref(''); const selectedLineId = ref(''); +const selectedDeviceTypeId = ref(''); +const deviceCodeFilter = ref(''); +const deviceNameFilter = ref(''); +const deviceBrandFilter = ref(''); +const snFilter = ref(''); +const outgoingTimeFilter = ref(''); +const drawerDeviceTypePanelOpen = ref(false); +const drawerLinePanelOpen = ref(false); +const filterPopupRef = ref(null); const lineTree = ref([]); +const deviceTypeTree = ref([]); const lineCascaderShow = ref(false); +const lineCascaderOpenedFromDrawer = ref(false); const lineCascaderValue = ref([]); const lineCascaderKey = ref(0); +const deviceTypeCascaderShow = ref(false); +const deviceTypeCascaderValue = ref([]); +const deviceTypeCascaderKey = ref(0); const list = ref([]); const loading = ref(false); const loadingMore = ref(false); @@ -199,11 +294,31 @@ const selectedLineLabel = computed(() => { ); return found?.name || t('equipmentLedger.lineFilter'); }); - +const drawerLineOptions = computed(() => [ + { id: '', name: t('functionCommon.all'), level: 0 }, + ...lineOptions.value, +]); +const deviceTypeOptions = computed(() => flattenLineTree(deviceTypeTree.value)); +const deviceTypeCascaderOptions = computed(() => [ + { label: t('functionCommon.all'), value: '' }, + ...normalizeLineTreeForCascader(deviceTypeTree.value), +]); +const selectedDeviceTypeLabel = computed(() => { + if (selectedDeviceTypeId.value === '') return t('equipmentLedger.deviceType'); + const found = deviceTypeOptions.value.find( + (item) => String(item.id) === String(selectedDeviceTypeId.value), + ); + return found?.name || t('equipmentLedger.deviceType'); +}); +const drawerDeviceTypeOptions = computed(() => [ + { id: '', name: t('functionCommon.all'), level: 0 }, + ...deviceTypeOptions.value, +]); onLoad(async () => { activateKeywordFocus(); await initAllDict(); await fetchLineTree(); + await fetchDeviceTypeTree(); await fetchList(true); }); @@ -240,6 +355,21 @@ async function fetchLineTree() { } } +async function fetchDeviceTypeTree() { + try { + const res = await getDeviceTypeTree({}); + const root = res && res.data !== undefined ? res.data : res; + const treeData = Array.isArray(root) + ? root + : Array.isArray(root?.data) + ? root.data + : []; + deviceTypeTree.value = normalizeLineTree(treeData); + } catch (e) { + deviceTypeTree.value = []; + } +} + function normalizeLineTree(nodes) { return (Array.isArray(nodes) ? nodes : []).map((node) => { const children = normalizeLineTree(node.children); @@ -319,15 +449,24 @@ async function fetchList(reset) { } try { const keyword = searchKeyword.value.trim(); + const deviceCode = deviceCodeFilter.value.trim(); + const deviceName = deviceNameFilter.value.trim(); + const deviceBrand = deviceBrandFilter.value.trim(); + const sn = snFilter.value.trim(); const params = { pageNo: pageNo.value, pageSize: pageSize.value, - deviceCode: keyword || undefined, - deviceName: keyword || undefined, + deviceCode: deviceCode || keyword || undefined, + deviceName: deviceName || keyword || undefined, deviceStatus: selectedStatus.value === '' ? undefined : selectedStatus.value, deviceLine: selectedLineId.value === '' ? undefined : selectedLineId.value, + deviceType: + selectedDeviceTypeId.value === '' ? undefined : selectedDeviceTypeId.value, + deviceBrand: deviceBrand || undefined, + sn: sn || undefined, + outgoingTime: outgoingTimeFilter.value || undefined, }; const res = await getDeviceLedgerPage(params); const page = normalizePageData(res); @@ -370,7 +509,68 @@ function onStatusFilterChange(e) { fetchList(true); } -function openLineCascader() { +function onDrawerStatusFilterChange(e) { + const idx = Number(e?.detail?.value || 0); + selectedStatus.value = statusOptions.value[idx]?.value ?? ''; +} +function openFilterDrawer() { + filterPopupRef.value?.open(); +} + +function closeFilterDrawer() { + filterPopupRef.value?.close(); +} + +async function confirmFilterDrawer() { + drawerDeviceTypePanelOpen.value = false; + drawerLinePanelOpen.value = false; + closeFilterDrawer(); + await fetchList(true); +} + +async function refreshList() { + await fetchList(true); +} + +function toggleDrawerDeviceTypePanel() { + drawerDeviceTypePanelOpen.value = !drawerDeviceTypePanelOpen.value; + if (drawerDeviceTypePanelOpen.value) drawerLinePanelOpen.value = false; +} + +function toggleDrawerLinePanel() { + drawerLinePanelOpen.value = !drawerLinePanelOpen.value; + if (drawerLinePanelOpen.value) drawerDeviceTypePanelOpen.value = false; +} + +function selectDrawerDeviceType(option) { + selectedDeviceTypeId.value = option?.id === '' ? '' : String(option?.id ?? ''); + deviceTypeCascaderValue.value = selectedDeviceTypeId.value + ? findLinePath(deviceTypeTree.value, selectedDeviceTypeId.value) + : []; + drawerDeviceTypePanelOpen.value = false; +} + +function selectDrawerLine(option) { + selectedLineId.value = option?.id === '' ? '' : String(option?.id ?? ''); + lineCascaderValue.value = selectedLineId.value + ? findLinePath(lineTree.value, selectedLineId.value) + : []; + drawerLinePanelOpen.value = false; +} +function openDeviceTypeCascader() { + deviceTypeCascaderShow.value = true; +} + +function onDeviceTypeCascaderConfirm(values) { + const selectedValues = Array.isArray(values) ? values : []; + const nextValue = selectedValues[selectedValues.length - 1] ?? ''; + selectedDeviceTypeId.value = nextValue === '' ? '' : String(nextValue); + deviceTypeCascaderValue.value = + nextValue === '' ? [] : selectedValues.map((item) => String(item)); +} + +function openLineCascader(fromDrawer = false) { + lineCascaderOpenedFromDrawer.value = Boolean(fromDrawer); lineCascaderShow.value = true; } @@ -380,16 +580,29 @@ function onLineCascaderConfirm(values) { selectedLineId.value = nextValue === '' ? '' : String(nextValue); lineCascaderValue.value = nextValue === '' ? [] : selectedValues.map((item) => String(item)); - fetchList(true); + if (!lineCascaderOpenedFromDrawer.value) fetchList(true); + lineCascaderOpenedFromDrawer.value = false; } - async function resetFilters() { searchKeyword.value = ''; + deviceCodeFilter.value = ''; + deviceNameFilter.value = ''; + deviceBrandFilter.value = ''; + snFilter.value = ''; + outgoingTimeFilter.value = ''; selectedStatus.value = ''; selectedLineId.value = ''; + selectedDeviceTypeId.value = ''; + drawerDeviceTypePanelOpen.value = false; + drawerLinePanelOpen.value = false; lineCascaderValue.value = []; + deviceTypeCascaderValue.value = []; lineCascaderShow.value = false; + lineCascaderOpenedFromDrawer.value = false; + deviceTypeCascaderShow.value = false; lineCascaderKey.value += 1; + deviceTypeCascaderKey.value += 1; + closeFilterDrawer(); activateKeywordFocus(); await fetchList(true); } @@ -549,16 +762,29 @@ function formatDateValue(value) { } .filter-bar { - display: grid; - grid-template-columns: minmax(0, 1fr) 160rpx 70rpx 0rpx; - gap: 14rpx; + padding: 18rpx 14rpx 20rpx; + background: #f3f4f6; +} + +.filter-row { + display: flex; align-items: center; - padding: 18rpx 3rpx 20rpx; + gap: 18rpx; +} + +.search-row { + margin-top: 18rpx; +} + +.quick-row>picker { + min-width: 0; + flex: 1; } .keyword-wrap, .status-filter, -.line-filter { +.line-filter, +.icon-filter-btn { height: 66rpx; border: 1rpx solid #d9dde5; background: #ffffff; @@ -566,6 +792,8 @@ function formatDateValue(value) { } .keyword-wrap { + min-width: 0; + flex: 1; display: flex; align-items: center; } @@ -578,35 +806,30 @@ function formatDateValue(value) { color: #374151; } -.status-filter { - min-width: 140rpx; +.status-filter, +.line-filter { + min-width: 0; flex: 1; - max-width: 300rpx; display: flex; align-items: center; justify-content: space-between; - padding: 0 18rpx; + padding: 0 18rpx 0 26rpx; } -.line-filter { +.icon-filter-btn { + width: 66rpx; + flex: 0 0 66rpx; display: flex; align-items: center; justify-content: center; - position: relative; - padding: 0 56rpx; - grid-column: 1 / -1; -} - -.line-filter :deep(.uni-icons) { - position: absolute; - right: 18rpx; + border-color: transparent; + background: transparent; } .status-filter-text, .line-filter-text { min-width: 0rpx; flex: 1; - width: 120rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -614,16 +837,238 @@ function formatDateValue(value) { color: #374151; } -.line-filter .line-filter-text { - max-width: none; - text-align: center; -} - .status-filter-text.placeholder, .line-filter-text.placeholder { color: #a8adb7; } +.filter-drawer { + width: 630rpx; + height: 100vh; + background: #f5f5f7; + display: flex; + flex-direction: column; + overflow: hidden; + border-radius: 28rpx 0 0 28rpx; +} + +.drawer-header { + height: 104rpx; + padding: 18rpx 34rpx 0; + background: #ffffff; + display: flex; + align-items: center; + justify-content: flex-start; + box-sizing: border-box; +} + +.drawer-back { + width: 58rpx; + height: 88rpx; + display: flex; + align-items: center; + justify-content: center; +} + +.drawer-title { + color: #1f2937; + font-size: 34rpx; + line-height: 1.3; + font-weight: 700; +} + +.drawer-body { + flex: 1; + min-height: 0; + padding-bottom: 40rpx; + box-sizing: border-box; +} + +.drawer-section { + // margin-top: 20rpx; + margin-bottom: 18rpx; + padding: 28rpx 28rpx 30rpx; + border-radius: 24rpx; + background: #ffffff; + box-sizing: border-box; +} + +.drawer-section-head { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 24rpx; +} + +.drawer-section-title { + font-size: 32rpx; + line-height: 1.3; + color: #1f2937; + font-weight: 700; +} + +.drawer-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 22rpx 20rpx; +} + +.drawer-field { + min-width: 0; +} + +.drawer-field-wide { + grid-column: 1 / -1; +} + +.drawer-label { + display: block; + margin-bottom: 12rpx; + font-size: 24rpx; + line-height: 1.3; + color: #4b5563; + font-weight: 500; +} + +.drawer-input, +.drawer-picker, +.drawer-date { + width: 100%; + min-height: 74rpx; + border: 0; + border-radius: 8rpx; + background: #f7f8fb; + box-sizing: border-box; +} + +.drawer-input { + height: 74rpx; + padding: 0 18rpx; + font-size: 26rpx; + color: #111827; + text-align: center; +} + +.drawer-picker { + display: flex; + align-items: center; + justify-content: center; + padding: 0 18rpx; + gap: 8rpx; +} + +.drawer-picker-text { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 26rpx; + color: #111827; + text-align: center; +} + +.drawer-picker-text.placeholder { + color: #9ca3af; +} + +.drawer-date { + display: flex; + align-items: center; + padding: 0 12rpx; +} + +.drawer-option-panel { + max-height: 360rpx; + margin-top: 12rpx; + border-radius: 12rpx; + background: #f7f8fb; + overflow: hidden; +} + +.drawer-option-item { + min-height: 72rpx; + padding-right: 24rpx; + display: flex; + align-items: center; + border-bottom: 1rpx solid #eceff3; + box-sizing: border-box; +} + +.drawer-option-item:last-child { + border-bottom: 0; +} + +.drawer-option-item.active { + background: rgba(23, 75, 120, 0.1); +} + +.drawer-option-item.active .drawer-option-text { + color: #174b78; + font-weight: 600; +} + +.drawer-option-text { + min-width: 0; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 26rpx; + color: #1f2937; +} + +.drawer-date :deep(.uni-date) { + width: 100%; +} + +.drawer-date :deep(.uni-date-x) { + min-height: 74rpx; + border: 0; + padding: 0; + background: transparent; +} + +.drawer-date :deep(.uni-date__x-input) { + text-align: center; + font-size: 26rpx; + color: #111827; +} + +.drawer-actions { + height: 126rpx; + padding: 18rpx 28rpx 24rpx; + box-sizing: border-box; + display: flex; + align-items: center; + gap: 0; + background: #ffffff; + box-shadow: 0 -8rpx 24rpx rgba(17, 24, 39, 0.06); +} + +.drawer-action { + flex: 1; + height: 72rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + font-weight: 600; + border: 2rpx solid #174b78; + box-sizing: border-box; +} + +.drawer-action.reset { + border-radius: 12rpx 0 0 12rpx; + background: #ffffff; + color: #174b78; +} + +.drawer-action.confirm { + border-radius: 0 12rpx 12rpx 0; + background: #174b78; + color: #ffffff; +} + .scan-btn { width: 64rpx; height: 64rpx;