多团队切换

cyl/dev
wangxia 2 years ago
parent d3f1b3305e
commit 29eb987641

@ -43,3 +43,10 @@ export function updatePswApi(data) {
data: setqs(data),
});
}
// 检查token信息获取最新登录信息
export function checkTokenApi(data) {
return request({
url: "/appLoginByToken",
method: "get",
});
}

@ -213,8 +213,21 @@ export function dataStatisticsListApiold (data) {
});
}
// 团队列表获取
export function getTeamListApi (data) {
return request({
url: "/yishoudan/agency/group/user/listByUser",
method: "get",
});
}
// 切换团队
export function changeTeamApi(agencyId) {
return request({
url: `/yishoudan/agency/group/user/changeGroup/${agencyId}`,
method: "get",
});
}

@ -1,467 +1,497 @@
<template>
<div class="center">
<div class="formcontainer">
<div class="logo">
<!-- <svg class="icon" aria-hidden="true">
<div class="center">
<div class="formcontainer">
<div class="logo">
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-yishoudanlogo"></use>
</svg>-->
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" style="width: 64px; text-align: center" alt />
</div>
<ul class="loginchange centerall">
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">密码登录</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">验证码登录</li>
</ul>
<div class="formbox">
<!-- <template v-show="loginway === 1"> -->
<a-form id="components-form-demo-normal-login" v-show="loginway === 1" :form="form" class="login-form" @submit="userhandleSubmit">
<a-form-item style="text-align: left">
<a-input v-decorator="[ 'tel', { rules: [ { required: true, message: '请输入手机号' }, { pattern: /^1[3456789]\d{9}$/, message: '请输入正确手机号' }, ], validateTrigger: 'submit', }, ]" :maxLength="11" placeholder="请输入手机号">
<i slot="prefix" class="iconfont icon-yonghuming" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
<a-input v-decorator="[
'password',
{
rules: [
{
required: true,
message: '请输入密码',
},
],
validateTrigger: 'submit',
},
]" type="password" placeholder="请输入密码">
<i slot="prefix" class="iconfont icon-mima" />
</a-input>
</a-form-item>
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label>
</span>
<!-- <router-link to="updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
<div @click="showModal" class="login-form-forgot" style="cursor:pointer">忘记密码</div>
</div>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color:#576B95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<!-- <div class="register">
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" style="width: 64px; text-align: center" alt />
</div>
<ul class="loginchange centerall">
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">密码登录</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">验证码登录</li>
</ul>
<div class="formbox">
<!-- <template v-show="loginway === 1"> -->
<a-form id="components-form-demo-normal-login" v-show="loginway === 1" :form="form" class="login-form" @submit="userhandleSubmit">
<a-form-item style="text-align: left">
<a-input
v-decorator="[
'tel',
{
rules: [
{ required: true, message: '请输入手机号' },
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确手机号' },
],
validateTrigger: 'submit',
},
]"
:maxLength="11"
placeholder="请输入手机号"
>
<i slot="prefix" class="iconfont icon-yonghuming" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
<a-input
v-decorator="[
'password',
{
rules: [
{
required: true,
message: '请输入密码',
},
],
validateTrigger: 'submit',
},
]"
type="password"
placeholder="请输入密码"
>
<i slot="prefix" class="iconfont icon-mima" />
</a-input>
</a-form-item>
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label>
</span>
<!-- <router-link to="updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
<div @click="showModal" class="login-form-forgot" style="cursor: pointer">忘记密码</div>
</div>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color: #576b95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<!-- <div class="register">
<router-link to="/register">还没有账号立即注册</router-link>
</div>-->
<!-- </template>
<!-- </template>
<template v-show="loginway === 2"> -->
<a-form id="components-form-demo-normal-login" v-show="loginway === 2" :form="form1" class="login-form" @submit="phonehandleSubmit">
<a-form-item style="text-align: left">
<a-input v-decorator="[
'tel',
{
rules: [
{ required: true, message: '请输入手机号' },
{
pattern: /^1[3456789]\d{9}$/,
message: '请输入正确手机号',
},
],
validateTrigger: 'submit',
},
]" autocomplete="off" :maxLength="11" placeholder="请输入手机号">
<i slot="prefix" class="icon-shouji iconfont" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
<a-input v-decorator="[
'code',
{
rules: [
{
required: true,
message: '请输入验证码',
},
],
validateTrigger: 'submit',
},
]" type="text" placeholder="请输入验证码">
<i slot="prefix" class="icon-duanxinyanzheng iconfont" />
<span class="getrulecode" slot="suffix">
<span @click="getPhoneCode" data-mark="getcode" v-if="timedata.isfinish"></span>
<timmer :timedata="timedata" v-if="!timedata.isfinish" />
</span>
</a-input>
</a-form-item>
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label>
</span>
<!-- <router-link to="/updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
</div>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color:#576B95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<a-form id="components-form-demo-normal-login" v-show="loginway === 2" :form="form1" class="login-form" @submit="phonehandleSubmit">
<a-form-item style="text-align: left">
<a-input
v-decorator="[
'tel',
{
rules: [
{ required: true, message: '请输入手机号' },
{
pattern: /^1[3456789]\d{9}$/,
message: '请输入正确手机号',
},
],
validateTrigger: 'submit',
},
]"
autocomplete="off"
:maxLength="11"
placeholder="请输入手机号"
>
<i slot="prefix" class="icon-shouji iconfont" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
<a-input
v-decorator="[
'code',
{
rules: [
{
required: true,
message: '请输入验证码',
},
],
validateTrigger: 'submit',
},
]"
type="text"
placeholder="请输入验证码"
>
<i slot="prefix" class="icon-duanxinyanzheng iconfont" />
<span class="getrulecode" slot="suffix">
<span @click="getPhoneCode" data-mark="getcode" v-if="timedata.isfinish"></span>
<timmer :timedata="timedata" v-if="!timedata.isfinish" />
</span>
</a-input>
</a-form-item>
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label>
</span>
<!-- <router-link to="/updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
</div>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color: #576b95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<!-- <div class="register">
<!-- <div class="register">
<router-link to="/register">还没有账号立即注册</router-link>
</div>-->
<!-- </template> -->
<a-modal title="找回密码" :width="760" footer :visible="loginShow" class="modal" @ok="handleOk" @cancel="handleCancel" :maskClosable="false" okText="提交" cancelText="取消" :destroyOnClose="true">
<loginpsw :loginShow.sync='loginShow'></loginpsw>
</a-modal>
</div>
</div>
</div>
<!-- </template> -->
<a-modal title="找回密码" :width="760" footer :visible="loginShow" class="modal" @ok="handleOk" @cancel="handleCancel" :maskClosable="false" okText="提交" cancelText="取消" :destroyOnClose="true">
<loginpsw :loginShow.sync="loginShow"></loginpsw>
</a-modal>
</div>
</div>
</div>
</template>
<script>
import { loginApi, getPhoneCodeApi } from '../../api/login'
import timmer from './components/countback.vue'
import loginpsw from './updatepsw.vue'
import Cookies from 'js-cookie'
import { loginApi, getPhoneCodeApi } from "../../api/login";
import timmer from "./components/countback.vue";
import loginpsw from "./updatepsw.vue";
import Cookies from "js-cookie";
export default {
inject: ['reload'],
//
name: '',
//
components: {
timmer,
loginpsw,
},
//
props: {},
//
data() {
return {
loginway: 1,
ischecked: false,
isauto: false, //
form: this.$form.createForm(this),
form1: this.$form.createForm(this),
timedata: {
isfinish: true,
deadline: 60,
timmer: null,
},
loginShow: false,
}
},
//
computed: {},
//
watch: {
loginway(val) {
console.log(val)
setTimeout(() => {
console.log(this.form.getFieldsValue().tel);
if (val == 2 && this.form.getFieldsValue().tel != undefined) {
console.log(this.form.getFieldsValue().tel);
this.form1.setFieldsValue({
tel: this.form.getFieldsValue().tel,
})
} else if (val == 1 && this.form1.getFieldsValue().tel) {
this.form.setFieldsValue({
tel: this.form1.getFieldsValue().tel,
})
}
}, 10)
},
},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {},
//
methods: {
userhandleSubmit(e) {
//
e.preventDefault()
let params
this.form.validateFields(async (err, values) => {
console.log(values)
if (!err) {
params = { ...values, loginType: 0 }
inject: ["reload"],
//
name: "",
//
components: {
timmer,
loginpsw,
},
//
props: {},
//
data() {
return {
loginway: 1,
ischecked: false,
isauto: false, //
form: this.$form.createForm(this),
form1: this.$form.createForm(this),
timedata: {
isfinish: true,
deadline: 60,
timmer: null,
},
loginShow: false,
};
},
//
computed: {},
//
watch: {
loginway(val) {
console.log(val);
setTimeout(() => {
console.log(this.form.getFieldsValue().tel);
if (val == 2 && this.form.getFieldsValue().tel != undefined) {
console.log(this.form.getFieldsValue().tel);
this.form1.setFieldsValue({
tel: this.form.getFieldsValue().tel,
});
} else if (val == 1 && this.form1.getFieldsValue().tel) {
this.form.setFieldsValue({
tel: this.form1.getFieldsValue().tel,
});
}
}, 10);
},
},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {},
//
methods: {
userhandleSubmit(e) {
//
e.preventDefault();
let params;
this.form.validateFields(async (err, values) => {
console.log(values);
if (!err) {
params = { ...values, loginType: 0 };
console.log(params)
try {
const { data } = await loginApi(params)
console.log(params);
try {
const { data } = await loginApi(params);
console.log(data)
if (data.status !== 200) {
this.$message.warning(data.msg)
return
}
localStorage.setItem('LOGIN_DATA', JSON.stringify(data.data))
this.$router.push('/list')
// console.log(Cookies.get("LOGIN_DATA"));
this.reload()
// this.$router.push("/list");
} catch (err) {
console.log(err)
}
} else {
console.log(err)
}
})
},
phonehandleSubmit(e) {
e.preventDefault()
let params
this.form1.validateFields(async (err, values) => {
console.log(err)
if (!err) {
params = { ...values, loginType: 1 }
try {
const { data } = await loginApi(params)
console.log(data)
if (data.status !== 200) {
this.$message.warning(data.msg)
return
}
localStorage.setItem('LOGIN_DATA', JSON.stringify(data.data))
this.$router.push('/list')
this.reload()
} catch (err) {
console.log(err)
}
} else {
console.log(err)
}
})
},
async getPhoneCode() {
const that = this
console.log(data);
if (data.status !== 200) {
this.$message.warning(data.msg);
return;
}
localStorage.setItem("DAOTIAN_agencyid", data.data.user.agencyId);
localStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
localStorage.setItem("LOGIN_DATA_token", data.data.token);
this.form1.validateFields(['tel'], async (err, values) => {
console.log(values)
this.$router.push("/list");
// console.log(Cookies.get("LOGIN_DATA"));
this.reload();
// this.$router.push("/list");
} catch (err) {
console.log(err);
}
} else {
console.log(err);
}
});
},
phonehandleSubmit(e) {
e.preventDefault();
let params;
this.form1.validateFields(async (err, values) => {
console.log(err);
if (!err) {
params = { ...values, loginType: 1 };
try {
const { data } = await loginApi(params);
console.log(data);
if (data.status !== 200) {
this.$message.warning(data.msg);
return;
}
localStorage.setItem("DAOTIAN_agencyid", data.data.user.agencyId);
localStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
localStorage.setItem("LOGIN_DATA_token", data.data.token);
this.$router.push("/list");
this.reload();
} catch (err) {
console.log(err);
}
} else {
console.log(err);
}
});
},
async getPhoneCode() {
const that = this;
if (!err) {
that.timedata.isfinish = false
this.form1.validateFields(["tel"], async (err, values) => {
console.log(values);
try {
const { data } = await getPhoneCodeApi({ tel: values.tel })
console.log(data)
if (data.status !== 200) {
this.$message.warning(data.msg)
}
} catch (error) {
console.log(error)
}
} else {
console.log(err)
}
})
},
showModal() {
console.log('modal')
this.loginShow = true
},
/**
* 关闭忘记密码弹窗
*
*
*/
handleCancel() {
this.loginShow = false
console.log(123
);
},
/**
* 提交更改密码信息
*
*
*/
handleOk() {},
checked() {
console.log(this.ischecked)
},
},
}
if (!err) {
that.timedata.isfinish = false;
try {
const { data } = await getPhoneCodeApi({ tel: values.tel });
console.log(data);
if (data.status !== 200) {
this.$message.warning(data.msg);
}
} catch (error) {
console.log(error);
}
} else {
console.log(err);
}
});
},
showModal() {
console.log("modal");
this.loginShow = true;
},
/**
* 关闭忘记密码弹窗
*
*
*/
handleCancel() {
this.loginShow = false;
console.log(123);
},
/**
* 提交更改密码信息
*
*
*/
handleOk() {},
checked() {
console.log(this.ischecked);
},
},
};
</script>
<style scoped lang="less">
.center {
width: 240px;
margin: 0 auto;
overflow: hidden;
/deep/ .login-form {
background-color: #fff !important;
}
.centerall {
margin: 0 auto;
}
.logo {
margin: 40px auto 0px;
text-align: center;
// img {
// width: 100%;
// height: 100%;
// }
svg {
width: 150px;
// height: 46px;
text-align: center;
font-size: 52px;
line-height: 52px;
// color: initial;
}
}
.loginchange {
display: flex;
width: 230px;
justify-content: space-around;
margin-top: 10px;
font-weight: bold;
.loginactive {
color: #4d575e;
border-bottom: 1px solid #4d575e;
}
li {
padding: 0 0 4px 0;
margin-bottom: 24px;
margin-top: 20px;
font-size: 14px;
text-align: left;
color: #cccccc;
line-height: 22px;
cursor: pointer;
}
}
.formbox {
// /deep/ .ant-form-item {
// margin-bottom: 0px !important;
// padding-bottom: 20px !important;
// }
/deep/.ant-form-item {
// margin-top: -10px;
/deep/ .ant-form-explain {
//
margin-top: -2px;
line-height: 20px;
min-height: 20px !important;
}
i {
font-size: 26px;
// margin: 0 8px 0 4px;
color: #4d575e;
}
width: 240px;
margin: 0 auto;
overflow: hidden;
/deep/ .login-form {
background-color: #fff !important;
}
.centerall {
margin: 0 auto;
}
.logo {
margin: 40px auto 0px;
text-align: center;
// img {
// width: 100%;
// height: 100%;
// }
svg {
width: 150px;
// height: 46px;
text-align: center;
font-size: 52px;
line-height: 52px;
// color: initial;
}
}
.loginchange {
display: flex;
width: 230px;
justify-content: space-around;
margin-top: 10px;
font-weight: bold;
.loginactive {
color: #4d575e;
border-bottom: 1px solid #4d575e;
}
li {
padding: 0 0 4px 0;
margin-bottom: 24px;
margin-top: 20px;
font-size: 14px;
text-align: left;
color: #cccccc;
line-height: 22px;
cursor: pointer;
}
}
.formbox {
// /deep/ .ant-form-item {
// margin-bottom: 0px !important;
// padding-bottom: 20px !important;
// }
/deep/.ant-form-item {
// margin-top: -10px;
/deep/ .ant-form-explain {
//
margin-top: -2px;
line-height: 20px;
min-height: 20px !important;
}
i {
font-size: 26px;
// margin: 0 8px 0 4px;
color: #4d575e;
}
.ant-input {
height: 36px;
text-indent: 15px;
// background-color: #f6f6f6;
// border: none;
padding: 0 0 0 23px !important;
border: 1px solid #dddddd;
&:hover {
border-color: #ff4400;
}
&:focus {
box-shadow: none;
}
&::placeholder {
opacity: 0.4;
color: #4d575e;
font-size: 14px;
text-indent: 15px;
}
}
}
.login-form-button {
width: 100%;
height: 36px;
margin-top: 20px;
border-radius: 27px;
background-color: #ff4400;
font-size: 16px;
border: none;
color: white;
box-shadow: none;
&::after {
display: none;
}
&:hover {
background-color: #ff4400cc;
}
&:active {
background-color: #ff4400;
}
}
.register {
display: flex;
justify-content: center;
font-size: 12px;
span {
color: #4d575e;
i {
vertical-align: middle;
margin-right: 10px;
}
}
a {
color: #353649;
}
}
.autologin {
display: flex;
justify-content: space-between;
font-size: 12px;
margin-top: -16px;
> span {
cursor: pointer;
line-height: 18px;
margin-top: 2px;
i {
color: #ff4400;
font-size: 14px;
vertical-align: middle;
margin-right: 5px;
}
input {
margin-top: -3px;
vertical-align: bottom;
}
label {
transition: all 0.2s;
font-size: 12px;
&:hover {
color: #ff4400;
}
}
}
a {
color: #4d575e;
}
}
.getrulecode {
// padding: 0 0 0 10px;
font-size: 12px;
width: 67px;
text-align: center;
border-left: 1px #cccccc solid;
line-height: 12px;
color: #4d575e;
.ant-input {
height: 36px;
text-indent: 15px;
// background-color: #f6f6f6;
// border: none;
padding: 0 0 0 23px !important;
border: 1px solid #dddddd;
&:hover {
border-color: #ff4400;
}
&:focus {
box-shadow: none;
}
&::placeholder {
opacity: 0.4;
color: #4d575e;
font-size: 14px;
text-indent: 15px;
}
}
}
.login-form-button {
width: 100%;
height: 36px;
margin-top: 20px;
border-radius: 27px;
background-color: #ff4400;
font-size: 16px;
border: none;
color: white;
box-shadow: none;
&::after {
display: none;
}
&:hover {
background-color: #ff4400cc;
}
&:active {
background-color: #ff4400;
}
}
.register {
display: flex;
justify-content: center;
font-size: 12px;
span {
color: #4d575e;
i {
vertical-align: middle;
margin-right: 10px;
}
}
a {
color: #353649;
}
}
.autologin {
display: flex;
justify-content: space-between;
font-size: 12px;
margin-top: -16px;
> span {
cursor: pointer;
line-height: 18px;
margin-top: 2px;
i {
color: #ff4400;
font-size: 14px;
vertical-align: middle;
margin-right: 5px;
}
input {
margin-top: -3px;
vertical-align: bottom;
}
label {
transition: all 0.2s;
font-size: 12px;
&:hover {
color: #ff4400;
}
}
}
a {
color: #4d575e;
}
}
.getrulecode {
// padding: 0 0 0 10px;
font-size: 12px;
width: 67px;
text-align: center;
border-left: 1px #cccccc solid;
line-height: 12px;
color: #4d575e;
span[data-mark='getcode'] {
padding: 0 0 0 5px;
cursor: pointer;
}
}
}
span[data-mark="getcode"] {
padding: 0 0 0 5px;
cursor: pointer;
}
}
}
}
</style>

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/c/font_3135652_nopyx9nvfil.css";
@import "http://at.alicdn.com/t/c/font_3135652_nd5ivglbv4.css";
@font-face {
font-family: "DingTalk"; /* 这里的字体名称是自定义的 */
src: url("../assets/fonts/DingTalk\ Sans.ttf"); /* 服务器上ttf文件的路径记得配置域名权限 */

@ -5,8 +5,8 @@ import qs from "qs";
// import Vue from "vue";
// const baseURL = "http://1shoudan.com"; // 正式环境线上 废弃
const baseURL = "//idaotian.com"; // 正式环境线上
// const baseURL = "//test.renminshitang.com.cn/daotian/api_dev"; // 测试环境本地
// const baseURL = "//idaotian.com"; // 正式环境线上
const baseURL = "//test.renminshitang.com.cn/daotian/api_dev"; // 测试环境本地
// const baseURL = "//idagou.cn"; // 正式环境线上 废弃
// console.log(baseURL);
// const baseURL = "http://localhost:8001";
@ -36,11 +36,12 @@ service.interceptors.request.use(
// }
if (localStorage.getItem("LOGIN_DATA")) {
req.headers.Authorization = "Bearer " + JSON.parse(localStorage.getItem("LOGIN_DATA")).token;
req.headers.Authorization = "Bearer " + localStorage.getItem("LOGIN_DATA_token");
req.headers.agencyId = JSON.parse(localStorage.getItem("DAOTIAN_agencyid"))
req.headers.appId = "daotianpc";
req.headers["g-open-env"]= 'WEB-PAGE',
req.headers["g-open-env"] = 'WEB-PAGE',
console.log('getToken++++++++++++++++++++++++++++++++++++++++++++++++++++');
console.log('getToken++++++++++++++++++++++++++++++++++++++++++++++++++++');
}
// application/json
// if(req.headers.common.Accept.indexOf('application/json') > 0 || req.headers.Accept.indexOf('application/json') > 0){
@ -54,20 +55,50 @@ service.interceptors.request.use(
);
service.interceptors.response.use(
(response) => {
// console.log(response);
console.log('response', response);
let { msg, status } = response.data;
// status = 9999
// return response;
// console.log(status);
if (status == 9999) {
// response.data.status = 9999
if (response.data.status == 9999) {
localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("DAOTIAN_agencyid");
router.push("/login");
// 跳转到登录页面
// this.$message.warning(msg);
return Promise.reject(new Error("token过期"));
}
if (response.status === 200) {
if (response.data.status === 200) {
return response;
} else if (response.data.status === 2001) {// 职位名称
// message.error('职位名称:请不要填写【' + response.data.msg + '】相关违禁内容');
// this.$message.error(response.data.msg);
return response;
// return Promise.reject({
// code: 2001,
// msg: response.data.msg
// });
} else if (response.data.status === 2002) {// 职位名称
// message.error('职位名称:请不要填写【' + response.data.msg + '】相关违禁内容');
console.log('response.data.status === 2002', response.data.status);
// this.$message.error(response.data.msg);
localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("DAOTIAN_agencyid");
// router.push({
// path: "/login",
// });
router.push("/login");
return Promise.reject(new Error("token过期"));
// return Promise.reject({
// code: 2002,
// msg: response.data.msg
// });
} else {
// Message.error(message)
return Promise.reject(new Error(msg));

@ -55,10 +55,10 @@
</a-dropdown>
</li>
<li v-else>
<router-link to="/mybill" :class="routertitleindex == 5? 'titleactive' : ''">
<router-link to="/mybill" :class="routertitleindex == 5 ? 'titleactive' : ''">
<!-- <div> -->
<span>职位报名</span>
<!-- <i class="iconfont icon-youjiantou"></i> -->
<span>职位报名</span>
<!-- <i class="iconfont icon-youjiantou"></i> -->
<!-- </div> -->
</router-link>
</li>
@ -120,6 +120,37 @@
</div>
</a-dropdown>
</div>
<div class="g_mr_16 more-team">
<a-dropdown :trigger="['click']" class="" placement="bottomRight" :getPopupContainer="(node) => node.parentNode">
<div class="fsa more-team-button" style="padding: 0px 12px">
<div class="fss">
<div>
<!-- <i class="icon-qiehuantuandui iconfont g_mr_5" style="font-size: 16px"></i> -->
<div class="logo">{{ userbaseInfo.agencyName && userbaseInfo.agencyName.charAt(0) }}</div>
</div>
<div class="hover-f40" style="max-width: 98px">{{ userbaseInfo.agencyName }}</div>
</div>
<!-- <div> -->
<i class="iconfont icon-paixu f12" style="color:#ccc;margin-left:4px"></i>
<!-- </div> -->
</div>
<!-- <template #overlay> -->
<div class="more-team-drop" slot="overlay" style="box-shadow: 0px 2px 4px 0px rgba(229, 229, 229, 0.5), 0px 4px 12px 0px rgba(0, 0, 0, 0.15)">
<div class="fsa p12 pr8 hover-blue" style="border-radius:4px;cursor:pointer" @click="changeTeam(item)" v-for="(item, index) in teamList">
<div class="fss">
<div>
<img v-if="item.logo" :src="item.logo" alt="" />
<div v-else class="logo">{{ item.agencyName && item.agencyName.charAt(0) }}</div>
</div>
<div class="" style="width: 98px">{{ item.agencyName }}</div>
</div>
<div class="ml12 f12 cf4" v-if="item.checked"></div>
</div>
</div>
<!-- </template> -->
</a-dropdown>
</div>
<a-dropdown
:trigger="['click']"
overlayClassName="logindropdown"
@ -284,7 +315,8 @@ import {
// getCityApi,
} from "../api/job";
import { logoutApi } from "../api/login";
import { logoutApi, checkTokenApi } from "../api/login";
import { getTeamListApi, changeTeamApi } from "../api/userinfo";
export default {
inject: ["reload"],
@ -329,6 +361,7 @@ export default {
userbaseInfo: JSON.parse(localStorage.getItem("LOGIN_DATA")),
loginPage: false,
routertitleindex: 0,
teamList: [],
};
},
//
@ -445,6 +478,7 @@ export default {
// this.getJobListYicai();
this.isLaoxiangshow();
this.showfooter();
this.getTeamList();
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
@ -532,7 +566,51 @@ export default {
this.laoxiangshow = true;
}
},
/**
* 获取团队列表
*/
getTeamList() {
let that = this;
getTeamListApi().then((res) => {
console.log(res);
that.teamList = res.data.data;
console.log("that.teamList", that.teamList);
that.teamList.forEach((item, index) => {
if (item.id == that.loginValue.user.agencyId) {
item.checked = true;
}
});
});
},
changeTeam(_item) {
let that = this;
if (_item.id == that.loginValue.user.agencyId) {
return false;
}
console.log(_item);
changeTeamApi(_item.id).then((res1) => {
console.log("res1", res1);
if (res1.data.status == 2001) {
// localStorage.setItem("DAOTIAN_userinfo_agencyid", _item.id);
that.$message.error(res1.data.msg);
that.getTeamList();
} else {
localStorage.setItem("DAOTIAN_agencyid", _item.id);
checkTokenApi().then((res) => {
console.log(res.data);
localStorage.setItem("LOGIN_DATA", JSON.stringify(res.data.data));
// return
// localStorage.setItem("DAOTIAN_token", res.data.token);
that.reload();
// location.reload();
// router.push("/merchantManagement/homePage");
});
}
});
},
async logout() {
// logoutApi().then((result) => {
// console.log(result);
@ -543,6 +621,7 @@ export default {
if (data.status === 200) {
localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("DAOTIAN_token");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("daotian_to_admin_token");
this.reload();
this.$router.push("/main");
@ -595,33 +674,35 @@ export default {
goAdmin() {
let obj = JSON.parse(localStorage.getItem("LOGIN_DATA"));
let token = JSON.parse(localStorage.getItem("LOGIN_DATA_token"));
console.log(JSON.stringify(obj.user));
if (window.location.hostname == "localhost") {
// URLtoken
window.open("http://localhost:3000/#/login?token=" + obj.token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
window.open("http://localhost:3000/#/login?token=" + token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
} else {
//
localStorage.setItem("daotian_to_admin", JSON.stringify(obj));
localStorage.setItem("daotian_to_admin_token", obj.token);
localStorage.setItem("daotian_to_admin_token", token);
localStorage.setItem("daotian_to_admin_avatar", obj.imgSrc);
localStorage.setItem("daotian_to_admin_username", obj.user.userName ? obj.user.userName : obj.user.nickName);
localStorage.setItem("daotian_to_admin_roleid", obj.user.agencyRoleId);
localStorage.setItem("daotian_to_admin_agencyid", obj.user.agencyId);
if (window.location.origin.indexOf("www") > -1) {
window.open("http://www.ibocai.cn/#/login?token=" + obj.token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
window.open("http://www.ibocai.cn/#/login?token=" + token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
} else {
window.open("http://ibocai.cn/#/login?token=" + obj.token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
window.open("http://ibocai.cn/#/login?token=" + token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
}
}
},
goJiaofu() {
let obj = JSON.parse(localStorage.getItem("LOGIN_DATA"));
let token = JSON.parse(localStorage.getItem("LOGIN_DATA_token"));
if (window.location.hostname == "localhost") {
// URLtoken
window.open("http://localhost:3000/#/other/delivery?token=" + obj.token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
window.open("http://localhost:3000/#/other/delivery?token=" + token + "&username=" + (obj.user.userName ? obj.user.userName : obj.user.nickName) + "&avatar=" + obj.imgSrc + "&roleid=" + obj.user.agencyRoleId + "&agencyid=" + obj.user.agencyId + "&userInfo=" + JSON.stringify(obj));
} else {
//
localStorage.setItem("daotian_to_admin_token", obj.token);
localStorage.setItem("daotian_to_admin_token", token);
localStorage.setItem("daotian_to_admin", JSON.stringify(obj));
localStorage.setItem("daotian_to_admin_avatar", obj.imgSrc);
localStorage.setItem("daotian_to_admin_username", obj.user.userName ? obj.user.userName : obj.user.nickName);
@ -1106,4 +1187,37 @@ export default {
/deep/ .ant-dropdown {
top: 68px !important;
}
.hover-blue:hover {
background-color: #f5f5f5;
}
.more-team {
.more-team-button {
height: 32px;
margin-right: 16px;
border-radius: 4px;
cursor: pointer;
border: 1px solid #ddd;
&:hover{
.hover-f40{
color: #ff4400;
}
}
}
.more-team-drop {
padding: 6px;
background: #fff;
border-radius: 4px;
}
.logo {
width: 16px;
height: 16px;
text-align: center;
line-height: 16px;
color: #fff;
font-size: 10px;
background: #ff6a00;
border-radius: 2px;
margin-right: 8px;
}
}
</style>

Loading…
Cancel
Save