Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt
已重命名4个文件
已修改11个文件
已添加5个文件
对比新文件 |
| | |
| | | <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="searchWord" placeholder="作业证编号"></el-input> |
| | | <el-button type="primary">查询</el-button> |
| | | <el-button plain>重置</el-button> |
| | | <el-button plain :icon="Download"></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 property="id" label="作业证编号" width="200" sortable/> |
| | | <el-table-column property="cardName" label="作业证名称" width="180" /> |
| | | <el-table-column property="checkinTime" label="抽检日期" sortable/> |
| | | <el-table-column property="name" label="抽检人"/> |
| | | <el-table-column property="result" label="抽检结果"/> |
| | | <el-table-column property="remark" label="抽检意见"/> |
| | | <el-table-column fixed="right" label="操作" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="viewRecord(scope.row)">查看</el-button> |
| | | <el-button link type="danger" size="small" @click="deleteRecord(scope.row)">删除</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="作业票抽检" @close="dialogColse"> |
| | | <el-form :model="details" label-width="120px"> |
| | | <el-form-item label="作业证编号"> |
| | | <el-input |
| | | v-model="details.id" |
| | | class="input-with-select" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="抽检人"> |
| | | <el-input |
| | | v-model="details.name" |
| | | class="input-with-select" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="抽检结果"> |
| | | <el-input |
| | | v-model="details.result" |
| | | class="input-with-select" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="抽检时间"> |
| | | <el-input |
| | | v-model="details.checkinTime" |
| | | class="input-with-select" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="抽检意见"> |
| | | <el-input v-model="details.remark" 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="dialogColse"> |
| | | <el-form :model="AddRecord" label-width="120px"> |
| | | <el-form-item label="作业证编号"> |
| | | <el-input |
| | | v-model="AddRecord.id" |
| | | class="input-with-select" |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search"/> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="作业证名称"> |
| | | <el-input |
| | | v-model="AddRecord.cardName" |
| | | class="input-with-select" |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search"/> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="抽检人"> |
| | | <el-input |
| | | v-model="AddRecord.name" |
| | | class="input-with-select" |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search"/> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="抽检结果"> |
| | | <el-select v-model="AddRecord.result"> |
| | | <el-option label="合格" value="合格" /> |
| | | <el-option label="不合格" value="不合格" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="抽检时间"> |
| | | <el-date-picker |
| | | v-model="AddRecord.checkinTime" |
| | | type="datetime" |
| | | placeholder="请选择" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="抽检意见"> |
| | | <el-input v-model="AddRecord.remark" type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="warning" @click="dialogDetails = false" size="default" plain>取消</el-button> |
| | | <el-button type="primary" @click="addRecord" size="default">确认</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-dialog> |
| | | <el-dialog v-model="deleteDialog" title="提示" width="30%" center> |
| | | <span>您确定要删除该条记录吗?</span> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> |
| | | <el-button @click="deleteDialog = false" 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, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' |
| | | import { ElTable } 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 state = reactive<stateType>({}); |
| | | const currentPage = ref(1) |
| | | const pageSize = ref(10) |
| | | const handleSizeChange = (val: number) => { |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | const tableData = ref( |
| | | [ |
| | | { |
| | | id: '11011', |
| | | cardName: '动火作业证', |
| | | checkinTime: '2021-04-22 15:21:31', |
| | | name: '吴海涛', |
| | | result: '合格', |
| | | remark: '没意见' |
| | | }, |
| | | { |
| | | id: '11012', |
| | | cardName: '动火作业证', |
| | | checkinTime: '2021-04-22 15:21:31', |
| | | name: '吴沈峰', |
| | | result: '合格', |
| | | remark: '有点意见' |
| | | }, |
| | | ] |
| | | ) |
| | | 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 = (row) =>{ |
| | | deleteDialog.value = true |
| | | } |
| | | const conFirmDelete = (row)=> { |
| | | console.log(row,'row') |
| | | details.value = JSON.parse(JSON.stringify(row)) |
| | | console.log(details,'details') |
| | | dialogDetails.value = true |
| | | } |
| | | // 折线图 |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <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" placeholder="请选择" style="width: 100%"> |
| | | <el-option label="动火作业" value="动火作业" /> |
| | | <el-option label="动土作业" value="动土作业" /> |
| | | </el-select> |
| | | <el-input v-model="searchWord" placeholder="作业证编号"></el-input> |
| | | <el-button type="primary">查询</el-button> |
| | | <el-button plain>重置</el-button> |
| | | <el-button-group style="display: flex;margin-left: 12px"> |
| | | <el-button plain :icon="Download"></el-button> |
| | | <el-button plain :icon="Refresh"></el-button> |
| | | </el-button-group> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="homeCard"> |
| | | <div class="main-card"> |
| | | <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="id" label="作业证编号" width="300" sortable /> |
| | | <el-table-column property="cardName" label="作业证名称" width="300" /> |
| | | <el-table-column property="name" label="申请人" width="300" /> |
| | | <el-table-column property="department" label="申请部门" /> |
| | | <el-table-column property="date" label="归档日期" sortable /> |
| | | </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-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse"> |
| | | <el-form :model="details" label-width="120px"> |
| | | <el-form-item label="作业证编号"> |
| | | <el-input v-model="details.id" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="签到人"> |
| | | <el-input |
| | | v-model="details.worker" |
| | | class="input-with-select" |
| | | readonly |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search" /> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="签到状态">--> |
| | | <!-- <el-select v-model="details.status" readonly>--> |
| | | <!-- <el-option label="已签到" value="已签到" />--> |
| | | <!-- <el-option label="未签到" value="未签到" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="签到时间"> |
| | | <el-input v-model="details.checkinTime" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="details.remark" 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-scrollbar> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, defineComponent, ref } from 'vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { Plus, Edit, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' |
| | | import { ElTable } from 'element-plus' |
| | | let global: any = { |
| | | homeChartOne: null, |
| | | homeChartTwo: null, |
| | | homeCharThree: null, |
| | | dispose: [null, '', undefined], |
| | | }; |
| | | |
| | | interface stateType { |
| | | homeOne: Array <type> |
| | | } |
| | | interface type { |
| | | |
| | | } |
| | | interface User { |
| | | date: string |
| | | name: string |
| | | address: string |
| | | } |
| | | export default defineComponent({ |
| | | name: 'gasCheckAnalyze', |
| | | setup() { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const multipleTableRef = ref<InstanceType<typeof ElTable>>() |
| | | const multipleSelection = ref<User[]>([]) |
| | | const handleSelectionChange = (val: User[]) => { |
| | | multipleSelection.value = val |
| | | } |
| | | const currentPage = ref(1) |
| | | const pageSize = ref(10) |
| | | const handleSizeChange = (val: number) => { |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | const tableData: User[] = [ |
| | | { |
| | | id: '11011', |
| | | cardName: '动火作业证', |
| | | name: '吴沈峰', |
| | | department: '土木部', |
| | | date: '2021-04-22 15:21:31' |
| | | } |
| | | ] |
| | | const dialogDetails = ref(false) |
| | | const details = ref({}) |
| | | const viewDetails = (row)=> { |
| | | console.log(row,'row') |
| | | details.value = JSON.parse(JSON.stringify(row)) |
| | | console.log(details,'details') |
| | | dialogDetails.value = true |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | | userInfos.value.projectId = value |
| | | await initBackEndControlRoutes(); |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | multipleTableRef, |
| | | tableData, |
| | | currentPage, |
| | | pageSize, |
| | | dialogDetails, |
| | | details, |
| | | viewDetails, |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | </style> |
文件名从 src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue 修改 |
| | |
| | | <template> |
| | | <div class="home-container"> |
| | | <el-scrollbar height="100%"> |
| | | <el-row> |
| | | <div class="homeCard"> |
| | | <el-col :span="12"> |
| | | <el-row class="homeCard"> |
| | | <el-col :span="8"> |
| | | <div class="grid-content topInfo"> |
| | | <div>流程名称</div> |
| | | <el-input v-model="searchWord" placeholder="请输入关键词"></el-input> |
| | |
| | | <el-button plain>重置</el-button> |
| | | </div> |
| | | </el-col> |
| | | </div> |
| | | </el-row> |
| | | <div class="homeCard"> |
| | | <div class="main-card"> |
| | |
| | | <el-button type="danger" :icon="Delete" size="default">删除</el-button> |
| | | <el-button type="success" size="default">设置分类</el-button> |
| | | </el-col> |
| | | <el-button type="primary" :icon="Refresh" /> |
| | | <el-button type="primary" :icon="Refresh" size="default"/> |
| | | </el-row> |
| | | <el-table |
| | | ref="multipleTableRef" |
对比新文件 |
| | |
| | | <template> |
| | | <div class="home-container"> |
| | | <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> |
| | | <el-tab-pane label="申请中" name="Applying"> |
| | | <el-scrollbar 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">申请</el-button> |
| | | <!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | <!-- <el-button type="success" size="default">设置分类</el-button>--> |
| | | </el-col> |
| | | <el-button type="primary" :icon="Refresh" size="default"/> |
| | | </el-row> |
| | | <el-table |
| | | ref="multipleTableRef" |
| | | :data="applyData" |
| | | style="width: 100%" |
| | | :header-cell-style="{background: '#fafafa'}" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column property="num" label="作业证编号" width="200"/> |
| | | <el-table-column property="level" label="作业证等级" width="180" sortable /> |
| | | <el-table-column property="applyDate" label="申请日期" sortable /> |
| | | <el-table-column property="name" label="申请人" width="180"/> |
| | | <el-table-column property="department" label="申请部门" width="180" /> |
| | | <el-table-column label="申请状态" width="180"> |
| | | <template #default="scope"> |
| | | <el-tag type="success">{{ scope.row.status }}</el-tag> |
| | | </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-tab-pane> |
| | | <el-tab-pane label="已通过" name="passed"> |
| | | <el-scrollbar height="100%"> |
| | | <el-row> |
| | | <div class="homeCard"> |
| | | <el-col :span="12"> |
| | | <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> |
| | | </div> |
| | | </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">申请</el-button>--> |
| | | <!--<el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | <!--<el-button type="success" size="default">设置分类</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-button type="primary" :icon="Refresh" />--> |
| | | <!-- </el-row>--> |
| | | <el-table |
| | | ref="multipleTableRef" |
| | | :data="passedData" |
| | | style="width: 100%" |
| | | :header-cell-style="{background: '#fafafa'}" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column property="num" label="作业证编号" width="200"/> |
| | | <el-table-column property="level" label="作业证等级" width="180" sortable /> |
| | | <el-table-column property="applyDate" label="申请日期" sortable /> |
| | | <el-table-column property="name" label="申请人" width="180"/> |
| | | <el-table-column property="department" label="申请部门" width="180" /> |
| | | <el-table-column label="申请状态" width="180"> |
| | | <template #default="scope"> |
| | | <el-tag type="success">{{ scope.row.status }}</el-tag> |
| | | </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-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, defineComponent, ref } from 'vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { Plus, Delete, Refresh } from '@element-plus/icons-vue' |
| | | import { ElTable } from 'element-plus' |
| | | import type { TabsPaneContext } from 'element-plus' |
| | | let global: any = { |
| | | homeChartOne: null, |
| | | homeChartTwo: null, |
| | | homeCharThree: null, |
| | | dispose: [null, '', undefined], |
| | | }; |
| | | |
| | | interface stateType { |
| | | homeOne: Array <type> |
| | | } |
| | | interface type { |
| | | |
| | | } |
| | | interface User { |
| | | num: string |
| | | level: string |
| | | applyDate: string |
| | | name: string |
| | | department: string |
| | | status: string |
| | | } |
| | | export default defineComponent({ |
| | | name: 'myApply', |
| | | setup() { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const activeName = ref('Applying') |
| | | const handleClick = (tab: TabsPaneContext, event: Event) => { |
| | | console.log(tab, event) |
| | | } |
| | | const multipleTableRef = ref<InstanceType<typeof ElTable>>() |
| | | const multipleSelection = ref<User[]>([]) |
| | | const handleSelectionChange = (val: User[]) => { |
| | | multipleSelection.value = val |
| | | } |
| | | const currentPage = ref(1) |
| | | const pageSize = ref(10) |
| | | const handleSizeChange = (val: number) => { |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | const applyData: User[] = [] |
| | | const passedData: User[] = [] |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | | userInfos.value.projectId = value |
| | | await initBackEndControlRoutes(); |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | multipleTableRef, |
| | | applyData, |
| | | passedData, |
| | | currentPage, |
| | | pageSize, |
| | | activeName, |
| | | handleClick, |
| | | handleSizeChange, |
| | | handleCurrentChange, |
| | | Plus, |
| | | Delete, |
| | | handleSelectionChange, |
| | | Refresh, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $homeNavLengh: 8; |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | padding: 20px; |
| | | .demo-tabs > .el-tabs__content { |
| | | padding: 32px; |
| | | color: #6b778c; |
| | | font-size: 32px; |
| | | font-weight: 600; |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="ruleFormRef"> |
| | | <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="bpRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="申请人" prop="bpApplyName"> |
| | | <el-input |
| | | v-model="bpForm.bpApplyName" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpApplyName" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search" /> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="设备管道名称" prop="bpTubeName"> |
| | | <el-input |
| | | v-model="bpForm.bpTubeName" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpTubeName" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="主要介质" prop="bpMainMatter"> |
| | | <el-input |
| | | v-model="bpForm.bpMainMatter" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpMainMatter" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="温度" prop="bpTemperature"> |
| | | <el-input |
| | | v-model="bpForm.bpTemperature" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpTemperature" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="压力" prop="bpPressure"> |
| | | <el-input |
| | | v-model="bpForm.bpPressure" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpPressure" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板材质" prop="bpMaterial"> |
| | | <el-input |
| | | v-model="bpForm.bpMaterial" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpMaterial" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板规格" prop="bpFormat"> |
| | | <el-input |
| | | v-model="bpForm.bpFormat" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpFormat" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板编号" prop="bpNum"> |
| | | <el-input |
| | | v-model="bpForm.bpNum" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | v-model="bpForm.bpNum" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板位置" prop="bpLocation"> |
| | | <el-input |
| | | v-model="bpForm.bpLocation" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | type="textarea" |
| | | v-model="bpForm.bpLocation" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | type="textarea" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板位置图" prop="fileList"> |
| | | <el-form-item label="盲板位置图"> |
| | | <el-upload |
| | | v-model:file-list="fileList" |
| | | class="upload-demo" |
| | | action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" |
| | | multiple |
| | | :on-preview="handlePreview" |
| | | :on-remove="handleRemove" |
| | | :before-remove="beforeRemove" |
| | | :limit="3" |
| | | :on-exceed="handleExceed" |
| | | v-model:file-list="bpForm.picList" |
| | | class="upload-demo" |
| | | action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" |
| | | multiple |
| | | :on-preview="handlePreview" |
| | | :on-remove="handleRemove" |
| | | :before-remove="beforeRemove" |
| | | :limit="3" |
| | | :on-exceed="handleExceed" |
| | | > |
| | | <el-button type="primary">上传附件</el-button> |
| | | <template #tip> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="装盲板时间" prop="bpInstallTime"> |
| | | <el-date-picker |
| | | v-model="bpForm.bpInstallTime" |
| | | type="datetime" |
| | | placeholder="请选择" |
| | | v-model="bpForm.bpInstallTime" |
| | | type="datetime" |
| | | placeholder="请选择" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'blindPanelForm', |
| | | setup() { |
| | | props: { |
| | | bpForm: Object, |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const bpForm = reactive({ |
| | | bpDepartment: '', |
| | | bpApplyName: '', |
| | | bpTubeName: '', |
| | | bpMainMatter: '', |
| | | bpTemperature: '', |
| | | bpPressure: '', |
| | | bpMaterial: '', |
| | | bpFormat: '', |
| | | bpNum: '', |
| | | bpLocation: '', |
| | | fileList: [], |
| | | bpPrincipals: [], |
| | | bpInstallTime: '', |
| | | bpDePrincipals: [], |
| | | bpUninstallTime: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const bpForm1 = reactive(props.bpForm) |
| | | // const bpForm = reactive({ |
| | | // bpDepartment: '', |
| | | // bpApplyName: '', |
| | | // bpTubeName: '', |
| | | // bpMainMatter: '', |
| | | // bpTemperature: '', |
| | | // bpPressure: '', |
| | | // bpMaterial: '', |
| | | // bpFormat: '', |
| | | // bpNum: '', |
| | | // bpLocation: '', |
| | | // fileList: [], |
| | | // bpPrincipals: [], |
| | | // bpInstallTime: '', |
| | | // bpDePrincipals: [], |
| | | // bpUninstallTime: '' |
| | | // }) |
| | | const bpRef = ref<FormInstance>() |
| | | const bpFormRules = reactive<FormRules>({ |
| | | bpDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpTubeName: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpMainMatter: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpTemperature: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpPressure: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpMaterial: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpFormat: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpNum: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpLocation: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], |
| | | bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], |
| | | bpInstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], |
| | | bpUninstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | bpDepartment:[{required: true,message: '此处不可为空'}], |
| | | bpApplyName:[{required: true,message: '此处不可为空'}], |
| | | bpTubeName: [{required: true,message: '此处不可为空'}], |
| | | bpMainMatter: [{required: true,message: '此处不可为空'}], |
| | | bpTemperature: [{required: true,message: '此处不可为空'}], |
| | | bpPressure: [{required: true,message: '此处不可为空'}], |
| | | bpMaterial: [{required: true,message: '此处不可为空'}], |
| | | bpFormat: [{required: true,message: '此处不可为空'}], |
| | | bpNum: [{required: true,message: '此处不可为空'}], |
| | | bpLocation: [{required: true,message: '此处不可为空'}], |
| | | bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], |
| | | bpInstallTime: [{required: true,message: '此处不可为空'}], |
| | | bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], |
| | | bpUninstallTime: [{required: true,message: '此处不可为空'}] |
| | | }) |
| | | const fileList = ref<UploadUserFile[]>([ |
| | | { |
| | |
| | | () => false |
| | | ) |
| | | } |
| | | |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await bpRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | bpForm, |
| | | bpForm1, |
| | | bpFormRules, |
| | | ruleFormRef, |
| | | bpRef, |
| | | fileList, |
| | | Search, |
| | | validateForm, |
| | | handleRemove, |
| | | handlePreview, |
| | | handleExceed, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="ruleFormRef"> |
| | | <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="clRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'cutLineForm', |
| | | setup() { |
| | | props: { |
| | | clForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const clForm = reactive({ |
| | | clDepartment: '', |
| | | clApplyName: '', |
| | | clReason: '', |
| | | clUnits: [], |
| | | fileList: [] |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const clForm1 = reactive(props.clForm) |
| | | const clRef = ref<FormInstance>() |
| | | const clFormRules = reactive<FormRules>({ |
| | | clDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | clApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | |
| | | () => false |
| | | ) |
| | | } |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await clRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | clForm, |
| | | clForm1, |
| | | Search, |
| | | clFormRules, |
| | | ruleFormRef, |
| | | clRef, |
| | | fileList, |
| | | validateForm, |
| | | handleRemove, |
| | | handlePreview, |
| | | handleExceed, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="ruleFormRef"> |
| | | <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="dwRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'dirtWorkForm', |
| | | setup() { |
| | | props:{ |
| | | dwForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const dwForm = reactive({ |
| | | dwDepartment: '', |
| | | dwApplyName: '', |
| | | dwRange: '', |
| | | dwWay: '', |
| | | fileList: [] |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const dwForm1 = reactive(props.dwForm) |
| | | const dwRef = ref<FormInstance>() |
| | | const dwFormRules = reactive<FormRules>({ |
| | | dwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | dwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | |
| | | () => false |
| | | ) |
| | | } |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await dwRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | dwForm, |
| | | dwForm1, |
| | | dwFormRules, |
| | | ruleFormRef, |
| | | dwRef, |
| | | fileList, |
| | | validateForm, |
| | | handleRemove, |
| | | handlePreview, |
| | | handleExceed, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="ruleFormRef"> |
| | | <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="fwRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'fireWorkForm', |
| | | setup() { |
| | | props: { |
| | | fwForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const fwForm = reactive({ |
| | | fwDepartment: '', |
| | | fwApplyName: '', |
| | | fwLevel: '', |
| | | fwRiskIdentify: '', |
| | | fwWorkWay: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const fwForm1 = reactive(props.fwForm) |
| | | const fwRef = ref<FormInstance>() |
| | | const fwRules = reactive<FormRules>({ |
| | | fwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | fwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | fwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | fwRiskIdentify: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | fwWorkWay: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | fwDepartment:[{required: true,message: '此处不可为空'}], |
| | | fwApplyName:[{required: true,message: '此处不可为空'}], |
| | | fwLevel: [{required: true,message: '此处不可为空'}], |
| | | fwRiskIdentify: [{required: true,message: '此处不可为空'}], |
| | | fwWorkWay: [{required: true,message: '此处不可为空'}] |
| | | }) |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await fwRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | fwForm, |
| | | ruleFormRef, |
| | | Search, |
| | | fwForm1, |
| | | fwRules, |
| | | fwRef, |
| | | validateForm, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="ruleFormRef"> |
| | | <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="hlRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'hangLoadForm', |
| | | setup() { |
| | | props: { |
| | | hlForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const hlForm = reactive({ |
| | | hlDepartment: '', |
| | | hlApplyName: '', |
| | | hlLevel: '', |
| | | hlWeight: '', |
| | | hlToolsName: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const hlForm1 = reactive(props.hlForm) |
| | | const hlRef = ref<FormInstance>() |
| | | const hlFormRules = reactive<FormRules>({ |
| | | hlDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | hlApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | |
| | | hlWeight: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | hlToolsName: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | }) |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await hlRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | hlForm, |
| | | hlForm1, |
| | | hlFormRules, |
| | | ruleFormRef, |
| | | hlRef, |
| | | validateForm, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="ruleFormRef"> |
| | | <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="hwRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'highWorkForm', |
| | | setup() { |
| | | props:{ |
| | | hwForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const hwForm = reactive({ |
| | | hwDepartment: '', |
| | | hwApplyName: '', |
| | | hwLevel: '', |
| | | hwHeight: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const hwForm1 = reactive(props.hwForm) |
| | | const hwRef = ref<FormInstance>() |
| | | const hwRules = reactive<FormRules>({ |
| | | hwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | hwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | hwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | hwHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | }) |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await hwRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | hwForm, |
| | | ruleFormRef, |
| | | hwForm1, |
| | | hwRef, |
| | | hwRules, |
| | | validateForm, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="ruleFormRef"> |
| | | <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="lsRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'limitedSpaceForm', |
| | | setup() { |
| | | props: { |
| | | lsForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const lsForm = reactive({ |
| | | lsDepartment: '', |
| | | lsApplyName: '', |
| | | lsUnitName: '', |
| | | lsUnit: '', |
| | | lsUnitMatterName: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const lsForm1 = reactive(props.lsForm) |
| | | const lsRef = ref<FormInstance>() |
| | | const lsFormRules = reactive<FormRules>({ |
| | | lsDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | lsApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | |
| | | lsUnit: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | lsUnitMatterName: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | }) |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await lsRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | lsForm, |
| | | lsForm1, |
| | | lsFormRules, |
| | | ruleFormRef, |
| | | lsRef, |
| | | validateForm, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <div class="comp-container"> |
| | | <el-form :model="teForm" label-width="150px" :rules="teRules" ref="ruleFormRef"> |
| | | <el-form :model="teForm" label-width="150px" :rules="teRules" ref="teRef"> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | |
| | | } |
| | | export default defineComponent({ |
| | | name: 'tempElectForm', |
| | | setup() { |
| | | props: { |
| | | teForm: Object |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const teForm = reactive({ |
| | | teDepartment: '', |
| | | teApplyName: '', |
| | | teLevel: '', |
| | | teHeight: '' |
| | | }) |
| | | const ruleFormRef = ref<FormInstance>() |
| | | const teForm1 = reactive(props.teForm) |
| | | const teRef = ref<FormInstance>() |
| | | const teRules = reactive<FormRules>({ |
| | | teDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | teApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | teLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], |
| | | teHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] |
| | | }) |
| | | const validateForm = async () => { |
| | | let flag = null |
| | | await teRef.value.validate(valid=>{ |
| | | if(valid){ |
| | | flag = true |
| | | }else{ |
| | | flag = false |
| | | } |
| | | }) |
| | | return flag |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | teForm, |
| | | ruleFormRef, |
| | | teForm1, |
| | | teRef, |
| | | teRules, |
| | | validateForm, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | |
| | | <div class="home-container"> |
| | | <el-scrollbar height="100%"> |
| | | <el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef2"> |
| | | <!-- <blind-panel-form></blind-panel-form>--> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="申请部门"> |
| | | <el-select v-model="form.department" placeholder="请选择部门"> |
| | | <el-option label="机修班" value="机修班" /> |
| | | <el-option label="火工班" value="火工班" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="申请人"> |
| | | <el-input |
| | | v-model="form.applyName" |
| | | placeholder="请输入" |
| | | class="input-with-select" |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search" /> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="作业等级"> |
| | | <el-select v-model="form.level" placeholder="请选择"> |
| | | <el-option label="一" value="一" /> |
| | | <el-option label="二" value="二" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="危害辨识"> |
| | | <el-select v-model="form.riskIdentify" placeholder="请选择"> |
| | | <el-option label="辨识一" value="辨识一" /> |
| | | <el-option label="辨识二" value="辨识二" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="动火方式"> |
| | | <el-select v-model="form.workWay" placeholder="请选择"> |
| | | <el-option label="方式一" value="方式一" /> |
| | | <el-option label="方式二" value="方式二" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <blind-panel-form :bpForm="form.addForm" ref="additionalForm"></blind-panel-form> |
| | | <!-- <cut-line-form :clForm="form.addForm" ref="additionalForm"></cut-line-form>--> |
| | | <!-- <dirt-work-form :dwForm="form.addForm" ref="additionalForm"></dirt-work-form>--> |
| | | <!-- <fire-work-form :fwForm="form.addForm" ref="additionalForm"></fire-work-form>--> |
| | | <!-- <hang-load-form :hlForm="form.addForm" ref="additionalForm"></hang-load-form>--> |
| | | <!-- <high-work-form :hwForm="form.addForm" ref="additionalForm"></high-work-form>--> |
| | | <!-- <limited-space-form :lsForm="form.addForm" ref="additionalForm"></limited-space-form>--> |
| | | <!-- <temp-elect-form :teForm="form.addForm" ref="additionalForm"></temp-elect-form>--> |
| | | <div> |
| | | <div class="homeCard"> |
| | | <el-row> |
| | | <el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="homeCard applyBtn"> |
| | | </div> |
| | | <div class="applyBtn"> |
| | | <el-row> |
| | | <el-col :span="24" class="submitBtn"> |
| | | <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button> |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button> |
| | | <el-button type="primary" @click="onSubmitAddForm(ruleFormRef3)" size="default">确认</el-button> |
| | | <el-button size="default" @click="cancleAdd">取消</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { Search } from '@element-plus/icons-vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import type { FormInstance, FormRules } from 'element-plus' |
| | | let global: any = { |
| | | homeChartOne: null, |
| | |
| | | homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}], |
| | | }); |
| | | const form = reactive({ |
| | | department: '', |
| | | applyName: '', |
| | | level: '', |
| | | riskIdentify: '', |
| | | workWay: '', |
| | | addForm: {}, |
| | | workerList: [], |
| | | workLocation: '', |
| | | workTimeLine: '', |
| | |
| | | const ruleFormRef2 = ref<FormInstance>() |
| | | const ruleFormRef3 = ref<FormInstance>() |
| | | const applyRules = reactive<FormRules>({ |
| | | extraForm: [{type: 'object', required: true,message: '此处不能为空'}], |
| | | workLocation: [{required: true,message: '此处不能为空'}], |
| | | workTimeLine: [{required: true,message: '此处不能为空'}], |
| | | workContent: [{required: true,message: '此处不能为空'}], |
| | |
| | | monitorStation: [{required: true,message: '此处不能为空'}], |
| | | workhouseLeader: [{required: true,message: '此处不能为空'}], |
| | | applyDate: [{required: true,message: '此处不能为空'}], |
| | | otherSpecialWorks: [{required: true,message: '此处不能为空'}], |
| | | otherSpecialWorks: [{type: 'array', required: true,message: '此处不能为空'}], |
| | | protections: [{required: true,message: '此处不能为空'}], |
| | | safetyMan: [{required: true,message: '此处不能为空'}], |
| | | educated: [{required: true,message: '此处不能为空'}] |
| | |
| | | const deleteRow = (index) =>{ |
| | | form.workerList.splice( index,1) |
| | | } |
| | | const isValid = ref(false) |
| | | const additionalForm = ref(null) |
| | | const handleApply = async (formEl: FormInstance | undefined) =>{ |
| | | if (!formEl) return |
| | | const flag = additionalForm.value.validateForm() |
| | | await flag.then((res)=>{ |
| | | isValid.value = res |
| | | }) |
| | | await formEl.validate((valid, fields) => { |
| | | if (valid) { |
| | | console.log('submit!') |
| | | console.log(valid,'and',isValid.value) |
| | | if (valid && isValid.value) { |
| | | console.log('submit',form,fields) |
| | | ElMessage({ |
| | | message: '提交成功!', |
| | | type: 'success', |
| | | }) |
| | | } else { |
| | | console.log('error submit!', fields) |
| | | // console.log('error submit!',form,fields) |
| | | ElMessage({ |
| | | message: '表单未填写完整', |
| | | type: 'error', |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | |
| | | ruleFormRef, |
| | | ruleFormRef2, |
| | | ruleFormRef3, |
| | | additionalForm, |
| | | addWorkerRules, |
| | | saftyFileRules, |
| | | applyRules, |
| | | isValid, |
| | | handleApply, |
| | | cancleAddFile, |
| | | deleteRow, |
| | |
| | | background: #fff; |
| | | border-radius: 4px; |
| | | margin-bottom: 20px; |
| | | |
| | | &:last-of-type{ |
| | | margin-bottom: 100px; |
| | | } |
| | | } |
| | | .applyBtn{ |
| | | position: absolute; |
| | | width: 100%; |
| | | padding: 20px; |
| | | background: #fff; |
| | | bottom: 0; |
| | | left: 0; |
| | | height: 80px; |
| | | z-index: 999; |
| | | margin-bottom: 0; |
| | | border-radius: 0; |
| | | box-shadow: 0 -3px 8px rgba(150,150,150,.1); |
| | |
| | | <template> |
| | | <div class="home-container"> |
| | | <el-scrollbar height="100%"> |
| | | <el-row> |
| | | <div class="homeCard"> |
| | | <el-row class="homeCard"> |
| | | <!-- <div class="homeCard">--> |
| | | <el-col :span="6"> |
| | | <div class="grid-content topInfo"> |
| | | <div>预约时间:</div> |
| | |
| | | <div><el-button type="primary" @click="dialogChartsVisible = true">查看统计图表</el-button></div> |
| | | </div> |
| | | </el-col> |
| | | </div> |
| | | <!-- </div>--> |
| | | </el-row> |
| | | <el-row> |
| | | <div class="homeCard"> |
| | |
| | | <template> |
| | | <div class="home-container"> |
| | | <el-scrollbar height="100%"> |
| | | <el-row> |
| | | <div class="homeCard"> |
| | | <el-row class="homeCard"> |
| | | <!-- <div class="homeCard">--> |
| | | <el-col :span="6"> |
| | | <div class="grid-content topInfo"> |
| | | <div>当前所属部门:</div> |
| | |
| | | <div><el-button type="success" @click="dialogFormVisible = true">新增预约</el-button></div> |
| | | </div> |
| | | </el-col> |
| | | </div> |
| | | <!-- </div>--> |
| | | </el-row> |
| | | <el-row> |
| | | <div class="homeCard"> |
对比新文件 |
| | |
| | | <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="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">新建</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 property="id" label="作业证编号" width="200" sortable/> |
| | | <el-table-column property="date" label="日期" width="180" sortable/> |
| | | <el-table-column property="combustible" label="可燃气%" sortable/> |
| | | <el-table-column property="oxygen" label="氧气%" sortable/> |
| | | <el-table-column property="co" label="一氧化碳ppm" sortable/> |
| | | <el-table-column property="hs" label="硫化氢ppm" sortable/> |
| | | <el-table-column property="updateTime" label="更新时间" sortable/> |
| | | </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-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse"> |
| | | <el-form :model="details" label-width="120px"> |
| | | <el-form-item label="作业证编号"> |
| | | <el-input v-model="details.id" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="签到人"> |
| | | <el-input |
| | | v-model="details.worker" |
| | | class="input-with-select" |
| | | readonly |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search" /> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="签到状态">--> |
| | | <!-- <el-select v-model="details.status" readonly>--> |
| | | <!-- <el-option label="已签到" value="已签到" />--> |
| | | <!-- <el-option label="未签到" value="未签到" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="签到时间"> |
| | | <el-input v-model="details.checkinTime" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="details.remark" 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-scrollbar> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, defineComponent, ref } from 'vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { Plus, Edit, Delete, Refresh, Search } from '@element-plus/icons-vue' |
| | | import { ElTable } from 'element-plus' |
| | | let global: any = { |
| | | homeChartOne: null, |
| | | homeChartTwo: null, |
| | | homeCharThree: null, |
| | | dispose: [null, '', undefined], |
| | | }; |
| | | |
| | | interface stateType { |
| | | homeOne: Array <type> |
| | | } |
| | | interface type { |
| | | |
| | | } |
| | | interface User { |
| | | date: string |
| | | name: string |
| | | address: string |
| | | } |
| | | export default defineComponent({ |
| | | name: 'gasCheckAnalyze', |
| | | setup() { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const multipleTableRef = ref<InstanceType<typeof ElTable>>() |
| | | const multipleSelection = ref<User[]>([]) |
| | | const handleSelectionChange = (val: User[]) => { |
| | | multipleSelection.value = val |
| | | } |
| | | const currentPage = ref(1) |
| | | const pageSize = ref(10) |
| | | const handleSizeChange = (val: number) => { |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | const tableData: User[] = [ |
| | | { |
| | | id: '11011', |
| | | date: '2021-04-22 15:21:31', |
| | | combustible: 0, |
| | | oxygen: 21, |
| | | co: 0, |
| | | hs: 0, |
| | | updateTime: '2021-04-22 15:21:31', |
| | | }, |
| | | { |
| | | id: '11011', |
| | | date: '2021-04-22 15:21:31', |
| | | combustible: 1, |
| | | oxygen: 21, |
| | | co: 0, |
| | | hs: 0, |
| | | updateTime: '2021-04-22 15:21:31', |
| | | } |
| | | ] |
| | | const dialogDetails = ref(false) |
| | | const details = ref({}) |
| | | const viewDetails = (row)=> { |
| | | console.log(row,'row') |
| | | details.value = JSON.parse(JSON.stringify(row)) |
| | | console.log(details,'details') |
| | | dialogDetails.value = true |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | | userInfos.value.projectId = value |
| | | await initBackEndControlRoutes(); |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | multipleTableRef, |
| | | tableData, |
| | | currentPage, |
| | | pageSize, |
| | | dialogDetails, |
| | | details, |
| | | viewDetails, |
| | | handleSizeChange, |
| | | handleCurrentChange, |
| | | Plus, |
| | | Edit, |
| | | Delete, |
| | | Search, |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <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="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="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 property="id" label="作业证编号" width="200" sortable/> |
| | | <el-table-column property="worker" label="签到人" width="180" /> |
| | | <el-table-column property="checkinTime" label="签到时间" sortable/> |
| | | <el-table-column property="remark" label="备注"/> |
| | | <el-table-column fixed="right" label="操作" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="viewDetails(scope.row)">查看</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-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse"> |
| | | <el-form :model="details" label-width="120px"> |
| | | <el-form-item label="作业证编号"> |
| | | <el-input v-model="details.id" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="签到人"> |
| | | <el-input |
| | | v-model="details.worker" |
| | | class="input-with-select" |
| | | readonly |
| | | > |
| | | <template #append> |
| | | <el-button :icon="Search" /> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="签到状态">--> |
| | | <!-- <el-select v-model="details.status" readonly>--> |
| | | <!-- <el-option label="已签到" value="已签到" />--> |
| | | <!-- <el-option label="未签到" value="未签到" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="签到时间"> |
| | | <el-input v-model="details.checkinTime" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="details.remark" 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-scrollbar> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, defineComponent, ref } from 'vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { Edit, Delete, Refresh, Search } from '@element-plus/icons-vue' |
| | | import { ElTable } from 'element-plus' |
| | | let global: any = { |
| | | homeChartOne: null, |
| | | homeChartTwo: null, |
| | | homeCharThree: null, |
| | | dispose: [null, '', undefined], |
| | | }; |
| | | |
| | | interface stateType { |
| | | homeOne: Array <type> |
| | | } |
| | | interface type { |
| | | |
| | | } |
| | | interface User { |
| | | date: string |
| | | name: string |
| | | address: string |
| | | } |
| | | export default defineComponent({ |
| | | name: 'workCheckinRecord', |
| | | setup() { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const state = reactive<stateType>({}); |
| | | const multipleTableRef = ref<InstanceType<typeof ElTable>>() |
| | | const multipleSelection = ref<User[]>([]) |
| | | const handleSelectionChange = (val: User[]) => { |
| | | multipleSelection.value = val |
| | | } |
| | | const currentPage = ref(1) |
| | | const pageSize = ref(10) |
| | | const handleSizeChange = (val: number) => { |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | const tableData: User[] = [ |
| | | { |
| | | id: '11011', |
| | | worker: '吴海涛', |
| | | checkinTime: '2021-04-22 15:21:31', |
| | | remark: '' |
| | | }, |
| | | { |
| | | id: '11012', |
| | | worker: '吴沈峰', |
| | | checkinTime: '2021-04-22 15:21:31', |
| | | remark: '' |
| | | } |
| | | ] |
| | | const dialogDetails = ref(false) |
| | | const details = ref({}) |
| | | const viewDetails = (row)=> { |
| | | console.log(row,'row') |
| | | details.value = JSON.parse(JSON.stringify(row)) |
| | | console.log(details,'details') |
| | | dialogDetails.value = true |
| | | } |
| | | // 折线图 |
| | | const renderMenu = async (value: string) => { |
| | | Session.set('projectId',value) |
| | | userInfos.value.projectId = value |
| | | await initBackEndControlRoutes(); |
| | | }; |
| | | return { |
| | | renderMenu, |
| | | multipleTableRef, |
| | | tableData, |
| | | currentPage, |
| | | pageSize, |
| | | dialogDetails, |
| | | details, |
| | | viewDetails, |
| | | handleSizeChange, |
| | | handleCurrentChange, |
| | | Edit, |
| | | Delete, |
| | | Search, |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | </style> |