2 Achegas 3698a96093 ... 2e093dcb54

Autor SHA1 Mensaxe Data
  hongrunxia 2e093dcb54 解决冲突 hai 1 mes
  hongrunxia defc31b9fc [Mod 0000] 解决皮带页面导航组件路由监测报错问题 hai 1 mes

+ 69 - 72
src/views/system/message/components/useSysMessage.ts

@@ -1,11 +1,11 @@
 import { ref, reactive } from 'vue';
 import { ref, reactive } from 'vue';
 import { defHttp } from '/@/utils/http/axios';
 import { defHttp } from '/@/utils/http/axios';
 import { getDictItemsByCode } from '/@/utils/dict/index';
 import { getDictItemsByCode } from '/@/utils/dict/index';
-import { useRouter, useRoute } from 'vue-router'
+import { useRouter, useRoute } from 'vue-router';
 import { useAppStore } from '/@/store/modules/app';
 import { useAppStore } from '/@/store/modules/app';
 import { useTabs } from '/@/hooks/web/useTabs';
 import { useTabs } from '/@/hooks/web/useTabs';
 import { useModal } from '/@/components/Modal';
 import { useModal } from '/@/components/Modal';
-import {useMessage} from "/@/hooks/web/useMessage";
+import { useMessage } from '/@/hooks/web/useMessage';
 
 
 /**
 /**
  * 列表接口
  * 列表接口
@@ -27,87 +27,85 @@ export function useSysMessage() {
   console.log('+++++++++++++++++++++');
   console.log('+++++++++++++++++++++');
 
 
   const messageList = ref<any[]>([]);
   const messageList = ref<any[]>([]);
-  const pageNo = ref(1)
-  let pageSize = 10;
-  
+  const pageNo = ref(1);
+  const pageSize = 10;
+
   const searchParams = reactive({
   const searchParams = reactive({
     fromUser: '',
     fromUser: '',
     rangeDateKey: '',
     rangeDateKey: '',
     rangeDate: [],
     rangeDate: [],
-    starFlag: ''
+    starFlag: '',
   });
   });
 
 
-
   function getQueryParams() {
   function getQueryParams() {
-    let { fromUser, rangeDateKey, rangeDate, starFlag } = searchParams;
-    let params = {
+    const { fromUser, rangeDateKey, rangeDate, starFlag } = searchParams;
+    const params = {
       fromUser,
       fromUser,
       starFlag,
       starFlag,
       rangeDateKey,
       rangeDateKey,
       beginDate: '',
       beginDate: '',
       endDate: '',
       endDate: '',
       pageNo: pageNo.value,
       pageNo: pageNo.value,
-      pageSize
+      pageSize,
     };
     };
     if (rangeDateKey == 'zdy') {
     if (rangeDateKey == 'zdy') {
-      params.beginDate = rangeDate[0]+' 00:00:00';
-      params.endDate = rangeDate[1]+' 23:59:59';
+      params.beginDate = rangeDate[0] + ' 00:00:00';
+      params.endDate = rangeDate[1] + ' 23:59:59';
     }
     }
     return params;
     return params;
   }
   }
 
 
   // 数据是否加载完了
   // 数据是否加载完了
   const loadEndStatus = ref(false);
   const loadEndStatus = ref(false);
-  
+
   //请求数据
   //请求数据
   async function loadData() {
   async function loadData() {
-    if(loadEndStatus.value === true){
+    if (loadEndStatus.value === true) {
       return;
       return;
     }
     }
-    let params = getQueryParams();
+    const params = getQueryParams();
     const data = await queryMessageList(params);
     const data = await queryMessageList(params);
     console.log('获取结果', data);
     console.log('获取结果', data);
-    if(!data || data.length<=0){
+    if (!data || data.length <= 0) {
       loadEndStatus.value = true;
       loadEndStatus.value = true;
       return;
       return;
     }
     }
-    if(data.length<pageSize){
+    if (data.length < pageSize) {
       loadEndStatus.value = true;
       loadEndStatus.value = true;
     }
     }
-    pageNo.value = pageNo.value+1
-    let temp:any[] = messageList.value;
+    pageNo.value = pageNo.value + 1;
+    const temp: any[] = messageList.value;
     temp.push(...data);
     temp.push(...data);
     messageList.value = temp;
     messageList.value = temp;
   }
   }
 
 
   //重置
   //重置
-  function reset(){
-    messageList.value = []
+  function reset() {
+    messageList.value = [];
     pageNo.value = 1;
     pageNo.value = 1;
     loadEndStatus.value = false;
     loadEndStatus.value = false;
   }
   }
-  
+
   //标星
   //标星
-  async function updateStarMessage(item){
+  async function updateStarMessage(item) {
     const url = '/sys/sysAnnouncementSend/edit';
     const url = '/sys/sysAnnouncementSend/edit';
     let starFlag = '1';
     let starFlag = '1';
-    if(item.starFlag==starFlag){
-      starFlag = '0'
+    if (item.starFlag == starFlag) {
+      starFlag = '0';
     }
     }
     const params = {
     const params = {
       starFlag,
       starFlag,
-      id: item.sendId
-    }
+      id: item.sendId,
+    };
     //update-begin-author:taoyan date:2023-3-6 for: QQYUN-4491【应用】一些小问题  4、标星不需要提示吧
     //update-begin-author:taoyan date:2023-3-6 for: QQYUN-4491【应用】一些小问题  4、标星不需要提示吧
-    const data:any = await defHttp.put({url, params}, {isTransformResponse: false});
-    if(data.success === true){
-    }else{
-      createMessage.warning(data.message)
+    const data: any = await defHttp.put({ url, params }, { isTransformResponse: false });
+    if (data.success === true) {
+    } else {
+      createMessage.warning(data.message);
     }
     }
     //update-end-author:taoyan date:2023-3-6 for: QQYUN-4491【应用】一些小问题  4、标星不需要提示吧
     //update-end-author:taoyan date:2023-3-6 for: QQYUN-4491【应用】一些小问题  4、标星不需要提示吧
   }
   }
 
 
-
   const loadingMoreStatus = ref(false);
   const loadingMoreStatus = ref(false);
   async function onLoadMore() {
   async function onLoadMore() {
     loadingMoreStatus.value = true;
     loadingMoreStatus.value = true;
@@ -124,13 +122,13 @@ export function useSysMessage() {
 
 
   // 消息类型
   // 消息类型
   function getMsgCategory(item) {
   function getMsgCategory(item) {
-    if(item.busType=='email'){
+    if (item.busType == 'email') {
       return '邮件提醒:';
       return '邮件提醒:';
-    } else if(item.busType=='bpm'){
+    } else if (item.busType == 'bpm') {
       return '流程催办:';
       return '流程催办:';
-    } else if(item.busType=='bpm_cc'){
+    } else if (item.busType == 'bpm_cc') {
       return '流程抄送:';
       return '流程抄送:';
-    }else if(item.busType=='bpm_task'){
+    } else if (item.busType == 'bpm_task') {
       return '流程任务:';
       return '流程任务:';
     } else if (item.msgCategory == '2') {
     } else if (item.msgCategory == '2') {
       return '系统消息:';
       return '系统消息:';
@@ -139,7 +137,7 @@ export function useSysMessage() {
     }
     }
     return '';
     return '';
   }
   }
-  
+
   return {
   return {
     messageList,
     messageList,
     reset,
     reset,
@@ -147,39 +145,38 @@ export function useSysMessage() {
     loadEndStatus,
     loadEndStatus,
     searchParams,
     searchParams,
     updateStarMessage,
     updateStarMessage,
-    
+
     onLoadMore,
     onLoadMore,
     noRead,
     noRead,
     getMsgCategory,
     getMsgCategory,
-    
   };
   };
 }
 }
 
 
 /**
 /**
  * 用于消息跳转
  * 用于消息跳转
  */
  */
-export function useMessageHref(emit, props){
-  const messageHrefArray:any[] = getDictItemsByCode('messageHref');
+export function useMessageHref(emit, props) {
+  const messageHrefArray: any[] = getDictItemsByCode('messageHref');
   const router = useRouter();
   const router = useRouter();
   const appStore = useAppStore();
   const appStore = useAppStore();
   const rt = useRoute();
   const rt = useRoute();
   const { close: closeTab, closeSameRoute } = useTabs();
   const { close: closeTab, closeSameRoute } = useTabs();
- // const defaultPath = '/monitor/mynews';
+  // const defaultPath = '/monitor/mynews';
   //const bpmPath = '/task/handle/'
   //const bpmPath = '/task/handle/'
-  
-  async function goPage(record, openModalFun?){
-    if(!record.busType || record.busType == 'msg_node'){
-      if(!openModalFun){
+
+  async function goPage(record, openModalFun?) {
+    if (!record.busType || record.busType == 'msg_node') {
+      if (!openModalFun) {
         // 从首页的消息通知跳转
         // 从首页的消息通知跳转
         await goPageFromOuter(record);
         await goPageFromOuter(record);
-      }else{
+      } else {
         // 从消息页面列表点击详情查看 直接打开modal
         // 从消息页面列表点击详情查看 直接打开modal
-        openModalFun()
+        openModalFun();
       }
       }
-    }else{
-      await goPageWithBusType(record)
+    } else {
+      await goPageWithBusType(record);
     }
     }
-/*    busId: "1562035005173587970"
+    /*    busId: "1562035005173587970"
     busType: "email"
     busType: "email"
     openPage: "modules/eoa/email/modals/EoaEmailInForm"
     openPage: "modules/eoa/email/modals/EoaEmailInForm"
     openType: "component"*/
     openType: "component"*/
@@ -189,37 +186,37 @@ export function useMessageHref(emit, props){
    * 根据busType不同跳转不同页面
    * 根据busType不同跳转不同页面
    * @param record
    * @param record
    */
    */
-  async function goPageWithBusType(record){
+  async function goPageWithBusType(record) {
     const { busType, busId, msgAbstract } = record;
     const { busType, busId, msgAbstract } = record;
-    let temp = messageHrefArray.filter(item=>item.value === busType);
-    if(!temp || temp.length==0){
+    const temp = messageHrefArray.filter((item) => item.value === busType);
+    if (!temp || temp.length == 0) {
       console.error('当前业务类型不识别', busType);
       console.error('当前业务类型不识别', busType);
       return;
       return;
     }
     }
     let path = temp[0].text;
     let path = temp[0].text;
-    path = path.replace('{DETAIL_ID}', busId)
+    path = path.replace('{DETAIL_ID}', busId);
     //固定参数 detailId 用于查询表单数据
     //固定参数 detailId 用于查询表单数据
-    let query:any = {
-      detailId: busId
+    const query: any = {
+      detailId: busId,
     };
     };
     // 额外参数处理
     // 额外参数处理
-    if(msgAbstract){
+    if (msgAbstract) {
       try {
       try {
-        let json = JSON.parse(msgAbstract);
-        Object.keys(json).map(k=>{
-          query[k] = json[k]
+        const json = JSON.parse(msgAbstract);
+        Object.keys(json).map((k) => {
+          query[k] = json[k];
         });
         });
-      }catch (e) {
-        console.error('msgAbstract参数不是JSON格式', msgAbstract)
+      } catch (e) {
+        console.error('msgAbstract参数不是JSON格式', msgAbstract);
       }
       }
     }
     }
     // 跳转路由
     // 跳转路由
     appStore.setMessageHrefParams(query);
     appStore.setMessageHrefParams(query);
-    if(rt.path.indexOf(path)>=0){
+    if (rt.path.indexOf(path) >= 0) {
       await closeTab();
       await closeTab();
-      await router.replace({ path: path, query:{ time: new Date().getTime() } });
-    }else{
-      closeSameRoute(path)
+      await router.replace({ path: path, query: { time: new Date().getTime() } });
+    } else {
+      closeSameRoute(path);
       await router.push({ path: path });
       await router.push({ path: path });
     }
     }
   }
   }
@@ -228,12 +225,12 @@ export function useMessageHref(emit, props){
    * 从首页的消息通知跳转消息列表打开modal
    * 从首页的消息通知跳转消息列表打开modal
    * @param record
    * @param record
    */
    */
-  async function goPageFromOuter(record){
+  async function goPageFromOuter(record) {
     //没有定义业务类型 直接跳转我的消息页面
     //没有定义业务类型 直接跳转我的消息页面
-    emit('detail', record)
+    emit('detail', record);
   }
   }
-  
+
   return {
   return {
-    goPage
-  }
+    goPage,
+  };
 }
 }

+ 223 - 223
src/views/vent/home/configurable/belt/components/customHeader-belt.vue

@@ -37,269 +37,269 @@
 </template>
 </template>
 
 
 <script lang="ts" setup>
 <script lang="ts" setup>
-import { computed, ref, watch } from 'vue';
-import { router } from '/@/router';
-import History from './detail/history.vue';
+  import { computed, ref, watch } from 'vue';
+  import { router } from '/@/router';
+  import History from './detail/history.vue';
 
 
-// 类型定义
-interface MenuItem {
-  name: string;
-  path: string;
-}
-interface FieldNames {
-  label?: string;
-  value?: string;
-  children?: string;
-}
+  // 类型定义
+  interface MenuItem {
+    name: string;
+    path: string;
+  }
+  interface FieldNames {
+    label?: string;
+    value?: string;
+    children?: string;
+  }
 
 
-// Props
-const props = defineProps({
-  optionValue: {
-    type: String,
-    default: '',
-  },
-  fieldNames: {
-    type: Object as () => FieldNames,
-    default: () => ({}),
-  },
-  options: {
-    type: Array,
-    default: () => [],
-  },
-  Type: {
-    type: String,
-    default: '',
-  },
-});
+  // Props
+  const props = defineProps({
+    optionValue: {
+      type: String,
+      default: '',
+    },
+    fieldNames: {
+      type: Object as () => FieldNames,
+      default: () => ({}),
+    },
+    options: {
+      type: Array,
+      default: () => [],
+    },
+    Type: {
+      type: String,
+      default: '',
+    },
+  });
 
 
-// 自定义事件
-const emit = defineEmits<{
-  change: [value: string];
-  'open-history': [];
-}>();
+  // 自定义事件
+  const emit = defineEmits<{
+    change: [value: string];
+    'open-history': [];
+  }>();
 
 
-// 响应式数据
-const currentTitleValue = ref(props.optionValue);
-const visible = ref(false);
-const selectRef = ref(); // 选择器实例
+  // 响应式数据
+  const currentTitleValue = ref(props.optionValue);
+  const visible = ref(false);
+  const selectRef = ref(); // 选择器实例
 
 
-// 导航菜单配置
-const menuList: MenuItem[] = [
-  {
-    name: '首页',
-    path: '/micro-vent-3dModal/configurable/belt/fireS/home',
-  },
-  {
-    name: '详情监控页',
-    path: '/belt/fireS/home',
-  },
-  {
-    name: '灾变模拟分析',
-    path: 'micro-vent-3dModal/dashboard/analysis?type=sysMonitor&deviceType=sysfireTunnel&sysID=2028657172566073346&sysType=leatherr',
-  },
-];
-// 下拉框样式
-const dropdownStyle = {
-  background: 'transparent',
-  borderBottom: '1px solid #ececec66',
-  backdropFilter: 'blur(50px)',
-  color: '#fff',
-};
+  // 导航菜单配置
+  const menuList: MenuItem[] = [
+    {
+      name: '首页',
+      path: '/micro-vent-3dModal/configurable/belt/fireS/home',
+    },
+    {
+      name: '详情监控页',
+      path: '/belt/fireS/home',
+    },
+    {
+      name: '灾变模拟分析',
+      path: 'micro-vent-3dModal/dashboard/analysis?type=sysMonitor&deviceType=sysfireTunnel&sysID=2028657172566073346&sysType=leatherr',
+    },
+  ];
+  // 下拉框样式
+  const dropdownStyle = {
+    background: 'transparent',
+    borderBottom: '1px solid #ececec66',
+    backdropFilter: 'blur(50px)',
+    color: '#fff',
+  };
 
 
-// 当前路由(计算属性)
-const currentPath = computed(() => {
-  return router.currentRoute.value.fullPath.split('?')[0];
-});
-// 监听父组件传入的 optionValue 同步更新
-watch(
-  () => props.optionValue,
-  (val) => {
-    currentTitleValue.value = val;
-  }
-);
-// 判断导航是否选中
-const isActive = (menuPath: string): boolean => {
-  if (!menuPath) return false;
-  const menuRoutePath = menuPath.split('?')[0];
-  return currentPath.value.startsWith(menuRoutePath);
-};
+  // 当前路由(计算属性)
+  const currentPath = computed(() => {
+    return router.currentRoute.value ? router.currentRoute.value.fullPath.split('?')[0] : router.currentRoute.fullPath.split('?')[0];
+  });
+  // 监听父组件传入的 optionValue 同步更新
+  watch(
+    () => props.optionValue,
+    (val) => {
+      currentTitleValue.value = val;
+    }
+  );
+  // 判断导航是否选中
+  const isActive = (menuPath: string): boolean => {
+    if (!menuPath) return false;
+    const menuRoutePath = menuPath.split('?')[0];
+    return currentPath.value.startsWith(menuRoutePath);
+  };
 
 
-// 导航点击跳转
-const handleNavClick = (item: MenuItem) => {
-  router.push(item.path);
-};
-// 打开/关闭历史数据弹窗
-const openModel = () => {
-  visible.value = !visible.value;
-  emit('open-history');
-};
-// 下拉选择器变化
-const handleTitleChange = (value: string) => {
-  currentTitleValue.value = value;
-  emit('change', value);
-};
+  // 导航点击跳转
+  const handleNavClick = (item: MenuItem) => {
+    router.push(item.path);
+  };
+  // 打开/关闭历史数据弹窗
+  const openModel = () => {
+    visible.value = !visible.value;
+    emit('open-history');
+  };
+  // 下拉选择器变化
+  const handleTitleChange = (value: string) => {
+    currentTitleValue.value = value;
+    emit('change', value);
+  };
 </script>
 </script>
 <style lang="less">
 <style lang="less">
-@import '/@/design/vent/modal.less';
+  @import '/@/design/vent/modal.less';
 
 
-.@{ventSpace}-select-dropdown.drop {
-  background-color: transparent !important;
+  .@{ventSpace}-select-dropdown.drop {
+    background-color: transparent !important;
 
 
-  .@{ventSpace}-select-item-option-selected,
-  .@{ventSpace}-select-item-option-active {
-    width: 100% !important;
+    .@{ventSpace}-select-item-option-selected,
+    .@{ventSpace}-select-item-option-active {
+      width: 100% !important;
 
 
-    background-color: #ffffff33 !important;
-  }
-  .@{ventSpace}-select-item {
-    font-size: 20px !important;
-    color: inherit;
-    &:hover {
       background-color: #ffffff33 !important;
       background-color: #ffffff33 !important;
     }
     }
-  }
-  .@{ventSpace}-select-tree {
-    .@{ventSpace}-select-tree-treenode {
+    .@{ventSpace}-select-item {
+      font-size: 20px !important;
       color: inherit;
       color: inherit;
+      &:hover {
+        background-color: #ffffff33 !important;
+      }
     }
     }
-    .@{ventSpace}-select-tree-switcher-icon {
-      color: inherit;
+    .@{ventSpace}-select-tree {
+      .@{ventSpace}-select-tree-treenode {
+        color: inherit;
+      }
+      .@{ventSpace}-select-tree-switcher-icon {
+        color: inherit;
+      }
     }
     }
   }
   }
-}
 </style>
 </style>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>
-@import '/@/design/theme.less';
-@ventSpace: zxm;
+  @import '/@/design/theme.less';
+  @ventSpace: zxm;
 
 
-.vent-custom-header {
-  --image-vent-header1: url('/@/assets/images/vent/vent-header1.png');
-  --image-select-bg: url('/@/assets/images/vent/home/select-bg.png');
-  width: 100%;
-  position: relative;
-  z-index: 9999;
-  height: 60px;
-  pointer-events: auto;
-
-  .vent-home-header {
+  .vent-custom-header {
+    --image-vent-header1: url('/@/assets/images/vent/vent-header1.png');
+    --image-select-bg: url('/@/assets/images/vent/home/select-bg.png');
     width: 100%;
     width: 100%;
-    position: fixed;
-    top: 0;
-    background: var(--image-vent-header1) no-repeat;
-    height: 89px;
-    background-size: contain;
-    display: flex;
-    justify-content: center;
-
-    .header-icon {
-      margin-top: 45px;
-    }
-    .header-text {
-      position: fixed;
-      top: 5px;
-      color: #fff;
-      font-size: 32px;
-      font-family: 'ysbtFont';
-      background-image: linear-gradient(#ffffff 50%, @vent-base-light-bg);
-      -webkit-background-clip: text;
-      color: transparent;
-    }
-  }
-
-  .container-title {
-    width: 380px;
-    height: 34px;
-    left: 20px;
-    background: var(--image-select-bg) no-repeat;
-    background-size: contain;
-    padding: 0 0 0 20px;
-    font-size: 20px;
-    pointer-events: auto;
     position: relative;
     position: relative;
     z-index: 9999;
     z-index: 9999;
-    top: 70px;
+    height: 60px;
+    pointer-events: auto;
 
 
-    .title-select {
-      width: 340px;
-      position: absolute;
+    .vent-home-header {
+      width: 100%;
+      position: fixed;
       top: 0;
       top: 0;
+      background: var(--image-vent-header1) no-repeat;
+      height: 89px;
+      background-size: contain;
+      display: flex;
+      justify-content: center;
+
+      .header-icon {
+        margin-top: 45px;
+      }
+      .header-text {
+        position: fixed;
+        top: 5px;
+        color: #fff;
+        font-size: 32px;
+        font-family: 'ysbtFont';
+        background-image: linear-gradient(#ffffff 50%, @vent-base-light-bg);
+        -webkit-background-clip: text;
+        color: transparent;
+      }
     }
     }
-  }
 
 
-  .nav {
-    width: 100%;
-    position: fixed;
-    top: 0;
-    display: flex;
-    left: 20px;
-    gap: 30px;
-    top: 15px;
-    pointer-events: auto;
+    .container-title {
+      width: 380px;
+      height: 34px;
+      left: 20px;
+      background: var(--image-select-bg) no-repeat;
+      background-size: contain;
+      padding: 0 0 0 20px;
+      font-size: 20px;
+      pointer-events: auto;
+      position: relative;
+      z-index: 9999;
+      top: 70px;
 
 
-    .nav-item {
-      flex: 1;
-      max-width: 120px;
-      height: 35px;
-      line-height: 35px;
-      padding: 0;
-      box-sizing: border-box;
-      padding-bottom: 10px;
-      text-align: center;
-      background: url('/@/assets/images/beltFire/titleNav.png') no-repeat center center;
-      background-size: 100% 90%;
-      cursor: pointer;
-      color: #fff;
-    }
-    .nav-item.active {
-      background: url('/@/assets/images/beltFire/titleNavActive.png') no-repeat center center !important;
-      background-size: 100% 190% !important;
+      .title-select {
+        width: 340px;
+        position: absolute;
+        top: 0;
+      }
     }
     }
-  }
 
 
-  .history-nav {
-    position: fixed;
-    top: 15px;
-    right: 230px;
-    pointer-events: auto;
+    .nav {
+      width: 100%;
+      position: fixed;
+      top: 0;
+      display: flex;
+      left: 20px;
+      gap: 30px;
+      top: 15px;
+      pointer-events: auto;
 
 
-    .nav-item {
-      width: 120px;
-      height: 35px;
-      line-height: 35px;
-      padding: 0;
-      box-sizing: border-box;
-      padding-bottom: 10px;
-      text-align: center;
-      background: url('/@/assets/images/beltFire/titleNav.png') no-repeat center center;
-      background-size: 100% 90%;
-      cursor: pointer;
-      color: #fff;
+      .nav-item {
+        flex: 1;
+        max-width: 120px;
+        height: 35px;
+        line-height: 35px;
+        padding: 0;
+        box-sizing: border-box;
+        padding-bottom: 10px;
+        text-align: center;
+        background: url('/@/assets/images/beltFire/titleNav.png') no-repeat center center;
+        background-size: 100% 90%;
+        cursor: pointer;
+        color: #fff;
+      }
+      .nav-item.active {
+        background: url('/@/assets/images/beltFire/titleNavActive.png') no-repeat center center !important;
+        background-size: 100% 190% !important;
+      }
     }
     }
-    .nav-item.active {
-      background: url('/@/assets/images/beltFire/titleNavActive.png') no-repeat center center !important;
-      background-size: 100% 190% !important;
+
+    .history-nav {
+      position: fixed;
+      top: 15px;
+      right: 230px;
+      pointer-events: auto;
+
+      .nav-item {
+        width: 120px;
+        height: 35px;
+        line-height: 35px;
+        padding: 0;
+        box-sizing: border-box;
+        padding-bottom: 10px;
+        text-align: center;
+        background: url('/@/assets/images/beltFire/titleNav.png') no-repeat center center;
+        background-size: 100% 90%;
+        cursor: pointer;
+        color: #fff;
+      }
+      .nav-item.active {
+        background: url('/@/assets/images/beltFire/titleNavActive.png') no-repeat center center !important;
+        background-size: 100% 190% !important;
+      }
     }
     }
   }
   }
-}
 
 
-:deep(.zxm-select) {
-  width: 100%;
+  :deep(.zxm-select) {
+    width: 100%;
 
 
-  .@{ventSpace}-select-selector {
-    background: transparent !important;
-    border: none !important;
-    box-shadow: none !important;
+    .@{ventSpace}-select-selector {
+      background: transparent !important;
+      border: none !important;
+      box-shadow: none !important;
 
 
-    .zxm-select-selection-item {
-      color: #fff !important;
-      font-size: 20px;
-      margin-left: 20px !important;
+      .zxm-select-selection-item {
+        color: #fff !important;
+        font-size: 20px;
+        margin-left: 20px !important;
+      }
     }
     }
-  }
 
 
-  .@{ventSpace}-select-arrow {
-    color: #fff !important;
+    .@{ventSpace}-select-arrow {
+      color: #fff !important;
+    }
   }
   }
-}
 </style>
 </style>

+ 7 - 2
src/views/vent/home/configurable/belt/threejs/belt.threejs.ts

@@ -23,6 +23,7 @@ let clickSelecteObject;
 const modalData = ref(null);
 const modalData = ref(null);
 const warningPartitionIndex = ref('-1');
 const warningPartitionIndex = ref('-1');
 const warningPartitionIndexList: number[] = [];
 const warningPartitionIndexList: number[] = [];
+const blinkAnimationList: any[] = [];
 
 
 export async function modalAnimate(modal, modalMonitorData: Ref<any, any>) {
 export async function modalAnimate(modal, modalMonitorData: Ref<any, any>) {
   // const data = modalMonitorData.value;
   // const data = modalMonitorData.value;
@@ -44,7 +45,7 @@ export async function modalAnimate(modal, modalMonitorData: Ref<any, any>) {
   // const res = await defHttp.post({ url: api, params: { sysId: '2028657172566073346' } });
   // const res = await defHttp.post({ url: api, params: { sysId: '2028657172566073346' } });
   // modalData.value = res?.device;
   // modalData.value = res?.device;
   // const len = Object.keys(res?.device).length;
   // const len = Object.keys(res?.device).length;
-  const { partitionList, blinkAnimationList } = drawPartition(beltModal, 100, 2000);
+  const { partitionList } = drawPartition(beltModal, 100, 2000);
 
 
   const { sprayPartitionList } = drawSprayPartition(beltModal, 100, 2000);
   const { sprayPartitionList } = drawSprayPartition(beltModal, 100, 2000);
 
 
@@ -790,7 +791,7 @@ function drawPartition(beltModal: THREE.Group, partitionLen: number, len: number
   const penlin = beltModal.getObjectByName('penlin') as THREE.Object3D;
   const penlin = beltModal.getObjectByName('penlin') as THREE.Object3D;
   const group1 = penlin?.getObjectByName('qiang8');
   const group1 = penlin?.getObjectByName('qiang8');
   const partitionList: THREE.Object3D[] = [];
   const partitionList: THREE.Object3D[] = [];
-  const blinkAnimationList: any[] = [];
+
   if (group1) {
   if (group1) {
     const box = new THREE.Box3();
     const box = new THREE.Box3();
     box.setFromObject(group1);
     box.setFromObject(group1);
@@ -1142,4 +1143,8 @@ export function destroy(modal) {
   warningPartitionIndexList.length = 0;
   warningPartitionIndexList.length = 0;
   panelManager.destroyAll();
   panelManager.destroyAll();
   modal.canvasContainer?.removeEventListener('mousemove', mouseoverEvent);
   modal.canvasContainer?.removeEventListener('mousemove', mouseoverEvent);
+  for (let i = 0; i < blinkAnimationList.length; i++) {
+    if (blinkAnimationList[i]) blinkAnimationList[i].kill();
+  }
+  blinkAnimationList.length = 0;
 }
 }