多团队切换

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

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

@ -5,8 +5,8 @@ import qs from "qs";
// import Vue from "vue"; // import Vue from "vue";
// const baseURL = "http://1shoudan.com"; // 正式环境线上 废弃 // const baseURL = "http://1shoudan.com"; // 正式环境线上 废弃
const baseURL = "//idaotian.com"; // 正式环境线上 // const baseURL = "//idaotian.com"; // 正式环境线上
// const baseURL = "//test.renminshitang.com.cn/daotian/api_dev"; // 测试环境本地 const baseURL = "//test.renminshitang.com.cn/daotian/api_dev"; // 测试环境本地
// const baseURL = "//idagou.cn"; // 正式环境线上 废弃 // const baseURL = "//idagou.cn"; // 正式环境线上 废弃
// console.log(baseURL); // console.log(baseURL);
// const baseURL = "http://localhost:8001"; // const baseURL = "http://localhost:8001";
@ -36,11 +36,12 @@ service.interceptors.request.use(
// } // }
if (localStorage.getItem("LOGIN_DATA")) { 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.appId = "daotianpc";
req.headers["g-open-env"]= 'WEB-PAGE', req.headers["g-open-env"] = 'WEB-PAGE',
console.log('getToken++++++++++++++++++++++++++++++++++++++++++++++++++++'); console.log('getToken++++++++++++++++++++++++++++++++++++++++++++++++++++');
} }
// application/json // application/json
// if(req.headers.common.Accept.indexOf('application/json') > 0 || req.headers.Accept.indexOf('application/json') > 0){ // 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( service.interceptors.response.use(
(response) => { (response) => {
// console.log(response); console.log('response', response);
let { msg, status } = response.data; let { msg, status } = response.data;
// status = 9999 // status = 9999
// return response; // return response;
// console.log(status); // console.log(status);
if (status == 9999) { // response.data.status = 9999
if (response.data.status == 9999) {
localStorage.removeItem("LOGIN_DATA"); localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("DAOTIAN_agencyid");
router.push("/login"); router.push("/login");
// 跳转到登录页面 // 跳转到登录页面
// this.$message.warning(msg); // this.$message.warning(msg);
return Promise.reject(new Error("token过期")); return Promise.reject(new Error("token过期"));
} }
if (response.status === 200) { if (response.data.status === 200) {
return response; 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 { } else {
// Message.error(message) // Message.error(message)
return Promise.reject(new Error(msg)); return Promise.reject(new Error(msg));

@ -55,10 +55,10 @@
</a-dropdown> </a-dropdown>
</li> </li>
<li v-else> <li v-else>
<router-link to="/mybill" :class="routertitleindex == 5? 'titleactive' : ''"> <router-link to="/mybill" :class="routertitleindex == 5 ? 'titleactive' : ''">
<!-- <div> --> <!-- <div> -->
<span>职位报名</span> <span>职位报名</span>
<!-- <i class="iconfont icon-youjiantou"></i> --> <!-- <i class="iconfont icon-youjiantou"></i> -->
<!-- </div> --> <!-- </div> -->
</router-link> </router-link>
</li> </li>
@ -120,6 +120,37 @@
</div> </div>
</a-dropdown> </a-dropdown>
</div> </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 <a-dropdown
:trigger="['click']" :trigger="['click']"
overlayClassName="logindropdown" overlayClassName="logindropdown"
@ -284,7 +315,8 @@ import {
// getCityApi, // getCityApi,
} from "../api/job"; } from "../api/job";
import { logoutApi } from "../api/login"; import { logoutApi, checkTokenApi } from "../api/login";
import { getTeamListApi, changeTeamApi } from "../api/userinfo";
export default { export default {
inject: ["reload"], inject: ["reload"],
@ -329,6 +361,7 @@ export default {
userbaseInfo: JSON.parse(localStorage.getItem("LOGIN_DATA")), userbaseInfo: JSON.parse(localStorage.getItem("LOGIN_DATA")),
loginPage: false, loginPage: false,
routertitleindex: 0, routertitleindex: 0,
teamList: [],
}; };
}, },
// //
@ -445,6 +478,7 @@ export default {
// this.getJobListYicai(); // this.getJobListYicai();
this.isLaoxiangshow(); this.isLaoxiangshow();
this.showfooter(); this.showfooter();
this.getTeamList();
}, },
/** /**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子 * el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
@ -532,7 +566,51 @@ export default {
this.laoxiangshow = true; 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() { async logout() {
// logoutApi().then((result) => { // logoutApi().then((result) => {
// console.log(result); // console.log(result);
@ -543,6 +621,7 @@ export default {
if (data.status === 200) { if (data.status === 200) {
localStorage.removeItem("LOGIN_DATA"); localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("DAOTIAN_token"); localStorage.removeItem("DAOTIAN_token");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("daotian_to_admin_token"); localStorage.removeItem("daotian_to_admin_token");
this.reload(); this.reload();
this.$router.push("/main"); this.$router.push("/main");
@ -595,33 +674,35 @@ export default {
goAdmin() { goAdmin() {
let obj = JSON.parse(localStorage.getItem("LOGIN_DATA")); let obj = JSON.parse(localStorage.getItem("LOGIN_DATA"));
let token = JSON.parse(localStorage.getItem("LOGIN_DATA_token"));
console.log(JSON.stringify(obj.user)); console.log(JSON.stringify(obj.user));
if (window.location.hostname == "localhost") { if (window.location.hostname == "localhost") {
// URLtoken // 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 { } else {
// //
localStorage.setItem("daotian_to_admin", JSON.stringify(obj)); 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_avatar", obj.imgSrc);
localStorage.setItem("daotian_to_admin_username", obj.user.userName ? obj.user.userName : obj.user.nickName); 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_roleid", obj.user.agencyRoleId);
localStorage.setItem("daotian_to_admin_agencyid", obj.user.agencyId); localStorage.setItem("daotian_to_admin_agencyid", obj.user.agencyId);
if (window.location.origin.indexOf("www") > -1) { 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 { } 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() { goJiaofu() {
let obj = JSON.parse(localStorage.getItem("LOGIN_DATA")); let obj = JSON.parse(localStorage.getItem("LOGIN_DATA"));
let token = JSON.parse(localStorage.getItem("LOGIN_DATA_token"));
if (window.location.hostname == "localhost") { if (window.location.hostname == "localhost") {
// URLtoken // 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 { } 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", JSON.stringify(obj));
localStorage.setItem("daotian_to_admin_avatar", obj.imgSrc); 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_username", obj.user.userName ? obj.user.userName : obj.user.nickName);
@ -1106,4 +1187,37 @@ export default {
/deep/ .ant-dropdown { /deep/ .ant-dropdown {
top: 68px !important; 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> </style>

Loading…
Cancel
Save