| | |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | <el-button type="text" size="small">所有记录>></el-button> |
| | | </div> |
| | | </div> |
| | | <div class="chart"> |
| | | <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" :header-cell-style="isFull==true?{background: none}:{ background: '#fafafa' }"> |
| | | <el-table-column property="name" label="姓名" width="180" align="center"/> |
| | | <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }"> |
| | | <el-table-column property="name" label="姓名" align="center"/> |
| | | <el-table-column property="dep" label="所属部门" align="center"/> |
| | | <el-table-column property="warning" label="异常报警次数" align="center"/> |
| | | <el-table-column property="role" label="角色" align="center"/> |
| | | <el-table-column property="isCard" label="是否持证" align="center" width="180"> |
| | | <el-table-column property="isCard" label="是否持证" align="center"> |
| | | <template #default="scope"> |
| | | <span>{{scope.row.isCard == 1?'是':'否'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-button type="text" size="small" style="margin-top: 10px">所有记录>></el-button> |
| | | </div> |
| | | <!-- <div class="chart" :id="slfx"></div>--> |
| | | </div> |
| | |
| | | <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" /> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table ref="multipleTableRef" :data="workData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }"> |
| | | <el-table ref="multipleTableRef" stripe border :data="workData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }"> |
| | | <el-table-column property="num" label="作业证编号" align="center"/> |
| | | <el-table-column property="dep" label="部门" align="center"/> |
| | | <el-table-column property="dep" label="部门" align="center"/> |
| | | <el-table-column property="applyer" label="申请人" align="center"/> |
| | | <el-table-column property="worker" label="作业人" align="center"/> |
| | | <el-table-column property="type" label="作业类型" align="center"/> |
| | |
| | | <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="FolderChecked" @click="handleReview(scope.row)">验收</el-button> |
| | | <el-button link type="primary" size="small" :icon="FolderChecked" @click="handleReview(scope.row)">查看实时监控</el-button> |
| | | <el-button link type="primary" size="small" :icon="VideoPlay" @click="openVideo(scope.row)">查看实时监控</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | <video-detail ref="videoRef"></video-detail> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { useUserInfo } from '/@/stores/userInfo'; |
| | | import { Session } from '/@/utils/storage'; |
| | | import { useRouter } from 'vue-router'; |
| | | import { Edit, View, Plus, Delete, Refresh, Search, Finished, Download, FolderChecked } from '@element-plus/icons-vue'; |
| | | import { Edit, View, Plus, Delete, Refresh, Search, Finished, Download, FolderChecked, VideoPlay } from '@element-plus/icons-vue'; |
| | | import { ElTable, ElMessage } from 'element-plus'; |
| | | import { specialIndexApi } from '/@/api/specialWorkSystem/specialIndex'; |
| | | import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; |
| | |
| | | import axios from 'axios'; |
| | | import * as echarts from "echarts"; |
| | | import screenfull from "screenfull"; |
| | | import VideoDetail from "/@/views/specialWorkSystem/specialIndex/components/videoDetail.vue"; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface stateType { |
| | |
| | | export default defineComponent({ |
| | | name: 'specialIndex', |
| | | components: { |
| | | VideoDetail, |
| | | fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/fireLog.vue')), |
| | | space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/spaceLog.vue')), |
| | | hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/hoistLog.vue')), |
| | |
| | | const zyfb = ref("eChartZyfb" + Date.now() + Math.random()) |
| | | const slfx = ref("eChartSlfx" + Date.now() + Math.random()) |
| | | const zyqs = ref("eChartZyqs" + Date.now() + Math.random()) |
| | | const videoRef = ref(); |
| | | const state = reactive<stateType>({ |
| | | pageIndex1: 1, |
| | | pageSize1: 10, |
| | |
| | | reason: '分析超时', |
| | | warning: 0, |
| | | message: 1 |
| | | }, |
| | | { |
| | | num: '222', |
| | | dep: '部门2', |
| | | applyer: '张凤', |
| | | worker: '李羽飞', |
| | | type: '动土作业', |
| | | level: '一级', |
| | | applyTime: '2023-03-08', |
| | | startTime: '2023-03-08', |
| | | endTime: '2023-03-08', |
| | | status: 1, |
| | | reason: '分析超时', |
| | | warning: 1, |
| | | message: 0 |
| | | }, |
| | | { |
| | | num: '333', |
| | | dep: '部门3', |
| | | applyer: '张凤', |
| | | worker: '李羽飞', |
| | | type: '动火作业', |
| | | level: '一级', |
| | | applyTime: '2023-03-08', |
| | | startTime: '2023-03-08', |
| | | endTime: '2023-03-08', |
| | | status: 2, |
| | | reason: '分析超时', |
| | | warning: 2, |
| | | message: 0 |
| | | }, |
| | | { |
| | | num: '222', |
| | |
| | | warning: 51, |
| | | role: '监护人', |
| | | isCard: 0 |
| | | }, |
| | | { |
| | | name: '黄公子', |
| | | dep: '有机事业部', |
| | | warning: 69, |
| | | role: '作业人', |
| | | isCard: 1 |
| | | } |
| | | ], |
| | | reviewForm: { |
| | |
| | | initZyqs() |
| | | }); |
| | | const toFullscreen =()=>{ |
| | | const element = document.getElementById('bigScreen') |
| | | if (!screenfull.isEnabled) { |
| | | ElMessage.warning('暂不不支持全屏'); |
| | | return false; |
| | | } |
| | | screenfull.toggle(element); |
| | | state.isFull = !state.isFull |
| | | if(state.isFull == true){ |
| | | state.themeColor = '#11FEEE' |
| | |
| | | initZyfb() |
| | | initSlfx() |
| | | initZyqs() |
| | | console.log(state.isFull,'quanp',state.themeColor) |
| | | const element = document.getElementById('bigScreen') |
| | | if (!screenfull.isEnabled) { |
| | | ElMessage.warning('暂不不支持全屏'); |
| | | return false; |
| | | } |
| | | screenfull.toggle(element); |
| | | } |
| | | const getTypePie = async ()=>{ |
| | | let res = await specialIndexApi().analyseType(state.chartSearch1.startTime,state.chartSearch1.endTime,state.chartSearch1.searchDep); |
| | |
| | | const handleReview = (row)=>{ |
| | | state.dialogReview = true |
| | | } |
| | | |
| | | const openVideo = ()=>{ |
| | | videoRef.value.openDialog() |
| | | } |
| | | const submitReview = async (formEl: FormInstance | undefined) => { |
| | | if (!formEl) return |
| | | await formEl.validate((valid, fields) => { |
| | |
| | | Finished, |
| | | Download, |
| | | FolderChecked, |
| | | VideoPlay, |
| | | reviewFormRef, |
| | | videoRef, |
| | | zyfb, |
| | | slfx, |
| | | zyqs, |
| | | toFullscreen, |
| | | handleReview, |
| | | openVideo, |
| | | submitReview, |
| | | reLoadData, |
| | | toApply, |
| | |
| | | |
| | | .chart-tit{ |
| | | width: 100%; |
| | | height: 15%; |
| | | display: flex; |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | .tit{ |
| | | font-size: 1.33rem; |
| | | font-weight: bolder; |
| | | white-space: nowrap; |
| | | } |
| | | .filter-part{ |
| | | display: flex; |
| | |
| | | } |
| | | .chart{ |
| | | width: 100%; |
| | | height: 88%; |
| | | height: 85%; |
| | | .el-table{ |
| | | height: 90% !important; |
| | | :deep(.el-table__inner-wrapper){ |
| | | height: 100% !important; |
| | | .el-table__header-wrapper { |
| | | height: 20% !important; |
| | | .el-table__header{ |
| | | height: 100% !important; |
| | | th{ |
| | | height: 100% !important; |
| | | padding: 0 0 !important; |
| | | .cell{ |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .el-table__body-wrapper { |
| | | height: 80% !important; |
| | | .el-scrollbar__view{ |
| | | height: 100% !important; |
| | | .el-table__body{ |
| | | height: 100% !important; |
| | | tbody{ |
| | | height: 100% !important; |
| | | .el-table__row{ |
| | | height: 25% !important; |
| | | td{ |
| | | height: 25% !important; |
| | | padding: 0 0 !important; |
| | | .left-info{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .cell{ |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | .el-button{ |
| | | padding: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .el-radio-group{ |
| | | width: 20%; |
| | |
| | | background-color: rgba(10,31,92,1); |
| | | border: 1px solid rgba(17,254,238,.4); |
| | | color: #11FEEE; |
| | | .el-cascader-node{ |
| | | .in-active-path{ |
| | | background: #0049af; |
| | | } |
| | | &:hover{ |
| | | background: #0049af; |
| | | } |
| | | } |
| | | .el-cascader-node__label{ |
| | | color: #11FEEE; |
| | | } |
| | |
| | | background-color: rgba(0,0,0,0) !important; |
| | | :deep(thead){ |
| | | color: #11FEEE !important; |
| | | background-color: #092846 !important |
| | | } |
| | | :deep(tr){ |
| | | background-color: rgba(0,0,0,0) !important; |
| | |
| | | background-color: rgba(0,0,0,0) !important; |
| | | } |
| | | } |
| | | } |
| | | .el-button--text{ |
| | | color: #11FEEE; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | :deep(.el-range-separator){ |
| | | color: #11FEEE; |
| | | } |
| | | .el-table { |
| | | color: #11FEEE !important; |
| | | background-color: rgba(0,0,0,0) !important; |
| | | :deep(thead){ |
| | | color: #11FEEE !important; |
| | | background-color: #092846 !important |
| | | } |
| | | :deep(tr){ |
| | | background-color: rgba(0,0,0,0) !important; |
| | |
| | | background-color: rgba(10,31,92,1); |
| | | border: 1px solid rgba(17,254,238,.4); |
| | | color: #11FEEE; |
| | | .el-cascader-node{ |
| | | .in-active-path{ |
| | | background: #0049af; |
| | | } |
| | | &:hover{ |
| | | background: #0049af; |
| | | } |
| | | } |
| | | .el-cascader-node__label{ |
| | | color: #11FEEE; |
| | | } |