327 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			327 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
| 	<div class="app-container">
 | ||
| 		<!-- 搜索工作栏 -->
 | ||
| 		<el-form
 | ||
| 			:model="queryParams"
 | ||
| 			ref="queryForm"
 | ||
| 			size="small"
 | ||
| 			:inline="true"
 | ||
| 			v-show="showSearch"
 | ||
| 			label-width="68px">
 | ||
| 			<el-form-item label="创建时间" prop="createTime">
 | ||
| 				<el-date-picker
 | ||
| 					v-model="queryParams.createTime"
 | ||
| 					style="width: 240px"
 | ||
| 					value-format="yyyy-MM-dd HH:mm:ss"
 | ||
| 					type="daterange"
 | ||
| 					range-separator="-"
 | ||
| 					start-placeholder="开始日期"
 | ||
| 					end-placeholder="结束日期"
 | ||
| 					:default-time="['00:00:00', '23:59:59']" />
 | ||
| 			</el-form-item>
 | ||
| 			<el-form-item>
 | ||
| 				<el-button type="primary" icon="el-icon-search" @click="handleQuery">
 | ||
| 					搜索
 | ||
| 				</el-button>
 | ||
| 				<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
 | ||
| 			</el-form-item>
 | ||
| 		</el-form>
 | ||
| 
 | ||
| 		<!-- 操作工具栏 -->
 | ||
| 		<el-row :gutter="10" class="mb8">
 | ||
| 			<el-col :span="1.5">
 | ||
| 				<el-button
 | ||
| 					type="primary"
 | ||
| 					plain
 | ||
| 					icon="el-icon-plus"
 | ||
| 					size="mini"
 | ||
| 					@click="handleAdd"
 | ||
| 					v-hasPermi="['monitoring:equipment-alarm-realtime:create']">
 | ||
| 					新增
 | ||
| 				</el-button>
 | ||
| 			</el-col>
 | ||
| 			<el-col :span="1.5">
 | ||
| 				<el-button
 | ||
| 					type="warning"
 | ||
| 					plain
 | ||
| 					icon="el-icon-download"
 | ||
| 					size="mini"
 | ||
| 					@click="handleExport"
 | ||
| 					:loading="exportLoading"
 | ||
| 					v-hasPermi="['monitoring:equipment-alarm-realtime:export']">
 | ||
| 					导出
 | ||
| 				</el-button>
 | ||
| 			</el-col>
 | ||
| 			<right-toolbar
 | ||
| 				:showSearch.sync="showSearch"
 | ||
| 				@queryTable="getList"></right-toolbar>
 | ||
| 		</el-row>
 | ||
| 
 | ||
| 		<!-- 列表 -->
 | ||
| 		<el-table v-loading="loading" :data="list">
 | ||
| 			<el-table-column label="id" align="center" prop="id" />
 | ||
| 			<el-table-column
 | ||
| 				label="报警信息ID,关联base_equipment_group_alarm表"
 | ||
| 				align="center"
 | ||
| 				prop="alarmId" />
 | ||
| 			<el-table-column
 | ||
| 				label="字符型报警编码"
 | ||
| 				align="center"
 | ||
| 				prop="alarmContent" />
 | ||
| 			<el-table-column label="报警详细描述" align="center" prop="description" />
 | ||
| 			<el-table-column
 | ||
| 				label="报警设备id 关联equipment表"
 | ||
| 				align="center"
 | ||
| 				prop="alarmEquipmentId" />
 | ||
| 			<el-table-column label="实时报警值" align="center" prop="alarmValue" />
 | ||
| 			<el-table-column
 | ||
| 				label="状态,0 正常 1 报警中"
 | ||
| 				align="center"
 | ||
| 				prop="alarmStatus" />
 | ||
| 			<el-table-column
 | ||
| 				label="创建时间"
 | ||
| 				align="center"
 | ||
| 				prop="createTime"
 | ||
| 				width="180">
 | ||
| 				<template v-slot="scope">
 | ||
| 					<span>{{ parseTime(scope.row.createTime) }}</span>
 | ||
| 				</template>
 | ||
| 			</el-table-column>
 | ||
| 			<el-table-column
 | ||
| 				label="操作"
 | ||
| 				align="center"
 | ||
| 				class-name="small-padding fixed-width">
 | ||
| 				<template v-slot="scope">
 | ||
| 					<el-button
 | ||
| 						size="mini"
 | ||
| 						type="text"
 | ||
| 						icon="el-icon-edit"
 | ||
| 						@click="handleUpdate(scope.row)"
 | ||
| 						v-hasPermi="['monitoring:equipment-alarm-realtime:update']">
 | ||
| 						修改
 | ||
| 					</el-button>
 | ||
| 					<el-button
 | ||
| 						size="mini"
 | ||
| 						type="text"
 | ||
| 						icon="el-icon-delete"
 | ||
| 						@click="handleDelete(scope.row)"
 | ||
| 						v-hasPermi="['monitoring:equipment-alarm-realtime:delete']">
 | ||
| 						删除
 | ||
| 					</el-button>
 | ||
| 				</template>
 | ||
| 			</el-table-column>
 | ||
| 		</el-table>
 | ||
| 		<!-- 分页组件 -->
 | ||
| 		<pagination
 | ||
| 			v-show="total > 0"
 | ||
| 			:total="total"
 | ||
| 			:page.sync="queryParams.pageNo"
 | ||
| 			:limit.sync="queryParams.pageSize"
 | ||
| 			@pagination="getList" />
 | ||
| 
 | ||
| 		<!-- 对话框(添加 / 修改) -->
 | ||
| 		<el-dialog
 | ||
| 			:title="title"
 | ||
| 			:visible.sync="open"
 | ||
| 			width="500px"
 | ||
| 			v-dialogDrag
 | ||
| 			append-to-body>
 | ||
| 			<el-form ref="form" :model="form" :rules="rules" label-width="80px">
 | ||
| 				<el-form-item
 | ||
| 					label="报警信息ID,关联base_equipment_group_alarm表"
 | ||
| 					prop="alarmId">
 | ||
| 					<el-input
 | ||
| 						v-model="form.alarmId"
 | ||
| 						placeholder="请输入报警信息ID,关联base_equipment_group_alarm表" />
 | ||
| 				</el-form-item>
 | ||
| 				<el-form-item label="字符型报警编码">
 | ||
| 					<editor v-model="form.alarmContent" :min-height="192" />
 | ||
| 				</el-form-item>
 | ||
| 				<el-form-item label="报警详细描述">
 | ||
| 					<editor v-model="form.description" :min-height="192" />
 | ||
| 				</el-form-item>
 | ||
| 				<el-form-item
 | ||
| 					label="报警设备id 关联equipment表"
 | ||
| 					prop="alarmEquipmentId">
 | ||
| 					<el-input
 | ||
| 						v-model="form.alarmEquipmentId"
 | ||
| 						placeholder="请输入报警设备id 关联equipment表" />
 | ||
| 				</el-form-item>
 | ||
| 				<el-form-item label="实时报警值" prop="alarmValue">
 | ||
| 					<el-input v-model="form.alarmValue" placeholder="请输入实时报警值" />
 | ||
| 				</el-form-item>
 | ||
| 				<el-form-item label="状态,0 正常 1 报警中" prop="alarmStatus">
 | ||
| 					<el-radio-group v-model="form.alarmStatus">
 | ||
| 						<el-radio label="1">请选择字典生成</el-radio>
 | ||
| 					</el-radio-group>
 | ||
| 				</el-form-item>
 | ||
| 			</el-form>
 | ||
| 			<div slot="footer" class="dialog-footer">
 | ||
| 				<el-button type="primary" @click="submitForm">确 定</el-button>
 | ||
| 				<el-button @click="cancel">取 消</el-button>
 | ||
| 			</div>
 | ||
| 		</el-dialog>
 | ||
| 	</div>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import {
 | ||
| 	createEquipmentAlarmRealtime,
 | ||
| 	updateEquipmentAlarmRealtime,
 | ||
| 	deleteEquipmentAlarmRealtime,
 | ||
| 	getEquipmentAlarmRealtime,
 | ||
| 	getEquipmentAlarmRealtimePage,
 | ||
| 	exportEquipmentAlarmRealtimeExcel,
 | ||
| } from '@/api/monitoring/equipmentAlarmRealtime';
 | ||
| import Editor from '@/components/Editor';
 | ||
| 
 | ||
| export default {
 | ||
| 	name: 'EquipmentAlarmRealtime',
 | ||
| 	components: {
 | ||
| 		Editor,
 | ||
| 	},
 | ||
| 	data() {
 | ||
| 		return {
 | ||
| 			// 遮罩层
 | ||
| 			loading: true,
 | ||
| 			// 导出遮罩层
 | ||
| 			exportLoading: false,
 | ||
| 			// 显示搜索条件
 | ||
| 			showSearch: true,
 | ||
| 			// 总条数
 | ||
| 			total: 0,
 | ||
| 			// 设备报警实时信息列表
 | ||
| 			list: [],
 | ||
| 			// 弹出层标题
 | ||
| 			title: '',
 | ||
| 			// 是否显示弹出层
 | ||
| 			open: false,
 | ||
| 			// 查询参数
 | ||
| 			queryParams: {
 | ||
| 				pageNo: 1,
 | ||
| 				pageSize: 10,
 | ||
| 				createTime: [],
 | ||
| 			},
 | ||
| 			// 表单参数
 | ||
| 			form: {},
 | ||
| 			// 表单校验
 | ||
| 			rules: {},
 | ||
| 		};
 | ||
| 	},
 | ||
| 	created() {
 | ||
| 		this.getList();
 | ||
| 	},
 | ||
| 	methods: {
 | ||
| 		/** 查询列表 */
 | ||
| 		getList() {
 | ||
| 			this.loading = true;
 | ||
| 			// 执行查询
 | ||
| 			getEquipmentAlarmRealtimePage(this.queryParams).then((response) => {
 | ||
| 				this.list = response.data.list;
 | ||
| 				this.total = response.data.total;
 | ||
| 				this.loading = false;
 | ||
| 			});
 | ||
| 		},
 | ||
| 		/** 取消按钮 */
 | ||
| 		cancel() {
 | ||
| 			this.open = false;
 | ||
| 			this.reset();
 | ||
| 		},
 | ||
| 		/** 表单重置 */
 | ||
| 		reset() {
 | ||
| 			this.form = {
 | ||
| 				id: undefined,
 | ||
| 				alarmId: undefined,
 | ||
| 				alarmContent: undefined,
 | ||
| 				description: undefined,
 | ||
| 				alarmEquipmentId: undefined,
 | ||
| 				alarmValue: undefined,
 | ||
| 				alarmStatus: undefined,
 | ||
| 			};
 | ||
| 			this.resetForm('form');
 | ||
| 		},
 | ||
| 		/** 搜索按钮操作 */
 | ||
| 		handleQuery() {
 | ||
| 			this.queryParams.pageNo = 1;
 | ||
| 			this.getList();
 | ||
| 		},
 | ||
| 		/** 重置按钮操作 */
 | ||
| 		resetQuery() {
 | ||
| 			this.resetForm('queryForm');
 | ||
| 			this.handleQuery();
 | ||
| 		},
 | ||
| 		/** 新增按钮操作 */
 | ||
| 		handleAdd() {
 | ||
| 			this.reset();
 | ||
| 			this.open = true;
 | ||
| 			this.title = '添加设备报警实时信息';
 | ||
| 		},
 | ||
| 		/** 修改按钮操作 */
 | ||
| 		handleUpdate(row) {
 | ||
| 			this.reset();
 | ||
| 			const id = row.id;
 | ||
| 			getEquipmentAlarmRealtime(id).then((response) => {
 | ||
| 				this.form = response.data;
 | ||
| 				this.open = true;
 | ||
| 				this.title = '修改设备报警实时信息';
 | ||
| 			});
 | ||
| 		},
 | ||
| 		/** 提交按钮 */
 | ||
| 		submitForm() {
 | ||
| 			this.$refs['form'].validate((valid) => {
 | ||
| 				if (!valid) {
 | ||
| 					return;
 | ||
| 				}
 | ||
| 				// 修改的提交
 | ||
| 				if (this.form.id != null) {
 | ||
| 					updateEquipmentAlarmRealtime(this.form).then((response) => {
 | ||
| 						this.$modal.msgSuccess('修改成功');
 | ||
| 						this.open = false;
 | ||
| 						this.getList();
 | ||
| 					});
 | ||
| 					return;
 | ||
| 				}
 | ||
| 				// 添加的提交
 | ||
| 				createEquipmentAlarmRealtime(this.form).then((response) => {
 | ||
| 					this.$modal.msgSuccess('新增成功');
 | ||
| 					this.open = false;
 | ||
| 					this.getList();
 | ||
| 				});
 | ||
| 			});
 | ||
| 		},
 | ||
| 		/** 删除按钮操作 */
 | ||
| 		handleDelete(row) {
 | ||
| 			const id = row.id;
 | ||
| 			this.$modal
 | ||
| 				.confirm('是否确认删除设备报警实时信息编号为"' + id + '"的数据项?')
 | ||
| 				.then(function () {
 | ||
| 					return deleteEquipmentAlarmRealtime(id);
 | ||
| 				})
 | ||
| 				.then(() => {
 | ||
| 					this.getList();
 | ||
| 					this.$modal.msgSuccess('删除成功');
 | ||
| 				})
 | ||
| 				.catch(() => {});
 | ||
| 		},
 | ||
| 		/** 导出按钮操作 */
 | ||
| 		handleExport() {
 | ||
| 			// 处理查询参数
 | ||
| 			let params = { ...this.queryParams };
 | ||
| 			params.pageNo = undefined;
 | ||
| 			params.pageSize = undefined;
 | ||
| 			this.$modal
 | ||
| 				.confirm('是否确认导出所有设备报警实时信息数据项?')
 | ||
| 				.then(() => {
 | ||
| 					this.exportLoading = true;
 | ||
| 					return exportEquipmentAlarmRealtimeExcel(params);
 | ||
| 				})
 | ||
| 				.then((response) => {
 | ||
| 					this.$download.excel(response, '设备报警实时信息.xls');
 | ||
| 					this.exportLoading = false;
 | ||
| 				})
 | ||
| 				.catch(() => {});
 | ||
| 		},
 | ||
| 	},
 | ||
| };
 | ||
| </script>
 |