|
@@ -1,37 +1,41 @@
|
|
<template>
|
|
<template>
|
|
<el-container class="hc-layout-box">
|
|
<el-container class="hc-layout-box">
|
|
- <div class="hc-layout-bg-box" v-show="MenuBarKey === 'home-index'">
|
|
|
|
- <img :src="HomeTheme.bg" alt="" id="imagebox" v-if="HomeTheme.bg" crossOrigin="anonymous">
|
|
|
|
|
|
+ <div v-show="MenuBarKey === 'home-index'" class="hc-layout-bg-box">
|
|
|
|
+ <img v-if="HomeTheme.bg" id="imagebox" :src="HomeTheme.bg" alt="" crossOrigin="anonymous">
|
|
</div>
|
|
</div>
|
|
- <el-aside :width="isCollapse?'120px':'250px'" class="hc-aside-box" :class="[isCollapse?'collapse':'', MenuBarKey]">
|
|
|
|
|
|
+ <el-aside :class="[isCollapse?'collapse':'', MenuBarKey]" :width="isCollapse?'120px':'250px'"
|
|
|
|
+ class="hc-aside-box">
|
|
<div class="hc-aside-logo-box" @click="logoClick">
|
|
<div class="hc-aside-logo-box" @click="logoClick">
|
|
- <img class="logo-img" :src="getAssetsHomeFile(`${AppColor.name}.png`)" alt="">
|
|
|
|
- <img class="logo-img-1 white" :src="MenuBarKey === 'home-index' ? NameWhite : NameDark" alt="" v-if="!isCollapse">
|
|
|
|
- <img class="logo-img-1 dark" :src="NameWhite" alt="" v-if="!isCollapse">
|
|
|
|
|
|
+ <img :src="getAssetsHomeFile(`${AppColor.name}.png`)" alt="" class="logo-img">
|
|
|
|
+ <img v-if="!isCollapse" :src="MenuBarKey === 'home-index' ? NameWhite : NameDark" alt=""
|
|
|
|
+ class="logo-img-1 white">
|
|
|
|
+ <img v-if="!isCollapse" :src="NameWhite" alt="" class="logo-img-1 dark">
|
|
</div>
|
|
</div>
|
|
<div class="hc-aside-menu-box">
|
|
<div class="hc-aside-menu-box">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <MenuBar :datas="MenuBarData" :cur="MenuBarKey" :collapse="isCollapse" :msgCount="msgCount" @change="MenuBarChange"/>
|
|
|
|
|
|
+ <MenuBar :collapse="isCollapse" :cur="MenuBarKey" :datas="MenuBarData" :msgCount="msgCount"
|
|
|
|
+ @change="MenuBarChange"/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<div class="hc-aside-bar-box">
|
|
<div class="hc-aside-bar-box">
|
|
<div :class="isCollapse?'':'active'" @click="collapseChange(false)">
|
|
<div :class="isCollapse?'':'active'" @click="collapseChange(false)">
|
|
<HcIcon name="menu-unfold"/>
|
|
<HcIcon name="menu-unfold"/>
|
|
</div>
|
|
</div>
|
|
- <div :class="isCollapse?'active':''" @click="collapseChange(true)" v-show="!isCollapse">
|
|
|
|
|
|
+ <div v-show="!isCollapse" :class="isCollapse?'active':''" @click="collapseChange(true)">
|
|
<HcIcon name="menu-fold"/>
|
|
<HcIcon name="menu-fold"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-aside>
|
|
</el-aside>
|
|
- <el-container class="hc-container-view" :class="MenuBarKey === 'home-index'?'home':''">
|
|
|
|
|
|
+ <el-container :class="MenuBarKey === 'home-index'?'home':''" class="hc-container-view">
|
|
<el-header class="hc-header-view">
|
|
<el-header class="hc-header-view">
|
|
- <div class="hc-header-page-name" id="hc-header-page-name">
|
|
|
|
- {{RoutesTitle}}
|
|
|
|
|
|
+ <div id="hc-header-page-name" class="hc-header-page-name">
|
|
|
|
+ {{ RoutesTitle }}
|
|
</div>
|
|
</div>
|
|
<div class="hc-header-content">
|
|
<div class="hc-header-content">
|
|
<div class="hc-header-cascader-box">
|
|
<div class="hc-header-cascader-box">
|
|
- <div class="project-name-box">{{projectInfo.projectAlias}} / {{contractInfo.name}}</div>
|
|
|
|
- <el-cascader ref="ElCascaderRef" v-model="projectValue" :options="projectContract" :props="projectProps" placeholder="请选择项目" @change="projectContractChange"/>
|
|
|
|
|
|
+ <div class="project-name-box">{{ projectInfo.projectAlias }} / {{ contractInfo.name }}</div>
|
|
|
|
+ <el-cascader ref="ElCascaderRef" v-model="projectValue" :options="projectContract"
|
|
|
|
+ :props="projectProps" placeholder="请选择项目" @change="projectContractChange"/>
|
|
</div>
|
|
</div>
|
|
<MenuStretchBar/>
|
|
<MenuStretchBar/>
|
|
<HelpInfoBar></HelpInfoBar>
|
|
<HelpInfoBar></HelpInfoBar>
|
|
@@ -40,8 +44,8 @@
|
|
</div>
|
|
</div>
|
|
</el-header>
|
|
</el-header>
|
|
<TopMenuBar v-show="menuBarShow"/>
|
|
<TopMenuBar v-show="menuBarShow"/>
|
|
- <el-main class="hc-main-box" id="hc-main-box">
|
|
|
|
- <router-view v-slot="{ Component }" v-if="reloadRouter">
|
|
|
|
|
|
+ <el-main id="hc-main-box" class="hc-main-box">
|
|
|
|
+ <router-view v-if="reloadRouter" v-slot="{ Component }">
|
|
<transition name="fade-transform">
|
|
<transition name="fade-transform">
|
|
<keep-alive :max="10" exclude="home,home-index,home-config">
|
|
<keep-alive :max="10" exclude="home,home-index,home-config">
|
|
<component :is="Component" :msgCount="msgCount"/>
|
|
<component :is="Component" :msgCount="msgCount"/>
|
|
@@ -63,7 +67,7 @@ import UserInfoBar from "./modules/UserInfoBar.vue"
|
|
import ConfigBar from "./modules/ConfigBar.vue"
|
|
import ConfigBar from "./modules/ConfigBar.vue"
|
|
import TopMenuBar from "./modules/TopMenuBar.vue"
|
|
import TopMenuBar from "./modules/TopMenuBar.vue"
|
|
import MenuStretchBar from "./modules/MenuStretchBar.vue"
|
|
import MenuStretchBar from "./modules/MenuStretchBar.vue"
|
|
-import {initButtons,initProjectContract} from "~sto/app";
|
|
|
|
|
|
+import {initButtons, initProjectContract} from "~sto/app";
|
|
import NameDark from "~src/assets/logo/name-dark.png";
|
|
import NameDark from "~src/assets/logo/name-dark.png";
|
|
import NameWhite from "~src/assets/logo/name-white.png";
|
|
import NameWhite from "~src/assets/logo/name-white.png";
|
|
import website from '~src/config/index'
|
|
import website from '~src/config/index'
|
|
@@ -164,10 +168,10 @@ const projectContractData = (projectContractData) => {
|
|
})
|
|
})
|
|
//处理其他数据
|
|
//处理其他数据
|
|
projectContract.value = projectContractData
|
|
projectContract.value = projectContractData
|
|
- const projectId = useAppState.getProjectId //项目ID
|
|
|
|
- const contractId = useAppState.getContractId //合同段ID
|
|
|
|
- const UserProjectInfo = useAppState.getProjectInfo
|
|
|
|
- const UserContractInfo = useAppState.getContractInfo
|
|
|
|
|
|
+ const projectId = useAppState.getProjectId //项目ID
|
|
|
|
+ const contractId = useAppState.getContractId //合同段ID
|
|
|
|
+ const UserProjectInfo = useAppState.getProjectInfo
|
|
|
|
+ const UserContractInfo = useAppState.getContractInfo
|
|
//查询缓存的选中ID是否存在
|
|
//查询缓存的选中ID是否存在
|
|
const pid = projectContractData.findIndex(item => Number(item.id) === Number(projectId))
|
|
const pid = projectContractData.findIndex(item => Number(item.id) === Number(projectId))
|
|
const contractList = projectContractData[pid]?.contractInfoList || []
|
|
const contractList = projectContractData[pid]?.contractInfoList || []
|
|
@@ -187,14 +191,12 @@ const projectContractData = (projectContractData) => {
|
|
useAppState.setProjectId(letProjectInfo?.id)
|
|
useAppState.setProjectId(letProjectInfo?.id)
|
|
useAppState.setContractId(letContractInfo?.id)
|
|
useAppState.setContractId(letContractInfo?.id)
|
|
//发送消息
|
|
//发送消息
|
|
- console.log('111')
|
|
|
|
socketSend(letProjectInfo?.id + ',' + letContractInfo?.id)
|
|
socketSend(letProjectInfo?.id + ',' + letContractInfo?.id)
|
|
} else {
|
|
} else {
|
|
projectValue.value = String(contractId)
|
|
projectValue.value = String(contractId)
|
|
projectInfo.value = UserProjectInfo
|
|
projectInfo.value = UserProjectInfo
|
|
contractInfo.value = UserContractInfo
|
|
contractInfo.value = UserContractInfo
|
|
//发送消息
|
|
//发送消息
|
|
- console.log('222')
|
|
|
|
socketSend(projectId + ',' + contractId)
|
|
socketSend(projectId + ',' + contractId)
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -224,7 +226,7 @@ const projectContractChange = (val) => {
|
|
socketSend(val[0] + ',' + val[1])
|
|
socketSend(val[0] + ',' + val[1])
|
|
//刷新路由
|
|
//刷新路由
|
|
reloadRouter.value = false
|
|
reloadRouter.value = false
|
|
- nextTick(()=>{
|
|
|
|
|
|
+ nextTick(() => {
|
|
reloadRouter.value = true
|
|
reloadRouter.value = true
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -245,7 +247,7 @@ const getAssetsHomeFile = (url) => {
|
|
|
|
|
|
const handleChange = () => {
|
|
const handleChange = () => {
|
|
let file = document.getElementById("file").files[0]; // 获取input上传的图片数据;
|
|
let file = document.getElementById("file").files[0]; // 获取input上传的图片数据;
|
|
- let url = window.URL.createObjectURL(file); // 得到bolb对象路径,可当成普通的文件路径一样使用,赋值给src;
|
|
|
|
|
|
+ const url = window.URL.createObjectURL(file); // 得到bolb对象路径,可当成普通的文件路径一样使用,赋值给src;
|
|
document.getElementById("imagebox").src = url;
|
|
document.getElementById("imagebox").src = url;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -259,11 +261,11 @@ const msgCount = ref({
|
|
allCount: 0,
|
|
allCount: 0,
|
|
taskCount: 0,
|
|
taskCount: 0,
|
|
messageCount: 0,
|
|
messageCount: 0,
|
|
- messageCount_1:0,
|
|
|
|
- messageCount_2:0,
|
|
|
|
- messageCount_3:0,
|
|
|
|
- messageCount_4:0,
|
|
|
|
- messageCount_5:0,
|
|
|
|
|
|
+ messageCount_1: 0,
|
|
|
|
+ messageCount_2: 0,
|
|
|
|
+ messageCount_3: 0,
|
|
|
|
+ messageCount_4: 0,
|
|
|
|
+ messageCount_5: 0,
|
|
})
|
|
})
|
|
|
|
|
|
//推送系统
|
|
//推送系统
|
|
@@ -281,7 +283,7 @@ const setInitSocket = () => {
|
|
if (data) {
|
|
if (data) {
|
|
msgCount.value = JSON.parse(data)
|
|
msgCount.value = JSON.parse(data)
|
|
}
|
|
}
|
|
- console.log(data,'消息信息')
|
|
|
|
|
|
+ console.log(data, '消息信息')
|
|
};
|
|
};
|
|
socket.onerror = function ({data}) {
|
|
socket.onerror = function ({data}) {
|
|
console.log('发生错误:', data)
|
|
console.log('发生错误:', data)
|
|
@@ -293,7 +295,7 @@ const socketSend = (msg) => {
|
|
if (socket) {
|
|
if (socket) {
|
|
socket.send(msg);
|
|
socket.send(msg);
|
|
} else {
|
|
} else {
|
|
- setTimeout(()=>{
|
|
|
|
|
|
+ setTimeout(() => {
|
|
socket.send(msg);
|
|
socket.send(msg);
|
|
}, 1000)
|
|
}, 1000)
|
|
}
|
|
}
|
|
@@ -318,12 +320,13 @@ const socketSend = (msg) => {
|
|
background: #f1f5f8;
|
|
background: #f1f5f8;
|
|
color: #202532;
|
|
color: #202532;
|
|
box-shadow: var(--hc-shadow);
|
|
box-shadow: var(--hc-shadow);
|
|
|
|
+
|
|
.el-input__inner, .el-input__suffix {
|
|
.el-input__inner, .el-input__suffix {
|
|
color: #202532;
|
|
color: #202532;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.el-cascader .el-input.is-focus .el-input__wrapper {
|
|
.el-cascader .el-input.is-focus .el-input__wrapper {
|
|
- box-shadow: 4px 4px 8px 0 rgba(54,92,167,0.15), -4px -4px 8px 0px #ffffff;
|
|
|
|
|
|
+ box-shadow: 4px 4px 8px 0 rgba(54, 92, 167, 0.15), -4px -4px 8px 0px #ffffff;
|
|
}
|
|
}
|
|
.el-cascader .el-input .icon-arrow-down {
|
|
.el-cascader .el-input .icon-arrow-down {
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
@@ -336,6 +339,7 @@ const socketSend = (msg) => {
|
|
background-color: #00000000;
|
|
background-color: #00000000;
|
|
border: 1px solid white;
|
|
border: 1px solid white;
|
|
box-shadow: initial;
|
|
box-shadow: initial;
|
|
|
|
+
|
|
.el-input__inner, .el-input__suffix {
|
|
.el-input__inner, .el-input__suffix {
|
|
color: white;
|
|
color: white;
|
|
}
|
|
}
|