| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478 |
- <template>
- <view>
- <view v-if="imStaff&&!isLogin" class="auth">
- <image src="/static/login-logo.png" mode=""></image>
- 提示:工作人员登录后才能显示会员管理信息<br/>
- 请点击
- <button v-if="!isAuth" type='primary' class="allow" open-type="getUserInfo" @getuserinfo="getUserInfo">授权</button>
- <button v-if="isAuth" type="primary" class="allow" open-type="getPhoneNumber" style="font-size: 12px;" @getphonenumber="getPhoneNumber">绑定手机</button>
- </view>
- <view v-if="imMember&&(!isLogin)" class="auth">
- <image src="/static/login-logo.png" mode=""></image>
- 提示:会员登录后才能使用会员功能<br/>
- 请点击
- <button v-if="!isAuth" type='primary' class="allow" open-type="getUserInfo" @getuserinfo="getUserInfo">授权</button>
- <button v-if="isAuth" type="primary" class="allow" open-type="getPhoneNumber" style="font-size: 12px;" @getphonenumber="getPhoneNumber">绑定手机</button>
- </view>
- <uni-popup ref="popup" type="center">
- <view class="uni-tip">
- <view class="uni-tip-title">登录失败</view>
- <view class="uni-tip-content">您授权的手机号与后台信息不匹配,请联系客服人员{{kf_number}}</view>
- <button class="uni-tip-button" @click="closePopup">确定</button>
- </view>
- </uni-popup>
- </view>
- </template>
- <script>
- var md5 = require("../../common/md5.js");
- import uniPopup from '@/components/uni-popup/uni-popup.vue';
- export default {
- components: {
- uniPopup,
- },
- data(){
- return {
- iv:'',
- encryptedData:'',
- session_key:getApp().globalData.session_key,
- open_id: getApp().globalData.open_id,
- imStaff:getApp().globalData.imStaff,
- imMember:getApp().globalData.imMember,
- isAuth:getApp().globalData.isAuth,
- isBind:getApp().globalData.isBind,
- isLogin:getApp().globalData.isLogin,
- kf_number:getApp().globalData.kf_number,
- user_type:'',
- }
- },
- onLoad() {
- // console.log("是否授权"+getApp().globalData.isAuth);
- // console.log("是否绑定"+getApp().globalData.isBind);
- // console.log("是否登录"+getApp().globalData.isLogin);
- // console.log("是否工作人员"+getApp().globalData.imStaff);
- // console.log("是否客户"+getApp().globalData.imMember);
- },
- watch:{
- user_type(){
- console.log("监听到用户类型了!");
- // this.judgeStaff(getApp().globalData.user_type);
- },
- },
- methods:{
- loginRequest(){
- uni.login({
- success: (res) => {
- uni.request({
- url: getApp().globalData.shareUrl, //需要设置为全局
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded',
- },
- data: {
- method: 'login',
- timestamp: getApp().globalData.globalTimestamp,
- code: res.code,
- sign: md5('login' + getApp().globalData.globalTimestamp)
- },
- success: res => {
- // 通过openid发起会员登录
- console.log(res);
- if(res.data.msg.status===1){
- getApp().globalData.isAuth=true;//用户已授权 手机号未绑定
- }else if(res.data.msg.status===2){
- getApp().globalData.isAuth=true;
- getApp().globalData.isBind=true;//用户手机号已绑定 进入调用用户信息流程来判断用户类型
- this.getSelInfo();
- };
- getApp().globalData.open_id = res.data.msg.openId;
- getApp().globalData.session_key = res.data.msg.session_key;
- console.log('会员&工作人员尝试登录');
- },
- });
- },
- });
- },
- getSelInfo(){
- let that = this;
- uni.request({
- url: getApp().globalData.shareUrl,
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- data: {
- sign: md5('get_member_info' + getApp().globalData.globalTimestamp),
- method: 'get_member_info',
- timestamp: getApp().globalData.globalTimestamp,
- openId: getApp().globalData.open_id,
- },
- success:(res)=>{
- if(res.data.code===200){
- getApp().globalData.user_id=res.data.msg.id;
- getApp().globalData.user_type=res.data.msg.type;
- getApp().globalData.member_count=res.data.msg.member_count;
- getApp().globalData.user_adminid=res.data.msg.adminid;
- getApp().globalData.user_headimg=res.data.msg.headimg;
- getApp().globalData.user_name=res.data.msg.name;
- getApp().globalData.user_nickname=res.data.msg.nickname;
- getApp().globalData.user_sex=res.data.msg.sex;
- getApp().globalData.user_status=res.data.msg.status;
- getApp().globalData.user_birthday=res.data.msg.birthday;
- getApp().globalData.user_idnum=res.data.msg.idnum;
- getApp().globalData.user_phone=res.data.msg.phone;
- getApp().globalData.user_email=res.data.msg.email;
- getApp().globalData.user_home_address=res.data.msg.home_address;
- getApp().globalData.user_send_address=res.data.msg.send_address;
- getApp().globalData.user_pcode=res.data.msg.pcode;
- getApp().globalData.user_number=res.data.msg.number;
- getApp().globalData.user_firsttime=res.data.msg.firsttime;
- getApp().globalData.user_addtime=res.data.msg.addtime;
- getApp().globalData.user_balance=res.data.msg.balance;
- getApp().globalData.user_deadline=res.data.msg.deadline;
- getApp().globalData.user_doctor=res.data.msg.doctor;
- getApp().globalData.user_doctor_name=res.data.msg.doctor_name;
- getApp().globalData.user_online_doctor=res.data.msg.online_doctor;
- getApp().globalData.user_online_doctor_name=res.data.msg.online_doctor_name;
- getApp().globalData.user_kf=res.data.msg.kf;
- getApp().globalData.user_kf_name=res.data.msg.kf_name;
- getApp().globalData.member_count=res.data.msg.member_count;
- getApp().globalData.user_health_doc=res.data.msg.health_doc;
- getApp().globalData.roomId = res.data.msg.type === '0' ? res.data.msg.rooms[0] :res.data.msg.rooms;
- if(getApp().globalData.user_deadline*1000<new Date().getTime()){
- getApp().globalData.deadline=true;
- }
- console.log("读取用户个人信息成功");
- that.judgeStaff(getApp().globalData.user_type);
- }
- },
- fail:()=>{
- console.log("读取用户个人信息失败");
- },
- });
- },
- judgeStaff(type){
- if(type==0){
- if(!getApp().globalData.imMember){
- this.$refs.popup.open();
- getApp().globalData.isSignOut=true;
- getApp().globalData.isAuth=false;
- getApp().globalData.isBind=false;
- getApp().globalData.isLogin=false;
- this.signout();
- }else{
- getApp().globalData.isLogin=true;
- console.log("该用户登录成功");
- if(getApp().globalData.user_deadline*1000<new Date().getTime()){
- getApp().globalData.deadline=true;
- }
- this.refuseBtn();
- //登陆成功再获取一次用户信息,登录状态不同获取的信息不一致
- }
- }else{
- if(!getApp().globalData.imStaff){
- this.$refs.popup.open();
- getApp().globalData.isSignOut=true;
- getApp().globalData.isAuth=false;
- getApp().globalData.isBind=false;
- getApp().globalData.isLogin=false;
- this.signout();
- }else{
- getApp().globalData.isLogin=true;
- console.log("该医生&客服登录成功");
- this.goChatlist();
- // this.getSelInfo();
- }
- }
- },
- getUserInfo(e) {
- if (e.detail.errMsg == "getUserInfo:ok") {
- console.log(e);
- getApp().globalData.isAuth = true;
- getApp().globalData.user_headimg = e.detail.userInfo.avatarUrl;
- getApp().globalData.user_name = e.detail.userInfo.nickName;
- this.iv = e.detail.iv;
- this.encryptedData = e.detail.encryptedData;
- this.isAuth=true;
- console.log("用户信息授权成功");
- } else {
- console.log("用户信息授权失败");
- this.isAuth = false;
- getApp().globalData.isAuth = false;
- }
- },
- getPhoneNumber(e){
- console.log(e);
- let that = this;
- if (e.detail.errMsg == 'getPhoneNumber:ok') { //允许授权执行跳转
- that.phoneRequest(e.detail.iv, e.detail.encryptedData, getApp().globalData.session_key);
- } else { //
- that.isNeedPhone = false;
- }
- },
- phoneRequest(myIv,myEncryptedData,sKey){
- let that = this;
- uni.request({
- url:getApp().globalData.shareUrl, //需要设置为全局
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- data: {
- method: 'auth',
- timestamp: getApp().globalData.globalTimestamp,
- sign: md5('auth' + getApp().globalData.globalTimestamp),
- iv:myIv,
- encryptedData:myEncryptedData,
- session_key:sKey,
- openId: that.open_id,
- },
- success: res => {
- console.log(res.data.code);
- if(res.data.code===200){
- console.log("手机号绑定成功!");
- getApp().globalData.isBind=true;
- that.uploadHeadimg();
- }else{
- this.$refs.popup.open();
- getApp().globalData.isSignOut=true;
- getApp().globalData.isAuth=false;
- getApp().globalData.isBind=false;
- getApp().globalData.isLogin=false;
- this.isBind = false;
- }
- }
- });
- },
- uploadHeadimg(){
- let that = this;
- uni.request({
- url: getApp().globalData.shareUrl,
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- data: {
- sign: md5('update_member_info' + getApp().globalData.globalTimestamp),
- method: 'update_member_info',
- timestamp: getApp().globalData.globalTimestamp,
- openId:getApp().globalData.open_id,
- key:'headimg',
- value:getApp().globalData.user_headimg,
- },
- success:(res)=>{
- if(res.data.code===200){
- getApp().globalData.user_headimg=res.data.msg.headimg;
- that.getSelInfo()
- console.log("将微信头像作为用户头像");
- }
- },
- fail:()=>{
- console.log("微信头像作为用户头像更新失败");
- },
- });
- },
- refuseBtn(){
- uni.navigateBack({
- delta: 1
- });
- },
- goChatlist(){
- uni.reLaunch({
- url: '../index/chatList/index',
- success: res => {},
- fail: () => {},
- complete: () => {}
- });
- return true;
- },
- signout(){
- getApp().globalData.isAuth=false;
- getApp().globalData.isBind=false;
- getApp().globalData.isLogin=false;
- uni.request({
- url: getApp().globalData.shareUrl,
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- data: {
- sign: md5('update_member_info' + getApp().globalData.globalTimestamp),
- method: 'update_member_info',
- timestamp: getApp().globalData.globalTimestamp,
- uid:getApp().globalData.user_id,
- openId:getApp().globalData.open_id,
- key:'login_status',
- value:0,
- },
- success:(res)=>{
- if(res.data.code===200){
- getApp().globalData.login_status=res.data.msg.login_status;
- getApp().globalData.user_headimg=res.data.msg.headimg;
- getApp().globalData.user_name=res.data.msg.name;
- getApp().globalData.user_birthday=res.data.msg.birthday;
- getApp().globalData.user_idnum=res.data.msg.idnum;
- getApp().globalData.user_phone=res.data.msg.phone;
- getApp().globalData.user_email=res.data.msg.email;
- getApp().globalData.user_home_address=res.data.msg.home_address;
- getApp().globalData.user_send_address=res.data.msg.send_address;
- getApp().globalData.user_pcode=res.data.msg.pcode;
- getApp().globalData.user_number=res.data.msg.number;
- getApp().globalData.user_firsttime=res.data.msg.firsttime;
- getApp().globalData.user_balance=res.data.msg.balance;
- getApp().globalData.user_deadline=res.data.msg.deadline;
- getApp().globalData.user_doctor_name=res.data.msg.doctor_name;
- getApp().globalData.user_online_doctor_name=res.data.msg.online_doctor_name;
- getApp().globalData.kf_name=res.data.msg.kf_name;
- console.log("退出登录成功!");
- }
- },
- fail:()=>{
- console.log("999");
- },
- });
- },
- closePopup(){
- getApp().globalData.isSignOut=true;
- getApp().globalData.isAuth=true;
- getApp().globalData.isBind=false;
- getApp().globalData.isLogin=false;
-
- this.$refs.popup.close();
- uni.reLaunch({
- url: '../index/chooseId/index',
- success: res => {},
- fail: () => {},
- complete: () => {}
- });
- },
- }
- }
- </script>
- <style>
- .auth{
- margin-top: 0;
- text-align: center;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- padding: 100upx;
- vertical-align: middle;
- }
- .auth image{
- width: 200upx;
- height: 200upx;
- }
- .auth view {
- display: flex;
- width: 490upx;
- justify-content: space-between;
- }
- .auth-title {
- font-size: 32upx;
- }
- .auth-content {
- font-size: 26upx;
- color: #a7aaa9;
- }
- .allow {
- background-color: #27BCEF;
- margin: 20rpx 0 200rpx;
- text-align: center;
- vertical-align: middle;
- touch-action: manipulation;
- cursor: pointer;
- background-image: none;
- white-space: nowrap;
- user-select: none;
- font-size: 14px;
- border: 0 !important;
- position: relative;
- text-decoration: none;
- height: 44px;
- width: 250rpx;
- line-height: 44px;
- box-shadow: inset 0 0 0 1px #27BCEF;
- background: #fff !important;
- color: #27BCEF !important;
- display: inline-block;
- border-radius: 10rpx;
- }
- .refuse {
- background-color: #19be6b;
- margin: 20rpx 20rpx 200rpx 20rpx;
- text-align: center;
- vertical-align: middle;
- touch-action: manipulation;
- cursor: pointer;
- background-image: none;
- white-space: nowrap;
- user-select: none;
- font-size: 14px;
- border: 0 !important;
- position: relative;
- text-decoration: none;
- height: 44px;
- width: 250rpx;
- line-height: 44px;
- box-shadow: inset 0 0 0 1px #8a8a8a;
- background: #fff !important;
- color: #8a8a8a !important;
- display: inline-block;
- border-radius: 10rpx;
- }
- .margin-top-3{
- margin-top: 10%;
- }
-
-
- .uni-tip {
- padding: 30rpx;
- width: 600rpx;
- height: 340rpx;
- background: #fff;
- box-sizing: border-box;
- border:2rpx solid #fff;
- border-radius: 10rpx;
- }
-
- .uni-tip-title {
- text-align: center;
- height: 40rpx;
- /* font-weight: bold; */
- font-size: 30rpx;
- background: #fff;
- /* color: #333; */
- }
-
- .uni-tip-content {
- text-align: center;
- background: #fff;
- padding: 15px;
- font-size: 28rpx;
- height: 70rpx;
- line-height: 1.8;
- /* color: #666; */
- }
-
- .uni-tip-button {
- width: 200rpx;
- height: 60rpx;
- line-height: 60rpx;
- margin-top: 30rpx;
- /* display: flex; */
- text-align: center;
- background: #fff;
- font-size: 28rpx;
- color: #c02924;
- border: solid 1rpx #c02924;
- border-radius: 30rpx;
- }
-
-
- </style>
|