新增andon模块

This commit is contained in:
17630416519
2025-12-11 17:21:38 +08:00
parent e2375282de
commit b69fa5822e
4 changed files with 294 additions and 118 deletions

View File

@@ -0,0 +1,135 @@
<template>
<div style="padding: 5px;">
<el-row :gutter="10">
<el-col :span="6">
<el-table stripe="true" @row-click="handleRowClick" :data="leftList" v-loading="loading" ref="table"
border highlight-current-row>
<el-table-column prop="lineName" label="产线名称" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="alarmCode" label="报警记录编码" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="alarmInfo" label="报警信息" align="center" :show-overflow-tooltip="true" />
</el-table>
<pagination class="mt10" background :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getLeftList" />
</el-col>
<el-col :span="18">
<div style="width: 100%; height: 50px;">
<el-button type="primary" @click="handleAdd">新增</el-button>
</div>
<div style="width: 100%; height: 80vh; ">
<el-row :gutter="10">
<el-col :span="15">
<el-form ref="form" :model="form" label-width="100" label-position="left">
<el-row>
<el-col :lg="12">
<el-form-item label="报警记录编码">
<el-input disabled v-model="form.alarmCode" placeholder="请输入报警记录编码" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="产线">
<el-input disabled v-model="form.lineCode" placeholder="请输入产线" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="产线名称">
<el-input disabled v-model="form.lineName" placeholder="请输入产线名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="报警类型">
<el-input disabled v-model="form.alarmType" placeholder="请输入报警类型" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="报警级别">
<el-input disabled v-model="form.alarmLevel" placeholder="请输入报警级别" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="报警信息">
<el-input disabled v-model="form.alarmInfo" placeholder="请输入报警信息" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="接收方">
<el-input disabled v-model="form.receiver" placeholder="请输入接收方" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="接收方名称">
<el-input disabled v-model="form.receiverName" placeholder="请输入接收方名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="处理结果">
<el-input v-model="form.handleResult" placeholder="请输入处理结果" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="备注">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button type="primary" @click="handleUpdate">响应</el-button>
<el-button type="success" @click="handleDelete">处理完毕</el-button>
<el-button type="warning" @click="handleCancel">报告上级</el-button>
</el-col>
<el-col :span="8">4</el-col>
</el-row>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import { listAndonAlarmRecord, listAndonAlarmRecordTime } from "@/api/andonManagement/humanComputerInteraction/index.js"
export default {
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 15,
},
leftList: [],
total: 0,
loading: false,
form: {},
}
},
created() {
this.getLeftList()
},
mounted() {
},
methods: {
getLeftList() {
this.loading = true;
listAndonAlarmRecord(this.queryParams).then(res => {
if (res.code == 200) {
this.loading = false;
this.leftList = res.data.result;
this.total = res.data.totalNum;
}
})
},
handleRowClick(row, column, event) {
this.form = {
...row
}
}
}
}
</script>
<style scoped>
::v-deep .el-input.is-disabled .el-input__inner {
background-color: #F5F7FA;
border-color: #dfe4ed;
color: #606266;
cursor: not-allowed;
}
</style>

View File

@@ -2,83 +2,84 @@
* @Descripttion: (报警记录/andon_alarm_record)
* @version: (1.0)
* @Author: (admin)
* @Date: (2025-12-10)
* @Date: (2025-12-11)
* @LastEditors: (admin)
* @LastEditTime: (2025-12-10)
* @LastEditTime: (2025-12-11)
-->
<template>
<div class="app-container">
<!-- :model属性用于表单验证使用 比如下面的el-form-item prop属性用于对表单值进行验证操作 -->
<el-form :model="queryParams" size="small" label-position="right" inline ref="queryForm" v-show="showSearch"
@submit.native.prevent>
<el-form :model="queryParams" size="small" label-position="right" inline ref="queryForm"
v-show="showSearch" @submit.native.prevent>
<el-form-item label="报警编码" prop="alarmCode">
<el-input v-model="queryParams.alarmCode" placeholder="请输入报警编码" clearable />
</el-form-item>
<el-form-item label="产线" prop="lineCode">
<el-input v-model="queryParams.lineCode" placeholder="请输入产线" clearable />
</el-form-item>
<el-form-item label="产线名称" prop="lineName">
<el-input v-model="queryParams.lineName" placeholder="请输入产线名称" clearable />
</el-form-item>
<el-form-item label="报警类型" prop="alarmType">
<!-- <el-input v-model="queryParams.alarmType" placeholder="请输入报警类型" clearable /> -->
<el-select v-model="queryParams.alarmType" placeholder="请选择报警类型" clearable>
<el-option v-for="dict in alarmTypeOptions" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.alarmType" placeholder="请选择报警类型">
<el-option v-for="item in alarmTypeOptions" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictLabel"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-input v-model="queryParams.status" placeholder="请输入状态" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button disabled type="primary" v-hasPermi="['business:andonalarmrecord:add']" plain
icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
<el-button type="primary" v-hasPermi="['business:andonalarmrecord:add']" plain icon="el-icon-plus"
size="mini" @click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" :disabled="multiple" v-hasPermi="['business:andonalarmrecord:delete']" plain
icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="success" :disabled="single" v-hasPermi="['business:andonalarmrecord:edit']" plain icon="el-icon-edit" size="mini" @click="handleUpdate">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" :disabled="multiple" v-hasPermi="['business:andonalarmrecord:delete']" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 数据区域 -->
<el-table :data="dataList" v-loading="loading" ref="table" border highlight-current-row
@sort-change="sortChange" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="50" align="center"/> -->
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column prop="id" label="主键" align="center" /> -->
<el-table-column prop="alarmCode" label="报警编码" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="lineCode" label="产线" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="lineName" label="产线名称" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="alarmType" label="报警类型" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="alarmTypeOptions" :value="scope.row.alarmType" />
</template> -->
</el-table-column>
<el-table-column prop="sender" label="发送方" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="sendTime" label="发送时间" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="receiver" label="接收方" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="responseTime" label="响应时间" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="handleTime" label="处理结束时间" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="durationTime" label="持续时间" align="center" />
<el-table-column prop="alarmLevel" label="报警级别" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="alarmInfo" label="报警信息" align="center" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="sender" label="发送方ID" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="senderName" label="发送方名称" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="sendTime" label="发送时间" align="center" :show-overflow-tooltip="true" /> -->
<el-table-column prop="receiver" label="接收方" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="receiverName" label="接收方名称" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="sequence" label="序号" align="center" />
<el-table-column prop="durationTime" label="持续时间" align="center" />
<el-table-column prop="status" label="状态" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="statusOptions" :value="scope.row.status" />
</template> -->
<template slot-scope="scope">
<dict-tag :options="statusOptions" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="handleResult" label="处理结果" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="remarks" label="备注" align="center" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="createdTime" label="创建时间" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="updatedTime" label="更新时间" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="updatedTime" label="更新时间" align="center" :show-overflow-tooltip="true" /> -->
<el-table-column label="操作" align="center" width="140">
<template slot-scope="scope">
<el-button size="mini" v-hasPermi="['business:andonalarmrecord:edit']" type="success"
@@ -96,60 +97,33 @@
<el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth">
<el-row :gutter="20">
<el-col :lg="12">
<el-form-item label="报警编码" prop="alarmCode">
<el-input v-model="form.alarmCode" placeholder="请输入报警编码" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="产线" prop="lineCode">
<el-input v-model="form.lineCode" placeholder="请输入产线" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="产线名称" prop="lineName">
<el-input v-model="form.lineName" placeholder="请输入产线名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="报警类型" prop="alarmType">
<el-select v-model="form.alarmType" placeholder="请选择报警类型">
<el-option v-for="item in alarmTypeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
<el-option v-for="item in alarmTypeOptions" :key="item.dictValue"
:label="item.dictLabel" :value="item.dictLabel"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="发送方" prop="sender">
<el-input v-model="form.sender" placeholder="请输入发送方" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="发送时间" prop="sendTime">
<el-date-picker v-model="form.sendTime" type="datetime"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="接收方" prop="receiver">
<el-input v-model="form.receiver" placeholder="请输入接收方" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="响应时间" prop="responseTime">
<el-date-picker v-model="form.responseTime" type="datetime"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="处理结束时间" prop="handleTime">
<el-date-picker v-model="form.handleTime" type="datetime"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="持续时间" prop="durationTime">
<el-input v-model="form.durationTime" placeholder="请输入持续时间" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="报警级别" prop="alarmLevel">
<el-input v-model="form.alarmLevel" placeholder="请输入报警级别" />
@@ -162,6 +136,48 @@
</el-form-item>
</el-col>
<!-- <el-col :lg="12">
<el-form-item label="发送方ID" prop="sender">
<el-input v-model="form.sender" placeholder="请输入发送方ID" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="发送方名称" prop="senderName">
<el-input v-model="form.senderName" placeholder="请输入发送方名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="发送时间" prop="sendTime">
<el-date-picker v-model="form.sendTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col> -->
<el-col :lg="12">
<el-form-item label="接收方" prop="receiver">
<el-input v-model="form.receiver" placeholder="请输入接收方" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="接收方名称" prop="receiverName">
<el-input v-model="form.receiverName" placeholder="请输入接收方名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="序号" prop="sequence">
<el-input v-model="form.sequence" placeholder="请输入序号" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="持续时间" prop="durationTime">
<el-input v-model="form.durationTime" placeholder="请输入持续时间" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择状态">
@@ -177,6 +193,12 @@
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -194,7 +216,7 @@ import {
delAndonAlarmRecord,
updateAndonAlarmRecord,
getAndonAlarmRecord,
getAndonAlarmTypeDict
getAndonAlarmTypeDictList
} from '@/api/andonManagement/policeRecord/index.js';
export default {
@@ -205,7 +227,6 @@ export default {
formLabelWidth: "100px",
// 选中id数组
ids: [],
AndonAlarmRecordData: [],
// 非单个禁用
single: true,
// 非多个禁用
@@ -231,33 +252,37 @@ export default {
form: {},
columns: [
{ index: 0, key: 'id', label: `主键`, checked: true },
{ index: 1, key: 'lineCode', label: `产线`, checked: true },
{ index: 2, key: 'alarmType', label: `报警类型`, checked: true },
{ index: 3, key: 'sender', label: `发送方`, checked: true },
{ index: 4, key: 'sendTime', label: `发送时间`, checked: true },
{ index: 5, key: 'receiver', label: `接收方`, checked: true },
{ index: 6, key: 'responseTime', label: `响应时间`, checked: true },
{ index: 7, key: 'handleTime', label: `处理结束时间`, checked: true },
{ index: 8, key: 'durationTime', label: `持续时间`, checked: true },
{ index: 9, key: 'alarmLevel', label: `报警级别`, checked: false },
{ index: 10, key: 'alarmInfo', label: `报警信息`, checked: false },
{ index: 11, key: 'status', label: `状态`, checked: false },
{ index: 12, key: 'handleResult', label: `处理结果`, checked: false },
{ index: 13, key: 'createdBy', label: `创建人`, checked: false },
{ index: 14, key: 'createdTime', label: `创建时间`, checked: false },
{ index: 15, key: 'updatedBy', label: `更新人`, checked: false },
{ index: 16, key: 'updatedTime', label: `更新时间`, checked: false },
{ index: 1, key: 'alarmCode', label: `报警编码`, checked: true },
{ index: 2, key: 'lineCode', label: `产线`, checked: true },
{ index: 3, key: 'lineName', label: `产线名称`, checked: true },
{ index: 4, key: 'alarmType', label: `报警类型`, checked: true },
{ index: 5, key: 'alarmLevel', label: `报警级别`, checked: true },
{ index: 6, key: 'alarmInfo', label: `报警信息`, checked: true },
{ index: 7, key: 'sender', label: `发送方ID`, checked: true },
{ index: 8, key: 'senderName', label: `发送方名称`, checked: true },
{ index: 9, key: 'sendTime', label: `发送时间`, checked: false },
{ index: 10, key: 'receiver', label: `接收方`, checked: false },
{ index: 11, key: 'receiverName', label: `接收方名称`, checked: false },
{ index: 12, key: 'sequence', label: `序号`, checked: false },
{ index: 13, key: 'durationTime', label: `持续时间`, checked: false },
{ index: 14, key: 'status', label: `状态`, checked: false },
{ index: 15, key: 'handleResult', label: `处理结果`, checked: false },
{ index: 16, key: 'remarks', label: `备注`, checked: false },
{ index: 17, key: 'createdBy', label: `创建人`, checked: false },
{ index: 18, key: 'createdTime', label: `创建时间`, checked: false },
{ index: 19, key: 'updatedBy', label: `更新人`, checked: false },
{ index: 20, key: 'updatedTime', label: `更新时间`, checked: false },
],
// 报警类型选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'}
alarmTypeOptions: [],
// 状态选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'}
statusOptions: [
{ dictLabel: '上报', dictValue: '上报' },
{ dictLabel: '响应', dictValue: '响应' },
{ dictLabel: '超时', dictValue: '超时' },
{ dictLabel: '未处理', dictValue: '未处理' },
{ dictLabel: '已处理', dictValue: '已处理' },
{ dictLabel: '报', dictValue: '报' },
{ dictLabel: '超时', dictValue: '超时' },
{ dictLabel: '已响应', dictValue: '已响应' },
{ dictLabel: '已上报', dictValue: '已上报' },
{ dictLabel: '已申报', dictValue: '已申报' },
],
// 数据列表
dataList: [],
@@ -273,18 +298,13 @@ export default {
created() {
// 列表数据查询
this.getList();
getAndonAlarmTypeDict().then(res => {
getAndonAlarmTypeDictList().then(res => {
if (res.code == 200) {
console.log(res, '报警类型下拉');
this.alarmTypeOptions = res.data.map(item => {
return {
label: item.value,
value: item.label
}
});
return { dictLabel: item.value, dictValue: item.label }
})
}
});
})
var dictParams = [
];
},
@@ -309,18 +329,22 @@ export default {
reset() {
this.form = {
id: undefined,
alarmCode: undefined,
lineCode: undefined,
lineName: undefined,
alarmType: undefined,
sender: undefined,
sendTime: undefined,
receiver: undefined,
responseTime: undefined,
handleTime: undefined,
durationTime: undefined,
alarmLevel: undefined,
alarmInfo: undefined,
sender: undefined,
senderName: undefined,
sendTime: undefined,
receiver: undefined,
receiverName: undefined,
sequence: undefined,
durationTime: undefined,
status: undefined,
handleResult: undefined,
remarks: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
@@ -331,7 +355,6 @@ export default {
// 重置查询操作
resetQuery() {
this.timeRange = [];
this.queryParams.pageSize = 10
this.resetForm("queryForm");
this.handleQuery();
},