From e423d8afcf5b9666e166565d0509b621ebab17e7 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 13 一月 2025 14:11:00 +0800 Subject: [PATCH] !172 合并 warmflow 功能分支 * update 优化 流程定义页面 点击复制之后跳转到未发布列表 * update 优化 流程定义页面 增加加载loading层 * fix: v-model处理有延迟 需要手动处理 * update 调整流程定义查询 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * update 调整可驳回的节点 * update: 调整文案 * update: 激活/挂起改为switch操作 * update 优化 代码删除无用输出 * update 统一抄送人使用昵称展示 * update 调整分类接口 * update 统一业务id参数 * update 删除默认顶节点 * !168 优化流程分类 * update 恢复误删除代码 * update 优化流程分类 * update 修复 路由跳转未改全 * [update] * fix 修复一些问题 * update 重构流程分类表 * update 流程定义增加表单路径与编辑功能 修复一些其他bug * fix 修复 一些问题 * update 变量统一命名 * add 增加示例 * Merge branch 'warm-flw-future' of https://gitee.com/JavaLionLi/plus-ui… * update 调整办理人 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * add 增加示例 * update 调整审批记录 添加流程导出 * remove 删除无用代码 * remove 删除无用代码 * [update] * [fix] * 流程干预删除委托 * 增加附件 * 附件修改 * 申请人查询修改 * 1.修改查询条件 * !167 fix 修复 import路径修改不全问题 * fix 修复 import路径修改不全问题 * !166 update 清除 ProcessPreview 引用 * update 清除 ProcessPreview 引用 * remove 删除 bpmn.js 设计器 * remove 删除 bpmn.js 设计器 * remove 删除 bpmn.js 设计器 * remove 删除 bpmn.js 设计器 * fix 修复 前端路径修改不全问题 * update 优化接口请求路径 * add 添加作废 * add 添加流程干预 * update 调整加签,减签 * update 调整加签,减签 * add 增加流程查看 * update 调整委托,转办 * update 调整流程变量显示 * update 调整办理人修改 * update 调整流程实例状态页面 * update 调整已办页面 * add 添加流程撤销 * update 调整任务,流程实例 ,流程定义页面 * Merge branch 'dev' into warm-flw-future * update 调整流程定义页面 * add 添加流程变量查看 * update 调整设计器路由名称 * update 调整办理人 * update 调整设计器uri * update 调整设计器请求uri 调整待办状态 * update 调整办理 驳回 终止等状态 * add 添加模型新增 * add 添加warm-ui设计器,删除无用代码 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * add 添加流程设计 * update 调整驳回 * update 调整视图类型错误 * Merge branch 'warm-flw-future' of https://gitee.com/JavaLionLi/plus-ui… * 添加已办,未办 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * update 调整流程实例,待办查询 * add 添加代办人,调整提交按钮校验 * update 调整流程定义查询 * add添加流程定义激活 挂起 * add 添加流程文件部署 调整流程发布 * update 优化 时间搜索组件统一 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * fix 修复 用户管理编辑安全权限错误问题 * Merge remote-tracking branch 'origin/dev' into warm-flw-future * update 优化 类型报错问题 * update 优化 切换租户后刷新首页 * update 优化 实现表格行选中切换 * update 优化 使用 vueuse 重构 websocket 实现 * update 优化 使用 vueuse 重构 websocket 实现 * fix 修复 登出后重新登录 sse推送报错问题 * reset 回滚 代码修改 采用其他方案 * fix 修复 登出后重新登录 sse推送报错问题 * update 优化 删除无用代码 * update element-plus 2.7.5 => 2.7.8 * reset 回滚 错误修复 * update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题 * fix 修复 代码生成同步点击取消报错问题 * 初始化添加warm-flow --- src/layout/index.vue | 87 +++++++++++++++++++++++++------------------ 1 files changed, 51 insertions(+), 36 deletions(-) diff --git a/src/layout/index.vue b/src/layout/index.vue index da55d54..207a470 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -1,10 +1,18 @@ <template> <div :class="classObj" class="app-wrapper" :style="{ '--current-color': theme }"> - <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside"/> - <sidebar v-if="!sidebar.hide" class="sidebar-container" /> + <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> + <side-bar v-if="!sidebar.hide" class="sidebar-container" /> <div :class="{ hasTagsView: needTagsView, sidebarHide: sidebar.hide }" class="main-container"> + <!-- <el-scrollbar> + <div :class="{ 'fixed-header': fixedHeader }"> + <navbar ref="navbarRef" @setLayout="setLayout" /> + <tags-view v-if="needTagsView" /> + </div> + <app-main /> + <settings ref="settingRef" /> + </el-scrollbar> --> <div :class="{ 'fixed-header': fixedHeader }"> - <navbar ref="navbarRef" @setLayout="setLayout" /> + <navbar ref="navbarRef" @set-layout="setLayout" /> <tags-view v-if="needTagsView" /> </div> <app-main /> @@ -13,18 +21,16 @@ </div> </template> -<script setup> -import { useWindowSize } from '@vueuse/core' -import Sidebar from './components/Sidebar/index.vue' -import { AppMain, Navbar, Settings, TagsView } from './components' -import defaultSettings from '@/settings' +<script setup lang="ts"> +import SideBar from './components/Sidebar/index.vue'; +import { AppMain, Navbar, Settings, TagsView } from './components'; +import useAppStore from '@/store/modules/app'; +import useSettingsStore from '@/store/modules/settings'; +import { initWebSocket } from '@/utils/websocket'; +import { initSSE } from '@/utils/sse'; -import useAppStore from '@/store/modules/app' -import useSettingsStore from '@/store/modules/settings' - -const settingsStore = useSettingsStore() +const settingsStore = useSettingsStore(); const theme = computed(() => settingsStore.theme); -const sideTheme = computed(() => settingsStore.sideTheme); const sidebar = computed(() => useAppStore().sidebar); const device = computed(() => useAppStore().device); const needTagsView = computed(() => settingsStore.tagsView); @@ -35,45 +41,53 @@ openSidebar: sidebar.value.opened, withoutAnimation: sidebar.value.withoutAnimation, mobile: device.value === 'mobile' -})) +})); -const { proxy } = getCurrentInstance(); -const { width, height } = useWindowSize(); +const { width } = useWindowSize(); const WIDTH = 992; // refer to Bootstrap's responsive design watchEffect(() => { - if (device.value === 'mobile' && sidebar.value.opened) { - useAppStore().closeSideBar({ withoutAnimation: false }) + if (device.value === 'mobile') { + useAppStore().closeSideBar({ withoutAnimation: false }); } if (width.value - 1 < WIDTH) { - useAppStore().toggleDevice('mobile') - useAppStore().closeSideBar({ withoutAnimation: true }) + useAppStore().toggleDevice('mobile'); + useAppStore().closeSideBar({ withoutAnimation: true }); } else { - useAppStore().toggleDevice('desktop') + useAppStore().toggleDevice('desktop'); } -}) +}); -const navbarRef = ref(null); +const navbarRef = ref<InstanceType<typeof Navbar>>(); +const settingRef = ref<InstanceType<typeof Settings>>(); onMounted(() => { nextTick(() => { - navbarRef.value.initTenantList(); - }) -}) + navbarRef.value?.initTenantList(); + }); +}); -function handleClickOutside() { - useAppStore().closeSideBar({ withoutAnimation: false }) -} +onMounted(() => { + let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://'; + initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket'); +}); -const settingRef = ref(null); -function setLayout() { - settingRef.value.openSetting(); -} +onMounted(() => { + initSSE(import.meta.env.VITE_APP_BASE_API + '/resource/sse'); +}); + +const handleClickOutside = () => { + useAppStore().closeSideBar({ withoutAnimation: false }); +}; + +const setLayout = () => { + settingRef.value?.openSetting(); +}; </script> <style lang="scss" scoped> - @import "@/assets/styles/mixin.scss"; - @import "@/assets/styles/variables.module.scss"; +@import '@/assets/styles/mixin.scss'; +@import '@/assets/styles/variables.module.scss'; .app-wrapper { @include clearfix; @@ -104,6 +118,7 @@ z-index: 9; width: calc(100% - #{$base-sidebar-width}); transition: width 0.28s; + background: $fixed-header-bg; } .hideSidebar .fixed-header { @@ -117,4 +132,4 @@ .mobile .fixed-header { width: 100%; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3