fei.wang
2025-04-16 0b3d2deb37745ea5dce42fa4a18f22a29d2f4a12
src/views/equipment/difference.vue
@@ -1,7 +1,8 @@
<template>
  <div class="app-container">
    <div class="filter-container">
      <el-input v-model="listQuery.keyword" size="small" placeholder="请输入编号/名称/卡号" clearable class="filter-item w-200" />
      <el-input v-model="listQuery.keyword" size="small" placeholder="请输入编号/名称/卡号" clearable
        class="filter-item w-200" />
      <el-button-group class="filter-item">
        <el-button size="small" type="primary" icon="el-icon-search" @click="search">
          搜索
@@ -9,15 +10,27 @@
        <el-button size="small" type="primary" icon="el-icon-refresh" @click="refresh">
          刷新
        </el-button>
        <el-button  v-if="uadd=='Yes'" size="small" type="primary" icon="el-icon-plus" @click="add">
        <el-button v-if="uadd == 'Yes'" size="small" type="primary" icon="el-icon-plus" @click="add">
          新增
        </el-button>
      </el-button-group>
      <span style="margin-left: 100px;">
        <!-- <el-date-picker v-model="timeExport" type="daterange" unlink-panels :picker-options="pickerOptions"
          range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd" /> -->
        <!-- <el-button style="margin-left: 10px;" type="primary" @click="exportExcel">导出EXCEL</el-button> -->
        <el-button style="margin-left: 10px;" type="primary" @click="resetzuobiao">重置基站坐标</el-button>
      </span>
    </div>
    <el-table v-loading="listLoading" :data="list" element-loading-text="Loading" border fit height="100%"
      class="table-container" highlight-current-row>
      <el-table-column fixed label="ID" width="70" >
      class="table-container" highlight-current-row @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55">
      </el-table-column>
      <el-table-column fixed label="ID" width="70">
        <template slot-scope="scope">
          {{ scope.row.id }}
        </template>
@@ -27,12 +40,12 @@
          {{ scope.row.tagid }}
        </template>
      </el-table-column>
      <el-table-column label="名称"  width="150">
      <el-table-column label="名称" width="150">
        <template slot-scope="scope">
          {{ scope.row.anchorname }}
        </template>
      </el-table-column>
      <el-table-column label="公司"  width="170">
      <el-table-column label="公司" width="170">
        <template slot-scope="scope">
          {{ scope.row.company }}
        </template>
@@ -41,9 +54,14 @@
        <template slot-scope="scope">
          <!-- <template slot-scope="scope"> -->
                            <span v-if="scope.row.onlie == '1'"><img src="../../assets/images/online6.png"></span>
                            <span v-else-if="scope.row.onlie == '0'"><img src="../../assets/images/offline4.png"></span>
                        <!-- </template> -->
          <!-- <span v-if="scope.row.onlie == '1'"><img src="../../assets/images/online6.png"></span>
          <span v-else-if="scope.row.onlie == '0'"><img src="../../assets/images/offline4.png"></span> -->
          <span v-if="scope.row.onlie == '1'">在线</span>
                            <span v-else-if="scope.row.onlie == '0'">离线</span>
                            <span v-else-if="scope.row.onlie == '4'">高精度</span>
                            <span v-else-if="scope.row.onlie == '6'">超阈值告警</span>
                            <span v-else-if="scope.row.onlie == '7'">非高精度告警</span>
          <!-- </template> -->
          <!-- <span v-if="scope.row.onlie == 1">在线</span>
          <span v-if="scope.row.onlie == 0">离线</span> -->
        </template>
@@ -64,7 +82,7 @@
          {{ scope.row.gpsnum }}
        </template>
      </el-table-column>
      <el-table-column label="卡号"  width="190">
      <el-table-column label="卡号" width="190">
        <template slot-scope="scope">
          {{ scope.row.cid }}
        </template>
@@ -79,23 +97,23 @@
          {{ scope.row.lat }}
        </template>
      </el-table-column>
      <el-table-column label="高程" >
      <el-table-column label="高程">
        <template slot-scope="scope">
          {{ scope.row.height }}
        </template>
      </el-table-column>
      <el-table-column label="时间"  width="180">
      <el-table-column label="时间" width="180">
        <template slot-scope="scope">
          {{ scope.row.addtime }}
        </template>
      </el-table-column>
      <el-table-column label="操作" width="200"  v-if="uupdate=='Yes' || udelete=='Yes'">
      <el-table-column label="操作" width="200" v-if="uupdate == 'Yes' || udelete == 'Yes'">
        <template slot-scope="scope">
          <el-button-group>
            <el-button  v-if="uupdate=='Yes'" type="primary" icon="el-icon-edit" size="mini" @click="edit(scope)">
            <el-button v-if="uupdate == 'Yes'" type="primary" icon="el-icon-edit" size="mini" @click="edit(scope)">
              修改
            </el-button>
            <el-button  v-if="udelete=='Yes'" type="danger" icon="el-icon-delete" size="mini" @click="del(scope)">
            <el-button v-if="udelete == 'Yes'" type="danger" icon="el-icon-delete" size="mini" @click="del(scope)">
              删除
            </el-button>
          </el-button-group>
@@ -110,11 +128,11 @@
      <el-form :ref="temp" :model="temp" label-width="120px" label-position="right" :rules="rules">
        <el-form-item label="编号" prop="tagid">
          <el-input v-model="temp.tagid
        " placeholder="请输入编号" />
            " placeholder="请输入编号" />
        </el-form-item>
        <el-form-item label="名称" prop="anchorname">
          <el-input v-model="temp.anchorname
        " placeholder="请输入名称" />
            " placeholder="请输入名称" />
        </el-form-item>
        <el-form-item label="公司" prop="companyid">
          <el-select style="width: 100%;" v-model="temp.company" filterable remote placeholder="请选择公司"
@@ -142,17 +160,17 @@
<script>
import Pagination from '@/components/Pagination'
import { getList, delEquipment, addorupEquipment, searchEquipment,search,addSystemOperationLog } from '@/api/equipment'
import { getList, delEquipment, addorupEquipment, searchEquipment, search, addSystemOperationLog, resetzuobiao,searchfive } from '@/api/equipment'
import { deepClone } from '@/utils'
const _temp = {
  adminname:'',
  adminname: '',
  id: '',
  anchorname: '',
  tagid: '',
  companyid: '',
  // cid: '',
  type:0
  type: 0
}
export default {
@@ -161,9 +179,9 @@
  },
  data() {
    return {
      uadd:'',
      udelete:'',
      uupdate:'',
      uadd: '',
      udelete: '',
      uupdate: '',
      total: 0,
      list: [],
      menus: [],
@@ -175,6 +193,7 @@
        keyword: undefined,
        type: 0
      },
      multipleSelection: [],
      uploadUrl: '',
      temp: Object.assign({}, _temp),
      dialogVisible: false,
@@ -184,18 +203,18 @@
      options: [],
      rules: {
        tagid: [
            { required: true, message: '请输入编号', trigger: 'blur' },
          ],
          anchorname: [
            { required: true, message: '请数据名称', trigger: 'blur' }
          ],
          companyid: [
            {  required: true, message: '请选择公司', trigger: 'blur' }
          ],
          // cid: [
          //   {  required: true, message: '请输入卡号', trigger: 'blur' }
          // ]
        },
          { required: true, message: '请输入编号', trigger: 'blur' },
        ],
        anchorname: [
          { required: true, message: '请数据名称', trigger: 'blur' }
        ],
        companyid: [
          { required: true, message: '请选择公司', trigger: 'blur' }
        ],
        // cid: [
        //   {  required: true, message: '请输入卡号', trigger: 'blur' }
        // ]
      },
      searchloading: false
    }
  },
@@ -203,8 +222,57 @@
    this.fetchData()
  },
  methods: {
       // 远程搜索
       searchMethod(query) {
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    resetzuobiao() {
      console.log(this.multipleSelection);
      if (this.multipleSelection.length == 0) {
        this.$message({
          message: '请先选择一条数据',
          type: 'error'
        })
      } else if (this.multipleSelection.length > 1) {
        this.$message({
          message: '请选择一条数据',
          type: 'error'
        })
      } else {
        this.$prompt('该操作需要由专业技术人员完成,请输入操作密码', '设备编号' + this.multipleSelection[0].tagid + '确认操作', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          // inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
          inputErrorMessage: '密码错误',
          inputValidator: (value) => {//input校验
            if (value != 20151102) {
              return '密码错误';
            }
          },
        }).then(({ value }) => {
          const params = { tagid: this.multipleSelection[0].tagid };
          resetzuobiao(params).then(response => {
            console.log(response);
          })
          this.$message({
            type: 'success',
            message: '重置成功!'
          });
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '取消重置'
          });
        });
      }
    },
    // 远程搜索
    searchMethod(query) {
      if (query !== '') {
        this.loading = true;
        var params = { query: query }
@@ -216,20 +284,34 @@
        this.options = [];
      }
    },
        // 远程搜索
        searchMethodfive(query) {
      if (query !== '') {
        this.loading = true;
        // var params = { query: query }
        searchfive().then(response => {
          this.options = response.data;
          this.loading = false;
        })
      } else {
        this.options = [];
      }
    },
    // 搜索
    search() {
      this.listLoading = true
      searchEquipment(this.listQuery).then(response => {
        if (response.data!=null) {
        if (response.data != null) {
          this.list = response.data.records
          this.total = response.data.total
        }else{
        } else {
          this.$message({
            message: '未搜索到数据',
            type: 'error'
          })
        }
        this.listLoading = false
      })
    },
@@ -239,7 +321,7 @@
        current: 1,
        size: 20,
        keyword: undefined,
        type:0
        type: 0
      }
      this.fetchData()
    },
@@ -254,6 +336,7 @@
        this.total = response.data.total
        this.listLoading = false
      })
      this.searchMethodfive()
    },
    resetTemp() {
      this.temp = Object.assign({}, _temp)
@@ -292,7 +375,7 @@
    },
    // 删除
    del(scope) {
      this.$confirm('确认删除该条数据吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
@@ -303,10 +386,10 @@
          this.list.splice(scope.$index, 1)
          delEquipment(params).then(response => {
            this.temp.adminname = localStorage.getItem('username') || '';
            const params = { name:  this.temp.adminname, content: '删除了一个基准站,该编号为:'+scope.row.tagid };
            const params = { name: this.temp.adminname, content: '删除了一个基准站,该编号为:' + scope.row.tagid };
            addSystemOperationLog(params).then(response => {
                        })
            })
            this.$message({
              message: '删除成功',
              type: 'success'
@@ -317,49 +400,52 @@
      })
    },
    submit() {
      if (this.loading) {
        return
      }
      this.temp.companyid=this.temp.companyid
      if ( this.dialogType != 'modify') {
        this.temp.companyid=this.temp.company
      }
      // this.temp.companyid = this.temp.companyid
      this.loading = true
      this.$refs[this.temp].validate((valid) => {
        if (valid) {
      addorupEquipment(this.temp).then(() => {
        if (this.temp.id=="") {
          this.temp.adminname = localStorage.getItem('username') || '';
            const params = { name:  this.temp.adminname, content: '新增了一个基准站,该编号为:'+this.temp.tagid };
            addSystemOperationLog(params).then(response => {
          addorupEquipment(this.temp).then(() => {
            if (this.temp.id == "") {
              this.temp.adminname = localStorage.getItem('username') || '';
              const params = { name: this.temp.adminname, content: '新增了一个基准站,该编号为:' + this.temp.tagid };
              addSystemOperationLog(params).then(response => {
                        })
        } else {
          this.temp.adminname = localStorage.getItem('username') || '';
            const params = { name:  this.temp.adminname, content: '修改了一个基准站,该编号为:'+this.temp.tagid };
            addSystemOperationLog(params).then(response => {
              })
            } else {
              this.temp.adminname = localStorage.getItem('username') || '';
              const params = { name: this.temp.adminname, content: '修改了一个基准站,该编号为:' + this.temp.tagid };
              addSystemOperationLog(params).then(response => {
                        })
        }
        this.fetchData()
        setTimeout(() => {
          this.$message({
            message: '提交成功',
            type: 'success'
              })
            }
            this.fetchData()
            setTimeout(() => {
              this.$message({
                message: '提交成功',
                type: 'success'
              })
              this.dialogVisible = false
              this.loading = false
            }, 300)
          })
          this.dialogVisible = false
          this.loading = false
        }, 300)
      })
    } else {
            this.$message({
        } else {
          this.$message({
            message: '提交失败,请检查表单必填项是否为空',
            type: 'error'
          })
            console.log('error submit!!');
            return false;
          }
        });
          console.log('error submit!!');
          return false;
        }
      });
    }
  }
}