From 32e16982075e74a243b7a5cac79e56c6eed634de Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期三, 20 七月 2022 14:26:07 +0800 Subject: [PATCH] 添加巡检点管理页面 --- src/router/route.ts | 8 + src/views/IntelligentXjSys/basicDataManagement/inspectionManagement/index.vue | 375 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 383 insertions(+), 0 deletions(-) diff --git a/src/router/route.ts b/src/router/route.ts index bc7dd8a..f08f8f9 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -289,5 +289,13 @@ meta: { title: '巡检任务' }, + }, + { + path: '/inspectionManagement', + name: 'inspectionManagement', + component: () => import('/@/views/IntelligentXjSys/basicDataManagement/inspectionManagement/index.vue'), + meta: { + title: '巡检点管理' + }, } ]; diff --git a/src/views/IntelligentXjSys/basicDataManagement/inspectionManagement/index.vue b/src/views/IntelligentXjSys/basicDataManagement/inspectionManagement/index.vue new file mode 100644 index 0000000..8deee76 --- /dev/null +++ b/src/views/IntelligentXjSys/basicDataManagement/inspectionManagement/index.vue @@ -0,0 +1,375 @@ +<template> + <div class="home-container"> + <el-scrollbar height="100%"> + <el-row class="homeCard"> + <el-col :span="12"> + <div class="grid-content topInfo"> + <el-input v-model="searchName" placeholder="巡检点名称"></el-input> + <el-select v-model="searchPlace" placeholder="所属区域设施"> + <el-option label="风机系统" value="风机系统" /> + <el-option label="A车间" value="A车间" /> + <el-option label="B车间" value="B车间" /> + <el-option label="C车间" value="C车间" /> + </el-select> + <el-button type="primary">查询</el-button> + <el-button plain>重置</el-button> + </div> + </el-col> + </el-row> + <div class="homeCard"> + <div class="main-card"> + <el-row class="cardTop"> + <el-col :span="12" class="mainCardBtn"> + <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button> +<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> + <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> + </el-col> + <el-button type="primary" :icon="Refresh" size="default"/> + </el-row> + <el-table + ref="multipleTableRef" + :data="tableData" + style="width: 100%" + :header-cell-style="{background: '#fafafa'}" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" /> + <el-table-column type="index" width="80" label="序号"/> + <el-table-column property="name" label="巡检点名称"/> + <el-table-column property="area" label="所属设备区域"/> + <el-table-column property="rfid" label="关联RFID"/> + <el-table-column property="creater" label="创建人"/> + <el-table-column property="createTime" label="创建时间" sortable/> + <el-table-column property="updater" label="更新人"/> + <el-table-column property="updateTime" label="更新时间" sortable/> + <el-table-column fixed="right" label="操作" align="center" width="250"> + <template #default="scope"> + <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> + <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> + <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> + </template> + </el-table-column> + </el-table> + </div> + <div class="pageBtn"> + <el-pagination + v-model:currentPage="currentPage" + v-model:page-size="pageSize" + :page-sizes="[10, 15]" + small=false + background + layout="total, sizes, prev, pager, next, jumper" + :total="100" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </div> + </el-scrollbar> + <el-dialog v-model="dialogDetails" title="巡检点信息"> + <el-form :model="details" label-width="120px"> + <el-form-item label="巡检点名称"> + <el-input v-model="details.name" readonly/> + </el-form-item> + <el-form-item label="所属设备区域"> + <el-input v-model="details.area" readonly/> + </el-form-item> + <el-form-item label="RFID"> + <el-input v-model="details.rfid" type="textarea" readonly/> + </el-form-item> + <el-form-item label="创建人"> + <el-input v-model="details.creater" readonly/> + </el-form-item> + <el-form-item label="创建时间"> + <el-input v-model="details.createTime" readonly/> + </el-form-item> + <el-form-item label="更新人"> + <el-input v-model="details.updater" readonly/> + </el-form-item> + <el-form-item label="更新时间"> + <el-input v-model="details.updateTime" readonly/> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> + </el-form-item> + </el-form> + </el-dialog> + <el-dialog v-model="dialogAddRecord" title="巡检点编辑" @close="closeAdd"> + <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> + <el-form-item label="巡检点名称" prop="name"> + <el-input + v-model="addRecord.name" + > + </el-input> + </el-form-item> + <el-form-item label="所属设施区域" prop="area"> + <el-select v-model="addRecord.area"> + <el-option label="风机系统" value="风机系统" /> + <el-option label="A车间" value="A车间" /> + </el-select> + </el-form-item> + <el-form-item label="关联RFID" prop="rfid"> + <el-select v-model="addRecord.rfid"> + <el-option label="风机系统A标签" value="风机系统A标签" /> + <el-option label="A车间A标签" value="A车间A标签" /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> + <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> + </el-form-item> + </el-form> + </el-dialog> + <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> + <span>您确定要删除该条记录吗?</span> + <template #footer> + <span class="dialog-footer"> + <el-button @click="deleteDialog = false" size="default">取消</el-button> + <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script lang="ts" setup> + import { toRefs, reactive, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' + import { ElTable } from 'element-plus' + import { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + // export default defineComponent({ + // name: 'workCheckinRecord', + // setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const searchName = ref('') + const searchPlace = ref('') + const currentPage = ref(1) + const pageSize = ref(10) + const chosenIndex = ref(-1) + const casProps = { + expandTrigger: 'hover', + multiple: true, + emitPath: false, + checkStrictly: false + } + const handleSizeChange = (val: number) => { + console.log(`${val} items per page`) + } + const handleCurrentChange = (val: number) => { + console.log(`current page: ${val}`) + } + // 时间格式化 + const timeForm = { + hour12: false, + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + } + const tableData = reactive( + [ + { + name: '73011', + area: '风机系统', + rfid: '风机系统A标签', + creater: '张三', + createTime: '2022-07-14 12:23:03', + updater: '李四', + updateTime: '2022-07-16 14:23:03' + }, + { + name: '73012', + area: 'A车间', + rfid: 'A车间A标签', + creater: '李四', + createTime: '2022-07-16 12:23:03', + updater: '张三', + updateTime: '2022-07-18 14:23:03' + } + ] + ) + const addRef = ref<FormInstance>() + const addRules = reactive<FormRules>({ + name:[{required: true, message: '该内容不能为空',trigger:'blur'}], + area:[{required: true, message: '该内容不能为空',trigger:'blur'}], + rfid:[{required: true, message: '该内容不能为空',trigger:'blur'}] + }) + const dialogDetails = ref(false) + const dialogAddRecord = ref(false) + const deleteDialog = ref(false) + const addRecord = ref({}) + const details = ref({}) + const viewRecord = (row) =>{ + details.value = JSON.parse(JSON.stringify(row)) + dialogDetails.value = true + } + const deleteRecord = (index) =>{ + chosenIndex.value = index + deleteDialog.value = true + } + const conFirmDelete = ()=> { + tableData.splice(chosenIndex.value,1) + deleteDialog.value = false + } + const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + if(chosenIndex.value == -1){ + addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') + addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') + tableData.push(addRecord.value) + }else{ + addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') + tableData[chosenIndex.value] = addRecord.value + } + dialogAddRecord.value =false + } else { + console.log('error submit!', fields) + } + }) + + } + const closeAdd =()=>{ + addRecord.value={} + chosenIndex.value = -1 + } + const indexClear = ()=>{ + chosenIndex.value = -1 + } + const editRecord =(index, row)=>{ + dialogAddRecord.value = true + chosenIndex.value = index + addRecord.value = JSON.parse(JSON.stringify(row)) + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + // return { + // renderMenu, + // multipleTableRef, + // tableData, + // currentPage, + // pageSize, + // dialogDetails, + // details, + // deleteDialog, + // dialogAddRecord, + // viewRecord, + // deleteRecord, + // handleSizeChange, + // handleCurrentChange, + // Plus, + // Edit, + // Delete, + // Search, + // Download, + // handleSelectionChange, + // Refresh, + // ...toRefs(state), + // }; + // }, + // }); +</script> + +<style scoped lang="scss"> + $homeNavLengh: 8; + .home-container { + height: 100%; + overflow: hidden; + padding: 20px; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + } + .el-row{ + display: flex; + align-items: center; + margin-bottom: 20px; + &:last-child { + margin-bottom: 0; + } + .grid-content{ + align-items: center; + min-height: 36px; + } + + .topInfo { + display: flex; + align-items: center; + font-size: 16px; + font-weight: bold; + + &>div{ + white-space: nowrap; + margin-right: 20px; + } + } + } + .mainPages{ + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + } + .main-card{ + width: 100%; + .cardTop{ + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; + .mainCardBtn{ + margin: 0; + } + } + } + .pageBtn{ + display: flex; + align-items: center; + justify-content: right; + margin-top: 20px; + + .demo-pagination-block + .demo-pagination-block { + margin-top: 10px; + } + .demo-pagination-block .demonstration { + margin-bottom: 16px; + } + } + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } +</style> -- Gitblit v1.9.2