瀏覽代碼

指标溯源为新的页面

cxmo 1 年之前
父節點
當前提交
c8ba9c13fd

+ 15 - 0
src/hooks/edb/useToHistoryPage.js

@@ -0,0 +1,15 @@
+import { useRouter } from 'vue-router'
+export function useToHistoryPage(){
+    const router=useRouter()
+    function toHistoryPage(edbId){
+        if(!edbId) return
+        const routerEl = router.resolve({
+            path:'/dataEDB/history',
+            query:{
+                edbId
+            }
+        })
+        window.open(routerEl.href,'_blank')
+    }
+    return { toHistoryPage }
+}

+ 8 - 0
src/router/dataEDB.js

@@ -88,4 +88,12 @@ export const dataEDBRoutes=[
             title: "替换指标"
         },
     },
+    {
+        path:"/dataEDB/history",
+        name:"DataEDBHistory",
+        component: () => import("@/views/dataEDB/EDBHistoryPage.vue"),
+        meta: { 
+            title: "指标溯源"
+        },
+    },
 ]

+ 4 - 2
src/views/dataEDB/Detail.vue

@@ -15,8 +15,9 @@ import {useEDBDelete} from './hooks/useEDBDelete'
 import {useCachedViewsStore} from '@/store/modules/cachedViews'
 import { useWindowSize } from '@vueuse/core'
 import {edbDataBtn,useAuthBtn} from '@/hooks/useAuthBtn'
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
 const {checkAuthBtn} = useAuthBtn()
-
+const {toHistoryPage} = useToHistoryPage()
 const { width } = useWindowSize()
 const cachedViewsStore=useCachedViewsStore()
 const {edbClassifyDelete} =useEDBDelete()
@@ -264,7 +265,7 @@ function isMoreOptShow(){
                     @click="showSetNewData=true"
                 >{{edbInfo.DataInsertConfig.Date?'编辑最新值':'添加最新值'}}</li>
                 <li class="item" v-if="edbInfo.EdbType===1&&checkAuthBtn(edbDataBtn.edbData_refreshAll)" @click="handleRefreshBaseEDBData">全部刷新</li>
-                <li class="item" v-if="edbInfo.EdbType===2&&checkAuthBtn(edbDataBtn.edbData_edbSource)" @click="showEDBHistory=true">指标溯源</li>
+                <li class="item" v-if="edbInfo.EdbType===2&&checkAuthBtn(edbDataBtn.edbData_edbSource)" @click="toHistoryPage(edbInfo?.EdbInfoId)">指标溯源</li>
                 <li class="item" v-if="edbInfo.EdbType===2&&checkAuthBtn(edbDataBtn.edbData_calculateAgain)" @click="handleCalculateReset">重新计算</li>  
                 <li class="item" v-if="activeType==='chart'&&checkAuthBtn(edbDataBtn.edbData_saveEdb)" @click="handleSave">保存</li>
                 <li class="item color-red" 
@@ -297,6 +298,7 @@ function isMoreOptShow(){
 }
 .edb-detail-page{
     padding-bottom: 120px;
+    overflow-x: hidden;
 }
 .fix-bottom-box{
     position: fixed;

+ 118 - 0
src/views/dataEDB/EDBHistoryPage.vue

@@ -0,0 +1,118 @@
+<script setup>
+import { ref, onMounted} from 'vue'
+import apiDataEDB from '@/api/dataEDB'
+import { useRoute } from 'vue-router'
+
+const route=useRoute()
+
+
+// 获取记录
+const treeData=ref({})
+async function getHistory(){
+    const res=await apiDataEDB.edbCreateHistory({EdbInfoId:Number(route.query.edbId)})
+    if(res.Ret===200){
+        treeData.value=res.Data
+    }
+}
+/* function changeFullScreen(){
+    //将render-wrap内容旋转90°
+} */
+onMounted(()=>{
+    getHistory()
+})
+
+</script>
+
+<template>
+    <div class="edb-history-page-wrap">
+        <div class="edb-title van-ellipsis">{{treeData.EdbName||''}}</div>
+        <div class="render-wrap" id="render-wrap">
+            <vue3TreeOrg
+                :data="treeData"
+                :props="{
+                    label: 'EdbName',
+                    children: 'Child',
+                }"
+                :disabled="true"
+                :scalable="false"
+                :draggable="false"
+                :horizontal="false"
+                :toolBar="{scale: false, restore: false, expand: false, zoom: false, fullscreen: false, }"
+            />
+        </div>
+        <!-- <div class="full-btn">
+            <div class="btn" @click="changeFullScreen">
+                全屏显示
+            </div>
+        </div> -->
+    </div>
+    
+</template>
+
+<style lang="scss" scoped>
+.edb-history-page-wrap{
+    display: flex;
+    flex-direction: column;
+    height: 100vh;
+    overflow: hidden;
+    .edb-title{
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        padding:30px 0;
+        box-sizing: border-box;
+        border-bottom: 1px solid #C8CDD9;
+    }
+    .full-btn{
+        padding:48px;
+        box-sizing: border-box;
+        .btn{
+            background-color: #0052D9;
+            color: #fff;
+            height:80px;
+            line-height: 80px;
+            text-align: center;
+        }
+    }
+    .render-wrap{
+        flex:1;
+        overflow: hidden;
+        :deep(.zoom-container){
+            overflow: auto;
+        }
+        :deep(.zm-draggable){
+            position: static;
+            display: inline-block;
+        }
+        :deep(.tree-org){
+            pointer-events: none;
+        }
+        :deep(.tree-org-node__text){
+            width: 240px;
+        }
+        :deep(.tree-org-node__content){
+            background-color: #0052D9;
+            color: #fff;
+            border-radius: 4PX;
+        }
+        :deep(.tree-org-node__children){
+            .tree-org-node__content{
+                background-color: #F2F6FA;
+                color: #333333;
+                border-radius: 4PX;
+            }
+        }
+    }
+    @media screen and (min-width:650px){
+        height: calc(100vh - 60px);
+        .render-wrap{
+            :deep(.tree-org-node__text){
+                width: 130px;
+            }
+        }
+        .edb-title,.full-btn{
+            display: none;
+        }
+    }
+}
+</style>

+ 6 - 3
src/views/dataEDB/calculate/BatchDetail.vue

@@ -10,7 +10,8 @@ import EDBHistory from '@/views/dataEDB/components/EDBHistory.vue'
 import {calculateTypeTipsMap} from '../util/config'
 import { showToast,showDialog  } from 'vant';
 import apiDataEDB from '@/api/dataEDB'
-
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
+const {toHistoryPage} = useToHistoryPage()
 const route=useRoute()
 const router=useRouter()
 
@@ -377,8 +378,10 @@ const edbHistoryId=ref(0)
 function handleShowEDBHistory(item){
     //计算指标打开弹窗,基础指标打开新页面
     if(item.EdbType===2){
-        edbHistoryId.value=item.EdbInfoId
-        showEDBHistory.value=true
+        /* edbHistoryId.value=item.EdbInfoId
+        showEDBHistory.value=true */
+        toHistoryPage(item.EdbInfoId)
+
     }else{
         const routerEl=router.resolve({
             path:'/dataEDB/detail',

+ 5 - 2
src/views/dataEDB/calculate/components/DiffusionIndexCalcualate.vue

@@ -10,6 +10,8 @@ import EDBHistory from '@/views/dataEDB/components/EDBHistory.vue'
 import {calculateTypeTipsMap} from '../../util/config'
 import { useRoute, useRouter } from 'vue-router';
 import moment from 'moment';
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
+const {toHistoryPage} = useToHistoryPage()
 
 const props=defineProps({
     edbInfo:{
@@ -248,8 +250,9 @@ const edbHistoryId=ref(0)
 function handleShowEDBHistory(item){
     //计算指标打开弹窗,基础指标打开新页面
     if(item.EdbType===2){
-        edbHistoryId.value=item.target
-        showEDBHistory.value=true
+        /* edbHistoryId.value=item.target
+        showEDBHistory.value=true */
+        toHistoryPage(item.target)
     }else{
         const routerEl=router.resolve({
             path:'/dataEDB/detail',

+ 5 - 2
src/views/dataEDB/calculate/components/FittingResidualsCalculate.vue

@@ -11,6 +11,8 @@ import EDBHistory from '@/views/dataEDB/components/EDBHistory.vue'
 import { showToast } from 'vant'
 import { useRoute, useRouter } from 'vue-router'
 import moment from 'moment'
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
+const {toHistoryPage} = useToHistoryPage()
 
 const route=useRoute()
 const router=useRouter()
@@ -255,8 +257,9 @@ const edbHistoryId=ref(0)
 function handleShowEDBHistory(data){
     //计算指标打开弹窗,基础指标打开新页面
     if(data.EdbType===2){
-        edbHistoryId.value=data.EdbInfoId
-        showEDBHistory.value=true
+        /* edbHistoryId.value=data.EdbInfoId
+        showEDBHistory.value=true */
+        toHistoryPage(data.EdbInfoId)
     }else{
         const routerEl=router.resolve({
             path:'/dataEDB/detail',

+ 5 - 2
src/views/dataEDB/calculate/components/FormulaCalculate.vue

@@ -9,6 +9,8 @@ import SelectEDBUnit from '../../components/SelectEDBUnit.vue'
 import SelectEDBFrequency from '../../components/SelectEDBFrequency.vue'
 import {calculateTypeTipsMap} from '../../util/config'
 import { useRoute, useRouter } from 'vue-router';
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
+const {toHistoryPage} = useToHistoryPage()
 
 import SelectDate from '@/components/SelectDate.vue'
 
@@ -150,8 +152,9 @@ const edbHistoryId=ref(0)
 function handleShowEDBHistory(item){
     //计算指标打开弹窗,基础指标打开新页面
     if(item.EdbType===2){
-        edbHistoryId.value=item.target
-        showEDBHistory.value=true
+        /* edbHistoryId.value=item.target
+        showEDBHistory.value=true */
+        toHistoryPage(item.target)
     }else{
         const routerEl=router.resolve({
             path:'/dataEDB/detail',

+ 5 - 2
src/views/dataEDB/calculate/components/OtherCalculate.vue

@@ -11,6 +11,8 @@ import {calculateTypeTipsMap} from '../../util/config'
 import { showToast } from 'vant';
 import apiDataEDB from '@/api/dataEDB'
 import { useWindowSize } from '@vueuse/core'
+import {useToHistoryPage} from '@/hooks/edb/useToHistoryPage'
+const {toHistoryPage} = useToHistoryPage()
 
 const { width } = useWindowSize()
 const route=useRoute()
@@ -333,8 +335,9 @@ const edbHistoryId=ref(0)
 function handleShowEDBHistory(data){
     //计算指标打开弹窗,基础指标打开新页面
     if(data.EdbType===2){
-        edbHistoryId.value=data.EdbInfoId
-        showEDBHistory.value=true
+        /* edbHistoryId.value=data.EdbInfoId
+        showEDBHistory.value=true */
+        toHistoryPage(data.EdbInfoId)
     }else{
         const routerEl=router.resolve({
             path:'/dataEDB/detail',