From 3b75798cc41993f9016610296907d2338545a345 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 16 八月 2024 15:43:01 +0800
Subject: [PATCH] Default Changelist

---
 src/views/specialWorkSystem/specialIndex/index.vue |  389 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 216 insertions(+), 173 deletions(-)

diff --git a/src/views/specialWorkSystem/specialIndex/index.vue b/src/views/specialWorkSystem/specialIndex/index.vue
index dd9a486..08ce261 100644
--- a/src/views/specialWorkSystem/specialIndex/index.vue
+++ b/src/views/specialWorkSystem/specialIndex/index.vue
@@ -15,10 +15,38 @@
       </el-button>
     </div>
     <div class="topChart">
+<!--      <div class="chart-item">-->
+<!--        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>-->
+<!--        <div class="chart-tit">-->
+<!--          <span class="tit">各事业部关联作业分析</span>-->
+<!--          <div class="filter-part">-->
+<!--            <el-cascader :teleported="false" v-model="chartSearch2.depId" @change="changeDep2()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>-->
+<!--            <el-select v-model="chartSearch2.type" size="small" :teleported="false" @change="changeType2()">-->
+<!--              <el-option-->
+<!--                  v-for="item in workType1"-->
+<!--                  :key="item.id"-->
+<!--                  :label="item.name"-->
+<!--                  :value="item.id"-->
+<!--              />-->
+<!--            </el-select>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="chart" :id="slfx"></div>-->
+<!--      </div>-->
       <div class="chart-item">
         <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
         <div class="chart-tit">
-          <span class="tit">八大作业各分类分布图</span>
+          <span class="tit">特殊作业数量趋势</span>
+          <div class="filter-part filter-part2">
+            <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+          </div>
+        </div>
+        <div class="chart" :id="zyqs"></div>
+      </div>
+      <div class="chart-item">
+        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
+        <div class="chart-tit">
+          <span class="tit">作业分类分布图</span>
           <div class="filter-part filter-part2">
             <el-cascader :teleported="false" v-model="chartSearch1.depId" @change="changeDep1()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
           </div>
@@ -31,86 +59,53 @@
           <el-radio :label='365' border>近一年</el-radio>
         </el-radio-group>
       </div>
-      <div class="chart-item">
-        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
-        <div class="chart-tit">
-          <span class="tit">各事业部关联作业分析</span>
-          <div class="filter-part">
-            <el-cascader :teleported="false" v-model="chartSearch2.depId" @change="changeDep2()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
-            <el-select v-model="chartSearch2.type" size="small" :teleported="false" @change="changeType2()">
-              <el-option
-                  v-for="item in workType1"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="chart" :id="slfx"></div>
-      </div>
     </div>
-    <div class="topChart">
-      <div class="chart-item">
-        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
-        <div class="chart-tit">
-          <span class="tit">关联作业趋势图</span>
-          <div class="filter-part filter-part2">
-            <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
-          </div>
-        </div>
-        <div class="chart" :id="zyqs"></div>
-      </div>
-      <div class="chart-item">
-        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
-        <div class="chart-tit">
-          <span class="tit">作业警报记录</span>
-          <div class="filter-part">
-            <el-switch
-                v-model="chartSearch4.type"
-                inline-prompt
-                style="--el-switch-on-color: #13ce66; --el-switch-off-color: #13ce66"
-                active-text="作业人"
-                inactive-text="监护人"
-            />
-            <el-select :teleported="false" v-model="chartSearch4.period" size="small">
-              <el-option label="近7天" value="week"/>
-              <el-option label="近30天" value="month"/>
-              <el-option label="近90天" value="season"/>
-              <el-option label="近1年" value="year"/>
-            </el-select>
-            <el-select :teleported="false" v-model="chartSearch4.workType" size="small">
-              <el-option
-                  v-for="item in workType1"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="chart">
-          <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">
-              <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>
-    </div>
+<!--    <div class="topChart">-->
+<!--      <div class="chart-item">-->
+<!--        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>-->
+<!--        <div class="chart-tit">-->
+<!--          <span class="tit">关联作业趋势图</span>-->
+<!--          <div class="filter-part filter-part2">-->
+<!--            <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="chart" :id="zyqs"></div>-->
+<!--      </div>-->
+<!--      <div class="chart-item">-->
+<!--        <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>-->
+<!--        <div class="chart-tit">-->
+<!--          <span class="tit">作业警报记录</span>-->
+<!--          <div class="filter-part">-->
+<!--            <el-select :teleported="false" v-model="chartSearch4.days" size="small" @change="(value)=>changeTime4(value)">-->
+<!--              <el-option label="近7天" :value="7"/>-->
+<!--              <el-option label="近30天" :value="30"/>-->
+<!--              <el-option label="近90天" :value="90"/>-->
+<!--              <el-option label="近1年" :value="365"/>-->
+<!--            </el-select>-->
+<!--            <el-select :teleported="false" v-model="chartSearch4.workType" size="small" @change="changeType4()">-->
+<!--              <el-option-->
+<!--                  v-for="item in workType1"-->
+<!--                  :key="item.id"-->
+<!--                  :label="item.name"-->
+<!--                  :value="item.id"-->
+<!--              />-->
+<!--            </el-select>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="chart">-->
+<!--          <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }">-->
+<!--            <el-table-column property="operatorUname" label="姓名" align="center"/>-->
+<!--            <el-table-column property="deptName" label="所属部门" align="center"/>-->
+<!--            <el-table-column property="warningCount" label="异常报警次数" align="center"/>-->
+<!--          </el-table>-->
+<!--        </div>-->
+<!--      </div>-->
+<!--    </div>-->
     <div>
       <div class="homeCard">
         <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
         <el-row>
-          <el-col :span="5" style="display:flex;align-items: center">
+          <el-col :span="4" style="display:flex;align-items: center">
             <span style="white-space: nowrap">作业类型:</span>
             <div class="grid-content topInfo">
               <el-select :teleported="false" v-model="searchParams.workType" size="small">
@@ -123,7 +118,7 @@
               </el-select>
             </div>
           </el-col>
-          <el-col :span="5" style="display:flex;align-items: center">
+          <el-col :span="4" style="display:flex;align-items: center">
             <span style="white-space: nowrap">作业状态:</span>
             <div class="grid-content topInfo">
               <el-select :teleported="false" v-model="searchParams.workAllStatus" size="small">
@@ -136,14 +131,14 @@
               </el-select>
             </div>
           </el-col>
-          <el-col :span="5" style="display:flex;align-items: center">
-            <span style="white-space: nowrap">作业部门:</span>
-            <div class="grid-content topInfo">
-              <el-cascader :teleported="false" size="small" v-model="searchParams.workDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/>
-            </div>
-          </el-col>
+<!--          <el-col :span="4" style="display:flex;align-items: center">-->
+<!--            <span style="white-space: nowrap">作业部门:</span>-->
+<!--            <div class="grid-content topInfo">-->
+<!--              <el-cascader :teleported="false" size="small" v-model="searchParams.workDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/>-->
+<!--            </div>-->
+<!--          </el-col>-->
           <el-col :span="6" style="display:flex;align-items: center;">
-            <span style="white-space: nowrap;margin-left: 20px">申请时间:</span>
+            <span style="white-space: nowrap">申请时间:</span>
             <div class="grid-content topInfo">
               <el-date-picker
                   v-model="searchDate"
@@ -156,6 +151,22 @@
                   end-placeholder="结束日期"
                   format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss"
               />
+            </div>
+          </el-col>
+          <el-col :span="4" style="display:flex;align-items: center">
+            <span style="white-space: nowrap">作业票编号:</span>
+            <div class="grid-content topInfo">
+              <el-input
+                  v-model="searchParams.workPermitNo"
+                  placeholder="请输入作业票编号"
+                  size="small"
+              />
+            </div>
+          </el-col>
+          <el-col :span="4" style="display:flex;align-items: center">
+            <span style="white-space: nowrap">申请单位:</span>
+            <div class="grid-content topInfo">
+              <el-cascader :teleported="false" v-model="searchParams.applyDepId" @change="changeDep4()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
             </div>
           </el-col>
           <el-button type="primary" style="margin-left: 20px" @click="searchRecord" size="small">查询</el-button>
@@ -186,20 +197,35 @@
 <!--          </el-row>-->
           <el-table ref="multipleTableRef" stripe border :data="workData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }">
             <el-table-column property="workPermitNo" label="作业证编号" align="center"/>
-            <el-table-column property="workDepName" label="作业单位" align="center"/>
+            <el-table-column label="作业单位" align="center">
+              <template #default="scope">
+                <span v-if="scope.row.workDepList && scope.row.workDepList.length>0">{{scope.row.workDepList.map(i=>i.workDepName).join(',')}}</span>
+                <span v-else>{{scope.row.workDepName }}</span>
+              </template>
+            </el-table-column>
             <el-table-column property="applyUname" label="申请人" align="center"/>
             <el-table-column property="applyDepName" label="申请单位" align="center"/>
             <el-table-column property="applyTime" label="申请时间" align="center"/>
-            <el-table-column property="startUname" label="开始人" align="center">
+            <el-table-column property="workLocation" label="作业地点" align="center">
               <template #default="scope">
-                <span>{{scope.row.startUname?scope.row.startUname:'--'}}</span>
+                <span>{{scope.row.workLocation?scope.row.workLocation:'--'}}</span>
               </template>
             </el-table-column>
-            <el-table-column property="finishUname" label="结束人" align="center">
+            <el-table-column property="workContent" label="作业内容" align="center">
               <template #default="scope">
-                <span>{{scope.row.finishUname?scope.row.finishUname:'--'}}</span>
+                <span>{{scope.row.workContent?scope.row.workContent:'--'}}</span>
               </template>
             </el-table-column>
+<!--            <el-table-column property="startUname" label="开始人" align="center">-->
+<!--              <template #default="scope">-->
+<!--                <span>{{scope.row.startUname?scope.row.startUname:'&#45;&#45;'}}</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--            <el-table-column property="finishUname" label="结束人" align="center">-->
+<!--              <template #default="scope">-->
+<!--                <span>{{scope.row.finishUname?scope.row.finishUname:'&#45;&#45;'}}</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
             <el-table-column property="workStartTime" label="作业开始时间" align="center">
               <template #default="scope">
                 <span>{{scope.row.workStartTime?scope.row.workStartTime:'--'}}</span>
@@ -402,7 +428,8 @@
         workPermitNo: '',
         startTime: '',
         endTime: '',
-        workAllStatus: null
+        workAllStatus: null,
+        applyDepId: null
       },
       dialogReview: false,
       departmentList: [],
@@ -423,9 +450,9 @@
         depId: 1
       },
       chartSearch4: {
-        searchDep: null,
         startTime: '',
-        days: 30
+        days: 30,
+        workType: 1
       },
       searchDep2: null,
       searchDep: null,
@@ -440,7 +467,6 @@
         operators: []
       },
       casProps: {
-        expandTrigger: 'hover',
         emitPath: false,
         value: 'depId',
         label: 'depName',
@@ -457,7 +483,8 @@
         { id: 5, name: '断路作业' },
         { id: 6, name: '高处作业' },
         { id: 7, name: '临时用电作业' },
-        { id: 8, name: '盲板抽堵作业' }
+        { id: 8, name: '盲板抽堵作业' },
+        { id: 9, name: '打开作业' }
       ],
       workTypeList: [
         { id: 1, name: '动火作业' },
@@ -467,7 +494,8 @@
         { id: 5, name: '断路作业' },
         { id: 6, name: '高处作业' },
         { id: 7, name: '临时用电作业' },
-        { id: 8, name: '盲板抽堵作业' }
+        { id: 8, name: '盲板抽堵作业' },
+        { id: 9, name: '打开作业' }
       ],
       workStatusList: [
         {
@@ -485,29 +513,7 @@
       ],
       pieData: [],
       squareData: [],
-      warningData: [
-        {
-          name: '黄公子',
-          dep: '有机事业部',
-          warning: 69,
-          role: '作业人',
-          isCard: 1
-        },
-        {
-          name: '李飞飞',
-          dep: '有机事业部',
-          warning: 51,
-          role: '监护人',
-          isCard: 0
-        },
-        {
-          name: '黄公子',
-          dep: '有机事业部',
-          warning: 69,
-          role: '作业人',
-          isCard: 1
-        }
-      ],
+      warningData: [],
       reviewForm: {
         advice: ''
       },
@@ -523,28 +529,34 @@
       getTypePie()
       getWorkDep()
       getDepMonth()
+      getWarningList()
     });
     const initTime =()=>{
       state.chartSearch1.startTime = getPeriod(30)
       state.chartSearch2.startTime = getPeriod(30)
+      state.chartSearch4.startTime = getPeriod(30)
       state.endTime = formatDate(new Date())
     }
     const getPeriod =(num)=> {
       const currentDate = new Date();
       const startTime = new Date();
-      startTime.setDate(currentDate.getDate() - num);
+      startTime.setDate(currentDate.getDate() - num - 1);
       return formatDate(startTime)
     }
     const formatDate =(date)=> {
       const year = date.getFullYear().toString();
       const month = ('0' + (date.getMonth() + 1)).slice(-2);
       const day = ('0' + date.getDate()).slice(-2);
-      return `${year}-${month}-${day} 00:00:00`;
+      return `${year}-${month}-${day} 23:59:59`;
     }
     const changeTime1=(value:number)=>{
       state.chartSearch1.startTime = getPeriod(value)
-      console.log(state.chartSearch1.startTime,state.endTime,'结束段')
       getTypePie()
+    }
+    const changeTime4=(value:number)=>{
+      state.chartSearch4.startTime = getPeriod(value)
+      console.log(state.chartSearch4.startTime,state.endTime,'结束段')
+      getWarningList()
     }
     const changeDep1=()=>{
       getTypePie()
@@ -556,8 +568,14 @@
     const changeType2=()=>{
       getWorkDep()
     }
+    const changeType4=()=>{
+      getWarningList()
+    }
     const changeDep3=()=>{
       getDepMonth()
+    }
+    const changeDep4=()=>{
+      searchRecord()
     }
     const toFullscreen =()=>{
       const element = document.getElementById('bigScreen')
@@ -645,6 +663,22 @@
       if (res.data.code === '200') {
         state.workData = JSON.parse(JSON.stringify(res.data.data))
         state.totalSize = res.data.total
+      } else {
+        ElMessage({
+          type: 'warning',
+          message: res.data.msg
+        });
+      }
+    }
+    const getWarningList = async()=>{
+      const data = {
+        startTime: state.chartSearch4.startTime,
+        endTime: state.endTime,
+        workType:state.chartSearch4.workType
+      }
+      let res = await specialIndexApi().getWorkWarning(data)
+      if (res.data.code === '200') {
+        state.warningData = JSON.parse(JSON.stringify(res.data.data))
       } else {
         ElMessage({
           type: 'warning',
@@ -813,6 +847,7 @@
     }
     // 刷新
     const reLoadData = async () => {
+      state.pageIndex = 1
       getMydepList()
     };
 
@@ -864,6 +899,7 @@
 
     // 关键词查询记录
     const searchRecord = async () => {
+      state.pageIndex = 1
       getMydepList()
     };
     // 重置搜索
@@ -874,9 +910,11 @@
             workPermitNo: '',
             startTime: '',
             endTime: '',
-            workAllStatus: null
+            workAllStatus: null,
+            applyDepId: null
       }
       state.searchDate = []
+      state.pageIndex = 1
       getMydepList()
     };
 
@@ -1033,10 +1071,13 @@
       slfx,
       zyqs,
       changeTime1,
+      changeTime4,
       changeDep1,
       changeDep2,
       changeType2,
+      changeType4,
       changeDep3,
+      changeDep4,
       toFullscreen,
       // handleReview,
       openVideo,
@@ -1099,7 +1140,7 @@
     justify-content: space-between;
     align-items: flex-start;
     margin-bottom: 20px;
-    height: 40%;
+    height: 50%;
     &:last-of-type{
       margin-bottom: 0;
     }
@@ -1156,57 +1197,59 @@
       .chart{
         width: 100%;
         height: 85%;
+        overflow-y: scroll;
+        scrollbar-width: none; /* firefox */
+        -ms-overflow-style: none; /* IE 10+ */
         .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;
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
+          //: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{

--
Gitblit v1.9.2