doum
4 天以前 078a5c4ced367fdbd5a16c27c8bada6e44e632d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<template>
  <TableLayout :permissions="['business:warning:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入时间名称" clearable  @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="报警分类" prop="type">
        <el-select v-model="searchForm.type" placeholder="请选择" clearable @change="search">
          <el-option label="安防事件" value="0"></el-option>
          <el-option label="消防事件" value="1"></el-option>
          <el-option label="车载事件" value="2"></el-option>
          <el-option label="钥匙柜事件" value="3"></el-option>
          <el-option label="天气预警" value="4"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="报警等级" prop="level" >
        <el-select v-model="searchForm.level" placeholder="请选择" clearable @change="search">
          <el-option label="低" value="0"></el-option>
          <el-option label="中" value="1"></el-option>
          <el-option label="高" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="订阅状态" prop="status" >
          <el-select v-model="searchForm.status" placeholder="请选择" clearable @change="search">
            <el-option label="未订阅" value="0"></el-option>
            <el-option label="已订阅" value="1"></el-option>
          </el-select>
      </el-form-item>
      <el-form-item label="订阅结果" prop="subscribeStatus" @change="search">
        <el-select v-model="searchForm.subscribeStatus" placeholder="请选择" clearable @change="search">
          <el-option label="未订阅" value="0"></el-option>
          <el-option label="订阅成功" value="1"></el-option>
          <el-option label="订阅失败" value="2"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:warning:create', 'business:warning:delete']">
        <li><el-button type="primary" @click="$refs.operaWarningWindow.open('新建报警记录信息表')" icon="el-icon-plus" v-permissions="['business:warning:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" type="danger"   icon="el-icon-delete" v-permissions="['business:warning:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="报警类型" min-width="100px"></el-table-column>
        <el-table-column prop="type" label="报警分类" min-width="120px">
          <template slot-scope="{row}">
            <span v-if="row.type === 0">安防事件</span>
            <span v-if="row.type === 1"  >消防事件</span>
            <span v-if="row.type === 2"  >车载事件</span>
            <span v-if="row.type === 3"  >钥匙柜事件</span>
            <span v-if="row.type === 4"  >天气预警</span>
          </template>
        </el-table-column>
        <el-table-column prop="level" label="报警等级" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.level === 0" class="status-grey">低</span>
            <span v-if="row.level === 1"  class="status-yellow" >中</span>
            <span v-if="row.level === 2"  class="status-red">高</span>
          </template>
        </el-table-column>
        <el-table-column prop="status" label="订阅状态" min-width="160px">
          <template slot-scope="{row}">
            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
                       inactive-color="#ff4949" :active-value="1" :inactive-value="0" >
            </el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="subscribeStatus" label="订阅结果" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="!row.subscribeStatus || row.subscribeStatus === 0" class="status-grey">未订阅</span>
            <span v-if="row.subscribeStatus === 1"  class="status-yellow" >订阅成功</span>
            <span v-if="row.subscribeStatus === 2"  class="status-red">订阅失败</span>
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:warning:update', 'business:warning:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaWarningWindow.open('编辑报警记录信息表', row)" icon="el-icon-edit" v-permissions="['business:warning:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" style="color: red" v-permissions="['business:warning:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaWarningWindow ref="operaWarningWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaWarningWindow from '@/components/business/OperaWarningWindow'
export default {
  name: 'Warning',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaWarningWindow },
  data () {
    return {
      // 搜索
      searchForm: {
        name: '',
        type: '',
        level: '',
        status: '',
        subscribeStatus: ''
      }
    }
  },
  created () {
    this.config({
      module: '报警记录信息表',
      api: '/business/warning',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    changeStatus (e, row) {
      this.working = true
      this.api.updateStatus({ id: row.id, status: e })
        .then(res => {
          this.$tip.apiSuccess(res || '操作成功')
          this.search()
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.working = false
        })
        .catch(() => { })
    }
  }
}
</script>