fei.wang
2025-04-16 0b3d2deb37745ea5dce42fa4a18f22a29d2f4a12
src/views/alarm/threshold.vue
@@ -37,19 +37,31 @@
          {{ scope.row.company }}
        </template>
      </el-table-column>
      <el-table-column label="天阈值" >
      <el-table-column label="天阈值(毫米)">
        <template slot-scope="scope">
          {{ scope.row.hdsv}}
        </template>
      </el-table-column>
      <el-table-column label="北阈值" >
      <el-table-column label="北阈值(毫米)">
        <template slot-scope="scope">
          {{ scope.row.ndsv}}
        </template>
      </el-table-column>
      <el-table-column label="东阈值" >
      <el-table-column label="东阈值(毫米)">
        <template slot-scope="scope">
          {{ scope.row.edsv}}
        </template>
      </el-table-column>
      <el-table-column label="报警电话">
        <template slot-scope="scope">
          {{ scope.row.phone }}
        </template>
      </el-table-column>
      <el-table-column label="应急广播名称">
        <template slot-scope="scope">
          {{ scope.row.guangboname }}
        </template>
      </el-table-column>
      <el-table-column  label="操作" width="200"  v-if="uupdate=='Yes' || udelete=='Yes'">
@@ -72,31 +84,70 @@
    <el-dialog :visible.sync="dialogVisible" :title="dialogType === 'modify' ? '修改' : '新增'">
      <el-form :ref="temp" :model="temp" label-width="120px" label-position="right" :rules="rules">
        <el-form-item label="设备ID" prop="tagid">
          <el-input v-model="temp.tagid
        " placeholder="请输入设备ID" />
          <!-- <el-input v-model="temp.tagid
            " placeholder="请输入设备ID" @change="secode" /> -->
            <el-select style="width: 100%;" v-model="temp.tagid" filterable remote placeholder="请选择设备ID"
            :remote-method="jzsearchMethod" :loading="searchloading" @change="secode">
            <el-option v-for="item in tagidList" :key="item.tagid" :label="item.tagid" :value="item.tagid">
            </el-option>
          </el-select>
<!-- <el-select style="width: 100%;"  v-model="temp.tagid" filterable remote placeholder="请选择设备ID"
            :remote-method="jzsearchMethod" :loading="searchloading">
            <el-option v-for="item in tagidList" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select> -->
        </el-form-item>
        <el-form-item label="名称" prop="alarmname">
          <el-input v-model="temp.alarmname
        " placeholder="请输入名称" />
            " :disabled="true" placeholder="请输入名称" />
        </el-form-item>
        <el-form-item label="公司" prop="companyid">
          <el-select style="width: 100%;" v-model="temp.companyid" filterable remote placeholder="请输入关键词"
          <!-- <el-select style="width: 100%;" :disabled="true" v-model="temp.companyid" filterable remote placeholder="请输入关键词"
            :remote-method="searchMethod" :loading="searchloading">
            <el-option v-for="item in options" :key="item.id" :label="item.companyname" :value="item.id">
            </el-option>
          </el-select>
          </el-select> -->
          <el-input v-model="company
            " :disabled="true" placeholder="请输入公司" />
        </el-form-item>
        <el-form-item label="东位移预警值" prop="hdsv">
          <el-input v-model="temp.hdsv
        " placeholder="请输入东位移预警值" type="number"/>
          <el-input v-model="temp.edsv
            " placeholder="请输入东位移预警值(单位毫米)" type="number" />
        </el-form-item>
        <el-form-item label="北位移预警值" prop="ndsv">
          <el-input v-model="temp.ndsv
        " placeholder="请输入北位移预警值" type="number"/>
            " placeholder="请输入北位移预警值(单位毫米)" type="number" />
        </el-form-item>
        <el-form-item label="天位移预警值" prop="edsv">
          <el-input v-model="temp.edsv
        " placeholder="请输入天位移预警值" type="number"/>
          <el-input v-model="temp.hdsv
            " placeholder="请输入天位移预警值(单位毫米)" type="number" />
        </el-form-item>
        <el-form-item label="告警电话" prop="phone">
          <el-select style="width: 100%;"  v-model="temp.phone" filterable remote placeholder="请选择报警人电话"
            :remote-method="searchphMethod" :loading="searchloading">
            <el-option v-for="item in phopneoptions" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
          <!-- <el-select style="width: 100%;" v-model="temp.phone" placeholder="请选择">
            <el-option v-for="item in phopneoptions" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select> -->
        </el-form-item>
        <el-form-item label="应急广播" >
          <el-select style="width: 100%;"  v-model="temp.guangboid" filterable remote placeholder="请选择播放应急广播编号"
            :remote-method="searchgbMethod" :loading="searchloading">
            <el-option v-for="item in gaungboList" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
          <!-- <el-select style="width: 100%;" v-model="temp.guangboid" placeholder="请选择">
            <el-option v-for="item in gaungboList" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select> -->
        </el-form-item>
      </el-form>
      <div class="text-right">
@@ -113,7 +164,7 @@
<script>
import Pagination from '@/components/Pagination'
import { getAlarmsystemPage, delAlarmsystem, addorupAlarmsystem, search,searchAlarmsystem,addSystemOperationLog } from '@/api/threshold'
import { getAlarmsystemPage, delAlarmsystem, addorupAlarmsystem, search, searchAlarmsystem, addSystemOperationLog, getGuangbo, getdevicestate,getDuanxin,getDuanxinfive,getGuangbofive,jzsearchfive,jzsearch } from '@/api/threshold'
import { deepClone } from '@/utils'
const _temp = {
@@ -132,12 +183,16 @@
  },
  data() {
    return {
      tagidList:[],
      company: '',
      uadd:'',
      udelete:'',
      uupdate:'',
      total: 0,
      list: [],
      menus: [],
      phopneoptions: [],
      gaungboList: [],
      options: [],
      searchloading: false,
      listLoading: true,
@@ -170,6 +225,12 @@
          ],
          ndsv: [
            {  required: true, message: '请输入北位移预警值', trigger: 'blur' }
        ],
        guangboid: [
          { required: true, message: '请输入应急广播编号', trigger: 'blur' }
        ],
        phone: [
          { required: true, message: '请输入告警电话', trigger: 'blur' }
          ]
        },
    }
@@ -178,6 +239,143 @@
    this.fetchData()
  },
  methods: {
    secode(event) {
      if (event !== '') {
        this.loading = true;
        var params = { tagid: event }
        getdevicestate(params).then(response => {
          console.log(response);
          if (response.data.dataList2 == null || response.data.dataList2.type != 1) {
            this.$message({
              message: '编号错误',
              type: 'error'
            })
          } else {
            this.temp.alarmname = response.data.dataList2.anchorname
            this.temp.companyid = response.data.dataList2.companyid
            this.company = response.data.dataList2.company
          }
        })
      } else {
        // this.options = [];
      }
    },
    searchgbMethod(query) {
      if (query !== '') {
        var params = { query: query }
        this.gaungboList=[]
        getGuangbo(params).then(response => {
        for (let index = 0; index < response.data.length; index++) {
          var json = {
            value: '',
            label: '',
          }
          const element = response.data[index];
          json.value = element
          json.label = element
          this.gaungboList.push(json)
        }
      })
      } else {
        this.gaungboList = [];
      }
    },
    searchphMethod(query) {
      if (query !== '') {
        this.phopneoptions=[]
        var params = { query: query }
        getDuanxin(params).then(response => {
        for (let index = 0; index < response.data.length; index++) {
          var json = {
            value: '',
            label: '',
          }
          const element = response.data[index];
          json.value = element
          json.label = element
          this.phopneoptions.push(json)
        }
      })
      } else {
        this.phopneoptions = [];
      }
    },
    // 远程搜索
    jzsearchMethod(query) {
      if (query !== '') {
        this.loading = true;
        var params = { type: '1' }
        jzsearch(params).then(response => {
          this.tagidList = response.data;
          this.loading = false;
        })
      } else {
        this.tagidList = [];
      }
    },
    // 远程搜索
    jzsearchMethodfive() {
        this.loading = true;
         var params = { type: '1' }
        jzsearchfive(params).then(response => {
          this.tagidList = response.data;
          this.loading = false;
        })
    },
    searchgbMethodfive(query) {
    if (query !== '') {
        var params = { query: query }
        this.gaungboList=[]
        getGuangbofive(params).then(response => {
        for (let index = 0; index < response.data.length; index++) {
          var json = {
            value: '',
            label: '',
          }
          const element = response.data[index];
          json.value = element
          json.label = element
          this.gaungboList.push(json)
        }
      })
      } else {
        this.gaungboList = [];
      }
    },
    searchphMethodfive(query) {
      if (query !== '') {
        this.phopneoptions=[]
        var params = { query: query }
        getDuanxinfive(params).then(response => {
        for (let index = 0; index < response.data.length; index++) {
          var json = {
            value: '',
            label: '',
          }
          const element = response.data[index];
          json.value = element
          json.label = element
          this.phopneoptions.push(json)
        }
      })
      } else {
        this.phopneoptions = [];
      }
    },
     // 远程搜索
     searchMethod(query) {
      if (query !== '') {
@@ -228,6 +426,12 @@
        this.total = response.data.total
        this.listLoading = false
      })
      this.searchphMethodfive()
this.jzsearchMethodfive()
      this.searchgbMethodfive()
    },
    resetTemp() {
      this.temp = Object.assign({}, _temp)
@@ -284,13 +488,21 @@
      })
    },
    submit() {
      if (this.loading) {
        return
      }
      // if (this.loading) {
      //   return
      // }
      this.loading = true
      this.$refs[this.temp].validate((valid) => {
        if (valid) {
      addorupAlarmsystem(this.temp).then(() => {
          addorupAlarmsystem(this.temp).then((response) => {
            if (response.data==-1) {
              this.$message({
            message: '当前设备id已存在,请重新输入!',
            type: 'error'
          })
              return
            }
        if (this.temp.id=="") {
          this.temp.adminname = localStorage.getItem('username') || '';
            const params = { name:  this.temp.adminname, content: '新增了一个报警阈值,该设备id为:'+this.temp.tagid };