This commit is contained in:
bb_pan 2026-01-29 17:30:42 +08:00
parent 168fe29081
commit 4741170b1d
6 changed files with 220 additions and 154 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

BIN
src/assets/images/tishi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -38,18 +38,12 @@
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> -->
<div class="right-menu-item hover-effect bar-item">
<img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABPUlEQVQ4EYWTvUoDQRSFHbezCmIZAhLs7PQJxM4U8TmsBEvbVCkCeYC8QwQrU2sjEiSNjaKkFFTQIoG4+c44F5ZlZrxw9sw95+7d+Vu3QZRleQTtA6eceANXzrmVz3hQcwmdg3dwhjeBvdHDjMXYF/zVDGsFC/IT7zP4qJnVtEnSrwqVsZoca2q56ORMvKdNm2aCGwnd5B01WFoW4Xu0u4hu0kBLuE5M8xm9ANvgIVIz9F1CwQC+AZOAEdy2zzBWk1tg0TfPnzvqFsIusHsw55w/rQi/YLwHDsAXmOLPYX8PuhR8W+vAK/gi+G3GWk49xgiF9uC17oRcTRpAy0nFqU6hpS9FQl4TpHy90vrvHqgoG2pQZirkZX01mCUa/KC/ZHy9NtMmHoJH8FvZKW1sVxWw7oAum34eC/2APflrp+zfNar0B+8AAAAASUVORK5CYII="
alt="提醒"
/>
<div class="right-menu-item hover-effect bar-item" style="padding-top: 3px">
<img src="@/assets/images/menu-1.png" alt="提醒" />
</div>
<div class="right-menu-item hover-effect bar-item">
<img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAADwAAAADW5XGhAAAA5klEQVQoFe3TvQ7BUBTA8atFI2kwSHyEGCwGmzcwGCS8g0RisHgJs3fgCRgkBovdxGAyMROLwVD/c28HqRrEYnCSX3PuPacnTdurFOF5Xgw7nLFCFxGpSUju70lNeqQ3bqqmochGMOZs2L5ZsMi6pAeQTGUR0iBbQ19YWe6ZWExpy0Poaa+XLFviXXRkwFfxH6DUb7wDh+94w/WD7ym9FzhRLnf0UEEdVTTRwnMsWCyxxwZ96EMyIBlDnuKEI9bYwvzvSh3Ia2iggDKSGEGftgT/dQZyKi2kkNdFU8+xTsP2+11yV/IH7VrRz1OSP24AAAAASUVORK5CYII="
alt="提醒"
/>
<div class="right-menu-item hover-effect bar-item" style="padding-top: 3px">
<img src="@/assets/images/menu-2.png" alt="提醒" />
</div>
<div class="right-menu-item hover-effect bar-item" @click="goCollection">
@ -80,17 +74,14 @@
@click="goWarningDetail(item)"
>
<div class="warning-icon">
<img
src="data:image/png;base64,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"
alt="提醒"
/>
<img src="@/assets/images/yujing.png" alt="提醒" />
</div>
<div class="warning-content">
<div class="warning-main">{{ item.title }}</div>
<div class="warning-main">退役预警</div>
<el-tooltip :content="item.desc" placement="top" effect="dark">
<el-tooltip :content="item.status" placement="top" effect="dark">
<div class="warning-sub">
{{ item.desc }}
{{ item.name ? item.name + '-' : '' }}{{ item.status }}
</div>
</el-tooltip>
</div>
@ -125,16 +116,13 @@
@click="goMessageDetail(item)"
>
<div class="warning-icon">
<img
src="data:image/png;base64,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"
alt="提醒"
/>
<img src="@/assets/images/tishi.png" alt="提醒" />
</div>
<div class="warning-content">
<div class="warning-main">{{ item.title }}</div>
<el-tooltip :content="item.desc" placement="top" effect="dark">
<div class="warning-main">{{ item.businessName }}-{{ item.statusType }}</div>
<el-tooltip :content="item.deptAbbreviation || item.applyUser" placement="top" effect="dark">
<div class="warning-sub">
{{ item.desc }}
{{ item.deptAbbreviation ? item.deptAbbreviation + '-' : '' }}{{ item.applyUser }}-{{ item.applyTime }}
</div>
</el-tooltip>
</div>
@ -188,53 +176,93 @@
<div class="user-list">
<div class="user-item">
<!-- <i class="el-icon-mobile-phone" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/phone.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/phone.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>手机号</span>
<span class="right">138****8251</span>
</div>
<div class="user-item">
<!-- <i class="el-icon-lock" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/changePwd.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/changePwd.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>修改密码</span>
</div>
<div class="user-item">
<!-- <i class="el-icon-house" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/setHome.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/setHome.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>设置默认首页</span>
</div>
<div class="user-item" @click="downloadUserManual">
<!-- <i class="el-icon-download" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/download.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/download.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>操作手册下载</span>
</div>
<div class="user-item">
<!-- <i class="el-icon-t-shirt" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/changeSkin.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/changeSkin.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>一键换肤</span>
</div>
<div class="user-item" @click="clearCacheSimple">
<!-- <i class="el-icon-delete" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/claer.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/claer.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>清除缓存</span>
</div>
<div class="user-item">
<!-- <i class="el-icon-data-analysis" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/testSpeed.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/testSpeed.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>测试网络速度</span>
</div>
<div class="user-item" @click="gotoFeedback">
<!-- <i class="el-icon-edit-outline" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/feedback.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/feedback.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>意见反馈/闭环</span>
</div>
<div class="user-item" @click="showContactDialog">
<!-- <i class="el-icon-phone-outline" style="font-size: 19px; color: #000"></i> -->
<img src="../../assets/images/sysIcon/contact.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/contact.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>联系我们</span>
</div>
<div class="user-item logout" @click="logout">
<!-- <i class="el-icon-refresh-left" style="font-size: 19px; color: #000;"></i> -->
<img src="../../assets/images/sysIcon/loginOutIcon.png" style="width: 23px; height: 23px; margin-right: 4px;" alt=""/>
<img
src="../../assets/images/sysIcon/loginOutIcon.png"
style="width: 23px; height: 23px; margin-right: 4px"
alt=""
/>
<span>退出</span>
</div>
</div>
@ -260,7 +288,7 @@
<div class="menu-warp" @mouseleave="handleBoxLeave">
<div class="menu-list">
<div class="list-box" v-for="(item, i) in currentMenu.children || []" :key="i" v-if="!item.hidden">
<div class="menu-title-top" style="height: 30px;" v-if="currentMenu && currentMenu.meta">
<div class="menu-title-top" style="height: 30px" v-if="currentMenu && currentMenu.meta">
<div class="title-tip"></div>
<span class="title-text">{{ item.meta.title }}</span>
</div>
@ -316,8 +344,12 @@
<div v-else class="menu-title" @click="goRoute(c2)">
<span class="child-left">- {{ c2.meta.title }}</span>
<span class="menu-star" :class="{noCollect:c2.isCollect==0,isCollect:c2.isCollect==1}">
<img src="@/assets/images/star.png" style="width: 10px; height: 9px" @click.prevent.stop="handleCollection(c2)"/>
<span class="menu-star" :class="{ noCollect: c2.isCollect == 0, isCollect: c2.isCollect == 1 }">
<img
src="@/assets/images/star.png"
style="width: 10px; height: 9px"
@click.prevent.stop="handleCollection(c2)"
/>
</span>
</div>
</div>
@ -327,8 +359,12 @@
<div v-else class="menu-title" @click="goRoute(child)">
<div class="children-title-tip"></div>
<span style="color: #095a4d">{{ child.meta.title }}</span>
<span class="menu-star" :class="{noCollect:child.isCollect==0,isCollect:child.isCollect==1}">
<img src="@/assets/images/star.png" style="width: 10px; height: 9px" @click.prevent.stop="handleCollection(child)"/>
<span class="menu-star" :class="{ noCollect: child.isCollect == 0, isCollect: child.isCollect == 1 }">
<img
src="@/assets/images/star.png"
style="width: 10px; height: 9px"
@click.prevent.stop="handleCollection(child)"
/>
</span>
</div>
</div>
@ -337,24 +373,54 @@
</div>
</div>
<!-- 收藏菜单 -->
<el-drawer :withHeader="false" size="20%" :show-close="false" :visible.sync="drawerShow" @close="closeDrawer" direction="rtl" class="custom-drawer">
<el-drawer
:withHeader="false"
size="20%"
:show-close="false"
:visible.sync="drawerShow"
@close="closeDrawer"
direction="rtl"
class="custom-drawer"
>
<div class="myCollect-box">
<div class="myCollect-box-title">
<div style="font-size: 20px;color: #333943;font-weight: 600;">我的收藏</div>
<div style="color: #666;cursor: pointer;font-size: 16px;" v-if="!isEdit" @click="isEdit=true">编辑</div>
<div style="color: #33c2ac;cursor: pointer;font-size: 16px;font-weight: 600;" v-if="isEdit" @click="closeDrawer">确定</div>
<div style="font-size: 20px; color: #333943; font-weight: 600">我的收藏</div>
<div style="color: #666; cursor: pointer; font-size: 16px" v-if="!isEdit" @click="isEdit = true">编辑</div>
<div
style="color: #33c2ac; cursor: pointer; font-size: 16px; font-weight: 600"
v-if="isEdit"
@click="closeDrawer"
>确定</div
>
</div>
<div class="myCollect-box-zhineng">
<div class="myCollect-box-zhineng-title">收藏菜单</div>
<div style="width: 100%;overflow-y: auto;max-height: 78vh;">
<div v-for="(item,index) in zhinengList" :key="index" class="myCollect-box-zhineng-item" :class="{ itemActive: isHover==index }" @mouseover="isHover=index" @mouseleave="isHover = -1">
<div style="display: flex;align-items: center;" @click="gotoPage(item)"><img src="../../assets/images/catchIcon.png" style="width: 16px;height: 16px;margin-right: 5px;" alt=""> <span>{{ item.menuName }}</span> </div>
<div style="color: #33c2ac;" v-show="isEdit==true" @click="delCollect(item)">取消</div>
<div style="width: 100%; overflow-y: auto; max-height: 78vh">
<div
v-for="(item, index) in zhinengList"
:key="index"
class="myCollect-box-zhineng-item"
:class="{ itemActive: isHover == index }"
@mouseover="isHover = index"
@mouseleave="isHover = -1"
>
<div style="display: flex; align-items: center" @click="gotoPage(item)"
><img
src="../../assets/images/catchIcon.png"
style="width: 16px; height: 16px; margin-right: 5px"
alt=""
/>
<span>{{ item.menuName }}</span>
</div>
<div style="color: #33c2ac" v-show="isEdit == true" @click="delCollect(item)">取消</div>
</div>
<div style="width: 100%;display: flex;align-items: center;justify-content: center;" v-if="zhinengList.length==0">
<div
style="width: 100%; display: flex; align-items: center; justify-content: center"
v-if="zhinengList.length == 0"
>
<div>
<img src="../../assets/images/noData.png" style="width: 170px;height: 170px;" alt="">
<div style="width: 100%;text-align: center;font-size: 18px;color: #999;">暂无数据</div>
<img src="../../assets/images/noData.png" style="width: 170px; height: 170px" alt="" />
<div style="width: 100%; text-align: center; font-size: 18px; color: #999">暂无数据</div>
</div>
</div>
</div>
@ -409,7 +475,9 @@
import { mapGetters } from 'vuex'
import Search from '@/components/HeaderSearch'
import { getUserProfile } from '@/api/system/user'
import { addMenuCollect,deleteMenuCollect,getMenuCollectListApi } from '@/api/system/menu'
import { addMenuCollect, deleteMenuCollect, getMenuCollectListApi } from '@/api/system/menu'
import { getReal } from '@/api/basic/home'
import { getRetireListAPI } from '@/api/EquipmentRetire/index.js'
export default {
components: { Search },
@ -425,50 +493,18 @@ export default {
openLevel1: [],
openLevel2: [],
todoCount: 5,
warningCount: 2,
messageCount: 12,
warningList: [
{
id: 1,
title: '达标投产复检预警',
desc: '您所管理的今天明天后天工程已超期',
},
{
id: 2,
title: '达标投产复检预警',
desc: '红红火火恍恍惚惚好工程已超期',
},
{
id: 3,
title: '达标投产复检预警',
desc: '红红火火恍恍惚惚好新建工程',
},
],
warningCount: 0,
messageCount: 0,
warningList: [],
//
messageList: [
{
id: 1,
title: '系统通知',
desc: '您的账号于2026-01-25 10:00完成登录请注意账号安全',
},
{
id: 2,
title: '业务提醒',
desc: '手塘-北三110kV工程已完成验收可前往查看报告',
},
{
id: 3,
title: '待办提醒',
desc: '您有5条待办事项未处理预计截止时间2026-01-30',
},
],
messageList: [],
contactDialogVisible: false, //
contactPhone: '田经理15212781264刘经理19855530627', //
drawerShow:false,
isEdit:false,
isHover:-1,
isHover2:-1,
zhinengList:[],//{name:"",url:'/all/stockManagement/entryApply'},{name:"",url:'/all/business/outbound/addApply'}
drawerShow: false,
isEdit: false,
isHover: -1,
isHover2: -1,
zhinengList: [], //{name:"",url:'/all/stockManagement/entryApply'},{name:"",url:'/all/business/outbound/addApply'}
// xiangmuList:[],
}
},
@ -484,15 +520,34 @@ export default {
value: val,
})
},
}
},
},
created() {
this.getUser()
this.menuList = this.sidebarRouters.filter((route) => !route.hidden && route.path !== '/')
this.menuList = this.menuList.slice(1)
console.log('🚀 ~ this.menuList:', this.menuList)
this.getEventList()
this.getRetireList()
},
methods: {
async getEventList() {
try {
const res = await getReal()
this.messageList = res.data || []
this.messageCount = res.data.length || 0
} catch (error) {
console.log('🚀 ~ error:', error)
}
},
async getRetireList() {
const params = {
pageNum: 1,
pageSize: 100,
}
const res = await getRetireListAPI(params)
this.warningList = res.data.rows || []
this.warningCount = res.data.rows.length || 0
},
goHome() {
this.$router.push({ path: '/' })
},
@ -509,12 +564,12 @@ export default {
goTodo() {
// this.$router.push({ path: '/todo' }) //
},
async getMenuCollectList(){
async getMenuCollectList() {
try {
const res = await getMenuCollectListApi()
if(res.code==200){
this.zhinengList = res.data;
}else{
if (res.code == 200) {
this.zhinengList = res.data
} else {
this.zhinengList = []
}
console.log(res)
@ -522,27 +577,27 @@ export default {
console.error(error)
}
},
goCollection(){
goCollection() {
this.getMenuCollectList()
this.isEdit=false
this.drawerShow=true
this.isEdit = false
this.drawerShow = true
},
gotoPage(item){
this.drawerShow=false
this.isEdit=false
this.$router.replace({ path: '/'+item.fullRoutePath })
gotoPage(item) {
this.drawerShow = false
this.isEdit = false
this.$router.replace({ path: '/' + item.fullRoutePath })
},
async delCollect(item){
async delCollect(item) {
let param = {
menuId:item.menuId
menuId: item.menuId,
}
const res = await deleteMenuCollect(param)
this.changCollection(this.menuList,item.menuId,0)
this.changCollection(this.menuList, item.menuId, 0)
this.getMenuCollectList()
},
closeDrawer(){
this.isEdit=false;
this.drawerShow=false
closeDrawer() {
this.isEdit = false
this.drawerShow = false
},
goMessageDetail(item) {
this.$refs.messagePopover.doClose() //
@ -661,45 +716,45 @@ export default {
this.showMenuBox = false
},
async handleCollection(route) {
console.log("route2",route)
if(route.isCollect==0){
console.log('route2', route)
if (route.isCollect == 0) {
try {
let param = {
menuId:route.id
menuId: route.id,
}
const res = await addMenuCollect(param)
if (res.code === 200) {
this.$message.success('菜单收藏成功')
this.$nextTick(()=>{
this.changCollection(this.menuList,route.id,1)
this.$nextTick(() => {
this.changCollection(this.menuList, route.id, 1)
})
this.$forceUpdate()
this.showMenuBox = false
} else {
this.$message.error(res.msg || '菜单收藏失败')
this.changCollection(this.menuList,route.id,0)
this.changCollection(this.menuList, route.id, 0)
}
} catch (error) {
this.$message.error('菜单收藏失败:' + (error.message || '未知错误'))
console.error(error)
}
}else if(route.isCollect==1){
} else if (route.isCollect == 1) {
try {
let param = {
menuId:route.id
menuId: route.id,
}
const res = await deleteMenuCollect(param)
if (res.code === 200) {
this.$message.success('取消收藏成功')
this.changCollection(this.menuList,route.id,0)
this.$nextTick(()=>{
this.changCollection(this.menuList,route.id,0)
this.changCollection(this.menuList, route.id, 0)
this.$nextTick(() => {
this.changCollection(this.menuList, route.id, 0)
})
this.$forceUpdate()
this.showMenuBox = false
} else {
this.$message.error(res.msg || '取消收藏失败')
this.changCollection(this.menuList,route.id,1)
this.changCollection(this.menuList, route.id, 1)
}
} catch (error) {
this.$message.error('取消收藏失败:' + (error.message || '未知错误'))
@ -707,20 +762,20 @@ export default {
}
}
},
changCollection(array,targetId,status){
changCollection(array, targetId, status) {
for (let obj of array) {
if (obj.id === targetId) {
this.$set(obj,"isCollect",status)
obj.isCollect=status;
}
//
if (obj.children && Array.isArray(obj.children)) {
this.changCollection(obj.children, targetId, status);
}
if (obj.id === targetId) {
this.$set(obj, 'isCollect', status)
obj.isCollect = status
}
//
if (obj.children && Array.isArray(obj.children)) {
this.changCollection(obj.children, targetId, status)
}
}
},
goRoute(route) {
console.log("route",route)
console.log('route', route)
if (route.fullPath) {
this.$router.push({ path: route.fullPath, query: route.query })
this.showMenuBox = false
@ -741,31 +796,41 @@ export default {
</script>
<style lang="scss" scoped>
.custom-drawer{
::v-deep.el-drawer.rtl{
.custom-drawer {
::v-deep.el-drawer.rtl {
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
}
.myCollect-box{
width: 100%;height: 100%;background: #FAFAFA;overflow-y: auto;
.myCollect-box {
width: 100%;
height: 100%;
background: #fafafa;
overflow-y: auto;
}
.myCollect-box-title{
width: 100%;height: 66px;display: flex;align-items: center;padding:0 20px;justify-content: space-between;background: #FFF;margin-bottom: 10px;
.myCollect-box-title {
width: 100%;
height: 66px;
display: flex;
align-items: center;
padding: 0 20px;
justify-content: space-between;
background: #fff;
margin-bottom: 10px;
}
.myCollect-box-zhineng{
padding: 16px;
margin-bottom: 10px;
background-color: #fff;
.myCollect-box-zhineng {
padding: 16px;
margin-bottom: 10px;
background-color: #fff;
}
.myCollect-box-zhineng-title{
font-size: 18px;
color: #333;
font-weight: 600;
text-align: left;
margin-bottom: 10px;
.myCollect-box-zhineng-title {
font-size: 18px;
color: #333;
font-weight: 600;
text-align: left;
margin-bottom: 10px;
}
.myCollect-box-zhineng-item{
.myCollect-box-zhineng-item {
padding: 8px 5px;
cursor: pointer;
display: flex;
@ -774,11 +839,10 @@ export default {
color: #000;
font-size: 12px;
}
.itemActive{
.itemActive {
background-color: #e8f8f6;
color: #33c2ac;
}
</style>
<style lang="scss" scoped>
@ -1010,7 +1074,7 @@ export default {
.menu-title:hover .noCollect {
opacity: 0.5;
}
.menu-title:hover .isCollect{
.menu-title:hover .isCollect {
opacity: 1;
}
.title-tip {
@ -1091,6 +1155,8 @@ export default {
.warning-box {
width: 100%;
font-size: 14px;
max-height: 700px;
overflow-y: auto;
}
.warning-title {

View File

@ -38,7 +38,7 @@ module.exports = {
// target: `http://localhost:18080`,
// target: `http://192.168.0.96:28080`,//马
// target: `http://192.168.0.110:18080`,//洪
// target: `http://192.168.0.229:28080`,//蒋
// target: `http://192.168.0.41:28080`,//蒋
// target: `http://112.29.103.165:21001/prod-api`, //测试-重庆
target: `http://36.33.26.201:21999/prod-api`, //测试-安徽
// target: `http://192.168.137.1:18080`,//