Parcourir la source

1. 公司端底图资源替换, 首页通风监测表格删除需风量显示列
2. 修改文件共享中心风尘、束管、色谱仪分析页面跳转路由
3. 安全监控添加跳转神东安全监控功能

hongrunxia il y a 2 mois
Parent
commit
ee74ff00cd

+ 2 - 1
public/js/config.js

@@ -15,5 +15,6 @@ const VENT_PARAM = {
   showReport: false,
   isoOpenSso: 'false',
   modalText: '', //国家能源集团沙吉海煤矿 //三维模型电子屏底部文字配置
-  productionCrlPlatformUrl: '' // 神东要求主扇的控制功能改回跳转至生产管控平台,这里填写上生产管控地址后(例如填写:"https://www.baidu.com/"),就可以跳转了
+  productionCrlPlatformUrl: '', // 神东要求主扇的控制功能改回跳转至生产管控平台,这里填写上生产管控地址后(例如填写:"https://www.baidu.com/"),就可以跳转了
+  safetyCrlPlatformUrl: '' // 神东要求安全监控跳转至安全监控管控平台,这里填写上生产管控地址后(例如填写:"https://www.baidu.com/"),就可以跳转了
 }

BIN
src/assets/images/company/home-map.png


+ 0 - 1
src/design/vent/modal.less

@@ -332,7 +332,6 @@
     }
 
     .top-right {
-      flex: 1;
       justify-content: right;
 
       .run-type {

+ 2 - 2
src/views/vent/home/clique/components/icon-light.vue

@@ -33,7 +33,7 @@
   const warningLevel3 = getAssetURL('company/home/point3.png'); // 高风险
   const warningLevel4 = getAssetURL('company/home/point4.png'); // 报警
   let pointList = ref<any[]>(
-    globalConfig.History_Type == 'vent'
+    globalConfig.History_Type == ''
       ? [
           { code: 'sdmtjtltmk', imgSrc: warningLevel1, label: 'lt', leftV: '327px', topV: '40px', textColor: '#fff', align: 'left' },
           { code: 'sdmtjtcctrk', imgSrc: warningLevel1, label: 'cce', leftV: '291px', topV: '69px', textColor: '#fff', align: 'left' },
@@ -140,7 +140,7 @@
             textColor: '#fff',
             align: 'left',
           },
-          { code: 'sdmtjtdltmkhjtj', imgSrc: warningLevel1, label: '活鸡兔井', leftV: '518px', topV: '358px', textColor: '#fff', align: 'left' },
+          { code: 'sdmtjtdltmkhjtj', imgSrc: warningLevel1, label: '活鸡兔井', leftV: '488px', topV: '398px', textColor: '#fff', align: 'left' },
           { code: 'sdmtjtdltmk', imgSrc: warningLevel1, label: '大柳塔井', leftV: '588px', topV: '338px', textColor: '#fff', align: 'right' },
           {
             code: 'sdmtjtjjmk',

+ 10 - 3
src/views/vent/home/clique/components/mine-wind.vue

@@ -11,7 +11,7 @@
             <span>{{ item.deviceName }}</span>
             <span>{{ filterBadValue(item.jf) }}</span>
             <span>{{ filterBadValue(item.hf) }}</span>
-            <span>{{ filterBadValue(item.xf) }}</span>
+            <!-- <span>{{ filterBadValue(item.xf) }}</span> -->
           </div>
         </template>
       </div>
@@ -30,8 +30,15 @@
     },
   });
   let mineTitle = ref('矿井通风状态监测');
-  let labelList = reactive([{ name: '矿井名称' }, { name: '总进风量' }, { name: '总回风量' }, { name: '总需风量' }]);
-  let mineData = ref<any[]>([]);
+  // let labelList = reactive([{ name: '矿井名称' }, { name: '总进风量' }, { name: '总回风量' }, { name: '总需风量' }]);
+  let labelList = reactive([{ name: '矿井名称' }, { name: '总进风量' }, { name: '总回风量' }]);
+  let mineData = ref<any[]>([
+    {
+      deviceName: 'ccc',
+      jf: 123,
+      hf: 234,
+    },
+  ]);
 
   // 过滤不合法的值,小于5000的视为传感器出错
   function filterBadValue(val: number | string) {

+ 11 - 0
src/views/vent/home/clique/index.vue

@@ -19,6 +19,7 @@
           <!-- 地图底图 -->
           <div class="center-bg">
             <div class="bg-map">
+              <div class="build"></div>
               <iconLight @show-detail="showDetail" :warningList="warningList" />
             </div>
           </div>
@@ -296,6 +297,16 @@
               // background-position: 0px 70px;
               position: relative;
               z-index: 0;
+              .build {
+                position: absolute;
+                background: url('../../../../assets/images/company/build.png') no-repeat center;
+                background-size: contain;
+                width: 80px;
+                height: 80px;
+                left: 500px;
+                top: 325px;
+                z-index: 999;
+              }
             }
           }
 

+ 2 - 2
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -135,13 +135,13 @@
           <template v-if="hasPermission(item.permission)">
             <template v-if="item.permission === 'btn:frequency' || item.permission === 'btn:frequencyMerge'">
               <div
-                v-if="devicekide == 'fanlocaldp' && item.permission === 'btn:frequency'"
+                v-if="devicekide == 'fanlocal' && item.permission === 'btn:frequency'"
                 :class="{ 'button-box': btnClick, 'button-disable': !btnClick }"
                 @click="showModal(item)"
                 >{{ item.value }}
               </div>
               <div
-                v-else-if="devicekide == 'fanlocal' && item.permission === 'btn:frequencyMerge'"
+                v-else-if="devicekide == 'fanlocaldp' && item.permission === 'btn:frequencyMerge'"
                 :class="{ 'button-box': btnClick, 'button-disable': !btnClick }"
                 @click="showModal(item)"
                 >{{ item.value }}

+ 9 - 5
src/views/vent/monitorManager/gateMonitor/index.vue

@@ -73,10 +73,10 @@
         <!-- 济南嘉鸿远程、就地、自动控制,自动切换,点位为true就是选中状态 -->
         <div class="vent-flex-m row" v-else-if="selectData.contrlMod == 'jnjhCtrl'">
           <div class="control-title">控制模式:</div>
-          <a-radio v-model:checked="selectData.autoRoManual" :disabled="true">远程</a-radio>
-          <a-radio v-model:checked="selectData.autoRoManual1" :disabled="true">自动</a-radio>
-          <a-radio v-model:checked="selectData.autoRoManual2" :disabled="true">手动</a-radio>
-          <div class="button-box" v-for="(item, index) in modelList" @click="playAnimation(7)" :key="index">{{ item.text }}</div>
+          <a-radio v-model:checked="selectData['autoRoManual']" :disabled="true">远程</a-radio>
+          <a-radio v-model:checked="selectData['autoRoManual1']" :disabled="true">自动</a-radio>
+          <a-radio v-model:checked="selectData['autoRoManual2']" :disabled="true">手动</a-radio>
+          <div class="button-box" @click="playAnimation(7)">模式切换</div>
         </div>
         <div class="vent-flex-m row" v-else>
           <div class="control-title">控制模式:</div>
@@ -447,7 +447,11 @@
               }
             }
             Object.assign(selectData, dataSource.value[selectRowIndex.value]);
-
+            if (selectData.contrlMod == 'jnjhCtrl') {
+              selectData['autoRoManual'] = selectData['autoRoManual'] == 1 ? true : false;
+              selectData['autoRoManual1'] = selectData['autoRoManual1'] == 1 ? true : false;
+              selectData['autoRoManual2'] = selectData['autoRoManual2'] == 1 ? true : false;
+            }
             addMonitorText(selectData);
             monitorAnimation(selectData);
             if (timer) {

+ 119 - 37
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -95,11 +95,23 @@
             <div class="fbm-video">
               <div class="vent-flex-row-between vent-margin-t-20">
                 <span class="data-title">风门开启状态:</span>
-                <template v-if="selectData['ExplosionVentOpen'] == 1 && selectData['ExplosionVentClose'] == 0">
-                  <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>开启</span>
+                <template v-if="explosionDoorData['gate_1_kai'] == 1">
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['gate_1_kai'] == 1, 'signal-round-gry': explosionDoorData['gate_1_kai'] == 0 }"
+                    ></span
+                    >门1开启</span
+                  >
                 </template>
-                <template v-else-if="selectData['ExplosionVentOpen'] == 0 && selectData['ExplosionVentClose'] == 1">
-                  <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>关闭</span>
+                <template v-else-if="explosionDoorData['gate_2_kai'] == 1">
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['gate_1_kai'] == 1, 'signal-round-gry': explosionDoorData['gate_1_kai'] == 0 }"
+                    ></span
+                    >门2开启</span
+                  >
                 </template>
                 <template v-else>
                   <div class="vent-margin-l-10"
@@ -109,42 +121,98 @@
               </div>
               <div class="vent-flex-row-between vent-margin-t-10">
                 <span class="data-title">反风锁紧状态:</span>
-                <template
-                  v-if="
-                    selectData['Lock1Open'] == 1 && selectData['Lock1Close'] == 0 && selectData['Lock2Open'] == 1 && selectData['Lock2Close'] == '0'
-                  "
-                >
-                  <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>锁1开</span>
-                  <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>锁2开</span>
-                </template>
-                <template
-                  v-else-if="
-                    selectData['Lock1Open'] == '0' && selectData['Lock1Close'] == 1 && selectData['Lock2Open'] == '0' && selectData['Lock2Close'] == 1
-                  "
-                >
-                  <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>锁1关</span>
-                  <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>锁2关</span>
-                </template>
-                <template v-else>
-                  <div class="vent-margin-l-10"
-                    ><span class="signal-round signal-round-warning vent-margin-r-8"></span>反风锁紧正在运行 或 数据异常</div
+                <div>
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo1_kai'] == 1, 'signal-round-gry': explosionDoorData['suo1_kai'] == 0 }"
+                    ></span
+                    >锁1开</span
                   >
-                </template>
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo1_guan'] == 1, 'signal-round-gry': explosionDoorData['suo1_guan'] == 0 }"
+                    ></span
+                    >锁1关</span
+                  >
+                </div>
+                <div>
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo2_kai'] == 1, 'signal-round-gry': explosionDoorData['suo2_kai'] == 0 }"
+                    ></span
+                    >锁1开</span
+                  >
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo2_guan'] == 1, 'signal-round-gry': explosionDoorData['suo2_guan'] == 0 }"
+                    ></span
+                    >锁2关</span
+                  >
+                </div>
+                <div>
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo3_kai'] == 1, 'signal-round-gry': explosionDoorData['suo3_kai'] == 0 }"
+                    ></span
+                    >锁3开</span
+                  >
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo3_guan'] == 1, 'signal-round-gry': explosionDoorData['suo3_guan'] == 0 }"
+                    ></span
+                    >锁3关</span
+                  >
+                </div>
+                <div>
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo4_kai'] == 1, 'signal-round-gry': explosionDoorData['suo4_kai'] == 0 }"
+                    ></span
+                    >锁4开</span
+                  >
+                  <span class="data-title"
+                    ><span
+                      class="signal-round vent-margin-r-8"
+                      :class="{ 'signal-round-blue': explosionDoorData['suo4_guan'] == 1, 'signal-round-gry': explosionDoorData['suo4_guan'] == 0 }"
+                    ></span
+                    >锁4关</span
+                  >
+                </div>
               </div>
             </div>
             <div class="fbm-data">
-              <div class="element-item"
-                ><span class="data-title">井口负压(kPa):</span
-                ><span>{{ selectData.Fan1FanPre ? selectData.Fan1FanPre : selectData.Fan2FanPre ? selectData.Fan2FanPre : '-' }}</span></div
-              >
-              <div class="element-item"><span class="data-title">井口正压(kPa):</span><span>0</span></div>
-              <div class="element-item"><span class="data-title">井口温度(℃):</span><span>19.132</span></div>
-              <div class="element-item"><span class="data-title">甲烷浓度(%):</span><span>0.36</span></div>
-              <div class="element-item"><span class="data-title">CO浓度(%):</span><span>0</span></div>
               <div class="vent-flex-row-between">
                 <span class="data-title">操作方式:</span>
-                <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>远程</span>
-                <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>就地</span>
+                <span class="data-title"
+                  ><span
+                    class="signal-round signal-round-blue vent-margin-r-8"
+                    :class="{ 'signal-round-blue': explosionDoorData['jd_yc'] == 1 }"
+                  ></span
+                  >远程</span
+                >
+                <span class="data-title"
+                  ><span class="signal-round vent-margin-r-8" :class="{ 'signal-round-blue': explosionDoorData['jd_yc'] == 0 }"></span>就地</span
+                >
+              </div>
+              <div class="vent-flex-row-between">
+                <span class="data-title">是否检修:</span>
+                <span class="data-title"
+                  ><span
+                    class="signal-round signal-round-blue vent-margin-r-8"
+                    :class="{ 'signal-round-blue': explosionDoorData['zc_jx'] == 1 }"
+                  ></span
+                  >正常</span
+                >
+                <span class="data-title"
+                  ><span class="signal-round vent-margin-r-8" :class="{ 'signal-round-blue': explosionDoorData['zc_jx'] == 0 }"></span>检修</span
+                >
               </div>
             </div>
           </div>
@@ -579,7 +647,7 @@
         </div>
       </div>
       <!-- 防爆门控制 -->
-      <div class="" v-if="modalType == 'fbm'">
+      <!-- <div class="" v-if="modalType == 'fbm'">
         <div class="vent-margin-t-20">
           <span class="data-title vent-margin-r-8">反风锁紧状态:</span>
           <template
@@ -605,7 +673,6 @@
             <span class="btn btn1" @click="handleOk('openLock')">开锁</span>
             <span class="btn btn2" @click="handleOk('closeLock')">关锁</span>
           </div>
-          <!-- <a-switch v-if="fbmControlData.CtrlLockOpen !== undefined" style="margin-left: 5px;" v-model:checked="fbmControlData.CtrlLockOpen" checked-children="开锁" un-checked-children="关锁" /> -->
           <div v-else class="vent-margin-l-10"
             ><span class="signal-round signal-round-warning vent-margin-r-8"></span>反风锁紧正在运行 或 数据异常</div
           >
@@ -616,9 +683,24 @@
             <span class="btn btn1" @click="handleOk('openGate')">开门</span>
             <span class="btn btn2" @click="handleOk('closeGate')">关门</span>
           </div>
-          <!-- <a-switch v-if="fbmControlData.CtrlExplosionVentOpen !== undefined" style="margin-left: 5px;" v-model:checked="fbmControlData.CtrlExplosionVentOpen" checked-children="开门" un-checked-children="关门" /> -->
           <div class="vent-margin-l-10" v-else><span class="signal-round signal-round-warning vent-margin-r-8"></span>防爆门正在运行 或 数据异常</div>
         </div>
+      </div> -->
+      <div class="" v-if="modalType == 'fbm'">
+        <div class="vent-flex-row btn-box vent-margin-t-20">
+          <span class="data-title vent-margin-r-8">反风锁紧控制:</span>
+          <div>
+            <span class="btn btn1" @click="handleOk('openLock')">锁1开</span>
+            <span class="btn btn2" @click="handleOk('closeLock')">锁1关</span>
+          </div>
+          <div>
+            <span class="btn btn1" @click="handleOk('openLock')">锁2开</span>
+            <span class="btn btn2" @click="handleOk('closeLock')">锁2关</span>
+          </div>
+          <!-- <div v-else class="vent-margin-l-10"
+            ><span class="signal-round signal-round-warning vent-margin-r-8"></span>反风锁紧正在运行 或 数据异常</div
+          > -->
+        </div>
       </div>
     </div>
   </a-modal>

+ 20 - 0
src/views/vent/monitorManager/safetyMonitor/index.vue

@@ -180,6 +180,9 @@
         <div class="btn btn1" @click="updateSubstation">确定</div>
       </div>
       <div class="export-btn"><div class="btn btn1" @click="exportData">一键导出</div></div>
+      <div class="export-btn m-l-20px"
+        ><div class="btn btn2" @click="goSystem"><send-outlined />安全管控系统</div></div
+      >
     </div>
   </div>
 </template>
@@ -200,6 +203,7 @@
   import { useGlobSetting } from '/@/hooks/setting';
   import { useMethods } from '/@/hooks/system/useMethods';
   import { message } from 'ant-design-vue';
+  import { SendOutlined } from '@ant-design/icons-vue';
 
   const { sysOrgCode } = useGlobSetting();
   const { hasPermission } = usePermission();
@@ -352,9 +356,16 @@
       subStation.value = list[0]['id'];
     }
   }
+
   function exportData() {
     handleExportXls('安全监控导出', getExportUrl);
   }
+  function goSystem() {
+    if (VENT_PARAM['safetyCrlPlatformUrl']) {
+      window.open(VENT_PARAM['safetyCrlPlatformUrl'], '_blank');
+      return;
+    }
+  }
 
   function updateSubstation() {
     if (subStation.value) {
@@ -588,6 +599,15 @@
         }
       }
     }
+    .btn2 {
+      border: 1px solid var(--vent-btn-primary-border-color);
+      background-image: linear-gradient(#2effee92, #0cb1d592);
+
+      &:hover {
+        border: 1px solid var(--vent-btn-primary-focus-color);
+        background-image: linear-gradient(#0cb0d554, rgba(46, 255, 238, 0.342));
+      }
+    }
   }
 
   :deep(.@{ventSpace}-tabs-tabpane-active) {

+ 5 - 5
src/views/vent/performance/comment/NormalTable.vue

@@ -379,23 +379,23 @@
     switch (data) {
       case '1600000000000000001':
         //粉尘报表
-        router.push('/dust-sheet');
+        router.push('/dustDayReport/home');
         break;
       case '1500000000000000002':
         //束管日报
-        router.push('/dubdle-monitor-table');
+        router.push('/bundleDayReport/home');
         break;
       case '1500000000000000003':
         //束管色谱仪
-        router.push('/sundle-spy');
+        router.push('/bundleSpyDayReport/home');
         break;
       case '1400000000000000002':
         //瓦斯日报巡检分析
-        router.push('/gas/gas-report-inspect');
+        router.push('/gas/gasDayReport/home');
         break;
       case '1400000000000000003':
         //瓦斯日报巡检分析
-        router.push('/gas/gas-report-inspect');
+        router.push('/gas/gasDayReport/home');
         break;
     }
   }

+ 157 - 150
src/views/vent/reportManager/index.vue

@@ -15,179 +15,186 @@
         </fileSystem>
       </div>
       <div class="right-box">
-        <NormalTable :key="dataNow" :searchParam="searchParam" :columns="columns" :deleteById="deleteById"
-          :downLoad="downLoad" :list="reportList" designScope="device-tabel" title="报表管理" :showTab="false"
-          @saveAdd="saveAdd" />
+        <NormalTable
+          :key="dataNow"
+          :searchParam="searchParam"
+          :columns="columns"
+          :deleteById="deleteById"
+          :downLoad="downLoad"
+          :list="reportList"
+          designScope="device-tabel"
+          title="报表管理"
+          :showTab="false"
+          @saveAdd="saveAdd"
+        />
       </div>
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
-import { ref, nextTick, reactive, onMounted } from 'vue';
-import customHeader from '/@/components/vent/customHeader.vue';
-import fileSystem from './comment/common/cameraTree.vue';
-import { SvgIcon } from '/@/components/Icon';
-import treeIcon from './comment/common/Icon/treeIcon.vue';
-import NormalTable from './comment/NormalTable.vue';
-import { message } from 'ant-design-vue';
-import { columns, } from './reportManager.data';
-import { reportList, save, deleteById, downLoad, getQuery } from './reportManager.api';
+  import { ref, nextTick, reactive, onMounted } from 'vue';
+  import customHeader from '/@/components/vent/customHeader.vue';
+  import fileSystem from './comment/common/cameraTree.vue';
+  import { SvgIcon } from '/@/components/Icon';
+  import treeIcon from './comment/common/Icon/treeIcon.vue';
+  import NormalTable from './comment/NormalTable.vue';
+  import { message } from 'ant-design-vue';
+  import { columns } from './reportManager.data';
+  import { reportList, save, deleteById, downLoad, getQuery } from './reportManager.api';
 
-let dataNow = ref(0)
-let searchParam = reactive({
-  busKind: '',
-  modelType: '',
-  reportType: '',
-})
+  let dataNow = ref(0);
+  let searchParam = reactive({
+    busKind: '',
+    modelType: '',
+    reportType: '',
+  });
 
-//左侧菜单列表
-let listArr = reactive<any[]>([
-  {
-    pid: 'auto',
-    isFolder: true,
-    isexpanded:true,
-    title: '系统数据报表',
-    id: '0',
-    children: []
-  },
-  {
-    pid: 'hand',
-    isFolder: true,
-    isexpanded:true,
-    title: '手动报表',
-    id: '1',
-    children: []
-  },
-  {
-    pid: 'temp',
-    isFolder: true,
-    isexpanded:true,
-    title: '报表模板',
-    id: '2',
-    children: []
-  },
-]);
-//lxh 当前选中树节点
-let selected = reactive<any>({
-  id: null,
-  pid: null,
-  title: '',
-  isFolder: false,
-});
+  //左侧菜单列表
+  let listArr = reactive<any[]>([
+    {
+      pid: 'auto',
+      isFolder: true,
+      isexpanded: true,
+      title: '系统数据报表',
+      id: '0',
+      children: [],
+    },
+    {
+      pid: 'hand',
+      isFolder: true,
+      isexpanded: true,
+      title: '手动报表',
+      id: '1',
+      children: [],
+    },
+    {
+      pid: 'temp',
+      isFolder: true,
+      isexpanded: true,
+      title: '报表模板',
+      id: '2',
+      children: [],
+    },
+  ]);
+  //lxh 当前选中树节点
+  let selected = reactive<any>({
+    id: null,
+    pid: null,
+    title: '',
+    isFolder: false,
+  });
 
-//获取左侧菜单树
-async function getTreeList() {
-  const res = await getQuery()
-  if (res.length != 0) {
-    listArr.forEach(el => {
-      el.children.length = 0
-      res.forEach(v => {
-        // v.id=v.itemValue
-        let childre: any[] = []
-        if (v.children.length != 0) {
-          v.children.forEach(m => {
-            childre.push({ pid: v.itemValue, ppid: el.id, isFolder: false,isexpanded:false, title: m.itemText, id: m.itemValue })
-          })
-        }
-        el.children.push({ pid: el.id, isFolder: true,isexpanded:false, title: v.itemText, id: v.itemValue, children: childre })
-      })
-    })
-    console.log(listArr, 'listArr-----------')
+  //获取左侧菜单树
+  async function getTreeList() {
+    const res = await getQuery();
+    if (res.length != 0) {
+      listArr.forEach((el) => {
+        el.children.length = 0;
+        res.forEach((v) => {
+          // v.id=v.itemValue
+          let childre: any[] = [];
+          if (v.children.length != 0) {
+            v.children.forEach((m) => {
+              childre.push({ pid: v.itemValue, ppid: el.id, isFolder: false, isexpanded: false, title: m.itemText, id: m.itemValue });
+            });
+          }
+          el.children.push({ pid: el.id, isFolder: true, isexpanded: false, title: v.itemText, id: v.itemValue, children: childre });
+        });
+      });
+      console.log(listArr, 'listArr-----------');
+    }
   }
-}
-//点击目录
-async function onClick(node) {
-  console.log(node, 'node--------------')
-  if (node.pid == 'auto') {
-    treeClick(node)
-  } else if (node.pid == 'hand') {
-    treeClick(node)
-  } else {
-    treeClick(node)
+  //点击目录
+  async function onClick(node) {
+    console.log(node, 'node--------------');
+    if (node.pid == 'auto') {
+      treeClick(node);
+    } else if (node.pid == 'hand') {
+      treeClick(node);
+    } else {
+      treeClick(node);
+    }
   }
-};
-function treeClick(node) {
-  dataNow.value = new Date().getTime()
-  selected.id = node.id;
-  selected.pid = node.pid;
-  selected.title = node.title;
-  selected.isFolder = node.isFolder;
-  selected.ppid=node.ppid
-  if (node.id == '0' || node.id == '1' || node.id == '2') {
-    searchParam.busKind = ''
-    searchParam.modelType = node.id
-    searchParam.reportType = ''
-  } else if (node.pid == '0' || node.pid == '1' || node.pid == '2') {
-    searchParam.busKind = node.id
-    searchParam.modelType = node.pid
-    searchParam.reportType = ''
-  } else {
-    searchParam.busKind = node.pid
-    searchParam.modelType = node.ppid
-    searchParam.reportType = node.id
+  function treeClick(node) {
+    dataNow.value = new Date().getTime();
+    selected.id = node.id;
+    selected.pid = node.pid;
+    selected.title = node.title;
+    selected.isFolder = node.isFolder;
+    selected.ppid = node.ppid;
+    if (node.id == '0' || node.id == '1' || node.id == '2') {
+      searchParam.busKind = '';
+      searchParam.modelType = node.id;
+      searchParam.reportType = '';
+    } else if (node.pid == '0' || node.pid == '1' || node.pid == '2') {
+      searchParam.busKind = node.id;
+      searchParam.modelType = node.pid;
+      searchParam.reportType = '';
+    } else {
+      searchParam.busKind = node.pid;
+      searchParam.modelType = node.ppid;
+      searchParam.reportType = node.id;
+    }
   }
-}
-
-
 
-async function saveAdd(params) {
-  let res = await save({ ...params });
-  if (res.id) {
-    message.warning('新增成功!');
-  } else {
-    message.error('新增失败!')
+  async function saveAdd(params) {
+    let res = await save({ ...params });
+    if (res.id) {
+      message.warning('新增成功!');
+    } else {
+      message.error('新增失败!');
+    }
+    dataNow.value = new Date().getTime();
   }
-  dataNow.value = new Date().getTime()
-}
 
-onMounted(() => {
-  getTreeList()
-})
+  onMounted(() => {
+    getTreeList();
+  });
 </script>
 
 <style lang="less" scoped>
-.reportManager {
-  width: calc(100% - 20px);
-  height: calc(100% - 90px);
-  position: relative;
-  margin: 80px 10px 10px 10px;
-
-  .content {
-    width: 100%;
-    height: calc(100% - 30px);
-    display: flex;
-    flex-direction: row;
-    justify-content: space-between;
-    align-items: flex-start;
+  .reportManager {
+    width: calc(100% - 20px);
+    height: calc(100% - 90px);
     position: relative;
+    margin: 80px 10px 10px 10px;
+
+    .content {
+      width: 100%;
+      height: calc(100% - 30px);
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: flex-start;
+      position: relative;
 
-    // z-index: 999;
-    .left-box {
-      width: 15%;
-      height: 100%;
-      padding: 20px;
-      border: 1px solid #99e8ff66;
-      background: #27546e1a;
-      box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-      -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-      -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
-      overflow-y: auto;
+      // z-index: 999;
+      .left-box {
+        width: 15%;
+        height: 100%;
+        padding: 20px;
+        border: 1px solid #99e8ff66;
+        background: #27546e1a;
+        box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+        -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+        -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
+        overflow-y: auto;
 
-      // lxh
-      .iconfont {
-        color: #fff;
-        font-size: 12px;
-        margin-left: 5px;
+        // lxh
+        .iconfont {
+          color: #fff;
+          font-size: 12px;
+          margin-left: 5px;
+        }
       }
-    }
 
-    .right-box {
-      width: 85%;
-      height: 100%;
-      padding: 0px 0px 0px 15px;
-      box-sizing: border-box;
+      .right-box {
+        width: 85%;
+        height: 100%;
+        padding: 0px 0px 0px 15px;
+        box-sizing: border-box;
+      }
     }
   }
-}
 </style>