| | |
| | | waiting:'Ждем.', |
| | | }, |
| | | workOrder:{ |
| | | glassID:'Стеклянный ID', |
| | | height:'Высота', |
| | | width:'Ширина', |
| | | thickness:'Толщина', |
| | | coatingtypes:'Типы покрытий', |
| | | productionsequence:'Последовательность производства', |
| | | cardnumber:'Номер карточки процесса', |
| | | operate:'Операция', |
| | | messagedamaged:'Повреждено ли сообщение?', |
| | | prompt:'Подсказк', |
| | | yes:'Да', |
| | | cancel:'Отмена', |
| | | takemessage:'Следует ли удалять сообщение?', |
| | | breakage:'Повреждение', |
| | | takeout:'Взять', |
| | | glassID: 'Glass ID', |
| | | height: 'Height', |
| | | width: 'Width', |
| | | thickness: 'Thickness', |
| | | coatingtypes: 'Coating types', |
| | | productionsequence: 'Production sequence', |
| | | cardnumber: 'Process card number', |
| | | operate: 'Operate', |
| | | messagedamaged: 'Is this information damaged?', |
| | | prompt: 'Prompt', |
| | | yes: 'Yes', |
| | | cancel: 'Cancel', |
| | | takemessage: 'Do you need to delete the message?', |
| | | breakage: 'Breakage', |
| | | takeout: 'Take away', |
| | | glasstype: 'Glass type', |
| | | line: 'Wire', |
| | | status: 'Status', |
| | | }, |
| | | processCard:{ |
| | | intofurnace:'В печь', |
| | | beforefurnace:'До печки.', |
| | | outfurnace:'Окончено стекло из печи для закалки', |
| | | processCard: { |
| | | intofurnace: 'Entering the furnace', |
| | | beforefurnace: 'Before entering the furnace', |
| | | outfurnace: 'Glass finished from tempering furnace', |
| | | print: 'Take away the print', |
| | | printing: 'print', |
| | | projectnumber: 'Please enter the project number', |
| | | inquire: 'Inquire', |
| | | project: 'Project number', |
| | | awayprocess: 'Take away the process', |
| | | awayequipment: 'Take away the equipment', |
| | | awayteam: 'Take away the crew', |
| | | flowcard: 'Process card', |
| | | layer: 'Layer number', |
| | | temperinglayout: 'Heat number', |
| | | temperingfeed: 'Preface', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | thickness: 'Thickness', |
| | | glasstakeout: 'Glass take away list', |
| | | layoutID: 'Drawing ID of loading for tempering furnace', |
| | | glassID: 'Glass ID', |
| | | }, |
| | | reportWork:{ |
| | | lowerbit:'Станция разгрузки', |
| | |
| | | width:'Ширина', |
| | | height:'Высота', |
| | | }, |
| | | productStock:{ |
| | | addusers:'Добавьте пользователей.', |
| | | username:'Имя пользователя.', |
| | | usernamea:'Имя пользователя.:', |
| | | inusername:'Введите имя пользователя', |
| | | role:'Роль', |
| | | rolea:'Роль:', |
| | | inrole:'Выберите роль', |
| | | test:'Тест', |
| | | admin:'Администратор.', |
| | | operate:'Операция', |
| | | resetpassword:'Сбросить пароль', |
| | | exit:'Редактор', |
| | | delete:'Удал', |
| | | prompt:'Подсказк', |
| | | repassword:'Перезагрузка пользовательского пароля или нет?', |
| | | yes:'Да', |
| | | cancel:'Отмена', |
| | | reusername:'Изменение пользователя', |
| | | addusername:'Добавьте пользователей.', |
| | | password:'Код:', |
| | | sure:'подтверд', |
| | | inpassword:'Введите пароль.', |
| | | deusername:'Удаление пользователя или нет?', |
| | | |
| | | productStock: { |
| | | addusers: 'Add user', |
| | | username: 'User name', |
| | | usernamea: 'User name:', |
| | | inusername: 'Enter one user name', |
| | | role: 'Role', |
| | | rolea: 'Role:', |
| | | inrole: 'Please select a role', |
| | | test: 'Test', |
| | | admin: 'Administrator', |
| | | operate: 'Operate', |
| | | resetpassword: 'Reset password', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | prompt: 'Prompt', |
| | | repassword: 'Do you want to reset the user password?', |
| | | yes: 'Yes', |
| | | cancel: 'Cancel', |
| | | reusername: 'Modify Users', |
| | | addusername: 'Add user', |
| | | password: 'Password:', |
| | | sure: 'Confirm', |
| | | inpassword: 'Please input a password', |
| | | deusername: 'Do you want to delete the user?', |
| | | }, |
| | | customer:{ |
| | | addmenu:'Добавьте меню.', |
| | | firstmenu:'Таблица меню первой степени', |
| | | link:'Ссылк', |
| | | linka:'Ссылк:', |
| | | inlink:'Введите ссылку', |
| | | sort:'Сортировк', |
| | | sorta:'Сортировк:', |
| | | insort:'Введите сортировку', |
| | | operate:'Операция', |
| | | exit:'Редактор', |
| | | inmenu:'Введите меню', |
| | | delete:'Удал', |
| | | semenu:'Таблица меню второй степени', |
| | | menu:'Меню.:', |
| | | sure:'подтверд', |
| | | cancel:'Отмена', |
| | | exmene:'Изменение меню.', |
| | | yes:'Да', |
| | | demenu:'Удалить меню или нет?', |
| | | prompt:'Подсказк', |
| | | customer: { |
| | | addmenua: 'Add secondary menus', |
| | | addmenu: 'Add a first-level menu', |
| | | firstmenu: 'First level menu bar', |
| | | firstmenuname: 'The name of the first-level menu:', |
| | | link: 'Link', |
| | | inlink: 'Please enter the link', |
| | | linka: 'Link:', |
| | | sort: 'Sort', |
| | | insort: 'Please enter sorting', |
| | | sorta: 'Sort:', |
| | | operate: 'Operate', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | semenu: 'Secondary menu bar', |
| | | semenuname: 'Secondary menu name:', |
| | | menu: 'Menu bar:', |
| | | inmenu: 'Please enter a menu name', |
| | | sure: 'Confirm', |
| | | cancel: 'Cancel', |
| | | exmene: 'Modify the first-level menu', |
| | | exmenea: 'Modify the secondary menu', |
| | | yes: 'Yes', |
| | | demenu: 'Do you want to delete this menu?', |
| | | prompt: 'Prompt', |
| | | }, |
| | | delivery:{ |
| | | addrole:'Добавьте роли.', |
| | | editrole:'Изменение роли.', |
| | | role :'Роль', |
| | | rolea :'Роль:', |
| | | inrole :'Введите роли.', |
| | | operate :'Операция', |
| | | edit :'Редактор', |
| | | delete :'Удал', |
| | | sure :'подтверд', |
| | | cancel :'Отмена', |
| | | yes:'Да', |
| | | derole :'Удалить персонаж или нет?', |
| | | prompt:'Подсказк', |
| | | delivery: { |
| | | addrole: 'Add Role', |
| | | editrole: 'Modify role', |
| | | role: 'Role', |
| | | rolea: 'Role:', |
| | | inrole: 'Please enter the role', |
| | | operate: 'Operate', |
| | | edit: 'Edit', |
| | | delete: 'Delete', |
| | | yes: 'Yes', |
| | | sure: 'Confirm', |
| | | cancel: 'Cancel', |
| | | derole: 'Do you want to delete this role', |
| | | prompt: 'Prompt', |
| | | choice: 'Menu permissions:', |
| | | inchoice: 'Please select Menu Permissions', |
| | | }, |
| | | } |
| | | replenish: { |
| | | patchManagement: 'Mesh management', |
| | | |
| | | }, |
| | | rework: { |
| | | reworkManagement: 'Rework management', |
| | | addRework: "Rework added ", |
| | | }, |
| | | |
| | | |
| | | role: { |
| | | id: 'ID', |
| | | characterHomepage: 'Character Home', |
| | | }, |
| | | user: { |
| | | userId: 'User ID', |
| | | userHomepage: 'User Home', |
| | | }, |
| | | orderBasicData: { |
| | | order: 'orders', |
| | | orderType: 'The type of order', |
| | | }, |
| | | machine: { |
| | | basicId: 'Device number', |
| | | basicName: 'The name of the device', |
| | | basicCategory: 'The process in which it is located', |
| | | tempering: 'Steel', |
| | | }, |
| | | report: { |
| | | productionReport: 'Production reports', |
| | | workInProgressReport: 'WIP report', |
| | | }, |
| | | productionBasicData: { |
| | | basicDataQuery: 'Basic data query', |
| | | }, |
| | | mainIngredient: { |
| | | materialInformation: 'Material information', |
| | | }, |
| | | mainIngredientStock: { |
| | | materialName: 'The name of the item', |
| | | createTime: 'Return date', |
| | | }, |
| | | large: { |
| | | time: 'The time of the break', |
| | | number: 'Order number', |
| | | jobnumber: 'Job number', |
| | | productionnumber: 'The production order number', |
| | | cardnumber: 'Process card number', |
| | | projectname: 'The name of the project', |
| | | batch: 'batch', |
| | | detailID: 'Detail ID', |
| | | building: 'Building No', |
| | | serialnumber: 'Order serial number', |
| | | productname: 'Product name', |
| | | serial: 'Process validation number', |
| | | slicemarker: 'Frame marker (position)', |
| | | numberpatches: 'Number of patches', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | shape: 'Shape', |
| | | responsibleprocess: 'Responsible process', |
| | | process: 'This process', |
| | | numberfractions: 'The number of unfilled fractions', |
| | | breakreason: 'The reason for the break', |
| | | breaktype: 'Sub-break type', |
| | | responsiblepersonnel: 'Responsible Personnel', |
| | | responsiblequipment: 'Responsible Equipment', |
| | | responsibleteam: 'Responsible team', |
| | | area: 'Sub-broken area', |
| | | inspector: 'Quality inspector', |
| | | operate: 'Operate', |
| | | mes: 'Detail', |
| | | projectnumber: 'The project order number', |
| | | brokeno: 'The report is broken and not filled', |
| | | close: 'Shut down', |
| | | orderId: 'Order ID', |
| | | customerName: 'The name of the customer', |
| | | project: 'The name of the project', |
| | | are: 'are', |
| | | quantity: 'quantity', |
| | | warehousing: 'State', |
| | | deliveryDate: 'Delivery time', |
| | | notstocked: 'Not yet in stock', |
| | | inboundstatus: 'Partial inventory status', |
| | | allstatus: 'All in stock status', |
| | | completedquantity: 'Completed quantity', |
| | | scrapquantity: 'Scrap Quantity', |
| | | method: 'Processing method', |
| | | innumber: 'Quantity already entered', |
| | | productstatus: 'Production status', |
| | | right: 'normal', |
| | | stop: 'termination', |
| | | inquire: 'query', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | loading: 'In the process of uploading:', |
| | | }, |
| | | reportmanage: { |
| | | productiontime: 'production time', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | ctype: 'Please select type', |
| | | cstate: 'Please select the status', |
| | | cprocess: 'Please select the process', |
| | | all: 'All', |
| | | completed: 'Completed', |
| | | broke: 'Damaged', |
| | | takeout: 'Takeout', |
| | | dreportwork: 'Unreported work', |
| | | pendingwork: 'Pending job application', |
| | | reportwork: 'Reported work', |
| | | incise: 'slicing', |
| | | edging: 'edging', |
| | | steel: 'toughened', |
| | | inquire: 'query', |
| | | signingwork: 'Reporting for work', |
| | | reporteam: 'Report work team', |
| | | reportingequipment: 'Reporting equipment', |
| | | line: 'line', |
| | | process: 'production processes', |
| | | glassID: 'Glass ID', |
| | | projectnumber: 'Project number', |
| | | layoutID: 'Tempered layout ID', |
| | | type: 'type', |
| | | state: 'state', |
| | | processcards: 'Flow Card', |
| | | number: 'Serial Number', |
| | | layer: 'storey', |
| | | typebreakage: 'Damage type', |
| | | ptypebreakage: ' Please select the type of damage', |
| | | causebreakage: 'Reason for damage', |
| | | pcausebreakage: 'Please select the reason for the damage', |
| | | responsibleprocess: 'Responsibility Process', |
| | | responsiblepersonnel: 'Responsible personnel', |
| | | presponsiblepersonnel: 'Please enter the responsible personnel', |
| | | responsibleteam: 'Responsible team', |
| | | presponsibleteam: 'Please select the responsible team', |
| | | responsibleequipment: 'Responsible equipment', |
| | | presponsibleequipment: 'Please select the responsible device', |
| | | remark: 'notes', |
| | | premark: 'Please enter a note', |
| | | }, |
| | | film: { |
| | | mes: 'Original film storage details', |
| | | warehousing: 'store', |
| | | operate: 'Operate', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | outbound: 'Outbound', |
| | | deviceid: 'device ID', |
| | | slot: 'Grid number', |
| | | enablestatea: 'Enable tagging', |
| | | disable: 'Disable', |
| | | start: 'Enable', |
| | | startslot: 'Start workstation', |
| | | endslot: 'Target workstation', |
| | | slotid: 'Grid ID', |
| | | width: 'Width', |
| | | widtha: 'Width:', |
| | | inwidth: 'Please enter width', |
| | | height: 'Height', |
| | | inheight: 'Please enter height', |
| | | heighta: 'Height:', |
| | | thickness: 'Thickness', |
| | | inthickness: 'Please enter thickness', |
| | | thicknessa: 'Thickness:', |
| | | films: 'Films', |
| | | infilms: 'Please enter films', |
| | | filmsa: 'Films:', |
| | | createtime: 'Creation time', |
| | | remainquantity: 'Remaining Quantity', |
| | | thickremainquantity: 'Remaining quantity of original film (sheets):', |
| | | inquantity: 'Please enter the quantity', |
| | | quantitya: 'Number:', |
| | | enableid: 'Task ID', |
| | | originateslot: 'Starting grid', |
| | | patternquantity: 'Number', |
| | | enabletype: 'Task Type', |
| | | enablestate: 'Workstation status', |
| | | finish: 'Completed', |
| | | unfinish: 'Incomplete', |
| | | dedelete: 'Do you want to delete this content?', |
| | | dedisable: 'Do you want to disable this content?', |
| | | deoutbound: 'Whether to release the content of this item from the warehouse?', |
| | | selectwarehousing: 'Please select the lifting position', |
| | | inwarehousing: 'Lifting position:', |
| | | warehousing1: 'Lifting position 1', |
| | | warehousing2: 'Lifting position 2', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | taskstatus: 'Status', |
| | | built: 'newly built', |
| | | execution: 'In progress', |
| | | tasktype: 'Task Type', |
| | | stocke: 'store', |
| | | dispatch: 'dispatch', |
| | | inquire: 'query', |
| | | station: 'station', |
| | | }, |
| | | Mounting: { |
| | | previewproject: 'Select Preview Project', |
| | | loadinglinea: 'Upper film line', |
| | | loadingline: 'Upper film line:', |
| | | inloadingline: 'Please select the upper film line', |
| | | oneloadingline: 'Line 1 on film', |
| | | twoloadingline: 'Line 2 on film', |
| | | waiting: 'Waiting', |
| | | setparameters: 'Set parameters', |
| | | project: 'Project number', |
| | | projecta: 'Project number:', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | thickness: 'Thickness', |
| | | projectnumber: 'Project original piece number', |
| | | state: 'state', |
| | | createtime: 'Creation time', |
| | | all: 'Select All', |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | import { createI18n} from 'vue-i18n' |
| | | import {createI18n} from 'vue-i18n' |
| | | import zh from "./zh" |
| | | import py from "./py" |
| | | import en from "./en" |
| | | |
| | | let messages = { |
| | | zh:zh, |
| | | zh: zh, |
| | | py: py, |
| | | en: en |
| | | } |
| | | |
New file |
| | |
| | | export default { |
| | | "northglassMESsystem": 'Система "NorthGlass MES"', |
| | | login: { |
| | | userErr: 'Введите номер счета.', |
| | | pwErr: 'Введите пароль.', |
| | | user: 'Аккаунт', |
| | | password: 'Код', |
| | | login: 'Залогин', |
| | | loginSuccessful: 'Вход в систему выполнен успешно!', |
| | | register: 'Зарегистрирова', |
| | | namea: 'Имя не может быть пустым', |
| | | len: 'Длина не должна превышать 16', |
| | | passnull: 'Пароль не может быть пустым', |
| | | leng: 'Длина пароля не должна быть меньше 6 или больше 16.', |
| | | spwn: 'Пароль подтверждения не может быть пустым', |
| | | depass: 'Два разных пароля.', |
| | | }, |
| | | register: { |
| | | registerSuccessful: 'Регистрация успешно', |
| | | newuserregister: 'Новый реестр пользователей', |
| | | name: 'Имя:', |
| | | inputname: 'Введите имя', |
| | | password: 'Код:', |
| | | pwErr: 'Введите пароль.', |
| | | passwordation: 'Подтвердите пароль:', |
| | | pwErration: 'Пожалуйста, подтвертите пароль', |
| | | registration: 'Подтверждение о регистрации', |
| | | false: 'Отмена', |
| | | }, |
| | | main: { |
| | | connectErr: 'Необычное подключение к серверу, попробуйте позже', |
| | | titleFirst: "Добро пожаловать ", |
| | | titleLast: ' в систему NorthGlass MES!', |
| | | quit: "Выход", |
| | | }, |
| | | basicData: { |
| | | deletemessage: 'Удалить эту информацию или нет?', |
| | | laserprinting: 'Машина лазерной маркировки готова:', |
| | | cuttingmachine: 'Машина для резки готова:', |
| | | machine: 'Состояние станок загрузки в режиме онлайн:', |
| | | machineaa: 'Ручное состояние станок загрузки:', |
| | | selectproject: "Выберите проект", |
| | | startloading: 'Начало загрузки', |
| | | stop: 'Пауза', |
| | | yes: 'подтверд', |
| | | change: 'переключа', |
| | | projectnumber: 'Номер проекта', |
| | | glasswidth: 'Ширина стекла', |
| | | glassheight: 'Высота стекла', |
| | | coatingtypes: 'Типы покрытий', |
| | | coatingtypesa: 'Типы покрытий:', |
| | | quantity: 'Количество', |
| | | quantitya: 'Количество:', |
| | | thickness: 'Толщина', |
| | | thicknessa: 'Толщина:', |
| | | startstatus: 'Статус начала операции', |
| | | pass: 'Через', |
| | | waiting: 'Ждем.', |
| | | up: 'Загрузка', |
| | | finish: 'Завершено', |
| | | project: 'инженерия', |
| | | plselectproject: 'Пожалуйста, выберите проект.', |
| | | confirm: 'подтверд', |
| | | cancel: 'Отмена', |
| | | startfilm: 'Начинать или нет?', |
| | | whetherpause: 'Пауза или нет?', |
| | | station: 'Рабочее место', |
| | | width: 'Ширина', |
| | | widtha: 'Ширина:', |
| | | height: 'Высота', |
| | | heighta: 'Высота:', |
| | | operate: 'Операция', |
| | | add: 'Добавля', |
| | | delete: 'Удал', |
| | | addglass: 'Добавить стекло', |
| | | selectwidth: 'Выбирите ширину', |
| | | selectheight: 'Выбирите высоту', |
| | | selectcoatingtypes: 'Выберите типы покрытий', |
| | | selectthickness: 'Выберите толщину', |
| | | selectquantity: 'Введите кольчество.', |
| | | pause: 'Вторая и четвертая строки должны быть выше 2700 для сохранения!', |
| | | pausea: 'Пожалуйста, убедитесь, что маркировочная и режущая машины готовы!', |
| | | infonull: 'Номер проекта не может быть пустым!', |
| | | updatanull: 'Проект не сохранились на листе загрузки!', |
| | | glassnull: 'Ошибка при обновлении стекла', |
| | | }, |
| | | sorter: { |
| | | gridnumber: 'Ячеек сеткла', |
| | | glassnumber: 'Номер стакла', |
| | | width: 'Ширина', |
| | | height: 'Высота', |
| | | startstatus: 'Статус начала операции', |
| | | disable: 'Отключ', |
| | | start: 'Начало', |
| | | deficiencieste: 'Недостатки в отчетности', |
| | | operate: 'Операция', |
| | | prompt: 'Подсказк', |
| | | information: 'Следует ли сообщать недостающую информацию?', |
| | | yes: 'Да', |
| | | cancel: 'Отмена', |
| | | }, |
| | | order: { |
| | | dilapidation: 'Повреждение', |
| | | Takeaway: 'Взять вручную', |
| | | }, |
| | | |
| | | searchOrder: { |
| | | cageinformation: 'Информация буфера', |
| | | productionqueue: 'Производственная очередь', |
| | | outputglassID: 'Выходное стекло ID', |
| | | startposition: 'Занять позиции', |
| | | targetlocation: 'Позиция цели', |
| | | trips: '№ поезда', |
| | | number: 'Серийн номер', |
| | | taskstatus: 'Состояние задачи', |
| | | filmenter: 'Ожидание стеклянной вход', |
| | | infilm: 'В настоящее время', |
| | | endtask: 'Задача на конец', |
| | | completetask: 'Выполнение задания', |
| | | intoglassid: 'Входной стеклянный ID', |
| | | line: 'Линия', |
| | | Usage: 'Скорость использования', |
| | | free: 'Бесплатно (ячеек)', |
| | | addcage: 'Добавить информацию о буфере', |
| | | glassIDa: 'Стеклянный ID:', |
| | | glassID: 'Стеклянный ID', |
| | | inglassID: 'Введите стекло ID', |
| | | pieceingrid: 'Порядок расположения маленьких стеклянных пластин в клетке', |
| | | pieceingrida: 'Порядок расположения маленьких стеклянных пластин в клетке:', |
| | | inpieceingrid: 'Введите порядок расположения стеклянных листов в ячееке', |
| | | cardnumber: 'Номер карточки процесса', |
| | | cardnumbera: 'Номер карточки процесса:', |
| | | incardnumber: 'Введите номер процесса .', |
| | | typeglass: 'Тип стекла', |
| | | typeglassa: 'Тип стекла:', |
| | | intypeglass: 'Введите тип стекла', |
| | | coatingtypes: 'Типы покрытий', |
| | | width: 'Ширина', |
| | | widtha: 'Ширина:', |
| | | inwidth: 'Введите ширину', |
| | | height: 'Высота', |
| | | heighta: 'Высота:', |
| | | inheight: 'Введите высоту', |
| | | thickness: 'Толщина', |
| | | thicknessa: 'Толщина:', |
| | | inthickness: 'Введите толщину.', |
| | | layoutID: 'Чертеж ID загрузки печи для закалки', |
| | | layoutIDa: 'Чертеж ID загрузки печи для закалки:', |
| | | inlayoutID: 'Введите чертеж закалки ID', |
| | | picturesequence: 'Чертеж серийн номер загрузки печи для закалки', |
| | | picturesequencea: 'Чертеж серийн номер загрузки печи для закалки:', |
| | | inpicturesequence: 'Введите порядок чертежи закалки стекла.', |
| | | startstatus: 'Статус начала операции', |
| | | startstatusa: 'Статус начала операции:', |
| | | instartstatus: 'Введите состояние активации', |
| | | glassgaps: 'Стеклянный зазор', |
| | | glassgapsa: 'Стеклянный зазор:', |
| | | inglassgaps: 'Введите стекло зазор', |
| | | sure: 'подтверд', |
| | | cancel: 'Отмена', |
| | | operate: 'Операция', |
| | | breakage: 'Повреждение', |
| | | delete: 'Удал', |
| | | outfilm: 'Выпуск стекла', |
| | | cagetableID: 'ID буферной таблицы', |
| | | cagenumber: 'Буфер номера', |
| | | gridnumber: 'Ячеек сеткла', |
| | | enable: 'Начало', |
| | | disable: 'Отключ', |
| | | remainingwidth: 'Остаточная ширина', |
| | | add: 'Добавля', |
| | | sheetID: 'Закалка маленький стеклянный ID таблицы информации', |
| | | processcards: 'Карточка процесса', |
| | | processcardtype: 'Тип стекла карточки процесса', |
| | | acceptshorizontal: 'Умеренное принятие горизонтали', |
| | | xcoordinates: 'X-координаты', |
| | | ycoordinates: 'Y-координаты', |
| | | rotationangle: 'Угол вращения (против часовой стрелки)', |
| | | state: 'Состояние', |
| | | takeout: 'Взять', |
| | | deletemessage: 'Удалить эту информацию или нет?', |
| | | prompt: 'Подсказк', |
| | | yes: 'Да', |
| | | accept: 'Принять', |
| | | noaccept: 'Не принимать', |
| | | filmcomplete: 'Стекло готово', |
| | | waiting: 'Ждем.', |
| | | }, |
| | | workOrder: { |
| | | glassID: 'Стеклянный ID', |
| | | height: 'Высота', |
| | | width: 'Ширина', |
| | | thickness: 'Толщина', |
| | | coatingtypes: 'Типы покрытий', |
| | | productionsequence: 'Последовательность производства', |
| | | cardnumber: 'Номер карточки процесса', |
| | | operate: 'Операция', |
| | | messagedamaged: 'Повреждено ли сообщение?', |
| | | prompt: 'Подсказк', |
| | | yes: 'Да', |
| | | cancel: 'Отмена', |
| | | takemessage: 'Следует ли удалять сообщение?', |
| | | breakage: 'Повреждение', |
| | | takeout: 'Взять', |
| | | }, |
| | | processCard: { |
| | | intofurnace: 'В печь', |
| | | beforefurnace: 'До печки.', |
| | | outfurnace: 'Окончено стекло из печи для закалки', |
| | | }, |
| | | reportWork: { |
| | | lowerbit: 'Станция разгрузки', |
| | | shelfnumber: 'Номер стойки регистрации', |
| | | cardnumber: 'Номер карточки процесса', |
| | | totalquantity: 'Общее количество', |
| | | beendropped: 'Количество стекла разгрузки', |
| | | state: 'Состояние', |
| | | devicenumber: 'Номер оборудования.', |
| | | startstatus: 'Статус начала операции', |
| | | enable: 'Начало', |
| | | unenable: 'Не начат', |
| | | operate: 'Операция', |
| | | bindingshelves: 'Назначенная стеллажка', |
| | | clear: 'Чисто.', |
| | | workstation: 'Станция номер', |
| | | cardnumbera: 'Номер карточки процесса:', |
| | | incardnumber: 'Пожалуйста, выберите номер программы', |
| | | clearglass: 'Очистить стекло с полки', |
| | | sure: 'подтверд', |
| | | cancel: 'Отмена', |
| | | glassinformation: 'Информация стекла', |
| | | glassID: 'Стеклянный ID', |
| | | coatingtypes: 'Типы покрытий', |
| | | thickness: 'Толщина', |
| | | width: 'Ширина', |
| | | height: 'Высота', |
| | | }, |
| | | productStock: { |
| | | addusers: 'Добавьте пользователей.', |
| | | username: 'Имя пользователя.', |
| | | usernamea: 'Имя пользователя.:', |
| | | inusername: 'Введите имя пользователя', |
| | | role: 'Роль', |
| | | rolea: 'Роль:', |
| | | inrole: 'Выберите роль', |
| | | test: 'Тест', |
| | | admin: 'Администратор.', |
| | | operate: 'Операция', |
| | | resetpassword: 'Сбросить пароль', |
| | | exit: 'Редактор', |
| | | delete: 'Удал', |
| | | prompt: 'Подсказк', |
| | | repassword: 'Перезагрузка пользовательского пароля или нет?', |
| | | yes: 'Да', |
| | | cancel: 'Отмена', |
| | | reusername: 'Изменение пользователя', |
| | | addusername: 'Добавьте пользователей.', |
| | | password: 'Код:', |
| | | sure: 'подтверд', |
| | | inpassword: 'Введите пароль.', |
| | | deusername: 'Удаление пользователя или нет?', |
| | | }, |
| | | customer: { |
| | | addmenu: 'Добавьте меню.', |
| | | firstmenu: 'Таблица меню первой степени', |
| | | link: 'Ссылк', |
| | | linka: 'Ссылк:', |
| | | inlink: 'Введите ссылку', |
| | | sort: 'Сортировк', |
| | | sorta: 'Сортировк:', |
| | | insort: 'Введите сортировку', |
| | | operate: 'Операция', |
| | | exit: 'Редактор', |
| | | inmenu: 'Введите меню', |
| | | delete: 'Удал', |
| | | semenu: 'Таблица меню второй степени', |
| | | menu: 'Меню.:', |
| | | sure: 'подтверд', |
| | | cancel: 'Отмена', |
| | | exmene: 'Изменение меню.', |
| | | yes: 'Да', |
| | | demenu: 'Удалить меню или нет?', |
| | | prompt: 'Подсказк', |
| | | }, |
| | | delivery: { |
| | | addrole: 'Добавьте роли.', |
| | | editrole: 'Изменение роли.', |
| | | role: 'Роль', |
| | | rolea: 'Роль:', |
| | | inrole: 'Введите роли.', |
| | | operate: 'Операция', |
| | | edit: 'Редактор', |
| | | delete: 'Удал', |
| | | sure: 'подтверд', |
| | | cancel: 'Отмена', |
| | | yes: 'Да', |
| | | derole: 'Удалить персонаж или нет?', |
| | | prompt: 'Подсказк', |
| | | }, |
| | | } |
| | |
| | | import userInfo from '@/stores/userInfo' |
| | | import request from '@/utils/request' |
| | | import {ElMessage} from 'element-plus' |
| | | import {ref, watch, onMounted } from 'vue' |
| | | import deepClone from '@/utils/deepClone' |
| | | import { useRouter } from 'vue-router'; |
| | | import { useI18n } from 'vue-i18n' |
| | | const { t } = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | import {ref, watch} from 'vue' |
| | | import {useRouter} from 'vue-router'; |
| | | import {useI18n} from 'vue-i18n' |
| | | |
| | | const {t} = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | const store = userInfo() |
| | | const isCollapse = ref(false); |
| | | const isCollapse = ref(false); |
| | | // const { $i18n } = useI18n(); // 获取 i18n 实例 |
| | | const router = useRouter() |
| | | const userStore = useUserInfoStore() |
| | |
| | | // let userInfo = userInfoStr.user.token; |
| | | let token = userInfo; // 提取 token |
| | | // 退出登录方法 |
| | | function quit() { |
| | | function quit() { |
| | | // localStorage.removeItem('token'); |
| | | store.$patch({ |
| | | user: null, |
| | | }) |
| | | router.push('/login') |
| | | user: null, |
| | | }) |
| | | router.push('/login') |
| | | } |
| | | // const quit = async () => { |
| | | // try { |
| | | // store.$patch({user: null}) |
| | | // const response = await request.post('/loadGlass/sys/user/logout') |
| | | // if (response.code === 200) { |
| | | // console.log('登出成功'); |
| | | // } else { |
| | | // // 处理错误情况 |
| | | // console.error('登出失败', response); |
| | | // } |
| | | // } |
| | | // catch (error) { |
| | | // // 处理错误 |
| | | // console.error(error); |
| | | // } |
| | | // } |
| | | // store.createWebSocket(); |
| | | // function quit() { |
| | | // userStore.$patch({ |
| | | // user: null, |
| | | // }) |
| | | // // router.push('/login') |
| | | // request.get("/loadGlass/sys/user/login").then((res) => { |
| | | // if (res.code === 200) { |
| | | // ElMessage.success(res.msg); |
| | | // console.log(res.data); |
| | | // } else { |
| | | // ElMessage.warning(res.msg); |
| | | // // router.push("/login"); |
| | | // } |
| | | // }); |
| | | // } |
| | | |
| | | |
| | | function replaceChineseWithEnglish(menuData) { |
| | | // 定义中英文对照关系对象 |
| | | const translation = { |
| | | '上片机': 'Стол загрузки', |
| | | '掰片/识别': 'Разлом/идентификация', |
| | | '卧式缓存': ' Горизонтальный буфер', |
| | | '磨边前卧式缓存': 'Горизонтальный буфер перед шлифовкой', |
| | | '下片卧式缓存': 'Горизонтальный буфер стекла разгрузки', |
| | | '磨边(冷加工)': 'Шлифовать края (холодная обработка)', |
| | | '1线磨边(冷加工)': 'Шлифовать края 1 линии (холодная обработка)', |
| | | '2线磨边(冷加工)': 'Шлифовать края 2 линии (холодная обработка)', |
| | | '大理片笼': 'Буферная система', |
| | | '钢化': 'Закалка', |
| | | '钢化前': 'Перед закалки', |
| | | '钢化后': 'После закалки', |
| | | '下片台': 'Стол разгрузки', |
| | | '系统管理': 'Управление системой', |
| | | '用户管理': 'Управление пользователем', |
| | | '权限管理': 'Управление полномочиями', |
| | | '角色管理': 'Управление ролью', |
| | | }; |
| | | menuData.forEach(menu => { |
| | | menu.menuName = translation[menu.menuName] || menu.menuName; |
| | | function replaceChineseWithEnglish(menuData) { |
| | | // 定义中俄文对照关系对象 |
| | | const translation = { |
| | | '上片机': 'Стол загрузки', |
| | | '上片': 'Верхняя часть', |
| | | '掰片/识别': 'Разлом/идентификация', |
| | | '卧式缓存': ' Горизонтальный буфер', |
| | | '磨边前卧式缓存': 'Горизонтальный буфер перед шлифовкой', |
| | | '下片卧式缓存': 'Горизонтальный буфер стекла разгрузки', |
| | | '磨边(冷加工)': 'Шлифовать края (холодная обработка)', |
| | | '1线磨边(冷加工)': 'Шлифовать края 1 линии (холодная обработка)', |
| | | '2线磨边(冷加工)': 'Шлифовать края 2 линии (холодная обработка)', |
| | | '大理片笼': 'Буферная система', |
| | | '钢化': 'Закалка', |
| | | '钢化前': 'Перед закалки', |
| | | '钢化后': 'После закалки', |
| | | '下片台': 'Стол разгрузки', |
| | | '系统管理': 'Управление системой', |
| | | '用户管理': 'Управление пользователем', |
| | | '权限管理': 'Управление полномочиями', |
| | | '角色管理': 'Управление ролью', |
| | | '可视化系统': 'Визуальная система', |
| | | '报工管理': 'Управление отчетностью', |
| | | '仓储中心': 'Складской центр', |
| | | '原片仓储': 'Склад сырья', |
| | | }; |
| | | menuData.forEach(menu => { |
| | | menu.menuName = translation[menu.menuName] || menu.menuName; |
| | | // if (menu.children) { |
| | | menu.children && menu.children.forEach(submenu => { |
| | | submenu.menuName = translation[submenu.menuName] || submenu.menuName; |
| | | }); |
| | | menu.children && menu.children.forEach(submenu => { |
| | | submenu.menuName = translation[submenu.menuName] || submenu.menuName; |
| | | }); |
| | | // } |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | function replaceChineseWithRussian(menuData) { |
| | | // 定义中英文对照关系对象 |
| | | const translation = { |
| | | '上片机': 'Loading Machine', |
| | | '上片': 'Start showing a movie', |
| | | '掰片/识别': 'Breaking /Identification', |
| | | '卧式缓存': 'Horizontal cache', |
| | | '磨边前卧式缓存': 'Horizontal buffer before edge grinding', |
| | | '下片卧式缓存': 'Offline horizontal cache', |
| | | '磨边(冷加工)': 'Grinding edge (cold processing)', |
| | | '1线磨边(冷加工)': '1-line edge grinding (cold processing)', |
| | | '2线磨边(冷加工)': '2-line edge grinding (cold processing)', |
| | | '大理片笼': 'Dali slice cage', |
| | | '钢化': 'Toughened', |
| | | '钢化前': 'Before Tempering', |
| | | '钢化后': 'After Tempering', |
| | | '下片台': 'Next Stage', |
| | | '系统管理': 'System Management', |
| | | '用户管理': 'User Management', |
| | | '权限管理': 'Rights Management', |
| | | '角色管理': 'Roles', |
| | | '可视化系统': 'visualization system', |
| | | '报工管理': 'Job reporting management', |
| | | '仓储中心': 'Storage Center', |
| | | '原片仓储': 'Original film storage', |
| | | }; |
| | | menuData.forEach(menu => { |
| | | menu.menuName = translation[menu.menuName] || menu.menuName; |
| | | // if (menu.children) { |
| | | menu.children && menu.children.forEach(submenu => { |
| | | submenu.menuName = translation[submenu.menuName] || submenu.menuName; |
| | | }); |
| | | // } |
| | | }); |
| | | } |
| | | //提取菜单模块列表 |
| | | let menuList = $ref([]) |
| | | |
| | | // onMounted(async () => { |
| | | // try { |
| | | // const res = await request.get('/loadGlass/sys/menu/getMenuTree'); // 假设 request.get 返回 Promise |
| | | // if (res.code == 200) { |
| | | // // 使用 value 属性来修改 ref 引用的值 |
| | | // menuList.value = deepClone(res.data); |
| | | // const language = $i18n.locale; |
| | | // if (language === 'en') { |
| | | // replaceChineseWithEnglish(menuList.value); // 传入 ref 的 value |
| | | // } |
| | | // console.log(res.data.token); // 如果 res.data 中有 token 的话 |
| | | // } else { |
| | | // ElMessage.warning(res.msg); |
| | | // router.push('/login'); |
| | | // } |
| | | // } catch (error) { |
| | | // // 处理请求错误 |
| | | // console.error('获取菜单列表时出错:', error); |
| | | // } |
| | | // }); |
| | | request.get('/loadGlass/sys/menu/getMenuTree').then((res) => { |
| | | if (res.code == 200) { |
| | | menuList = res.data |
| | | console.log(language.value) |
| | | if (language.value === 'en') { |
| | | |
| | | replaceChineseWithEnglish(menuList); |
| | | } |
| | | // translateMenu(menuList.value, language.value); |
| | | if (language.value === 'en') { |
| | | replaceChineseWithRussian(menuList); |
| | | } |
| | | if (language.value === 'py') { |
| | | replaceChineseWithEnglish(menuList); |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push('/login') |
| | |
| | | <el-header> |
| | | <div style="height: 100%;width: 100%;display: flex;background-color: #fff;"> |
| | | <img src="../assets/northGlass.ico" |
| | | alt="" |
| | | alt="" @click="toggleCollapse" |
| | | style="max-width: 100%;max-height: 100%"> |
| | | <h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3> |
| | | <span style="height: 70%;width: 78vw;margin-top: 1rem;"> |
| | |
| | | <SwitchButton size=""/>{{ $t('main.quit') }} |
| | | </el-icon> |
| | | </el-button> |
| | | <div class="header-left"> |
| | | <!-- <div class="header-left"> |
| | | <el-button @click="toggleCollapse" style="height: 30px;"> |
| | | <el-icon><Expand /></el-icon> |
| | | </el-button> |
| | | </div> |
| | | </div> --> |
| | | </span> |
| | | </div> |
| | | </el-header> |
| | |
| | | import {ElMessage} from 'element-plus' |
| | | import request from '@/utils/request' |
| | | import userInfo from '@/stores/userInfo' |
| | | import { useI18n } from 'vue-i18n' |
| | | import {useI18n} from 'vue-i18n' |
| | | |
| | | const store = userInfo() |
| | | let ruleFormRef = ref<FormInstance>() |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | const { t } = useI18n() |
| | | const {t} = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | const changeLanguage = () =>{ |
| | | localStorage.setItem('lang',language.value) |
| | | const changeLanguage = () => { |
| | | localStorage.setItem('lang', language.value) |
| | | location.reload() |
| | | } |
| | | const userForm = reactive({ |
| | |
| | | v-model="language" |
| | | placeholder=" " |
| | | style="float: right;width: 9rem"> |
| | | <el-option value="zh" label="中文" /> |
| | | <el-option value="en" label="Русский язык" /> |
| | | <el-option value="zh" label="中文"/> |
| | | <el-option value="py" label="Русский язык"/> |
| | | <el-option value="en" label="English"/> |
| | | </el-select> |
| | | <el-form @submit.native.prevent |
| | | ref="ruleFormRef" |