|
@@ -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 {
|