11.22修改意见部分调整

This commit is contained in:
fan 2022-11-23 10:37:52 +08:00
parent 32d97e6648
commit 206dbd1219
7 changed files with 731 additions and 88 deletions

View File

@ -10,9 +10,6 @@
<el-dropdown-item> <el-dropdown-item>
<span style="display:block;" @click="handleDetail">{{ $t('global.personalDetails') }}</span> <span style="display:block;" @click="handleDetail">{{ $t('global.personalDetails') }}</span>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-if="companyAdmin && isSameProject">
<span style="display:block;" @click="handleOrganization">教学管理</span>
</el-dropdown-item>
<el-dropdown-item v-if="isNotCompanyAdmin && isCGY && isSameProject"> <el-dropdown-item v-if="isNotCompanyAdmin && isCGY && isSameProject">
<span style="display:block;" @click="handleStatistics">数据统计</span> <span style="display:block;" @click="handleStatistics">数据统计</span>
</el-dropdown-item> </el-dropdown-item>
@ -53,7 +50,6 @@ export default {
}, },
isCGY() { isCGY() {
return getSessionStorage('project') === 'cgy'; return getSessionStorage('project') === 'cgy';
// gzb
} }
}, },
mounted() { mounted() {
@ -70,9 +66,6 @@ export default {
handleDetail() { handleDetail() {
this.$refs.userInfo.doShow(); this.$refs.userInfo.doShow();
}, },
handleOrganization() {
this.$router.push({ path: `/info/organization` });
},
handleStatistics() { handleStatistics() {
this.$router.push({ path: `/info/studentStatistics` }); this.$router.push({ path: `/info/studentStatistics` });
} }

View File

@ -82,7 +82,6 @@
style="width: 100%; height: 100%; padding: 0 10px; display: block;" style="width: 100%; height: 100%; padding: 0 10px; display: block;"
>{{ $t(child.meta.i18n) }}</a> >{{ $t(child.meta.i18n) }}</a>
</div> </div>
<!-- <el-menu-item :key="cdx" :index="item.redirect ? item.redirect : (item.path+'/'+child.path)" :route="(child.route && child.route()) ? child.route() : null"> -->
<el-menu-item v-else :key="cdx" :index="item.redirect ? item.redirect : (item.path+'/'+child.path)"> <el-menu-item v-else :key="cdx" :index="item.redirect ? item.redirect : (item.path+'/'+child.path)">
<span v-if="child.meta" slot="title">{{ $t(child.meta.i18n) }}</span> <span v-if="child.meta" slot="title">{{ $t(child.meta.i18n) }}</span>
</el-menu-item> </el-menu-item>
@ -92,25 +91,27 @@
</el-submenu> </el-submenu>
</template> </template>
</template> </template>
<el-submenu v-if="!thirdLogin" :key="99" index="/info" :show-timeout="100">
<span slot="title">{{ username }}</span>
<el-menu-item :key="991" index="/info/personalInfo">个人信息</el-menu-item>
<el-menu-item v-if="isNotCompanyAdmin && isCGY && isSameProject" :key="992" index="/info/studentStatistics">数据统计</el-menu-item>
</el-submenu>
<div v-if="!thirdLogin" class="rightGroup"> <div v-if="!thirdLogin" class="rightGroup">
<!-- <quick-entry ref="quickEntry" /> --> <el-tooltip class="item" effect="dark" content="退出" placement="bottom-end">
<user-logout ref="userLogout" /> <i class="el-icon-switch-button" style="color: #fff;font-weight: bolder;cursor: pointer;" @click="logout" />
</el-tooltip>
</div> </div>
</el-menu> </el-menu>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import UserLogout from './Logout';
import QuickEntry from './Entry';
import SystemTitle from './Title'; import SystemTitle from './Title';
import {getSessionStorage } from '@/utils/auth'; import {getSessionStorage } from '@/utils/auth';
import { ThirdLoginList } from '@/scripts/ProjectConfig'; import { ThirdLoginList } from '@/scripts/ProjectConfig';
export default { export default {
components: { components: {
UserLogout,
QuickEntry,
SystemTitle SystemTitle
}, },
data() { data() {
@ -128,8 +129,19 @@ export default {
]), ]),
thirdLogin() { thirdLogin() {
return ThirdLoginList.includes(getSessionStorage('project')); return ThirdLoginList.includes(getSessionStorage('project'));
},
username() {
return this.$store.state.user.nickname;
},
isNotCompanyAdmin() {
return this.$store.state.user.companyAdmin == false;
},
isSameProject() {
return this.$store.state.user.companyProjectList.includes(getSessionStorage('project').toUpperCase());
},
isCGY() {
return getSessionStorage('project') === 'cgy';
} }
}, },
watch: { watch: {
$route(val) { $route(val) {
@ -185,6 +197,11 @@ export default {
setTimeout(() => { // setTimeout(() => { //
this.$refs.keMenu.activeIndex = index; this.$refs.keMenu.activeIndex = index;
}, 100); }, 100);
},
logout() {
this.$store.dispatch('LogOut').then(() => {
location.reload(); // vue-router bug
});
} }
} }
}; };
@ -194,10 +211,8 @@ export default {
$height: 61px; $height: 61px;
.rightGroup{ .rightGroup{
// position: absolute;
// right: 35px;
display: inline-block; display: inline-block;
padding: 0 35px; padding: 0 20px;
} }
.navbar { .navbar {

View File

@ -1,13 +1,5 @@
<template> <template>
<el-dialog <div>
v-dialogDrag
:title="$t('global.personalDetails')"
:visible.sync="visible"
width="470px"
:close-on-click-modal="false"
:before-close="doClose"
class="userInfo_box"
>
<div> <div>
<div class="form_box"> <div class="form_box">
<div class="title">{{ $t('global.compellation') }}:</div> <div class="title">{{ $t('global.compellation') }}:</div>
@ -236,14 +228,6 @@
</div> </div>
</div> </div>
</div> </div>
<!--<div class="form_box">-->
<!--<div class="title">单位:</div>-->
<!--<div class="content_box_info">-->
<!--<div class="show_box">-->
<!--<span>{{ userInfo.companyId }}</span>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<div v-if="!wmOpenId" class="form_box"> <div v-if="!wmOpenId" class="form_box">
<div class="title">绑定微信:</div> <div class="title">绑定微信:</div>
<div class="content_box_info"> <div class="content_box_info">
@ -262,10 +246,7 @@
<div v-if="bindSuccess"><span>绑定微信成功</span></div> <div v-if="bindSuccess"><span>绑定微信成功</span></div>
</div> </div>
</div> </div>
<span slot="footer" class="dialog-footer"> </div>
<el-button type="primary" @click="doClose">{{ $t('global.close') }}</el-button>
</span>
</el-dialog>
</template> </template>
<script> <script>

View File

@ -179,6 +179,7 @@ const PreTheoryImport = () => import('@/views/competitionManage/bankList/preImpo
const MessageBoard = () => import('@/views/messageBoard/index'); const MessageBoard = () => import('@/views/messageBoard/index');
const BoardManage = () => import('@/views/messageBoard/manage'); const BoardManage = () => import('@/views/messageBoard/manage');
const OrganizationManage = () => import('@/views/organization/index'); const OrganizationManage = () => import('@/views/organization/index');
const PersonalInfo = () => import('@/views/info/personalInfo');
const OrgClassManage = () => import('@/views/organization/classManage/index'); const OrgClassManage = () => import('@/views/organization/classManage/index');
const OrgDraftLessonManage = () => import('@/views/organization/draftLessonManage/index'); const OrgDraftLessonManage = () => import('@/views/organization/draftLessonManage/index');
const OrgLessonManage = () => import('@/views/organization/lessonManage/index'); const OrgLessonManage = () => import('@/views/organization/lessonManage/index');
@ -627,6 +628,11 @@ export const publicAsyncRoute = [
component: Layout, component: Layout,
hidden: true, hidden: true,
children: [ children: [
{
path: 'personalInfo',
component: PersonalInfo,
hidden: true
},
{ // 单位组织管理 { // 单位组织管理
path: 'organization', path: 'organization',
component: OrganizationManage, component: OrganizationManage,

View File

@ -0,0 +1,691 @@
<template>
<div style="width: 100%;height: 100%;text-align: center;">
<div style="width: 450px;margin: 100px auto">
<div class="form_box">
<div class="title">{{ $t('global.compellation') }}:</div>
<div class="content_box_info">
<div v-show="nameShow" class="show_box">
<span>{{ userInfo.name }}</span>
<i class="el-icon-edit" @click="switcherName" />
</div>
<div v-show="!nameShow" class="flex_box">
<el-input
v-model="editInfo.name"
:placeholder="$t('global.enterName')"
maxlength="20"
size="mini"
class="input_box"
/>
<div class="button_box">
<el-button
size="mini"
class="button_box"
:disabled="!editInfo.name"
@click="saveName"
>{{ $t('global.save') }}</el-button>
<el-button
size="mini"
class="button_box"
type="text"
@click="switcherName"
>{{ $t('global.cancel') }}</el-button>
</div>
</div>
</div>
</div>
<div class="form_box">
<div class="title">{{ $t('global.nickName') }}:</div>
<div class="content_box_info">
<div v-show="nickNameShow" class="show_box">
<span>{{ userInfo.nickname }}</span>
<i class="el-icon-edit" @click="switcherNickname" />
</div>
<div v-show="!nickNameShow" class="flex_box">
<el-input
v-model="editInfo.nickname"
:placeholder="$t('global.enterNickname')"
maxlength="20"
size="mini"
class="input_box"
/>
<div class="button_box">
<el-button
size="mini"
class="button_box"
:disabled="!editInfo.nickname"
@click="saveNickName"
>{{ $t('global.save') }}</el-button>
<el-button
size="mini"
class="button_box"
type="text"
@click="switcherNickname"
>{{ $t('global.cancel') }}</el-button>
</div>
</div>
</div>
</div>
<div class="form_box">
<div class="title">{{ $t('global.mobile') }}:</div>
<div class="content_box_info">
<div v-show="mobileShow" class="show_box">
<span>{{ geTel(userInfo.mobile) }}</span>
<i class="el-icon-edit" @click="switcherMobile" />
</div>
<div v-show="!mobileShow" class="flex_box">
<el-input
v-model="editInfo.mobile"
:placeholder="$t('global.enterMobile')"
maxlength="11"
size="mini"
class="input_box"
/>
<el-select v-model="nationCode" size="mini" class="selectCountry">
<el-option
v-for="item in countryList"
:key="item.value"
:label="item.name"
:value="item.value"
/>
</el-select>
<el-input
v-model="mobileCode"
:placeholder="$t('global.verificationCode')"
size="mini"
class="code_box"
style="margin-top: 10px;"
/>
<el-button
size="mini"
style="margin-top: 10px; margin-right: 10px;"
:disabled="mobileCodeTime != 0"
@click="sendMobileCode"
>
{{ $t('global.sendCode') }}
<span
v-if="mobileCodeTime"
>{{ mobileCodeTime }}</span>
</el-button>
<div class="button_box" style="margin-top: 10px;">
<el-button
size="mini"
class="button_box"
:disabled="!mobileCode"
@click="saveMobile"
>{{ $t('global.save') }}</el-button>
<el-button
size="mini"
class="button_box"
type="text"
@click="switcherMobile"
>{{ $t('global.cancel') }}</el-button>
</div>
</div>
</div>
</div>
<div class="form_box">
<div class="title">{{ $t('global.email') }}:</div>
<div class="content_box_info">
<div v-show="emailShow" class="show_box">
<span>{{ userInfo.email }}</span>
<i class="el-icon-edit" @click="switcherEmail" />
</div>
<div v-show="!emailShow" class="flex_box">
<el-input
v-model="editInfo.email"
:placeholder="$t('global.enterEmail')"
size="mini"
class="input_box"
/>
<el-input
v-model="emailCode"
:placeholder="$t('global.verificationCode')"
size="mini"
class="code_box"
style="margin-top: 10px;"
/>
<el-button
size="mini"
style="margin-top: 10px; margin-right: 10px;"
:disabled="emailCodeTime != 0"
@click="sendEmailCode"
>
{{ $t('global.sendCode') }}
<span
v-if="emailCodeTime"
>{{ emailCodeTime }}</span>
</el-button>
<div class="button_box" style="margin-top: 10px;">
<el-button
size="mini"
class="button_box"
:disabled="!emailCode"
@click="saveEmail"
>{{ $t('global.save') }}</el-button>
<el-button
size="mini"
class="button_box"
type="text"
@click="switcherEmail"
>{{ $t('global.cancel') }}</el-button>
</div>
</div>
</div>
</div>
<div class="form_box">
<div class="title">{{ $t('global.passWord') }}:</div>
<div class="content_box_info">
<div v-show="passwordShow" class="show_box">
<span>******</span>
<i class="el-icon-edit" @click="switcherPassWord" />
</div>
<div v-show="!passwordShow" class="flex_box">
<div class="passWord_box">
<span>{{ $t('global.newPassWord') }}:</span>
<el-input
v-model="newPassWord1"
:placeholder="$t('global.enterPassWord')"
maxlength="20"
show-password
size="mini"
class="input_box"
/>
</div>
<div style="height: 28px; line-height: 28px; margin-bottom: 10px;">
<el-input
v-model="passWordCode"
:placeholder="$t('global.verificationCode')"
size="mini"
class="code_box"
/>
<el-button
size="mini"
style="margin-right: 10px;"
:disabled="passWordCodeTime != 0"
@click="sendPassWordCode"
>
{{ $t('global.sendMobileCode') }}
<span
v-if="passWordCodeTime"
>{{ passWordCodeTime }}</span>
</el-button>
</div>
<div class="button_box" style="width: 150px;">
<el-button
size="mini"
class="button_box"
:disabled="!passWordCode"
@click="savePassWord"
>{{ $t('global.save') }}</el-button>
<el-button
size="mini"
class="button_box"
type="text"
@click="switcherPassWord"
>{{ $t('global.cancel') }}</el-button>
</div>
</div>
</div>
</div>
</div>
<div v-if="!wmOpenId" class="form_box">
<div class="title">绑定微信:</div>
<div class="content_box_info">
<el-button v-if="!binding&&!bindSuccess" type="primary" size="small" style="position: absolute;" @click="generateBindQrCode">生成微信二维码</el-button>
<div v-if="binding && !bindSuccess" class="login-code-box" @click="generateBindQrCode">
<qrcode-vue
v-loading="loadingCode"
:value="loginUrl"
:class-name="qrcodeClassName"
:size="150"
:element-loading-text="this.$t('login.clickRefresh')"
element-loading-spinner="el-icon-refresh"
element-loading-background="rgba(255, 255, 255, 0.9)"
/>
</div>
<div v-if="bindSuccess"><span>绑定微信成功</span></div>
</div>
</div>
</div>
</template>
<script>
import md5 from 'js-md5';
import { getInfo } from '@/api/login';
import { getToken } from '@/utils/auth'; // getDesignToken
import {
getUserinfoName,
getUserinfoNickname,
getUserinfoMobile,
getUserinfoMobileCode,
getUserinfoEmailCode,
getUserinfoEmail,
getUserinfoPassword,
getBindWxQrCodeUrl
} from '@/api/management/user';
import QrcodeVue from 'qrcode.vue';
import { setInterval, clearInterval } from 'timers';
import { checkLoginStatus } from '@/api/login';
import { getSessionStorage } from '@/utils/auth';
export default {
name: 'PersonalInfo',
components: { QrcodeVue },
data() {
return {
loginUrl: '',
loadingCode: false,
sessionId: '',
binding: false,
bindSuccess: false,
qrcodeClassName: 'login-qrcode',
checkTimeout: null,
userInfo: {
name: '',
nickname: '',
mobile: '',
email: '',
passWord: '',
companyId: ''
},
editInfo: {
name: '',
nickname: '',
mobile: '',
email: '',
passWord: '',
companyId: ''
},
nationCode: '86',
nameShow: true,
nickNameShow: true,
mobileShow: true,
emailShow: true,
passwordShow: true,
mobileCode: null,
emailCode: null,
passWordCode: null,
checkLogin: null,
oldPassWord: null,
newPassWord1: null,
mobileCodeTime: 0,
emailCodeTime: 0,
passWordCodeTime: 0,
emailTime: null,
mobileTime: null,
passWordTime: null,
countryList: [
{ name: this.$t('global.china'), value: '86' },
{ name: this.$t('global.australia'), value: '61' },
{ name: this.$t('global.england'), value: '44' },
{ name: this.$t('global.hongKong'), value: '852' },
{ name: this.$t('global.Japanese'), value: '81' },
{ name: this.$t('global.macao'), value: '853' },
{ name: this.$t('global.singapore'), value: '65' },
{ name: this.$t('global.taiwan'), value: '886' },
{ name: this.$t('global.america'), value: '1' }
],
nationCodeInit: '86', //
loginClient: 'LianKeTang',
project:'',
wmOpenId: '',
companyList: []
};
},
computed: {
info() {
return this.$store.state.user;
}
},
mounted() {
this.initData();
},
beforeDestroy() {
this.binding = false;
this.bindSuccess = false;
this.nameShow = true;
this.nickNameShow = true;
this.mobileShow = true;
this.emailShow = true;
this.passwordShow = true;
},
methods: {
geTel(tel) {
const reg = /^(\d{3})\d{4}(\d{4})$/;
if (tel) {
return tel.replace(reg, '$1****$2');
} else {
return '';
}
},
initData() {
this.binding = false;
this.bindSuccess = false;
this.project = getSessionStorage('project');
const token = getToken();
getInfo(token).then(response => {
const user = response.data;
this.userInfo = {
name: user.name,
nickname: user.nickname,
mobile: user.mobile,
email: user.email,
passWord: '',
companyId: user.companyId
};
this.wmOpenId = user.wmOpenId || '';
this.oldPassWord = user.password;
this.nationCode = user.nationCode ? user.nationCode : '86';
this.nationCodeInit = user.nationCode ? user.nationCode : '86';
}).catch(error => {
console.log(error, '请求个人信息失败');
});
},
switcherName() {
this.editInfo.name = this.userInfo.name;
this.nameShow = !this.nameShow;
},
async saveName() {
if (this.editInfo.name) {
try {
await getUserinfoName(this.info.id, this.editInfo.name);
this.userInfo.name = this.editInfo.name;
this.nameShow = !this.nameShow;
this.$store.commit('SET_NAME', this.editInfo.name);
} catch (error) {
console.log(error, '错误');
}
}
},
async saveCompany() {
try {
await getUserinfoName(this.info.id, this.editInfo.name);
this.userInfo.name = this.editInfo.name;
this.nameShow = !this.nameShow;
this.$store.commit('SET_NAME', this.editInfo.name);
} catch (error) {
console.log(error, '错误');
}
},
switcherNickname() {
this.editInfo.nickname = this.userInfo.nickname;
this.nickNameShow = !this.nickNameShow;
},
async saveNickName() {
if (this.editInfo.nickname) {
try {
await getUserinfoNickname(
this.info.id,
this.editInfo.nickname
);
this.userInfo.nickname = this.editInfo.nickname;
this.nickNameShow = !this.nickNameShow;
this.$store.commit('SET_NICKNAME', this.editInfo.nickname);
} catch (error) {
console.log(error, '错误');
}
}
},
switcherMobile() {
this.mobileShow = !this.mobileShow;
},
async saveMobile() {
if (this.editInfo.mobile && this.mobileCode) {
try {
const params = {
mobile: this.editInfo.mobile,
nationCode: this.nationCode,
validCode: this.mobileCode
};
await getUserinfoMobile(this.info.id, params);
this.userInfo.mobile = this.editInfo.mobile;
this.nationCodeInit = this.nationCode;
this.mobileShow = !this.mobileShow;
this.mobileCode = null;
} catch (error) {
this.$message.info(this.$t('global.codeError'));
}
}
},
async sendMobileCode() {
const random = Math.floor(Math.random() * 10000 + 1);
const timeCount = Date.parse(new Date()) / 1000;
const pass = `${timeCount}${this.nationCode}${this.editInfo.mobile}${random}`;
const param = {
mobile: this.editInfo.mobile,
nationCode: this.nationCode,
rd: random,
time: timeCount,
token: md5(pass)
};
try {
this.mobileCodeTime = 30;
this.mobileTime = setInterval(() => {
this.mobileCodeTime--;
if (this.mobileCodeTime <= 0) {
this.mobileCodeTime = 0;
clearInterval(this.mobileTime);
this.mobileTime = null;
}
}, 1000);
await getUserinfoMobileCode(param);
} catch (error) {
this.$message.info(this.$t('global.codeFaile'));
}
},
switcherEmail() {
// this.editInfo.email = this.userInfo.email;
this.emailShow = !this.emailShow;
},
async saveEmail() {
if (this.editInfo.email && this.emailCode) {
try {
const params = {
email: this.editInfo.email,
validCode: this.emailCode
};
await getUserinfoEmail(this.info.id, params);
this.userInfo.email = this.editInfo.email;
this.emailShow = !this.emailShow;
this.emailCode = null;
} catch (error) {
this.$message.info(this.$t('global.codeError'));
}
}
},
async sendEmailCode() {
try {
this.emailCodeTime = 30;
this.emailTime = setInterval(() => {
this.emailCodeTime--;
if (this.emailCodeTime <= 0) {
this.emailCodeTime = 0;
clearInterval(this.emailTime);
this.emailTime = null;
}
}, 1000);
await getUserinfoEmailCode(this.editInfo.email);
} catch (error) {
this.$message.info(this.$t('global.codeFaile'));
}
},
switcherPassWord() {
this.passwordShow = !this.passwordShow;
},
async savePassWord() {
if (this.newPassWord1.length <= 5) {
this.$message.info(this.$t('global.passWordLength'));
} else {
this.uploadPassword();
}
},
async uploadPassword() {
if (this.newPassWord1) {
//
const param = {
password: md5(this.newPassWord1),
vfCode: this.passWordCode
};
try {
await getUserinfoPassword(this.info.id, param);
this.passwordShow = !this.passwordShow;
this.newPassWord1 = '';
this.passWordCode = null;
} catch (error) {
console.log(error, 11);
}
} else {
this.$message.info(this.$t('global.passWordSome'));
}
},
generateBindQrCode() { //
getBindWxQrCodeUrl().then(response => {
this.loadingCode = false;
this.loginUrl = response.data.url;
this.binding = true;
});
},
checkLoginStatus() {
const self = this;
//
if (!this.binding) {
return;
}
//
//
this.clearTimer(this.checkLogin);
this.checkLogin = setTimeout(() => {
checkLoginStatus(self.sessionId).then(response => {
//
if (response.data.status == '2') {
self.clearTimer(self.checkLogin);
self.bindSuccess = true;
} else {
self.checkLoginStatus();
}
}).catch(error => {
if (error.data && error.data.status === '1') {
self.scanSuccess = true;
}
self.checkLoginStatus();
});
}, 3000);
},
clearTimer(timer) {
if (timer) {
clearTimeout(timer);
timer = null;
}
},
async sendPassWordCode() {
if (this.userInfo.mobile) {
const random = Math.floor(Math.random() * 10000 + 1);
const timeCount = Date.parse(new Date()) / 1000;
const pass = `${timeCount}${this.nationCodeInit}${this.userInfo.mobile}${random}`;
const param = {
mobile: this.userInfo.mobile,
nationCode: this.nationCodeInit,
rd: random,
time: timeCount,
token: md5(pass)
};
try {
this.passWordCodeTime = 30;
this.passWordTime = setInterval(() => {
this.passWordCodeTime--;
if (this.passWordCodeTime <= 0) {
this.passWordCodeTime = 0;
clearInterval(this.mobileTime);
this.passWordTime = null;
}
}, 1000);
await getUserinfoMobileCode(param);
} catch (error) {
this.$message.info(this.$t('global.codeFaile'));
}
} else {
this.passwordShow = !this.passwordShow;
this.$message.info(this.$t('global.enterMobileNumber'));
}
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scope>
.flex_box {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.form_box {
width: 100%;
overflow: hidden;
margin-bottom: 10px;
display: flex;
.selectCountry {
width: 90px;
height: 28px;
line-height: 28px;
}
.title {
width: 80px;
text-align: left;
font-size: 14px;
height: 28px;
line-height: 28px;
}
.content_box_info {
flex:1;
margin: 0;
.el-icon-edit {
cursor: pointer;
}
}
.show_box {
height: 28px;
line-height: 28px;
}
.input_box {
font-size: 14px;
width: 200px;
margin-right: 10px;
flex: none;
line-height: 0;
}
.code_box {
font-size: 14px;
width: 150px;
margin-right: 15px;
flex: none;
line-height: 0;
}
.button_box {
line-height: 0;
height: 28px;
}
.passWord_box {
height: 28px;
line-height: 28px;
margin-bottom: 10px;
}
.login-qrcode {
width: 150px;
}
}
</style>
<style rel="stylesheet/scss" lang="scss">
.userInfo_box {
.el-dialog__body {
padding: 0 20px;
}
}
</style>

View File

@ -557,6 +557,7 @@ export default {
// }); // });
// }); // });
// this.menuList = this.projectMenuMap[this.project]; // this.menuList = this.projectMenuMap[this.project];
this.menuList = this.allMenuList; this.menuList = this.allMenuList;
window.addEventListener('click', this.close, false); window.addEventListener('click', this.close, false);
}, },

View File

@ -1,22 +1,12 @@
<template> <template>
<div> <div>
<div class="title_content">{{ companyName + '教学管理' }}</div> <div class="title_content">{{ companyName + '教学管理' }}</div>
<el-button v-if="!hideBack" type="text" class="lessonManageBack" @click="back">返回</el-button>
<div class="lessonManageInfo"> <div class="lessonManageInfo">
<el-menu class="lessonManageMenu" default-active="2-1"> <el-menu class="lessonManageMenu" default-active="2-1">
<el-menu-item index="1" @click="clickMenu"> <el-menu-item index="1" @click="clickMenu">
<img :src="classIcon" class="teachMenu"> <img :src="classIcon" class="teachMenu">
<span class="teachMenuTitle" :style="{color: $route.path.includes('classManage')?'#5BDBFF': '#000'}">班级管理</span> <span class="teachMenuTitle" :style="{color: $route.path.includes('classManage')?'#5BDBFF': '#000'}">班级管理</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="5" @click="clickMenu">
<!-- <img :src="classIcon" class="teachMenu"> -->
<i class="el-icon-user" />
<span class="teachMenuTitle" :style="{color: $route.path.includes('studentManage')?'#5BDBFF': '#000'}">学生管理</span>
</el-menu-item>
<!-- <el-menu-item index="6" @click="clickMenu">
<img :src="ruleIcon" class="teachMenu">
<span class="teachMenuTitle" :style="{color: $route.path.includes('trainingDesign')?'#5BDBFF': '#000'}">实训设计</span>
</el-menu-item> -->
<el-menu-item index="7" @click="clickMenu"> <el-menu-item index="7" @click="clickMenu">
<img :src="ruleIcon" class="teachMenu"> <img :src="ruleIcon" class="teachMenu">
<span class="teachMenuTitle" :style="{color: $route.path.includes('trainingManage')?'#5BDBFF': '#000'}">实训管理</span> <span class="teachMenuTitle" :style="{color: $route.path.includes('trainingManage')?'#5BDBFF': '#000'}">实训管理</span>
@ -25,24 +15,10 @@
<img :src="lessonIcon" class="teachMenu"> <img :src="lessonIcon" class="teachMenu">
<span class="teachMenuTitle" :style="{color: $route.path.includes('theoryManage')?'#5BDBFF': '#000'}">理论题目管理</span> <span class="teachMenuTitle" :style="{color: $route.path.includes('theoryManage')?'#5BDBFF': '#000'}">理论题目管理</span>
</el-menu-item> </el-menu-item>
<!-- <el-submenu index="2">
<template slot="title">
<img :src="lessonIcon" class="teachMenu">
<span class="teachMenuTitle">课程管理</span>
</template>
<el-menu-item-group>
<el-menu-item index="2-1" class="lessonIcon" :style="{color: $route.path.includes('lessonManage')?'#5BDBFF': '#000'}" @click="clickMenu">发布课程管理</el-menu-item>
<el-menu-item index="2-2" class="lessonIcon" :style="{color: $route.path.includes('draftLessonManage')?'#5BDBFF': '#000'}" @click="clickMenu">草稿课程管理</el-menu-item>
</el-menu-item-group>
</el-submenu> -->
<el-menu-item index="3" @click="clickMenu"> <el-menu-item index="3" @click="clickMenu">
<img :src="examIcon" class="teachMenu"> <img :src="examIcon" class="teachMenu">
<span slot="title" class="teachMenuTitle" :style="{color: $route.path.includes('examManage')?'#5BDBFF': '#000'}">考试管理</span> <span slot="title" class="teachMenuTitle" :style="{color: $route.path.includes('examManage')?'#5BDBFF': '#000'}">考试管理</span>
</el-menu-item> </el-menu-item>
<!-- <el-menu-item index="4" @click="clickMenu">
<img :src="ruleIcon" class="teachMenu">
<span slot="title" :style="{color: $route.path.includes('ruleManage')?'#5BDBFF': '#000'}" class="teachMenuTitle">评价管理</span>
</el-menu-item> -->
</el-menu> </el-menu>
<div class="lessonManageOther"> <div class="lessonManageOther">
<router-view /> <router-view />
@ -75,41 +51,21 @@ export default {
computed: { computed: {
companyName() { companyName() {
return this.$store.state.user.companyName; return this.$store.state.user.companyName;
},
hideBack() {
return this.$route.query.enter === 'teacher';
} }
}, },
created() {
},
methods:{ methods:{
clickMenu(val) { clickMenu(val) {
if (val.index === '2-1') { if (val.index === '1') {
this.$router.replace('/teaching/organization/lessonManage');
} else if (val.index === '2-2') {
this.$router.replace('/teaching/organization/draftLessonManage');
} else if (val.index === '1') {
this.$router.replace('/teaching/organization/classManage'); this.$router.replace('/teaching/organization/classManage');
} else if (val.index === '3') { } else if (val.index === '3') {
this.$router.replace('/teaching/organization/examManage'); this.$router.replace('/teaching/organization/examManage');
} else if (val.index === '4') { } else if (val.index === '4') {
this.$router.replace('/teaching/organization/ruleManage'); this.$router.replace('/teaching/organization/ruleManage');
} else if (val.index === '5') { } else if (val.index === '7') {
this.$router.replace('/teaching/organization/studentManage');
}
// else if (val.index === '6') {
// this.$router.push('/teaching/organization/trainingDesign'); //
// }
else if (val.index === '7') {
this.$router.replace('/teaching/organization/trainingManage'); // this.$router.replace('/teaching/organization/trainingManage'); //
} else if (val.index === '8') { } else if (val.index === '8') {
this.$router.replace('/teaching/organization/theoryManage'); this.$router.replace('/teaching/organization/theoryManage');
} }
},
back() {
this.$router.go(-1);
} }
} }
}; };