riku
2025-09-16 5ad61d6ad3a0ce12c7fe0808527069b09a7c9c0d
新增基础产品
已修改5个文件
已删除1个文件
已添加5个文件
已复制1个文件
已重命名2个文件
624 ■■■■ 文件已修改
src/App.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fysp/dataprodbaseApi.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fysp/dataprodmiddleApi.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fysp/dataproductApi.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/menu.js 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/HomePage.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdManage.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/data-product/base-data-product/ProdTreatmentDeviceInfo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -1,40 +1,6 @@
<template>
  <el-config-provider :locale="locale">
    <el-container class="el-container">
      <el-aside class="el-aside"
        ><SiderMenu
          :collapse="isCollapsed"
          @nav-page="navPage"
        ></SiderMenu
      ></el-aside>
      <el-container>
        <el-header class="el-header"
          ><Header
            :navTitles="navTitles"
            :collapse="isCollapsed"
            @collapsed-sider="collapsedSider"
          ></Header
        ></el-header>
        <el-main class="el-main">
          <el-scrollbar>
            <div class="el-main__content">
              <Content></Content>
              <!-- <el-backtop
                target=".el-main .el-scrollbar__wrap"
                :right="10"
                :bottom="100"
                style="z-index: 1000;"
              >
                <div class="back-top">
                  <el-icon><ArrowUpBold /></el-icon>
                  <span style="">返回顶部</span>
                </div>
              </el-backtop> -->
            </div>
          </el-scrollbar>
        </el-main>
      </el-container>
    </el-container>
    <router-view></router-view>
  </el-config-provider>
</template>
@@ -44,62 +10,8 @@
export default {
  data() {
    return {
      isCollapsed: false,
      navTitles: [],
      locale: zhCn,
      locale: zhCn
    };
  },
  methods: {
    collapsedSider(b) {
      this.isCollapsed = b;
    },
    navPage(titles) {
      this.navTitles = titles;
    },
  },
  }
};
</script>
<style scoped>
.el-container{
  /* min-height: 820px; */
}
.el-aside {
  width: initial;
}
.el-header {
  /* background-color: rgb(216, 201, 201); */
  border-bottom: 1px solid var(--el-color-info-light-7);
}
.el-main {
  position: relative;
  /* background-color: bisque; */
  padding: initial;
  /* max-height: calc(100vh - 60px); */
  /* overflow: hidden; */
}
.el-main__content {
  padding: var(--el-main-padding) calc(var(--el-main-padding) / 2);
  max-height: calc(100vh - 60px - var(--el-main-padding) * 2);
  /* background-color: aqua; */
  /* overflow: auto; */
}
.back-top {
  display: flex;
  align-items: center;
  justify-content: space-around;
  height: 100%;
  width: 100%;
  background-color: var(--el-bg-color-overlay);
  box-shadow: var(--el-box-shadow-lighter);
  text-align: center;
  /* line-height: 40px; */
  color: var(--el-color-info);
  border: var(--el-border);
  font-size: var(--el-font-size-medium);
  border-radius: var(--el-border-radius-base);
}
</style>
src/api/fysp/dataprodbaseApi.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import { $fysp } from '../index';
export default {
  /**
   * èŽ·å–æ•°æ®äº§å“åœºæ™¯ä¿¡æ¯
   * @param {*} option æ•°æ®äº§å“åœºæ™¯ä¿¡æ¯æŸ¥è¯¢å‚æ•°
   * @returns
   */
  fetchProdSceneInfo(option) {
    return $fysp.post(`dataProd/base/scene/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * èŽ·å–æ•°æ®äº§å“è¯„ä¼°ä¿¡æ¯
   * @param {*} option æ•°æ®äº§å“è¯„估信息查询参数
   * @returns
   */
  fetchProdEvaluateInfo(option) {
    return $fysp.post(`dataProd/base/evaluate/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * èŽ·å–æ•°æ®äº§å“å·¡æŸ¥ä¿¡æ¯
   * @param {*} option æ•°æ®äº§å“å·¡æŸ¥ä¿¡æ¯æŸ¥è¯¢å‚æ•°
   * @returns
   */
  fetchProdInspectionInfo(option) {
    return $fysp.post(`dataProd/base/inspection/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * èŽ·å–æ•°æ®äº§å“ç›‘æŽ§æ•°æ®ä¿¡æ¯
   * @param {*} option æ•°æ®äº§å“ç›‘控数据信息查询参数
   * @returns
   */
  fetchProdMonitorDataInfo(option) {
    return $fysp.post(`dataProd/base/monitorData/get?`, option).then((res) => {
      return res.data;
    });
  },
};
src/api/fysp/dataprodmiddleApi.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import { $fysp } from '../index';
export default {
  /**
   * å·¡æŸ¥å®Œæˆæƒ…况汇总
   * @param {*} option
   * @returns
   */
  fetchInspectionSummary(option) {
    return $fysp.post(`dataProd/middle/inspection/summary/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * é—®é¢˜ç±»åž‹æ±‡æ€»
   * @param {*} option
   * @returns
   */
  fetchProblemTypeSummary(option) {
    return $fysp.post(`dataProd/middle/problemType/summary/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * åˆ†åŒºåŸŸå•场景问题数量
   * @param {*} option
   * @returns
   */
  fetchProblemCountByArea(option) {
    return $fysp.post(`dataProd/middle/problemCount/area/get?`, option).then((res) => {
      return res.data;
    });
  },
  /**
   * åˆ†åŒºåŸŸå•规范性情况
   * @param {*} option
   * @returns
   */
  fetchEvaluationByArea(option) {
    return $fysp.post(`dataProd/middle/evaluation/area/get?`, option).then((res) => {
      return res.data;
    });
  },
};
src/api/fysp/dataproductApi.js
@@ -48,5 +48,6 @@
    return $fysp.post(`dataProduct/problemRecurrence?`, option).then((res) => {
      return res.data;
    });
  }
  },
};
src/api/index.js
@@ -1,7 +1,7 @@
import axios from 'axios';
import { ElMessage } from 'element-plus';
const debug = false;
const debug = true;
// let ip1 = 'http://47.100.191.150:9005/';
// let ip1_file = 'http://47.100.191.150:9005/';
src/constants/menu.js
@@ -1,6 +1,6 @@
const MENU_COMMON = [
  {
    path: '/common/userMatch',
    path: 'common/userMatch',
    icon: 'Connection',
    name: '账户匹配'
  }
@@ -8,7 +8,7 @@
if (import.meta.env.DEV) {
  MENU_COMMON.push({
    path: '/common/docTest',
    path: 'common/docTest',
    icon: 'Connection',
    name: '文档生成'
  });
@@ -23,7 +23,7 @@
  //   ]
  // },
  {
    path: '/fysp/procheck',
    path: 'fysp/procheck',
    icon: 'CircleCheck',
    name: '问题整改'
  },
@@ -32,12 +32,12 @@
    name: '任务管理',
    children: [
      {
        path: '/fysp/task/manage',
        path: 'fysp/task/manage',
        icon: 'CircleCheck',
        name: '监管任务'
      },
      {
        path: '/fysp/sceneInfo',
        path: 'fysp/sceneInfo',
        icon: 'Files',
        name: '场景信息'
      }
@@ -47,23 +47,23 @@
    icon: 'DataAnalysis',
    name: '基础数据产品',
    children: [
      {
        path: 'fysp/data-product/base/home/scene',
        icon: 'Document',
        name: '现场巡查',
      },
      // {
      //   path: '/fysp/data-product/base/ProdScenseInfo',
      //   icon: 'Document',
      //   name: '场景清单',
      // },
      // {
      //   path: '/fysp/data-product/base/ProdMonitorTaskInfo',
      //   path: 'fysp/data-product/base/ProdMonitorTaskInfo',
      //   icon: 'Document',
      //   name: '监管清单',
      // },
      // {
      //   path: '/fysp/data-product/base/ProdTreatmentDeviceInfo',
      //   path: 'fysp/data-product/base/ProdTreatmentDeviceInfo',
      //   icon: 'Document',
      //   name: '防治设备清单',
      // },
      {
        path: '/fysp/data-product/base/PordProblemRecurrence',
        path: 'fysp/data-product/base/PordProblemRecurrence',
        icon: 'Document',
        name: '问题复发清单',
      },
@@ -74,27 +74,27 @@
    name: '中间数据产品',
    children: [
      {
        path: '/fysp/data-product/profollow',
        path: 'fysp/data-product/profollow',
        icon: 'Document',
        name: '问题动态跟踪'
      },
      {
        path: '/fysp/data-product/proanalysis',
        path: 'fysp/data-product/proanalysis',
        icon: 'Document',
        name: '问题整改分析'
      },
      {
        path: '/fysp/data-product/standardjudge',
        path: 'fysp/data-product/standardjudge',
        icon: 'Document',
        name: '规范性评估'
      },
      {
        path: '/fysp/data-product/dailyreport',
        path: 'fysp/data-product/dailyreport',
        icon: 'Document',
        name: '日报管理'
      },
      {
        path: '/fysp/data-product/lawenforcelist',
        path: 'fysp/data-product/lawenforcelist',
        icon: 'Document',
        name: '联合执法清单'
      },
@@ -106,7 +106,7 @@
    name: '最终数据产品',
    children: [
      {
        path: '/fysp/data-product/scenereport',
        path: 'fysp/data-product/scenereport',
        icon: 'Document',
        name: '场景分析报告'
      }
@@ -122,12 +122,12 @@
    name: '自动评估',
    children: [
      {
        path: '/fysp/evaluation/evalutationTask',
        path: 'fysp/evaluation/evalutationTask',
        icon: 'MessageBox',
        name: '评估任务'
      },
      {
        path: '/fysp/evaluation/evalutationRecord',
        path: 'fysp/evaluation/evalutationRecord',
        icon: 'Tickets',
        name: '评估记录'
      }
@@ -138,25 +138,25 @@
    name: '配置管理',
    children: [
      {
        path: '/fysp/config/problemType',
        path: 'fysp/config/problemType',
        icon: 'List',
        name: '监管问题'
      },
      {
        path: '/fysp/config/deviceMatch',
        path: 'fysp/config/deviceMatch',
        icon: 'List',
        name: '设备匹配'
      },
      {
        //评估规则管理
        path: '/fysp/config/evalutationRule',
        path: 'fysp/config/evalutationRule',
        icon: 'List',
        name: '评估规则'
      }
    ]
  },
  {
    path: '/fysp/support',
    path: 'fysp/support',
    icon: 'Files',
    name: '对外支持'
  },
@@ -210,17 +210,17 @@
const MENU_FYTZ = [
  // {
  //   path: '/fytz/ledger',
  //   path: 'fytz/ledger',
  //   icon: 'Search',
  //   name: '台账审核'
  // },
  {
    path: '/fytz/notice',
    path: 'fytz/notice',
    icon: 'Message',
    name: '通知管理'
  },
  {
    path: '/fytz/userInfo',
    path: 'fytz/userInfo',
    icon: 'User',
    name: '账户信息'
  },
@@ -229,7 +229,7 @@
    name: '资源管理',
    children: [
      {
        path: '/fytz/enforceCase',
        path: 'fytz/enforceCase',
        icon: 'Search',
        name: '督察案例'
      }
src/router/index.js
@@ -1,9 +1,18 @@
// eslint-disable-next-line no-unused-vars
import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'
import pinia from '../stores/index'
import { useLoadingStore } from '../stores/loadingStore'
import {
  createRouter,
  createWebHistory,
  createWebHashHistory
} from 'vue-router';
import pinia from '../stores/index';
import { useLoadingStore } from '../stores/loadingStore';
const routes = [
  {
    name: 'home',
    path: '/',
    component: () => import('@/views/HomePage.vue'),
    children: [
  // {
  //   //整改审核
  //   name: 'changecheck',
@@ -14,38 +23,40 @@
  {
    //问题动态跟踪
    name: 'profollow',
    path: '/fysp/data-product/profollow',
        path: 'fysp/data-product/profollow',
    component: () => import('@/views/fysp/data-product/ProdProFollow.vue')
  },
  {
    //问题整改分析
    name: 'proanalysis',
    path: '/fysp/data-product/proanalysis',
        path: 'fysp/data-product/proanalysis',
    component: () => import('@/views/fysp/data-product/ProdProAnalysis.vue')
  },
  {
    //规范性评估
    name: 'standardjudge',
    path: '/fysp/data-product/standardjudge',
    component: () => import('@/views/fysp/data-product/ProdStandardJudge.vue')
        path: 'fysp/data-product/standardjudge',
        component: () =>
          import('@/views/fysp/data-product/ProdStandardJudge.vue')
  },
  {
    //日报管理
    name: 'dailyreport',
    path: '/fysp/data-product/dailyreport',
        path: 'fysp/data-product/dailyreport',
    component: () => import('@/views/fysp/data-product/ProdDailyReport.vue')
  },
  {
    //场景报告
    name: 'scenereport',
    path: '/fysp/data-product/scenereport',
        path: 'fysp/data-product/scenereport',
    component: () => import('@/views/fysp/data-product/ProdSceneReport.vue')
  },
  {
    //场景报告
    name: 'lawenforcelist',
    path: '/fysp/data-product/lawenforcelist',
    component: () => import('@/views/fysp/data-product/ProdLawEnforceList.vue')
        path: 'fysp/data-product/lawenforcelist',
        component: () =>
          import('@/views/fysp/data-product/ProdLawEnforceList.vue')
  },
  // {
  //   //场景报告-工地
@@ -75,154 +86,189 @@
  {
    //监管任务
    name: 'taskmanage',
    path: '/fysp/task/manage',
        path: 'fysp/task/manage',
    component: () => import('@/views/fysp/task/TaskManage.vue'),
    meta: { keepAlive: true }
  },
  {
    //监管任务场景编辑
    name: 'monitorObjEdit',
    path: '/fysp/task/edit',
        path: 'fysp/task/edit',
    component: () => import('@/views/fysp/task/MonitorObjEdit.vue')
  },
  {
    //监管任务计划编辑
    name: 'monitorPlanEdit',
    path: '/fysp/task/plan/edit',
        path: 'fysp/task/plan/edit',
    component: () => import('@/views/fysp/task/MonitorPlanEdit.vue')
  },
  {
    //监管任务计划编辑
    name: 'monitorTaskCreate',
    path: '/fysp/task/create',
        path: 'fysp/task/create',
    component: () => import('@/views/fysp/task/MonitorTaskCreate.vue')
  },
  {
    //问题审核
    name: 'procheck',
    path: '/fysp/procheck',
        path: 'fysp/procheck',
    component: () => import('@/views/fysp/check/ProCheck.vue')
  },
  // {
  //   //账户管理
  //   name: 'fyspUser',
  //   path: '/fysp/userInfo',
      //   path: 'fysp/userInfo',
  //   component: () => import('@/views/baseinfo/fysp/user/UserInfo.vue')
  // },
  {
    //监管问题
    name: 'fyspProblemType',
    path: '/fysp/config/problemType',
        path: 'fysp/config/problemType',
    component: () => import('@/views/fysp/config/ProblemType.vue')
  },
  {
    //设备匹配
    name: 'fyspDeviceMatch',
    path: '/fysp/config/deviceMatch',
        path: 'fysp/config/deviceMatch',
    component: () => import('@/views/fysp/config/DeviceMatch.vue')
  },
  {
    //评估规则管理
    name: 'fyspEvalutationRule',
    path: '/fysp/config/evalutationRule',
        path: 'fysp/config/evalutationRule',
    component: () => import('@/views/fysp/config/EvalutationRule.vue')
  },
  {
    //评估数据源
    name: 'fyspEvalutationTask',
    path: '/fysp/evaluation/evalutationTask',
        path: 'fysp/evaluation/evalutationTask',
    component: () => import('@/views/fysp/evaluation/EvalutationTask.vue'),
    meta: { keepAlive: false }
  },
  {
    //评估管理
    name: 'fyspEvalutationRecord',
    path: '/fysp/evaluation/evalutationRecord',
    component: () => import('@/views/fysp/evaluation/EvalutationRecord.vue'),
        path: 'fysp/evaluation/evalutationRecord',
        component: () =>
          import('@/views/fysp/evaluation/EvalutationRecord.vue'),
    meta: { keepAlive: true }
  },
  {
    //评估结果详情
    name: 'fyspEvalutationEdit',
    path: '/fysp/evaluation/evalutationEdit/:subTaskId',
    component: () => import('@/views/fysp/evaluation/EvalutationEdit.vue'),
        path: 'fysp/evaluation/evalutationEdit/:subTaskId',
        component: () => import('@/views/fysp/evaluation/EvalutationEdit.vue')
  },
  {
    //场景信息
    name: 'fyspSceneInfo',
    path: '/fysp/sceneInfo',
        path: 'fysp/sceneInfo',
    component: () => import('@/views/fysp/scene/SceneInfo.vue'),
    meta: { keepAlive: true }
  },
  {
    //场景编辑
    name: 'fyspSceneEdit',
    path: '/fysp/sceneEdit/:sid',
        path: 'fysp/sceneEdit/:sid',
    component: () => import('@/views/fysp/scene/SceneEdit.vue'),
    meta: { transition: 'slide-left' }
  },
  {
    //对外支持
    name: 'fyspSupport',
    path: '/fysp/support',
    component: () => import('@/views/fysp/support/JingAnSupport.vue'),
        path: 'fysp/support',
        component: () => import('@/views/fysp/support/JingAnSupport.vue')
  },
      {
        // åŸºç¡€äº§å“-管理
        name: 'ProdManage',
        path: 'fysp/data-product/base/home',
        component: () =>
          import('@/views/fysp/data-product/base-data-product/ProdManage.vue'),
        children: [
  {
    // åŸºç¡€äº§å“-场景清单
    name: 'ProdScenseInfo',
    path: '/fysp/data-product/base/ProdScenseInfo',
    component: () => import('@/views/fysp/data-product/base-data-product/ProdScenseInfo.vue')
            path: 'scene',
            name: 'ProdSceneInfo',
            meta: { keepAlive: true },
            component: () =>
              import(
                '@/views/fysp/data-product/base-data-product/ProdSceneInfo.vue'
              )
  },
  {
    // åŸºç¡€äº§å“-监管清单
    name: 'ProdMonitorTaskInfo',
    path: '/fysp/data-product/base/ProdMonitorTaskInfo',
    component: () => import('@/views/fysp/data-product/base-data-product/ProdMonitorTaskInfo.vue')
            // åŸºç¡€äº§å“-规范性评估
            path: 'evaluate',
            name: 'ProdEvaluationInfo',
            meta: { keepAlive: true },
            component: () =>
              import(
                '@/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue'
              )
  },
  {
    // åŸºç¡€äº§å“-防治设备清单
    name: 'ProdTreatmentDeviceInfo',
    path: '/fysp/data-product/base/ProdTreatmentDeviceInfo',
    component: () => import('@/views/fysp/data-product/base-data-product/ProdTreatmentDeviceInfo.vue')
            // åŸºç¡€äº§å“-巡查信息
            path: 'inspection',
            name: 'ProdInspectionInfo',
            meta: { keepAlive: true },
            component: () =>
              import(
                '@/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue'
              )
          },
          {
            // åŸºç¡€äº§å“-监测数据
            path: 'monitordata',
            name: 'ProdMonitorDataInfo',
            meta: { keepAlive: true },
            component: () =>
              import(
                '@/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue'
              )
          }
        ]
  },
  {
    // åŸºç¡€äº§å“-问题复发清单
    name: 'PordProblemRecurrence',
    path: '/fysp/data-product/base/PordProblemRecurrence',
    component: () => import('@/views/fysp/data-product/base-data-product/PordProblemRecurrence.vue')
        path: 'fysp/data-product/base/PordProblemRecurrence',
        component: () =>
          import(
            '@/views/fysp/data-product/base-data-product/PordProblemRecurrence.vue'
          )
  },
  /**********************************飞羽环境***********************************************/
  {
    //台账审核
    name: 'ledger',
    path: '/fytz/ledger',
        path: 'fytz/ledger',
    component: () => import('@/views/fytz/ledger/LedgerManage.vue')
  },
  {
    //通知管理
    name: 'notice',
    path: '/fytz/notice',
        path: 'fytz/notice',
    component: () => import('@/views/fytz/notice/NoticeManage.vue')
  },
  {
    //账户管理
    name: 'fytzUser',
    path: '/fytz/userInfo',
        path: 'fytz/userInfo',
    component: () => import('@/views/fytz/user/UserInfo.vue'),
    meta: { keepAlive: true }
  },
  {
    //账户编辑
    name: 'fytzUserEdit',
    path: '/fytz/userEdit/:userId',
        path: 'fytz/userEdit/:userId',
    component: () => import('@/views/fytz/user/UserEdit.vue'),
    meta: { transition: 'slide-left' }
  },
  {
    //环保督察案例
    name: 'enforceCase',
    path: '/fytz/enforceCase',
        path: 'fytz/enforceCase',
    component: () => import('@/views/fytz/enforce-case/EnforceCase.vue')
  },
@@ -230,27 +276,29 @@
  {
    //账户匹配
    name: 'userMatch',
    path: '/common/userMatch',
        path: 'common/userMatch',
    component: () => import('@/views/common/UserMatch.vue')
  },
  {
    //文档生成测试
    name: 'docTest',
    path: '/common/docTest',
        path: 'common/docTest',
    component: () => import('@/views/DocTest.vue')
  }
]
  }
];
const router = createRouter({
  // history: createWebHistory(import.meta.env.BASE_URL)
  history: createWebHashHistory(),
  routes: routes
})
});
const loadingStore = useLoadingStore(pinia)
const loadingStore = useLoadingStore(pinia);
// eslint-disable-next-line no-unused-vars
router.afterEach((to, from) => {
  loadingStore.clearLoading()
})
  loadingStore.clearLoading();
});
export { router, routes }
export { router, routes };
src/views/HomePage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
<template>
  <el-container class="el-container">
    <el-aside class="el-aside"
      ><SiderMenu :collapse="isCollapsed" @nav-page="navPage"></SiderMenu
    ></el-aside>
    <el-container>
      <el-header class="el-header"
        ><Header
          :navTitles="navTitles"
          :collapse="isCollapsed"
          @collapsed-sider="collapsedSider"
        ></Header
      ></el-header>
      <el-main class="el-main">
        <el-scrollbar>
          <div class="el-main__content">
            <Content></Content>
            <!-- <el-backtop
                target=".el-main .el-scrollbar__wrap"
                :right="10"
                :bottom="100"
                style="z-index: 1000;"
              >
                <div class="back-top">
                  <el-icon><ArrowUpBold /></el-icon>
                  <span style="">返回顶部</span>
                </div>
              </el-backtop> -->
          </div>
        </el-scrollbar>
      </el-main>
    </el-container>
  </el-container>
</template>
<script>
export default {
  data() {
    return {
      isCollapsed: false,
      navTitles: []
    };
  },
  methods: {
    collapsedSider(b) {
      this.isCollapsed = b;
    },
    navPage(titles) {
      this.navTitles = titles;
    }
  }
};
</script>
<style scoped>
.el-container {
  /* min-height: 820px; */
}
.el-aside {
  width: initial;
}
.el-header {
  /* background-color: rgb(216, 201, 201); */
  border-bottom: 1px solid var(--el-color-info-light-7);
}
.el-main {
  position: relative;
  /* background-color: bisque; */
  padding: initial;
  /* max-height: calc(100vh - 60px); */
  /* overflow: hidden; */
}
.el-main__content {
  padding: var(--el-main-padding) calc(var(--el-main-padding) / 2);
  max-height: calc(100vh - 60px - var(--el-main-padding) * 2);
  /* background-color: aqua; */
  /* overflow: auto; */
}
.back-top {
  display: flex;
  align-items: center;
  justify-content: space-around;
  height: 100%;
  width: 100%;
  background-color: var(--el-bg-color-overlay);
  box-shadow: var(--el-box-shadow-lighter);
  text-align: center;
  /* line-height: 40px; */
  color: var(--el-color-info);
  border: var(--el-border);
  font-size: var(--el-font-size-medium);
  border-radius: var(--el-border-radius-base);
}
</style>
src/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue
src/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue
copy from src/views/fysp/data-product/base-data-product/ProdScenseInfo.vue copy to src/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue
src/views/fysp/data-product/base-data-product/ProdManage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
<template>
  <!-- <el-menu default-active="scene" ellipsis mode="horizontal" style="max-width: 600px">
    <el-menu-item index="scene" @click="navPage">场景清单</el-menu-item>
    <el-menu-item index="evaluate" @click="navPage">评估清单</el-menu-item>
    <el-menu-item index="inspection" @click="navPage">巡查信息</el-menu-item>
    <el-menu-item index="monitorData" @click="navPage">监测数据</el-menu-item>
  </el-menu> -->
  <!-- <a @click="navPage({ index: 'scene' })"><div>场景清单</div></a>
  <a @click="navPage({ index: 'evaluate' })"><div>评估清单</div></a>
  <a @click="navPage({ index: 'inspection' })"><div>巡查信息</div></a>
  <a @click="navPage({ index: 'monitorData' })"><div>监测数据</div></a> -->
  <el-space>
    <template v-for="(item, index) in menu" :key="item.path">
      <a :class="btnClz(item.selected)" @click="navTo(index)">
        <div>{{ item.name }}</div>
      </a>
    </template>
  </el-space>
  <div>sssss</div>
  <router-view v-slot="{ Component, route }">
    <keep-alive>
      <component
        v-if="route.meta.keepAlive"
        :is="Component"
        :key="route.name"
      />
    </keep-alive>
    <component v-if="!route.meta.keepAlive" :is="Component" :key="route.name" />
  </router-view>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router';
const router = useRouter();
const route = useRoute();
const menu = ref([
  {
    name: '场景清单',
    path: 'scene',
    selected: true
  },
  {
    name: '评估清单',
    path: 'evaluate'
  },
  {
    name: '巡查信息',
    path: 'inspection'
  },
  {
    name: '监测数据',
    path: 'monitorData'
  }
]);
// console.log(router);
// console.log(route.path);
const navPage = (item) => {
  console.log(item);
  if (item.index) {
    router.push({
      path: item.index
    });
  }
};
function btnClz(selected) {
  return (
    'mode-btn ' + (selected ? 'btn-selected ' : 'btn-unselected ') + 'm-r-8'
  );
}
function navTo(index) {
  const m = this.menu;
  m.forEach((e) => {
    e.selected = false;
  });
  m[index].selected = true;
  router.replace(m[index].path);
}
onMounted(() => {
  console.log(route.path);
  // router.push('/fysp/data-product/base/home/scene');
});
</script>
<style scoped>
.mode-btn {
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 14px;
  color: #303133;
  background-color: #f5f7fa;
  border: 1px solid #dcdfe6;
  cursor: pointer;
}
.btn-selected {
  color: #fff;
  background-color: #409eff;
  border-color: #409eff;
}
.btn-unselected {
  color: #303133;
  background-color: #f5f7fa;
  border-color: #dcdfe6;
}
</style>
src/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<template>
  1
</template>
<script setup></script>
src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue
ÎļþÃû´Ó src/views/fysp/data-product/base-data-product/ProdMonitorTaskInfo.vue ÐÞ¸Ä
@@ -1,4 +1,4 @@
<template>
  1
  ProdSceneInfo
</template>
<script></script>
src/views/fysp/data-product/base-data-product/ProdTreatmentDeviceInfo.vue
ÎļþÒÑɾ³ý