Admin.NET/WCS.Application/Configuration/Database.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoInput.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoOutput.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Admin.NET/WCS.Application/Service/WcsAlarmInfo/WcsAlarmInfoService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Web/src/api/wcs/wcsAlarmInfo.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Web/src/views/wcs/wcsAlarmInfo/component/editDialog.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Web/src/views/wcs/wcsAlarmInfo/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Web/src/views/wcs/wcsAlarmLog/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Admin.NET/WCS.Application/Configuration/Database.json
@@ -11,7 +11,7 @@ //"ConnectionString": "PORT=5432;DATABASE=xxx;HOST=localhost;PASSWORD=xxx;USER ID=xxx", // PostgreSQL 库连接字符串 //"ConnectionString": "Server=localhost;Database=xxx;Uid=xxx;Pwd=xxx;SslMode=None;", // MySql 库连接字符串", //"ConnectionString": "User Id=xxx; Password=xxx; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))", // Oracle 库连接字符串 "ConnectionString": "Server=.\\MSSQLSERVER2019;Database=WCS_JC26;User Id=sa;Password=admin2023@;", // SqlServer 库连接字符串 "ConnectionString": "Server=localhost;Database=WCS_JC26;User Id=sa;Password=******;", // SqlServer 库连接字符串 //"SlaveConnectionConfigs": [ // 读写分离/主从 // { Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoDto.cs
New file @@ -0,0 +1,104 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! namespace WCS.Application; /// <summary> /// 报警信息表输出参数 /// </summary> public class WcsAlarmInfoDto { /// <summary> /// 主键Id /// </summary> public long Id { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public string? AlarmName { get; set; } /// <summary> /// 显示屏ip地址 /// </summary> public string? LedIP { get; set; } /// <summary> /// 状态 /// </summary> public YesNoEnum Status { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public DateTime? AlarmTime { get; set; } /// <summary> /// LED状态 /// </summary> public YesNoEnum LedStatus { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </summary> public long? CreateOrgId { get; set; } /// <summary> /// 创建者部门名称 /// </summary> public string? CreateOrgName { get; set; } /// <summary> /// 软删除 /// </summary> public bool IsDelete { get; set; } } Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoInput.cs
New file @@ -0,0 +1,165 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using System.ComponentModel.DataAnnotations; namespace WCS.Application; /// <summary> /// 报警信息表基础输入参数 /// </summary> public class WcsAlarmInfoBaseInput { /// <summary> /// PLCIP地址 /// </summary> public virtual string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public virtual string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public virtual string? AlarmName { get; set; } /// <summary> /// 显示屏ip地址 /// </summary> public virtual string? LedIP { get; set; } /// <summary> /// 状态 /// </summary> public virtual YesNoEnum Status { get; set; } = YesNoEnum.N; /// <summary> /// 设备类型 /// </summary> public virtual string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public virtual DateTime? AlarmTime { get; set; } /// <summary> /// LED状态 /// </summary> public virtual YesNoEnum LedStatus { get; set; } = YesNoEnum.N; /// <summary> /// 创建时间 /// </summary> public virtual DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public virtual DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public virtual long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public virtual string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public virtual long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public virtual string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </summary> public virtual long? CreateOrgId { get; set; } /// <summary> /// 创建者部门名称 /// </summary> public virtual string? CreateOrgName { get; set; } /// <summary> /// 软删除 /// </summary> public virtual bool IsDelete { get; set; } } /// <summary> /// 报警信息表分页查询输入参数 /// </summary> public class PageWcsAlarmInfoInput : BasePageInput { /// <summary> /// 关键字查询 /// </summary> public string? SearchKey { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } } /// <summary> /// 报警信息表增加输入参数 /// </summary> public class AddWcsAlarmInfoInput : WcsAlarmInfoBaseInput { /// <summary> /// 软删除 /// </summary> [Required(ErrorMessage = "软删除不能为空")] public override bool IsDelete { get; set; } } /// <summary> /// 报警信息表删除输入参数 /// </summary> public class DeleteWcsAlarmInfoInput : BaseIdInput { } /// <summary> /// 报警信息表更新输入参数 /// </summary> public class UpdateWcsAlarmInfoInput : WcsAlarmInfoBaseInput { /// <summary> /// 主键Id /// </summary> [Required(ErrorMessage = "主键Id不能为空")] public long Id { get; set; } } /// <summary> /// 报警信息表主键查询输入参数 /// </summary> public class QueryByIdWcsAlarmInfoInput : DeleteWcsAlarmInfoInput { } Admin.NET/WCS.Application/Service/WcsAlarmInfo/Dto/WcsAlarmInfoOutput.cs
New file @@ -0,0 +1,106 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! namespace WCS.Application; /// <summary> /// 报警信息表输出参数 /// </summary> public class WcsAlarmInfoOutput { /// <summary> /// 主键Id /// </summary> public long Id { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public string? AlarmName { get; set; } /// <summary> /// 显示屏ip地址 /// </summary> public string? LedIP { get; set; } /// <summary> /// 状态 /// </summary> public YesNoEnum Status { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public DateTime? AlarmTime { get; set; } /// <summary> /// LED状态 /// </summary> public YesNoEnum LedStatus { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </summary> public long? CreateOrgId { get; set; } /// <summary> /// 创建者部门名称 /// </summary> public string? CreateOrgName { get; set; } /// <summary> /// 软删除 /// </summary> public bool IsDelete { get; set; } } Admin.NET/WCS.Application/Service/WcsAlarmInfo/WcsAlarmInfoService.cs
New file @@ -0,0 +1,119 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core.Service; using Microsoft.AspNetCore.Http; namespace WCS.Application; /// <summary> /// 报警信息表服务 /// </summary> [ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)] public class WcsAlarmInfoService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<WcsAlarmInfo> _wcsAlarmInfoRep; public WcsAlarmInfoService(SqlSugarRepository<WcsAlarmInfo> wcsAlarmInfoRep) { _wcsAlarmInfoRep = wcsAlarmInfoRep; } /// <summary> /// 分页查询报警信息表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "Page")] [DisplayName("分页查询报警信息表")] public async Task<SqlSugarPagedList<WcsAlarmInfoOutput>> Page(PageWcsAlarmInfoInput input) { input.SearchKey = input.SearchKey?.Trim(); var query = _wcsAlarmInfoRep.AsQueryable() .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => u.PlcIP.Contains(input.SearchKey) || u.Type.Contains(input.SearchKey) ) .WhereIF(!string.IsNullOrWhiteSpace(input.PlcIP), u => u.PlcIP.Contains(input.PlcIP.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Type), u => u.Type.Contains(input.Type.Trim())) .Select<WcsAlarmInfoOutput>(); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } /// <summary> /// 增加报警信息表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "Add")] [DisplayName("增加报警信息表")] public async Task<long> Add(AddWcsAlarmInfoInput input) { var entity = input.Adapt<WcsAlarmInfo>(); await _wcsAlarmInfoRep.InsertAsync(entity); return entity.Id; } /// <summary> /// 删除报警信息表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "Delete")] [DisplayName("删除报警信息表")] public async Task Delete(DeleteWcsAlarmInfoInput input) { var entity = await _wcsAlarmInfoRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002); await _wcsAlarmInfoRep.FakeDeleteAsync(entity); //假删除 //await _wcsAlarmInfoRep.DeleteAsync(entity); //真删除 } /// <summary> /// 更新报警信息表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "Update")] [DisplayName("更新报警信息表")] public async Task Update(UpdateWcsAlarmInfoInput input) { var entity = input.Adapt<WcsAlarmInfo>(); await _wcsAlarmInfoRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); } /// <summary> /// 获取报警信息表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "Detail")] [DisplayName("获取报警信息表")] public async Task<WcsAlarmInfo> Detail([FromQuery] QueryByIdWcsAlarmInfoInput input) { return await _wcsAlarmInfoRep.GetFirstAsync(u => u.Id == input.Id); } /// <summary> /// 获取报警信息表列表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "List")] [DisplayName("获取报警信息表列表")] public async Task<List<WcsAlarmInfoOutput>> List([FromQuery] PageWcsAlarmInfoInput input) { return await _wcsAlarmInfoRep.AsQueryable().Select<WcsAlarmInfoOutput>().ToListAsync(); } } Web/src/api/wcs/wcsAlarmInfo.ts
New file @@ -0,0 +1,50 @@ import request from '/@/utils/request'; enum Api { AddWcsAlarmInfo = '/api/wcsAlarmInfo/add', DeleteWcsAlarmInfo = '/api/wcsAlarmInfo/delete', UpdateWcsAlarmInfo = '/api/wcsAlarmInfo/update', PageWcsAlarmInfo = '/api/wcsAlarmInfo/page', DetailWcsAlarmInfo = '/api/wcsAlarmInfo/detail', } // 增加报警信息表 export const addWcsAlarmInfo = (params?: any) => request({ url: Api.AddWcsAlarmInfo, method: 'post', data: params, }); // 删除报警信息表 export const deleteWcsAlarmInfo = (params?: any) => request({ url: Api.DeleteWcsAlarmInfo, method: 'post', data: params, }); // 编辑报警信息表 export const updateWcsAlarmInfo = (params?: any) => request({ url: Api.UpdateWcsAlarmInfo, method: 'post', data: params, }); // 分页查询报警信息表 export const pageWcsAlarmInfo = (params?: any) => request({ url: Api.PageWcsAlarmInfo, method: 'post', data: params, }); // 详情报警信息表 export const detailWcsAlarmInfo = (id: any) => request({ url: Api.DetailWcsAlarmInfo, method: 'get', data: { id }, }); Web/src/views/wcs/wcsAlarmInfo/component/editDialog.vue
New file @@ -0,0 +1,153 @@ <template> <div class="wcsAlarmInfo-container"> <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false"> <template #header> <div style="color: #fff"> <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>--> <span>{{ props.title }}</span> </div> </template> <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules"> <el-row :gutter="35"> <el-form-item v-show="false"> <el-input v-model="ruleForm.id" /> </el-form-item> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="PLCIP地址" prop="plcIP"> <el-input v-model="ruleForm.plcIP" placeholder="请输入PLCIP地址" maxlength="20" show-word-limit clearable /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="报警编号" prop="alarmCode"> <el-input v-model="ruleForm.alarmCode" placeholder="请输入报警编号" maxlength="20" show-word-limit clearable /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="报警描述" prop="alarmName"> <el-input v-model="ruleForm.alarmName" placeholder="请输入报警描述" maxlength="100" show-word-limit clearable /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="显示屏ip地址" prop="ledIP"> <el-input v-model="ruleForm.ledIP" placeholder="请输入显示屏ip地址" maxlength="20" show-word-limit clearable /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="设备类型" prop="type"> <el-input v-model="ruleForm.type" placeholder="请输入设备类型" maxlength="20" show-word-limit clearable /> </el-form-item> </el-col> </el-row> </el-form> <template #footer> <span class="dialog-footer"> <el-button @click="cancel">取 消</el-button> <el-button type="primary" @click="submit">确 定</el-button> </span> </template> </el-dialog> </div> </template> <style lang="scss" scoped> :deep(.el-select), :deep(.el-input-number) { width: 100%; } </style> <script lang="ts" setup> import { ref,onMounted } from "vue"; import { ElMessage } from "element-plus"; import type { FormRules } from "element-plus"; import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; import { getDictLabelByVal as dv } from '/@/utils/dict-utils'; import { formatDate } from '/@/utils/formatTime'; import { addWcsAlarmInfo, updateWcsAlarmInfo, detailWcsAlarmInfo } from "/@/api/wcs/wcsAlarmInfo"; import { getAPI } from '/@/utils/axios-utils'; import { SysEnumApi } from '/@/api-services/api'; //父级传递来的参数 var props = defineProps({ title: { type: String, default: "", }, }); //父级传递来的函数,用于回调 const emit = defineEmits(["reloadTable"]); const ruleFormRef = ref(); const isShowDialog = ref(false); const ruleForm = ref<any>({}); //自行添加其他规则 const rules = ref<FormRules>({ }); // 页面加载时 onMounted(() => { }); // 打开弹窗 const openDialog = async (row: any) => { // ruleForm.value = JSON.parse(JSON.stringify(row)); // 改用detail获取最新数据来编辑 let rowData = JSON.parse(JSON.stringify(row)); if (rowData.id) ruleForm.value = (await detailWcsAlarmInfo(rowData.id)).data.result; else ruleForm.value = rowData; isShowDialog.value = true; }; // 关闭弹窗 const closeDialog = () => { emit("reloadTable"); isShowDialog.value = false; }; // 取消 const cancel = () => { isShowDialog.value = false; }; // 提交 const submit = async () => { ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => { if (isValid) { let values = ruleForm.value; if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) { await addWcsAlarmInfo(values); } else { await updateWcsAlarmInfo(values); } closeDialog(); } else { ElMessage({ message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`, type: "error", }); } }); }; //将属性或者函数暴露给父组件 defineExpose({ openDialog }); </script> Web/src/views/wcs/wcsAlarmInfo/index.vue
New file @@ -0,0 +1,194 @@ <template> <div class="wcsAlarmInfo-container"> <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> <el-form :model="queryParams" ref="queryForm" labelWidth="90"> <el-row> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item label="关键字"> <el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="PLCIP地址"> <el-input v-model="queryParams.plcIP" clearable="" placeholder="请输入PLCIP地址" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="设备类型"> <el-input v-model="queryParams.type" clearable="" placeholder="请输入设备类型" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item> <el-button-group style="display: flex; align-items: center;"> <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wcsAlarmInfo:page'"> 查询 </el-button> <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button> <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button> <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button> <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWcsAlarmInfo" v-auth="'wcsAlarmInfo:add'"> 新增 </el-button> </el-button-group> </el-form-item> </el-col> </el-row> </el-form> </el-card> <el-card class="full-table" shadow="hover" style="margin-top: 5px"> <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border=""> <el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column prop="plcIP" label="PLCIP地址" show-overflow-tooltip="" /> <el-table-column prop="alarmCode" label="报警编号" show-overflow-tooltip="" /> <el-table-column prop="alarmName" label="报警描述" show-overflow-tooltip="" /> <el-table-column prop="ledIP" label="显示屏ip地址" show-overflow-tooltip="" /> <el-table-column prop="status" label="报警状态" show-overflow-tooltip=""> <template #default="scope"> <el-tag :type="dv('YesNoEnum', scope.row.status)?.tagType"> {{ dv('YesNoEnum', scope.row.status)?.name }}</el-tag> </template> </el-table-column> <el-table-column prop="type" label="设备类型" show-overflow-tooltip="" /> <el-table-column prop="alarmTime" label="报警日期" show-overflow-tooltip="" /> <el-table-column prop="ledStatus" label="LED显示状态" show-overflow-tooltip=""> <template #default="scope"> <el-tag :type="dv('YesNoEnum', scope.row.ledStatus)?.tagType"> {{ dv('YesNoEnum', scope.row.ledStatus)?.name }}</el-tag> </template> </el-table-column> <el-table-column label="修改记录" width="80" align="center" show-overflow-tooltip> <template #default="scope"> <ModifyRecord :data="scope.row" /> </template> </el-table-column> <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wcsAlarmInfo:update') || auth('wcsAlarmInfo:delete')"> <template #default="scope"> <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWcsAlarmInfo(scope.row)" v-auth="'wcsAlarmInfo:update'"> 编辑 </el-button> <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWcsAlarmInfo(scope.row)" v-auth="'wcsAlarmInfo:delete'"> 删除 </el-button> </template> </el-table-column> </el-table> <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize" :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background="" @size-change="handleSizeChange" @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next, jumper" /> <printDialog ref="printDialogRef" :title="printWcsAlarmInfoTitle" @reloadTable="handleQuery" /> <editDialog ref="editDialogRef" :title="editWcsAlarmInfoTitle" @reloadTable="handleQuery" /> </el-card> </div> </template> <script lang="ts" setup="" name="wcsAlarmInfo"> import { ref } from "vue"; import { ElMessageBox, ElMessage } from "element-plus"; import { auth } from '/@/utils/authFunction'; import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; import { getDictLabelByVal as dv } from '/@/utils/dict-utils'; import { formatDate } from '/@/utils/formatTime'; import ModifyRecord from '/@/components/table/modifyRecord.vue'; import printDialog from '/@/views/system/print/component/hiprint/preview.vue' import editDialog from '/@/views/wcs/wcsAlarmInfo/component/editDialog.vue' import { pageWcsAlarmInfo, deleteWcsAlarmInfo } from '/@/api/wcs/wcsAlarmInfo'; const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); const loading = ref(false); const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ page: 1, pageSize: 10, total: 0, }); const printWcsAlarmInfoTitle = ref(""); const editWcsAlarmInfoTitle = ref(""); // 改变高级查询的控件显示状态 const changeAdvanceQueryUI = () => { showAdvanceQueryUI.value = !showAdvanceQueryUI.value; } // 查询操作 const handleQuery = async () => { loading.value = true; var res = await pageWcsAlarmInfo(Object.assign(queryParams.value, tableParams.value)); tableData.value = res.data.result?.items ?? []; tableParams.value.total = res.data.result?.total; loading.value = false; }; // 列排序 const sortChange = async (column: any) => { queryParams.value.field = column.prop; queryParams.value.order = column.order; await handleQuery(); }; // 打开新增页面 const openAddWcsAlarmInfo = () => { editWcsAlarmInfoTitle.value = '添加报警信息表'; editDialogRef.value.openDialog({}); }; // 打开打印页面 const openPrintWcsAlarmInfo = async (row: any) => { printWcsAlarmInfoTitle.value = '打印报警信息表'; } // 打开编辑页面 const openEditWcsAlarmInfo = (row: any) => { editWcsAlarmInfoTitle.value = '编辑报警信息表'; editDialogRef.value.openDialog(row); }; // 删除 const delWcsAlarmInfo = (row: any) => { ElMessageBox.confirm(`确定要删除吗?`, "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(async () => { await deleteWcsAlarmInfo(row); handleQuery(); ElMessage.success("删除成功"); }) .catch(() => { }); }; // 改变页面容量 const handleSizeChange = (val: number) => { tableParams.value.pageSize = val; handleQuery(); }; // 改变页码序号 const handleCurrentChange = (val: number) => { tableParams.value.page = val; handleQuery(); }; handleQuery(); </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { width: 100%; } </style> Web/src/views/wcs/wcsAlarmLog/index.vue
@@ -1,171 +1,159 @@ <template> <div class="wcsAlarmLog-container"> <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> <el-form :model="queryParams" ref="queryForm" labelWidth="90"> <el-row> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item label="关键字"> <el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字"/> <el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="PLCIP地址"> <el-input v-model="queryParams.plcIP" clearable="" placeholder="请输入PLCIP地址"/> <el-input v-model="queryParams.plcIP" clearable="" placeholder="请输入PLCIP地址" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="报警编号"> <el-input v-model="queryParams.alarmCode" clearable="" placeholder="请输入报警编号"/> <el-input v-model="queryParams.alarmCode" clearable="" placeholder="请输入报警编号" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="设备类型"> <el-input v-model="queryParams.type" clearable="" placeholder="请输入设备类型"/> <el-input v-model="queryParams.type" clearable="" placeholder="请输入设备类型" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="报警日期"> <el-date-picker type="daterange" v-model="queryParams.alarmTimeRange" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" /> <el-date-picker type="daterange" v-model="queryParams.alarmTimeRange" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item > <el-form-item> <el-button-group style="display: flex; align-items: center;"> <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wcsAlarmLog:page'"> 查询 </el-button> <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button> <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button> <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button> <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wcsAlarmLog:page'"> 查询 </el-button> <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button> <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button> <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button> </el-button-group> </el-form-item> </el-col> </el-row> </el-form> </el-card> <el-card class="full-table" shadow="hover" style="margin-top: 5px"> <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border=""> <el-table-column type="index" label="序号" width="55" align="center"/> <el-table-column prop="plcIP" label="PLCIP地址" show-overflow-tooltip="" /> <el-table-column prop="alarmCode" label="报警编号" show-overflow-tooltip="" /> <el-table-column prop="alarmName" label="报警描述" show-overflow-tooltip="" /> <el-table-column prop="type" label="设备类型" show-overflow-tooltip="" /> <el-table-column prop="alarmTime" label="报警日期" show-overflow-tooltip="" /> <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border=""> <el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column prop="plcIP" label="PLCIP地址" show-overflow-tooltip="" /> <el-table-column prop="alarmCode" label="报警编号" show-overflow-tooltip="" /> <el-table-column prop="alarmName" label="报警描述" show-overflow-tooltip="" /> <el-table-column prop="type" label="设备类型" show-overflow-tooltip="" /> <el-table-column prop="alarmTime" label="报警日期" show-overflow-tooltip="" /> <el-table-column label="修改记录" width="80" align="center" show-overflow-tooltip> <template #default="scope"> <ModifyRecord :data="scope.row" /> </template> </el-table-column> <template #default="scope"> <ModifyRecord :data="scope.row" /> </template> </el-table-column> </el-table> <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize" :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background="" @size-change="handleSizeChange" @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next, jumper" /> <printDialog ref="printDialogRef" :title="printWcsAlarmLogTitle" @reloadTable="handleQuery" /> <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize" :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background="" @size-change="handleSizeChange" @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next, jumper" /> <printDialog ref="printDialogRef" :title="printWcsAlarmLogTitle" @reloadTable="handleQuery" /> </el-card> </div> </template> <script lang="ts" setup="" name="wcsAlarmLog"> import { ref } from "vue"; import { ElMessageBox, ElMessage } from "element-plus"; import { auth } from '/@/utils/authFunction'; import { ref } from "vue"; import { ElMessageBox, ElMessage } from "element-plus"; import { auth } from '/@/utils/authFunction'; import ModifyRecord from '/@/components/table/modifyRecord.vue'; import { formatDate } from '/@/utils/formatTime'; import ModifyRecord from '/@/components/table/modifyRecord.vue'; import { formatDate } from '/@/utils/formatTime'; import printDialog from '/@/views/system/print/component/hiprint/preview.vue' import { pageWcsAlarmLog, deleteWcsAlarmLog } from '/@/api/log/wcsAlarmLog'; import printDialog from '/@/views/system/print/component/hiprint/preview.vue' import { pageWcsAlarmLog, deleteWcsAlarmLog } from '/@/api/log/wcsAlarmLog'; const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); const loading = ref(false); const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ page: 1, pageSize: 10, total: 0, }); const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); const loading = ref(false); const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ page: 1, pageSize: 10, total: 0, }); const printWcsAlarmLogTitle = ref(""); const editWcsAlarmLogTitle = ref(""); const printWcsAlarmLogTitle = ref(""); const editWcsAlarmLogTitle = ref(""); // 改变高级查询的控件显示状态 const changeAdvanceQueryUI = () => { showAdvanceQueryUI.value = !showAdvanceQueryUI.value; } // 改变高级查询的控件显示状态 const changeAdvanceQueryUI = () => { showAdvanceQueryUI.value = !showAdvanceQueryUI.value; } // 查询操作 const handleQuery = async () => { loading.value = true; var res = await pageWcsAlarmLog(Object.assign(queryParams.value, tableParams.value)); tableData.value = res.data.result?.items ?? []; tableParams.value.total = res.data.result?.total; loading.value = false; }; // 查询操作 const handleQuery = async () => { loading.value = true; var res = await pageWcsAlarmLog(Object.assign(queryParams.value, tableParams.value)); tableData.value = res.data.result?.items ?? []; tableParams.value.total = res.data.result?.total; loading.value = false; }; // 列排序 const sortChange = async (column: any) => { queryParams.value.field = column.prop; queryParams.value.order = column.order; await handleQuery(); }; // 列排序 const sortChange = async (column: any) => { queryParams.value.field = column.prop; queryParams.value.order = column.order; await handleQuery(); }; // 打开新增页面 const openAddWcsAlarmLog = () => { editWcsAlarmLogTitle.value = '添加报警日志'; editDialogRef.value.openDialog({}); }; // 打开新增页面 const openAddWcsAlarmLog = () => { editWcsAlarmLogTitle.value = '添加报警日志'; editDialogRef.value.openDialog({}); }; // 打开打印页面 const openPrintWcsAlarmLog = async (row: any) => { printWcsAlarmLogTitle.value = '打印报警日志'; } // 打开打印页面 const openPrintWcsAlarmLog = async (row: any) => { printWcsAlarmLogTitle.value = '打印报警日志'; } // 改变页面容量 const handleSizeChange = (val: number) => { tableParams.value.pageSize = val; handleQuery(); }; // 改变页码序号 const handleCurrentChange = (val: number) => { tableParams.value.page = val; handleQuery(); }; // 改变页面容量 const handleSizeChange = (val: number) => { tableParams.value.pageSize = val; handleQuery(); }; // 改变页码序号 const handleCurrentChange = (val: number) => { tableParams.value.page = val; handleQuery(); }; handleQuery(); </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { width: 100%; width: 100%; } </style>