Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3fbf43870 | ||
|
|
0acbe3b9d1 | ||
|
|
5627b466bf | ||
|
|
bc09fd7b6e | ||
|
|
34a9cadc02 | ||
|
|
1eeca994ab | ||
|
|
1ed30f7ebe | ||
|
|
714dd6de29 |
@ -109,7 +109,7 @@
|
|||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"pre-commit": "lint-staged"
|
"pre-commit": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
@ -188,3 +188,36 @@ export function getNetLang(query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取网络抓包信息
|
||||||
|
export function getPacketCaptureInfo(data) {
|
||||||
|
return request({
|
||||||
|
url: '/pcap/status',
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 开始抓包
|
||||||
|
export function startPacketCapture(data) {
|
||||||
|
return request({
|
||||||
|
url: '/pcap/start',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 停止抓包
|
||||||
|
export function stopPacketCapture(data) {
|
||||||
|
return request({
|
||||||
|
url: '/pcap/stop',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除抓包文件
|
||||||
|
export function deletePacketCapture(data) {
|
||||||
|
return request({
|
||||||
|
url: '/pcap/delete',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<el-breadcrumb class="app-breadcrumb" separator="/">
|
<el-breadcrumb class="app-breadcrumb" separator="/">
|
||||||
<transition-group name="breadcrumb">
|
<transition-group name="breadcrumb">
|
||||||
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
||||||
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">
|
<span v-if="item.redirect==='noRedirect'||index === levelList.length - 1" class="no-redirect">
|
||||||
{{ generateTitle(item.meta.title) }}
|
{{ generateTitle(item.meta.title) }}
|
||||||
</span>
|
</span>
|
||||||
<a v-else @click.prevent="handleLink(item)">{{ generateTitle(item.meta.title) }}</a>
|
<a v-else @click.prevent="handleLink(item)">{{ generateTitle(item.meta.title) }}</a>
|
||||||
|
|||||||
160
src/lang/en.js
160
src/lang/en.js
@ -10,7 +10,7 @@ export default {
|
|||||||
firmwareUpdate: 'Firmware Update',
|
firmwareUpdate: 'Firmware Update',
|
||||||
factorySetting: 'System Management',
|
factorySetting: 'System Management',
|
||||||
profile: 'Profile',
|
profile: 'Profile',
|
||||||
urlTitle: 'Network Broadcast Terminal',
|
urlTitle: 'IP Speaker',
|
||||||
operationLog: 'Operation Log'
|
operationLog: 'Operation Log'
|
||||||
},
|
},
|
||||||
navbar: {
|
navbar: {
|
||||||
@ -25,46 +25,47 @@ export default {
|
|||||||
logIn: 'Login',
|
logIn: 'Login',
|
||||||
register: 'Register',
|
register: 'Register',
|
||||||
logCancel: 'Cancel',
|
logCancel: 'Cancel',
|
||||||
username: 'UserName',
|
username: 'Username',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
any: 'any',
|
any: 'any',
|
||||||
thirdparty: 'Or connect with',
|
thirdparty: 'Or connect with',
|
||||||
thirdpartyTips:
|
thirdpartyTips:
|
||||||
'Can not be simulated on local, so please combine you own business simulation! ! !',
|
'Can not be simulated on local, so please combine you own business simulation!',
|
||||||
confirmLogout: 'Confirm Logout',
|
confirmLogout: 'Are you sure you want to log out?',
|
||||||
loggedOut:
|
loggedOut:
|
||||||
'You have been logged out, you can cancel to stay on this page or log in again!',
|
'You have been logged out, you can cancel to stay on this page or log in again!',
|
||||||
toLogin: 'To Login',
|
toLogin: 'To Login',
|
||||||
changePassword: 'Change Password',
|
changePassword: 'Edit Password',
|
||||||
changePasswordTip:
|
changePasswordTip:
|
||||||
'Detected that the password is too weak or has expired. Please modify the password before logging in',
|
'Your password is too weak or has expired. Please change your password and log in again.',
|
||||||
changePasswordMsg:
|
changePasswordMsg:
|
||||||
'Password expired, please modify the password before logging in!',
|
'Your password has expired. Please change your password and log in again.',
|
||||||
upDateMsg: 'Firmware is being upgraded, please wait for a while。'
|
upDateMsg: 'Firmware is being updated, please wait for a while.'
|
||||||
},
|
},
|
||||||
table: {
|
table: {
|
||||||
productName: 'Product Name',
|
productName: 'Device Name',
|
||||||
productMode: 'Product Model',
|
productMode: 'Device Model',
|
||||||
serialNumber: 'Serial Number',
|
serialNumber: 'Serial Number',
|
||||||
firmwareVercion: 'Firmware Version',
|
firmwareVercion: 'Firmware Version',
|
||||||
deviceID: 'Terminal ID',
|
deviceID: 'Device ID',
|
||||||
deviceIP: 'Terminal IP',
|
deviceIP: 'IP Address',
|
||||||
gatewal: 'Gateway',
|
gatewal: 'Default Gateway',
|
||||||
suonetMask: 'Subnet Mask',
|
suonetMask: 'Subnet Mask',
|
||||||
storageSpaces: 'Storage Spaces',
|
storageSpaces: 'Storage Capacity',
|
||||||
serverIP: 'Server IP',
|
serverIP: 'Server IP',
|
||||||
corverCommandDort: 'Server Command Port',
|
corverCommandDort: 'Server Port',
|
||||||
deviceCommandPort: 'Terminal Command Port',
|
deviceCommandPort: 'Command Port',
|
||||||
deviceStreamPort: 'Terminal Code Stream Port',
|
deviceStreamPort: 'Stream Port',
|
||||||
macAddress: 'MAC Address',
|
macAddress: 'MAC Address',
|
||||||
serverPort: 'Server Port',
|
serverPort: 'Server Port',
|
||||||
isEmpty: ' cannot be empty',
|
isEmpty: ' cannot be empty.',
|
||||||
isRight: ' is invalid.',
|
isRight: ' is invalid.',
|
||||||
isRight1: ' is out of range (10000-49999).',
|
isRight1: ' is out of range (10000-49999).',
|
||||||
isRight2: ' is out of range (1000-9999).',
|
isRight2: ' is out of range (1000-9999).',
|
||||||
isRight3: ' is out of range (1-9999).',
|
isRight3: ' is out of range (1-9999).',
|
||||||
open: 'Enable',
|
open: 'Enable',
|
||||||
close: 'Disable',
|
close: 'Disable',
|
||||||
|
close1: 'Close',
|
||||||
save: 'Save',
|
save: 'Save',
|
||||||
submit: 'Submit',
|
submit: 'Submit',
|
||||||
toTop: 'Back to top',
|
toTop: 'Back to top',
|
||||||
@ -72,33 +73,40 @@ export default {
|
|||||||
clear: 'Clear Screen',
|
clear: 'Clear Screen',
|
||||||
refresh: 'Auto Refresh',
|
refresh: 'Auto Refresh',
|
||||||
update: 'Update',
|
update: 'Update',
|
||||||
choose: 'Choice',
|
choose: 'Browse',
|
||||||
tips: 'Tips',
|
tips: 'Tips',
|
||||||
|
NetworkPacketCapture: 'Network packet capture',
|
||||||
|
CapturingPacket: 'Capturing packets (Max 10 MB) ......',
|
||||||
|
PacketCaptureHasBeenStopped: 'Packet capture is stopped and saved as tcpdump.pcap.',
|
||||||
|
StartPacketCapture: 'Start',
|
||||||
|
StopPacketCapture: 'Stop',
|
||||||
|
Download: 'Download',
|
||||||
|
Delete: 'Delete',
|
||||||
factorySettings: 'Restore Factory Settings',
|
factorySettings: 'Restore Factory Settings',
|
||||||
routerRestart: 'Reboot The Device',
|
routerRestart: 'Restart',
|
||||||
SIPserver: 'SIP Server IP',
|
SIPserver: 'SIP Server IP',
|
||||||
SIPUserName: 'SIP UserName',
|
SIPUserName: 'SIP Username',
|
||||||
SIPPassword: 'SIP PassWord',
|
SIPPassword: 'SIP Password',
|
||||||
programTip:
|
programTip:
|
||||||
'Tip: the total size of uploaded files cannot exceed the capacity of the device storage space!',
|
'Tip: The total size of uploaded files cannot exceed the storage capacity.',
|
||||||
firmwareUpdateTip:
|
firmwareUpdateTip:
|
||||||
'Tip: Firmware upgrade can improve equipment performance and functions only when its version matched. If not, the hardware might not be able to work! Please use with caution!',
|
'Tip: Firmware upgrade can only improve device performance and functionality if the firmware version is compatible. Otherwise, the equipment may not work properly! Please use with caution!',
|
||||||
factoryTip:
|
factoryTip:
|
||||||
'After returning to the factory setting, the configuration of the device will return to the factory state. Please use with caution!',
|
'After restoring factory settings, the device configuration will be restored to its factory state. Please use with caution!',
|
||||||
routerRestartTips:
|
routerRestartTips:
|
||||||
'The device is about to reboot. Are you sure to continue!',
|
'Are you sure you want to restart the device?',
|
||||||
programDeteleTip: 'Confirm to delete this file!',
|
programDeteleTip: 'Are you sure you want to delete?',
|
||||||
logDeteleTip: 'Confirm to delete this log!',
|
logDeteleTip: 'Are you sure you want to delete?',
|
||||||
freeSpace: 'Free Space',
|
freeSpace: 'Available Space',
|
||||||
chooseFile: 'Upgrade File',
|
chooseFile: 'Upgrade File',
|
||||||
microphoneSwitch: 'Microphone Switch',
|
microphoneSwitch: 'Microphone Input',
|
||||||
factorySettingsTips:
|
factorySettingsTips:
|
||||||
'The default IP address of the device in the factory state is 192.168.1.108. After the restoration, you need to log in again.',
|
'The device\'s default IP address is 192.168.1.108. You will need to log in again after restoring factory settings.', // The baseline version of the LX branch is 192.168.1.101, while the other baseline versions are 192.168.1.108
|
||||||
fileUpload: 'File uploading ...',
|
fileUpload: 'File uploading ...',
|
||||||
fileSave: 'Saving...',
|
fileSave: 'Saving...',
|
||||||
routerRestartIng: 'Device Rebooting...',
|
routerRestartIng: 'Device Restarting ...',
|
||||||
upDateTips:
|
upDateTips:
|
||||||
'The firmware is being updated, please keep the network connected, do not cut off the power and refresh the web page.',
|
'The firmware is being upgraded, please keep the network connection, power off, and refresh the webpage.',
|
||||||
dynamicTips1: 'Fixed header, sorted by header order',
|
dynamicTips1: 'Fixed header, sorted by header order',
|
||||||
dynamicTips2: 'Not fixed header, sorted by click order',
|
dynamicTips2: 'Not fixed header, sorted by click order',
|
||||||
dragTips1: 'The default order',
|
dragTips1: 'The default order',
|
||||||
@ -135,20 +143,20 @@ export default {
|
|||||||
upload: 'Upload',
|
upload: 'Upload',
|
||||||
fileName: 'Program Name',
|
fileName: 'Program Name',
|
||||||
fileEditTip:
|
fileEditTip:
|
||||||
'The file name cannot be empty and the file format cannot be modified',
|
'The file name cannot be empty and the file format cannot be modified.',
|
||||||
fileSizeTip: 'The uploaded file size cannot exceed 5MB!',
|
fileSizeTip: 'The size of the uploaded file cannot exceed 40MB.',
|
||||||
fileTypeTip: 'The uploaded file can only be in MP3 format!',
|
fileTypeTip: 'Only MP3 format files can be uploaded.',
|
||||||
updateFileTypeTip: 'The uploaded file can only be in Bin format!',
|
updateFileTypeTip: 'The uploaded file can only be in Bin format.',
|
||||||
fileSurplusSizeTip: 'Insufficient remaining storage space!',
|
fileSurplusSizeTip: 'Insufficient storage space!',
|
||||||
upDateTip: 'Please select a file before upgrading!',
|
upDateTip: 'Please select a file before upgrading.',
|
||||||
audio: 'Audio Format',
|
audio: 'Audio Format',
|
||||||
playStatus: 'Playing status',
|
playStatus: 'Status',
|
||||||
|
|
||||||
aoVol: 'Play Volume',
|
aoVol: 'Playback Volume',
|
||||||
aiVol: 'Recording Volume',
|
aiVol: 'Recording Volume',
|
||||||
|
|
||||||
auth: 'Authentication',
|
auth: 'Authentication',
|
||||||
httpAuth: 'Http Authentication',
|
httpAuth: 'HTTP Authentication',
|
||||||
|
|
||||||
warningTitle: 'Alarm File',
|
warningTitle: 'Alarm File',
|
||||||
warningFormTitle: 'AlarmIn',
|
warningFormTitle: 'AlarmIn',
|
||||||
@ -164,32 +172,40 @@ export default {
|
|||||||
slyCode: 'Please login again.', // 401code
|
slyCode: 'Please login again.', // 401code
|
||||||
sleCode: 'Login expired, please login again.', // 402code
|
sleCode: 'Login expired, please login again.', // 402code
|
||||||
lllCode: 'The password is too weak, please change it.', // 600code
|
lllCode: 'The password is too weak, please change it.', // 600code
|
||||||
llyCode: 'The firmware is being updated, please wait.', // 601code
|
llyCode: 'The firmware is being upgraded, please wait.', // 601code
|
||||||
lleCode: '用户登录名称/密码错误.', // 602code
|
lleCode: 'The username or password is incorrect.', // 602code
|
||||||
llsCode: 'Too many failed login attempts, the account has been locked (30 minutes).', // 603code
|
llsCode: 'Too many failed login attempts, the account has been locked (30 minutes).', // 603code
|
||||||
llssCode: 'The account has been logged in elsewhere. Do you want to force logout?.', // 604code
|
llssCode: 'The account has been logged in elsewhere. Do you want to force login?', // 604code
|
||||||
lylCode: 'The old password is wrong.', // 610code
|
lylCode: 'The old password is incorrect.', // 610code
|
||||||
lyyCode: 'The new password must be different from the old password.', // 611code
|
lyyCode: 'The new password must be different from the old password.', // 611code
|
||||||
lelCode: 'The file upload failed because it cannot be played.', // 620code
|
lelCode: 'The file upload failed because it is not a playable MP3 file.', // 620code
|
||||||
leyCode: 'The file upload failed because a file with the same name already exists.', // 621code
|
leyCode: 'The file upload failed because a file with the same name already exists.', // 621code
|
||||||
leeCode: 'The file upload failed because of a network failure.', // 622code
|
leeCode: 'The file upload failed because there was a network error.', // 622code
|
||||||
lesCode: 'The file does not exist, please refresh.', // 623Code
|
lesCode: 'The file does not exist, please refresh.', // 623Code
|
||||||
lessCode: 'Failed to rename, please avoid using special characters.', // 624Code
|
lessCode: 'Failed to rename, please avoid using special characters.', // 624Code
|
||||||
lewCode: 'Failed to delete, because the file is playing.', // 625Code
|
lewCode: 'Failed to delete, because the file is playing.', // 625Code
|
||||||
|
|
||||||
lslCode: '节目文件开始播放失败,节目已在播放中.', // 630code
|
lslCode: 'Failed to start playing, because the file is already playing.', // 630code
|
||||||
lsyCode: '节目文件停止播放失败,节目未在播放中.', // 631code
|
lsyCode: 'Failed to stop playing, because the file is not playing.', // 631code
|
||||||
lsslCode: 'The firmware update has not started.', // 640code
|
lsslCode: 'The firmware upgrade has not started.', // 640code
|
||||||
lssyCode: 'The firmware is being updated, please wait.', // 641code
|
lssyCode: 'The firmware is being upgraded, please wait.', // 641code
|
||||||
lsseCode: 'The firmware update completed, the device will reboot soon.', // 642code
|
lsseCode: 'The firmware upgrade completed, the device will restart soon.', // 642code
|
||||||
lssCode: 'Failed to update the firmware, because the file cannot be parsed.', // 643code
|
lssCode: 'Failed to upgrade the firmware, because the file cannot be parsed.', // 643code
|
||||||
lsssCode: 'Failed to update the firmware, because the file version is too low.', // 644code
|
lsssCode: 'Failed to upgrade the firmware, because the file version is too low.', // 644code
|
||||||
WAN_IP_AddressIP: 'WAN DomainName',
|
WAN_IP_AddressIP: 'NAT Domain Name',
|
||||||
WAN_IP_Address: 'WAN IP address',
|
WAN_IP_Address: 'NAT IP Address',
|
||||||
WAN_IP_DomainName: 'WAN domain name',
|
WAN_IP_DomainName: 'NAT Domain Name',
|
||||||
WAN_IP_Type: 'WAN Type',
|
WAN_IP_Type: 'NAT Type',
|
||||||
WAN_Port: 'WAN Port',
|
WAN_Port: 'NAT ONVIF Port',
|
||||||
WAN_RTSP_Port: 'WAN RTSP Port'
|
WAN_RTSP_Port: 'NAT RTSP Port',
|
||||||
|
httpPort: 'HTTP API Port',
|
||||||
|
webPort: 'Web Port',
|
||||||
|
rtspPort: 'RTSP Port',
|
||||||
|
rtpPort: 'RTP Port',
|
||||||
|
portConflict: ' Conflict',
|
||||||
|
PortNumbersCannotBeTheSame: 'The ports cannot be the same',
|
||||||
|
SIP_Port:'SIP Port',
|
||||||
|
SIP_RTP_Port:'SIP RTP Port'
|
||||||
},
|
},
|
||||||
theme: {
|
theme: {
|
||||||
change: 'Change Theme',
|
change: 'Change Theme',
|
||||||
@ -218,20 +234,20 @@ export default {
|
|||||||
password2: 'Confirm Password',
|
password2: 'Confirm Password',
|
||||||
update: 'Update',
|
update: 'Update',
|
||||||
oldPassword: 'Please enter your old password!',
|
oldPassword: 'Please enter your old password!',
|
||||||
newPassword: 'Please enter a new password!',
|
newPassword: 'Please enter a new password!',
|
||||||
newPassword2: 'Please enter the new password again!',
|
newPassword2: 'Please enter the new password again!',
|
||||||
passwordDifferent: 'The two password entered is inconsistent!',
|
passwordDifferent: 'The two password entered is inconsistent!',
|
||||||
newAndOldPassword:
|
newAndOldPassword:
|
||||||
'Operation exception: the new password is the same as the old password',
|
'Operation exception: the new password is the same as the old password.',
|
||||||
updatePasswordSuccess: 'User password updated successfully',
|
updatePasswordSuccess: 'Password updated successfully.',
|
||||||
passwordLengthError: 'Enter a password of at least 8 digits',
|
passwordLengthError: 'Enter a password of at least 8 digits.',
|
||||||
passwordStrongError:
|
passwordStrongError:
|
||||||
'The Password strength is insufficient. Please ensure that the length is at least 8 digits and at most 16 digits, and must contain at least three of numbers, Minuscule, uppercase letters, and special symbols!',
|
'The Password strength is insufficient. Please ensure that the length is at least 8 digits and at most 16 digits, and must contain at least three of numbers, Minuscule, uppercase letters, and special symbols!',
|
||||||
confirmPassword: 'Confirm Password',
|
confirmPassword: 'Confirm Password',
|
||||||
inputusername: 'Please enter your username!',
|
inputusername: 'Please enter the username!',
|
||||||
inputpassword: 'Please enter the password!',
|
inputpassword: 'Please enter the password!',
|
||||||
inputpassword2: 'Please enter the password again!',
|
inputpassword2: 'Please enter the password again!',
|
||||||
registerSuccess: 'User registration successful!',
|
registerSuccess: 'User registration successful!',
|
||||||
gologin: 'Do you want to login?'
|
gologin: 'Do you want to login?'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export default {
|
|||||||
factorySetting: 'Sistema',
|
factorySetting: 'Sistema',
|
||||||
profile: 'Usuário',
|
profile: 'Usuário',
|
||||||
urlTitle: 'Corneta Khomp',
|
urlTitle: 'Corneta Khomp',
|
||||||
operationLog: 'Registros'
|
operationLog: 'Registros',
|
||||||
},
|
},
|
||||||
navbar: {
|
navbar: {
|
||||||
dashboard: 'Configurações',
|
dashboard: 'Configurações',
|
||||||
@ -31,30 +31,30 @@ export default {
|
|||||||
thirdparty: 'Ou conectar-se com',
|
thirdparty: 'Ou conectar-se com',
|
||||||
thirdpartyTips:
|
thirdpartyTips:
|
||||||
'Não pode ser simulado localmente, então combine com sua própria simulação de negócios!',
|
'Não pode ser simulado localmente, então combine com sua própria simulação de negócios!',
|
||||||
confirmLogout: 'Confirmar Logout',
|
confirmLogout: 'Tem certeza de que deseja sair?',
|
||||||
loggedOut:
|
loggedOut:
|
||||||
'Você foi desconectado. Você pode cancelar para permanecer nesta página ou fazer login novamente.',
|
'Você foi desconectado. Você pode cancelar para permanecer nesta página ou fazer login novamente.',
|
||||||
toLogin: 'Ir para o Login',
|
toLogin: 'Ir para o Login',
|
||||||
changePassword: 'Alterar Senha',
|
changePassword: 'Alterar Senha',
|
||||||
changePasswordTip:
|
changePasswordTip:
|
||||||
'Detectado que a senha é muito fraca ou expirou. Por favor, modifique a senha antes de fazer login.',
|
'Sua senha é muito fraca ou expirou. Por favor, altere sua senha e faça login novamente.',
|
||||||
changePasswordMsg: 'Senha expirada, por favor, modifique a senha antes de fazer login.',
|
changePasswordMsg: 'Sua senha expirou. Por favor, altere sua senha e faça login novamente.',
|
||||||
upDateMsg: 'O firmware está sendo atualizado, por favor, aguarde um momento.'
|
upDateMsg: 'O firmware está sendo atualizado, por favor, aguarde um momento.'
|
||||||
},
|
},
|
||||||
table: {
|
table: {
|
||||||
productName: 'Nome do Produto',
|
productName: 'Nome do Dispositivo',
|
||||||
productMode: 'Modelo do Produto',
|
productMode: 'Modelo do Dispositivo',
|
||||||
serialNumber: 'Número de Série',
|
serialNumber: 'Número de Série',
|
||||||
firmwareVercion: 'Versão do Firmware',
|
firmwareVercion: 'Versão do Firmware',
|
||||||
deviceID: 'ID do Dispositivo',
|
deviceID: 'ID do Dispositivo',
|
||||||
deviceIP: 'IP do Dispositivo',
|
deviceIP: 'IP do Dispositivo',
|
||||||
gatewal: 'Gateway',
|
gatewal: 'Gateway Padrão',
|
||||||
suonetMask: 'Máscara de Sub-rede',
|
suonetMask: 'Máscara de Sub-rede',
|
||||||
storageSpaces: 'Espaços de Armazenamento',
|
storageSpaces: 'Espaços de Armazenamento',
|
||||||
serverIP: 'IP do Servidor',
|
serverIP: 'Endereço IP',
|
||||||
corverCommandDort: 'Porta de Comando do Servidor',
|
corverCommandDort: 'Porta do servidor',
|
||||||
deviceCommandPort: 'Porta de Comando do Dispositivo',
|
deviceCommandPort: 'Porta de Comando',
|
||||||
deviceStreamPort: 'Porta de Fluxo de Código do Terminal',
|
deviceStreamPort: 'Porta de Fluxo',
|
||||||
macAddress: 'Endereço de MAC',
|
macAddress: 'Endereço de MAC',
|
||||||
serverPort: 'Porta do Servidor',
|
serverPort: 'Porta do Servidor',
|
||||||
isEmpty: 'não pode estar vazio',
|
isEmpty: 'não pode estar vazio',
|
||||||
@ -64,6 +64,7 @@ export default {
|
|||||||
isRight3: 'está fora do intervalo (1-9999).',
|
isRight3: 'está fora do intervalo (1-9999).',
|
||||||
open: 'Ativar',
|
open: 'Ativar',
|
||||||
close: 'Desativar',
|
close: 'Desativar',
|
||||||
|
close1: 'Fechar',
|
||||||
save: 'Salvar',
|
save: 'Salvar',
|
||||||
submit: 'Enviar',
|
submit: 'Enviar',
|
||||||
toTop: 'Voltar ao topo',
|
toTop: 'Voltar ao topo',
|
||||||
@ -71,33 +72,40 @@ export default {
|
|||||||
clear: 'Limpar Tela',
|
clear: 'Limpar Tela',
|
||||||
refresh: 'Atualização Automática',
|
refresh: 'Atualização Automática',
|
||||||
update: 'Atualizar',
|
update: 'Atualizar',
|
||||||
choose: 'Escolher',
|
choose: 'Navegar',
|
||||||
tips: 'Dica',
|
tips: 'Dica',
|
||||||
|
NetworkPacketCapture: 'Captura de pacotes de rede',
|
||||||
|
CapturingPacket: 'Captura de pacotes em andamento (máximo de 10 MB)...',
|
||||||
|
PacketCaptureHasBeenStopped: 'A captura de pacotes foi interrompida.',
|
||||||
|
StartPacketCapture: 'Começar',
|
||||||
|
StopPacketCapture: 'Parar',
|
||||||
|
Download: 'Download',
|
||||||
|
Delete: 'Excluir',
|
||||||
factorySettings: 'Restaurar Configurações de Fábrica',
|
factorySettings: 'Restaurar Configurações de Fábrica',
|
||||||
routerRestart: 'Reiniciar Dispositivo',
|
routerRestart: 'Reiniciar',
|
||||||
SIPserver: 'IP do Servidor SIP',
|
SIPserver: 'IP do Servidor SIP',
|
||||||
SIPUserName: 'Nome de Usuário SIP',
|
SIPUserName: 'Nome de Usuário SIP',
|
||||||
SIPPassword: 'Senha SIP',
|
SIPPassword: 'Senha SIP',
|
||||||
programTip:
|
programTip:
|
||||||
'Dica: o tamanho total dos arquivos enviados não pode exceder a capacidade do espaço de armazenamento do dispositivo!',
|
'Dica: O tamanho total dos arquivos enviados não pode exceder a capacidade de armazenamento.',
|
||||||
firmwareUpdateTip:
|
firmwareUpdateTip:
|
||||||
'Dica: A atualização do firmware pode melhorar o desempenho e as funções do equipamento apenas quando a versão corresponder. Caso contrário, o hardware pode não funcionar! Por favor use com cuidado!',
|
'Dica: A atualização do firmware só melhora o desempenho e a funcionalidade do dispositivo se a versão do firmware for compatível. Caso contrário, o equipamento pode não funcionar corretamente! Use com cautela!',
|
||||||
factoryTip:
|
factoryTip:
|
||||||
'Após retornar às configurações de fábrica, a configuração do dispositivo voltará ao estado de fábrica. Use com cuidado!',
|
'Após restaurar as configurações de fábrica, a configuração do dispositivo será restaurada ao seu estado original de fábrica. Use com cautela!',
|
||||||
routerRestartTips:
|
routerRestartTips:
|
||||||
'O dispositivo está prestes a reiniciar. Tem certeza de que deseja continuar?',
|
'Tem certeza de que deseja reiniciar o dispositivo?',
|
||||||
programDeteleTip: 'Confirmar exclusão deste arquivo?',
|
programDeteleTip: 'Tem certeza de que deseja excluir?',
|
||||||
logDeteleTip: 'Confirmar exclusão deste registro?',
|
logDeteleTip: 'Tem certeza de que deseja excluir?',
|
||||||
freeSpace: 'Espaço Livre',
|
freeSpace: 'Espaço Livre',
|
||||||
chooseFile: 'Arquivo de Atualização',
|
chooseFile: 'Arquivo de Atualização',
|
||||||
microphoneSwitch: 'Microfone',
|
microphoneSwitch: 'Microfone',
|
||||||
factorySettingsTips:
|
factorySettingsTips:
|
||||||
'O endereço IP padrão do dispositivo no estado de fábrica é 192.168.1.108. Após a restauração, você precisa fazer login novamente.',
|
'O endereço IP padrão do dispositivo é 192.168.1.108. Você precisará fazer login novamente após restaurar as configurações de fábrica.', // A versão base da ramificação LX é 192.168.1.101, enquanto as outras versões base são 192.168.1.108
|
||||||
fileUpload: 'Carregando arquivo...',
|
fileUpload: 'Carregando arquivo...',
|
||||||
fileSave: 'Salvando...',
|
fileSave: 'Salvando...',
|
||||||
routerRestartIng: 'Reiniciando Dispositivo...',
|
routerRestartIng: 'Dispositivo reiniciando...',
|
||||||
upDateTips:
|
upDateTips:
|
||||||
'O firmware está sendo atualizado, por favor, mantenha a rede conectada, não desligue a energia e atualize a página da web.',
|
'O firmware está sendo atualizado. Mantenha a conexão de rede, desligue o dispositivo e atualize a página.',
|
||||||
dynamicTips1: 'Cabeçalho fixo, ordenado pela ordem do cabeçalho',
|
dynamicTips1: 'Cabeçalho fixo, ordenado pela ordem do cabeçalho',
|
||||||
dynamicTips2: 'Cabeçalho não fixo, ordenado por ordem de clique',
|
dynamicTips2: 'Cabeçalho não fixo, ordenado por ordem de clique',
|
||||||
dragTips1: 'Ordem padrão',
|
dragTips1: 'Ordem padrão',
|
||||||
@ -134,17 +142,17 @@ export default {
|
|||||||
upload: 'Enviar',
|
upload: 'Enviar',
|
||||||
fileName: 'Nome do Programa',
|
fileName: 'Nome do Programa',
|
||||||
fileEditTip:
|
fileEditTip:
|
||||||
'O nome do arquivo não pode estar vazio e o formato do arquivo não pode ser modificado!',
|
'O nome do arquivo não pode estar vazio e o formato do arquivo não pode ser modificado.',
|
||||||
fileSizeTip: 'O tamanho do arquivo enviado não pode exceder 5MB!',
|
fileSizeTip: 'O tamanho do arquivo enviado não pode exceder 40 MB.',
|
||||||
fileTypeTip: 'O arquivo enviado só pode estar no formato MP3!',
|
fileTypeTip: 'Somente arquivos no formato MP3 podem ser enviados.',
|
||||||
updateFileTypeTip: 'O arquivo enviado só pode estar no formato Bin!',
|
updateFileTypeTip: 'O arquivo enviado só pode estar no formato Bin.',
|
||||||
fileSurplusSizeTip: 'Espaço de armazenamento restante insuficiente!',
|
fileSurplusSizeTip: 'Espaço de armazenamento insuficiente!',
|
||||||
upDateTip: 'Por favor, selecione um arquivo antes de atualizar!',
|
upDateTip: 'Por favor, selecione um arquivo antes de atualizar.',
|
||||||
audio: 'Formato de Áudio',
|
audio: 'Formato de Áudio',
|
||||||
playStatus: 'Status de Reprodução',
|
playStatus: 'Status de Reprodução',
|
||||||
|
|
||||||
microphone: 'Interruptor MacPhen incorporado',
|
microphone: 'Interruptor MacPhen incorporado',
|
||||||
aoVol: 'Volume de Alto-falante',
|
aoVol: 'Volume de Reprodução',
|
||||||
aiVol: 'Volume do Microfone',
|
aiVol: 'Volume do Microfone',
|
||||||
|
|
||||||
auth: 'Autenticação',
|
auth: 'Autenticação',
|
||||||
@ -170,9 +178,9 @@ export default {
|
|||||||
llssCode: 'A conta foi logada em outro lugar. Deseja fazer logout forçado?', // 604code
|
llssCode: 'A conta foi logada em outro lugar. Deseja fazer logout forçado?', // 604code
|
||||||
lylCode: 'A senha antiga está errada.', // 610code
|
lylCode: 'A senha antiga está errada.', // 610code
|
||||||
lyyCode: 'A nova senha deve ser diferente da senha antiga.', // 611code
|
lyyCode: 'A nova senha deve ser diferente da senha antiga.', // 611code
|
||||||
lelCode: 'O upload do arquivo falhou porque não pode ser reproduzido.', // 620code
|
lelCode: 'O envio do arquivo falhou porque não se trata de um arquivo MP3 reproduzível.', // 620code
|
||||||
leyCode: 'O upload do arquivo falhou porque um arquivo com o mesmo nome já existe.', // 621code
|
leyCode: 'O upload do arquivo falhou porque um arquivo com o mesmo nome já existe.', // 621code
|
||||||
leeCode: 'O upload do arquivo falhou devido a uma falha na rede.', // 622code
|
leeCode: 'O envio do arquivo falhou devido a um erro de rede.', // 622code
|
||||||
lesCode: 'O arquivo não existe, por favor, atualize.', // 623Code
|
lesCode: 'O arquivo não existe, por favor, atualize.', // 623Code
|
||||||
lessCode: 'Falha ao renomear, evite usar caracteres especiais.', // 624Code
|
lessCode: 'Falha ao renomear, evite usar caracteres especiais.', // 624Code
|
||||||
lewCode: 'Falha ao excluir, porque o arquivo está sendo reproduzido.', // 625Code
|
lewCode: 'Falha ao excluir, porque o arquivo está sendo reproduzido.', // 625Code
|
||||||
@ -184,12 +192,20 @@ export default {
|
|||||||
lsseCode: 'A atualização do firmware foi concluída, o dispositivo será reiniciado em breve.', // 642code
|
lsseCode: 'A atualização do firmware foi concluída, o dispositivo será reiniciado em breve.', // 642code
|
||||||
lssCode: 'Falha ao atualizar o firmware, porque o arquivo não pode ser analisado.', // 643code
|
lssCode: 'Falha ao atualizar o firmware, porque o arquivo não pode ser analisado.', // 643code
|
||||||
lsssCode: 'Falha ao atualizar o firmware, porque a versão do arquivo é muito baixa.', // 644code
|
lsssCode: 'Falha ao atualizar o firmware, porque a versão do arquivo é muito baixa.', // 644code
|
||||||
WAN_IP_AddressIP: 'Nome de domínio de rede ampla',
|
WAN_IP_AddressIP: 'Nome de Domínio NAT',
|
||||||
WAN_IP_Address: 'Endereço IP de rede ampla',
|
WAN_IP_Address: 'Endereço IP NAT',
|
||||||
WAN_IP_DomainName: 'Nome de domínio de rede de longa distância',
|
WAN_IP_DomainName: 'Nome de Domínio NAT',
|
||||||
WAN_IP_Type: 'Formato de rede de longa distância',
|
WAN_IP_Type: 'Tipo de NAT',
|
||||||
WAN_Port: 'Número da porta pública',
|
WAN_Port: 'ONVIF Porta NAT',
|
||||||
WAN_RTSP_Port: 'Porta RTSP pública'
|
WAN_RTSP_Port: 'RTSP Porta NAT',
|
||||||
|
httpPort: 'Porta da API HTTP',
|
||||||
|
webPort: 'Porta WEB',
|
||||||
|
rtspPort: 'Porta RTSP',
|
||||||
|
rtpPort: 'Porta RTP',
|
||||||
|
portConflict: ' Conflito',
|
||||||
|
PortNumbersCannotBeTheSame: 'As portas não podem ser iguais',
|
||||||
|
SIP_Port:'Porta SIP',
|
||||||
|
SIP_RTP_Port:'Porta SIP RTP',
|
||||||
},
|
},
|
||||||
theme: {
|
theme: {
|
||||||
change: 'Mudar Tema',
|
change: 'Mudar Tema',
|
||||||
|
|||||||
@ -70,6 +70,13 @@ export default {
|
|||||||
refresh: '自动刷新',
|
refresh: '自动刷新',
|
||||||
choose: '选择',
|
choose: '选择',
|
||||||
tips: '提示',
|
tips: '提示',
|
||||||
|
NetworkPacketCapture: '网络抓包',
|
||||||
|
CapturingPacket: '正在抓包(最大10兆)......',
|
||||||
|
PacketCaptureHasBeenStopped: '抓包已停止,保存为tcpdump.pcap。',
|
||||||
|
StartPacketCapture: '开始',
|
||||||
|
StopPacketCapture: '停止',
|
||||||
|
Download: '下载',
|
||||||
|
Delete: '删除',
|
||||||
factorySettings: '恢复出厂设置',
|
factorySettings: '恢复出厂设置',
|
||||||
routerRestart: '重启设备',
|
routerRestart: '重启设备',
|
||||||
SIPserver: 'SIP服务器',
|
SIPserver: 'SIP服务器',
|
||||||
@ -181,7 +188,15 @@ export default {
|
|||||||
WAN_IP_DomainName: '广域网域名',
|
WAN_IP_DomainName: '广域网域名',
|
||||||
WAN_IP_Type: '广域网格式',
|
WAN_IP_Type: '广域网格式',
|
||||||
WAN_Port: '公网端口号',
|
WAN_Port: '公网端口号',
|
||||||
WAN_RTSP_Port: '公网RTSP端口号'
|
WAN_RTSP_Port: '公网RTSP端口号',
|
||||||
|
httpPort: 'http端口',
|
||||||
|
webPort: 'Web端口',
|
||||||
|
rtspPort: 'RTSP端口',
|
||||||
|
rtpPort: 'RTP端口',
|
||||||
|
portConflict: ' 冲突',
|
||||||
|
PortNumbersCannotBeTheSame: '端口号不能相同',
|
||||||
|
SIP_Port:'SIP端口',
|
||||||
|
SIP_RTP_Port:'SIP RTP端口',
|
||||||
},
|
},
|
||||||
theme: {
|
theme: {
|
||||||
change: '换肤',
|
change: '换肤',
|
||||||
|
|||||||
@ -56,6 +56,9 @@ export default {
|
|||||||
// TODO: refactor with render function
|
// TODO: refactor with render function
|
||||||
this.onlyOneChild = null
|
this.onlyOneChild = null
|
||||||
return {}
|
return {}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
hasOneShowingChild(children = [], parent) {
|
hasOneShowingChild(children = [], parent) {
|
||||||
|
|||||||
@ -12,7 +12,12 @@
|
|||||||
:collapse-transition="false"
|
:collapse-transition="false"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
>
|
>
|
||||||
<sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" />
|
<sidebar-item
|
||||||
|
v-for="route in filteredRoutes"
|
||||||
|
:key="route.path"
|
||||||
|
:item="route"
|
||||||
|
:base-path="route.path"
|
||||||
|
/>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@ -26,11 +31,21 @@ import variables from '@/styles/variables.scss'
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { SidebarItem, Logo },
|
components: { SidebarItem, Logo },
|
||||||
|
mounted(){
|
||||||
|
console.log(this.permission_routes);
|
||||||
|
// if(this.alarmPage === 'off'){
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'permission_routes',
|
'permission_routes',
|
||||||
'sidebar'
|
'sidebar',
|
||||||
|
'alarmPage'
|
||||||
]),
|
]),
|
||||||
|
filteredRoutes() {
|
||||||
|
return this.permission_routes
|
||||||
|
},
|
||||||
activeMenu() {
|
activeMenu() {
|
||||||
const route = this.$route
|
const route = this.$route
|
||||||
const { meta, path } = route
|
const { meta, path } = route
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
import ScrollPane from './ScrollPane'
|
import ScrollPane from './ScrollPane'
|
||||||
import { generateTitle } from '@/utils/i18n'
|
import { generateTitle } from '@/utils/i18n'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { ScrollPane },
|
components: { ScrollPane },
|
||||||
@ -42,6 +43,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapGetters([
|
||||||
|
'alarmPage'
|
||||||
|
]),
|
||||||
visitedViews() {
|
visitedViews() {
|
||||||
return this.$store.state.tagsView.visitedViews
|
return this.$store.state.tagsView.visitedViews
|
||||||
},
|
},
|
||||||
|
|||||||
@ -21,7 +21,8 @@ function hasPermission(roles, route) {
|
|||||||
*/
|
*/
|
||||||
export function filterAsyncRoutes(routes, roles) {
|
export function filterAsyncRoutes(routes, roles) {
|
||||||
const res = []
|
const res = []
|
||||||
const data = JSON.parse(getLoginData())?.menuRole || 1
|
const loginData = getLoginData()
|
||||||
|
const data = loginData?.menuRole || 1
|
||||||
routes.forEach(route => {
|
routes.forEach(route => {
|
||||||
const tmp = { ...route }
|
const tmp = { ...route }
|
||||||
if (hasPermission(roles, tmp)) {
|
if (hasPermission(roles, tmp)) {
|
||||||
|
|||||||
@ -20,6 +20,7 @@ const mutations = {
|
|||||||
},
|
},
|
||||||
SET_LOGIN_DATA: (state, data) => {
|
SET_LOGIN_DATA: (state, data) => {
|
||||||
state.loginData = data
|
state.loginData = data
|
||||||
|
console.log(state, data)
|
||||||
setLoginData(data)
|
setLoginData(data)
|
||||||
},
|
},
|
||||||
SET_KEY: (state, key) => {
|
SET_KEY: (state, key) => {
|
||||||
@ -55,7 +56,10 @@ const actions = {
|
|||||||
commit('SET_TOKEN', data.token)
|
commit('SET_TOKEN', data.token)
|
||||||
commit('SET_NAME', username)
|
commit('SET_NAME', username)
|
||||||
data.menuRole = 1
|
data.menuRole = 1
|
||||||
if (data.alarmPage === 'off') data.menuRole = 2
|
if (data.alarmPage !== 'off') {
|
||||||
|
data.menuRole = 2
|
||||||
|
// console.log('data.alarmPage',data.alarmPage)
|
||||||
|
}
|
||||||
commit('SET_LOGIN_DATA', data)
|
commit('SET_LOGIN_DATA', data)
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
resolve()
|
resolve()
|
||||||
|
|||||||
@ -15,11 +15,14 @@ export function setToken(token) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getLoginData() {
|
export function getLoginData() {
|
||||||
return Cookies.get(LoginData)
|
const data = Cookies.get(LoginData)
|
||||||
|
return data ? JSON.parse(data) : null
|
||||||
|
// return Cookies.get(LoginData)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setLoginData(data) {
|
export function setLoginData(data) {
|
||||||
return Cookies.set(LoginData, data)
|
// return Cookies.set(LoginData, data)
|
||||||
|
return Cookies.set(LoginData, JSON.stringify(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getKey() {
|
export function getKey() {
|
||||||
|
|||||||
@ -4,15 +4,19 @@
|
|||||||
{{ $t("route.agreement") }}
|
{{ $t("route.agreement") }}
|
||||||
</div>
|
</div>
|
||||||
<div class="pageCon pageCon2">
|
<div class="pageCon pageCon2">
|
||||||
<el-tabs v-model="selectIndex" style="margin-top: 15px">
|
<el-tabs
|
||||||
|
v-model="selectIndex"
|
||||||
|
style="margin-top: 15px"
|
||||||
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
v-for="(item, index) in tabOptions"
|
v-for="(item, index) in tabOptions"
|
||||||
:key="index"
|
:key="item.key"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
|
:name="item.key"
|
||||||
/>
|
/>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<el-form
|
<el-form
|
||||||
v-show="selectIndex === '2'"
|
v-show="selectIndex === '0'"
|
||||||
class="detail-form agree-form"
|
class="detail-form agree-form"
|
||||||
label-width="180px"
|
label-width="180px"
|
||||||
label-position="right"
|
label-position="right"
|
||||||
@ -44,14 +48,6 @@
|
|||||||
<el-form-item :label="$t('table.deviceStreamPort')">
|
<el-form-item :label="$t('table.deviceStreamPort')">
|
||||||
<el-input v-model="formUDPData.corestreamPort" />
|
<el-input v-model="formUDPData.corestreamPort" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('table.httpAuth')">
|
|
||||||
<el-radio v-model="formUDPData.httpApiAuth" label="on">{{
|
|
||||||
$t("table.open")
|
|
||||||
}}</el-radio>
|
|
||||||
<el-radio v-model="formUDPData.httpApiAuth" label="off">{{
|
|
||||||
$t("table.close")
|
|
||||||
}}</el-radio>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="SSH">
|
<el-form-item label="SSH">
|
||||||
<el-radio v-model="formUDPData.ssh" label="on">{{
|
<el-radio v-model="formUDPData.ssh" label="on">{{
|
||||||
$t("table.open")
|
$t("table.open")
|
||||||
@ -100,9 +96,15 @@
|
|||||||
<svg-icon :icon-class="sip2PasswordType === 'password' ? 'eye' : 'eye-open'" />
|
<svg-icon :icon-class="sip2PasswordType === 'password' ? 'eye' : 'eye-open'" />
|
||||||
</span>
|
</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.SIP_Port')">
|
||||||
|
<el-input v-model="formSIPData.sipPort" type="number" :min="1" :max="65535"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.SIP_RTP_Port')">
|
||||||
|
<el-input v-model="formSIPData.sipRtpPort" type="number" :min="1" :max="65535"/>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-form
|
<el-form
|
||||||
v-show="selectIndex === '0'"
|
v-show="selectIndex === '2'"
|
||||||
class="detail-form agree-form"
|
class="detail-form agree-form"
|
||||||
label-width="180px"
|
label-width="180px"
|
||||||
label-position="right"
|
label-position="right"
|
||||||
@ -143,8 +145,8 @@
|
|||||||
<el-form-item :label="$t('table.audio')">
|
<el-form-item :label="$t('table.audio')">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formONVIFData.rtspAudioType"
|
v-model="formONVIFData.rtspAudioType"
|
||||||
style="width:350px;"
|
style="width:100%;"
|
||||||
placeholder="请选择"
|
placeholder="Please select"
|
||||||
@change="selectChange"
|
@change="selectChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@ -163,10 +165,27 @@
|
|||||||
$t("table.close")
|
$t("table.close")
|
||||||
}}</el-radio>
|
}}</el-radio>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.rtspPort')">
|
||||||
|
<el-input v-model="formONVIFData.rtspPort" type="number" :min="0" :max="65535" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.rtpPort')">
|
||||||
|
<div style="display: flex; align-items: center; gap: 10px;">
|
||||||
|
<el-input
|
||||||
|
v-model="formONVIFData.rtpPort"
|
||||||
|
type="number"
|
||||||
|
:min="0"
|
||||||
|
:max="65535"
|
||||||
|
style="flex: 1;"
|
||||||
|
/>
|
||||||
|
<span style="color: #909399; font-size: 14px; white-space: nowrap;">
|
||||||
|
{{ Number(formONVIFData.rtpPort) }} - {{ Number(formONVIFData.rtpPort) + 5 || 5 }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="$t('table.WAN_IP_Type')">
|
<el-form-item :label="$t('table.WAN_IP_Type')">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formONVIFData.wanType"
|
v-model="formONVIFData.wanType"
|
||||||
style="width:350px;"
|
style="width:100%;"
|
||||||
@change="selectChangeNet"
|
@change="selectChangeNet"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@ -190,6 +209,28 @@
|
|||||||
<el-input v-model="formONVIFData.wanRTSPPort" type="number" :min="0" :max="65535" />
|
<el-input v-model="formONVIFData.wanRTSPPort" type="number" :min="0" :max="65535" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<el-form
|
||||||
|
v-show="selectIndex === '3'"
|
||||||
|
class="detail-form agree-form"
|
||||||
|
label-width="180px"
|
||||||
|
label-position="right"
|
||||||
|
:model="formHTTPData"
|
||||||
|
>
|
||||||
|
<el-form-item :label="$t('table.webPort')">
|
||||||
|
<el-input v-model="formHTTPData.webPort" type="number" :min="0" :max="65535" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.httpPort')">
|
||||||
|
<el-input v-model="formHTTPData.httpPort" type="number" :min="0" :max="65535" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('table.httpAuth')">
|
||||||
|
<el-radio v-model="formHTTPData.httpApiAuth" label="on">{{
|
||||||
|
$t("table.open")
|
||||||
|
}}</el-radio>
|
||||||
|
<el-radio v-model="formHTTPData.httpApiAuth" label="off">{{
|
||||||
|
$t("table.close")
|
||||||
|
}}</el-radio>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="width: 10%; margin-left: 40%;margin-top: 20px;"
|
style="width: 10%; margin-left: 40%;margin-top: 20px;"
|
||||||
@ -205,6 +246,7 @@
|
|||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { deviceInfo, deviceEdit } from '@/api/index.js'
|
import { deviceInfo, deviceEdit } from '@/api/index.js'
|
||||||
import { encryptData, decryptData } from '@/utils/encryption/entrypt'
|
import { encryptData, decryptData } from '@/utils/encryption/entrypt'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Agreement',
|
name: 'Agreement',
|
||||||
data() {
|
data() {
|
||||||
@ -222,6 +264,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: 'UDP',
|
label: 'UDP',
|
||||||
key: '0'
|
key: '0'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'HTTP',
|
||||||
|
key: '3'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
NetType: [
|
NetType: [
|
||||||
@ -234,7 +280,7 @@ export default {
|
|||||||
key: '1'
|
key: '1'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
selectIndex: '0',
|
selectIndex: '2',
|
||||||
formUDPData: {
|
formUDPData: {
|
||||||
udp: '',
|
udp: '',
|
||||||
id: '',
|
id: '',
|
||||||
@ -243,7 +289,6 @@ export default {
|
|||||||
serverPort: '',
|
serverPort: '',
|
||||||
instructPort: '',
|
instructPort: '',
|
||||||
corestreamPort: '',
|
corestreamPort: '',
|
||||||
httpApiAuth: '',
|
|
||||||
ssh: ''
|
ssh: ''
|
||||||
},
|
},
|
||||||
formSIPData: {
|
formSIPData: {
|
||||||
@ -253,7 +298,9 @@ export default {
|
|||||||
sipAddress: '',
|
sipAddress: '',
|
||||||
sipUsername: '',
|
sipUsername: '',
|
||||||
sipPassword: '',
|
sipPassword: '',
|
||||||
sipPassword2: ''
|
sipPassword2: '',
|
||||||
|
sipPort: '',
|
||||||
|
sipRtpPort: ''
|
||||||
},
|
},
|
||||||
formONVIFData: {
|
formONVIFData: {
|
||||||
onvif: '',
|
onvif: '',
|
||||||
@ -270,7 +317,14 @@ export default {
|
|||||||
wanOnvifPort: '',
|
wanOnvifPort: '',
|
||||||
wanRTSPPort: '',
|
wanRTSPPort: '',
|
||||||
wanDomainName: '',
|
wanDomainName: '',
|
||||||
wanType: '0'
|
wanType: '0',
|
||||||
|
rtspPort: '',
|
||||||
|
rtpPort: ''
|
||||||
|
},
|
||||||
|
formHTTPData: {
|
||||||
|
httpPort: '',
|
||||||
|
webPort: '',
|
||||||
|
httpApiAuth: ''
|
||||||
},
|
},
|
||||||
|
|
||||||
sipPasswordType: 'password',
|
sipPasswordType: 'password',
|
||||||
@ -282,9 +336,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters(['udpPage']) // 获取到 'on' 或 'off'
|
||||||
'udpPage'
|
|
||||||
])
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
if (this.udpPage === 'off') {
|
if (this.udpPage === 'off') {
|
||||||
@ -343,7 +395,6 @@ export default {
|
|||||||
this.formUDPData.serverPort = res.data.serverPort
|
this.formUDPData.serverPort = res.data.serverPort
|
||||||
this.formUDPData.instructPort = res.data.instructPort
|
this.formUDPData.instructPort = res.data.instructPort
|
||||||
this.formUDPData.corestreamPort = res.data.corestreamPort
|
this.formUDPData.corestreamPort = res.data.corestreamPort
|
||||||
this.formUDPData.httpApiAuth = res.data.httpApiAuth
|
|
||||||
this.formUDPData.ssh = res.data.ssh
|
this.formUDPData.ssh = res.data.ssh
|
||||||
|
|
||||||
this.formSIPData.sip = res.data.sip
|
this.formSIPData.sip = res.data.sip
|
||||||
@ -354,6 +405,8 @@ export default {
|
|||||||
res.data.sipPassword = decryptData(res.data.sipPassword)
|
res.data.sipPassword = decryptData(res.data.sipPassword)
|
||||||
this.formSIPData.sipPassword = res.data.sipPassword
|
this.formSIPData.sipPassword = res.data.sipPassword
|
||||||
this.formSIPData.sipPassword2 = res.data.sipPassword
|
this.formSIPData.sipPassword2 = res.data.sipPassword
|
||||||
|
this.formSIPData.sipPort = res.data.sipPort
|
||||||
|
this.formSIPData.sipRtpPort = res.data.sipRtpPort
|
||||||
|
|
||||||
this.formONVIFData.onvif = res.data.onvif
|
this.formONVIFData.onvif = res.data.onvif
|
||||||
this.formONVIFData.id = res.data.id
|
this.formONVIFData.id = res.data.id
|
||||||
@ -366,6 +419,8 @@ export default {
|
|||||||
this.formONVIFData.rtspAudioTypeArr = res.data.rtspAudioTypeArr
|
this.formONVIFData.rtspAudioTypeArr = res.data.rtspAudioTypeArr
|
||||||
this.formONVIFData.rtspAudioType = res.data.rtspAudioType
|
this.formONVIFData.rtspAudioType = res.data.rtspAudioType
|
||||||
this.formONVIFData.onvifAuth = res.data.onvifAuth
|
this.formONVIFData.onvifAuth = res.data.onvifAuth
|
||||||
|
this.formONVIFData.rtspPort = res.data.rtspPort
|
||||||
|
this.formONVIFData.rtpPort = res.data.rtpPort
|
||||||
|
|
||||||
this.formONVIFData.wanIP = res.data.wanIP
|
this.formONVIFData.wanIP = res.data.wanIP
|
||||||
this.formONVIFData.wanOnvifPort = res.data.wanOnvifPort
|
this.formONVIFData.wanOnvifPort = res.data.wanOnvifPort
|
||||||
@ -373,6 +428,11 @@ export default {
|
|||||||
this.formONVIFData.wanDomainName = res.data.wanDomainName
|
this.formONVIFData.wanDomainName = res.data.wanDomainName
|
||||||
this.formONVIFData.wanType = res.data.wanType
|
this.formONVIFData.wanType = res.data.wanType
|
||||||
|
|
||||||
|
this.formHTTPData.httpApiAuth = res.data.httpApiAuth
|
||||||
|
this.formHTTPData.httpPort = res.data.httpPort
|
||||||
|
this.formHTTPData.webPort = res.data.webPort
|
||||||
|
|
||||||
|
// console.log('data', res.data)
|
||||||
this.$forceUpdate()
|
this.$forceUpdate()
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.message)
|
this.$message.error(res.message)
|
||||||
@ -384,7 +444,56 @@ export default {
|
|||||||
const portRegex = /^(1\d{4}|[2-4]\d{4}|49999)$/
|
const portRegex = /^(1\d{4}|[2-4]\d{4}|49999)$/
|
||||||
const portRegex2 = /^(?:[2-9]\d{0,3}|1\d{0,3}|9999)$/
|
const portRegex2 = /^(?:[2-9]\d{0,3}|1\d{0,3}|9999)$/
|
||||||
const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
||||||
if (this.selectIndex === '2') {
|
const ports = [
|
||||||
|
this.formHTTPData.webPort,
|
||||||
|
this.formHTTPData.httpPort,
|
||||||
|
this.formONVIFData.onvifPort,
|
||||||
|
this.formONVIFData.rtspPort,
|
||||||
|
this.formONVIFData.rtpPort,
|
||||||
|
this.formSIPData.sipPort,
|
||||||
|
this.formSIPData.sipRtpPort
|
||||||
|
]
|
||||||
|
console.log('ports', ports)
|
||||||
|
|
||||||
|
// 使用 HashMap 检测端口冲突 - O(n) 时间复杂度
|
||||||
|
const portNames = ['webPort', 'httpPort', 'onvifPort', 'rtspPort', 'rtpPort', 'sipPort', 'sipRtpPort']
|
||||||
|
const portMap = new Map()
|
||||||
|
const conflicts = []
|
||||||
|
|
||||||
|
for (let i = 0; i < ports.length; i++) {
|
||||||
|
const portValue = Number(ports[i])
|
||||||
|
|
||||||
|
// 跳过空值
|
||||||
|
if (ports[i] === '' || ports[i] === null || ports[i] === undefined || isNaN(portValue)) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查该端口值是否已存在
|
||||||
|
if (portMap.has(portValue)) {
|
||||||
|
const existingPort = portMap.get(portValue)
|
||||||
|
conflicts.push({
|
||||||
|
port1: { name: existingPort.name, value: existingPort.value, index: existingPort.index },
|
||||||
|
port2: { name: portNames[i], value: ports[i], index: i }
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 将端口值和对应的索引存入 Map
|
||||||
|
portMap.set(portValue, { name: portNames[i], value: ports[i], index: i })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果有冲突,显示错误信息
|
||||||
|
if (conflicts.length > 0) {
|
||||||
|
const conflictMessages = conflicts.map(item =>
|
||||||
|
`${item.port1.name}(${item.port1.value}) & ${item.port2.name}(${item.port2.value})`
|
||||||
|
)
|
||||||
|
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: this.$i18n.t('table.PortNumbersCannotBeTheSame') + ' : ' + conflictMessages.join(', ')
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.selectIndex === '0') {
|
||||||
param = {
|
param = {
|
||||||
...this.formUDPData
|
...this.formUDPData
|
||||||
}
|
}
|
||||||
@ -444,7 +553,8 @@ export default {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else if (this.selectIndex === '1') {
|
}
|
||||||
|
else if (this.selectIndex === '1') {
|
||||||
param = {
|
param = {
|
||||||
...this.formSIPData
|
...this.formSIPData
|
||||||
}
|
}
|
||||||
@ -473,7 +583,8 @@ export default {
|
|||||||
}
|
}
|
||||||
param.sipPassword = encryptData(param.sipPassword)
|
param.sipPassword = encryptData(param.sipPassword)
|
||||||
param.sipPassword2 = encryptData(param.sipPassword2)
|
param.sipPassword2 = encryptData(param.sipPassword2)
|
||||||
} else if (this.selectIndex === '0') {
|
}
|
||||||
|
else if (this.selectIndex === '2') {
|
||||||
param = {
|
param = {
|
||||||
...this.formONVIFData
|
...this.formONVIFData
|
||||||
}
|
}
|
||||||
@ -528,8 +639,41 @@ export default {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (!param.rtspPort) {
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: this.$i18n.t('table.rtspPort') + this.$i18n.t('table.isEmpty')
|
||||||
|
})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
console.log(param)
|
if (!param.rtpPort) {
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: this.$i18n.t('table.rtpPort') + this.$i18n.t('table.isEmpty')
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.selectIndex === '3') {
|
||||||
|
param = {
|
||||||
|
...this.formHTTPData
|
||||||
|
}
|
||||||
|
if (!param.webPort) {
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: this.$i18n.t('table.webPort') + this.$i18n.t('table.isEmpty')
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!param.httpPort) {
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: this.$i18n.t('table.httpPort') + this.$i18n.t('table.isEmpty')
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// console.log(param)
|
||||||
deviceEdit(param).then((res) => {
|
deviceEdit(param).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$message({
|
this.$message({
|
||||||
@ -543,10 +687,14 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
changeTab(item, index) {
|
||||||
|
console.log(item, index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.agree-form .el-form-item {
|
.agree-form .el-form-item {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
@ -565,7 +713,6 @@ export default {
|
|||||||
z-index: 99;
|
z-index: 99;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pageCon2{
|
.pageCon2{
|
||||||
padding-bottom: 120px;
|
padding-bottom: 120px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,16 +23,48 @@
|
|||||||
<!-- <el-button type="primary" style="margin-top: 48px;" @click="factorySetting">
|
<!-- <el-button type="primary" style="margin-top: 48px;" @click="factorySetting">
|
||||||
{{ $t('table.factorySettings') }}
|
{{ $t('table.factorySettings') }}
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
|
<div class="formbox">
|
||||||
|
<div class="formbox-l">{{ $t('table.NetworkPacketCapture') }}</div>
|
||||||
|
<el-button type="primary" v-if="DataDB.status === 0 || DataDB.status === 2" @click.stop="StartPacketCapture(1)">
|
||||||
|
{{ $t('table.StartPacketCapture') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button type="danger" v-else @click.stop="StartPacketCapture(0)">
|
||||||
|
{{ $t('table.StopPacketCapture') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button type="primary" @click.stop="DownloadFile" :disabled="DataDB.status !== 2">
|
||||||
|
{{ $t('table.Download') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button type="primary" @click.stop="DeletePacketCaptureRecords" :disabled="DataDB.status !== 2">
|
||||||
|
{{ $t('table.Delete') }}
|
||||||
|
</el-button>
|
||||||
|
<span v-if="DataDB.status === 1" class="SpanBox1">
|
||||||
|
{{ $t('table.CapturingPacket') }}
|
||||||
|
</span>
|
||||||
|
<span v-else-if="DataDB.status === 2" class="SpanBox1">
|
||||||
|
{{ $t('table.PacketCaptureHasBeenStopped') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { deviceReset, deviceReboot } from '@/api/index.js'
|
import {
|
||||||
|
deviceReset,
|
||||||
|
deviceReboot,
|
||||||
|
getPacketCaptureInfo,
|
||||||
|
deletePacketCapture,
|
||||||
|
startPacketCapture,
|
||||||
|
stopPacketCapture
|
||||||
|
} from '@/api/index.js'
|
||||||
export default {
|
export default {
|
||||||
name: 'FactorySetting',
|
name: 'FactorySetting',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
DataDB: {
|
||||||
|
status: 0,
|
||||||
|
file: ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
@ -103,6 +135,49 @@ export default {
|
|||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
getPacketInfo() {
|
||||||
|
getPacketCaptureInfo({}).then(res => {
|
||||||
|
const data = res.data
|
||||||
|
this.DataDB.status = data.status
|
||||||
|
this.DataDB.file = data.file
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
StartPacketCapture(Flag) {
|
||||||
|
if (Flag === 1) {
|
||||||
|
startPacketCapture({}).then(res => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getPacketInfo()
|
||||||
|
}, 300)
|
||||||
|
})
|
||||||
|
} else if (Flag === 0) {
|
||||||
|
stopPacketCapture({}).then(res => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getPacketInfo()
|
||||||
|
}, 300)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
DeletePacketCaptureRecords() {
|
||||||
|
const data = {
|
||||||
|
name: this.DataDB.file
|
||||||
|
}
|
||||||
|
// console.log(data);
|
||||||
|
deletePacketCapture(data).then(res => {
|
||||||
|
this.DataDB.status = 0
|
||||||
|
this.$message.success(this.$i18n.t('table.Delete') + this.$i18n.t('table.success'))
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
DownloadFile() {
|
||||||
|
if (this.DataDB.file === '') {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const URL = '/prod-api/pcap/' + this.DataDB.file
|
||||||
|
window.open(URL)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,7 +103,7 @@ export default {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (files.size / 1024 / 1024 > 5) {
|
if (files.size / 1024 / 1024 > 30) {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
message: this.$i18n.t('table.fileSizeTip')
|
message: this.$i18n.t('table.fileSizeTip')
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('table.actions')"
|
:label="$t('table.actions')"
|
||||||
align="center"
|
align="center"
|
||||||
width="160"
|
width="220"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@ -59,11 +59,11 @@
|
|||||||
<el-button class="ftbtn ftbtn2" @click="toBottom">{{
|
<el-button class="ftbtn ftbtn2" @click="toBottom">{{
|
||||||
$t("table.toBottom")
|
$t("table.toBottom")
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
<el-button class="ftbtn ftbtn2" @click="clearCon">{{
|
<!-- <el-button class="ftbtn ftbtn2" @click="clearCon">{{-->
|
||||||
$t("table.clear")
|
<!-- $t("table.clear")-->
|
||||||
}}</el-button>
|
<!-- }}</el-button>-->
|
||||||
<el-button class="ftbtn ftbtn3" @click="closeDia">{{
|
<el-button class="ftbtn ftbtn3" @click="closeDia">{{
|
||||||
$t("table.close")
|
$t("table.close1")
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -180,9 +180,9 @@ export default {
|
|||||||
toBottom() {
|
toBottom() {
|
||||||
this.$refs.scrollbar.wrap.scrollTop = this.$refs.scrollbar.wrap.scrollHeight
|
this.$refs.scrollbar.wrap.scrollTop = this.$refs.scrollbar.wrap.scrollHeight
|
||||||
},
|
},
|
||||||
clearCon() {
|
// clearCon() {
|
||||||
this.logData = ''
|
// this.logData = ''
|
||||||
},
|
// },
|
||||||
closeDia() {
|
closeDia() {
|
||||||
this.dialogVisible = false
|
this.dialogVisible = false
|
||||||
this.rowName = ''
|
this.rowName = ''
|
||||||
|
|||||||
@ -39,8 +39,8 @@
|
|||||||
v-model="formData.aiVol"
|
v-model="formData.aiVol"
|
||||||
:step="1"
|
:step="1"
|
||||||
:max="10"
|
:max="10"
|
||||||
@change="aiVolChange"
|
|
||||||
style="width: 120px;"
|
style="width: 120px;"
|
||||||
|
@change="aiVolChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('table.aoVol')" style="margin-left: 12px;">
|
<el-form-item :label="$t('table.aoVol')" style="margin-left: 12px;">
|
||||||
@ -48,8 +48,8 @@
|
|||||||
v-model="formData.aoVol"
|
v-model="formData.aoVol"
|
||||||
:step="1"
|
:step="1"
|
||||||
:max="10"
|
:max="10"
|
||||||
@change="aoVolChange"
|
|
||||||
style="width: 120px;"
|
style="width: 120px;"
|
||||||
|
@change="aoVolChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -255,7 +255,7 @@ export default {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (files.size / 1024 / 1024 > 5) {
|
if (files.size / 1024 / 1024 > 30) {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
message: this.$i18n.t('table.fileSizeTip')
|
message: this.$i18n.t('table.fileSizeTip')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user