zouyu
6 天以前 8c04f7a021496b0dc0d08c8fd4580ef8f3e1dd49
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<template>
  <div class="alarm-handle-knowledge">
    <el-card shadow="never" class="search-card">
      <el-form :inline="true" :model="searchForm" class="demo-form-inline">
        <el-form-item label="知识库标题">
          <el-input v-model="searchForm.title" placeholder="请输入知识库标题" />
        </el-form-item>
        <el-form-item label="报警类型">
          <el-select v-model="searchForm.alarmType" placeholder="请选择报警类型" clearable>
            <el-option label="温度报警" value="温度报警" />
            <el-option label="压力报警" value="压力报警" />
            <el-option label="振动报警" value="振动报警" />
            <el-option label="液位报警" value="液位报警" />
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
          <el-button icon="el-icon-plus" @click="handleAdd">新增</el-button>
        </el-form-item>
      </el-form>
    </el-card>
 
    <el-card shadow="never" class="table-card" >
      <el-table :data="knowledgeList" style="width: 100%" :header-cell-style="{textAlign: 'center'}" :cell-style="{textAlign: 'center'}">
        <el-table-column type="index" label="序号" width="80" />
        <el-table-column prop="title" label="知识库标题" min-width="200" />
        <el-table-column prop="alarmType" label="报警类型" width="120" />
        <el-table-column prop="alarmLevel" label="报警级别" width="100">
          <template #default="scope">
            <el-tag :type="getAlarmLevelType(scope.row.alarmLevel)">
              {{ scope.row.alarmLevel }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="createTime" label="创建时间" width="180" />
        <el-table-column prop="creator" label="创建人" width="100" />
        <el-table-column prop="status" label="状态" width="100">
          <template #default="scope">
            <el-tag :type="scope.row.status === '启用' ? 'success' : 'info'">
              {{ scope.row.status }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="操作" width="250" fixed="right">
          <template #default="scope">
            <el-button size="small" type="text" icon="el-icon-view" @click="handleView(scope.row)">查看</el-button>
            <el-button size="small" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">编辑</el-button>
            <el-button size="small" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <div class="pagination">
        <el-pagination
          layout="total, sizes, prev, pager, next, jumper"
          :total="knowledgeList.length"
          :page-size="10"
          :page-sizes="[10, 20, 30, 50]"
        />
      </div>
    </el-card>
  </div>
</template>
 
<script>
export default {
  name: 'AlarmHandleKnowledge',
  data() {
    return {
      searchForm: {
        title: '',
        alarmType: ''
      },
      knowledgeList: [
        {
          id: 1,
          title: '反应釜温度过高报警处理流程',
          alarmType: '温度报警',
          alarmLevel: '严重',
          createTime: '2025-12-01 14:30:00',
          creator: '管理员',
          status: '启用'
        },
        {
          id: 2,
          title: '离心泵振动异常报警处理指南',
          alarmType: '振动报警',
          alarmLevel: '中等',
          createTime: '2025-12-02 09:15:00',
          creator: '设备工程师',
          status: '启用'
        },
        {
          id: 3,
          title: '储罐液位过低报警处理方法',
          alarmType: '液位报警',
          alarmLevel: '轻微',
          createTime: '2025-12-03 16:45:00',
          creator: '工艺工程师',
          status: '启用'
        },
        {
          id: 4,
          title: '压缩机压力过高报警应急预案',
          alarmType: '压力报警',
          alarmLevel: '严重',
          createTime: '2025-12-04 11:20:00',
          creator: '安全主管',
          status: '启用'
        },
        {
          id: 5,
          title: '干燥机湿度异常报警处理流程',
          alarmType: '湿度报警',
          alarmLevel: '中等',
          createTime: '2025-12-05 15:10:00',
          creator: '工艺工程师',
          status: '禁用'
        }
      ]
    }
  },
  methods: {
    getAlarmLevelType(level) {
      switch (level) {
        case '严重':
          return 'danger'
        case '中等':
          return 'warning'
        case '轻微':
          return 'info'
        default:
          return 'info'
      }
    },
    handleSearch() {
      console.log('搜索知识库', this.searchForm)
    },
    handleAdd() {
      console.log('新增知识库')
    },
    handleView(row) {
      console.log('查看知识库详情', row)
    },
    handleEdit(row) {
      console.log('编辑知识库', row)
    },
    handleDelete(row) {
      console.log('删除知识库', row)
    }
  }
}
</script>
 
<style scoped>
.alarm-handle-knowledge {
  padding: 16px;
  background-color: #f0f2f5;
  min-height: 100vh;
}
 
.search-card {
  margin-bottom: 16px;
  border-radius: 8px;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
 
.table-card {
  margin-top: 16px;
  border-radius: 8px;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
 
.pagination {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
  padding-right: 20px;
}
 
</style>