马宇豪
2025-03-04 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c
修改作业等级名称
已修改30个文件
521 ■■■■ 文件已修改
src/layout/navBars/breadcrumb/user.vue 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/intellectInspect/inspectIndex/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newHome/index.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/sbtj/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/sqjl/index.vue 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/open.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newSpecialWorkSystem/workTicket/zysq/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/flow/ruleofApp/components/approveRuleDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/flow/ruleofApp/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/foundationSet/goods/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/specialIndex/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/menu/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/navBars/breadcrumb/user.vue
@@ -1,7 +1,8 @@
<template>
    <div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }">
        <div class="logo">
            <img src="../../../assets/menu/companyLogo.png" />
      <!--            <img src="../../../assets/menu/companyLogo.png" />-->
      <h2>智能安全数字化平台</h2>
            <span>{{ systemName }}</span>
        </div>
        <div style="display: flex; align-items: center; padding-right: 5px">
@@ -12,9 +13,17 @@
                </div>
                <template #dropdown>
                    <el-dropdown-menu>
                        <el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item>
                        <el-dropdown-item command="default" :disabled="disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item>
                        <el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item>
            <el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{
                $t('message.user.dropdownLarge')
              }}
            </el-dropdown-item>
            <el-dropdown-item command="default" :disabled="disabledSize === 'default'">
              {{ $t('message.user.dropdownDefault') }}
            </el-dropdown-item>
            <el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{
                $t('message.user.dropdownSmall')
              }}
            </el-dropdown-item>
                    </el-dropdown-menu>
                </template>
            </el-dropdown>
@@ -53,11 +62,13 @@
            <!--            </el-popover>-->
            <!--        </div>-->
            <div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick">
                <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
        <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')"
           :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
            </div>
            <el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
                <span class="layout-navbars-breadcrumb-user-link">
                    <img src="../../../assets/avator.png" class="layout-navbars-breadcrumb-user-link-photo mr5" style="width: 24px;height: 24px"/>
                    <img src="../../../assets/avator.png" class="layout-navbars-breadcrumb-user-link-photo mr5"
                         style="width: 24px;height: 24px"/>
                    {{ userInfos.userName }}
                    <el-icon class="el-icon--right">
                        <ele-ArrowDown />
@@ -117,7 +128,13 @@
import { useMenuApi } from '/@/api/systemManage/menu/index';
const menuApi = useMenuApi();
import { backEndComponent, getBackEndControlRoutes, initBackEndControlRoutes, setAddRoute, setFilterMenuAndCacheTagsViewRoutes } from '../../../router/backEnd';
import {
  backEndComponent,
  getBackEndControlRoutes,
  initBackEndControlRoutes,
  setAddRoute,
  setFilterMenuAndCacheTagsViewRoutes
} from '../../../router/backEnd';
import { NextLoading } from '/@/utils/loading';
import { useRequestOldRoutes } from '/@/stores/requestOldRoutes';
import { dynamicRoutes } from '/@/router/route';
@@ -277,7 +294,8 @@
                            });
                        }
                    })
                    .catch(() => {});
            .catch(() => {
            });
            } else if (path === 'wareHouse') {
                window.open('https://gitee.com/lyt-top/vue-next-admin');
            } else {
@@ -393,15 +411,26 @@
<style scoped lang="scss">
    @media screen and (min-width: 1400px) {
        .logo{
    display: flex;
    align-items: center;
            img {
                height: 100%;
            }
            span{
                font-size: 32px;
    h2 {
      width: 220px;
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      font-weight: bolder;
      text-align: center;
                color: #409eff;
    }
    span {
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      color: #333;
                font-weight: bolder;
                border-left: 2px solid #409eff;
                padding-left: 10px
      padding-left: 15px
            }
        }
        .backBtn {
@@ -415,17 +444,29 @@
            }
        }
    }
    @media screen and (min-width: 1200px) and (max-width: 1400px) {
        .logo{
    display: flex;
    align-items: center;
            img {
                height: 90%;
      height: 100%;
            }
            span{
                font-size: 28px;
    h2 {
      width: 220px;
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      font-weight: bolder;
      text-align: center;
                color: #409eff;
    }
    span {
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      color: #333;
                font-weight: bolder;
                border-left: 2px solid #409eff;
                padding-left: 10px
      padding-left: 15px
            }
        }
        .backBtn {
@@ -439,18 +480,29 @@
            }
        }
    }
    @media screen and (max-width: 1024px) {
        .logo{
    display: flex;
    align-items: center;
            img {
                width: 60%;
                height: auto;
      height: 100%;
            }
            span{
                font-size: 22px;
    h2 {
      width: 220px;
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      font-weight: bolder;
      text-align: center;
                color: #409eff;
    }
    span {
      font-size: clamp(1.25rem, 0.833rem + 0.56vw, 1.5rem);
      color: #333;
                font-weight: bolder;
                border-left: 2px solid #409eff;
                padding-left: 10px
      padding-left: 15px
            }
        }
        .backBtn {
@@ -464,6 +516,7 @@
            }
        }
    }
    .layout-navbars-breadcrumb-user {
        display: flex;
        align-items: center;
@@ -471,23 +524,26 @@
        .logo {
            height: 75%;
            padding: 5px 10px;
    padding: 5px 0;
            display: flex;
            align-items: center;
            overflow: hidden;
            box-sizing: border-box;
        }
        &-link {
            height: 100%;
            display: flex;
            align-items: center;
            white-space: nowrap;
            &-photo {
                width: 25px;
                height: 25px;
                border-radius: 100%;
            }
        }
        &-icon {
            padding: 0 10px;
            cursor: pointer;
@@ -496,23 +552,28 @@
            line-height: 80px;
            display: flex;
            align-items: center;
            &:hover {
                background: var(--next-color-user-hover);
                i {
                    display: inline-block;
                    animation: logoAnimation 0.3s ease-in-out;
                }
            }
        }
        ::v-deep(.el-dropdown) {
            color: var(--next-bg-topBarColor);
        }
        ::v-deep(.el-badge) {
            height: 40px;
            line-height: 40px;
            display: flex;
            align-items: center;
        }
        ::v-deep(.el-badge__content.is-fixed) {
            top: 12px;
        }
src/views/intellectInspect/inspectIndex/index.vue
@@ -667,7 +667,6 @@
                  }
                }
                state.depList = newList
                console.log(state.depList,'3434')
            } else {
                ElMessage({
                    type: 'warning',
src/views/newHome/index.vue
@@ -4,11 +4,13 @@
        <div class="topPanelBg"></div>
        <div class="topPanelCont">
            <div class="topLogo">
                <img src="../../assets/newMenu/toplogo.png" />
        <!--                <img src="../../assets/newMenu/toplogo.png" />-->
        <span style="font-size: 18px;color: #fff">智能安全数字化平台</span>
            </div>
            <div class="userInfo">
                <div @click="onScreenfullClick" style="margin-right: 15px; cursor: pointer">
                    <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
          <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')"
             :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
                </div>
                <div class="loginOut" @click="onLoginOut">退出登录</div>
                <span></span>
@@ -174,7 +176,7 @@
<!--                  </div>-->
<!--                  <img class="bgImg" src="../../assets/newMenu/card-13.png" />-->
<!--                </div>-->
                <div class="grid-content cont-bg-2" @click="render('1')">
        <div class="grid-content cont-bg-1" @click="render('1')">
                    <div class="toplayer">
                        <img class="iconImg" src="../../assets/newMenu/icon11.png" />
                        <div>
@@ -339,7 +341,8 @@
                        });
                    }
                })
                .catch(() => {});
          .catch(() => {
          });
        };
        //选择菜单
        const render = (value: string) => {
@@ -480,18 +483,21 @@
            top: 60px;
        }
    }
    @keyframes moveDown {
        100% {
            position: absolute;
            top: 0;
        }
    }
    @keyframes moveRight {
        100% {
            position: absolute;
            left: 0;
        }
    }
    @keyframes upDown {
        50% {
            -webkit-transform: translateY(-8px);
@@ -506,15 +512,17 @@
            transform: translateY(0);
        }
    }
@media screen and (min-width: 1600px) {
    .gridCont {
        width: 100%;
        display: grid;
        grid-gap: 20px;
        grid-template-columns: repeat(3, 1fr);
    grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(5, 200px);
        grid-auto-flow: row;
        justify-content: center;
        .toplayer {
            width: 100%;
            height: 100%;
@@ -533,6 +541,7 @@
                height: 40%;
                color: #072270;
            }
            .enTit {
                font-size: 16px;
                line-height: 20px;
@@ -545,6 +554,7 @@
                margin-right: 20px;
            }
        }
        .bgImg {
            position: absolute;
            width: 30%;
@@ -581,12 +591,14 @@
                color: #072270;
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 18px;
                line-height: 24px;
                color: #072270;
            }
        }
        .bgImg1 {
            position: absolute;
            width: 45%;
@@ -607,7 +619,7 @@
        width: 100%;
        display: grid;
        grid-gap: 15px;
        grid-template-columns: repeat(3, 1fr);
    grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(5, 120px);
        grid-auto-flow: row;
        justify-content: center;
@@ -630,6 +642,7 @@
                color: #072270;
                margin-bottom: 2px;
            }
            .enTit {
                font-size: 12px;
                color: #072270;
@@ -641,6 +654,7 @@
                margin-right: 10px;
            }
        }
        .bgImg {
            position: absolute;
            width: 30%;
@@ -677,11 +691,13 @@
                color: #072270;
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 14px;
                color: #072270;
            }
        }
        .bgImg1 {
            position: absolute;
            width: 45%;
@@ -695,12 +711,13 @@
        color: #333;
    }
}
@media screen and (max-width: 1200px) {
    .gridCont {
        width: 100%;
        display: grid;
        grid-gap: 10px;
        grid-template-columns: repeat(3, 1fr);
    grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(5, 96px);
        grid-auto-flow: row;
        justify-content: center;
@@ -721,6 +738,7 @@
                line-height: 22px;
                color: #072270;
            }
            .enTit {
                font-size: 10px;
                line-height: 14px;
@@ -733,6 +751,7 @@
                margin-right: 10px;
            }
        }
        .bgImg {
            position: absolute;
            width: 45%;
@@ -769,11 +788,13 @@
                color: #072270;
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 12px;
                color: #072270;
            }
        }
        .bgImg1 {
            position: absolute;
            width: 45%;
@@ -787,11 +808,13 @@
        color: #333;
    }
}
.login-container {
    width: 100%;
    height: 100%;
    position: relative;
    background: #fff;
    .topPanel {
        width: 100%;
        height: 260px;
@@ -801,6 +824,7 @@
        justify-content: center;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .topPanelBg {
        position: absolute;
        width: 100%;
@@ -811,11 +835,12 @@
        z-index: 9;
        animation: moveDown 0.6s 1 ease forwards;
    }
    .topPanelCont {
        position: absolute;
        width: 100%;
        height: 60px;
        padding: 0 50px;
    padding: 0 50px 0 0;
        top: -60px;
        left: 0;
        display: flex;
@@ -827,10 +852,17 @@
        .topLogo {
            display: flex;
            align-items: center;
      width: 220px;
            img {
                width: 146px;
                height: auto;
      }
      span {
        width: 100%;
        text-align: center;
            }
        }
@@ -847,6 +879,7 @@
                    height: 20px;
                    border-radius: 10px;
                }
                div {
                    font-size: 15px;
                    color: #333333;
@@ -854,12 +887,14 @@
                    margin-left: 6px;
                }
            }
            span {
                width: 1px;
                height: 20px;
                background: #999;
                margin: 0 15px;
            }
            .loginOut {
                font-size: 15px;
                color: #333;
@@ -872,6 +907,7 @@
            }
        }
    }
    .leftCont {
        position: absolute;
        left: -100px;
@@ -883,6 +919,7 @@
        background-size: 100% 100%;
        animation: moveRight .8s 1 ease forwards;
    }
    .topCont {
        position: absolute;
        width: 100%;
@@ -927,12 +964,14 @@
                .time {
                    font-size: 48px;
                }
                & > span {
                    width: 1px;
                    height: 40px;
                    margin: 0 15px;
                    background: #fff;
                }
                .today {
                    display: flex;
                    flex-direction: column;
@@ -948,12 +987,14 @@
                }
            }
        }
        .line {
            width: 120px;
            height: 6px;
            background: #00eeff;
        }
    }
    .menuGrid {
        width: calc(100vw - 220px);
        height: calc(100vh - 320px);
@@ -961,11 +1002,10 @@
        position: absolute;
        top: 260px;
        left: 220px;
      overflow: hidden;
      overflow-y: scroll;
        .gridCont {
            .grid-content {
                border-radius: 16px;
        border-radius: 8px;
                position: relative;
                overflow: hidden;
                cursor: pointer;
@@ -984,9 +1024,11 @@
                    }
                }
            }
            .cont-bg-1 {
                background: #d9eaff;
            }
            .cont-bg-2 {
                background: #cdd6ff;
            }
@@ -1000,6 +1042,7 @@
            /*}*/
        }
    }
    .bot-rights {
        width: calc(100vw - 240px);
        height: 60px;
@@ -1015,6 +1058,7 @@
            width: 248px;
            height: 8px;
        }
        div {
            margin: 0 20px;
        }
src/views/newSpecialWorkSystem/workTicket/sbtj/index.vue
@@ -31,7 +31,7 @@
                  </div>
                </div>
                <el-table :data="tableData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }">
                  <el-table-column property="seDepName" label="事业部" align="center"/>
                  <el-table-column property="seDepName" label="部门" align="center"/>
                  <el-table-column property="totalCount" label="总数" align="center"/>
                  <el-table-column v-for="workType in workTypes" :key="workType.workType" :label="workType.workTypeDesc" :prop="`list.${workType.workType - 1}.count`"></el-table-column>
                </el-table>
src/views/newSpecialWorkSystem/workTicket/sqjl/index.vue
@@ -6,22 +6,25 @@
                    <el-row class="homeCard">
                     <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>时间筛选:</span>
                        <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime()" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
          <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime()"
                          range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"/>
                      </div>
                      <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>负责人:</span>
                        <el-input v-model.trim="searPara.headUserName" placeholder="负责人"/>
                      </div>
                      <div class="basic-line">
                        <span>事业部:</span>
                        <el-select v-model="searPara.secondDepId">
                          <el-option
                              v-for="item in dep4List"
                              :key="item.id"
                              :label="item.name"
                              :value="item.id"
                          />
                        </el-select>
          <span>部门:</span>
          <!--                        <el-select v-model="searPara.secondDepId">-->
          <!--                          <el-option-->
          <!--                              v-for="item in dep4List"-->
          <!--                              :key="item.id"-->
          <!--                              :label="item.name"-->
          <!--                              :value="item.id"-->
          <!--                          />-->
          <!--                        </el-select>-->
          <el-cascader :teleported="false" v-model="searPara.secondDepId" :options="departmentList" :props="casProps"
                       :show-all-levels="false"/>
                      </div>
                      <div class="basic-line">
                        <span>作业类型:</span>
@@ -56,7 +59,8 @@
                                </el-col>
                                <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
                            </el-row>
                            <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
          <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)"
                    :header-cell-style="{ background: '#fafafa' }">
                              <el-table-column property="workPermitNo" label="作业编号" align="center">
                                <template #default="scope">
                                  {{scope.row.workPermitNo?scope.row.workPermitNo:'—'}}
@@ -68,23 +72,36 @@
                                <el-table-column property="workTypeDesc" 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-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="headList" label="负责人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.headList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.headList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="operatorList" label="作业人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.operatorList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.operatorList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="guardianList" label="监护人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.guardianList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.guardianList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="expStartTime" label="作业开始时间" align="center"/>
@@ -113,15 +130,22 @@
                                    <template #default="scope">
<!--                                        <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">作废</el-button>-->
                                        <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                                        <el-button v-if="(scope.row.working?.workAllStatus == 3 || scope.row.working?.workAllStatus == 4 || scope.row.working?.workAllStatus == 5)&&!scope.row.renewalWorkApplyId" link type="primary" size="small" :icon="Edit" @click="continueRecord(scope.row)">一键续票</el-button>
                <el-button
                    v-if="(scope.row.working?.workAllStatus == 3 || scope.row.working?.workAllStatus == 4 || scope.row.working?.workAllStatus == 5)&&!scope.row.renewalWorkApplyId"
                    link type="primary" size="small" :icon="Edit" @click="continueRecord(scope.row)">一键续票
                </el-button>
<!--                                        <el-button link type="success" size="small" :icon="Finished">修改</el-button>-->
<!--                                        <el-button link type="success" size="small" :icon="Download">正式办票</el-button>-->
                                        <el-button link type="primary" size="small" :icon="Download" @click="downLoadRecord(scope.row)">作业票预览</el-button>
                <el-button link type="primary" size="small" :icon="Download" @click="downLoadRecord(scope.row)">
                  作业票预览
                </el-button>
                                    </template>
                                </el-table-column>
                            </el-table>
                            <div class="pageBtn">
                                <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
            <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]"
                           small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1"
                           @size-change="handleSizeChange1" @current-change="handleCurrentChange1"/>
                            </div>
                        </div>
                    </div>
@@ -321,15 +345,19 @@
    searPara: {}
    timeRange: Array<string>;
    lists: {}
  casProps: {}
}
interface type {
    id: number;
    name: string;
}
interface DepartmentState {
    depId: number;
    depName: string;
}
export default defineComponent({
    name: 'applys',
    components: {
@@ -352,11 +380,16 @@
            lists: {
              workerList: [],
              departList: [],
              departList2: [],
              deviceList: [],
              otherWorks: [],
              spList: [],
              riskList: []
      },
      casProps: {
        emitPath: false,
        value: 'depId',
        label: 'depName',
        checkStrictly: true
            },
            pageIndex1: 1,
            pageSize1: 10,
@@ -563,7 +596,6 @@
                state.departmentList = JSON.parse(JSON.stringify(res.data.data))
                recursion(state.departmentList);
                state.lists.departList = state.departmentList
                state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
            } else {
                ElMessage({
                    type: 'warning',
@@ -713,7 +745,11 @@
      }
      const getOtherWork = async () => {
        let res = await workApplyApi().getOtherWork({pageSize: 999, pageIndex: 1, searchParams: {workPermitNo: '', workType: null}})
      let res = await workApplyApi().getOtherWork({
        pageSize: 999,
        pageIndex: 1,
        searchParams: {workPermitNo: '', workType: null}
      })
        if (res.data.code === '200') {
          state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
        } else {
@@ -795,7 +831,13 @@
        // 导出方法
        const downLoadRecord = (row: any) => {
            // let res = await workApplyApi().postPrinting(data);
            axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/down/load/pdf`,{ id: row.id},{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
      axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/down/load/pdf`, {id: row.id}, {
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `${Cookies.get('token')}`,
          'uid': `${Cookies.get('uid')}`
        }, responseType: 'blob'
      }).then(res => {
                if (res) {
                    const link = document.createElement('a')
                    let blob = new Blob([res.data],{type: 'application/pdf'})
@@ -883,6 +925,7 @@
    height: calc(100vh - 144px);
    box-sizing: border-box;
    overflow: hidden;
    .demo-tabs {
        width: 100%;
        height: 100%;
@@ -895,6 +938,7 @@
            height: 100%;
        }
    }
    .homeCard {
        width: 100%;
        padding: 20px;
@@ -905,15 +949,18 @@
        .main-card {
            width: 100%;
            height: 100%;
            .cardTop {
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn {
                    margin: 0;
                }
            }
            .pageBtn {
                height: 60px;
                display: flex;
@@ -923,15 +970,18 @@
                .demo-pagination-block + .demo-pagination-block {
                    margin-top: 10px;
                }
                .demo-pagination-block .demonstration {
                    margin-bottom: 16px;
                }
            }
        }
        &:last-of-type {
            height: calc(100% - 130px);
        }
    }
    .stepItem {
        display: flex;
        align-items: flex-start;
@@ -941,13 +991,16 @@
        padding-left: 40px;
        border-left: 1px solid #a0cfff;
        position: relative;
        &:first-of-type {
            margin-top: 30px;
        }
        &:first-of-type {
            margin-bottom: 0;
            border-left: none;
        }
        .stepNum {
            position: absolute;
            width: 40px;
@@ -963,6 +1016,7 @@
            top: -30px;
            background: #d9ecff;
        }
        .stepCard {
            width: 100%;
            margin-top: -30px;
@@ -999,6 +1053,7 @@
                        margin-bottom: 0;
                    }
                }
                .approveUnit {
                    width: 100%;
                    font-size: 14px;
@@ -1007,6 +1062,7 @@
                    border: 1px solid #fff;
                    background: #ecf8ff;
                    border-radius: 6px;
                    .item-tit {
                        width: 100%;
                        display: flex;
@@ -1018,15 +1074,18 @@
                        & > span {
                            flex: 1;
                            &:last-of-type{
                                text-align: center;
                            }
                        }
                        & > div {
                            flex: 1;
                            text-align: center;
                        }
                    }
                    .item-cont {
                        width: 100%;
                        display: flex;
@@ -1037,10 +1096,12 @@
                        & > span {
                            flex: 1;
                            &:last-of-type{
                                text-align: center;
                            }
                        }
                        & > div {
                            flex: 1;
                            text-align: center;
@@ -1051,19 +1112,23 @@
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                span {
                                    width: 45%;
                                    &:first-of-type {
                                        width: 30%;
                                    }
                                }
                            }
                        }
                        &:last-of-type {
                            border-bottom: 0;
                        }
                    }
                }
                .approveItem {
                    width: 100%;
                    font-size: 14px;
@@ -1072,6 +1137,7 @@
                    background: #ecf8ff;
                    border: 1px solid #fff;
                    border-radius: 6px;
                    .item-tit {
                        width: 100%;
                        display: flex;
@@ -1084,11 +1150,13 @@
                        & > span {
                            flex: 1;
                        }
                        & > div {
                            flex: 2;
                            text-align: center;
                        }
                    }
                    .item-cont {
                        width: 100%;
                        display: flex;
@@ -1100,6 +1168,7 @@
                        & > span {
                            flex: 1;
                        }
                        & > div {
                            flex: 2;
                            text-align: center;
@@ -1111,14 +1180,17 @@
                                justify-content: center;
                                align-items: flex-start;
                                margin-bottom: 10px;
                                span {
                                    width: 50%;
                                    &:first-of-type {
                                        width: 25%;
                                    }
                                }
                            }
                        }
                        &:last-of-type {
                            border-bottom: 0;
                        }
@@ -1126,21 +1198,26 @@
                }
            }
        }
        &:hover .card-header {
            color: #0098f5;
        }
        &:hover .stepNum {
            border: 2px solid #0098f5;
            color: #0098f5;
        }
    }
    .el-row {
        display: flex;
        align-items: center;
        margin-bottom: 20px;
        &:last-child {
            margin-bottom: 0;
        }
        .grid-content {
            align-items: center;
            min-height: 36px;
@@ -1158,6 +1235,7 @@
            }
        }
    }
    .el-card {
        border: 0;
    }
src/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -645,7 +645,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -680,7 +680,7 @@
      const findParent = ()=>{
        // state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
        // state.form.seDepId = state.form.depIdList[0]
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      const singleSelect=(value,type)=>{
src/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -610,7 +610,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -365,7 +365,7 @@
            value: 6
          },
          {
            label: "特级高处作业",
            label: "四级高处作业",
            value: 7
          }
        ],
@@ -544,7 +544,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -615,7 +615,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
src/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -692,7 +692,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue
@@ -657,7 +657,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue
@@ -6,7 +6,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="applyDepId">
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -552,7 +552,7 @@
      }
      const findParent = ()=>{
        state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
        state.form.seDepId = findTopLevelId(props.lists.departList,state.form.applyDepId)
      }
      function findTopLevelId(tree, targetId) {
src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
@@ -6,22 +6,16 @@
                    <el-row class="homeCard">
                      <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>时间筛选:</span>
                        <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
          <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime"
                          range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"/>
                      </div>
                      <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>负责人:</span>
                        <el-input v-model="searPara.headUserName" placeholder="负责人"/>
                      </div>
                      <div class="basic-line">
                        <span>事业部:</span>
                        <el-select v-model="searPara.secondDepId">
                          <el-option
                              v-for="item in dep4List"
                              :key="item.id"
                              :label="item.name"
                              :value="item.id"
                          />
                        </el-select>
          <span>部门:</span>
          <el-cascader :teleported="false" v-model="searPara.secondDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/>
                      </div>
                      <div class="basic-line">
                        <span>作业类型:</span>
@@ -55,35 +49,49 @@
                                </el-col>
                                <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
                            </el-row>
                            <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
          <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)"
                    :header-cell-style="{ background: '#fafafa' }">
                                <el-table-column property="workPermitNo" label="作业编号" align="center">
                                  <template #default="scope">
                                    {{scope.row.workPermitNo?scope.row.workPermitNo:'—'}}
                                  </template>
                                </el-table-column>
                                <el-table-column property="seDepName" label="事业部" align="center"/>
            <el-table-column property="seDepName" label="部门" align="center"/>
                                <el-table-column property="applyDepName" label="作业所在车间" align="center"/>
                                <el-table-column property="workContent" label="作业内容" align="center"/>
                                <el-table-column property="workTypeDesc" 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-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="headList" label="负责人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.headList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.headList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="operatorList" label="作业人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.operatorList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.operatorList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="guardianList" label="监护人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.guardianList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
                {{
                  scope.row.guardianList.map(i => {
                    return i.userName + '(' + i.phone + ')'
                  }).join(',')
                }}
                                  </template>
                                </el-table-column>
                                <el-table-column property="expStartTime" label="作业开始时间" align="center"/>
@@ -105,26 +113,37 @@
                                </el-table-column>
                                <el-table-column label="风险研判" align="center">
                                    <template #default="scope">
                                        <el-button v-if="scope.row.status == 0" link type="primary" size="small" @click="openReport('上传', scope.row)">上传研判报告</el-button>
                <el-button v-if="scope.row.status == 0" link type="primary" size="small"
                           @click="openReport('上传', scope.row)">上传研判报告
                </el-button>
                                        <el-tag type="danger" v-else-if="scope.row.status == 15">已取消</el-tag>
                                        <el-tag type="danger" v-else-if="scope.row.status == 16">已废止</el-tag>
                                        <el-button v-else link type="primary" size="small" @click="openReport('查看', scope.row)">查看研判报告</el-button>
                <el-button v-else link type="primary" size="small" @click="openReport('查看', scope.row)">查看研判报告
                </el-button>
                                    </template>
                                </el-table-column>
                                <el-table-column fixed="right" label="操作" align="center" width="150">
                                    <template #default="scope">
                                        <span v-if="scope.row.status == 16">已废止</span>
                                        <span v-if="scope.row.status == 15">已取消</span>
                                        <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small" :icon="Delete" @click="abortRecordBtn(scope.row)">取消</el-button>
                <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small"
                           :icon="Delete" @click="abortRecordBtn(scope.row)">取消
                </el-button>
                                        <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                                        <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="primary" size="small" v-throttle :icon="Edit" @click="openEdit(scope.row)">修改</el-button>
                                        <el-button link type="success" v-throttle v-if="scope.row.status == 0 || scope.row.status == 1" size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票</el-button>
                <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="primary" size="small"
                           v-throttle :icon="Edit" @click="openEdit(scope.row)">修改
                </el-button>
                <el-button link type="success" v-throttle v-if="scope.row.status == 0 || scope.row.status == 1"
                           size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票
                </el-button>
<!--                                        <el-button :disabled="scope.row.status == 7 ? false : true" link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出作业票</el-button>-->
                                    </template>
                                </el-table-column>
                            </el-table>
                            <div class="pageBtn">
                                <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
            <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]"
                           small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1"
                           @size-change="handleSizeChange1" @current-change="handleCurrentChange1"/>
                            </div>
                        </div>
                    </div>
@@ -202,15 +221,19 @@
    timeRange: Array<string>;
    dep4List: Array<type>;
    lists: {}
  casProps: {}
}
interface type {
    id: number;
    name: string;
}
interface DepartmentState {
    depId: number;
    depName: string;
}
export default defineComponent({
    name: 'myApply',
    components: {
@@ -257,6 +280,12 @@
              headUserName: '',
              secondDepId: null
            },
      casProps: {
        emitPath: false,
        value: 'depId',
        label: 'depName',
        checkStrictly: true
      },
            timeRange: [],
            applyData: [],
            workTimeList: [],
@@ -293,12 +322,7 @@
            spList: [],
            riskList: []
          },
          dep4List: [
            {id:49,name:'电石事业部'},
            {id:50,name:'电力事业部'},
            {id:48,name:'有机化工事业部'},
            {id:32,name:'甲醇事业部'}
          ],
      dep4List: [],
          statusList: [
            {
              value: 0,
@@ -534,7 +558,7 @@
                state.departmentList = JSON.parse(JSON.stringify(res.data.data))
                recursion(state.departmentList);
                state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
                state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
        // state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
            } else {
                ElMessage({
                    type: 'warning',
@@ -543,7 +567,11 @@
            }
        };
        const getOtherWork = async () => {
          let res = await workApplyApi().getOtherWork({pageSize: 999, pageIndex: 1, searchParams: {workPermitNo: '', workType: null}})
      let res = await workApplyApi().getOtherWork({
        pageSize: 999,
        pageIndex: 1,
        searchParams: {workPermitNo: '', workType: null}
      })
          if (res.data.code === '200') {
            state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
          } else {
@@ -713,7 +741,17 @@
        // 导出方法
        const exportSheet = async () => {
            // let res = await workApplyApi().postPrinting(data);
            axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/export/excel`,{startTime: state.searPara.startTime,endTime: state.searPara.endTime,secondDepId: state.searPara.secondDepId},{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
      axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/export/excel`, {
        startTime: state.searPara.startTime,
        endTime: state.searPara.endTime,
        secondDepId: state.searPara.secondDepId
      }, {
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `${Cookies.get('token')}`,
          'uid': `${Cookies.get('uid')}`
        }, responseType: 'blob'
      }).then(res => {
                if (res) {
                    const link = document.createElement('a')
                    let blob = new Blob([res.data],{type: 'application/excel'})
@@ -813,6 +851,7 @@
    height: calc(100vh - 144px);
    box-sizing: border-box;
    overflow: hidden;
    .demo-tabs {
        width: 100%;
        height: 100%;
@@ -825,6 +864,7 @@
            height: 100%;
        }
    }
    .homeCard {
        width: 100%;
        padding: 20px;
@@ -835,15 +875,18 @@
        .main-card {
            width: 100%;
            height: 100%;
            .cardTop {
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn {
                    margin: 0;
                }
            }
            .pageBtn {
                height: 60px;
                display: flex;
@@ -853,22 +896,27 @@
                .demo-pagination-block + .demo-pagination-block {
                    margin-top: 10px;
                }
                .demo-pagination-block .demonstration {
                    margin-bottom: 16px;
                }
            }
        }
        &:last-of-type {
            height: calc(100% - 130px);
        }
    }
    .el-row {
        display: flex;
        align-items: center;
        margin-bottom: 20px;
        &:last-child {
            margin-bottom: 0;
        }
        .grid-content {
            align-items: center;
            min-height: 36px;
@@ -886,6 +934,7 @@
            }
        }
    }
    .el-card {
        border: 0;
    }
src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -114,7 +114,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -566,7 +566,6 @@
        analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -140,7 +140,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -595,7 +595,6 @@
        analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -97,7 +97,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -552,7 +552,6 @@
        headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -120,7 +120,7 @@
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -359,7 +359,7 @@
            value: 6
          },
          {
            label: "特级高处作业",
            label: "四级高处作业",
            value: 7
          }
        ],
@@ -484,7 +484,6 @@
        headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -154,7 +154,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -562,7 +562,6 @@
        analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/open.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -97,7 +97,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -534,7 +534,6 @@
        headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
@@ -207,7 +207,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -609,7 +609,6 @@
        headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -157,7 +157,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple filterable clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -549,7 +549,6 @@
        analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
@@ -5,7 +5,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="作业申请单位" prop="depIdList">
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
            <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -126,7 +126,7 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定执法仪" prop="cameraIds">
          <el-form-item label="绑定执法仪">
            <el-select v-model="form.cameraIds" multiple clearable>
              <el-option
                  v-for="item in lists.deviceList"
@@ -487,7 +487,6 @@
        analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
@@ -94,7 +94,6 @@
        lists: {
          workerList: [],
          departList: [],
          departList2: [],
          deviceList: [],
          otherWorks: [],
          spList: [],
@@ -234,7 +233,6 @@
                    // state.departmentList = JSON.parse(JSON.stringify(res.data.data))
          // state.departmentList2 = state.departmentList[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50)
          state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
          state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
                } else {
                    ElMessage({
                        type: 'warning',
src/views/specialWorkSystem/flow/ruleofApp/components/approveRuleDialog.vue
@@ -314,7 +314,7 @@
            } else if (data.approveRuleForm.workType === 6) {
                data.approveRuleForm.workLevel = null;
                data.workLevelList = [
                    { id: 7, name: '特级高处作业' },
                    { id: 7, name: '四级高处作业' },
                    { id: 4, name: '一级高处作业' },
                    { id: 5, name: '二级高处作业' },
                    { id: 6, name: '三级高处作业' },
src/views/specialWorkSystem/flow/ruleofApp/index.vue
@@ -152,7 +152,7 @@
                { id: 3, name: '特级动火作业' },
                { id: 1, name: '一级动火作业' },
                { id: 2, name: '二级动火作业' },
                { id: 7, name: '特级高处作业' },
                { id: 7, name: '四级高处作业' },
                { id: 4, name: '一级高处作业' },
                { id: 5, name: '二级高处作业' },
                { id: 6, name: '三级高处作业' },
src/views/specialWorkSystem/foundationSet/goods/index.vue
@@ -439,7 +439,7 @@
                    value: 6
                },
                {
                    label: "特级高处作业",
                    label: "四级高处作业",
                    value: 7
                }
            ],
src/views/specialWorkSystem/specialIndex/index.vue
@@ -123,7 +123,7 @@
          <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.seDepId" @change="changeDep4()" :options="depList" :props="casProps" :show-all-levels="false" size="small"/>
              <el-cascader :teleported="false" v-model="searchParams.seDepId" @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>
@@ -335,7 +335,6 @@
  workType1: Array<type>;
  dialogType: number | null;
  departmentList: Array<any>;
  depList: Array<any>;
  departmentRecursionList: Array<DepartmentState>;
  reviewForm: object;
  reviewRules: object;
@@ -407,7 +406,6 @@
      },
      dialogReview: false,
      departmentList: [],
      depList: [],
      departmentRecursionList: [],
      searchStatus: null,
      endTime: '',
@@ -861,10 +859,9 @@
      let res = await teamManageApi().getAllDepartment();
      if (res.data.code === '200') {
        state.departmentList = JSON.parse(JSON.stringify(res.data.data))
        state.depList = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
        // state.depList = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
        recursion(state.departmentList);
        state.lists.departList = state.departmentList
        state.lists.departList2 = state.depList
      } else {
        ElMessage({
          type: 'warning',
src/views/system/menu/index.vue
@@ -92,17 +92,17 @@
            menuTableData: [],
            projectList: [
                { id: '1', name: '安全基础信息系统', key: 0 },
                { id: '2', name: '智能安全双重预防系统', key: 1 },
                // { id: '2', name: '智能安全双重预防系统', key: 1 },
                { id: '3', name: '智能安全特殊作业系统', key: 2 },
                { id: '4', name: '智能安全巡检系统', key: 3 },
                { id: '5', name: '智能安全风险综合预警预报平台', key: 4 },
                { id: '6', name: '应急管理系统', key: 5 },
                { id: '12', name: '监管数据融合互通系统', key: 11 },
                { id: '7', name: '安全目标责任管理系统', key: 6 },
                { id: '8', name: '安全事故管理系统', key: 7 },
                { id: '9', name: '设备综合管控系统', key: 8 },
                { id: '10', name: '安全知识图谱系统', key: 9 },
                { id: '11', name: '智能安全危险化学品全生命周期管控系统', key: 10 }
                // { id: '4', name: '智能安全巡检系统', key: 3 },
                // { id: '5', name: '智能安全风险综合预警预报平台', key: 4 },
                // { id: '6', name: '应急管理系统', key: 5 },
                // { id: '12', name: '监管数据融合互通系统', key: 11 },
                // { id: '7', name: '安全目标责任管理系统', key: 6 },
                // { id: '8', name: '安全事故管理系统', key: 7 },
                // { id: '9', name: '设备综合管控系统', key: 8 },
                // { id: '10', name: '安全知识图谱系统', key: 9 },
                // { id: '11', name: '智能安全危险化学品全生命周期管控系统', key: 10 }
            ]
        });
        // // 获取 vuex 中的路由