doum
11 小时以前 5083abb65d2a6e43603ee11575b0e233b00a085c
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
<template>
  <TableLayout :permissions="['business:warningrule:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="报警规则" prop="info">
        <el-input v-model="searchForm.title" placeholder="请输入报警规则" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="人员/部门" prop="memberNames">
        <el-input v-model="searchForm.memberNames" placeholder="请输入人员或部门名" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="广播名称" prop="memberNames">
        <el-input v-model="searchForm.deviceNames" placeholder="请输入广播名称" clearable @keypress.enter.native="search"></el-input>
      </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>
      <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:warningrule:create', 'business:warningrule:delete']">
        <li><el-button type="primary" @click="$refs.operaWarningRuleWindow.open('新建报警规则配置')" icon="el-icon-plus" v-permissions="['business:warningrule:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" type="danger" icon="el-icon-delete" v-permissions="['business:warningrule: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="title" label="报警规则" min-width="200px" show-tooltip-when-overflow></el-table-column>
        <el-table-column prop="memberNames" label="报警接收人" min-width="200px" show-tooltip-when-overflow>
          <template slot-scope="{row}">
           <span v-if="row.memberNotice === 1">{{row.memberNames}}</span>
           <span v-else class="red">未开启</span>
          </template>
        </el-table-column>
        <el-table-column prop="deviceNames" label="报警播报广播" min-width="200px" show-tooltip-when-overflow>
          <template slot-scope="{row}">
            <span v-if="row.deviceNotice === 1">{{row.deviceNames}}</span>
            <span v-else class="red">未开启</span>
          </template>
        </el-table-column>
        <el-table-column prop="intervalSec" label="间隔时间(秒)" min-width="100px" ></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px" >
          <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="editDate" label="更新时间" min-width="150px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:warningrule:update', 'business:warningrule:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaWarningRuleWindow.open('编辑报警规则配置', row)" icon="el-icon-edit" v-permissions="['business:warningrule:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"  style="color: red" v-permissions="['business:warningrule:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaWarningRuleWindow ref="operaWarningRuleWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaWarningRuleWindow from '@/components/business/OperaWarningRuleWindow'
export default {
  name: 'WarningRule',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaWarningRuleWindow },
  data () {
    return {
      // 搜索
      searchForm: {
        title: '',
        memberNames: '',
        deviceNames: '',
        status:'',
      }
    }
  },
  created () {
    this.config({
      module: '报警规则配置',
      api: '/business/warningRule',
      '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>