From 6c8d1768ea5a3262b3e7d2c2a6599505312e7a36 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期二, 02 八月 2022 10:21:38 +0800 Subject: [PATCH] 菜单合并 --- /dev/null | 573 --------------------------------------------------------- src/views/system/personShiftManage/arrangeManage/index.vue | 0 src/views/intellectInspect/intelligentMap/index.vue | 0 src/views/system/personShiftManage/generalShiftManagement/index.vue | 0 src/views/system/personShiftManage/teamManage/index.vue | 0 src/views/system/personShiftManage/personArrange/index.vue | 0 src/views/system/personShiftManage/holidayTimeGroup/index.vue | 0 src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue | 0 src/views/system/personShiftManage/durationManage/index.vue | 0 9 files changed, 0 insertions(+), 573 deletions(-) diff --git a/src/views/IntelligentXjSys/basicDataManagement/facilityArea/index.vue b/src/views/IntelligentXjSys/basicDataManagement/facilityArea/index.vue deleted file mode 100644 index e8629be..0000000 --- a/src/views/IntelligentXjSys/basicDataManagement/facilityArea/index.vue +++ /dev/null @@ -1,367 +0,0 @@ -<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="区域" value="区域" /> - </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="type" 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.type" 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" v-throttle>确认</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="type"> - <el-select v-model="addRecord.type"> - <el-option label="设备" value="设备" /> - <el-option label="区域" value="区域" /> - </el-select> - </el-form-item> - <el-form-item label="关联RFID" prop="rfid"> - <el-select v-model="addRecord.rfid" multiple> - <el-option label="风机系统1标签" value="风机系统1标签" /> - <el-option label="风机系统2标签" value="风机系统2标签" /> - <el-option label="风机系统3标签" value="风机系统3标签" /> - <el-option label="A场所1标签" value="A场所1标签" /> - </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" v-throttle>确认</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" v-throttle>确认</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: '风机系统', - type: '设备', - rfid: ['风机系统1标签', '风机系统2标签'], - creater: '张三', - createTime: '2022-07-14 12:23:03', - updater: '李四', - updateTime: '2022-07-16 14:23:03' - }, - { - name: 'A场所', - type: '区域', - rfid: ['A场所1标签'], - 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' }], - type: [{ 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.unshift(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> diff --git a/src/views/IntelligentXjSys/basicDataManagement/indicator/index.vue b/src/views/IntelligentXjSys/basicDataManagement/indicator/index.vue deleted file mode 100644 index 7af3854..0000000 --- a/src/views/IntelligentXjSys/basicDataManagement/indicator/index.vue +++ /dev/null @@ -1,382 +0,0 @@ -<template> - <div class="home-container"> - <el-scrollbar height="100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchName" placeholder="巡检指标名称"></el-input> - <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="type" label="指标类型"/> - <el-table-column property="unit" label="指标单位"/> - <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.type" readonly/> - </el-form-item> - <el-form-item label="指标单位"> - <el-input v-model="details.unit" 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="type"> - <el-select v-model="addRecord.type"> - <el-option label="温度" value="温度" /> - <el-option label="压力" value="压力" /> - <el-option label="震动" value="震动" /> - <el-option label="声音" value="声音" /> - </el-select> - </el-form-item> - <el-form-item label="指标单位" prop="unit"> - <el-select v-model="addRecord.unit"> - <el-option label="℃" value="℃" /> - <el-option label="Pa" value="Pa"/> - <el-option label="mms" value="mms"/> - <el-option label="dB" value="dB"/> - </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: '设备温度', - type: '温度', - unit: '℃', - creater: '张三', - createTime: '2022-07-14 12:23:03', - updater: '李四', - updateTime: '2022-07-16 14:23:03' - }, - { - name: '车间温度', - type: '温度', - unit: '℃', - creater: '李四', - createTime: '2022-07-16 12:23:03', - updater: '张三', - updateTime: '2022-07-18 14:23:03' - }, - { - name: '车间压力', - type: '压力', - unit: 'Pa', - 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'}], - type:[{required: true, message: '该内容不能为空',trigger:'blur'}], - unit:[{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.unshift(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> diff --git a/src/views/IntelligentXjSys/basicDataManagement/inspection/index.vue b/src/views/IntelligentXjSys/basicDataManagement/inspection/index.vue deleted file mode 100644 index ef85413..0000000 --- a/src/views/IntelligentXjSys/basicDataManagement/inspection/index.vue +++ /dev/null @@ -1,375 +0,0 @@ -<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" 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.unshift(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> diff --git a/src/views/IntelligentXjSys/basicDataManagement/rfId/index.vue b/src/views/IntelligentXjSys/basicDataManagement/rfId/index.vue deleted file mode 100644 index 8e2e365..0000000 --- a/src/views/IntelligentXjSys/basicDataManagement/rfId/index.vue +++ /dev/null @@ -1,367 +0,0 @@ -<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="RFID名称"></el-input> - <el-input v-model="searchPlace" placeholder="RFID编码"></el-input> - <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="RFID名称"/> - <el-table-column property="rfid" label="RFID编码" sortable/> - <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="RFID"> - <el-form :model="details" label-width="120px"> - <el-form-item label="RFID名称"> - <el-input v-model="details.name" readonly/> - </el-form-item> - <el-form-item label="RFID"> - <el-input v-model="details.rfid" 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="RFID编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="RFID名称" prop="name"> - <el-input v-model="addRecord.name"></el-input> - </el-form-item> - <el-form-item label="RFID编码" prop="rfid"> - <el-input v-model="addRecord.rfid"></el-input> - </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: '风机系统1标签', - rfid: '123456789ABC01', - creater: '张三', - createTime: '2022-07-14 12:23:03', - updater: '李四', - updateTime: '2022-07-16 14:23:03' - }, - { - name: '风机系统2标签', - rfid: '123456789ABC02', - creater: '张三', - createTime: '2022-07-14 12:23:03', - updater: '李四', - updateTime: '2022-07-16 14:23:03' - }, - { - name: '风机系统3标签', - rfid: '123456789ABC03', - creater: '张三', - createTime: '2022-07-14 12:23:03', - updater: '李四', - updateTime: '2022-07-16 14:23:03' - }, - { - name: 'A车间1标签', - rfid: '123456789ABC04', - 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'}], - 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> diff --git a/src/views/IntelligentXjSys/inspectionTaskManage/index.vue b/src/views/IntelligentXjSys/inspectionTaskManage/index.vue deleted file mode 100644 index 9bcbeb1..0000000 --- a/src/views/IntelligentXjSys/inspectionTaskManage/index.vue +++ /dev/null @@ -1,1028 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="12"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" @change="changeSearch" placeholder="任务名称"> - <el-option label="巡检任务类型" value="巡检任务类型" /> - <el-option label="创建人" value="创建人" /> - <el-option label="巡检人" value="巡检人" /> - <el-option label="检查频次" value="检查频次" /> - <el-option label="开始时间" value="开始时间" /> - </el-select> - <el-input v-model="searchContent" v-if="searchType == '任务名称'" placeholder="请输入任务名称"></el-input> - <el-input - v-else-if="searchType == '检查频次'" - v-model="searchContent" - placeholder="请输入检查频次" - > - <template #append> - <el-select v-model="searchUnit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - <el-select v-model="searchContent" v-else-if="searchType == '巡检任务类型'" placeholder="请选择任务类型"> - <el-option v-for="(item,index) in typeOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '创建人'" placeholder="请选择创建人"> - <el-option v-for="(item,index) in createrOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '巡检人'" placeholder="请选择巡检人"> - <el-option v-for="(item,index) in inspectorOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-date-picker - v-model="searchContent" - type="date" - v-else - :placeholder="'请选择' + searchType" - size="large" - style="margin-right: 20px" - /> - <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="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%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="name" label="任务名称" width="200"/> - <el-table-column property="type" label="任务类型"/> - <el-table-column property="creater" label="创建人"/> - <el-table-column property="inspector" label="巡检人"/> - <el-table-column property="frequency" label="检查频次"/> - <el-table-column property="unit" label="频次单位"/> - <el-table-column property="startTime" label="任务开始时间" width="180"/> - <el-table-column property="validTime" label="任务有效时间" width="180"/> - <el-table-column property="createTime" label="创建时间" width="180"/> - <el-table-column property="chainLength" label="巡检链长度" width="160"/> - <el-table-column property="status" label="状态" width="60"/> - <el-table-column fixed="right" label="操作" align="center" width="300"> - <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-switch - v-model="scope.row.status" - inline-prompt - active-text="开" - inactive-text="关" - active-value="开启" - inactive-value="关闭" - style="margin: 0 10px" - /> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <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> - </div> - </div> - <el-dialog v-model="dialogDetails" title="巡检任务"> - <el-form :model="details" label-width="120px"> - <el-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称"> - <el-input - v-model="details.name" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型"> - <el-input - v-model="details.type" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="执行巡检班组"> - <el-input - v-model="details.inspector" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次"> - <el-input - v-model="details.inspector" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input - v-model="details.frequency" - readonly - > - <template #append> - <el-input - v-model="details.unit" - readonly - /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期开始时间"> - <el-input - v-model="details.startTime" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期有效时间"> - <el-input - v-model="details.validTime" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="24" style="margin-bottom: 20px"> - <el-form-item label="巡检链"> - <div style="width: 100%;margin-left: -30px"> - <div v-for="(item,index) in details.shiftSteps" class="stepItem"> - <div class="stepNum">{{index+1}}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{item.name}}</div> - </div> - </template> - <div class="inspect-chain"> - <el-table :data="item.inspectorData" style="width: 100%" - :default-sort="{ prop: 'sort', order: 'ascending'}" - :header-cell-style="{background: '#fafafa',padding: '5px'}" - > - <el-table-column property="sort" label="排序"/> - <el-table-column property="name" label="巡检点名称"/> - <el-table-column property="section" label="所属设备区域"/> - <el-table-column property="rfid" label="关联RFID"/> - <el-table-column property="norm" label="巡检指标"/> - <el-table-column property="reference" label="数据参考值"/> - </el-table> - </div> - </el-card> - </div> - </div> - </div> - </el-form-item> - </el-col> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-row> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="巡检任务编辑" @close="closeAdd" @open="openAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称" prop="name"> - <el-input - v-model="addRecord.name" - > - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型" prop="type"> - <el-select v-model="addRecord.type"> - <el-option label="日常检查" value="日常检查" /> - <el-option label="周期检查" value="周期检查" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="执行巡检人员" prop="inspector"> - <el-select v-model="addRecord.inspector"> - <el-option label="张三" value="张三" /> - <el-option label="李四" value="李四" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input - v-model="addRecord.frequency" - placeholder="请输入检查频次" - > - <template #append> - <el-select v-model="addRecord.unit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期开始时间" prop="startTime"> - <el-date-picker - v-model="addRecord.startTime" - type="datetime" - format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期有效时间" prop="validTime"> - <el-select v-model="addRecord.validTime" placeholder="选择时间"> - <el-option label="15分钟" value="15分钟" /> - <el-option label="30分钟" value="30分钟" /> - <el-option label="45分钟" value="45分钟" /> - <el-option label="60分钟" value="60分钟" /> - <el-option label="75分钟" value="75分钟" /> - <el-option label="90分钟" value="90分钟" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="创建巡检链"> - <div style="width: 100%;margin-bottom: 20px"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddShift = true">新增巡检设备区域</el-button> - </div> - <div style="width: 100%;margin-left: -30px"> - <div v-for="(item,index) in addRecord.shiftSteps" class="stepItem"> - <div class="stepNum">{{index+1}}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{item.name}}</div> - <div> - <el-button type="primary" size="default" @click="addFlow(index)">新增下一区域</el-button> - <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> - </div> - </div> - </template> - <div class="inspect-chain" style="display: flex;flex-direction: column;align-items: center"> - <el-button type="primary" size="default" :icon="Plus" plain @click="addSysInspection(index)" style="margin-bottom: 10px">添加巡检点</el-button> - <el-table - :data="item.inspectorData" - style="width: 100%" - :default-sort="{ prop: 'sort', order: 'ascending' }" - :header-cell-style="{background: '#fafafa',padding: '5px'}" - > - <el-table-column property="sort" label="排序"/> - <el-table-column property="name" label="巡检点名称"/> - <el-table-column property="section" label="所属设备区域"/> - <el-table-column property="rfid" label="关联RFID"/> - <el-table-column property="norm" label="巡检指标"/> - <el-table-column property="reference" label="数据参考值"/> - <el-table-column fixed="right" label="操作" align="center" width="100"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="Edit" @click="editInspection(index,scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteInspection(index,scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - </div> - </el-card> - </div> - </div> - </div> - </el-form-item> - </el-col> - </el-row> - <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> - <el-dialog v-model="deleteShiftDialog" title="提示" width="30%" center @close="indexShiftClear"> - <span>您确定要删除该班次吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteShiftDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmShiftDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="deleteInspectionDialog" title="提示" width="30%" center @close="indexInspectionClear"> - <span>您确定要删除该巡检点吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteInspectionDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmInspectionDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="dialogAddShift" title="新增巡检设施区域" @close="closeAddShift"> - <el-form :model="addShift" label-width="120px" ref="addShiftRef" :rules="addShiftRules"> - <el-form-item label="选择巡检设施区域" prop="name"> - <el-select v-model="addShift.name"> - <el-option label="风机系统" value="风机系统" /> - <el-option label="A车间" value="A车间" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddShift = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddShift(addShiftRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddInspection" title="新增巡检点" @close="closeAddInspection"> - <el-form :model="addInspection" label-width="120px" ref="addInspectionRef" :rules="addInspectionRules"> - <el-form-item label="输入巡检点排序" prop="sort"> - <el-input-number v-model="addInspection.sort" :min="1" :max="999" placeholder="巡检点排序"/> - </el-form-item> - <el-form-item label="选择巡检点" prop="name"> - <el-select v-model="addInspection.name"> - <el-option label="73011" value="73011" /> - <el-option label="73012" value="73012" /> - <el-option label="73013" value="73013" /> - </el-select> - </el-form-item> - <el-form-item label="选择巡检指标" prop="norm"> - <el-select v-model="addInspection.norm"> - <el-option label="风机声音" value="风机声音" /> - <el-option label="设备温度" value="设备温度" /> - <el-option label="压力" value="压力" /> - <el-option label="震动" value="震动" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddInspection = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddInspection(addInspectionRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - </div> -</template> - -<script lang="ts"> - 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, ElMessage } 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 { - name: 'workingHoursSet', - components: {}, - setup() { - const userInfo = useUserInfo() - const {userInfos} = storeToRefs(userInfo); - - const state = reactive({ - searchType: '任务名称', - typeOptions: [ - { - name: '日常检查', - value: '日常检查' - }, - { - name: '周期检查', - value: '周期检查' - } - ], - createrOptions: [ - { - name: '张三', - value: '张三' - }, - { - name: '李四', - value: '李四' - } - ], - inspectorOptions: [ - { - name: '李四', - value: '李四' - }, - { - name: '张三', - value: '张三' - } - ], - searchUnit: '小时', - searchContent: '', - currentPage: 1, - pageSize: 10, - chosenIndex: null, - chosenShiftIndex: null, - chosenInspectionIndex: null, - dialogDetails: false, - dialogAddRecord: false, - deleteDialog: false, - deleteShiftDialog: false, - deleteInspectionDialog: false, - dialogAddShift: false, - dialogAddInspection: false, - tableData: [ - { - name: '甲醛装置()列现场岗位巡检', - type: '周期检查', - creater: '管理员A', - inspector: '张三', - frequency: 2, - unit: '小时', - startTime: '2022-07-02 13:01:37', - validTime: '30分钟', - createTime: '2022-07-02 12:03:47', - chainLength: 20, - status: '开启', - shiftSteps: [ - { - name: '风机系统', - inspectorData: [ - { - sort: 1, - name: '73011', - section: '风机系统', - rfid: '风机系统1标签', - norm: '风机声音', - reference: '10<正常<50' - }, - { - sort: 2, - name: '73012', - section: '风机系统', - rfid: '风机系统2标签', - norm: '设备温度', - reference: '20<正常<50' - }, - { - sort: 3, - name: '73013', - section: '风机系统', - rfid: '风机系统3标签', - norm: '风机震动', - reference: '30<正常<50' - } - ] - - }, - { - name: 'A场所', - inspectorData: [ - { - sort: 1, - name: '73021', - section: '风机系统', - rfid: '风机系统1标签', - norm: '风机声音', - reference: '10<正常<50' - }, - { - sort: 2, - name: '73022', - section: '风机系统', - rfid: '风机系统2标签', - norm: '设备温度', - reference: '20<正常<50' - }, - { - sort: 3, - name: '73023', - section: '风机系统', - rfid: '风机系统3标签', - norm: '风机震动', - reference: '30<正常<50' - } - ] - } - ] - }, - { - name: 'A车间日常巡检', - type: '日常检查', - creater: '管理员B', - inspector: '李四', - frequency: 4, - unit: '小时', - startTime: '2022-07-02 12:45:37', - validTime: '30分钟', - createTime: '2022-07-02 08:15:41', - chainLength: 15, - status: '开启' - } - ], - addRecord: { - name: '', - type: '', - creater: '', - inspector: '', - frequency: 1, - unit: '小时', - startTime: '', - validTime: '', - createTime: '', - chainLength: 0, - status: '开启', - shiftSteps: [] - }, - addShift: {}, - addInspection: {}, - details: {} - }) - - // 顶部筛选搜索 - const changeSearch = () => { - state.searchContent = '' - } - - 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 handleChange = (value) => { - state.addRecord.content = [] - console.log(JSON.parse(JSON.stringify(value))) - } - const addRef = ref<FormInstance>() - const addShiftRef = ref<FormInstance>() - const addInspectionRef = ref<FormInstance>() - - // 表单校验 - const addRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - type: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - inspector: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - frequency: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - unit: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - startTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - validTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - const addShiftRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - const addInspectionRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - norm: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - sort: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - - // 查看记录 - const viewRecord = (row) => { - state.details = JSON.parse(JSON.stringify(row)) - state.dialogDetails = true - } - - // 删除记录 - const deleteRecord = (index) => { - state.chosenIndex = index - state.deleteDialog = true - } - const conFirmDelete = () => { - state.tableData.splice(state.chosenIndex, 1) - state.deleteDialog = false - } - - // 修改添加记录 - const editRecord = (index, row) => { - state.chosenIndex = index - state.dialogAddRecord = true - state.addRecord = JSON.parse(JSON.stringify(row)) - } - const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.chosenIndex == null) { - if (!state.addRecord.shiftSteps || state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning', - }) - return - // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 - } else if (state.addRecord.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length == 0)) { - for (let i = 0; i < state.addRecord.shiftSteps.length; i++) { - if (!state.addRecord.shiftSteps[i].inspectorData || state.addRecord.shiftSteps[i].inspectorData.length == 0) { - ElMessage({ - message: '请为' + state.addRecord.shiftSteps[i].name + '设置巡检点', - type: 'warning', - }) - } - } - return - } else { - state.addRecord.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-') - state.addRecord.chainLength = state.addRecord.shiftSteps.length - state.addRecord.status = '开启' - state.tableData.unshift(state.addRecord) - } - } else { - if (state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning', - }) - return - // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 - } else if (state.addRecord.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length == 0)) { - for (let i = 0; i < state.addRecord.shiftSteps.length; i++) { - if (!state.addRecord.shiftSteps[i].inspectorData || state.addRecord.shiftSteps[i].inspectorData.length == 0) { - ElMessage({ - message: '请为' + state.addRecord.shiftSteps[i].name + '设置巡检点', - type: 'warning', - }) - } - } - return - } else { - state.tableData[state.chosenIndex] = state.addRecord - } - } - state.dialogAddRecord = false - } else { - console.log('error submit!', fields) - } - }) - - } - - // 添加弹窗打开前预操作 - const openAdd = () => { - state.addRecord.unit = '小时' - } - - // 弹窗关闭后判断数据初始化 - const closeAdd = () => { - state.addRecord = {} - state.chosenIndex = null - state.addShift = {} - state.chosenShiftIndex = null - } - const indexClear = () => { - state.chosenIndex = null - } - const indexShiftClear = () => { - state.chosenShiftIndex = null - } - const indexInspectionClear = () => { - state.chosenInspectionIndex = null - state.chosenShiftIndex = null - } - - // 排序 - function compare(key) { - return function (value1, value2) { - var val1 = value1[key]; - var val2 = value2[key]; - return val1 - val2; - } - } - - // 添加删除巡检设施区域 - const addFlow = (index) => { - state.dialogAddShift = true - state.chosenShiftIndex = index - } - - // 删除巡检区域 - const deleteFlow = (index) => { - state.deleteShiftDialog = true - state.chosenShiftIndex = index - } - const conFirmShiftDelete = () => { - state.addRecord.shiftSteps.splice(state.chosenShiftIndex, 1) - state.deleteShiftDialog = false - } - - const confirmAddShift = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.addRecord.shiftSteps) { - state.addRecord.shiftSteps.splice(state.chosenShiftIndex + 1, 0, state.addShift) - } else { - state.addRecord.shiftSteps = [] - state.addRecord.shiftSteps.unshift(state.addShift) - } - state.dialogAddShift = false - } else { - console.log('error submit!', fields) - } - }) - } - - - const addSysInspection = (index) => { - state.dialogAddInspection = true - state.chosenShiftIndex = index - } - const confirmAddInspection = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData) { - if (state.chosenInspectionIndex == null) { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.unshift(state.addInspection) - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } else { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData[state.chosenInspectionIndex] = state.addInspection - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } - } else { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData = [] - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.unshift(state.addInspection) - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } - state.dialogAddInspection = false - } else { - console.log('error submit!', fields) - } - }) - } - const deleteInspection = (i, index) => { - state.chosenShiftIndex = i - state.chosenInspectionIndex = index - state.deleteInspectionDialog = true - } - const editInspection = (i, index, row) => { - state.chosenShiftIndex = i - state.chosenInspectionIndex = index - state.dialogAddInspection = true - state.addInspection = JSON.parse(JSON.stringify(row)) - } - const conFirmInspectionDelete = () => { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.splice(state.chosenInspectionIndex, 1) - state.deleteInspectionDialog = false - } - - const closeAddShift = () => { - state.addShift = {} - state.chosenShiftIndex = null - } - const closeAddInspection = () => { - state.addInspection = {} - state.chosenShiftIndex = null - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - - return { - addRef, - addShiftRef, - addInspectionRef, - addRules, - addShiftRules, - addInspectionRules, - View, - Edit, - Delete, - Refresh, - Plus, - changeSearch, - handleSizeChange, - handleCurrentChange, - handleChange, - viewRecord, - deleteRecord, - conFirmDelete, - openAdd, - editRecord, - confirmAddRecord, - closeAdd, - addFlow, - conFirmShiftDelete, - confirmAddShift, - closeAddShift, - deleteInspection, - addSysInspection, - confirmAddInspection, - conFirmInspectionDelete, - closeAddInspection, - editInspection, - deleteFlow, - indexClear, - indexShiftClear, - indexInspectionClear, - renderMenu, - ...toRefs(state) - } - } - } -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .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; - } - } - } - } - .stepItem{ - width: 100%; - display: flex; - align-items: flex-start; - margin-bottom: 30px; - margin-left: 30px; - padding-bottom: 30px; - border-left: 2px solid #ccc; - &:first-of-type{ - margin-top: 30px; - } - &:last-of-type{ - margin-bottom: 0; - border-left: none; - } - .stepNum { - width: 30px; - height: 30px; - border-radius: 15px; - box-sizing: border-box; - color: #333; - border: 1px solid #999; - line-height: 28px; - text-align: center; - margin-right: 10px; - margin-left: -16px; - margin-top: -30px; - } - .stepCard { - width: 100%; - margin-top: -30px; - - .box-card { - width: 100%; - &:deep(.el-card__header){ - padding: 10px 15px - } - .card-header { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - &>div:first-of-type{ - margin-right: 80px; - font-size: 18px; - font-weight: bold; - } - } - } - } - &:hover .card-header{ - color: #0098F5; - } - &:hover .stepNum{ - border: 2px solid #0098F5; - color: #0098F5; - } - } - .el-input{ - width: 100% !important; - } - :deep(.el-date-editor){ - width: 100%; - } - .el-select{ - width: 100%; - } - - .inspect-chain :deep(.el-table__row){ - background: #fff; - - } - - .inspect-chain :deep(.el-table__cell){ - background: #fff; - } -</style> diff --git a/src/views/IntelligentXjSys/inspectionTaskManagement/index.vue b/src/views/IntelligentXjSys/inspectionTaskManagement/index.vue deleted file mode 100644 index 5e5aedb..0000000 --- a/src/views/IntelligentXjSys/inspectionTaskManagement/index.vue +++ /dev/null @@ -1,1029 +0,0 @@ -<template> - <div class="home-container"> - <el-scrollbar height="100%"> - <el-row class="homeCard"> - <el-col :span="12"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" @change="changeSearch" placeholder="任务名称"> - <el-option label="巡检任务类型" value="巡检任务类型" /> - <el-option label="创建人" value="创建人" /> - <el-option label="巡检人" value="巡检人" /> - <el-option label="检查频次" value="检查频次" /> - <el-option label="开始时间" value="开始时间" /> - </el-select> - <el-input v-model="searchContent" v-if="searchType == '任务名称'" placeholder="请输入任务名称"></el-input> - <el-input - v-else-if="searchType == '检查频次'" - v-model="searchContent" - placeholder="请输入检查频次" - > - <template #append> - <el-select v-model="searchUnit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - <el-select v-model="searchContent" v-else-if="searchType == '巡检任务类型'" placeholder="请选择任务类型"> - <el-option v-for="(item,index) in typeOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '创建人'" placeholder="请选择创建人"> - <el-option v-for="(item,index) in createrOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '巡检人'" placeholder="请选择巡检人"> - <el-option v-for="(item,index) in inspectorOptions" :label="item.name" :value="item.value" :key="index"/> - </el-select> - <el-date-picker - v-model="searchContent" - type="date" - v-else - :placeholder="'请选择' + searchType" - size="large" - style="margin-right: 20px" - /> - <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="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 property="name" label="任务名称" width="200"/> - <el-table-column property="type" label="任务类型"/> - <el-table-column property="creater" label="创建人"/> - <el-table-column property="inspector" label="巡检人"/> - <el-table-column property="frequency" label="检查频次"/> - <el-table-column property="unit" label="频次单位"/> - <el-table-column property="startTime" label="任务开始时间" width="180"/> - <el-table-column property="validTime" label="任务有效时间" width="180"/> - <el-table-column property="createTime" label="创建时间" width="180"/> - <el-table-column property="chainLength" label="巡检链长度" width="160"/> - <el-table-column property="status" label="状态" width="60"/> - <el-table-column fixed="right" label="操作" align="center" width="300"> - <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-switch - v-model="scope.row.status" - inline-prompt - active-text="开" - inactive-text="关" - active-value="开启" - inactive-value="关闭" - style="margin: 0 10px" - /> - <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-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称"> - <el-input - v-model="details.name" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型"> - <el-input - v-model="details.type" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="执行巡检人员"> - <el-input - v-model="details.inspector" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次"> - <el-input - v-model="details.inspector" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input - v-model="details.frequency" - readonly - > - <template #append> - <el-input - v-model="details.unit" - readonly - /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期开始时间"> - <el-input - v-model="details.startTime" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期有效时间"> - <el-input - v-model="details.validTime" - readonly - /> - </el-form-item> - </el-col> - <el-col :span="24" style="margin-bottom: 20px"> - <el-form-item label="巡检链"> - <div style="width: 100%;margin-left: -30px"> - <div v-for="(item,index) in details.shiftSteps" class="stepItem"> - <div class="stepNum">{{index+1}}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{item.name}}</div> - </div> - </template> - <div class="inspect-chain"> - <el-table :data="item.inspectorData" style="width: 100%" - :default-sort="{ prop: 'sort', order: 'ascending'}" - :header-cell-style="{background: '#fafafa',padding: '5px'}" - > - <el-table-column property="sort" label="排序"/> - <el-table-column property="name" label="巡检点名称"/> - <el-table-column property="section" label="所属设备区域"/> - <el-table-column property="rfid" label="关联RFID"/> - <el-table-column property="norm" label="巡检指标"/> - <el-table-column property="reference" label="数据参考值"/> - </el-table> - </div> - </el-card> - </div> - </div> - </div> - </el-form-item> - </el-col> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-row> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="巡检任务编辑" @close="closeAdd" @open="openAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称" prop="name"> - <el-input - v-model="addRecord.name" - > - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型" prop="type"> - <el-select v-model="addRecord.type"> - <el-option label="日常检查" value="日常检查" /> - <el-option label="周期检查" value="周期检查" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="执行巡检人员" prop="inspector"> - <el-select v-model="addRecord.inspector"> - <el-option label="张三" value="张三" /> - <el-option label="李四" value="李四" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input - v-model="addRecord.frequency" - placeholder="请输入检查频次" - > - <template #append> - <el-select v-model="addRecord.unit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期开始时间" prop="startTime"> - <el-date-picker - v-model="addRecord.startTime" - type="datetime" - format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期有效时间" prop="validTime"> - <el-select v-model="addRecord.validTime" placeholder="选择时间"> - <el-option label="15分钟" value="15分钟" /> - <el-option label="30分钟" value="30分钟" /> - <el-option label="45分钟" value="45分钟" /> - <el-option label="60分钟" value="60分钟" /> - <el-option label="75分钟" value="75分钟" /> - <el-option label="90分钟" value="90分钟" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="创建巡检链"> - <div style="width: 100%;margin-bottom: 20px"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddShift = true">新增巡检设备区域</el-button> - </div> - <div style="width: 100%;margin-left: -30px"> - <div v-for="(item,index) in addRecord.shiftSteps" class="stepItem"> - <div class="stepNum">{{index+1}}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{item.name}}</div> - <div> - <el-button type="primary" size="default" @click="addFlow(index)">新增下一区域</el-button> - <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> - </div> - </div> - </template> - <div class="inspect-chain" style="display: flex;flex-direction: column;align-items: center"> - <el-button type="primary" size="default" :icon="Plus" plain @click="addSysInspection(index)" style="margin-bottom: 10px">添加巡检点</el-button> - <el-table - :data="item.inspectorData" - style="width: 100%" - :default-sort="{ prop: 'sort', order: 'ascending' }" - :header-cell-style="{background: '#fafafa',padding: '5px'}" - > - <el-table-column property="sort" label="排序"/> - <el-table-column property="name" label="巡检点名称"/> - <el-table-column property="section" label="所属设备区域"/> - <el-table-column property="rfid" label="关联RFID"/> - <el-table-column property="norm" label="巡检指标"/> - <el-table-column property="reference" label="数据参考值"/> - <el-table-column fixed="right" label="操作" align="center" width="100"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="Edit" @click="editInspection(index,scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteInspection(index,scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - </div> - </el-card> - </div> - </div> - </div> - </el-form-item> - </el-col> - </el-row> - <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> - <el-dialog v-model="deleteShiftDialog" title="提示" width="30%" center @close="indexShiftClear"> - <span>您确定要删除该班次吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteShiftDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmShiftDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="deleteInspectionDialog" title="提示" width="30%" center @close="indexInspectionClear"> - <span>您确定要删除该巡检点吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteInspectionDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmInspectionDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="dialogAddShift" title="新增巡检设施区域" @close="closeAddShift"> - <el-form :model="addShift" label-width="120px" ref="addShiftRef" :rules="addShiftRules"> - <el-form-item label="选择巡检设施区域" prop="name"> - <el-select v-model="addShift.name"> - <el-option label="风机系统" value="风机系统" /> - <el-option label="A车间" value="A车间" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddShift = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddShift(addShiftRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddInspection" title="新增巡检点" @close="closeAddInspection"> - <el-form :model="addInspection" label-width="120px" ref="addInspectionRef" :rules="addInspectionRules"> - <el-form-item label="输入巡检点排序" prop="sort"> - <el-input-number v-model="addInspection.sort" :min="1" :max="999" placeholder="巡检点排序"/> - </el-form-item> - <el-form-item label="选择巡检点" prop="name"> - <el-select v-model="addInspection.name"> - <el-option label="73011" value="73011" /> - <el-option label="73012" value="73012" /> - <el-option label="73013" value="73013" /> - </el-select> - </el-form-item> - <el-form-item label="选择巡检指标" prop="norm"> - <el-select v-model="addInspection.norm"> - <el-option label="风机声音" value="风机声音" /> - <el-option label="设备温度" value="设备温度" /> - <el-option label="压力" value="压力" /> - <el-option label="震动" value="震动" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddInspection = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddInspection(addInspectionRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - </div> -</template> - -<script lang="ts"> - 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, ElMessage } 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 { - name: 'workingHoursSet', - components: {}, - setup() { - const userInfo = useUserInfo() - const {userInfos} = storeToRefs(userInfo); - - const state = reactive({ - searchType: '任务名称', - typeOptions: [ - { - name: '日常检查', - value: '日常检查' - }, - { - name: '周期检查', - value: '周期检查' - } - ], - createrOptions: [ - { - name: '张三', - value: '张三' - }, - { - name: '李四', - value: '李四' - } - ], - inspectorOptions: [ - { - name: '李四', - value: '李四' - }, - { - name: '张三', - value: '张三' - } - ], - searchUnit: '小时', - searchContent: '', - currentPage: 1, - pageSize: 10, - chosenIndex: null, - chosenShiftIndex: null, - chosenInspectionIndex: null, - dialogDetails: false, - dialogAddRecord: false, - deleteDialog: false, - deleteShiftDialog: false, - deleteInspectionDialog: false, - dialogAddShift: false, - dialogAddInspection: false, - tableData: [ - { - name: '甲醛装置()列现场岗位巡检', - type: '周期检查', - creater: '管理员A', - inspector: '张三', - frequency: 2, - unit: '小时', - startTime: '2022-07-02 13:01:37', - validTime: '30分钟', - createTime: '2022-07-02 12:03:47', - chainLength: 20, - status: '开启', - shiftSteps: [ - { - name: '风机系统', - inspectorData: [ - { - sort: 1, - name: '73011', - section: '风机系统', - rfid: '风机系统1标签', - norm: '风机声音', - reference: '10<正常<50' - }, - { - sort: 2, - name: '73012', - section: '风机系统', - rfid: '风机系统2标签', - norm: '设备温度', - reference: '20<正常<50' - }, - { - sort: 3, - name: '73013', - section: '风机系统', - rfid: '风机系统3标签', - norm: '风机震动', - reference: '30<正常<50' - } - ] - - }, - { - name: 'A场所', - inspectorData: [ - { - sort: 1, - name: '73021', - section: '风机系统', - rfid: '风机系统1标签', - norm: '风机声音', - reference: '10<正常<50' - }, - { - sort: 2, - name: '73022', - section: '风机系统', - rfid: '风机系统2标签', - norm: '设备温度', - reference: '20<正常<50' - }, - { - sort: 3, - name: '73023', - section: '风机系统', - rfid: '风机系统3标签', - norm: '风机震动', - reference: '30<正常<50' - } - ] - } - ] - }, - { - name: 'A车间日常巡检', - type: '日常检查', - creater: '管理员B', - inspector: '李四', - frequency: 4, - unit: '小时', - startTime: '2022-07-02 12:45:37', - validTime: '30分钟', - createTime: '2022-07-02 08:15:41', - chainLength: 15, - status: '开启' - } - ], - addRecord: { - name: '', - type: '', - creater: '', - inspector: '', - frequency: 1, - unit: '小时', - startTime: '', - validTime: '', - createTime: '', - chainLength: 0, - status: '开启', - shiftSteps: [] - }, - addShift: {}, - addInspection: {}, - details: {} - }) - - // 顶部筛选搜索 - const changeSearch = () => { - state.searchContent = '' - } - - 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 handleChange = (value) => { - state.addRecord.content = [] - console.log(JSON.parse(JSON.stringify(value))) - } - const addRef = ref<FormInstance>() - const addShiftRef = ref<FormInstance>() - const addInspectionRef = ref<FormInstance>() - - // 表单校验 - const addRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - type: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - inspector: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - frequency: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - unit: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - startTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - validTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - const addShiftRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - const addInspectionRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - norm: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - sort: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - - // 查看记录 - const viewRecord = (row) => { - state.details = JSON.parse(JSON.stringify(row)) - state.dialogDetails = true - } - - // 删除记录 - const deleteRecord = (index) => { - state.chosenIndex = index - state.deleteDialog = true - } - const conFirmDelete = () => { - state.tableData.splice(state.chosenIndex, 1) - state.deleteDialog = false - } - - // 修改添加记录 - const editRecord = (index, row) => { - state.chosenIndex = index - state.dialogAddRecord = true - state.addRecord = JSON.parse(JSON.stringify(row)) - } - const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.chosenIndex == null) { - if (!state.addRecord.shiftSteps || state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning', - }) - return - // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 - } else if (state.addRecord.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length == 0)) { - for (let i = 0; i < state.addRecord.shiftSteps.length; i++) { - if (!state.addRecord.shiftSteps[i].inspectorData || state.addRecord.shiftSteps[i].inspectorData.length == 0) { - ElMessage({ - message: '请为' + state.addRecord.shiftSteps[i].name + '设置巡检点', - type: 'warning', - }) - } - } - return - } else { - state.addRecord.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-') - state.addRecord.chainLength = state.addRecord.shiftSteps.length - console.log('11111111111111') - state.addRecord.status = '开启' - console.log('222222222222222') - state.tableData.unshift(state.addRecord) - } - } else { - if (state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning', - }) - return - // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 - } else if (state.addRecord.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length == 0)) { - for (let i = 0; i < state.addRecord.shiftSteps.length; i++) { - if (!state.addRecord.shiftSteps[i].inspectorData || state.addRecord.shiftSteps[i].inspectorData.length == 0) { - ElMessage({ - message: '请为' + state.addRecord.shiftSteps[i].name + '设置巡检点', - type: 'warning', - }) - } - } - return - } else { - state.tableData[state.chosenIndex] = state.addRecord - } - } - state.dialogAddRecord = false - } else { - console.log('error submit!', fields) - } - }) - - } - - // 添加弹窗打开前预操作 - const openAdd = () => { - state.addRecord.unit = '小时' - } - - // 弹窗关闭后判断数据初始化 - const closeAdd = () => { - state.addRecord = {} - state.chosenIndex = null - state.addShift = {} - state.chosenShiftIndex = null - } - const indexClear = () => { - state.chosenIndex = null - } - const indexShiftClear = () => { - state.chosenShiftIndex = null - } - const indexInspectionClear = () => { - state.chosenInspectionIndex = null - state.chosenShiftIndex = null - } - - // 排序 - function compare(key) { - return function (value1, value2) { - var val1 = value1[key]; - var val2 = value2[key]; - return val1 - val2; - } - } - - // 添加删除巡检设施区域 - const addFlow = (index) => { - state.dialogAddShift = true - state.chosenShiftIndex = index - } - - // 删除巡检区域 - const deleteFlow = (index) => { - state.deleteShiftDialog = true - state.chosenShiftIndex = index - } - const conFirmShiftDelete = () => { - state.addRecord.shiftSteps.splice(state.chosenShiftIndex, 1) - state.deleteShiftDialog = false - } - - const confirmAddShift = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.addRecord.shiftSteps) { - state.addRecord.shiftSteps.splice(state.chosenShiftIndex + 1, 0, state.addShift) - } else { - state.addRecord.shiftSteps = [] - state.addRecord.shiftSteps.unshift(state.addShift) - } - state.dialogAddShift = false - } else { - console.log('error submit!', fields) - } - }) - } - - - const addSysInspection = (index) => { - state.dialogAddInspection = true - state.chosenShiftIndex = index - } - const confirmAddInspection = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if (state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData) { - if (state.chosenInspectionIndex == null) { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.unshift(state.addInspection) - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } else { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData[state.chosenInspectionIndex] = state.addInspection - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } - } else { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData = [] - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.unshift(state.addInspection) - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.sort(compare('sort')) - } - state.dialogAddInspection = false - } else { - console.log('error submit!', fields) - } - }) - } - const deleteInspection = (i, index) => { - state.chosenShiftIndex = i - state.chosenInspectionIndex = index - state.deleteInspectionDialog = true - } - const editInspection = (i, index, row) => { - state.chosenShiftIndex = i - state.chosenInspectionIndex = index - state.dialogAddInspection = true - state.addInspection = JSON.parse(JSON.stringify(row)) - } - const conFirmInspectionDelete = () => { - state.addRecord.shiftSteps[state.chosenShiftIndex].inspectorData.splice(state.chosenInspectionIndex, 1) - state.deleteInspectionDialog = false - } - - const closeAddShift = () => { - state.addShift = {} - state.chosenShiftIndex = null - } - const closeAddInspection = () => { - state.addInspection = {} - state.chosenShiftIndex = null - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - - return { - addRef, - addShiftRef, - addInspectionRef, - addRules, - addShiftRules, - addInspectionRules, - View, - Edit, - Delete, - Refresh, - Plus, - changeSearch, - handleSizeChange, - handleCurrentChange, - handleChange, - viewRecord, - deleteRecord, - conFirmDelete, - openAdd, - editRecord, - confirmAddRecord, - closeAdd, - addFlow, - conFirmShiftDelete, - confirmAddShift, - closeAddShift, - deleteInspection, - addSysInspection, - confirmAddInspection, - conFirmInspectionDelete, - closeAddInspection, - editInspection, - deleteFlow, - indexClear, - indexShiftClear, - indexInspectionClear, - renderMenu, - ...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; - } - } - } - .stepItem{ - width: 100%; - display: flex; - align-items: flex-start; - margin-bottom: 30px; - margin-left: 30px; - padding-bottom: 30px; - border-left: 2px solid #ccc; - &:first-of-type{ - margin-top: 30px; - } - &:last-of-type{ - margin-bottom: 0; - border-left: none; - } - .stepNum { - width: 30px; - height: 30px; - border-radius: 15px; - box-sizing: border-box; - color: #333; - border: 1px solid #999; - line-height: 28px; - text-align: center; - margin-right: 10px; - margin-left: -16px; - margin-top: -30px; - } - .stepCard { - width: 100%; - margin-top: -30px; - - .box-card { - width: 100%; - &:deep(.el-card__header){ - padding: 10px 15px - } - .card-header { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - &>div:first-of-type{ - margin-right: 80px; - font-size: 18px; - font-weight: bold; - } - } - } - } - &:hover .card-header{ - color: #0098F5; - } - &:hover .stepNum{ - border: 2px solid #0098F5; - color: #0098F5; - } - } - .el-input{ - width: 100% !important; - } - :deep(.el-date-editor){ - width: 100%; - } - .el-select{ - width: 100%; - } - - .inspect-chain :deep(.el-table__row){ - background: #fff; - - } - - .inspect-chain :deep(.el-table__cell){ - background: #fff; - } -</style> diff --git a/src/views/basicRightsManagement/personnelShiftManagement/holidayManagement/index.vue b/src/views/basicRightsManagement/personnelShiftManagement/holidayManagement/index.vue deleted file mode 100644 index dcd595a..0000000 --- a/src/views/basicRightsManagement/personnelShiftManagement/holidayManagement/index.vue +++ /dev/null @@ -1,354 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="休息日名称"></el-input> - <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%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="name" label="休息日名称"/> - <el-table-column property="type" label="休息类型"/> - <el-table-column property="info" label="描述信息"/> - <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 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> - </div> - </div> - <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.type" - readonly - /> - </el-form-item> - <el-form-item label="休假时间" v-if="details.content.length>0"> - <el-input - v-model="details.content" - 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="type"> - <el-cascader - v-model="addRecord.type" - :options="holidayList" - :props="casProps" - @change="handleChange" - /> - </el-form-item> - <el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每周'"> - <el-checkbox-group v-model="addRecord.content"> - <el-checkbox v-for="(item,i) in weekDays" :label="item" :key="i"/> - </el-checkbox-group> - </el-form-item> - <el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每月'"> - <el-checkbox-group v-model="addRecord.content"> - <el-checkbox v-for="index in 31" :label="index" :key="index"/> - </el-checkbox-group> - </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 { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const currentPage = ref(1) - const pageSize = ref(10) - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const casProps = { - expandTrigger: 'hover', - } - const tableData = reactive( - [ - { - name: '周末休息', - type: '每周公休假日', - content: '' - }, - { - name: '节假日休息', - type: '每年法定节假日', - content: '' - }, - { - name: '每周一、周四休息', - type: '自定义休息日,每周', - content: ['周一','周四'] - }, - { - name: '每月休息日休息', - type: '自定义休息日,每月', - content: ['5','15','25'] - } - ] - ) - const holidayList =reactive([ - { - value: '每周公休假日', - label: '每周公休假日' - }, - { - value: '每年法定节假日', - label: '每年法定节假日' - }, - { - value: '自定义休息日', - label: '自定义休息日', - children: [ - { - value: '每周', - label: '每周', - }, - { - value: '每月', - label: '每月', - } - ] - } - ]) - const handleChange = (value) => { - addRecord.value.content = [] - console.log(JSON.parse(JSON.stringify(value))) - } - const weekDays = reactive(['周一','周二','周三','周四','周五','周六','周日']) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - name:[{required: true, message: '该内容不能为空',trigger:'blur'}], - type:[{required: true, message: '该内容不能为空',trigger:'blur'}], - content:[{required: true, message: '该内容不能为空'}] - }) - 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){ - tableData.unshift(addRecord.value) - }else{ - 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(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .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; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/basicRightsManagement/personnelShiftManagement/holidayTime/index.vue b/src/views/basicRightsManagement/personnelShiftManagement/holidayTime/index.vue deleted file mode 100644 index 7bfacde..0000000 --- a/src/views/basicRightsManagement/personnelShiftManagement/holidayTime/index.vue +++ /dev/null @@ -1,625 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="休息日名称"></el-input> - <el-button type="primary" @click="searchRecord">查询</el-button> - <el-button plain @click="clearSearch">重置</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 @click="deleteWorkTimePeriods">删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="100" /> - <el-table-column property="name" label="休息日名称"/> - <el-table-column property="type" label="休息日类型"/> - <el-table-column property="info" label="描述信息"/> - <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.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="totalSize" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <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.type" - readonly - /> - </el-form-item> - <el-form-item label="休假时间" v-if="details.content.length>0"> - <el-input - v-model="details.content" - readonly - /> - </el-form-item> - <el-form-item label="描述信息" v-if="details.info"> - <el-input - v-model="details.info" - type="textarea" - 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" @open="openAdd"> - <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="type"> - <el-cascader - v-model="addRecord.type" - :options="holidayList" - :props="casProps" - @change="handleChange" - /> - </el-form-item> - <el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每周'"> - <el-checkbox-group v-model="addRecord.content"> - <el-checkbox v-for="(item,i) in weekDays" :label="item" :key="i"/> - </el-checkbox-group> - </el-form-item> - <el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每月'"> - <el-checkbox-group v-model="addRecord.content"> - <el-checkbox v-for="index in 31" :label="index" :key="index"/> - </el-checkbox-group> - </el-form-item> - <el-form-item label="描述信息" prop="info"> - <el-input - v-model="addRecord.info" - type="textarea" - > - </el-input> - </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"> - import { toRefs, reactive, ref, onMounted } 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, ElMessage } from 'element-plus' - import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours'; - - - - // 定义接口来定义对象的类型 - interface stateType { - tableData: Array<string>, - multipleSelection: Array<any>, - deleteArr: Array<any>, - dialogDetails: boolean, - dialogAddRecord: boolean, - deleteDialog: boolean, - pageIndex: number, - pageSize: number, - searchWord: string, - totalSize: number, - addRecord: { - name: string, - type: string, - content: Array<any>, - info: string - }, - details: { - name: string, - type: string, - content: Array<any>, - info: string - } - } - - export default { - name: 'workingHours', - components:{}, - setup() { - const userInfo = useUserInfo() - const {userInfos} = storeToRefs(userInfo); - - const state = reactive<stateType>({ - pageIndex: 1, - pageSize: 10, - totalSize: 0, - chosenIndex: null, - searchWord: '', - tableData: [], - multipleSelection: [], - dialogDetails: false, - dialogAddRecord: false, - deleteDialog: false, - holidayList:[ - { - value: '每周公休假日', - label: '每周公休假日' - }, - { - value: '每年法定节假日', - label: '每年法定节假日' - }, - { - value: '自定义休息日', - label: '自定义休息日', - children: [ - { - value: '每周', - label: '每周', - }, - { - value: '每月', - label: '每月', - } - ] - } - ], - weekDays: ['周一','周二','周三','周四','周五','周六','周日'], - casProps: { - expandTrigger: 'hover', - }, - addRecord: { - name: '', - type: '', - content: [], - info: '' - }, - details: { - name: '', - type: '', - content: [], - info: '' - }, - deleteId: null, - deleteArr: [] - }) - interface User { - name: string, - type: string, - content: [], - info: string - } - - const handleChange = (value) => { - state.addRecord.content = [] - console.log(JSON.parse(JSON.stringify(value))) - } - - const multipleTableRef = ref<InstanceType<typeof ElTable>>() - const toggleSelection = (rows?: User[]) => { - if (rows) { - rows.forEach((row) => { - // TODO: improvement typing when refactor table - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - multipleTableRef.value!.toggleRowSelection(row, undefined) - }) - } else { - multipleTableRef.value!.clearSelection() - } - } - - // 多选 - const handleSelectionChange = (val: User[]) => { - state.multipleSelection = JSON.parse(JSON.stringify(val)) - state.deleteArr = state.multipleSelection.map((item)=>{ - item = item.id - return item - }) - } - - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - type: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - content: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - - // 页面载入时执行方法 - onMounted(() => { - // getWorkTimePeriod() - getListByPage() - }) - - // 获取工作时段列表 - const getWorkTimePeriod = async () => { - let res = await workingHoursApi().getWorkTimePeriod({name: state.searchWord}); - if (res.data.code === '200') { - state.tableData = res.data.data.map((item)=>{ - item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString()) - item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString()) - item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString()) - item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString()) - item.startTime = item.startHour + ':' + item.startMin - item.endTime = item.endHour + ':' + item.endMin - return item - }) - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - // 分页获取工作时段列表 - const getListByPage = async ()=>{ - const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}} - let res = await workingHoursApi().postPeriodPage(data); - if (res.data.code === '200') { - state.tableData = res.data.data.map((item)=>{ - item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString()) - item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString()) - item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString()) - item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString()) - item.startTime = item.startHour + ':' + item.startMin - item.endTime = item.endHour + ':' + item.endMin - return item - }) - state.totalSize = res.data.total - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - // 关键词查询记录 - const searchRecord = async()=>{ - if(state.searchWord==''){ - ElMessage({ - type: 'warning', - message: '请输入查询关键词' - }); - }else{ - getListByPage() - } - } - - const clearSearch = async()=>{ - state.searchWord='' - getListByPage() - } - - // 添加工作时段 - const addWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().postWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 修改工作时段 - const editWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().updateWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - // 删除工作时段 - const deleteWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().deletWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - const deleteRecord = (row) => { - state.deleteId = row.id - state.deleteDialog = true - } - - const conFirmDelete = () => { - deleteWorkTimePeriod({ id: state.deleteId }) - state.deleteDialog = false - } - - // 批量删除 - const deleteWorkTimePeriods = async () => { - if(state.deleteArr.length>0){ - console.log(state.deleteArr) - let res = await workingHoursApi().deleteBatchWorkTimePeriod({ids: state.deleteArr}); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }else{ - ElMessage({ - type: 'warning', - message: '请先选择要删除的记录' - }); - } - } - - const handleSizeChange = (val: number) => { - state.pageSize = val - getListByPage() - } - const handleCurrentChange = (val: number) => { - state.pageIndex = val - getListByPage() - } - - // 查看记录 - const viewRecord = (row) => { - state.details = row - state.dialogDetails = true - } - - // 刷新 - const reLoadData = async () =>{ - getListByPage() - } - const editRecord = (index, row) => { - state.dialogAddRecord = true - state.chosenIndex = index - state.addRecord = JSON.parse(JSON.stringify(row)) - } - - // 新增修改记录 - const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - const data = { - name: state.addRecord.name, - info: state.addRecord.info, - startHour: Number(state.addRecord.startTime.substring(0, 2)), - startMin: Number(state.addRecord.startTime.substring(3)), - endHour: Number(state.addRecord.endTime.substring(0, 2)), - endMin: Number(state.addRecord.endTime.substring(3)) - } - if (state.chosenIndex == null) { - // if (state.addRecord.startTime >= state.addRecord.endTime) { - // state.addRecord.endTime = '次日' + state.addRecord.endTime - // } - // state.tableData.unshift(data) - await addWorkTimePeriod(data) - } else { - // if (state.addRecord.startTime >= state.addRecord.endTime) { - // state.addRecord.endTime = '次日' + state.addRecord.endTime - // } - // state.tableData[state.chosenIndex] = state.addRecord - data.id = state.addRecord.id, - await editWorkTimePeriod(data) - } - state.dialogAddRecord = false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd = () => { - state.addRecord = {} - state.chosenIndex = null - } - const openAdd = () => { - if (state.chosenIndex == null) { - state.addRecord.info = '' - } - } - const indexClear = () => { - state.deleteId = null - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - addRef, - addRules, - View, - Edit, - Delete, - Refresh, - Plus, - toggleSelection, - handleSelectionChange, - deleteWorkTimePeriods, - searchRecord, - clearSearch, - viewRecord, - deleteRecord, - conFirmDelete, - getWorkTimePeriod, - getListByPage, - reLoadData, - deleteWorkTimePeriod, - handleSizeChange, - handleCurrentChange, - confirmAddRecord, - closeAdd, - openAdd, - indexClear, - editRecord, - ...toRefs(state) - }; - } - } -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .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; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/basicRightsManagement/personnelShiftManagement/workingHoursSet/index.vue b/src/views/basicRightsManagement/personnelShiftManagement/workingHoursSet/index.vue deleted file mode 100644 index 31dc29b..0000000 --- a/src/views/basicRightsManagement/personnelShiftManagement/workingHoursSet/index.vue +++ /dev/null @@ -1,573 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="工作时段名称"></el-input> - <el-button type="primary" @click="searchRecord">查询</el-button> - <el-button plain @click="clearSearch">重置</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 @click="deleteWorkTimePeriods">删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="100" /> - <el-table-column property="name" label="工作时间组名称"/> - <el-table-column property="timeRange" label="关联工作时段"/> - <el-table-column property="info" label="描述信息"/> - <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.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="totalSize" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <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.timeRange" - readonly - /> - </el-form-item> - <el-form-item label="描述信息"> - <el-input - v-model="details.info" - 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" @open="openAdd"> - <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="timeRange"> - <el-select v-model="addRecord.timeRange" multiple placeholder="请选择"> - <el-option v-for="(item,index) in timeList" :key="index" :label="item.name" :value="item.name" /> - </el-select> - </el-form-item> - <el-form-item label="描述信息" prop="info"> - <el-input - v-model="addRecord.info" - type="textarea" - > - </el-input> - </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"> - import { toRefs, reactive, ref, onMounted } 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, ElMessage } from 'element-plus' - import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHoursSet'; - - - - // 定义接口来定义对象的类型 - interface stateType { - tableData: Array<string>, - multipleSelection: Array<any>, - deleteArr: Array<any>, - timeList: Array<any>, - dialogDetails: boolean, - dialogAddRecord: boolean, - deleteDialog: boolean, - pageIndex: number, - chosenIndex: any, - deleteId: any, - pageSize: number, - searchWord: string, - totalSize: number, - addRecord: { - name: string, - timeRange: Array<any>, - info: string, - startTime: string, - endTime: string - }, - details: { - name: string, - timeRange: Array<any>, - info: string - } - } - - export default { - name: 'workingHoursSet', - components:{}, - setup() { - const userInfo = useUserInfo() - const {userInfos} = storeToRefs(userInfo); - - const state = reactive<stateType>({ - pageIndex: 1, - pageSize: 10, - totalSize: 0, - chosenIndex: null, - searchWord: '', - tableData: [], - timeList: [], - multipleSelection: [], - dialogDetails: false, - dialogAddRecord: false, - deleteDialog: false, - addRecord: { - name: '', - timeRange: [], - info: '', - startTime: '', - endTime: '' - }, - details: { - name: '', - timeRange: [], - info: '' - }, - deleteId: null, - deleteArr: [] - }) - interface User { - name: string, - timeRange: [], - info: string - } - const multipleTableRef = ref<InstanceType<typeof ElTable>>() - const toggleSelection = (rows?: User[]) => { - if (rows) { - rows.forEach((row) => { - // TODO: improvement typing when refactor table - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - multipleTableRef.value!.toggleRowSelection(row, undefined) - }) - } else { - multipleTableRef.value!.clearSelection() - } - } - - // 多选 - const handleSelectionChange = (val: User[]) => { - state.multipleSelection = JSON.parse(JSON.stringify(val)) - state.deleteArr = state.multipleSelection.map((item)=>{ - item = item.id - return item - }) - } - - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - name: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - startTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}], - endTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}] - }) - - // 页面载入时执行方法 - onMounted(() => { - // getWorkTimePeriod() - getListByPage() - }) - - // 获取工作时段列表 - // const getWorkTimePeriod = async () => { - // let res = await workingHoursApi().getWorkTimePeriod({ name: state.searchWord }); - // if (res.data.code === '200') { - // state.tableData = res.data.data.map((item)=>{ - // item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString()) - // item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString()) - // item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString()) - // item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString()) - // item.startTime = item.startHour + ':' + item.startMin - // item.endTime = item.endHour + ':' + item.endMin - // return item - // }) - // } else { - // ElMessage({ - // type: 'warning', - // message: res.data.msg - // }); - // } - // } - - // 分页获取工作时段列表 - const getListByPage = async ()=>{ - const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}} - let res = await workingHoursApi().postPeriodPage(data); - if (res.data.code === '200') { - state.tableData = res.data.data.map((item)=>{ - item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString()) - item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString()) - item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString()) - item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString()) - item.startTime = item.startHour + ':' + item.startMin - item.endTime = item.endHour + ':' + item.endMin - return item - }) - state.totalSize = res.data.total - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - // 关键词查询记录 - const searchRecord = async()=>{ - if(state.searchWord==''){ - ElMessage({ - type: 'warning', - message: '请输入查询关键词' - }); - }else{ - getListByPage() - } - } - - const clearSearch = async()=>{ - state.searchWord='' - getListByPage() - } - - // 添加工作时段 - const addWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().postWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 修改工作时段 - const editWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().updateWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - // 删除工作时段 - const deleteWorkTimePeriod = async (data:any) => { - let res = await workingHoursApi().deletWorkTimePeriod(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - - const deleteRecord = (row) => { - state.deleteId = row.id - state.deleteDialog = true - } - - const conFirmDelete = () => { - deleteWorkTimePeriod({ id: state.deleteId }) - state.deleteDialog = false - } - - // 批量删除 - const deleteWorkTimePeriods = async () => { - if(state.deleteArr.length>0){ - console.log(state.deleteArr) - let res = await workingHoursApi().deleteBatchWorkTimePeriod({ids: state.deleteArr}); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - getListByPage() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }else{ - ElMessage({ - type: 'warning', - message: '请先选择要删除的记录' - }); - } - } - - const handleSizeChange = (val: number) => { - state.pageSize = val - getListByPage() - } - const handleCurrentChange = (val: number) => { - state.pageIndex = val - getListByPage() - } - - // 查看记录 - const viewRecord = (row) => { - state.details = row - state.dialogDetails = true - } - - // 刷新 - const reLoadData = async () =>{ - getListByPage() - } - const editRecord = (index, row) => { - state.dialogAddRecord = true - state.chosenIndex = index - state.addRecord = JSON.parse(JSON.stringify(row)) - } - - // 新增修改记录 - const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - const data = { - name: state.addRecord.name, - info: state.addRecord.info, - startHour: Number(state.addRecord.startTime.substring(0, 2)), - startMin: Number(state.addRecord.startTime.substring(3)), - endHour: Number(state.addRecord.endTime.substring(0, 2)), - endMin: Number(state.addRecord.endTime.substring(3)) - } - if (state.chosenIndex == null) { - // if (state.addRecord.startTime >= state.addRecord.endTime) { - // state.addRecord.endTime = '次日' + state.addRecord.endTime - // } - // state.tableData.unshift(data) - await addWorkTimePeriod(data) - } else { - // if (state.addRecord.startTime >= state.addRecord.endTime) { - // state.addRecord.endTime = '次日' + state.addRecord.endTime - // } - // state.tableData[state.chosenIndex] = state.addRecord - data.id = state.addRecord.id, - await editWorkTimePeriod(data) - } - state.dialogAddRecord = false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd = () => { - state.addRecord = {} - state.chosenIndex = null - } - const openAdd = () => { - if (state.chosenIndex == null) { - state.addRecord.info = '' - } - } - const indexClear = () => { - state.deleteId = null - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - addRef, - addRules, - View, - Edit, - Delete, - Refresh, - Plus, - toggleSelection, - handleSelectionChange, - deleteWorkTimePeriods, - searchRecord, - clearSearch, - viewRecord, - deleteRecord, - conFirmDelete, - getListByPage, - reLoadData, - deleteWorkTimePeriod, - handleSizeChange, - handleCurrentChange, - confirmAddRecord, - closeAdd, - openAdd, - indexClear, - editRecord, - ...toRefs(state) - }; - } - } -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .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; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/IntelligentXjSys/inspectionRecordManagement/index.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue similarity index 100% rename from src/views/IntelligentXjSys/inspectionRecordManagement/index.vue rename to src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue diff --git a/src/views/IntelligentXjSys/intelligentMap/index.vue b/src/views/intellectInspect/intelligentMap/index.vue similarity index 100% rename from src/views/IntelligentXjSys/intelligentMap/index.vue rename to src/views/intellectInspect/intelligentMap/index.vue diff --git a/src/views/basicRightsManagement/personnelShiftManagement/shiftManagement/index.vue b/src/views/system/personShiftManage/arrangeManage/index.vue similarity index 100% rename from src/views/basicRightsManagement/personnelShiftManagement/shiftManagement/index.vue rename to src/views/system/personShiftManage/arrangeManage/index.vue diff --git a/src/views/basicRightsManagement/personnelShiftManagement/workingHours/index.vue b/src/views/system/personShiftManage/durationManage/index.vue similarity index 100% rename from src/views/basicRightsManagement/personnelShiftManagement/workingHours/index.vue rename to src/views/system/personShiftManage/durationManage/index.vue diff --git a/src/views/generalShiftManagement/index.vue b/src/views/system/personShiftManage/generalShiftManagement/index.vue similarity index 100% rename from src/views/generalShiftManagement/index.vue rename to src/views/system/personShiftManage/generalShiftManagement/index.vue diff --git a/src/views/basicRightsManagement/personnelShiftManagement/holidayTimeSet/index.vue b/src/views/system/personShiftManage/holidayTimeGroup/index.vue similarity index 100% rename from src/views/basicRightsManagement/personnelShiftManagement/holidayTimeSet/index.vue rename to src/views/system/personShiftManage/holidayTimeGroup/index.vue diff --git a/src/views/basicRightsManagement/personnelShiftManagement/personnelManagement/index.vue b/src/views/system/personShiftManage/personArrange/index.vue similarity index 100% rename from src/views/basicRightsManagement/personnelShiftManagement/personnelManagement/index.vue rename to src/views/system/personShiftManage/personArrange/index.vue diff --git a/src/views/basicRightsManagement/personnelShiftManagement/teamManagement/index.vue b/src/views/system/personShiftManage/teamManage/index.vue similarity index 100% rename from src/views/basicRightsManagement/personnelShiftManagement/teamManagement/index.vue rename to src/views/system/personShiftManage/teamManage/index.vue -- Gitblit v1.9.2