<template> <div class="mod-config"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form-item label="设备分组名称"> <strong>{{ $route.params.groupName }}</strong></el-form-item > <el-form-item label="设备分组编码"> <strong>{{ $route.params.groupCode }}</strong> </el-form-item> <!-- <el-form-item> <el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input> </el-form-item> --> <br /> <el-form-item> <!-- <el-button @click="getDataList()">查询</el-button> --> <el-button v-if="$hasPermission('monitoring:equipmentgroupalarm:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button> <!-- <el-button v-if="$hasPermission('monitoring:equipmentgroupalarm:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"> 批量删除 </el-button> --> </el-form-item> </el-form> <!-- <el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle" style="width: 100%;"> <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> <el-table-column prop="id" header-align="center" align="center" label="ID"></el-table-column> <el-table-column prop="equipmentGroupId" header-align="center" align="center" label="设备分组ID,关联t_equipment_group"></el-table-column> <el-table-column prop="code" header-align="center" align="center" label="编码"></el-table-column> <el-table-column prop="typeDictValue" header-align="center" align="center" label="报警类型 字典表关联label_value"></el-table-column> <el-table-column prop="gradeDictValue" header-align="center" align="center" label="报警级别 字典表关联label_value"></el-table-column> <el-table-column prop="alarmContent" header-align="center" align="center" label="报警内容"></el-table-column> <el-table-column prop="description" header-align="center" align="center" label="描述"></el-table-column> <el-table-column prop="externalCode" header-align="center" align="center" label="外部编码,用于对照外部系统的编码"></el-table-column> <el-table-column prop="enabled" header-align="center" align="center" label="启用状态:0 、停用,1、启用"></el-table-column> <el-table-column prop="remark" header-align="center" align="center" label="备注"></el-table-column> <el-table-column prop="valid" header-align="center" align="center" label="删除标志,是否有效:1 可用 0不可用"></el-table-column> <el-table-column prop="creatorId" header-align="center" align="center" label="创建人"></el-table-column> <el-table-column prop="creatorName" header-align="center" align="center" label="创建人姓名"></el-table-column> <el-table-column prop="createTime" header-align="center" align="center" label="创建时间"></el-table-column> <el-table-column prop="updaterId" header-align="center" align="center" label="更新人"></el-table-column> <el-table-column prop="updaterName" header-align="center" align="center" label="更新人姓名"></el-table-column> <el-table-column prop="updateTime" header-align="center" align="center" label="更新时间"></el-table-column> <el-table-column prop="version" header-align="center" align="center" label="版本号"></el-table-column> <el-table-column prop="alarmNotify" header-align="center" align="center" label="推送方式 0邮箱 1微信"></el-table-column> <el-table-column fixed="right" header-align="center" align="center" width="150" label="操作"> <template slot-scope="scope"> <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button> <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button> </template> </el-table-column> </el-table> --> <base-table :data="dataList" :table-head-configs="tableConfigs" :max-height="500" @operate-event="handleOperations" @refreshDataList="getDataList" /> <el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage" layout="total, sizes, prev, pager, next, jumper" ></el-pagination> <!-- 弹窗, 新增 / 修改 --> <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :configs="addOrUpdateConfigs" @refreshDataList="getDataList" @destory-dialog="addOrUpdateVisible = false" /> </div> </template> <script> import { calcMaxHeight } from '@/utils' // import AddOrUpdate from './equipmentGroupAlarm-add-or-update' import AddOrUpdate from '@/components/base-dialog/addOrUpdate' import BaseTable from '@/components/base-table' import dictListMixin from '@/mixins/dictlist-module' import TableOperateComponent from '@/components/base-table/components/operationComponent' // import TableTextComponent from '@/components/base-table/components/detailComponent' // const alarmTypeDictId = '1557925215454814210' // const alarmLevelDictId = '1557925289517834242' const dictEntries = { alarmType: { value: '1557925215454814210', field: 'typeDictValue' }, // field 和下面 addOrUpdateConfigs 里对应 alarmLevel: { value: '1557925289517834242', field: 'gradeDictValue' } } const tableConfigs = [ { prop: 'createTime', name: '添加时间' }, { prop: 'code', name: '报警编码' }, { prop: 'typeDictValue', name: '报警类型' }, { prop: 'gradeDictValue', name: '报警级别' }, { prop: 'alarmContent', name: '报警内容' }, { prop: 'operations', name: '操作', fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] } // { prop: 'typeDictValue', name: '报警类型 字典表关联label_value' }, // { prop: 'gradeDictValue', name: '报警级别 字典表关联label_value' }, // { "prop": "id", "name": "ID" }, // { "prop": "equipmentGroupId", "name": "设备分组ID,关联t_equipment_group" }, // { "prop": "description", "name": "描述" }, // { "prop": "externalCode", "name": "外部编码,用于对照外部系统的编码" }, // { "prop": "enabled", "name": "启用状态:0 、停用,1、启用" }, // { "prop": "remark", "name": "备注" }, // { "prop": "valid", "name": "删除标志,是否有效:1 可用 0不可用" }, // { "prop": "creatorId", "name": "创建人" }, // { "prop": "creatorName", "name": "创建人姓名" }, // { "prop": "updaterId", "name": "更新人" }, // { "prop": "updaterName", "name": "更新人姓名" }, // { "prop": "updateTime", "name": "更新时间" }, // { "prop": "version", "name": "版本号" }, // { prop: 'alarmNotify', name: '推送方式 0邮箱 1微信' }, // { prop: 'operations', name: '操作', fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] } ] const addOrUpdateConfigs = { type: 'dialog', infoUrl: '/monitoring/equipmentGroupAlarm', fields: [ { name: 'code', label: '报警编码', required: true }, { name: 'typeDictValue', label: '报警类型', type: 'select', options: [] }, { name: 'gradeDictValue', label: '报警级别', type: 'select', options: [] }, { name: 'alarmContent', label: '报警内容', required: true } ], operations: [ { name: 'cancel', showAlways: true }, { name: 'save', url: '/monitoring/equipmentGroupAlarm', extraFields: { equipmentGroupId: null }, permission: '', showOnEdit: false }, { name: 'update', url: '/monitoring/equipmentGroupAlarm', extraFields: { equipmentGroupId: null }, permission: '', showOnEdit: true } ] } export default { mixins: [dictListMixin], data() { return { addOrUpdateConfigs, tableConfigs, dataForm: { key: '' }, dataList: [], pageIndex: 1, pageSize: 10, totalPage: 0, dataListLoading: false, dataListSelections: [], addOrUpdateVisible: false } }, components: { AddOrUpdate, BaseTable }, activated() { this.getDictData() this.getDataList() }, methods: { // 获取字典数据 getDictData() { this.initDictList(Object.entries(dictEntries).map(([_, item]) => item.value)) this.addOrUpdateConfigs.fields.forEach(item => { if (item.options && Array.isArray(item.options)) { let id Object.entries(dictEntries).forEach(([_, d]) => { if (d.field === item.name) { id = d.value } }) item.options = this.dictList[id] } }) }, // 获取数据列表 getDataList() { this.dataListLoading = true this.$http({ url: this.$http.adornUrl('/monitoring/equipmentGroupAlarm/page'), method: 'get', params: this.$http.adornParams({ page: this.pageIndex, limit: this.pageSize, groupId: this.$route.params.id }) }).then(({ data }) => { if (data && data.code === 0) { this.dataList = data.data.list this.totalPage = data.data.total } else { this.dataList = [] this.totalPage = 0 } this.dataListLoading = false }) }, // 每页数 sizeChangeHandle(val) { this.pageSize = val this.pageIndex = 1 this.getDataList() }, // 当前页 currentChangeHandle(val) { this.pageIndex = val this.getDataList() }, // 多选 selectionChangeHandle(val) { this.dataListSelections = val }, handleOperations({ type, data: id }) { switch (type) { case 'edit': return this.addOrUpdateHandle(id) case 'delete': return this.deleteHandle(id) } }, // 新增 / 修改 addOrUpdateHandle(id) { this.addOrUpdateConfigs.operations.forEach(item => { if (item.extraFields) { item.extraFields.equipmentGroupId = this.$route.params.id || null } }) this.addOrUpdateVisible = true this.$nextTick(() => { this.$refs.addOrUpdate.init(id) }) }, // 删除 deleteHandle(id) { var ids = id ? [id] : this.dataListSelections.map(item => { return item.id }) this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$http({ url: this.$http.adornUrl('/monitoring/equipmentGroupAlarm'), method: 'delete', data: this.$http.adornData(ids, false, 'raw') }).then(({ data }) => { if (data && data.code === 0) { this.$message({ message: '操作成功', type: 'success', duration: 1500, onClose: () => { this.getDataList() } }) } else { this.$message.error(data.msg) } }) }) } } } </script>