This commit is contained in:
2025-06-27 18:16:47 +08:00
parent 322144359f
commit 8defc28022
7 changed files with 81 additions and 361 deletions

View File

@@ -1,168 +1,28 @@
module.exports = { module.exports = {
login: { index: 'Index',
passwordlogin: 'Login', Administratorauthentication: 'Administrator authentication',
configuration: 'Configuration', Notloggedinyet: 'Not logged in yet',
password: 'Password', Logout: 'Log out',
domainnameaddress: 'Domain Address', Login: 'Log in',
refreshtime: 'Refresh Time(s)', Configuration: 'Configuration',
login: 'Login', Languageselection: 'Language selection',
toast1: 'Please enter one user name', Parameterconfiguration: 'Parameter configuration',
toast2: 'Please enter password' Cancel: 'Cancel',
}, Save: 'Save',
homeinfo: { Administratorpassword: 'Administrator password',
topinfo: 'Device Information', Pleasepassword: 'Please enter the administrator password',
deviceinfo: 'Device Information', Language: 'Language',
task: 'Current Task', Pleaseselect: 'Please select',
status: 'Task Status', SchedulingIP: 'Scheduling IP',
tasknum: 'Number Of Tasks', PleaseIP: 'Please enter the scheduling IP',
speed: 'Current Speed', PleaseWIFI: 'Please enter the WIFI',
error: 'AGV Fault', Passwordnotempty: 'WIFI cannot be empty.',
index: 'Index' Schedulingnotempty: 'Scheduling IP cannot be empty.',
}, WIFInotempty: 'WIFI cannot be empty.',
carrypoint: { Name: 'Name',
topinfo: 'Carry Point', Category: 'Category',
dialoginfo: 'Confirm Position', Description: 'Description',
dialogtip: 'If Select Return Site', Empty: 'Empty',
returnsite: 'Return Site', SendTask: 'Send Task',
pointcode: 'Point Code', HistoricalTasks: 'Historical Tasks'
returnsitecode: 'Return Code',
button1: 'Auto Pickup',
button2: 'Auto Release',
button3: 'Input Target Position',
button4: 'Set Target Position',
button5: 'Task Distribution'
},
tasklists: {
topinfo: 'Task Management',
select: 'Select',
ordernumber: 'S/N',
tasknumber: 'Task Number',
targetpoint: 'Target Point',
tasktype: 'Task Type',
taskstatus: 'Task Status',
createTime: 'Create Time',
button1: 'Move Up',
button2: 'Move Down',
button3: 'Task Cancel',
button4: 'Task Submit'
},
errorinfo: {
topinfo: 'Error Info',
ordernumber: 'S/N',
errorname: 'Error Name',
errortype: 'Error Type',
errorcontent: 'Error Content',
solution: 'Solution'
},
user: {
usermanagement: 'User Management',
fullname: 'Full Name',
phone: 'Phone',
gender: 'Gender',
creationdate: 'Creation Date',
adduser: 'Add User',
question1: 'Are you sure you want to reset your password?',
question2: 'Are you sure you want to delete this user?',
toast1: 'The username cannot be empty',
toast2: 'Password cannot be empty'
},
role: {
rolemanagement: 'Role Management',
rolename: 'Role Name',
role: 'Role',
describe: 'Describe',
creationdate: 'Creation Date',
addrole: 'Add Role',
toast1: 'Role name cannot be empty'
},
system: {
systemmanagement: 'System Management',
code: 'Code',
value: 'Value',
addparameter: 'Add Parameter',
question1: 'Are you sure to delete it?',
toast1: 'Encoding cannot be empty',
toast2: 'Name cannot be empty',
toast3: 'Value cannot be empty'
},
remote: {
remotesupport: 'Remote support',
remote: ' Remote ',
download: ' Download'
},
developer: {
developeroptions: 'Developer Options'
},
vehiclestatus: {
vehiclestatus: 'Vehicle Status',
status: 'Status',
xcoordinate: 'X coordinate',
ycoordinate: 'Y coordinate',
headingangle: 'Heading Angle',
steeringwheelangle: 'Steering Wheel Angle',
distributionspeed: 'Throttle Command',
actualspeed: 'Actual Speed',
lateraldeviation: 'Lateral Deviation',
coursedeviation: 'Vertical Deviation',
workingstatus: 'Working Status',
sensorstatus: 'Sensor Status',
emergencystop: 'Emergency Stop',
obstacleavoidancedeceleration: 'Obstacle Avoidance Deceleration',
resetbutton: 'Reset Button',
obstacleavoidanceparking: 'Obstacle Avoidance Parking',
safetyedgesensor: 'Safety Edge Sensor',
sensorinducedparking: 'Sensor Induced Parking',
run: 'Run',
abnormal: 'Abnormal'
},
vehiclecontrol: {
vehiclecontrol: 'Vehicle Control',
status: 'Status',
control: ' Control',
deviationstate: 'Deviation State',
updatestatus: 'Update Status',
displaycontrol: 'Display Control',
initializecoordinates: 'Initialize Coordinates',
coordinateinformation: 'Coordinate Information',
skipthestart: 'Skip The Start',
initializecoordinate: 'Initialize Coordinate',
fullscreen: 'Full Screen',
exitfullscreen: 'Exit Full Screen',
quit: 'Quit',
poweroff: 'Power Off',
softwarerestart: 'Software Restart',
restart: 'Restart',
skipdetection: 'Skip Detection',
toast1: 'Please select coordinates',
toast2: 'RC control and Joy control cannot be turned on simultaneously'
},
button: {
cancel: 'Cancel',
ok: 'OK',
save: 'Save',
modify: 'Modify',
delete: 'Delete',
exit: 'Exit',
resetpassword: 'Reset Password'
},
common: {
name: 'Name',
username: 'User Name',
number: 'S/N',
operate: 'Operate',
remark: 'Remark',
changepassword: 'Change Password',
exit: 'Exit',
oldpassword: 'Old Password',
newpassword: 'New Password',
operationfailed: 'Operation failed',
loading: 'Loading',
pleaseselect: 'Please select',
toast1: 'Old password cannot be empty',
toast2: 'The new password cannot be empty',
toast3: 'Enter a new password',
toast4: 'The new password input is inconsistent, please re-enter it',
toast5: 'Are you sure to shut down?',
warning: 'Warning'
}
} }

View File

@@ -1,168 +1,28 @@
module.exports = { module.exports = {
login: { index: '主页',
passwordlogin: '密码登录', Administratorauthentication: '管理员认证',
configuration: '配置', Notloggedinyet: '暂未登录',
password: '密码', Logout: '退出账户',
domainnameaddress: '域名地址', Login: '登录',
refreshtime: '刷新时间(秒)', Configuration: '配置',
login: '登录', Languageselection: '语言选择',
toast1: '请输入用户名', Parameterconfiguration: '参数配置',
toast2: '请输入密码' Cancel: '取消',
}, Save: '保存',
homeinfo: { Administratorpassword: '管理员密码',
topinfo: '设备信息', Pleasepassword: '请输入管理员密码',
deviceinfo: '设 备 信 息', Language: '语言',
task: '当 前 任 务', Pleaseselect: '请选择',
status: '任 务 状 态', SchedulingIP: '调度IP',
tasknum: '任 务 数 量', PleaseIP: '请输入调度IP',
speed: '当 前 速 度', PleaseWIFI: '请输入WIFI',
error: 'AGV 故 障', Passwordnotempty: '密码不能为空',
index: '主页' Schedulingnotempty: '调度IP不能为空',
}, WIFInotempty: 'WIFI不能为空',
carrypoint: { Name: '名称',
topinfo: '搬运起点', Category: '类别',
dialoginfo: '确定点位', Description: '说明',
dialogtip: '是否选择返回点', Empty: '清空',
returnsite: '返回点', SendTask: '发送任务',
pointcode: '点位编码', HistoricalTasks: '历史任务'
returnsitecode: '返回编码',
button1: '自动取货',
button2: '自动放货',
button3: '输入点位',
button4: '定位目标站点',
button5: '任务下发'
},
tasklists: {
topinfo: '任务管理',
select: '选中',
ordernumber: '序号',
tasknumber: '任务号',
targetpoint: '目标站点',
tasktype: '任务类型',
taskstatus: '任务状态',
createTime: '生成时间',
button1: '任务上移',
button2: '任务下移',
button3: '任务取消',
button4: '任务提交'
},
errorinfo: {
topinfo: '故障信息',
ordernumber: '序号',
errorname: '故障名称',
errortype: '故障类别',
errorcontent: '故障内容',
solution: '处理办法'
},
user: {
usermanagement: '用户管理',
fullname: '姓名',
phone: '电话',
gender: '性别',
creationdate: '创建日期',
adduser: '添加用户',
question1: '确定重置密码吗?',
question2: '确定删除该用户吗?',
toast1: '用户名不能为空',
toast2: '密码不能为空'
},
role: {
rolemanagement: '角色管理',
rolename: '角色名',
role: '角色',
describe: '描述',
creationdate: '创建日期',
addrole: '新增角色',
toast1: '角色名称不能为空'
},
system: {
systemmanagement: '系统管理',
code: '编码',
value: '值',
addparameter: '添加参数',
question1: '确定删除吗?',
toast1: '编码不能为空',
toast2: '名字不能为空',
toast3: '数值不能为空'
},
remote: {
remotesupport: '远程支持',
remote: '远程',
download: '下载'
},
developer: {
developeroptions: '开发者选项'
},
vehiclestatus: {
vehiclestatus: '车辆状态',
status: '状态',
xcoordinate: 'X 坐标',
ycoordinate: 'Y 坐标',
headingangle: '航向角',
steeringwheelangle: '舵轮角度',
distributionspeed: '下发速度指令',
actualspeed: '实际速度',
lateraldeviation: '横向偏差',
coursedeviation: '航向偏差',
workingstatus: '工作状态',
sensorstatus: '传感器状态',
emergencystop: '急停按钮',
obstacleavoidancedeceleration: '避障减速',
resetbutton: '复位按钮',
obstacleavoidanceparking: '避障停车',
safetyedgesensor: '安全触边',
sensorinducedparking: '传感器停车',
run: '运行',
abnormal: '异常'
},
vehiclecontrol: {
vehiclecontrol: '车辆控制',
status: '状态',
control: '控制',
deviationstate: '偏离状态',
updatestatus: '更新状态',
displaycontrol: '显示屏控制',
initializecoordinates: '初始化坐标',
coordinateinformation: '坐标信息',
skipthestart: '跳过起点',
initializecoordinate: '初始化坐标',
fullscreen: '全屏',
exitfullscreen: '退出全屏',
quit: '退出',
poweroff: '关机',
softwarerestart: '软启动',
restart: '重启',
skipdetection: '跳过检测',
toast1: '请选择坐标',
toast2: 'RC控制与Joy控制不能同时开启'
},
button: {
cancel: '取消',
ok: '确定',
save: '保存',
modify: '修改',
delete: '删除',
exit: '退出',
resetpassword: '重置密码'
},
common: {
name: '名称',
username: '用户名',
number: '序号',
operate: '操作',
remark: '备注',
changepassword: '修改密码',
exit: '退出',
oldpassword: '旧的密码',
newpassword: '新的密码',
operationfailed: '操作失败',
loading: '加载中',
pleaseselect: '请选择',
toast1: '旧密码不能为空',
toast2: '新密码不能为空',
toast3: '输入新密码',
toast4: '新密码输入不一致,请重新输入',
toast5: '是否确定关机?',
warning: '提示'
}
} }

View File

@@ -12,19 +12,19 @@
<el-col class="pp_item" v-for="(e, i) in newData" :key="e.point_code"> <el-col class="pp_item" v-for="(e, i) in newData" :key="e.point_code">
<el-row type="flex"> <el-row type="flex">
<div class="point_item point_checked point_item_s"><div class="point_item_i"><p>{{ e.point_code }}</p></div></div> <div class="point_item point_checked point_item_s"><div class="point_item_i"><p>{{ e.point_code }}</p></div></div>
<i v-if="i < newData.length - 1" class="el-icon-caret-right icon-caret-right"></i> <i class="el-icon-caret-right icon-caret-right" :style="i === newData.length - 1 ? 'visibility: hidden' : ''"></i>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<button class="button_control button_control_disabled" style="margin-bottom: .08rem" @click="newData = []"><p>清空</p></button> <button class="button_control button_control_disabled" style="margin-bottom: .08rem" @click="newData = []"><p>{{$t('Empty')}}</p></button>
<button class="button_control"><p>发送任务</p></button> <button class="button_control"><p :style="$i18n.locale === 'en-us' ? 'font-size: 0.19rem;' : 'font-size: 0.22rem;'">{{$t('SendTask')}}</p></button>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="4" class="r_box_w"> <el-col :span="4" class="r_box_w">
<div class="tip">历史任务</div> <div class="tip" :style="$i18n.locale === 'en-us' ? 'font-size: 0.15rem;' : 'font-size: 0.16rem;'">{{$t('HistoricalTasks')}}</div>
<div class="ls_w"> <div class="ls_w">
<div class="ls_item"> <div class="ls_item">
<span v-for="(e, i) in historyData" :key="e.point_code"> <span v-for="(e, i) in historyData" :key="e.point_code">

View File

@@ -5,17 +5,17 @@
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="date"
label="名称" :label="$t('Name')"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
label="类别" :label="$t('Category')"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="说明"> :label="$t('Description')">
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>

View File

@@ -1,13 +1,13 @@
<template> <template>
<el-dialog <el-dialog
title="配置" :title="$t('Configuration')"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="50%" width="50%"
:before-close="handleClose"> :before-close="handleClose">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" label-width="1.1rem" size="mini"> <el-form :model="dataForm" ref="dataForm" :rules="dataRule" :label-width="$i18n.locale === 'en-us' ? '1.3rem' : '1.1rem'" size="mini">
<p class="tip">语言选择</p> <p class="tip">{{$t('Languageselection')}}</p>
<el-form-item label="语言" prop="selectedLanguage"> <el-form-item :label="$t('Language')" prop="selectedLanguage">
<el-select v-model="dataForm.selectedLanguage" placeholder="请选择" style="width: 100%;"> <el-select v-model="dataForm.selectedLanguage" :placeholder="$t('Pleaseselect')" style="width: 100%;">
<el-option <el-option
v-for="item in languages" v-for="item in languages"
:key="item.value" :key="item.value"
@@ -16,17 +16,17 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<p class="tip">参数配置</p> <p class="tip">{{$t('Parameterconfiguration')}}</p>
<el-form-item label="调度IP" prop="ip"> <el-form-item :label="$t('SchedulingIP')" prop="ip">
<el-input placeholder="请输入调度IP" v-model="dataForm.ip" @focus="show" data-layout="normal"></el-input> <el-input :placeholder="$t('PleaseIP')" v-model="dataForm.ip" @focus="show" data-layout="normal"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="WIFI" prop="wifi"> <el-form-item label="WIFI" prop="wifi">
<el-input placeholder="请输入WIFI" v-model="dataForm.wifi" @focus="show" data-layout="normal"></el-input> <el-input :placeholder="$t('PleaseWIFI')" v-model="dataForm.wifi" @focus="show" data-layout="normal"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row type="flex" justify="space-around" style="margin-top: .3rem"> <el-row type="flex" justify="space-around" style="margin-top: .3rem">
<el-col :span="7"><button class="button_control button_control_disabled" @click="exitUser"><p>取消</p></button></el-col> <el-col :span="7"><button class="button_control button_control_disabled" @click="exitUser"><p>{{$t('Cancel')}}</p></button></el-col>
<el-col :span="7"><button class="button_control" @click="dataFormSubmit"><p>保存</p></button></el-col> <el-col :span="7"><button class="button_control" @click="dataFormSubmit"><p>{{$t('Save')}}</p></button></el-col>
</el-row> </el-row>
<vue-touch-keyboard id="keyboard" :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" :next="next" /> <vue-touch-keyboard id="keyboard" :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" :next="next" />
</el-dialog> </el-dialog>
@@ -44,10 +44,10 @@ export default {
}, },
dataRule: { dataRule: {
ip: [ ip: [
{ required: true, message: '调度IP不能为空', trigger: 'blur' } { required: true, message: this.$t('Schedulingnotempty'), trigger: 'blur' }
], ],
wifi: [ wifi: [
{ required: true, message: 'WIFI不能为空', trigger: 'blur' } { required: true, message: this.$t('WIFInotempty'), trigger: 'blur' }
] ]
}, },
languages: [ languages: [

View File

@@ -2,7 +2,7 @@
<div class="zbox body-container" :class="{'enClass': $i18n.locale === 'en-us'}"> <div class="zbox body-container" :class="{'enClass': $i18n.locale === 'en-us'}">
<el-row type="flex" class="header-container" justify="space-between" align="middle"> <el-row type="flex" class="header-container" justify="space-between" align="middle">
<el-col :span="3"> <el-col :span="3">
<el-button type="primary" icon="el-icon-s-home" class="button-home" @click="$router.push('/index/home')">{{ $t('homeinfo.index') }}</el-button> <el-button type="primary" icon="el-icon-s-home" class="button-home" @click="$router.push('/index/home')">{{ $t('index') }}</el-button>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-row type="flex" justify="end" align="middle"> <el-row type="flex" justify="end" align="middle">

View File

@@ -1,18 +1,18 @@
<template> <template>
<el-dialog <el-dialog
title="管理员认证" :title="$t('Administratorauthentication')"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="50%" width="50%"
:before-close="handleClose"> :before-close="handleClose">
<p class="tip">暂未登录</p> <p class="tip">{{$t('Notloggedinyet')}}</p>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" label-width="1.1rem" size="mini"> <el-form :model="dataForm" ref="dataForm" :rules="dataRule" :label-width="$i18n.locale === 'en-us' ? '' : '1.1rem'" size="mini">
<el-form-item label="管理员密码" prop="password"> <el-form-item :label="$t('Administratorpassword')" prop="password">
<el-input placeholder="请输入管理员密码" v-model="dataForm.password" show-password @focus="show" data-layout="normal"></el-input> <el-input :placeholder="$t('Pleasepassword')" v-model="dataForm.password" show-password @focus="show" data-layout="normal"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row type="flex" justify="space-around" style="margin-top: .3rem"> <el-row type="flex" justify="space-around" style="margin-top: .3rem">
<el-col :span="7"><button class="button_control button_control_disabled" @click="exitUser"><p>退出账户</p></button></el-col> <el-col :span="7"><button class="button_control button_control_disabled" @click="exitUser"><p>{{ $t('Logout') }}</p></button></el-col>
<el-col :span="7"><button class="button_control" @click="dataFormSubmit"><p>登录</p></button></el-col> <el-col :span="7"><button class="button_control" @click="dataFormSubmit"><p>{{$t('Login')}}</p></button></el-col>
</el-row> </el-row>
<vue-touch-keyboard id="keyboard" :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" :next="next" /> <vue-touch-keyboard id="keyboard" :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" :next="next" />
</el-dialog> </el-dialog>
@@ -28,7 +28,7 @@ export default {
}, },
dataRule: { dataRule: {
password: [ password: [
{ required: true, message: '密码不能为空', trigger: 'blur' } { required: true, message: this.$t('Passwordnotempty'), trigger: 'blur' }
] ]
}, },
visible: false, visible: false,