<template> <div> <el-tabs v-model="activeName" type="card"> <el-tab-pane label="基础配置" name="1"> <el-form ref="monitorForm" :model="monitorForm" :rules="rules" label-width="200px" class="form" > <el-form-item label="检测设备:" prop="wayId"> <el-input v-model="rowData.equipName" disabled placeholder="检测设备" /> </el-form-item> <el-form-item label="测量周期" prop="measurementCycle"> <el-input v-model="monitorForm.measurementCycle" placeholder="请输入测量周期" /> </el-form-item> <el-form-item label="漏缆一般告警门限" prop="leakyCableGeneralAlarmThreshold" > <el-input v-model="monitorForm.leakyCableGeneralAlarmThreshold" placeholder="请输入漏缆一般告警门限" /> </el-form-item> <el-form-item label="漏缆重要告警门限" prop="leakyCableImportantAlarmThreshold" > <el-input v-model="monitorForm.leakyCableImportantAlarmThreshold" placeholder="请输入漏缆重要告警门限" /> </el-form-item> <el-form-item label="漏缆紧急告警门限" prop="leakyCableEmergencyAlarmThreshold" > <el-input v-model="monitorForm.leakyCableEmergencyAlarmThreshold" placeholder="请输入漏缆紧急告警门限" /> </el-form-item> <el-form-item label="监测服务器IP地址" prop="leakyCableImportantAlarmThreshold" > <el-input v-model="monitorForm.serverIp" placeholder="请输入监测服务器IP地址" /> </el-form-item> <el-form-item label="设备输出功率" prop="deviceOutputPower"> <el-input v-model="monitorForm.deviceOutputPower" placeholder="请输入设备输出功率" /> </el-form-item> <el-form-item label="设备的起始频率" prop="deviceStartFrequency"> <el-input v-model="monitorForm.deviceStartFrequency" placeholder="请输入设备的起始频率" /> </el-form-item> <el-form-item label="设备的终止频率" prop="deviceEndFrequency"> <el-input v-model="monitorForm.deviceEndFrequency" placeholder="请输入设备的终止频率" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSub('monitorForm')" >确定</el-button > <el-button @click="handleClose()">取消</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="上行漏缆1" name="2"> <el-form ref="monitorForm" :model="monitorForm" :rules="rules" label-width="200px" class="form" > <el-form-item label="上行漏缆1起始位置" prop="uplinkLeakyCable1StartPosition" > <el-input v-model="monitorForm.uplinkLeakyCable1StartPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆1终止位置" prop="uplinkLeakyCable1EndPosition" > <el-input v-model="monitorForm.uplinkLeakyCable1EndPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆1百米损耗" prop="uplinkLeakyCable1HundredMeterLoss" > <el-input v-model="monitorForm.uplinkLeakyCable1HundredMeterLoss" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆1相对传播速度" prop="uplinkLeakyCable1RelativePropagationSpeed" > <el-input v-model="monitorForm.uplinkLeakyCable1RelativePropagationSpeed" placeholder="请输入" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSub('monitorForm')" >确定</el-button > <el-button @click="handleClose()">取消</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="上行漏缆2" name="4"> <el-form ref="monitorForm" :model="monitorForm" :rules="rules" label-width="200px" class="form" > <el-form-item label="上行漏缆2起始位置" prop="uplinkLeakyCable2StartPosition" > <el-input v-model="monitorForm.uplinkLeakyCable2StartPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆2终止位置" prop="uplinkLeakyCable2EndPosition" > <el-input v-model="monitorForm.uplinkLeakyCable2EndPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆2百米损耗" prop="uplinkLeakyCable2HundredMeterLoss" > <el-input v-model="monitorForm.uplinkLeakyCable2HundredMeterLoss" placeholder="请输入" /> </el-form-item> <el-form-item label="上行漏缆2相对传播速度" prop="uplinkLeakyCable2RelativePropagationSpeed" > <el-input v-model="monitorForm.uplinkLeakyCable2RelativePropagationSpeed" placeholder="请输入" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSub('monitorForm')" >确定</el-button > <el-button @click="handleClose()">取消</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="下行漏缆1" name="3"> <el-form ref="monitorForm" :model="monitorForm" :rules="rules" label-width="200px" class="form" > <el-form-item label="下行漏缆1起始位置" prop="downlinkLeakyCable1StartPosition" > <el-input v-model="monitorForm.downlinkLeakyCable1StartPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆1终止位置" prop="downlinkLeakyCable1EndPosition" > <el-input v-model="monitorForm.downlinkLeakyCable1EndPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆1百米损耗" prop="downlinkLeakyCable1HundredMeterLoss" > <el-input v-model="monitorForm.downlinkLeakyCable1HundredMeterLoss" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆1相对传播速度" prop="downlinkLeakyCable1RelativePropagationSpeed" > <el-input v-model="monitorForm.downlinkLeakyCable1RelativePropagationSpeed" placeholder="请输入" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSub('monitorForm')" >确定</el-button > <el-button @click="handleClose()">取消</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="下行漏缆2" name="5"> <el-form ref="monitorForm" :model="monitorForm" :rules="rules" label-width="200px" class="form" > <el-form-item label="下行漏缆2起始位置" prop="downlinkLeakyCable2StartPosition" > <el-input v-model="monitorForm.downlinkLeakyCable2StartPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆2终止位置" prop="downlinkLeakyCable2EndPosition" > <el-input v-model="monitorForm.downlinkLeakyCable2EndPosition" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆2百米损耗" prop="downlinkLeakyCable2HundredMeterLoss" > <el-input v-model="monitorForm.downlinkLeakyCable2HundredMeterLoss" placeholder="请输入" /> </el-form-item> <el-form-item label="下行漏缆2相对传播速度" prop="downlinkLeakyCable2RelativePropagationSpeed" > <el-input v-model="monitorForm.downlinkLeakyCable2RelativePropagationSpeed" placeholder="请输入" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSub('monitorForm')" >确定</el-button > <el-button @click="handleClose()">取消</el-button> </el-form-item> </el-form> </el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeName: "1", device: "1", monitorForm: { devicePortType: "1", }, options: [ { value: "1", label: "漏缆1" }, { value: "2", label: "漏缆2" }, ], rules: { devicePortType: [ { required: true, message: "请选择端口类型", trigger: "blur" }, ], }, }; }, props: { rowData: { type: Object, default: () => {}, }, paramsJson: { type: Object, default: () => {}, }, }, mounted() { this.monitorForm = this.paramsJson; // this.monitorForm.device = "0"; // this.monitorForm.devicePortType = "2"; }, watch: { paramsJson(val) { this.monitorForm = val; }, }, methods: { handleSub(formName) { let JsonData = {}; switch (this.activeName) { case "1": JsonData = { measurementCycle: this.monitorForm.measurementCycle, leakyCableGeneralAlarmThreshold: this.monitorForm.leakyCableGeneralAlarmThreshold, leakyCableImportantAlarmThreshold: this.monitorForm.leakyCableImportantAlarmThreshold, leakyCableEmergencyAlarmThreshold: this.monitorForm.leakyCableEmergencyAlarmThreshold, serverIp: this.monitorForm.serverIp, deviceOutputPower: this.monitorForm.deviceOutputPower, deviceStartFrequency: this.monitorForm.deviceStartFrequency, deviceEndFrequency: this.monitorForm.deviceEndFrequency, }; break; case "2": if (this.monitorForm.uplinkLeakyCable1HundredMeterLoss > 0.65) { this.$message.warning("百米损耗值需小于0.65,请输入正确的值"); return; } JsonData = { devicePortType: 1, uplinkLeakyCable1StartPosition: this.monitorForm.uplinkLeakyCable1StartPosition, uplinkLeakyCable1EndPosition: this.monitorForm.uplinkLeakyCable1EndPosition, uplinkLeakyCable1HundredMeterLoss: this.monitorForm.uplinkLeakyCable1HundredMeterLoss, uplinkLeakyCable1RelativePropagationSpeed: this.monitorForm.uplinkLeakyCable1RelativePropagationSpeed, }; break; case "3": if (this.monitorForm.downlinkLeakyCable1HundredMeterLoss > 0.65) { this.$message.warning("百米损耗值需小于0.65,请输入正确的值"); return; } JsonData = { devicePortType: 2, downlinkLeakyCable1StartPosition: this.monitorForm.downlinkLeakyCable1StartPosition, downlinkLeakyCable1EndPosition: this.monitorForm.downlinkLeakyCable1EndPosition, downlinkLeakyCable1HundredMeterLoss: this.monitorForm.downlinkLeakyCable1HundredMeterLoss, downlinkLeakyCable1RelativePropagationSpeed: this.monitorForm.downlinkLeakyCable1RelativePropagationSpeed, }; break; case "4": if (this.monitorForm.uplinkLeakyCable2HundredMeterLoss > 0.65) { this.$message.warning("百米损耗值需小于0.65,请输入正确的值"); return; } JsonData = { devicePortType: 1, uplinkLeakyCable2StartPosition: this.monitorForm.uplinkLeakyCable2StartPosition, uplinkLeakyCable2EndPosition: this.monitorForm.uplinkLeakyCable2EndPosition, uplinkLeakyCable2HundredMeterLoss: this.monitorForm.uplinkLeakyCable2HundredMeterLoss, uplinkLeakyCable2RelativePropagationSpeed: this.monitorForm.uplinkLeakyCable2RelativePropagationSpeed, }; break; case "5": if (this.monitorForm.downlinkLeakyCable2HundredMeterLoss > 0.65) { this.$message.warning("百米损耗值需小于0.65,请输入正确的值"); return; } JsonData = { devicePortType: 2, downlinkLeakyCable2StartPosition: this.monitorForm.downlinkLeakyCable2StartPosition, downlinkLeakyCable2EndPosition: this.monitorForm.downlinkLeakyCable2EndPosition, downlinkLeakyCable2HundredMeterLoss: this.monitorForm.downlinkLeakyCable2HundredMeterLoss, downlinkLeakyCable2RelativePropagationSpeed: this.monitorForm.downlinkLeakyCable2RelativePropagationSpeed, }; default: break; } JsonData = Object.fromEntries( Object.entries(JsonData).filter(([_, v]) => v !== undefined&&v !== "") ); this.$refs[formName].validate((valid) => { if (valid) { this.$emit("update", { equipId: this.rowData.id, paramsJson: JsonData, }); } else { return false; } }); }, handleClose() { this.monitorForm = {}; this.$emit("update", false); }, }, }; </script> <style lang="scss" scoped> .statistics-table { .single-row { background: #f1f6ff; } td { padding: 5px !important; } } </style>