多团队切换

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",
});
}

@ -15,12 +15,26 @@
<!-- <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="请输入手机号">
<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="[
<a-input
v-decorator="[
'password',
{
rules: [
@ -31,7 +45,10 @@
],
validateTrigger: 'submit',
},
]" type="password" placeholder="请输入密码">
]"
type="password"
placeholder="请输入密码"
>
<i slot="prefix" class="iconfont icon-mima" />
</a-input>
</a-form-item>
@ -42,12 +59,12 @@
<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 @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">
<div class="mt16 f12" style="color: #576b95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
@ -58,7 +75,8 @@
<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="[
<a-input
v-decorator="[
'tel',
{
rules: [
@ -70,12 +88,17 @@
],
validateTrigger: 'submit',
},
]" autocomplete="off" :maxLength="11" placeholder="请输入手机号">
]"
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="[
<a-input
v-decorator="[
'code',
{
rules: [
@ -86,7 +109,10 @@
],
validateTrigger: 'submit',
},
]" type="text" placeholder="请输入验证码">
]"
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>
@ -105,7 +131,7 @@
<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">
<div class="mt16 f12" style="color: #576b95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
@ -115,7 +141,7 @@
</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>
<loginpsw :loginShow.sync="loginShow"></loginpsw>
</a-modal>
</div>
</div>
@ -123,15 +149,15 @@
</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'],
inject: ["reload"],
//
name: '',
name: "",
//
components: {
timmer,
@ -153,27 +179,27 @@ export default {
timmer: null,
},
loginShow: false,
}
};
},
//
computed: {},
//
watch: {
loginway(val) {
console.log(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)
}, 10);
},
},
//
@ -190,86 +216,91 @@ export default {
methods: {
userhandleSubmit(e) {
//
e.preventDefault()
let params
e.preventDefault();
let params;
this.form.validateFields(async (err, values) => {
console.log(values)
console.log(values);
if (!err) {
params = { ...values, loginType: 0 }
params = { ...values, loginType: 0 };
console.log(params)
console.log(params);
try {
const { data } = await loginApi(params)
const { data } = await loginApi(params);
console.log(data)
console.log(data);
if (data.status !== 200) {
this.$message.warning(data.msg)
return
this.$message.warning(data.msg);
return;
}
localStorage.setItem('LOGIN_DATA', JSON.stringify(data.data))
this.$router.push('/list')
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");
// console.log(Cookies.get("LOGIN_DATA"));
this.reload()
this.reload();
// this.$router.push("/list");
} catch (err) {
console.log(err)
console.log(err);
}
} else {
console.log(err)
console.log(err);
}
})
});
},
phonehandleSubmit(e) {
e.preventDefault()
let params
e.preventDefault();
let params;
this.form1.validateFields(async (err, values) => {
console.log(err)
console.log(err);
if (!err) {
params = { ...values, loginType: 1 }
params = { ...values, loginType: 1 };
try {
const { data } = await loginApi(params)
console.log(data)
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()
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)
console.log(err);
}
} else {
console.log(err)
console.log(err);
}
})
});
},
async getPhoneCode() {
const that = this
const that = this;
this.form1.validateFields(['tel'], async (err, values) => {
console.log(values)
this.form1.validateFields(["tel"], async (err, values) => {
console.log(values);
if (!err) {
that.timedata.isfinish = false
that.timedata.isfinish = false;
try {
const { data } = await getPhoneCodeApi({ tel: values.tel })
console.log(data)
const { data } = await getPhoneCodeApi({ tel: values.tel });
console.log(data);
if (data.status !== 200) {
this.$message.warning(data.msg)
this.$message.warning(data.msg);
}
} catch (error) {
console.log(error)
console.log(error);
}
} else {
console.log(err)
console.log(err);
}
})
});
},
showModal() {
console.log('modal')
this.loginShow = true
console.log("modal");
this.loginShow = true;
},
/**
* 关闭忘记密码弹窗
@ -277,9 +308,8 @@ export default {
*
*/
handleCancel() {
this.loginShow = false
console.log(123
);
this.loginShow = false;
console.log(123);
},
/**
* 提交更改密码信息
@ -288,10 +318,10 @@ export default {
*/
handleOk() {},
checked() {
console.log(this.ischecked)
console.log(this.ischecked);
},
},
}
};
</script>
<style scoped lang="less">
@ -457,7 +487,7 @@ export default {
line-height: 12px;
color: #4d575e;
span[data-mark='getcode'] {
span[data-mark="getcode"] {
padding: 0 0 0 5px;
cursor: pointer;
}

@ -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,9 +36,10 @@ 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++++++++++++++++++++++++++++++++++++++++++++++++++++');
}
@ -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,7 +55,7 @@
</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> -->
@ -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