Переглянути джерело

文件审批流,预警指标,报表管理(未完成)-提交

lxh 1 рік тому
батько
коміт
a52ab5c3d8

+ 4 - 2
src/views/vent/monitorManager/alarmMonitor/common.data.ts

@@ -24,13 +24,15 @@ export const centerAreaListB1 = [
 ];
 
 //内外因火灾菜单列表
-export const typeMenuList = [{ name: '内因火灾' }, { name: '外因火灾' },{name:'预警指标'}];
+export const typeMenuList = [{ name: '内因火灾' }, { name: '外因火灾' },{name:'火灾指标'}];
+//瓦斯监测菜单列表
+export const typeMenuListGas = [{ name: '预警监测' }, { name: '预警指标' },];
 //当前加载组件
 export const componentName = {
     fireWork: markRaw(defineAsyncComponent(() => import('./common/fireWork.vue'))),
     closeWall: markRaw(defineAsyncComponent(() => import('./common/closeWall.vue'))),
     mainWell: markRaw(defineAsyncComponent(() => import('./common/mainWell.vue'))),
-    warnTarget: markRaw(defineAsyncComponent(() => import('./common/warnTarget.vue'))),
+    warnTargetFire: markRaw(defineAsyncComponent(() => import('./common/warnTargetFire.vue'))),
 };
 //顶部区域数据
 export const topList = [

+ 1 - 1
src/views/vent/monitorManager/alarmMonitor/common/closeWall.vue

@@ -333,7 +333,7 @@
 
             .text {
               font-family: 'douyuFont';
-              font-size: 32px;
+              font-size: 28px;
               margin: 0px 15px;
               color: #3df6ff;
             }

+ 1 - 1
src/views/vent/monitorManager/alarmMonitor/common/fireWork.vue

@@ -323,7 +323,7 @@
 
             &:nth-child(2) {
               font-family: 'douyuFont';
-              font-size: 24px;
+              font-size: 16px;
               color: #3df6ff;
             }
           }

+ 1 - 1
src/views/vent/monitorManager/alarmMonitor/common/mainWell.vue

@@ -607,7 +607,7 @@
 
             .text {
               font-family: 'douyuFont';
-              font-size: 32px;
+              font-size: 28px;
               margin: 0px 15px;
               color: #3df6ff;
             }

+ 0 - 386
src/views/vent/monitorManager/alarmMonitor/common/warnTarget.vue

@@ -1,386 +0,0 @@
-<template>
-    <div class="warnTarget">
-        <a-table :columns="columns" :data-source="tableData" bordered :pagination="false" :scroll="{ y: 720 }">
-            <template #bodyCell="{ column, text }">
-                <template v-if="column.dataIndex === 'name'">
-                    <a href="javascript:;">{{ text }}</a>
-                </template>
-            </template>
-        </a-table>
-    </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive } from 'vue'
-
-let tableData = ref<any[]>([
-    {
-        key: '1',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '甲烷浓度',
-        four: '甲烷传感器实时监测数据',
-    },
-    {
-        key: '2',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '甲烷浓度单班浮动',
-        four: '一个班内甲烷浓度的最大变化量',
-    },
-    {
-        key: '3',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '甲烷浓度邻班浮动',
-        four: '上下两个班次甲烷浓度的浮动变化量',
-    },
-    {
-        key: '4',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '滑动平均值',
-        four: '最近一定时长范围内甲烷浓度的平均值',
-    },
-    {
-        key: '5',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '离散率',
-        four: '反映瓦斯涌出的数据波动特征',
-    },
-    {
-        key: '6',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '变化率',
-        four: '反映瓦斯涌出的数据演化趋势',
-    },
-    {
-        key: '7',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '异常持续时间',
-        four: '反映一定时长范围内瓦斯异常涌出的频次',
-    },
-    {
-        key: '8',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '二氧化碳浓度',
-        four: '二氧化碳传感器实时监测数据',
-    },
-    {
-        key: '9',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '风速',
-        four: '风速传感器实时监测数据',
-    },
-    {
-        key: '10',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '风量',
-        four: '巷道风量的实时监测数据',
-    },
-    {
-        key: '11',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '瓦斯涌出量',
-        four: '工作面瓦斯涌出量实时监测数据',
-    },
-    {
-        key: '12',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '吨煤瓦斯涌出量',
-        four: '一段时间内工作面吨煤瓦斯涌出量',
-    },
-    {
-        key: '13',
-        one: '监测监控',
-        two: '瓦斯涌出',
-        three: '炮后吨煤瓦斯涌出量V30',
-        four: '炮后30min内工作面吨煤瓦斯涌出量',
-    },
-    {
-        key: '14',
-        one: '监测监控',
-        two: '瓦斯抽采',
-        three: '采空区抽采纯量',
-        four: '采空区瓦斯抽采纯量实时监测数据',
-    },
-    {
-        key: '15',
-        one: '监测监控',
-        two: '瓦斯抽采',
-        three: '采空区抽采量(班)',
-        four: '一个班内采空区瓦斯累计抽采量',
-    },
-    {
-        key: '16',
-        one: '监测监控',
-        two: '瓦斯抽采',
-        three: '残余瓦斯含量(抽采计算)',
-        four: '根据煤层瓦斯抽采量计算的煤层残余瓦斯含量',
-    },
-    {
-        key: '17',
-        one: '监测监控',
-        two: '气压变化',
-        three: '平均风压',
-        four: '单位时间内风压数据的平均值',
-    },
-    {
-        key: '18',
-        one: '监测监控',
-        two: '气压变化',
-        three: '最低风压',
-        four: '单位时间内风压数据的最小值',
-    },
-    {
-        key: '19',
-        one: '监测监控',
-        two: '气压变化',
-        three: '风压极差',
-        four: '单位时间内风压数据的最大变化量',
-    },
-    {
-        key: '20',
-        one: '瓦斯地质',
-        two: '瓦斯赋存',
-        three: '原始瓦斯含量',
-        four: '/',
-    },
-    {
-        key: '21',
-        one: '瓦斯地质',
-        two: '瓦斯赋存',
-        three: '残余瓦斯含量',
-        four: '/',
-    },
-    {
-        key: '22',
-        one: '瓦斯地质',
-        two: '瓦斯赋存',
-        three: '可解吸瓦斯含量',
-        four: '/',
-    },
-    {
-        key: '23',
-        one: '瓦斯地质',
-        two: '瓦斯赋存',
-        three: '瓦斯压力',
-        four: '/',
-    },
-    {
-        key: '24',
-        one: '瓦斯地质',
-        two: '煤层赋存',
-        three: '煤层厚度',
-        four: '/',
-    },
-    {
-        key: '25',
-        one: '瓦斯地质',
-        two: '煤层赋存',
-        three: '厚度变化',
-        four: '/',
-    },
-    {
-        key: '26',
-        one: '瓦斯地质',
-        two: '煤层赋存',
-        three: '煤层倾角',
-        four: '/',
-    },
-    {
-        key: '27',
-        one: '瓦斯地质',
-        two: '煤层赋存',
-        three: '倾角变化',
-        four: '/',
-    },
-    {
-        key: '28',
-        one: '瓦斯地质',
-        two: '地质构造',
-        three: '构造类型',
-        four: '/',
-    },
-    {
-        key: '29',
-        one: '瓦斯地质',
-        two: '地质构造',
-        three: '构造距离',
-        four: '工作面距地质构造的距离',
-    },
-    {
-        key: '30',
-        one: '采掘生产',
-        two: '采掘强度',
-        three: '煤机运行时长(回采)',
-        four: '单位时间内采煤机运行的时间长度',
-    },
-    {
-        key: '31',
-        one: '采掘生产',
-        two: '采掘强度',
-        three: '煤机运行时长(掘进)',
-        four: '单位时间内掘进机运行的时间长度',
-    },
-    {
-        key: '32',
-        one: '采掘生产',
-        two: '采掘强度',
-        three: '煤机最大速度',
-        four: '单位时间内煤机运行速度的最大值',
-    },
-    {
-        key: '33',
-        one: '采掘生产',
-        two: '采掘强度',
-        three: '煤机平均速度',
-        four: '单位时间内煤机运行速度的平均値',
-    },
-    {
-        key: '34',
-        one: '采掘生产',
-        two: '采掘进尺',
-        three: '割煤刀数(班)',
-        four: '/',
-    },
-    {
-        key: '35',
-        one: '采掘生产',
-        two: '采掘进尺',
-        three: '进尺(班)',
-        four: '/',
-    },
-    {
-        key: '36',
-        one: '采掘生产',
-        two: '采掘进尺',
-        three: '割煤刀数(天)',
-        four: '/',
-    },
-    {
-        key: '37',
-        one: '采掘生产',
-        two: '采掘进尺',
-        three: '进尺(天)',
-        four: '/',
-    },
-    {
-        key: '37',
-        one: '采掘生产',
-        two: '周期来压',
-        three: '周期来压判识结果',
-        four: '/',
-    },
-
-])
-
-let columns = reactive([
-    {
-        title: '序号',
-        width: 60,
-        align: 'center',
-        customRender: ({ index }: { index: number }) => `${index + 1}`
-    },
-    {
-        title: '一级指标',
-        dataIndex: 'one',
-        align: 'center',
-        customCell: (_, index) => {
-            if (index == 0) {
-                return { rowSpan: 19 };
-            } else if (index > 0 && index <= 18) {
-                return { rowSpan: 0 };
-            }
-            if (index == 19) {
-                return { rowSpan: 10 };
-            } else if (index > 19 && index <= 28) {
-                return { rowSpan: 0 };
-            }
-            if (index == 29) {
-                return { rowSpan: 9 };
-            } else if (index > 29 && index <= 37) {
-                return { rowSpan: 0 };
-            }
-
-        },
-    },
-    {
-        title: '二级指标',
-        dataIndex: 'two',
-        align: 'center',
-        customCell: (_, index) => {
-            if (index == 0) {
-                return { rowSpan: 13 };
-            } else if (index > 0 && index <= 12) {
-                return { rowSpan: 0 };
-            }
-            if (index == 13) {
-                return { rowSpan: 3 };
-            } else if (index > 13 && index <= 15) {
-                return { rowSpan: 0 };
-            }
-            if (index == 16) {
-                return { rowSpan: 3 };
-            } else if (index > 16 && index <= 18) {
-                return { rowSpan: 0 };
-            }
-            if (index == 19) {
-                return { rowSpan: 4 };
-            } else if (index > 19 && index <= 22) {
-                return { rowSpan: 0 };
-            }
-            if (index == 23) {
-                return { rowSpan: 4 };
-            } else if (index > 23 && index <= 26) {
-                return { rowSpan: 0 };
-            }
-            if (index == 27) {
-                return { rowSpan: 2 };
-            } else if (index > 26 && index <= 28) {
-                return { rowSpan: 0 };
-            }
-            if (index == 29) {
-                return { rowSpan: 4 };
-            } else if (index > 29 && index <= 32) {
-                return { rowSpan: 0 };
-            }
-            if (index == 33) {
-                return { rowSpan: 4 };
-            } else if (index > 33 && index <= 36) {
-                return { rowSpan: 0 };
-            }
-
-        },
-    },
-    {
-        title: '三级指标',
-        align: 'center',
-        dataIndex: 'three',
-
-    },
-    {
-        title: '四级指标',
-        dataIndex: 'four',
-        align: 'center',
-    },
-])
-
-</script>
-
-<style lang="less" scoped>
-.warnTarget {
-    width: 100%;
-    height: 100%;
-    padding: 20px;
-    box-sizing: border-box;
-}
-</style>

+ 473 - 0
src/views/vent/monitorManager/alarmMonitor/common/warnTargetFire.vue

@@ -0,0 +1,473 @@
+<template>
+    <div class="warnTargetFire">
+        <a-table :columns="columns" :data-source="tableData" bordered :pagination="false" :scroll="{ y: 720 }">
+            <template #bodyCell="{ column, text }">
+                <template v-if="column.dataIndex === 'name'">
+                    <a href="javascript:;">{{ text }}</a>
+                </template>
+            </template>
+        </a-table>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive } from 'vue'
+
+let tableData = ref<any[]>([
+    {
+        key: '1',
+        one: '回风测氧化带CO浓度',
+        two: '一级预警',
+        three: 'CO>60ppm',
+    },
+    {
+        key: '2',
+        one: '回风测氧化带CO浓度',
+        two: '二级预警',
+        three: '240ppm>CO>60ppm',
+
+    },
+    {
+        key: '3',
+        one: '回风测氧化带CO浓度',
+        two: '三级预警',
+        three: 'CO>240ppm',
+    },
+    {
+        key: '4',
+        one: '回风测氧化带CO浓度',
+        two: '四级预警',
+        three: 'CO>1000ppm',
+    },
+    {
+        key: '5',
+        one: '回风测氧化带氧温度',
+        two: '一级预警',
+        three: '温度>40℃',
+    },
+    {
+        key: '6',
+        one: '回风测氧化带氧温度',
+        two: '二级预警',
+        three: '70℃<温度<40℃',
+    },
+    {
+        key: '7',
+        one: '回风测氧化带氧温度',
+        two: '三级预警',
+        three: '70℃<温度<210℃',
+    },
+    {
+        key: '8',
+        one: '回风测氧化带氧温度',
+        two: '四级预警',
+        three: '温度>210℃',
+    },
+    {
+        key: '9',
+        one: '回风隅角CO浓度',
+        two: '一级预警',
+        three: 'CO>24ppm',
+    },
+    {
+        key: '10',
+        one: '回风隅角CO浓度',
+        two: '二级预警',
+        three: 'CO>100ppm',
+    },
+    {
+        key: '11',
+        one: '回风隅角CO浓度',
+        two: '三级预警',
+        three: 'CO>160ppm',
+    },
+    {
+        key: '12',
+        one: '回风隅角CO浓度',
+        two: '四级预警',
+        three: 'CO>200ppm',
+    },
+    {
+        key: '13',
+        one: '回风隅角气体温度',
+        two: '一级预警',
+        three: '温度>33℃',
+    },
+    {
+        key: '14',
+        one: '回风隅角气体温度',
+        two: '二级预警',
+        three: '温度>40℃',
+    },
+    {
+        key: '15',
+        one: '回风隅角气体温度',
+        two: '三级预警',
+        three: '温度>50℃',
+    },
+    {
+        key: '16',
+        one: '回风隅角气体温度',
+        two: '四级预警',
+        three: '温度>60℃',
+    },
+    {
+        key: '17',
+        one: '回风流CO浓度',
+        two: '一级预警',
+        three: 'CO>12ppm',
+    },
+    {
+        key: '18',
+        one: '回风流CO浓度',
+        two: '二级预警',
+        three: 'CO>24ppm',
+    },
+    {
+        key: '19',
+        one: '回风流CO浓度',
+        two: '三级预警',
+        three: 'CO>40ppm',
+    },
+    {
+        key: '20',
+        one: '回风流CO浓度',
+        two: '四级预警',
+        three: 'CO>70ppm',
+    },
+    {
+        key: '21',
+        one: '回风流巷道气体温度',
+        two: '一级预警',
+        three: '温度>30℃',
+    },
+    {
+        key: '22',
+        one: '回风流巷道气体温度',
+        two: '二级预警',
+        three: '温度>35℃',
+    },
+    {
+        key: '23',
+        one: '回风流巷道气体温度',
+        two: '三级预警',
+        three: '温度>45℃',
+    },
+    {
+        key: '24',
+        one: '回风流巷道气体温度',
+        two: '四级预警',
+        three: '温度>70℃',
+    },
+    {
+        key: '25',
+        one: '回风测氧化带C2H4浓度',
+        two: '三级预警',
+        three: 'C2H4>0pmm',
+    },
+    {
+        key: '26',
+        one: '回风测氧化带C2H2浓度',
+        two: '四级预警',
+        three: 'C2H2>0pmm',
+    },
+    {
+        key: '27',
+        one: '回风测氧化带100*CO/O2',
+        two: '一级预警',
+        three: '0.2~0.5',
+    },
+    {
+        key: '28',
+        one: '回风测氧化带100*CO/O2',
+        two: '二级预警',
+        three: '>0.5',
+    },
+    {
+        key: '29',
+        one: '回风测氧化带100*CO/O2',
+        two: '三级预警',
+        three: '无限大,出现C2H4',
+    },
+    {
+        key: '30',
+        one: '回风测氧化带100*CO/O2',
+        two: '四级预警',
+        three: '无限大,出现C2H2',
+    },
+    {
+        key: '31',
+        one: '回风测氧化带O2浓度',
+        two: '一级预警',
+        three: '7%>CO>5%',
+    },
+    {
+        key: '32',
+        one: '回风测氧化带O2浓度',
+        two: '二级预警',
+        three: '10%>CO>7%',
+    },
+    {
+        key: '33',
+        one: '回风测氧化带O2浓度',
+        two: '三级预警',
+        three: '18%>CO>12%',
+    },
+    {
+        key: '34',
+        one: '回风测氧化带O2浓度',
+        two: '四级预警',
+        three: 'CO>18%',
+    },
+    {
+        key: '35',
+        one: '月推进度',
+        two: '一级预警',
+        three: 'LS<0.95LX',
+    },
+    {
+        key: '36',
+        one: '月推进度',
+        two: '二级预警',
+        three: 'LS<0.9LX',
+    },
+    {
+        key: '37',
+        one: '月推进度',
+        two: '三级预警',
+        three: 'LS<0.85LX',
+    },
+    {
+        key: '38',
+        one: '月推进度',
+        two: '四级预警',
+        three: 'LS<0.8LX',
+    },
+    {
+        key: '39',
+        one: '皮带最高火灾温度',
+        two: '一级预警',
+        three: '3.5Rp>Rs>1.5Rp',
+    },
+    {
+        key: '40',
+        one: '皮带最高火灾温度',
+        two: '二级预警',
+        three: '6Rp>Rs>3.5Rp',
+    },
+    {
+        key: '41',
+        one: '皮带最高火灾温度',
+        two: '三级预警',
+        three: 'Rs>Rr>6Rp',
+    },
+    {
+        key: '42',
+        one: '皮带最高火灾温度',
+        two: '四级预警',
+        three: 'Rs>Rs',
+    },
+    {
+        key: '43',
+        one: '电缆火灾最高温度',
+        two: '一级预警',
+        three: '有烟雾',
+    },
+    {
+        key: '44',
+        one: '电缆火灾最高温度',
+        two: '二级预警',
+        three: 'Rs>1.5Rp',
+    },
+    {
+        key: '45',
+        one: '电缆火灾最高温度',
+        two: '三级预警',
+        three: 'Rs>Rr>6Rp',
+    },
+    {
+        key: '46',
+        one: '电缆火灾最高温度',
+        two: '四级预警',
+        three: 'Rs>3.5Rp',
+    },
+
+])
+
+let columns = reactive([
+    {
+        title: '序号',
+        width: 60,
+        align: 'center',
+        customRender: ({ index }: { index: number }) =>{
+          if(index>=0 && index<=3){
+            return 1
+          }else if(index>=4 && index<=7){
+            return 2
+          }else if(index>=8 && index<=11){
+            return 3
+          }else if(index>=12 && index<=15){
+            return 4
+          }else if(index>=16 && index<=19){
+            return 5
+          }else if(index>=20 && index<=23){
+            return 6
+          }else if(index==24){
+            return 7
+          }else if(index==25){
+            return 8
+          }else if(index>=26 && index<=29){
+            return 9
+          }else if(index>=30 && index<=33){
+            return 10
+          }else if(index>=34 && index<=37){
+            return 11
+          }else if(index>=38 && index<=41){
+            return 12
+          }else if(index>=42 && index<=45){
+            return 13
+          }
+        },
+        customCell: (_, index) => {
+            if (index == 0) {
+                return { rowSpan: 4 };
+            } else if (index > 0 && index <= 3) {
+                return { rowSpan: 0 };
+            }
+            if (index == 4) {
+                return { rowSpan: 4 };
+            } else if (index > 4 && index <= 7) {
+                return { rowSpan: 0 };
+            }
+            if (index == 8) {
+                return { rowSpan: 4 };
+            } else if (index > 8 && index <= 11) {
+                return { rowSpan: 0 };
+            }
+            if (index == 12) {
+                return { rowSpan: 4 };
+            } else if (index > 12 && index <= 15) {
+                return { rowSpan: 0 };
+            }
+            if (index == 16) {
+                return { rowSpan: 4 };
+            } else if (index > 16 && index <= 19) {
+                return { rowSpan: 0 };
+            }
+            if (index == 20) {
+                return { rowSpan: 4 };
+            } else if (index > 20 && index <= 23) {
+                return { rowSpan: 0 };
+            }
+            if (index == 26) {
+                return { rowSpan: 4 };
+            } else if (index > 26 && index <= 29) {
+                return { rowSpan: 0 };
+            }
+            if (index == 30) {
+                return { rowSpan: 4 };
+            } else if (index > 30 && index <= 33) {
+                return { rowSpan: 0 };
+            }
+            if (index == 34) {
+                return { rowSpan: 4 };
+            } else if (index > 34 && index <= 37) {
+                return { rowSpan: 0 };
+            }
+            if (index == 38) {
+                return { rowSpan: 4 };
+            } else if (index > 38 && index <= 41) {
+                return { rowSpan: 0 };
+            }
+            if (index == 42) {
+                return { rowSpan: 4 };
+            } else if (index > 42 && index <= 45) {
+                return { rowSpan: 0 };
+            }
+        },
+    },
+    {
+        title: '指标',
+        dataIndex: 'one',
+        align: 'center',
+        customCell: (_, index) => {
+            if (index == 0) {
+                return { rowSpan: 4 };
+            } else if (index > 0 && index <= 3) {
+                return { rowSpan: 0 };
+            }
+            if (index == 4) {
+                return { rowSpan: 4 };
+            } else if (index > 4 && index <= 7) {
+                return { rowSpan: 0 };
+            }
+            if (index == 8) {
+                return { rowSpan: 4 };
+            } else if (index > 8 && index <= 11) {
+                return { rowSpan: 0 };
+            }
+            if (index == 12) {
+                return { rowSpan: 4 };
+            } else if (index > 12 && index <= 15) {
+                return { rowSpan: 0 };
+            }
+            if (index == 16) {
+                return { rowSpan: 4 };
+            } else if (index > 16 && index <= 19) {
+                return { rowSpan: 0 };
+            }
+            if (index == 20) {
+                return { rowSpan: 4 };
+            } else if (index > 20 && index <= 23) {
+                return { rowSpan: 0 };
+            }
+            if (index == 26) {
+                return { rowSpan: 4 };
+            } else if (index > 26 && index <= 29) {
+                return { rowSpan: 0 };
+            }
+            if (index == 30) {
+                return { rowSpan: 4 };
+            } else if (index > 30 && index <= 33) {
+                return { rowSpan: 0 };
+            }
+            if (index == 34) {
+                return { rowSpan: 4 };
+            } else if (index > 34 && index <= 37) {
+                return { rowSpan: 0 };
+            }
+            if (index == 38) {
+                return { rowSpan: 4 };
+            } else if (index > 38 && index <= 41) {
+                return { rowSpan: 0 };
+            }
+            if (index == 42) {
+                return { rowSpan: 4 };
+            } else if (index > 42 && index <= 45) {
+                return { rowSpan: 0 };
+            }
+        },
+    },
+    {
+        title: '预警级别',
+        dataIndex: 'two',
+        align: 'center',
+    },
+    {
+        title: '阈值',
+        align: 'center',
+        dataIndex: 'three',
+
+    },
+])
+
+</script>
+
+<style lang="less" scoped>
+.warnTargetFire {
+    width: 100%;
+    height: 100%;
+    padding: 20px;
+    box-sizing: border-box;
+}
+</style>

+ 336 - 0
src/views/vent/monitorManager/alarmMonitor/common/warnTargetGas.vue

@@ -0,0 +1,336 @@
+<template>
+    <div class="warnTarget">
+        <a-table :columns="columns" :data-source="tableData" bordered :pagination="false" :scroll="{ y: 700 }">
+            <template #bodyCell="{ column, text }">
+                <template v-if="column.dataIndex === 'name'">
+                    <a href="javascript:;">{{ text }}</a>
+                </template>
+            </template>
+        </a-table>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive } from 'vue'
+
+let tableData = ref<any[]>([
+    {
+        key: '1',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '甲烷浓度',
+        warnLow: '(0,0.8%)',
+        warnCen: '(0.8%,1.0%)',
+        warnJg: '(1.0%,1.5%)',
+        warnHign: '(1.5%,+)',
+    },
+    {
+        key: '2',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '甲烷浓度单班浮动',
+        warnLow: '(0,0.15%)',
+        warnCen: '(0.15%,0.20%)',
+        warnJg: '(0.20%,0.30%)',
+        warnHign: '(0.30%,+)',
+    },
+    {
+        key: '3',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '甲烷浓度邻班浮动',
+        warnLow: '(0,0.15%)',
+        warnCen: '(0.15%,0.20%)',
+        warnJg: '(0.20%,0.30%)',
+        warnHign: '(0.30%,+)',
+    },
+    {
+        key: '4',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '滑动平均值',
+        warnLow: '(0,0.20%)',
+        warnCen: '(0.20%,0.30%)',
+        warnJg: '(0.30%,0.40%)',
+        warnHign: '(0.40%,+)',
+    },
+    {
+        key: '5',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '离散率',
+        warnLow: '(0,0.06%)',
+        warnCen: '(0.06%,0.08%)',
+        warnJg: '(0.08%,0.10%)',
+        warnHign: '(0.10%,+)',
+    },
+    {
+        key: '6',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '变化率',
+        warnLow: '(0,0.04%)',
+        warnCen: '(0.04%,0.06%)',
+        warnJg: '(0.06%,0.08%)',
+        warnHign: '(0.08%,+)',
+    },
+    {
+        key: '7',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '异常持续时间',
+        warnLow: '(0,1)',
+        warnCen: '(1,2)',
+        warnJg: '(2,3)',
+        warnHign: '(3,+)',
+    },
+    {
+        key: '8',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '二氧化碳浓度',
+        warnLow: '(0,0.50%)',
+        warnCen: '(0.50%,0.75%)',
+        warnJg: '(0.75%,1.5%)',
+        warnHign: '(1.5%,+)',
+    },
+    {
+        key: '9',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '风速',
+        warnLow: '(0,0.15)',
+        warnCen: '(0.15,0.25)',
+        warnJg: '(0.25,1.0)',
+        warnHign: '(1.0,+)',
+    },
+    {
+        key: '10',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '吨煤瓦斯涌出量',
+        warnLow: '(0,6)',
+        warnCen: '(6,8)',
+        warnJg: '(8,10)',
+        warnHign: '(10,+)',
+    },
+    {
+        key: '11',
+        one: '监测监控',
+        two: '瓦斯涌出',
+        three: '炮后吨煤瓦斯涌出量V30',
+        warnLow: '(0,8)',
+        warnCen: '(8,10)',
+        warnJg: '(10,12)',
+        warnHign: '(12,+)',
+    },
+    {
+        key: '12',
+        one: '监测监控',
+        two: '瓦斯抽采',
+        three: '残余瓦斯含量(抽采计算)',
+        warnLow: '(0,5)',
+        warnCen: '(5,6)',
+        warnJg: '(6,8)',
+        warnHign: '(8,+)',
+    },
+    {
+        key: '13',
+        one: '监测监控',
+        two: '气压变化',
+        three: '风压极差',
+        warnLow: '(0,1)',
+        warnCen: '(1,2.5)',
+        warnJg: '(2.5,4)',
+        warnHign: '(4,+)',
+    },
+    {
+        key: '14',
+        one: '瓦斯地质',
+        two: '瓦斯赋存',
+        three: '原始瓦斯含量',
+        warnLow: '(0,6)',
+        warnCen: '(6,8)',
+        warnJg: '(8,10)',
+        warnHign: '(10,+)',
+    },
+    {
+        key: '15',
+        one: '瓦斯地质',
+        two: '瓦斯赋存',
+        three: '残余瓦斯含量',
+        warnLow: '(0,5)',
+        warnCen: '(5,6)',
+        warnJg: '(6,8)',
+        warnHign: '(8,+)',
+    },
+    {
+        key: '16',
+        one: '瓦斯地质',
+        two: '瓦斯赋存',
+        three: '瓦斯压力',
+        warnLow: '(0,0.5)',
+        warnCen: '(0.5,0.74)',
+        warnJg: '(0.74,1.0)',
+        warnHign: '(1.0,+)',
+    },
+    {
+        key: '17',
+        one: '瓦斯地质',
+        two: '煤层赋存',
+        three: '煤层厚度',
+        warnLow: '(0,1.3)',
+        warnCen: '(1.3,3.5)',
+        warnJg: '(3.5,8.0)',
+        warnHign: '(8.0,+)',
+    },
+    {
+        key: '18',
+        one: '瓦斯地质',
+        two: '煤层赋存',
+        three: '厚度变化',
+        warnLow: '(0,5%)',
+        warnCen: '(5%,10%)',
+        warnJg: '(10%,15%)',
+        warnHign: '(15%,+)',
+    },
+    {
+        key: '19',
+        one: '瓦斯地质',
+        two: '煤层赋存',
+        three: '煤层倾角',
+        warnLow: '(0,8)',
+        warnCen: '(8,25)',
+        warnJg: '(25,45)',
+        warnHign: '(45,+)',
+    },
+    {
+        key: '20',
+        one: '瓦斯地质',
+        two: '煤层赋存',
+        three: '倾角变化',
+        warnLow: '(0,5%)',
+        warnCen: '(5%,10%)',
+        warnJg: '(10%,15%)',
+        warnHign: '(15%,+)',
+    },
+    {
+        key: '21',
+        one: '瓦斯地质',
+        two: '地质构造',
+        three: '构造距离',
+        warnLow: '(50,+)',
+        warnCen: '(50,30)',
+        warnJg: '(30,5)',
+        warnHign: '(5,0)',
+    },
+
+])
+
+let columns = reactive([
+    {
+        title: '序号',
+        width: 60,
+        align: 'center',
+        customRender: ({ index }: { index: number }) => {
+            if (index >= 0 && index <= 12) {
+                return 1
+            } else {
+                return 2
+            }
+        },
+        customCell: (_, index) => {
+            if (index == 0) {
+                return { rowSpan: 13 };
+            } else if (index > 0 && index <= 12) {
+                return { rowSpan: 0 };
+            }
+            if (index == 13) {
+                return { rowSpan: 8 };
+            } else if (index > 13 && index <= 20) {
+                return { rowSpan: 0 };
+            }
+
+        },
+    },
+    {
+        title: '一级指标',
+        dataIndex: 'one',
+        align: 'center',
+        customCell: (_, index) => {
+            if (index == 0) {
+                return { rowSpan: 13 };
+            } else if (index > 0 && index <= 12) {
+                return { rowSpan: 0 };
+            }
+            if (index == 13) {
+                return { rowSpan: 8 };
+            } else if (index > 13 && index <= 20) {
+                return { rowSpan: 0 };
+            }
+
+        },
+    },
+    {
+        title: '二级指标',
+        dataIndex: 'two',
+        align: 'center',
+        customCell: (_, index) => {
+            if (index == 0) {
+                return { rowSpan: 11 };
+            } else if (index > 0 && index <= 10) {
+                return { rowSpan: 0 };
+            }
+            if (index == 13) {
+                return { rowSpan: 3 };
+            } else if (index > 13 && index <= 15) {
+                return { rowSpan: 0 };
+            }
+            if (index == 16) {
+                return { rowSpan: 4 };
+            } else if (index > 16 && index <= 19) {
+                return { rowSpan: 0 };
+            }
+
+
+        },
+    },
+    {
+        title: '三级指标',
+        align: 'center',
+        dataIndex: 'three',
+
+    },
+    {
+        title: '低风险',
+        dataIndex: 'warnLow',
+        align: 'center',
+    },
+    {
+        title: '一般风险',
+        dataIndex: 'warnCen',
+        align: 'center',
+    },
+    {
+        title: '较高风险',
+        dataIndex: 'warnJg',
+        align: 'center',
+    },
+    {
+        title: '高风险',
+        dataIndex: 'warnHign',
+        align: 'center',
+    },
+
+])
+
+</script>
+
+<style lang="less" scoped>
+.warnTarget {
+    width: 100%;
+    height: 100%;
+    padding: 20px;
+    box-sizing: border-box;
+}
+</style>

+ 2 - 2
src/views/vent/monitorManager/alarmMonitor/warn/fireWarn.vue

@@ -161,7 +161,7 @@ function btnClick(ind) {
         case 2:
             activeIndex1.value = 0;
             menuList.length = 0;
-            currentLoad.value = 'warnTarget';
+            currentLoad.value = 'warnTargetFire';
             break;
     }
 }
@@ -183,7 +183,7 @@ function loadZj() {
     } else if (activeIndex.value && activeIndex.value!=2) {
         currentLoad.value = 'mainWell';
     }else if(activeIndex.value==2){
-        currentLoad.value = 'warnTarget';
+        currentLoad.value = 'warnTargetFire';
     } else {
         currentLoad.value = '';
     }

+ 118 - 53
src/views/vent/monitorManager/alarmMonitor/warn/gasWarn.vue

@@ -4,6 +4,12 @@
         <a-button preIcon="ant-design:rollback-outlined" type="text" size="small"
             style="position: absolute;left:15px;top:15px;color: #fff;" @click="getBack">返回</a-button>
         <div class="alarm-menu">
+            <div class="type-btn">
+                <div :class="activeIndex == index ? 'btn1' : 'btn'" v-for="(item, index) in typeMenuListGas"
+                    :key="index" @click="btnClick(index)">
+                    {{ item.name }}
+                </div>
+            </div>
             <div class="card-btn">
                 <div :class="activeIndex1 == ind ? 'btn1' : 'btn'" v-for="(item, ind) in menuList" :key="ind"
                     @click="cardClick(ind, item)">
@@ -13,67 +19,72 @@
             </div>
         </div>
         <div class="gas-content">
-            <div class="top-area" v-if="topAreaListWs.length != 0">
-                <div class="title-t">
-                    <div class="text-t">瓦斯抽采泵信息</div>
-                </div>
-                <div class="content-t">
-                    <div class="top-box" v-for="(item, index) in topAreaListWs" :key="index">
-                        <div class="box-label">{{ item.label }}</div>
-                        <div class="box-values">
-                            <div class="value-b" v-for="(items, ind) in item.list" :key="ind">
-                                <span>{{ `${items.name} : ` }}</span>
-                                <span :class="{
-                                    'box-value': items.val == 0 && items.name == '报警状态',
-                                    'box-value1': items.val == 101 && items.name == '报警状态',
-                                    'box-value2': items.val == 102 && items.name == '报警状态',
-                                    'box-value3': items.val == 103 && items.name == '报警状态',
-                                    'box-value4': items.val == 104 && items.name == '报警状态',
-                                    'box-value5': (items.val == 201 || item.val == 1001) && items.name == '报警状态',
-                                }">{{
-                                    items.val == 0 && items.name == '报警状态'
-                                        ? '正常'
-                                        : items.val == 101 && items.name == '报警状态'
-                                            ? '较低风险'
-                                            : items.val == 102 && items.name == '报警状态'
-                                                ? '低风险'
-                                                : items.val == 103 && items.name == '报警状态'
-                                                    ? '中风险'
-                                                    : items.val == 104 && items.name == '报警状态'
-                                                        ? '高风险'
-                                                        : items.val == 201 && items.name == '报警状态'
-                                                            ? '报警' : items.val == 1001 && items.name == '报警状态' ? '网络断开'
-                                                                : items.val
-                                }}</span>
+            <div style="width:100%;height:100%" v-if="isShow">
+                <div class="top-area" v-if="topAreaListWs.length != 0">
+                    <div class="title-t">
+                        <div class="text-t">瓦斯抽采泵信息</div>
+                    </div>
+                    <div class="content-t">
+                        <div class="top-box" v-for="(item, index) in topAreaListWs" :key="index">
+                            <div class="box-label">{{ item.label }}</div>
+                            <div class="box-values">
+                                <div class="value-b" v-for="(items, ind) in item.list" :key="ind">
+                                    <span>{{ `${items.name} : ` }}</span>
+                                    <span :class="{
+                                        'box-value': items.val == 0 && items.name == '报警状态',
+                                        'box-value1': items.val == 101 && items.name == '报警状态',
+                                        'box-value2': items.val == 102 && items.name == '报警状态',
+                                        'box-value3': items.val == 103 && items.name == '报警状态',
+                                        'box-value4': items.val == 104 && items.name == '报警状态',
+                                        'box-value5': (items.val == 201 || item.val == 1001) && items.name == '报警状态',
+                                    }">{{
+                                        items.val == 0 && items.name == '报警状态'
+                                            ? '正常'
+                                            : items.val == 101 && items.name == '报警状态'
+                                                ? '较低风险'
+                                                : items.val == 102 && items.name == '报警状态'
+                                                    ? '低风险'
+                                                    : items.val == 103 && items.name == '报警状态'
+                                                        ? '中风险'
+                                                        : items.val == 104 && items.name == '报警状态'
+                                                            ? '高风险'
+                                                            : items.val == 201 && items.name == '报警状态'
+                                                                ? '报警' : items.val == 1001 && items.name == '报警状态' ? '网络断开'
+                                                                    : items.val
+                                    }}</span>
+                                </div>
                             </div>
                         </div>
                     </div>
-                </div>
-
-            </div>
 
-            <div :class="topAreaListWs.length != 0 ? 'bot-area' : 'bot-area1'">
-                <div class="title-b">
-                    <div class="text-b">安全监控测点信息</div>
                 </div>
-                <div class="content-b">
-                    <div class="card-b" v-for="(item, index) in cardListWs" :key="index">
-                        <div class="item-l">
-                            <div class="label-l">{{ item.label }}</div>
-                            <div class="value-l">{{ `${item.value}%` }}</div>
-                        </div>
-                        <div class="item-r">
-                            <div class="content-r" v-for="(items, ind) in item.listR" :key="ind">
-                                <span>{{ `${items.label} : ` }}</span>
-                                <span :class="{
-                                    'status-f': items.value == 1,
-                                    'status-l': items.value == 0,
-                                }">{{ items.value == 1 ? '异常' : items.value == 0 ? '正常' : items.value }}</span>
+
+                <div :class="topAreaListWs.length != 0 ? 'bot-area' : 'bot-area1'">
+                    <div class="title-b">
+                        <div class="text-b">安全监控测点信息</div>
+                    </div>
+                    <div class="content-b">
+                        <div class="card-b" v-for="(item, index) in cardListWs" :key="index">
+                            <div class="item-l">
+                                <div class="label-l">{{ item.label }}</div>
+                                <div class="value-l">{{ `${item.value}%` }}</div>
+                            </div>
+                            <div class="item-r">
+                                <div class="content-r" v-for="(items, ind) in item.listR" :key="ind">
+                                    <span>{{ `${items.label} : ` }}</span>
+                                    <span :class="{
+                                        'status-f': items.value == 1,
+                                        'status-l': items.value == 0,
+                                    }">{{ items.value == 1 ? '异常' : items.value == 0 ? '正常' : items.value }}</span>
+                                </div>
                             </div>
                         </div>
                     </div>
                 </div>
             </div>
+            <div style="width:100%;height:100%" v-else>
+                <warnTargetGas></warnTargetGas>
+            </div>
         </div>
     </div>
 </template>
@@ -84,6 +95,8 @@ import { sysTypeWarnList, sysWarn } from '../common.api'
 import { useSystemSelect } from '/@/hooks/vent/useSystemSelect';
 import { useRouter } from 'vue-router';
 import CustomHeader from '/@/components/vent/customHeader.vue';
+import warnTargetGas from '../common/warnTargetGas.vue'
+import { typeMenuListGas } from '../common.data'
 
 const { options, optionValue, getSelectRow, getSysDataSource } = useSystemSelect('sys_surface_caimei'); // 参数为场景类型(设备类型管理中可以查询到)
 //当前左侧激活菜单的索引
@@ -95,6 +108,9 @@ let topAreaListWs = reactive<any[]>([]);
 //瓦斯监控列表数据
 let cardListWs = reactive<any[]>([]);
 let router = useRouter()
+//监测/指标激活索引
+let activeIndex = ref(0);
+let isShow = ref(true)
 
 // https获取监测数据
 let timer: null | NodeJS.Timeout = null;
@@ -179,6 +195,22 @@ async function getMenuList() {
     }
 }
 
+//监测/预警指标选项切换
+function btnClick(ind) {
+    activeIndex.value = ind;
+    clearTimeout(timer);
+    switch (ind) {
+        case 0:
+            activeIndex1.value = 0;
+            isShow.value = true
+            break;
+        case 1:
+            activeIndex1.value = 0;
+            isShow.value = false
+            break;
+    }
+}
+
 //菜单选项切换
 function cardClick(ind, item) {
     activeIndex1.value = ind;
@@ -201,7 +233,7 @@ onUnmounted(() => {
 <style lang="less" scoped>
 .gasWarn {
     width: 100%;
-    height: calc(100% - 52px);
+    height: 100%;
     padding: 80px 10px 15px 10px;
     box-sizing: border-box;
     display: flex;
@@ -211,9 +243,41 @@ onUnmounted(() => {
         height: 100%;
         width: 15%;
 
+        .type-btn {
+            width: 100%;
+            height: 28px;
+            line-height: 28px;
+            border: 1px solid #0058ee;
+            margin-bottom: 20px;
+            border-radius: 5px;
+            box-sizing: border-box;
+            display: flex;
+            justify-content: space-between;
+
+            .btn {
+                width: 50%;
+                height: 100%;
+                font-size: 14px;
+                text-align: center;
+                color: #fff;
+                cursor: pointer;
+            }
+
+            .btn1 {
+                width: 50%;
+                height: 100%;
+                font-size: 14px;
+                color: #fff;
+                text-align: center;
+                border-radius: 2px;
+                background: #0058ee;
+                cursor: pointer;
+            }
+        }
+
         .card-btn {
             width: 100%;
-            height: 100%;
+            height: calc(100% - 48px);
             overflow-y: auto;
 
             .btn {
@@ -285,6 +349,7 @@ onUnmounted(() => {
     }
 
     .gas-content {
+        position: relative;
         width: calc(85% - 10px);
         height: 100%;
         margin-left: 10px;

+ 10 - 10
src/views/vent/performance/comment/HistorySp.vue

@@ -158,7 +158,7 @@ watch(() => props.spInfo, (newV, oldV) => {
         box-sizing: border-box;
 
         .box-content {
-            height: calc(100% - 40px);
+            height: calc(100% - 30px);
         }
     }
 
@@ -174,23 +174,23 @@ watch(() => props.spInfo, (newV, oldV) => {
 
         .box-content {
             position: relative;
-            height: calc(100% - 40px);
+            height: calc(100% - 30px);
 
             img {
-                position: absolute;
-                left: 50%;
-                top: -35px;
-                transform: translate(-70%, 0);
-                width: 70%;
-                height: 85%;
+             width: 498px;
+             height: 236px;
+             position: absolute;
+             left: 50%;
+             top: -130px;
+             transform: translate(-72%,0);
             }
         }
     }
 
     .box-title {
         font-size: 14px;
-        height: 40px;
-        line-height: 40px;
+        height: 30px;
+        line-height: 30px;
         color: #fff;
     }
 }

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

@@ -21,7 +21,7 @@
     <!-- 审批-提交弹窗 -->
     <a-modal v-model:visible="visibleTj" centered :width="600" title="提交文件" @ok="handleTjOk" @cancel="handleTjCancel">
       <a-form :model="formStateTj" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
-        <a-form-item label="选择文件" :rules="[{ required: true, message: '请选择是否提交' }]">
+        <a-form-item label="选择审批" :rules="[{ required: true, message: '请选择是否提交' }]">
           <a-select v-model:value="formStateTj.file" style="width: 260px">
             <a-select-option v-for="file in fileList " :key="file.label" :value="file.value">{{ file.label
               }}</a-select-option>

+ 1 - 1
src/views/vent/performance/comment/comment.api.ts

@@ -1,7 +1,7 @@
 import { defHttp } from '/@/utils/http/axios';
 
 enum Api {
-    historicFlowNew = 'safety/actTask/historicFlowNew',
+    historicFlowNew = '/safety/actTask/historicFlowNew',
     getHighlightImgNew='/activiti/models/getHighlightImgNew',
     getTodoTask='/safety/actTask/getTodoTask',
     pass='/safety/actTask/pass',

+ 181 - 162
src/views/vent/reportManager/comment/DeviceModal.vue

@@ -1,26 +1,33 @@
 <template>
-  <BasicModal
-    :defaultFullscreen="defaultScreen"
-    v-bind="$attrs"
-    @register="registerModal"
-    :title="title"
-    :width="widthV"
-    :showCancelBtn="false"
-    :showOkBtn="false"
-    :footer="null"
-    destroyOnClose
-    :mask-closable="false"
-    @cancel="closeModalFn"
-  >
+  <BasicModal :defaultFullscreen="defaultScreen" v-bind="$attrs" @register="registerModal" :title="title"
+    :width="widthV" :showCancelBtn="false" :showOkBtn="false" :footer="null" destroyOnClose :mask-closable="false"
+    @cancel="closeModalFn">
     <!-- 报表新增 -->
     <div v-if="addOredit == 'add'">
       <a-form :model="formState" :label-col="{ style: { width: '130px' } }" :wrapper-col="{ span: 14 }">
+        <a-form-item label="文件名称:">
+          <a-input v-model:value="formState.fileName" placeholder="请输入文件名称..." />
+        </a-form-item>
+        <a-form-item label="业务种类:">
+          <JDictSelectTag v-model:value="formState.busKind" placeholder="请选择业务种类..." dictCode="reportBusKind"
+            @change="changeKind" />
+        </a-form-item>
         <a-form-item label="报表类型:">
-          <JDictSelectTag v-model:value="formState.reportType" placeholder="请选择报表类型..." dictCode="reportType" />
+          <JDictSelectTag v-if="kindType == 'ventSReport'" v-model:value="formState.reportType" placeholder="请选择报表类型..."
+            dictCode="ventSReport" />
+          <JDictSelectTag v-if="kindType == 'fireSReport'" v-model:value="formState.reportType" placeholder="请选择报表类型..."
+            dictCode="fireSReport" />
+          <JDictSelectTag v-if="kindType == 'dustSReport'" v-model:value="formState.reportType" placeholder="请选择报表类型..."
+            dictCode="dustSReport" />
+          <JDictSelectTag v-if="kindType == 'gasSReport'" v-model:value="formState.reportType" placeholder="请选择报表类型..."
+            dictCode="gasSReport" />
+        </a-form-item>
+        <a-form-item label="选择模板:">
+          <a-select v-model:value="formState.handTempid">
+            <a-select-option v-for="item in optionList" :key="item.value">{{ item.label }}</a-select-option>
+          </a-select>
         </a-form-item>
-        <!-- <a-form-item label="报表类型:">
-          <JDictSelectTag v-model:value="formState.reportVersion" placeholder="请选择报表版本..." dictCode="reportVersion" />
-        </a-form-item> -->
+
         <div class="footer">
           <a-button type="primary" style="margin-right: 20px" @click="save">保存</a-button>
           <a-button type="primar" @click="closeModalFn">取消</a-button>
@@ -29,15 +36,8 @@
     </div>
     <!--历史记录 -->
     <div v-else-if="addOredit == 'hisRecord'">
-      <NormalHisTable
-        :columns="columnsHis"
-        :reportIds="reportId"
-        :downLoad="hisdownload"
-        :list="hisList"
-        designScope="device-tabel"
-        title="报表历史记录管理"
-        :showTab="false"
-      />
+      <NormalHisTable :columns="columnsHis" :reportIds="reportId" :downLoad="hisdownload" :list="hisList"
+        designScope="device-tabel" title="报表历史记录管理" :showTab="false" />
     </div>
     <!-- 报表编辑 -->
     <div v-else>
@@ -46,152 +46,171 @@
   </BasicModal>
 </template>
 <script lang="ts" setup>
-  import { computed, unref, inject, reactive, ref, watch, defineProps } from 'vue';
-  import NormalHisTable from '../comment/NormalHisTable.vue';
-  import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
-  import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { useUserStore } from '/@/store/modules/user';
-  import { hisList, hisdownload } from '../reportManager.api';
-  import { columnsHis } from '../reportManager.data';
+import { computed, unref, inject, reactive, ref, watch, defineProps } from 'vue';
+import NormalHisTable from '../comment/NormalHisTable.vue';
+import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
+import { BasicModal, useModalInner } from '/@/components/Modal';
+import { useUserStore } from '/@/store/modules/user';
+import { hisList, hisdownload } from '../reportManager.api';
+import { columnsHis } from '../reportManager.data';
 
-  let props = defineProps({
-    addOredit: {
-      type: String,
-      default: '',
-    },
-    editID: {
-      type: String,
-      default: '',
-    },
-    fileType: {
-      type: String,
-      default: '',
-    },
-    reportLogHis: {
-      type: String,
-      default: '',
-    },
-    reportId: {
-      type: String,
-      default: '',
-    },
-  });
-  const remoteUrl = import.meta.env.DEV ? 'http://182.92.126.35' : 'http://' + window.location.hostname;
-  const userStore = useUserStore(); //获取用户信息
-  let userId = unref(userStore.getUserInfo).id;
-  let userName = unref(userStore.getUserInfo).username;
+let props = defineProps({
+  addOredit: {
+    type: String,
+    default: '',
+  },
+  editID: {
+    type: String,
+    default: '',
+  },
+  fileType: {
+    type: String,
+    default: '',
+  },
+  reportLogHis: {
+    type: String,
+    default: '',
+  },
+  reportId: {
+    type: String,
+    default: '',
+  },
+  optionLists: {
+    type: Array,
+    default: () => {
+      return []
+    }
+  }
+});
+const remoteUrl = import.meta.env.DEV ? 'http://182.92.126.35' : 'http://' + window.location.hostname;
+const userStore = useUserStore(); //获取用户信息
+let userId = unref(userStore.getUserInfo).id;
+let userName = unref(userStore.getUserInfo).username;
 
-  let formState = reactive({
-    reportType: '',
-    // reportVersion: '',
-  });
+let formState = reactive({
+  fileName: '',
+  busKind: '',
+  handTempid: '',
+  reportType: '',
+});
+let kindType = ref('ventSReport')
+let optionList = ref<any[]>([])
 
-  //设置标题
-  let title = computed(() => {
-    if (props.addOredit == 'add') {
-      return '报表新增';
-    } else if (props.addOredit == 'hisRecord') {
-      return '历史记录';
-    } else {
-      return '报表编辑';
-    }
-  });
-  //弹窗宽度
-  let widthV = computed(() => {
-    if (props.addOredit == 'add') {
-      return '600px';
-    } else {
-      return '1000px';
-    }
-  });
+//设置标题
+let title = computed(() => {
+  if (props.addOredit == 'add') {
+    return '报表新增';
+  } else if (props.addOredit == 'hisRecord') {
+    return '历史记录';
+  } else {
+    return '报表编辑';
+  }
+});
+//弹窗宽度
+let widthV = computed(() => {
+  if (props.addOredit == 'add') {
+    return '600px';
+  } else {
+    return '1000px';
+  }
+});
 
-  //弹窗是否全屏
-  let defaultScreen = computed(() => {
-    if (props.addOredit == 'add') {
-      return false;
-    } else {
-      return true;
-    }
-  });
-  // 声明Emits
-  const emit = defineEmits(['saveOrUpdate', 'register']);
+//弹窗是否全屏
+let defaultScreen = computed(() => {
+  if (props.addOredit == 'add') {
+    return false;
+  } else {
+    return true;
+  }
+});
+// 声明Emits
+const emit = defineEmits(['saveOrUpdate', 'register']);
 
-  //表单赋值
-  const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
-    //重置表单
-    setModalProps({ confirmLoading: false });
-    // Object.assign(deviceData, data.record);
-    new DocsAPI.DocEditor(
-      'fileEdit', // 元素id
-      {
-        type: 'desktop',
-        width: '100%',
-        height: '860px',
-        document: {
-          title: '文档管理',
-          url: remoteUrl + ':9999/ventanaly-device/safety/reportInfo/onlyOffice/read?id=' + props.editID + '&type=' + props.reportLogHis, //id表示文件id,后端接口用这个id来加载文件
-          fileType: props.fileType == 'doc' ? 'docx' : props.fileType == 'xls' ? 'xlsx' : props.fileType == 'ppt' ? 'pptx' : props.fileType, //当文件类型为doc、xls、ppt时,对应用docx、xlsx、pptx否则会保存异常。
-          key: '',
-          lang: 'zh-CN',
-          permissions: {
-            download: true, //是否可下载
-            edit: true,
-            fillForms: true,
-            print: true, //是否可打印
-          },
+//表单赋值
+const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
+  //重置表单
+  setModalProps({ confirmLoading: false });
+  // Object.assign(deviceData, data.record);
+  new DocsAPI.DocEditor(
+    'fileEdit', // 元素id
+    {
+      type: 'desktop',
+      width: '100%',
+      height: '860px',
+      document: {
+        title: '文档管理',
+        url: remoteUrl + ':9999/ventanaly-device/safety/reportInfo/onlyOffice/read?id=' + props.editID + '&type=' + props.reportLogHis, //id表示文件id,后端接口用这个id来加载文件
+        fileType: props.fileType == 'doc' ? 'docx' : props.fileType == 'xls' ? 'xlsx' : props.fileType == 'ppt' ? 'pptx' : props.fileType, //当文件类型为doc、xls、ppt时,对应用docx、xlsx、pptx否则会保存异常。
+        key: '',
+        lang: 'zh-CN',
+        permissions: {
+          download: true, //是否可下载
+          edit: true,
+          fillForms: true,
+          print: true, //是否可打印
+        },
+      },
+      editorConfig: {
+        lang: 'zh-CN',
+        mode: props.reportLogHis ? 'view' : 'edit', //view:只读且可复制内容,edit:可编辑
+        callbackUrl: remoteUrl + ':9999/ventanaly-device/safety/reportInfo/onlyOffice/save?id=' + props.editID + '&type=' + props.reportLogHis, //id表示文件id,后端接口用这个id来加载文件
+        coEditing: {
+          mode: 'fast',
+          change: true,
         },
-        editorConfig: {
-          lang: 'zh-CN',
-          mode: props.reportLogHis ? 'view' : 'edit', //view:只读且可复制内容,edit:可编辑
-          callbackUrl: remoteUrl + ':9999/ventanaly-device/safety/reportInfo/onlyOffice/save?id=' + props.editID + '&type=' + props.reportLogHis, //id表示文件id,后端接口用这个id来加载文件
-          coEditing: {
-            mode: 'fast',
-            change: true,
-          },
-          customization: {
-            toolbarNoTabs: true,
-            autosave: false, //是否自动保存
-            forcesave: true, //定义保存按钮是否显示
-            hideRightMenu: true,
-            spellcheck: false,//ture打开拼写检查,false关闭拼写检查。(默认为ture)
-          },
-          //用户信息
-          user: {
-            id: userId, //用户ID
-            name: userName, //用户名称
-          },
+        customization: {
+          toolbarNoTabs: true,
+          autosave: false, //是否自动保存
+          forcesave: true, //定义保存按钮是否显示
+          hideRightMenu: true,
+          spellcheck: false,//ture打开拼写检查,false关闭拼写检查。(默认为ture)
         },
-      }
-    );
-  });
+        //用户信息
+        user: {
+          id: userId, //用户ID
+          name: userName, //用户名称
+        },
+      },
+    }
+  );
+});
 
-  //点击图标关闭弹框
-  const closeModalFn = () => {
-    formState.reportType = '';
-    // formState.reportVersion = '';
-    closeModal();
-    // emit('closeModal')
-  };
+//业务种类下拉选项切换
+function changeKind(val) {
+  kindType.value = `${val}Report`
+}
+//点击图标关闭弹框
+const closeModalFn = () => {
+  formState.busKind=''
+  formState.fileName=''
+  formState.handTempid=''
+  formState.reportType=''
+  closeModal();
+};
+//新增保存
+let save = () => {
+  emit('saveOrUpdate', formState);
+};
 
-  //新增保存
-  let save = () => {
-    emit('saveOrUpdate', formState);
-  };
+watch(() => props.optionLists, (newV, oldV) => {
+  optionList.value = newV
+}, { immediate: true, deep: true })
 </script>
 <style scoped lang="less">
-  ::v-deep .suffix {
-    height: 32px;
-    line-height: 32px;
-    margin-left: 5px;
-    color: #fff;
-  }
-  ::v-deep .zxm-form {
-    padding-top: 40px;
-  }
+::v-deep .suffix {
+  height: 32px;
+  line-height: 32px;
+  margin-left: 5px;
+  color: #fff;
+}
 
-  .footer {
-    width: 100%;
-    text-align: center;
-    padding-top: 30px;
-  }
+::v-deep .zxm-form {
+  padding-top: 20px;
+}
+
+.footer {
+  width: 100%;
+  text-align: center;
+  padding-top: 30px;
+}
 </style>

+ 40 - 22
src/views/vent/reportManager/comment/NormalTable.vue

@@ -1,16 +1,17 @@
 <template>
   <div>
-    <BasicTable @register="registerTable" :rowSelection="rowSelection">
-      <template #tableTitle >
-        <a-button  preIcon="ant-design:plus-outlined" type="primary" @click="handleAdd">新增</a-button>
+    <BasicTable @register="registerTable" :rowSelection="rowSelection" :key="resetTable">
+      <template #tableTitle>
+        <a-button preIcon="ant-design:plus-outlined" type="primary" @click="handleAdd">新增</a-button>
+        <a-button preIcon="ant-design:cloud-upload-outlined" type="primary" @click="handleUpload">上传</a-button>
       </template>
       <template #action="{ record }">
-        <a  class="table-action-link" @click="handleEdit(record)">编辑</a>
-        <a-popconfirm  title="确定删除?" @confirm="handleDelete(record)">
+        <a class="table-action-link" @click="handleEdit(record)">编辑</a>
+        <a-popconfirm title="确定删除?" @confirm="handleDelete(record)">
           <a class="table-action-link">删除</a>
         </a-popconfirm>
         <a class="table-action-link" @click="handleDownLoad(record)">导出</a>
-        <a  class="table-action-link" @click="handleHisrecord(record)"> 历史记录</a>
+        <a class="table-action-link" @click="handleHisrecord(record)"> 历史记录</a>
         <slot name="action" v-bind="{ record }"></slot>
       </template>
       <template #bodyCell="{ column, record }">
@@ -18,8 +19,9 @@
       </template>
     </BasicTable>
     <DeviceModal :editID="editID" :reportId="reportId" :reportLogHis="reportLogHis" :fileType="fileType"
-      @register="registerModal" :addOredit="addOredit" @saveOrUpdate="saveOrUpdate" />
-
+      @register="registerModal" :addOredit="addOredit" :optionLists="optionLists" @saveOrUpdate="saveOrUpdate" />
+    <!-- 报表或模板上传弹窗 -->
+    <tempUpload :visibleUp="visibleUp" @resetUpload="resetUpload"></tempUpload>
 
   </div>
 </template>
@@ -30,13 +32,15 @@ import { ref, reactive, toRaw, defineExpose, watch } from 'vue';
 import { BasicTable, } from '/@/components/Table';
 import { useModal } from '/@/components/Modal';
 import DeviceModal from './DeviceModal.vue';
+import tempUpload from './common/tempUpload.vue'
 import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
 import { useListPage } from '/@/hooks/system/useListPage';
+import {getQuery} from '../reportManager.api'
 
 const props = defineProps({
-  reportType:{
-    type:String,
-    default:''
+  reportType: {
+    type: String,
+    default: ''
   },
   //下载文件接口
   downLoad: {
@@ -80,15 +84,13 @@ let editID = ref(0);
 let fileType = ref(''); //文件类型
 let reportLogHis = ref('')//是否为报表记录编辑
 let reportId = ref('')//历史记录列表传参
-
 const emit = defineEmits(['saveAdd']);
-
 const record = reactive({});
-
-const [registerModal, { openModal, closeModal }] = useModal();
-
 const columnList = getTableHeaderColumns('');
-
+let visibleUp=ref(false)
+let resetTable=ref(0)
+let optionLists=reactive<any[]>([])
+const [registerModal, { openModal, closeModal }] = useModal();
 // 列表页面公共参数、方法
 const { prefixCls, tableContext, onExportXls, onImportXls, doRequest } = useListPage({
   designScope: props.designScope,
@@ -119,16 +121,32 @@ const { prefixCls, tableContext, onExportXls, onImportXls, doRequest } = useList
       width: 180,
     },
     beforeFetch: (params) => {
-      return Object.assign(params , { column: 'createTime',reportType:props.reportType });
+      return Object.assign(params, { column: 'createTime', reportType: props.reportType });
     },
   },
 });
-
-
-
 //注册table数据
 const [registerTable, { reload, getForm }, { rowSelection, selectedRowKeys }] = tableContext;
 
+//报表或模板上传
+function handleUpload() {
+  visibleUp.value=true
+}
+function resetUpload(){
+  resetTable.value=new Date().getTime()
+}
+
+//获取模板报表列表数据
+async function getQueryList(){
+  let res=await getQuery()
+  console.log(res,'报表模板---------')
+  if(res.length!=0){
+    optionLists.length=0
+    res[0].children.forEach(el=>{
+      optionLists.push({label:el.itemText,value:el.id})
+    })
+  }
+}
 
 /**
  * 新增事件
@@ -138,8 +156,8 @@ function handleAdd() {
   for (let key in record) {
     delete record[key];
   }
+  getQueryList()
   openModal(true);
-
 }
 
 //新增保存

+ 139 - 0
src/views/vent/reportManager/comment/common/tempUpload.vue

@@ -0,0 +1,139 @@
+<template>
+    <div class="tempUpload">
+        <a-modal v-model:visible="visibleUpload" centered :width="600" title="报表或模板上传" @ok="handleUploadOk"
+            @cancel="handleUploadCancel">
+            <a-form :model="uploadForm" :label-col="{ style: { width: '130px' } }" :wrapper-col="{ span: 16 }">
+                <a-form-item label="文件名称:">
+                    <a-input v-model:value="uploadForm.fileName" placeholder="请输入文件名称..." />
+                </a-form-item>
+                <a-form-item label="业务种类:">
+                    <JDictSelectTag v-model:value="uploadForm.busKind" placeholder="请选择业务种类..." dictCode="reportBusKind"
+                        @change="changeKind" />
+                </a-form-item>
+                <a-form-item label="报表类型:">
+                    <JDictSelectTag v-if="kindType == 'ventSReport'" v-model:value="uploadForm.reportType"
+                        placeholder="请选择报表类型..." dictCode="ventSReport" />
+                    <JDictSelectTag v-if="kindType == 'fireSReport'" v-model:value="uploadForm.reportType"
+                        placeholder="请选择报表类型..." dictCode="fireSReport" />
+                    <JDictSelectTag v-if="kindType == 'dustSReport'" v-model:value="uploadForm.reportType"
+                        placeholder="请选择报表类型..." dictCode="dustSReport" />
+                    <JDictSelectTag v-if="kindType == 'gasSReport'" v-model:value="uploadForm.reportType"
+                        placeholder="请选择报表类型..." dictCode="gasSReport" />
+                </a-form-item>
+                <a-form-item label="模式类型:">
+                    <a-radio-group v-model:value="uploadForm.modelType" name="radioGroup">
+                        <a-radio v-for="item in radioList" :value="item.value">{{ item.label }}</a-radio>
+                    </a-radio-group>
+                </a-form-item>
+                <a-form-item label="文件上传">
+                    <a-upload :before-upload="beforeUpload" @remove="handleRemove" :multiple="false"
+                        :file-list="fileList">
+                        <a-button type="primary" preIcon="ant-design:cloud-upload-outlined">选择文件</a-button>
+                    </a-upload>
+                </a-form-item>
+            </a-form>
+        </a-modal>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive, watch } from 'vue'
+import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
+import { getUpload } from '../../reportManager.api'
+import { useMessage } from '/@/hooks/web/useMessage';
+
+let props = defineProps({
+    visibleUp: {
+        type: Boolean,
+        default: false
+    }
+})
+
+let visibleUpload = ref(false)
+let uploadForm = reactive({
+    fileName: '',
+    busKind: '',
+    modelType: '',
+    reportType: '',
+})
+//模式类型数据
+let radioList = ref<any[]>([
+    { label: '自动生成', value: 0 },
+    { label: '手动填写', value: 1 },
+    { label: '模板', value: 2 },
+])
+let kindType = ref('ventSReport')
+let fileList = reactive<any[]>([]); //上传文件列表
+const { createMessage } = useMessage();
+let emit = defineEmits(['resetUpload'])
+
+//确认上传
+async function handleUploadOk() {
+    const formData = new FormData();
+    formData.append('file', fileList[0]);
+    formData.append('fileName', uploadForm.fileName);
+    formData.append('busKind', uploadForm.busKind);
+    formData.append('modelType', uploadForm.modelType);
+    formData.append('reportType', uploadForm.reportType);
+    let res = await getUpload(formData)
+    if (res) {
+        visibleUpload.value = false
+        emit('resetUpload')
+    }
+}
+//取消上传
+function handleUploadCancel() {
+    visibleUpload.value = false
+    uploadForm.modelType = ''
+    uploadForm.fileName = ''
+    uploadForm.reportType = ''
+    uploadForm.busKind = ''
+}
+//业务种类下拉选项切换
+function changeKind(val) {
+    kindType.value = `${val}Report`
+}
+//上传文件
+let beforeUpload = (file) => {
+    fileList.length = 0;
+    let index = file.name.indexOf('.');
+    let name = file.name.substring(index + 1);
+    if (name == 'png' || name == 'jpg' || name == 'gif' || name == 'psd' || name == 'webp') {
+        createMessage.warning('禁止上传图片类型的文件!');
+    } else {
+        fileList.push(file);
+    }
+};
+// 文件移除
+let handleRemove = (file) => {
+    const index = fileList.indexOf(file);
+    const newFileList = fileList.slice();
+    newFileList.splice(index, 1);
+    fileList.length = 0;
+};
+
+watch(() => props.visibleUp, (newV, oldV) => {
+    fileList.length = 0
+    visibleUpload.value = newV
+}, {
+    immediate: true
+})
+</script>
+
+<style lang="less" scoped>
+.tempUpload {
+    position: relative;
+    width: 100%;
+    height: 100%;
+
+}
+
+.zxm-form {
+    padding-top: 20px !important;
+    box-sizing: border-box
+}
+
+:deep(.zxm-upload-list-item-name) {
+    color: #fff !important;
+}
+</style>

+ 79 - 35
src/views/vent/reportManager/index.vue

@@ -15,11 +15,10 @@
         </fileSystem>
       </div>
       <div class="right-box">
-        <NormalTable :key="dataNow" :reportType="reportType" :columns="columns" :searchFormSchema="searchFormSchema"
-          :deleteById="deleteById" :downLoad="downLoad" :list="reportList" designScope="device-tabel" title="报表管理"
-          :showTab="true" @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>
@@ -31,22 +30,40 @@ 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 { columns, searchFormSchema } from './reportManager.data';
-import { reportList, save, deleteById, downLoad } from './reportManager.api';
-import { getDictItemsByCode } from '/@/utils/dict';
+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 reportType = ref('')
+let searchParam = reactive({
+  busKind: '',
+  modelType: '',
+  reportType: '',
+})
 
 //左侧菜单列表
 let listArr = reactive<any[]>([
   {
-    pid: 'root',
+    pid: 'auto',
     isFolder: true,
-    title: '全部',
-    id: '',
+    title: '自动报表',
+    id: '000',
     children: []
-  }
+  },
+  {
+    pid: 'hand',
+    isFolder: true,
+    title: '手动报表',
+    id: '111',
+    children: []
+  },
+  {
+    pid: 'temp',
+    isFolder: true,
+    title: '报表模板',
+    id: '222',
+    children: []
+  },
 ]);
 //lxh 当前选中树节点
 let selected = reactive<any>({
@@ -57,40 +74,67 @@ let selected = reactive<any>({
 });
 
 //获取左侧菜单树
-function getTreeList() {
-  const res = getDictItemsByCode('reportType')
-  console.log(res, 'res====----')
+async function getTreeList() {
+  const res = await getQuery()
   if (res.length != 0) {
-    listArr[0].children.length = 0
-    res.forEach(el => {
-      listArr[0].children.push({
-        pid: '',
-        isFolder: false,
-        title: el.label,
-        id: el.value,
-        children: []
+    listArr.forEach(el => {
+      el.children.length = 0
+      res.forEach(v => {
+        v.pid = el.id
+        v.isFolder = true
+        v.title = v.itemText
+        v.id = v.itemValue
+        if (v.children.length != 0) {
+          v.children.forEach(m => {
+            m.pid = v.id
+            m.ppid = v.pid
+            m.isFolder = false
+            m.title = m.itemText,
+              m.id = m.itemValue
+          })
+        }
       })
+      el.children = res
     })
-
+    console.log(listArr, 'listArr-----------')
   }
 }
 //点击目录
 async function onClick(node) {
-  // if (node.pid != 'root') {
-    console.log(node, 'node--------------')
-    selected.id = node.id;
-    selected.pid = node.pid;
-    selected.title = node.title;
-    selected.isFolder = node.isFolder;
-    reportType.value = node.id
-    dataNow.value = new Date().getTime()
-  // }
-
+  console.log(node, 'node--------------')
+  if (node.pid == 'auto') {
+    treeClick(node)
+  } else if (node.pid == 'hand') {
+    treeClick(node)
+  } else {
+    treeClick(node)
+  }
 };
+function treeClick(node) {
+  selected.id = node.id;
+  selected.pid = node.pid;
+  selected.title = node.title;
+  selected.isFolder = node.isFolder;
+
+  listArr.forEach(el => {
+    let middleData = el.children.filter(v => v.id == node.pid)[0]
+    console.log(middleData, 'middleData-------')
+    if (middleData.pid == '')
+      console.log(middleData, 'middleData-------')
+  })
+  // searchParam.busKind=
+  // searchParam.modelType=
+  // searchParam.reportType=
+  dataNow.value = new Date().getTime()
+}
 
 async function saveAdd(params) {
   let res = await save({ ...params });
-  console.log(res, '新增成功-------');
+  if (res.id) {
+    message.warning('新增成功!');
+  } else {
+    message.error('新增失败!')
+  }
   dataNow.value = new Date().getTime()
 }
 

+ 19 - 5
src/views/vent/reportManager/reportManager.api.ts

@@ -5,9 +5,11 @@ enum Api {
   reportList = '/safety/reportInfo/list',
   save = '/safety/reportInfo/createReportFile',
   deleteById = '/safety/reportInfo/delete',
-  downLoad='/safety/reportInfo/download',
-  hisList='/safety/reportLog/list',
-  hisdownload='/safety/reportLog/download'
+  downLoad = '/safety/reportInfo/download',
+  hisList = '/safety/reportLog/list',
+  hisdownload = '/safety/reportLog/download',
+  getQuery = '/sys/dict/reportKind/query',
+  getUpload = '/safety/reportInfo/upload',
 }
 
 
@@ -41,10 +43,22 @@ export const deleteById = (params, handleSuccess) => {
 
 /*
   下载
-*/ 
+*/
 export const downLoad = (params) => defHttp.post({ url: Api.downLoad, params, responseType: 'blob' });
 
 /*
   报表历史记录下载
-*/ 
+*/
 export const hisdownload = (params) => defHttp.post({ url: Api.hisdownload, params, responseType: 'blob' });
+
+/**
+ * 报表菜单类型
+ * @param params
+ */
+export const getQuery = () => defHttp.get({ url: Api.getQuery });
+
+/**
+ * 报表或模板上传
+ * @param params
+ */
+export const getUpload = (params) => defHttp.post({ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, url: Api.getUpload, params });

+ 12 - 24
src/views/vent/reportManager/reportManager.data.ts

@@ -56,30 +56,18 @@ export const columns: BasicColumn[] = [
     // },
   ];
 
-  export const searchFormSchema: FormSchema[] = [
-   
-    {
-        label: '报表类型',
-        field: 'reportType',
-        component: 'JDictSelectTag',
-        componentProps: {
-          dictCode: 'reportType',
-          placeholder: '请选择报表类型',
-        },
-        colProps: { span: 6 },
-      },
-
-      // {
-      //   label: '报表版本',
-      //   field: 'reportVersion',
-      //   component: 'JDictSelectTag',
-      //   componentProps: {
-      //     dictCode: 'reportVersion',
-      //     placeholder: '请选择报表版本',
-      //   },
-      //   colProps: { span: 6 },
-      // },
-  ];
+  // export const searchFormSchema: FormSchema[] = [
+  //   {
+  //       label: '报表类型',
+  //       field: 'reportType',
+  //       component: 'JDictSelectTag',
+  //       componentProps: {
+  //         dictCode: 'reportType',
+  //         placeholder: '请选择报表类型',
+  //       },
+  //       colProps: { span: 6 },
+  //     },
+  // ];
 //报表历史记录
   export const columnsHis: BasicColumn[] = [
     {