|
@@ -1,10 +1,12 @@
|
|
|
<script setup>
|
|
|
-import { computed, reactive, ref, toRefs } from "vue";
|
|
|
+import { computed, reactive, ref, toRefs,watch } from "vue";
|
|
|
import { useRoute,useRouter } from 'vue-router'
|
|
|
import { useQuitSystem } from '@/hooks/login/use-login'
|
|
|
import { customInterence, roadshowInterence,departInterence } from "@/api/api";
|
|
|
import { ElMessageBox } from 'element-plus'
|
|
|
import { Expand,Fold } from '@element-plus/icons-vue'
|
|
|
+import BreadCrumb from '../breadcrumb/index.vue'
|
|
|
+import questionMsgDia from '@/components/questionMsgDia.vue'
|
|
|
|
|
|
const props = defineProps({
|
|
|
isCollapse: Boolean,
|
|
@@ -38,6 +40,15 @@ const isShowHelpDoc = computed(() => {
|
|
|
return roleArr.includes(role)
|
|
|
})
|
|
|
|
|
|
+watch(
|
|
|
+ () => $route.path,
|
|
|
+ (newval) => {
|
|
|
+ if(newval === '/sealApprovalList'){
|
|
|
+ isShowApprovalNotice.value = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
|
|
|
const isCollapse = computed(()=> props.isCollapse)
|
|
|
function collapseHandle() {
|
|
@@ -158,6 +169,23 @@ function getNotice() {
|
|
|
})
|
|
|
}
|
|
|
getNotice()
|
|
|
+ // 切换通知消息类型
|
|
|
+function handleNoticeTypeChange(e){
|
|
|
+ noticeState.noticeType=e
|
|
|
+ if(e==='客户'){
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.Company.List
|
|
|
+ }else if(e==='合同'){
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.Contract.List
|
|
|
+ }else if (e === '用印'){
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.Seal.List
|
|
|
+ }else if(e==='ETA试用'){
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.ETATrial.List
|
|
|
+ }else if(e==='出差'){
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.BusinessTrip.List
|
|
|
+ }else{
|
|
|
+ noticeState.currentNoticeList=noticeState.noticeList.EdbReplace.List
|
|
|
+ }
|
|
|
+}
|
|
|
/* 点击消息列表 跳转审批列表 */
|
|
|
function noticeClick(item) {
|
|
|
customInterence.readNotice({
|
|
@@ -254,6 +282,11 @@ async function linkToOtherMS(key){
|
|
|
window.open(href,'_blank');
|
|
|
}
|
|
|
|
|
|
+function toOperation (url) {
|
|
|
+ let {href} = $router.resolve({path:`/${url}`});
|
|
|
+ window.open(href,'_blank');
|
|
|
+}
|
|
|
+
|
|
|
/* 退出 */
|
|
|
function logout() {
|
|
|
ElMessageBox.confirm(
|
|
@@ -267,6 +300,11 @@ function logout() {
|
|
|
.catch()
|
|
|
}
|
|
|
|
|
|
+//修改密码
|
|
|
+function resetpwd() {
|
|
|
+ $router.push({ path: "/resetpsd" });
|
|
|
+}
|
|
|
+
|
|
|
const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,flag2,flag3,flag4,flag5,flag6 } = toRefs(noticeState);
|
|
|
</script>
|
|
|
<template>
|
|
@@ -284,38 +322,9 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
<Fold />
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
+
|
|
|
<!-- 面包屑 -->
|
|
|
- <!-- <el-breadcrumb separator="/" class="breadcrumb-inner">
|
|
|
- <el-breadcrumb-item v-for="item in $route.matched" :key="item.path">
|
|
|
- <span
|
|
|
- v-if="item.meta.pathFrom"
|
|
|
- @click.stop="handleClickBread(item)"
|
|
|
- style="cursor:pointer; color:#4099ef;fontSize:16px;">
|
|
|
- <template v-if="item.meta.pathFrom == 'pickList'">
|
|
|
- {{RoleType=='ficc'?'权益客户':'ficc客户'}}
|
|
|
- </template>
|
|
|
- <template v-if="item.meta.pathFrom=='/regionCustomerDetail'">
|
|
|
- {{$route.query.title?($route.query.title.split('/')[1]||''):''}}客户列表
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- {{item.meta.pathName}}
|
|
|
- </template>
|
|
|
- </span>
|
|
|
- <span v-if="item.meta.pathFrom" style="margin:0 9px;font-weight:700;color:#C0C4CC;fontSize:16px;">/</span>
|
|
|
- <span v-if="item.parent" style="cursor:pointer; color:#4099ef;fontSize:16px;" @click.stop="routeClick(item)">
|
|
|
- <template v-if="item.path == '/pickList'">
|
|
|
- {{RoleType=='ficc'?'权益客户':'ficc客户'}}
|
|
|
- </template>
|
|
|
- <template v-if="item.path=='/regionCustomerDetail'">
|
|
|
- {{$route.query.title?($route.query.title.split('/')[1]||''):''}}客户列表
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- {{ item.name }}
|
|
|
- </template>
|
|
|
- </span>
|
|
|
- <span v-else style="fontSize:16px;">{{ item.name }}</span>
|
|
|
- </el-breadcrumb-item>
|
|
|
- </el-breadcrumb> -->
|
|
|
+ <BreadCrumb/>
|
|
|
</div>
|
|
|
|
|
|
<div class="approval_notice" v-show="isShowApprovalNotice">
|
|
@@ -355,7 +364,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
popper-class="notice_poper"
|
|
|
>
|
|
|
<div>
|
|
|
- <h4 style="paddingbottom: 12px; borderbottom: 1px solid #dcdfe6">
|
|
|
+ <h4 style="padding-bottom: 12px; border-bottom: 1px solid #dcdfe6">
|
|
|
待办事项({{ noticeCount }}项)
|
|
|
</h4>
|
|
|
<div class="notice-nav-box">
|
|
@@ -370,7 +379,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -391,7 +400,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -412,7 +421,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -432,7 +441,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -452,7 +461,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -471,26 +480,26 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
@click="noticeClick(item)"
|
|
|
style="
|
|
|
display: flex;
|
|
|
- justifycontent: space-between;
|
|
|
- alignitems: center;
|
|
|
- fontsize: 12px;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ font-size: 12px;
|
|
|
cursor: pointer;
|
|
|
- marginbottom: 15px;
|
|
|
+ margin-bottom: 15px;
|
|
|
"
|
|
|
>
|
|
|
- <div style="display: flex; alignitems: center">
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
<div
|
|
|
style="
|
|
|
width: 36px;
|
|
|
min-width: 36px;
|
|
|
height: 36px;
|
|
|
background: #409eff;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
color: #fff;
|
|
|
- textalign: center;
|
|
|
- lineheight: 36px;
|
|
|
- marginright: 8px;
|
|
|
- fontsize: 12px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 36px;
|
|
|
+ margin-right: 8px;
|
|
|
+ font-size: 12px;
|
|
|
"
|
|
|
>
|
|
|
{{ item.RealName.substr(item.RealName.length - 2) }}
|
|
@@ -512,7 +521,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
</li>
|
|
|
</ul>
|
|
|
<div
|
|
|
- style="textalign: center; margin: 40px 0; color: #999"
|
|
|
+ style="text-align: center; margin: 40px 0; color: #999"
|
|
|
v-else
|
|
|
>
|
|
|
暂无通知
|
|
@@ -536,7 +545,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
style="
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
- borderradius: 50%;
|
|
|
+ border-radius: 50%;
|
|
|
background: #f00;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -548,6 +557,7 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-popover>
|
|
|
+
|
|
|
<!-- 销售待办 -->
|
|
|
<el-tooltip effect="dark" content="待办事项" placement="bottom"
|
|
|
v-if="['rai_seller','ficc_seller'].includes(Role)">
|
|
@@ -702,45 +712,6 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .breadcrumb-container {
|
|
|
- padding: 12px 20px;
|
|
|
- box-sizing: border-box;
|
|
|
- line-height: 18px;
|
|
|
- margin-bottom: 0px;
|
|
|
- .title {
|
|
|
- width: 150px;
|
|
|
- color: #475669;
|
|
|
- float: left;
|
|
|
- }
|
|
|
- .breadcrumb-inner {
|
|
|
- font: 14px/19px "微软雅黑";
|
|
|
- }
|
|
|
- }
|
|
|
- .breadFixed {
|
|
|
- display: block !important;
|
|
|
- background: rgb(255, 255, 255);
|
|
|
- border-bottom: 1px solid #eaeaea;
|
|
|
- padding: 13px 245px 12px 20px;
|
|
|
- box-sizing: border-box;
|
|
|
- position: fixed;
|
|
|
- top: 60px;
|
|
|
- left: 150px;
|
|
|
- right: 0;
|
|
|
- z-index: 10;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
- .breadCollapsedFixed {
|
|
|
- display: block !important;
|
|
|
- background: rgb(255, 255, 255);
|
|
|
- border-bottom: 1px solid #eaeaea;
|
|
|
- padding: 15px 105px 15px 25px;
|
|
|
- box-sizing: border-box;
|
|
|
- position: fixed;
|
|
|
- top: 60px;
|
|
|
- left: 60px;
|
|
|
- right: 0;
|
|
|
- z-index: 10;
|
|
|
- }
|
|
|
.userinfo {
|
|
|
min-width: 210px;
|
|
|
width: 220px;
|
|
@@ -814,34 +785,6 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
line-height: 19px;
|
|
|
}
|
|
|
}
|
|
|
- .icon-box-item {
|
|
|
- height: 32px;
|
|
|
- padding: 0 10px;
|
|
|
- border-radius: 4px;
|
|
|
- cursor: pointer;
|
|
|
- margin-right: 30px;
|
|
|
- flex-shrink: 0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- color: #333;
|
|
|
- position: relative;
|
|
|
- &:hover {
|
|
|
- background-color: #eaf3fe;
|
|
|
- color: #409eff;
|
|
|
- }
|
|
|
- svg {
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- }
|
|
|
- img {
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .safariStyle {
|
|
|
- border-right: none;
|
|
|
- margin-left: -1px;
|
|
|
}
|
|
|
.content-container {
|
|
|
height: calc(100vh - 90px);
|
|
@@ -900,4 +843,50 @@ const { noticeList,isShowNotice,currentNoticeList,noticeType,noticeCount,flag1,f
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+.icon-box-item {
|
|
|
+ height: 32px;
|
|
|
+ padding: 0 10px;
|
|
|
+ border-radius: 4px;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-right: 30px;
|
|
|
+ flex-shrink: 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ color: #333;
|
|
|
+ position: relative;
|
|
|
+ &:hover {
|
|
|
+ background-color: #eaf3fe;
|
|
|
+ color: #409eff;
|
|
|
+ }
|
|
|
+ svg {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+ img {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.notice_item:hover {
|
|
|
+ color: #409EFF;
|
|
|
+}
|
|
|
+.notice_poper {
|
|
|
+ max-height: 500px;
|
|
|
+ overflow-y: auto;
|
|
|
+ .notice-nav-box{
|
|
|
+ display: flex;
|
|
|
+ padding-top: 12px;
|
|
|
+ padding-left: 5px;
|
|
|
+ .notice-nav-item{
|
|
|
+ cursor: pointer;
|
|
|
+ line-height: 2;
|
|
|
+ margin-right: 30px;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .notice-nav-active{
|
|
|
+ color: #409EFF;
|
|
|
+ border-bottom: 2px solid #409EFF;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|