Your Name
2023-03-09 e62dd14590c140970b86801444c70b3e90892b4d
src/views/specialWorkSystem/specialIndex/index.vue
@@ -83,21 +83,21 @@
                      :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>
@@ -179,9 +179,9 @@
                          <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"/>
@@ -210,7 +210,7 @@
                            <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>
@@ -254,6 +254,7 @@
              </span>
          </template>
        </el-dialog>
        <video-detail ref="videoRef"></video-detail>
    </div>
</template>
@@ -264,7 +265,7 @@
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';
@@ -275,6 +276,7 @@
import axios from 'axios';
import * as echarts from "echarts";
import screenfull from "screenfull";
import VideoDetail from "/@/views/specialWorkSystem/specialIndex/components/videoDetail.vue";
// 定义接口来定义对象的类型
interface stateType {
@@ -331,6 +333,7 @@
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')),
@@ -348,6 +351,7 @@
        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,
@@ -393,6 +397,36 @@
                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',
@@ -495,6 +529,13 @@
                warning: 51,
                role: '监护人',
                isCard: 0
              },
              {
                name: '黄公子',
                dep: '有机事业部',
                warning: 69,
                role: '作业人',
                isCard: 1
              }
            ],
            reviewForm: {
@@ -513,6 +554,12 @@
        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'
@@ -522,13 +569,6 @@
        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);
@@ -827,7 +867,9 @@
        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) => {
@@ -855,12 +897,15 @@
            Finished,
            Download,
            FolderChecked,
            VideoPlay,
            reviewFormRef,
            videoRef,
            zyfb,
            slfx,
            zyqs,
            toFullscreen,
            handleReview,
            openVideo,
            submitReview,
            reLoadData,
            toApply,
@@ -937,12 +982,14 @@
        .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;
@@ -972,7 +1019,59 @@
        }
        .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%;
@@ -1329,6 +1428,14 @@
          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;
          }
@@ -1370,6 +1477,7 @@
          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;
@@ -1377,6 +1485,9 @@
              background-color: rgba(0,0,0,0) !important;
            }
          }
        }
        .el-button--text{
          color: #11FEEE;
        }
      }
    }
@@ -1395,11 +1506,15 @@
        }
      }
    }
    :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;
@@ -1416,6 +1531,14 @@
      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;
      }