|
|
@@ -182,7 +182,7 @@
|
|
|
:max="16" label="描述文字" size="small"></el-input-number>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-table class="w-auto" height="350" border :data="formData.subSystemList">
|
|
|
+ <el-table class="w-auto" max-height="350" border :data="formData.subSystemList">
|
|
|
<el-table-column label="子系统号" width="120" align="center">
|
|
|
<template slot-scope="r">
|
|
|
<el-input v-model="r.row.subSystemIndex" maxlength="50" placeholder=""/>
|
|
|
@@ -202,13 +202,73 @@
|
|
|
</el-radio-group>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作列表" width="140" align="center">
|
|
|
+ <el-table-column label="操作列表" width="90" align="center">
|
|
|
<template slot-scope="r">
|
|
|
<btn-tip type="text" v-if="showSubSystemDeleted(r.row)" @click="deleteSunSystem(r.row, r.$index)">删除
|
|
|
</btn-tip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
+ <el-divider class="sensor-divider"></el-divider>
|
|
|
+
|
|
|
+ <el-row :gutter="48" style="margin-top: 1px">
|
|
|
+ <el-col :span='12' style='text-align: left'> 报警输入</el-col>
|
|
|
+ <el-col :span='12' style='text-align: right'>
|
|
|
+ <span>报警输入数量 :</span>
|
|
|
+ <el-input-number style="margin-left: 15px" @change="inputSensorNumsChange" v-model="formData.inputSensorNums" :min="1"
|
|
|
+ :max="16" label="描述文字" size="small"></el-input-number>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-table class="w-auto" max-height="350" border :data="formData.inputSensorList">
|
|
|
+ <el-table-column label="序号" width="120" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-input v-model="r.row.inputSensorIndex" maxlength="50" placeholder=""/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column label="名称" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-input v-model="r.row.subSystemName" maxlength="50" placeholder=""/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="网络模块" align="center" >
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-input v-model="r.row.moduleAddress" maxlength="50" placeholder="" disabled/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="子系统号" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-input v-model="r.row.subSystemIndex" maxlength="50" placeholder=""/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="防区类型" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-select prop="sensorType" v-model="r.row.sensorType">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in sensorTypeList"
|
|
|
+ :key="dict.key"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.key"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="是否启用" width="160" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <el-radio-group v-model="r.row.enable">
|
|
|
+ <el-radio :label="0">启用</el-radio>
|
|
|
+ <el-radio :label="1">禁用</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作列表" width="90" align="center">
|
|
|
+ <template slot-scope="r">
|
|
|
+ <btn-tip type="text" v-if="showInputSensorDeleted(r.row)" @click="deleteInputSensor(r.row, r.$index)">删除
|
|
|
+ </btn-tip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
</el-form>
|
|
|
</div>
|
|
|
|
|
|
@@ -222,7 +282,7 @@
|
|
|
|
|
|
<script>
|
|
|
import {mapMutations, mapState} from "vuex";
|
|
|
-import {editDvrHostDevice, getProductDisplayName} from "@/api/iot/deviceInfo";
|
|
|
+import {editAlarmHostDevice, getProductDisplayName} from "@/api/iot/deviceInfo";
|
|
|
import KSelect from "@/components/common/userselect.vue";
|
|
|
import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
|
|
|
import * as iotApi from "@/api/iot/alarmRule";
|
|
|
@@ -240,6 +300,23 @@ export default {
|
|
|
productList: [],
|
|
|
modelList: [],
|
|
|
hostConnectList: [],
|
|
|
+ sensorTypeList: [
|
|
|
+ {key:'Other',label:'其他'},
|
|
|
+ {key:'Displacement',label:'位移'},
|
|
|
+ {key:'Broken',label:'破碎'},
|
|
|
+ {key:'Infrared',label:'红外'},
|
|
|
+ {key:'Soaking',label:'水浸'},
|
|
|
+ {key:'Shock',label:'震动'},
|
|
|
+ {key:'Tamper',label:'防拆'},
|
|
|
+ {key:'Humidity',label:'湿度'},
|
|
|
+ {key:'Temperature',label:'温度'},
|
|
|
+ {key:'Intrusion',label:'入侵'},
|
|
|
+ {key:'DoorSensor',label:'门磁'},
|
|
|
+ {key:'Smoke',label:'烟感'},
|
|
|
+ {key:'IMDualidentification',label:'红外微波双鉴'},
|
|
|
+ {key:'Microwave',label:'微波'},
|
|
|
+ {key:'EmergencyButton',label:'紧急按钮'},
|
|
|
+ ],
|
|
|
hostDeviceTypeList: [
|
|
|
{id: 17, label: 'ICP_CMS6_CHI_V1_00'},
|
|
|
{id: 18, label: 'AMAX2000'},
|
|
|
@@ -310,12 +387,22 @@ export default {
|
|
|
models: "",
|
|
|
hostDeviceType: "",
|
|
|
enable: 0,
|
|
|
+ subSystemNums: 1,
|
|
|
subSystemList: [{
|
|
|
subSystemIndex: 0,
|
|
|
- subSystemName: '111',
|
|
|
+ subSystemName: '子系统1',
|
|
|
enable: 0
|
|
|
}],
|
|
|
- subSystemNums: 1,
|
|
|
+ inputSensorNums: 1,
|
|
|
+ inputSensorList: [{
|
|
|
+ inputSensorIndex: 0,
|
|
|
+ inputSensorName: '',
|
|
|
+ moduleAddress: '0',
|
|
|
+ subSystemIndex: '0',
|
|
|
+ sensorType: 'Other',
|
|
|
+ enable: 0
|
|
|
+ }],
|
|
|
+
|
|
|
...other,
|
|
|
};
|
|
|
},
|
|
|
@@ -344,7 +431,7 @@ export default {
|
|
|
async onSubmit() {
|
|
|
this.$refs["form"].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- editDvrHostDevice(this.formData).then(r => {
|
|
|
+ editAlarmHostDevice(this.formData).then(r => {
|
|
|
if (!this.formData.id) {
|
|
|
this.$modal.msgSuccess("新增成功");
|
|
|
} else {
|
|
|
@@ -500,6 +587,38 @@ export default {
|
|
|
this.formData.subSystemList.pop();
|
|
|
}
|
|
|
this.formData.subSystemNums = this.formData.subSystemList.length;
|
|
|
+ },
|
|
|
+
|
|
|
+ deleteInputSensor(row, index) {
|
|
|
+ if (this.formData.inputSensorList.length === 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.formData.inputSensorList.splice(index, 1);
|
|
|
+ this.formData.inputSensorNums = this.formData.inputSensorList.length;
|
|
|
+ },
|
|
|
+ showInputSensorDeleted(row) {
|
|
|
+ //如果当前元素在this.formData.subSystemList第一个的位置 不显示删除按钮
|
|
|
+ return this.formData.inputSensorList.indexOf(row) != 0;
|
|
|
+
|
|
|
+ },
|
|
|
+ inputSensorNumsChange(nums) {
|
|
|
+ while (this.formData.inputSensorList.length < nums) {
|
|
|
+ let end=this.formData.inputSensorList[this.formData.inputSensorList.length-1];
|
|
|
+
|
|
|
+ this.formData.inputSensorList.push({
|
|
|
+ inputSensorIndex: end.inputSensorIndex+1,
|
|
|
+ inputSensorName: '',
|
|
|
+ moduleAddress: '0',
|
|
|
+ subSystemIndex: '0',
|
|
|
+ sensorType: 'Other',
|
|
|
+ enable: 0
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ while (this.formData.inputSensorList.length > nums) {
|
|
|
+ this.formData.inputSensorList.pop();
|
|
|
+ }
|
|
|
+ this.formData.subSystemNums = this.formData.inputSensorList.length;
|
|
|
}
|
|
|
},
|
|
|
};
|
|
|
@@ -509,4 +628,7 @@ export default {
|
|
|
.custom-divider {
|
|
|
margin-top: 1px;
|
|
|
}
|
|
|
+.sensor-divider {
|
|
|
+ margin-top: 30px;
|
|
|
+}
|
|
|
</style>
|