自动分配、团队异常联调

dev_202412
yujialong 11 months ago
parent 79411cfb07
commit b97887506e
  1. 15
      src/api/index.js
  2. 130
      src/layouts/header/index.vue
  3. 690
      src/pages/match/details/index.vue
  4. 9
      src/styles/common.scss

@ -17,13 +17,13 @@ export default {
getToken: `users/users/user/getToken`, getToken: `users/users/user/getToken`,
getOtherAccountByPhone: `users/users/user/getOtherAccountByPhone`, getOtherAccountByPhone: `users/users/user/getOtherAccountByPhone`,
unbindAccounts: `users/users/user/unbindAccounts`, unbindAccounts: `users/users/user/unbindAccounts`,
deleteProfile : `users/users/userInfo/deleteProfile`, deleteProfile: `users/users/userInfo/deleteProfile`,
getUserRolesPermissionMenu: `${host}users/users/user-role/getUserRolesPermissionMenu`, getUserRolesPermissionMenu: `${host}users/users/user-role/getUserRolesPermissionMenu`,
fileUploadNakadai: `${host}nakadai/nakadai/oss/fileUpload`, fileUploadNakadai: `${host}nakadai/nakadai/oss/fileUpload`,
refreshPageNotification : `nakadai/message/refreshPageNotification`, refreshPageNotification: `nakadai/message/refreshPageNotification`,
getUserInfo : `users/users/userInfo/getUserInfo`, getUserInfo: `users/users/userInfo/getUserInfo`,
getCurrentTime : `competition/competition/management/getCurrentTime`, getCurrentTime: `competition/competition/management/getCurrentTime`,
heartbeatDetection : `nakadai/message/heartbeatDetection`, heartbeatDetection: `nakadai/message/heartbeatDetection`,
// 阿里云文件/视频管理 // 阿里云文件/视频管理
getPlayAuth: `${uploadURL}oss/manage/getPlayAuth`, // 获取播放凭证 getPlayAuth: `${uploadURL}oss/manage/getPlayAuth`, // 获取播放凭证
@ -155,6 +155,11 @@ export default {
cCompetitionStageFileSave: `competition/cCompetitionStageFile/save`, cCompetitionStageFileSave: `competition/cCompetitionStageFile/save`,
cCompetitionStageFileDel: `competition/cCompetitionStageFile/batchDeletion`, cCompetitionStageFileDel: `competition/cCompetitionStageFile/batchDeletion`,
viewEventAllocationInformation: `competition/competitionAutomaticAllocationRecord/viewEventAllocationInformation`, viewEventAllocationInformation: `competition/competitionAutomaticAllocationRecord/viewEventAllocationInformation`,
checkTeamStatus: `competition/teamAbnormalInformation/checkTeamStatus`,
competitionTeamAutomaticAllocationRecordSave: `competition/competitionTeamAutomaticAllocationRecord/save`,
teamAssignmentButtonDisplay: `competition/competitionTeamAutomaticAllocationRecord/teamAssignmentButtonDisplay`,
assignedPlayer: `competition/competition/automaticAllocation/assignedPlayer`,
competitionTeamAutomaticAllocationRecordSave: `competition/competitionTeamAutomaticAllocationRecord/saveOrUpdate`,
// 创业活动 // 创业活动
activityList: `occupationlab/occupationlab/activity/activityList`, activityList: `occupationlab/occupationlab/activity/activityList`,

@ -1,114 +1,66 @@
<template> <template>
<div class="header"> <div class="header">
<a class="logo" <a class="logo" @click="toIndex">
@click="toIndex">
<template v-if="isIndex"> <template v-if="isIndex">
<img v-if="isZj" <img v-if="isZj" src="/images/4.png" alt="">
src="/images/4.png" <img v-else-if="isSq" style="max-height: 100%" src="/images/1.png" alt="">
alt=""> <img v-else-if="!isZxy" src="@/assets/img/logo.png" alt="">
<img v-else-if="isSq" <img v-else src="@/assets/img/zxy/logo.png" alt="">
style="max-height: 100%"
src="/images/1.png"
alt="">
<img v-else-if="!isZxy"
src="@/assets/img/logo.png"
alt="">
<img v-else
src="@/assets/img/zxy/logo.png"
alt="">
</template> </template>
<template v-else> <template v-else>
<img v-if="isZj" <img v-if="isZj" src="/images/4.png" alt="">
src="/images/4.png" <img v-else-if="isSq" style="max-height: 100%" src="/images/1.png" alt="">
alt=""> <img v-else :style="{ maxWidth: title ? '200px' : '300px' }" :src="logoUrl" height="50" />
<img v-else-if="isSq" <span class="title">{{ title }}</span>
style="max-height: 100%"
src="/images/1.png"
alt="">
<img v-else
:style="{maxWidth: title ? '200px' : '300px'}"
:src="logoUrl"
height="50" />
<span class="title">{{title}}</span>
</template> </template>
</a> </a>
<el-radio-group v-if="isDev && !$store.state.layout.isMobile" <el-radio-group v-if="isDev && !$store.state.layout.isMobile" class="ip" v-model="ip" @change="ipChange">
class="ip"
v-model="ip"
@change="ipChange">
<el-radio :label="0">刘榕ip</el-radio> <el-radio :label="0">刘榕ip</el-radio>
<el-radio :label="1">陈赓ip</el-radio> <el-radio :label="1">陈赓ip</el-radio>
</el-radio-group> </el-radio-group>
<!-- pc端 --> <!-- pc端 -->
<div v-if="!$store.state.layout.isMobile" <div v-if="!$store.state.layout.isMobile" class="inner">
class="inner"> <navbar class="nav-wrap" ref="nav"></navbar>
<navbar class="nav-wrap"
ref="nav"></navbar>
<div class="right"> <div class="right">
<template v-if="token || serverToken"> <template v-if="token || serverToken">
<el-popover v-if="!isIndex" <el-popover v-if="!isIndex" placement="top" :disabled="!notices.length">
placement="top" <p v-for="(item, i) in notices" :key="i" class="p-v-5 cursor-pointer" @click="toComment(item)">{{
:disabled="!notices.length"> item.commentUsername }} 回复了你的评论</p>
<p v-for="(item, i) in notices" <el-badge class="msg" :is-dot="!!notices.length" slot="reference">消息</el-badge>
:key="i"
class="p-v-5 cursor-pointer"
@click="toComment(item)">{{ item.commentUsername }} 回复了你的评论</p>
<el-badge class="msg"
:is-dot="!!notices.length"
slot="reference">消息</el-badge>
</el-popover> </el-popover>
<div class="user-wrap"> <div class="user-wrap">
<el-dropdown size="medium" <el-dropdown size="medium" @command="menuChange">
@command="menuChange">
<div class="user"> <div class="user">
<el-avatar :size="35" <el-avatar :size="35" :src="avatar"></el-avatar>
:src="avatar"></el-avatar>
<span class="username">{{ customerName || cName || userName }}</span> <span class="username">{{ customerName || cName || userName }}</span>
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="isIndex" <el-dropdown-item v-if="isIndex" command="index">前往{{ serverToken ? '教学' : '学习' }}</el-dropdown-item>
command="index">前往{{ serverToken ? '教学' : '学习' }}</el-dropdown-item> <el-dropdown-item v-if="!customerName && !serverToken" command="info">个人中心</el-dropdown-item>
<el-dropdown-item v-if="!customerName && !serverToken"
command="info">个人中心</el-dropdown-item>
<el-dropdown-item command="logout">退出登录</el-dropdown-item> <el-dropdown-item command="logout">退出登录</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
</template> </template>
<template v-else> <template v-else>
<el-button v-if="isZxy" <el-button v-if="isZxy" class="rounded" type="primary" @click="toNew('/login')">登录</el-button>
class="rounded" <div v-else class="login" @click="toNew('/login')">
type="primary" <img src="@/assets/img/user.png" alt="">
@click="toNew('/login')">登录</el-button>
<div v-else
class="login"
@click="toNew('/login')">
<img src="@/assets/img/user.png"
alt="">
<span>登录</span> <span>登录</span>
</div> </div>
</template> </template>
<el-button v-if="isZxy && isIndex" <el-button v-if="isZxy && isIndex" class="rounded trial" type="primary" plain @click="toTrial">免费试用</el-button>
class="rounded trial"
type="primary"
plain
@click="toTrial">免费试用</el-button>
</div> </div>
</div> </div>
<!-- 移动端 --> <!-- 移动端 -->
<div v-else <div v-else class="mobile-inner">
class="mobile-inner"> <i class="login el-icon-user-solid" @click="toLogin"></i>
<i class="login el-icon-user-solid" <i class="menu-icon" :class="mobileMenuStatus ? 'el-icon-s-fold' : 'el-icon-s-unfold'"
@click="toLogin"></i>
<i class="menu-icon"
:class="mobileMenuStatus ? 'el-icon-s-fold': 'el-icon-s-unfold' "
@click.stop="toggleMobileMenu"></i> @click.stop="toggleMobileMenu"></i>
<navbar v-show="mobileMenuStatus" <navbar v-show="mobileMenuStatus" class="mobile-menu" :isHome.sync="isHome"
class="mobile-menu"
:isHome.sync="isHome"
@toggleMobileMenu="toggleMobileMenu" /> @toggleMobileMenu="toggleMobileMenu" />
</div> </div>
</div> </div>
@ -316,6 +268,7 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
$height: 64px; $height: 64px;
.header { .header {
z-index: 10; z-index: 10;
position: fixed; position: fixed;
@ -325,6 +278,7 @@ $height: 64px;
height: $height; height: $height;
background-color: #fff; background-color: #fff;
box-shadow: 0px 0px 6px 0px rgba(178, 178, 178, 0.32); box-shadow: 0px 0px 6px 0px rgba(178, 178, 178, 0.32);
.inner { .inner {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -333,6 +287,7 @@ $height: 64px;
padding: 0 80px 0 10px; padding: 0 80px 0 10px;
margin: 0 auto; margin: 0 auto;
} }
.logo { .logo {
position: absolute; position: absolute;
top: 0; top: 0;
@ -343,28 +298,35 @@ $height: 64px;
color: #568df2; color: #568df2;
height: $height; height: $height;
cursor: pointer; cursor: pointer;
img { img {
max-width: 300px; max-width: 300px;
margin-right: 10px; margin-right: 10px;
} }
} }
.title { .title {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.nav-wrap { .nav-wrap {
height: 64px; height: 64px;
} }
.right { .right {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
.login { .login {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
opacity: 0.9; opacity: 0.9;
} }
span { span {
margin-left: 5px; margin-left: 5px;
color: #666; color: #666;
@ -372,40 +334,49 @@ $height: 64px;
} }
} }
} }
.msg { .msg {
margin-right: 30px; margin-right: 30px;
cursor: pointer; cursor: pointer;
} }
.user-wrap { .user-wrap {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
} }
.user { .user {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
} }
.el-divider--vertical { .el-divider--vertical {
width: 2px; width: 2px;
height: 15px; height: 15px;
margin-left: 15px; margin-left: 15px;
background-color: #d8d8d8; background-color: #d8d8d8;
} }
.username { .username {
margin-left: 10px; margin-left: 10px;
font-size: 12px; font-size: 12px;
} }
.logout { .logout {
margin-left: 5px; margin-left: 5px;
font-size: 12px; font-size: 12px;
color: #666; color: #666;
cursor: pointer; cursor: pointer;
} }
.rounded { .rounded {
border-radius: 6px; border-radius: 6px;
} }
.trial { .trial {
margin-left: 10px; margin-left: 10px;
&:hover { &:hover {
background-color: #48cafd; background-color: #48cafd;
border-color: #48cafd; border-color: #48cafd;
@ -420,11 +391,13 @@ $height: 64px;
align-items: center; align-items: center;
width: 100%; width: 100%;
height: $height; height: $height;
.login { .login {
font-size: 20px; font-size: 20px;
color: #c1c1c1; color: #c1c1c1;
cursor: pointer; cursor: pointer;
} }
.menu-icon { .menu-icon {
margin: 0 20px 0 10px; margin: 0 20px 0 10px;
font-size: 20px; font-size: 20px;
@ -433,6 +406,7 @@ $height: 64px;
} }
} }
} }
.mobile-menu { .mobile-menu {
z-index: 9999; z-index: 9999;
position: absolute; position: absolute;
@ -443,16 +417,19 @@ $height: 64px;
max-height: 300px; max-height: 300px;
overflow-y: scroll; overflow-y: scroll;
} }
@media (max-width: 1870px) { @media (max-width: 1870px) {
.header { .header {
.logo { .logo {
left: 20px; left: 20px;
} }
.inner { .inner {
padding-right: 20px; padding-right: 20px;
} }
} }
} }
@media (max-width: 1550px) { @media (max-width: 1550px) {
.header { .header {
.logo { .logo {
@ -462,6 +439,7 @@ $height: 64px;
} }
} }
} }
.ip { .ip {
position: fixed; position: fixed;
top: 25px; top: 25px;

File diff suppressed because it is too large Load Diff

@ -355,15 +355,6 @@
.el-tooltip__popper { .el-tooltip__popper {
width: 300px; width: 300px;
} }
.el-tooltip__popper.is-dark {
padding: 18px 20px;
color: #606266;
line-height: 1.8;
background-color: #fff;
border: 0.0625rem solid #ebeef5;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
border-radius: 4px;
}
.el-tooltip__popper[x-placement^='top'] { .el-tooltip__popper[x-placement^='top'] {
.popper__arrow { .popper__arrow {
border-top-color: #fff; border-top-color: #fff;

Loading…
Cancel
Save