[1078] 优化终端参数查询和设置

This commit is contained in:
lin
2025-07-18 17:34:01 +08:00
parent ebd95250c0
commit 9b0d091e4e
20 changed files with 1142 additions and 125 deletions

View File

@@ -0,0 +1,85 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px); overflow: auto">
<el-form ref="form" :model="form" label-width="240px" style="width: 90%; margin: 0 auto; ">
<el-form-item label="报警屏蔽字" prop="alarmMaskingWord">
<alarmSign v-model="form.alarmMaskingWord"></alarmSign>
</el-form-item>
<el-form-item label="报警发送文本SMS开关" prop="alarmSendsTextSmsSwitch">
<alarmSign v-model="form.alarmSendsTextSmsSwitch"></alarmSign>
</el-form-item>
<el-form-item label="报警拍摄开关" prop="alarmShootingSwitch">
<alarmSign v-model="form.alarmShootingSwitch"></alarmSign>
</el-form-item>
<el-form-item label="报警拍摄存储标志" prop="alarmShootingStorageFlags">
<alarmSign v-model="form.alarmShootingStorageFlags"></alarmSign>
</el-form-item>
<el-form-item label="关键标志" prop="KeySign">
<alarmSign v-model="form.KeySign"></alarmSign>
</el-form-item>
<el-form-item label="电子围栏半径(米)" prop="fenceRadius">
<el-input v-model="form.fenceRadius" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
import alarmSign from './alarmSign.vue'
export default {
name: 'communication',
components: {
alarmSign
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {
alarmMaskingWord: {},
alarmSendsTextSmsSwitch: {},
alarmShootingSwitch: {},
alarmShootingStorageFlags: {},
KeySign: {}
},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,133 @@
<template>
<div style="width: 100%;">
<el-checkbox label="紧急报警" v-model="form.urgent" @change="change"></el-checkbox>
<el-checkbox label="超速报警" v-model="form.alarmSpeeding" @change="change"></el-checkbox>
<el-checkbox label="疲劳驾驶报警" v-model="form.alarmTired" @change="change"></el-checkbox>
<el-checkbox label="危险驾驶行为报警" v-model="form.alarmDangerous" @change="change"></el-checkbox>
<el-checkbox label="GNSS模块发生故障报警" v-model="form.alarmGnssFault" @change="change"></el-checkbox>
<el-checkbox label="GNSS天线未接或被剪断报警" v-model="form.alarmGnssBreak" @change="change"></el-checkbox>
<el-checkbox label="GNSS天线短路报警" v-model="form.alarmGnssShortCircuited" @change="change"></el-checkbox>
<el-checkbox label="终端主电源欠压报警" v-model="form.alarmUnderVoltage" @change="change"></el-checkbox>
<el-checkbox label="终端主电源掉电报警" v-model="form.alarmPowerOff" @change="change"></el-checkbox>
<el-checkbox label="终端LCD或显示器故障报警" v-model="form.alarmLCD" @change="change"></el-checkbox>
<el-checkbox label="TTS模块故障报警" v-model="form.alarmTtsFault" @change="change"></el-checkbox>
<el-checkbox label="摄像头故障报警" v-model="form.alarmCameraFault" @change="change"></el-checkbox>
<el-checkbox label="IC卡模块故障报警" v-model="form.alarmIcFault" @change="change"></el-checkbox>
<el-checkbox label="超速预警" v-model="form.warningSpeeding" @change="change"></el-checkbox>
<el-checkbox label="疲劳驾驶预警" v-model="form.warningTired" @change="change"></el-checkbox>
<el-checkbox label="违规行驶报警" v-model="form.alarmWrong" @change="change"></el-checkbox>
<el-checkbox label="胎压预警" v-model="form.warningTirePressure" @change="change"></el-checkbox>
<el-checkbox label="右转盲区异常报警" v-model="form.alarmBlindZone" @change="change"></el-checkbox>
<el-checkbox label="当天累计驾驶超时报警" v-model="form.alarmDrivingTimeout" @change="change"></el-checkbox>
<el-checkbox label="超时停车报警" v-model="form.alarmParkingTimeout" @change="change"></el-checkbox>
<el-checkbox label="进出区域报警" v-model="form.alarmRegion" @change="change"></el-checkbox>
<el-checkbox label="进出路线报警" v-model="form.alarmRoute" @change="change"></el-checkbox>
<el-checkbox label="路段行驶时间不足/过长报警" v-model="form.alarmTravelTime" @change="change"></el-checkbox>
<el-checkbox label="路线偏离报警" v-model="form.alarmRouteDeviation" @change="change"></el-checkbox>
<el-checkbox label="车辆VSS故障" v-model="form.alarmVSS" @change="change"></el-checkbox>
<el-checkbox label="车辆油量异常报警" v-model="form.alarmOil" @change="change"></el-checkbox>
<el-checkbox label="车辆被盗报警" v-model="form.alarmStolen" @change="change"></el-checkbox>
<el-checkbox label="车辆非法点火报警" v-model="form.alarmIllegalIgnition" @change="change"></el-checkbox>
<el-checkbox label="车辆非法位移报警" v-model="form.alarmIllegalDisplacement" @change="change"></el-checkbox>
<el-checkbox label="碰撞侧翻报警" v-model="form.alarmRollover" @change="change"></el-checkbox>
<el-checkbox label="侧翻预警" v-model="form.warningRollover" @change="change"></el-checkbox>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
model: {
prop: 'fatherValue',
event: 'change'
},
props: {
fatherValue: {
type: Object,
default: null
}
},
data() {
return {
form: {
urgent: false,
alarmSpeeding: false,
alarmTired: false,
alarmDangerous: false,
alarmGnssFault: false,
alarmGnssBreak: false,
alarmGnssShortCircuited: false,
alarmUnderVoltage: false,
alarmPowerOff: false,
alarmLCD: false,
alarmTtsFault: false,
alarmCameraFault: false,
alarmIcFault: false,
warningSpeeding: false,
warningTired: false,
alarmWrong: false,
warningTirePressure: false,
alarmBlindZone: false,
alarmDrivingTimeout: false,
alarmParkingTimeout: false,
alarmRegion: false,
alarmRoute: false,
alarmTravelTime: false,
alarmRouteDeviation: false,
alarmVSS: false,
alarmOil: false,
alarmStolen: false,
alarmIllegalIgnition: false,
alarmIllegalDisplacement: false,
alarmRollover: false,
warningRollover: false
},
isLoading: false
}
},
mounted() {
if (this.fatherValue !== null) {
this.form.urgent = this.fatherValue.urgent || false
this.form.alarmSpeeding = this.fatherValue.alarmSpeeding || false
this.form.alarmTired = this.fatherValue.alarmTired || false
this.form.alarmDangerous = this.fatherValue.alarmDangerous || false
this.form.alarmGnssFault = this.fatherValue.alarmGnssFault || false
this.form.alarmGnssBreak = this.fatherValue.alarmGnssBreak || false
this.form.alarmGnssShortCircuited = this.fatherValue.alarmGnssShortCircuited || false
this.form.alarmUnderVoltage = this.fatherValue.alarmUnderVoltage || false
this.form.alarmPowerOff = this.fatherValue.alarmPowerOff || false
this.form.alarmLCD = this.fatherValue.alarmLCD || false
this.form.alarmTtsFault = this.fatherValue.alarmTtsFault || false
this.form.alarmCameraFault = this.fatherValue.alarmCameraFault || false
this.form.alarmIcFault = this.fatherValue.alarmIcFault || false
this.form.warningSpeeding = this.fatherValue.warningSpeeding || false
this.form.warningTired = this.fatherValue.warningTired || false
this.form.alarmWrong = this.fatherValue.alarmWrong || false
this.form.warningTirePressure = this.fatherValue.warningTirePressure || false
this.form.alarmBlindZone = this.fatherValue.alarmBlindZone || false
this.form.alarmDrivingTimeout = this.fatherValue.alarmDrivingTimeout || false
this.form.alarmParkingTimeout = this.fatherValue.alarmParkingTimeout || false
this.form.alarmRegion = this.fatherValue.alarmRegion || false
this.form.alarmRoute = this.fatherValue.alarmRoute || false
this.form.alarmTravelTime = this.fatherValue.alarmTravelTime || false
this.form.alarmRouteDeviation = this.fatherValue.alarmRouteDeviation || false
this.form.alarmVSS = this.fatherValue.alarmVSS || false
this.form.alarmOil = this.fatherValue.alarmOil || false
this.form.alarmStolen = this.fatherValue.alarmStolen || false
this.form.alarmIllegalIgnition = this.fatherValue.alarmIllegalIgnition || false
this.form.alarmIllegalDisplacement = this.fatherValue.alarmIllegalDisplacement || false
this.form.alarmRollover = this.fatherValue.alarmRollover || false
this.form.warningRollover = this.fatherValue.warningRollover || false
}
},
methods: {
change() {
this.$emit('change', this.form)
}
}
}
</script>

View File

@@ -0,0 +1,83 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item label="定时拍照" prop="rolloverAlarm">
<el-checkbox label="通道1" v-model="form.cameraTimer.switchForChannel1"></el-checkbox>
<el-checkbox label="通道2" v-model="form.cameraTimer.switchForChannel2"></el-checkbox>
<el-checkbox label="通道3" v-model="form.cameraTimer.switchForChannel3"></el-checkbox>
<el-checkbox label="通道4" v-model="form.cameraTimer.switchForChannel4"></el-checkbox>
<el-checkbox label="通道5" v-model="form.cameraTimer.switchForChannel5"></el-checkbox>
</el-form-item>
<el-form-item label="定时拍照存储" prop="rolloverAlarm">
<el-checkbox label="通道1" v-model="form.cameraTimer.storageFlagsForChannel1"></el-checkbox>
<el-checkbox label="通道2" v-model="form.cameraTimer.storageFlagsForChannel2"></el-checkbox>
<el-checkbox label="通道3" v-model="form.cameraTimer.storageFlagsForChannel3"></el-checkbox>
<el-checkbox label="通道4" v-model="form.cameraTimer.storageFlagsForChannel4"></el-checkbox>
<el-checkbox label="通道5" v-model="form.cameraTimer.storageFlagsForChannel5"></el-checkbox>
</el-form-item>
<el-form-item label="定时时间单位" prop="rolloverAlarm">
<el-radio-group v-model="form.cameraTimer.timeUnit">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="定时时间间隔" prop="timeInterval">
<el-input v-model="form.cameraTimer.timeInterval" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,80 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item label="心跳发送间隔(秒)" prop="keepaliveInterval">
<el-input v-model="form.keepaliveInterval" clearable />
</el-form-item>
<el-form-item label="TCP消息应答超时(秒)" prop="tcpResponseTimeout">
<el-input v-model="form.tcpResponseTimeout" clearable />
</el-form-item>
<el-form-item label="TCP消息重传次数" prop="tcpRetransmissionCount">
<el-input v-model="form.tcpRetransmissionCount" clearable />
</el-form-item>
<el-form-item label="UDP消息应答超时时间(秒)" prop="udpResponseTimeout">
<el-input v-model="form.udpResponseTimeout" clearable />
</el-form-item>
<el-form-item label="UDP消息重传次数" prop="udpRetransmissionCount">
<el-input v-model="form.udpRetransmissionCount" clearable />
</el-form-item>
<el-form-item label="SMS 消息应答超时时间(秒)" prop="smsResponseTimeout">
<el-input v-model="form.smsResponseTimeout" clearable />
</el-form-item>
<el-form-item label="SMS 消息重传次数" prop="smsRetransmissionCount">
<el-input v-model="form.smsRetransmissionCount" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,101 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item v-if="form.illegalDrivingPeriods" label="违规行驶时段-开始时间(HH:mm)" prop="illegalDrivingPeriods">
<el-input v-model="form.illegalDrivingPeriods.startTime" clearable />
</el-form-item>
<el-form-item v-if="form.illegalDrivingPeriods" label="违规行驶时段-结束时间(HH:mm)" prop="illegalDrivingPeriods">
<el-input v-model="form.illegalDrivingPeriods.endTime" clearable />
</el-form-item>
<el-form-item label="最高速度(千米每小时)" prop="topSpeed">
<el-input v-model="form.topSpeed" clearable />
</el-form-item>
<el-form-item label="超速持续时间(秒)" prop="overSpeedDuration">
<el-input v-model="form.overSpeedDuration" clearable />
</el-form-item>
<el-form-item label="连续驾驶时间门限(秒)" prop="continuousDrivingTimeThreshold">
<el-input v-model="form.continuousDrivingTimeThreshold" clearable />
</el-form-item>
<el-form-item label="当天累计驾驶时间门限(秒)" prop="cumulativeDrivingTimeThresholdForTheDay">
<el-input v-model="form.cumulativeDrivingTimeThresholdForTheDay" clearable />
</el-form-item>
<el-form-item label="最小休息时间(秒)" prop="minimumBreakTime">
<el-input v-model="form.minimumBreakTime" clearable />
</el-form-item>
<el-form-item label="最长停车时间(秒)" prop="maximumParkingTime">
<el-input v-model="form.maximumParkingTime" clearable />
</el-form-item>
<el-form-item label="超速预警差值(1/10 千米每小时)" prop="overSpeedWarningDifference">
<el-input v-model="form.overSpeedWarningDifference" clearable />
</el-form-item>
<el-form-item label="疲劳驾驶预警差值(秒)" prop="drowsyDrivingWarningDifference">
<el-input v-model="form.drowsyDrivingWarningDifference" clearable />
</el-form-item>
<div v-if="form.collisionAlarmParams">
<el-form-item label="碰撞报警-碰撞时间(毫秒)" prop="collisionAlarmParamsCollisionAlarmTime">
<el-input v-model="form.collisionAlarmParams.collisionAlarmTime" clearable />
</el-form-item>
<el-form-item label="碰撞报警-碰撞加速度(0.1g)" prop="collisionAlarmParamsCollisionAcceleration">
<el-input v-model="form.collisionAlarmParams.collisionAcceleration" clearable />
</el-form-item>
</div>
<el-form-item label="侧翻报警参数-侧翻角度(度)" prop="rolloverAlarm">
<el-input v-model="form.rolloverAlarm" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,106 @@
<template>
<div id="jtDeviceParam" style="width: 100%">
<div class="page-header">
<div class="page-title">
<el-page-header content="终端参数" @back="showDevice" />
</div>
</div>
<el-tabs tab-position="left" style="height: calc(100vh - 164px); padding: 20px">
<el-tab-pane label="通讯参数">
<communication :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></communication>
</el-tab-pane>
<el-tab-pane label="服务器">
<server :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></server>
</el-tab-pane>
<el-tab-pane label="位置汇报">
<position :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></position>
</el-tab-pane>
<el-tab-pane label="电话号码">
<phoneNumber :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></phoneNumber>
</el-tab-pane>
<el-tab-pane label="报警参数">
<alarm :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></alarm>
</el-tab-pane>
<el-tab-pane label="行驶参数">
<driving :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></driving>
</el-tab-pane>
<el-tab-pane label="定时拍照">
<cameraTimer :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></cameraTimer>
</el-tab-pane>
<el-tab-pane label="音视频">
<media :phone-number="phoneNumber" @submit="onSubmit" @show-device="showDevice"></media>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import communication from './communication.vue'
import server from './server.vue'
import position from './position.vue'
import phoneNumber from './phoneNumber.vue'
import alarm from './alarm.vue'
import driving from './driving.vue'
import cameraTimer from './cameraTimer.vue'
import media from './media.vue'
export default {
name: 'JTDeviceParam',
components: {
communication, server, position, phoneNumber, alarm, driving, cameraTimer, media
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {
collisionAlarmParams: {},
illegalDrivingPeriods: {},
cameraTimer: {}
},
rules: {
deviceId: [{ required: true, message: '请输入设备编号', trigger: 'blur' }]
},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function(data) {
this.$store.dispatch('jtDevice/setConfig', {
phoneNumber: this.phoneNumber,
config: data
})
.then((data) => {
this.$message.success({
showClose: true,
message: '保存成功'
})
})
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,101 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item v-if="form.illegalDrivingPeriods" label="违规行驶时段-开始时间(HH:mm)" prop="illegalDrivingPeriods">
<el-input v-model="form.illegalDrivingPeriods.startTime" clearable />
</el-form-item>
<el-form-item v-if="form.illegalDrivingPeriods" label="违规行驶时段-结束时间(HH:mm)" prop="illegalDrivingPeriods">
<el-input v-model="form.illegalDrivingPeriods.endTime" clearable />
</el-form-item>
<el-form-item label="最高速度(千米每小时)" prop="topSpeed">
<el-input v-model="form.topSpeed" clearable />
</el-form-item>
<el-form-item label="超速持续时间(秒)" prop="overSpeedDuration">
<el-input v-model="form.overSpeedDuration" clearable />
</el-form-item>
<el-form-item label="连续驾驶时间门限(秒)" prop="continuousDrivingTimeThreshold">
<el-input v-model="form.continuousDrivingTimeThreshold" clearable />
</el-form-item>
<el-form-item label="当天累计驾驶时间门限(秒)" prop="cumulativeDrivingTimeThresholdForTheDay">
<el-input v-model="form.cumulativeDrivingTimeThresholdForTheDay" clearable />
</el-form-item>
<el-form-item label="最小休息时间(秒)" prop="minimumBreakTime">
<el-input v-model="form.minimumBreakTime" clearable />
</el-form-item>
<el-form-item label="最长停车时间(秒)" prop="maximumParkingTime">
<el-input v-model="form.maximumParkingTime" clearable />
</el-form-item>
<el-form-item label="超速预警差值(1/10 千米每小时)" prop="overSpeedWarningDifference">
<el-input v-model="form.overSpeedWarningDifference" clearable />
</el-form-item>
<el-form-item label="疲劳驾驶预警差值(秒)" prop="drowsyDrivingWarningDifference">
<el-input v-model="form.drowsyDrivingWarningDifference" clearable />
</el-form-item>
<div v-if="form.collisionAlarmParams">
<el-form-item label="碰撞报警-碰撞时间(毫秒)" prop="collisionAlarmParamsCollisionAlarmTime">
<el-input v-model="form.collisionAlarmParams.collisionAlarmTime" clearable />
</el-form-item>
<el-form-item label="碰撞报警-碰撞加速度(0.1g)" prop="collisionAlarmParamsCollisionAcceleration">
<el-input v-model="form.collisionAlarmParams.collisionAcceleration" clearable />
</el-form-item>
</div>
<el-form-item label="侧翻报警参数-侧翻角度(度)" prop="rolloverAlarm">
<el-input v-model="form.rolloverAlarm" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,89 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item label="监控平台电话号码" prop="platformPhoneNumber">
<el-input v-model="form.platformPhoneNumber" clearable />
</el-form-item>
<el-form-item label="复位电话号码" prop="phoneNumberForFactoryReset">
<el-input v-model="form.phoneNumberForFactoryReset" clearable />
</el-form-item>
<el-form-item label="监控平台SMS电话号码" prop="phoneNumberForSms">
<el-input v-model="form.phoneNumberForSms" clearable />
</el-form-item>
<el-form-item label="接收终端SMS文本报警号码" prop="phoneNumberForReceiveTextAlarm">
<el-input v-model="form.phoneNumberForReceiveTextAlarm" clearable />
</el-form-item>
<el-form-item label="终端电话接听策略" prop="locationReportingStrategy">
<el-select v-model="form.locationReportingStrategy" style="float: left; width: 100%">
<el-option label="自动接听" :value="0">定时汇报</el-option>
<el-option label="ACC ON时自动接听 ,OFF时手动接听" :value="1" />
</el-select>
</el-form-item>
<el-form-item label="每次最长通话时间(秒)" prop="longestCallTimeForPerSession">
<el-input v-model="form.longestCallTimeForPerSession" clearable />
</el-form-item>
<el-form-item label="当月最长通话时间(秒)" prop="longestCallTimeInMonth">
<el-input v-model="form.longestCallTimeInMonth" clearable />
</el-form-item>
<el-form-item label="监听电话号码" prop="phoneNumbersForListen">
<el-input v-model="form.phoneNumbersForListen" clearable />
</el-form-item>
<el-form-item label="监管平台特权短信号码" prop="privilegedSMSNumber">
<el-input v-model="form.privilegedSMSNumber" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,99 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px);">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto">
<el-form-item label="汇报策略" prop="locationReportingStrategy">
<el-select v-model="form.locationReportingStrategy" style="float: left; width: 100%">
<el-option label="定时汇报" :value="0">定时汇报</el-option>
<el-option label="定距汇报" :value="1" />
<el-option label="定时和定距汇报" :value="2" />
</el-select>
</el-form-item>
<el-form-item label="汇报方案" prop="locationReportingPlan">
<el-select v-model="form.locationReportingPlan" style="float: left; width: 100%">
<el-option label="根据ACC状态" :value="0" />
<el-option label="登录状态和ACC状态" :value="1" />
</el-select>
</el-form-item>
<el-form-item label="驾驶员未登录汇报时间间隔(秒)" prop="reportingIntervalOffline">
<el-input v-model="form.reportingIntervalOffline" clearable />
</el-form-item>
<el-form-item label="休眠时汇报时间间隔(秒)" prop="reportingIntervalDormancy">
<el-input v-model="form.reportingIntervalDormancy" clearable />
</el-form-item>
<el-form-item label="紧急报警时汇报时间间隔(秒)" prop="reportingIntervalEmergencyAlarm">
<el-input v-model="form.reportingIntervalEmergencyAlarm" clearable />
</el-form-item>
<el-form-item label="缺省时间汇报间隔(秒)" prop="reportingIntervalDefault">
<el-input v-model="form.reportingIntervalDefault" clearable />
</el-form-item>
<el-form-item label="缺省距离汇报间隔(米)" prop="reportingDistanceDefault">
<el-input v-model="form.reportingDistanceDefault" clearable />
</el-form-item>
<el-form-item label="驾驶员未登录汇报距离间隔(米)" prop="reportingDistanceOffline">
<el-input v-model="form.reportingDistanceOffline" clearable />
</el-form-item>
<el-form-item label="休眠时汇报距离间隔(米)" prop="reportingDistanceDormancy">
<el-input v-model="form.reportingDistanceDormancy" clearable />
</el-form-item>
<el-form-item label="紧急报警时汇报距离间隔(米)" prop="reportingDistanceEmergencyAlarm">
<el-input v-model="form.reportingDistanceEmergencyAlarm" clearable />
</el-form-item>
<el-form-item label="拐点补传角度(度小于180)" prop="inflectionPointAngle">
<el-input v-model="form.inflectionPointAngle" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'communication',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -0,0 +1,116 @@
<template>
<div style="width: 100%;">
<div style="height: calc(100vh - 260px); overflow: auto">
<el-form ref="form" :model="form" label-width="240px" style="width: 50%; margin: 0 auto; ">
<el-divider content-position="center">主服务器</el-divider>
<el-form-item label="APN(主)" prop="apnMaster">
<el-input v-model="form.apnMaster" clearable />
</el-form-item>
<el-form-item label="无线通信拨号用户名(主)" prop="dialingUsernameMaster">
<el-input v-model="form.dialingUsernameMaster" clearable />
</el-form-item>
<el-form-item label="无线通信拨号密码(主)" prop="dialingPasswordMaster">
<el-input v-model="form.dialingPasswordMaster" clearable />
</el-form-item>
<el-form-item label="IP或域名(主)" prop="addressMaster">
<el-input v-model="form.addressMaster" clearable />
</el-form-item>
<el-divider content-position="center">备份服务器</el-divider>
<el-form-item label="APN(备)" prop="apnBackup">
<el-input v-model="form.apnBackup" clearable />
</el-form-item>
<el-form-item label="无线通信拨号用户名(备)" prop="dialingUsernameBackup">
<el-input v-model="form.dialingUsernameBackup" clearable />
</el-form-item>
<el-form-item label="无线通信拨号密码(备)" prop="dialingPasswordBackup">
<el-input v-model="form.dialingPasswordBackup" clearable />
</el-form-item>
<el-form-item label="IP或域名(备)" prop="addressBackup">
<el-input v-model="form.addressBackup" clearable />
</el-form-item>
<el-divider content-position="center">从服务器</el-divider>
<el-form-item label="APN(从)" prop="apnBackup">
<el-input v-model="form.apnBackup" clearable />
</el-form-item>
<el-form-item label="无线通信拨号用户名(从)" prop="dialingUsernameSlave">
<el-input v-model="form.dialingUsernameSlave" clearable />
</el-form-item>
<el-form-item label="无线通信拨号密码(从)" prop="dialingPasswordSlave">
<el-input v-model="form.dialingPasswordSlave" clearable />
</el-form-item>
<el-form-item label="IP或域名(从)" prop="addressSlave">
<el-input v-model="form.addressSlave" clearable />
</el-form-item>
<el-divider content-position="center">IC卡认证服务器</el-divider>
<el-form-item label="IC卡认证服务器IP(主)" prop="addressIcMaster">
<el-input v-model="form.addressIcMaster" clearable />
</el-form-item>
<el-form-item label="IC卡认证服务器IP(备)" prop="addressIcMaster">
<el-input v-model="form.addressIcBackup" clearable />
</el-form-item>
<el-form-item label="IC卡认证服务器TCP端口" prop="tcpPortIcMaster">
<el-input v-model="form.tcpPortIcMaster" clearable />
</el-form-item>
<el-form-item label="IC卡认证服务器UDP端口" prop="udpPortIcMaster">
<el-input v-model="form.udpPortIcMaster" clearable />
</el-form-item>
</el-form>
</div>
<p style="text-align: right">
<el-button type="primary" @click="onSubmit">确认</el-button>
<el-button @click="showDevice">取消</el-button>
</p>
</div>
</template>
<script>
export default {
name: 'server',
components: {
},
props: {
phoneNumber: {
type: String,
default: null
}
},
data() {
return {
form: {},
isLoading: false
}
},
mounted() {
this.initData()
},
methods: {
initData: function() {
this.isLoading = true
this.$store.dispatch('jtDevice/queryConfig', this.phoneNumber)
.then((data) => {
this.form = data
})
.catch((e) => {
console.log(e)
})
.finally(() => {
this.isLoading = false
})
},
onSubmit: function() {
this.$emit('submit', this.form)
},
showDevice: function() {
this.$emit('show-device')
}
}
}
</script>

View File

@@ -9,7 +9,7 @@
<script>
import deviceList from './list.vue'
import channelList from './channel/index.vue'
import deviceParam from './jtDeviceParam.vue'
import deviceParam from './deviceParam/index.vue'
export default {
name: 'JTDevice',

View File

@@ -115,8 +115,8 @@
文本下发</el-dropdown-item>
<el-dropdown-item command="telephoneCallback" v-bind:disabled="!scope.row.status" >
电话回拨</el-dropdown-item>
<el-dropdown-item command="setPhoneBook" v-bind:disabled="!scope.row.status" >
设置电话本</el-dropdown-item>
<!-- <el-dropdown-item command="setPhoneBook" v-bind:disabled="!scope.row.status" >-->
<!-- 设置电话本</el-dropdown-item>-->
<el-dropdown-item command="driverInfo" v-bind:disabled="!scope.row.status" >
驾驶员信息</el-dropdown-item>
<el-dropdown-item command="reset" v-bind:disabled="!scope.row.status" >