feat(ems): 增加日期范围查询功能

- 在多个页面中添加日期范围选择器,支持开始日期和结束日期的选择- 后端 mapper 文件中增加对日期范围查询的支持
-优化查询逻辑,优先使用日期范围进行筛选
- 调整表格样式,增加行hover效果
boardTest
zch 2 weeks ago
parent c45b197de6
commit 232b7504d7

@ -199,7 +199,7 @@
<el-table-column label="故障类型" align="center" prop="faultType" v-if="columns[7].visible"/>
<el-table-column label="故障发生时间" align="center" prop="faultOccurrenceTime" v-if="columns[8].visible"/>
<el-table-column label="处置完毕时间" align="center" prop="handlingCompletionTime" v-if="columns[9].visible"/>
<el-table-column label="处置时长" align="center" prop="handlingDuration" v-if="columns[10].visible"/>
<el-table-column label="处置时长" align="center" prop="handlingDurationFormatted" v-if="columns[10].visible"/>
<el-table-column label="备注" align="center" prop="remarks" v-if="columns[11].visible" show-overflow-tooltip/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
<template slot-scope="scope">
@ -281,8 +281,8 @@
format="HH:mm:ss"
/>
</el-form-item>
<el-form-item label="处置时长" prop="handlingDuration">
<el-input v-model="form.handlingDuration" placeholder="由系统自动计算" disabled />
<el-form-item label="处置时长" prop="handlingDurationFormatted">
<el-input v-model="form.handlingDurationFormatted" placeholder="由系统自动计算" disabled />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" :rows="3" placeholder="请输入备注" />
@ -359,7 +359,7 @@
<span>{{ currentRecord.handlingCompletionTime || '暂无' }}</span>
</el-descriptions-item>
<el-descriptions-item label="处置时长">
<span>{{ currentRecord.handlingDuration || '暂无' }}</span>
<span>{{ currentRecord.handlingDurationFormatted || '暂无' }}</span>
</el-descriptions-item>
<el-descriptions-item label="故障情况">
<div class="detail-text-content">
@ -557,6 +557,7 @@
faultOccurrenceTime: null,
handlingCompletionTime: null,
handlingDuration: null,
handlingDurationFormatted: null,
remarks: null
};
this.resetForm("form");

@ -290,8 +290,10 @@
/>
<!-- 添加 或修改 行李系统PLC缓冲电池生命周期对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" />
</el-form-item>
@ -299,7 +301,7 @@
<el-input v-model="form.installationCabinetName" placeholder="请输入安装柜体名称" />
</el-form-item>
<el-form-item label="位置描述" prop="locationDescription">
<el-input v-model="form.locationDescription" placeholder="请输入位置描述" />
<el-input v-model="form.locationDescription" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="来源" prop="source">
<el-input v-model="form.source" placeholder="请输入来源" />
@ -313,6 +315,8 @@
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="第1次" prop="firstInstance">
<el-date-picker
v-model="form.firstInstance"
@ -320,6 +324,7 @@
placeholder="请选择第1次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第2次" prop="secondInstance">
@ -329,6 +334,7 @@
placeholder="请选择第2次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第3次" prop="thirdInstance">
@ -338,6 +344,7 @@
placeholder="请选择第3次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第4次" prop="fourthInstance">
@ -347,6 +354,7 @@
placeholder="请选择第4次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第5次" prop="fifthInstance">
@ -356,6 +364,7 @@
placeholder="请选择第5次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第6次" prop="sixthInstance">
@ -365,6 +374,7 @@
placeholder="请选择第6次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第7次" prop="seventhInstance">
@ -374,6 +384,7 @@
placeholder="请选择第7次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第8次" prop="eighthInstance">
@ -383,6 +394,7 @@
placeholder="请选择第8次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第9次" prop="ninthInstance">
@ -392,6 +404,7 @@
placeholder="请选择第9次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第10次" prop="tenthInstance">
@ -401,6 +414,7 @@
placeholder="请选择第10次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第11次" prop="eleventhInstance">
@ -410,6 +424,7 @@
placeholder="请选择第11次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第12次" prop="twelfthInstance">
@ -419,8 +434,11 @@
placeholder="请选择第12次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>

@ -304,8 +304,10 @@
/>
<!-- 添加 或修改 行李系统安全门铅酸电池生命周期对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" />
</el-form-item>
@ -313,7 +315,7 @@
<el-input v-model="form.referenceLocation" placeholder="请输入参照位置" />
</el-form-item>
<el-form-item label="位置描述" prop="locationDescription">
<el-input v-model="form.locationDescription" placeholder="请输入位置描述" />
<el-input v-model="form.locationDescription" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="取电" prop="powerSource">
<el-input v-model="form.powerSource" placeholder="请输入取电" />
@ -327,6 +329,8 @@
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="第1次" prop="firstInstance">
<el-date-picker
v-model="form.firstInstance"
@ -334,6 +338,7 @@
placeholder="请选择第1次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第2次" prop="secondInstance">
@ -343,6 +348,7 @@
placeholder="请选择第2次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第3次" prop="thirdInstance">
@ -352,6 +358,7 @@
placeholder="请选择第3次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第4次" prop="fourthInstance">
@ -361,6 +368,7 @@
placeholder="请选择第4次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第5次" prop="fifthInstance">
@ -370,6 +378,7 @@
placeholder="请选择第5次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第6次" prop="sixthInstance">
@ -379,6 +388,7 @@
placeholder="请选择第6次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第7次" prop="seventhInstance">
@ -388,6 +398,7 @@
placeholder="请选择第7次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第8次" prop="eighthInstance">
@ -397,6 +408,7 @@
placeholder="请选择第8次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第9次" prop="ninthInstance">
@ -406,6 +418,7 @@
placeholder="请选择第9次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第10次" prop="tenthInstance">
@ -415,6 +428,7 @@
placeholder="请选择第10次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第11次" prop="eleventhInstance">
@ -424,6 +438,7 @@
placeholder="请选择第11次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第12次" prop="twelfthInstance">
@ -433,8 +448,11 @@
placeholder="请选择第12次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -864,4 +882,141 @@
handleExport() {
this.download('ems/info/securityDoorBatteryLifecycle/export', {
...this.queryParams
}, `
}, `securityDoorBatteryLifecycle_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入行李系统安全门铅酸电池生命周期";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('ems/info/securityDoorBatteryLifecycle/importTemplate', {
}, `行李系统安全门铅酸电池生命周期数据模板_${new Date().getTime()}.xlsx`)
},
//
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
//
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
//
submitFileForm() {
this.$refs.upload.submit();
},
/** 查看详情 */
handleViewDetail(row) {
this.currentRecord = row;
this.detailDrawer = true;
},
/** 处理行右击事件 */
handleRowContextMenu(row, column, event) {
event.preventDefault();
this.contextMenu.row = row;
this.contextMenu.left = event.clientX;
this.contextMenu.top = event.clientY;
this.contextMenu.visible = true;
},
/** 隐藏右击菜单 */
hideContextMenu() {
this.contextMenu.visible = false;
this.contextMenu.row = null;
},
/** 右击菜单 - 查看详情 */
contextMenuViewDetail() {
this.handleViewDetail(this.contextMenu.row);
this.hideContextMenu();
},
/** 右击菜单 - 编辑 */
contextMenuEdit() {
this.handleUpdate(this.contextMenu.row);
this.hideContextMenu();
},
/** 右击菜单 - 删除 */
contextMenuDelete() {
this.handleDelete(this.contextMenu.row);
this.hideContextMenu();
},
/** 检查权限 */
checkPermi(permissions) {
return checkPermi(permissions);
}
}
};
</script>
<style scoped>
/* 右击菜单样式 */
.context-menu {
background-color: #fff;
border: 1px solid #e4e7ed;
border-radius: 4px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
padding: 5px 0;
margin: 0;
list-style: none;
min-width: 120px;
}
.context-menu-item {
padding: 8px 16px;
cursor: pointer;
font-size: 14px;
color: #606266;
display: flex;
align-items: center;
transition: background-color 0.3s;
}
.context-menu-item:hover {
background-color: #f5f7fa;
color: #409eff;
}
.context-menu-item i {
margin-right: 8px;
font-size: 14px;
}
/* 表格样式 */
.context-menu-table {
border-radius: 4px;
overflow: hidden;
}
.context-menu-table .el-table__row {
transition: background-color 0.3s;
}
.context-menu-table .el-table__row:hover {
cursor: context-menu;
}
/* 详情抽屉样式 */
.el-descriptions-item__label {
font-weight: 600;
color: #303133;
}
.el-descriptions-item__content {
color: #606266;
}
/* 响应式设计 */
@media (max-width: 768px) {
.context-menu {
min-width: 100px;
font-size: 12px;
}
.context-menu-item {
padding: 6px 12px;
}
}
</style>

@ -245,8 +245,10 @@
/>
<!-- 添加 或修改 动力能源部监督检查清单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="日期" prop="date">
<el-date-picker
v-model="form.date"
@ -254,6 +256,7 @@
placeholder="请选择日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="作业类别" prop="jobCategory">
@ -268,39 +271,43 @@
<el-form-item label="作业风险" prop="jobRisk">
<el-input v-model="form.jobRisk" placeholder="请输入作业风险" />
</el-form-item>
<el-form-item label="风险管控措施" prop="riskControlMeasures">
<el-input v-model="form.riskControlMeasures" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="监督检查层级" prop="supervisionLevel">
<el-input v-model="form.supervisionLevel" placeholder="请输入监督检查层级" />
</el-form-item>
<el-form-item label="监督检查落实情况" prop="supervisionImplementation">
<el-input v-model="form.supervisionImplementation" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="作业科室" prop="jobDepartment">
<el-input v-model="form.jobDepartment" placeholder="请输入作业科室" />
</el-form-item>
<el-form-item label="监管人员" prop="regulatoryPersonnel">
<el-input v-model="form.regulatoryPersonnel" placeholder="请输入监管人员" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检查人员" prop="inspectionPersonnel">
<el-input v-model="form.inspectionPersonnel" placeholder="请输入检查人员" />
</el-form-item>
<el-form-item label="检查出的问题" prop="problemsFound">
<el-input v-model="form.problemsFound" placeholder="请输入检查出的问题" />
<el-input v-model="form.problemsFound" type="textarea" placeholder="请输入检查出的问题" />
</el-form-item>
<el-form-item label="外包单位责任人" prop="outsourcingUnitResponsiblePerson">
<el-input v-model="form.outsourcingUnitResponsiblePerson" placeholder="请输入外包单位责任人" />
</el-form-item>
<el-form-item label="工单变更内容">
<editor v-model="form.workOrderChangeContent" :min-height="192"/>
</el-form-item>
<el-form-item label="本工单是否闭环" prop="isWorkOrderClosedLoop">
<el-input v-model="form.isWorkOrderClosedLoop" placeholder="请输入本工单是否闭环" />
</el-form-item>
<el-form-item label="风险管控措施" prop="riskControlMeasures">
<el-input v-model="form.riskControlMeasures" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="监督检查落实情况" prop="supervisionImplementation">
<el-input v-model="form.supervisionImplementation" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="工单变更内容">
<editor v-model="form.workOrderChangeContent" :min-height="192" style="width: 100%;"/>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>

@ -287,8 +287,164 @@
/>
<!-- 添加 或修改 行李系统UPS电池生命周期对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" />
</el-form-item>
<el-form-item label="UPS安装柜体名称" prop="upsInstallationCabinetName">
<el-input v-model="form.upsInstallationCabinetName" placeholder="请输入UPS安装柜体名称" />
</el-form-item>
<el-form-item label="参照位置" prop="referenceLocation">
<el-input v-model="form.referenceLocation" placeholder="请输入参照位置" />
</el-form-item>
<el-form-item label="位置描述" prop="locationDescription">
<el-input v-model="form.locationDescription" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="现UPS来源" prop="currentUps">
<el-input v-model="form.currentUps" placeholder="请输入现UPS来源" />
</el-form-item>
<el-form-item label="取电" prop="powerSource">
<el-input v-model="form.powerSource" placeholder="请输入取电" />
</el-form-item>
<el-form-item label="涉及区域" prop="affectedArea">
<el-input v-model="form.affectedArea" placeholder="请输入涉及区域" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="第1次" prop="replacement1">
<el-date-picker
v-model="form.replacement1"
type="date"
placeholder="请选择第1次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第2次" prop="replacement2">
<el-date-picker
v-model="form.replacement2"
type="date"
placeholder="请选择第2次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第3次" prop="replacement3">
<el-date-picker
v-model="form.replacement3"
type="date"
placeholder="请选择第3次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第4次" prop="replacement4">
<el-date-picker
v-model="form.replacement4"
type="date"
placeholder="请选择第4次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第5次" prop="replacement5">
<el-date-picker
v-model="form.replacement5"
type="date"
placeholder="请选择第5次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第6次" prop="replacement6">
<el-date-picker
v-model="form.replacement6"
type="date"
placeholder="请选择第6次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第7次" prop="replacement7">
<el-date-picker
v-model="form.replacement7"
type="date"
placeholder="请选择第7次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第8次" prop="replacement8">
<el-date-picker
v-model="form.replacement8"
type="date"
placeholder="请选择第8次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第9次" prop="replacement9">
<el-date-picker
v-model="form.replacement9"
type="date"
placeholder="请选择第9次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第10次" prop="replacement10">
<el-date-picker
v-model="form.replacement10"
type="date"
placeholder="请选择第10次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第11次" prop="replacement11">
<el-date-picker
v-model="form.replacement11"
type="date"
placeholder="请选择第11次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="第12次" prop="replacement12">
<el-date-picker
v-model="form.replacement12"
type="date"
placeholder="请选择第12次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
style="width: 100%;"
/>
</el-form-item>
</el-col>
</el-row>
</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>
<el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" />
</el-form-item>

Loading…
Cancel
Save