Explorar o código

Merge branch 'master' of http://182.92.126.35:3000/hrx/mky-vent-base

hongrunxia hai 8 meses
pai
achega
7e11c2ab03

+ 19 - 13
src/views/vent/monitorManager/camera/index.vue

@@ -115,7 +115,13 @@ async function onClick(node) {
   selected.isFolder = node.isFolder;
   if (node.pid != 'root') {
     if (node.isFolder) {
-      let res = await getDevice({ devicetype: node.itemValue })
+      let types
+      if (node.itemValue.indexOf('&') != -1) {
+        types = node.itemValue.substring(node.itemValue.indexOf('&') + 1)
+      } else {
+        types = ''
+      }
+      let res = await getDevice({ devicetype: types })
       if (res.msgTxt.length != 0) {
         res.msgTxt[0].datalist.forEach(el => {
           el.pid = node.id
@@ -146,34 +152,34 @@ async function onClick(node) {
 
 //点击详情跳转
 function onDetail(node) {
-  let type=listArr[0].children.filter(v=>v.id==node.pid)[0].itemValue
-  console.log(type,'type--------')
+  let type = listArr[0].children.filter(v => v.id == node.pid)[0].itemValue
+  console.log(type, 'type--------')
   switch (type) {
     case 'pulping'://注浆
       router.push('/grout-home')
       break;
     case 'window'://自动风窗
-      router.push('/monitorChannel/monitor-window?id='+node.deviceID)
+      router.push('/monitorChannel/monitor-window?id=' + node.deviceID)
       break;
     case 'gate'://自动风门
-      router.push('/monitorChannel/monitor-gate?id='+node.deviceID)
+      router.push('/monitorChannel/monitor-gate?id=' + node.deviceID)
       break;
-      case 'fanlocal'://局部风机
-      router.push('/monitorChannel/monitor-fanlocal?id='+node.deviceID+'&deviceType=fanlocal')
+    case 'fanlocal'://局部风机
+      router.push('/monitorChannel/monitor-fanlocal?id=' + node.deviceID + '&deviceType=fanlocal')
       break;
-      case 'fanmain'://主风机
-      router.push('/monitorChannel/monitor-fanmain?id='+node.deviceID)
+    case 'fanmain'://主风机
+      router.push('/monitorChannel/monitor-fanmain?id=' + node.deviceID)
       break;
-      case 'forcFan'://压风机
+    case 'forcFan'://压风机
       router.push('/forcFan/home')
       break;
-      case 'pump'://瓦斯抽采泵
+    case 'pump'://瓦斯抽采泵
       router.push('/monitorChannel/gasPump-home')
       break;
-      case 'nitrogen'://制氮
+    case 'nitrogen'://制氮
       router.push('/nitrogen-home')
       break;
-     
+
   }
 }
 

+ 9 - 3
src/views/vent/performance/fileDetail/fileDetail.api.ts

@@ -13,8 +13,9 @@ enum Api {
   commit = '/safety/actBusiness/commit',
   getNowUserAgencyData = '/safety/approvalBusiness/getNowUserAgencyData',
   getNowUserApprovedData = '/safety/approvalBusiness/getNowUserApprovedData',
-  sumVentReport='/ventanaly-company/company/reportData/sumVentReport',
-  zipdownload='/ventanaly-sharefile/fileServer/zipdownload'
+  // sumVentReport='/ventanaly-company/company/reportData/sumVentReport',
+  zipdownload='/ventanaly-sharefile/fileServer/zipdownload',
+  queryVentMonReportJd='/ventanaly-company/company/reportData/queryVentMonReportJd'
 }
 
 /**
@@ -22,11 +23,16 @@ enum Api {
  * @param params
  */
 export const zipdownload = (params) => defHttp.post({ url: Api.zipdownload, params, responseType: 'blob' },{ joinParamsToUrl: true });
+// /**
+//  * 汇总集团通风报表
+//  * @param params
+//  */
+// export const sumVentReport = () => defHttp.post({ url: Api.sumVentReport, });
 /**
  * 汇总集团通风报表
  * @param params
  */
-export const sumVentReport = () => defHttp.post({ url: Api.sumVentReport, });
+export const queryVentMonReportJd = () => defHttp.get({ url: Api.queryVentMonReportJd, });
 
 /**
  * 左侧树接口

+ 68 - 33
src/views/vent/performance/fileDetail/index.vue

@@ -14,29 +14,29 @@
             <treeIcon class="iconfont" :title="item.title" v-else />
           </template>
           <template #operation="{ type }">
-            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'" >
+            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'">
               <template #title>
                 <span>添加</span>
               </template>
               <i class="iconfont icon-xinzeng" v-if="type == 'addDocument'"></i>
             </a-tooltip>
-            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'" >
+            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'">
               <template #title>
                 <span>编辑</span>
               </template>
               <i class="iconfont icon-bianji" v-if="type == 'Editable'"></i>
             </a-tooltip>
-          
-            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'" >
+
+            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'">
               <template #title>
                 <span>删除</span>
               </template>
               <a-popconfirm v-if="type == 'deleteNode'" title="是否确认删除!" ok-text="确定" cancel-text="取消"
-              @confirm="confirmDel">
-              <i class="iconfont icon-guanbi"></i>
-            </a-popconfirm>
+                @confirm="confirmDel">
+                <i class="iconfont icon-guanbi"></i>
+              </a-popconfirm>
             </a-tooltip>
-            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'" >
+            <a-tooltip placement="top" :color="'rgba(28, 72, 105,.5)'">
               <template #title>
                 <span>下载目录</span>
               </template>
@@ -60,21 +60,19 @@
           <a-button type="primary" style="float: right; margin-right: 20px" @click="openModal(true)">文件上传</a-button>
         </div>
         <div class="list">
-          <a-spin :spinning="loading">
-            <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange">
-              <a-tab-pane key="1" tab="全部">
-                <NormalTable :key="alive" :submitInfo="submitInfo" :selfParam="selfParam" :searchParam="searchForm"
-                  :nodeParam="nodeParam" :columns="columns" :list="getTree" :deleteById="deleteById"
-                  :downLoad="downLoad" designScope="file-detail" title="文件详情" />
-              </a-tab-pane>
-              <a-tab-pane key="2" tab="待审批">
-                <approvalPend :key="alive2" :selected="selected" />
-              </a-tab-pane>
-              <a-tab-pane key="3" tab="已审批">
-                <endEd :key="alive3" :selected="selected" />
-              </a-tab-pane>
-            </a-tabs>
-          </a-spin>
+          <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange">
+            <a-tab-pane key="1" tab="全部">
+              <NormalTable :key="alive" :submitInfo="submitInfo" :selfParam="selfParam" :searchParam="searchForm"
+                :nodeParam="nodeParam" :columns="columns" :list="getTree" :deleteById="deleteById" :downLoad="downLoad"
+                designScope="file-detail" title="文件详情" />
+            </a-tab-pane>
+            <a-tab-pane key="2" tab="待审批">
+              <approvalPend :key="alive2" :selected="selected" />
+            </a-tab-pane>
+            <a-tab-pane key="3" tab="已审批">
+              <endEd :key="alive3" :selected="selected" />
+            </a-tab-pane>
+          </a-tabs>
         </div>
       </div>
     </div>
@@ -98,9 +96,23 @@
         </a-form-item>
       </a-form>
     </a-modal>
+    <!-- 汇总报表弹窗 -->
+    <a-modal v-model:visible="visiblehHz" centered :width="600" title="报表汇总" :footer="null">
+      <div
+        style="height:240px;overflow-y: auto;display: flex;flex-direction: column;align-items: center; padding: 10px;box-sizing: border-box">
+        <vue3-seamless-scroll hover-stop="true" :list="reportHzList" :hover="true" :step="0.06" class="seamless-warp1">
+          <div v-for="(item, index) in reportHzList" :key="index"
+            style="width:100%;height:40px;display: flex;justify-content: space-between;align-items: center">
+            <span>{{ item.time }}</span>
+            <span>{{ item.msg }}</span>
+          </div>
+        </vue3-seamless-scroll>
+      </div>
+    </a-modal>
   </div>
 </template>
 <script lang="ts" setup name="system-user">
+import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
 import customHeader from '/@/components/vent/customHeader.vue';
 import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
 import fileSystem from './commen/fileSystem.vue';
@@ -111,11 +123,13 @@ import endEd from '../endEd/index.vue';
 import { useRouter } from 'vue-router';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { SvgIcon } from '/@/components/Icon';
-import { ref, onMounted, reactive, nextTick, watch } from 'vue';
+import { ref, onMounted, reactive, nextTick, watch,onUnmounted } from 'vue';
 import { columns } from './fileDetail.data';
-import { getTree, createFile, editMenu, delMenu, uploadApi, downLoad, deleteById, listData, getNowUserAgencyData, sumVentReport, zipdownload } from './fileDetail.api';
+import { getTree, createFile, editMenu, delMenu, uploadApi, downLoad, deleteById, listData, getNowUserAgencyData, queryVentMonReportJd, zipdownload } from './fileDetail.api';
 
-let loading = ref(false)
+let visiblehHz = ref(false)
+let reportHzList = ref<any[]>([])
+let timer: null | NodeJS.Timeout = null;
 let activeKey = ref('1');
 let selfParam = reactive({
   //各矿参数
@@ -198,13 +212,21 @@ function downFilePublic(content, fileName) {
   }
 }
 //汇总报表
-async function reportSum() {
-  loading.value = true
-  let res = await sumVentReport()
-  if (res) {
-    alive.value = new Date().getTime();
-    loading.value = false
-  }
+function reportSum() {
+  visiblehHz.value = true
+  timer = setInterval(async () => {
+    let res = await queryVentMonReportJd()
+    reportHzList.value = res.jdList
+    if (res.flag) {
+      visiblehHz.value = false
+      clearTimeout(timer);
+      reportHzList.value.length=0
+      alive.value = new Date().getTime();
+    } else {
+      visiblehHz.value = true
+    }
+  }, 3000)
+
 }
 //上传文件
 let openModal = (val) => {
@@ -406,6 +428,12 @@ onMounted(() => {
   getListData();
   getTypeTableList();
 });
+onUnmounted(() => {
+  if (timer) {
+    clearTimeout(timer);
+    timer = undefined;
+  }
+});
 </script>
 
 <style lang="less" scoped>
@@ -482,6 +510,13 @@ onMounted(() => {
   .zxm-form {
     padding: 10px !important;
   }
+
+}
+
+.seamless-warp1 {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
 }
 
 ::v-deep .jeecg-svg-icon {