import { Component } from 'react' import Taro from '@tarojs/taro' import { connect } from 'react-redux' import {View, Input, Image} from '@tarojs/components' import {login,getWorkingHours,setOpenId} from '../../utils/servers/servers'; import { add, minus, asyncAdd } from '../../actions/counter' import { AtButton,AtIcon,AtModal } from 'taro-ui' import NavBar from '../../components/common/NavBar'; import BG from '../../image/bg.jpg'; import 'taro-ui/dist/style/components/button.scss'; import 'taro-ui/dist/style/components/loading.scss'; import 'taro-ui/dist/style/components/icon.scss'; import 'taro-ui/dist/style/components/modal.scss'; import selectIcon from '../../image/select.png' ; import './index.less' @connect(({ counter }) => ({ counter }), (dispatch) => ({ add () { dispatch(add()) }, dec () { dispatch(minus()) }, asyncAdd () { dispatch(asyncAdd()) } })) class Login extends Component { constructor(props) { super(props); this.state={ username:'', password:'', isOpened:false, openedType:0, usernameList:Taro.getStorageSync('usernameList') || [], rememberPassword:true } this.login = this.login.bind(this); this.authorization = this.authorization.bind(this); this.setUsernameList = this.setUsernameList.bind(this); this.getUsernameList = this.getUsernameList.bind(this); this.getWorkingHours = this.getWorkingHours.bind(this); } componentDidShow () { } componentDidMount() { } authorization(){ this.setState({ loading:true, }) let _this= this; Taro.getSetting({ withSubscriptions: true, success:(res)=>{ console.log(res.subscriptionsSetting,'res.subscriptionsSetting') if(res.subscriptionsSetting.mainSwitch){ if(res.subscriptionsSetting['j7WH3EwQnxGxwuV2HwmJhryxySPE8vOiV5cVOpp-42I'] === "reject" || res.subscriptionsSetting['pWia-KJPFwDM8ReDu_BOa9FJn31VFc81bp3yxfBmIRI'] === "reject" || res.subscriptionsSetting['vo28uzT2sLS-9ioroNyZbMSvu0mMvf6le2pDZVN891U'] === "reject"){ this.setState({ isOpened:true, loading:false, openedType:1 }) return; } Taro.requestSubscribeMessage({ //获取下发权限 tmplIds: [ 'pWia-KJPFwDM8ReDu_BOa9FJn31VFc81bp3yxfBmIRI', 'j7WH3EwQnxGxwuV2HwmJhryxySPE8vOiV5cVOpp-42I', 'vo28uzT2sLS-9ioroNyZbMSvu0mMvf6le2pDZVN891U' ], //此处写在后台获取的模板ID,可以写多个模板ID,看自己的需求 success: function (s) { _this.setState({ loading:false, }) _this.login(); }, fail: function (err) { _this.setState({ loading:false, }) console.log(err) } }) }else{ this.setState({ isOpened:true, loading:false, }) } }, fail:()=>{ this.setState({ loading:false, }) } }) } login(){ if(!this.state.username){ Taro.showToast({ title: '请输入用户名', icon: 'none', duration: 2000 }) return; } if(!this.state.password){ Taro.showToast({ title: '请输入密码', icon: 'none', duration: 2000 }) return; } this.setState({ loading:true, }) login({ username:this.state.username, password:this.state.password }).then((msg)=>{ this.setState({ loading:false }); if(!msg.data.openId){ Taro.login({ success: (res)=>{ setOpenId({ code:res.code, }).then(v=>{ if(v.error.length === 0){ this.setUsernameList(this.state.username,this.state.password); Taro.eventCenter.trigger('getStorageSync'); this.getWorkingHours(msg.data.departmentId); }else{ Taro.showToast({ title:v.error[0].message, icon:'none', }) } }) }, fail:()=>{ Taro.showToast({title:'系统错误,请稍后重试'}) } }); }else{ this.setUsernameList(this.state.username,this.state.password); Taro.eventCenter.trigger('getStorageSync'); this.getWorkingHours(msg.data.departmentId); } }).catch((err)=>{ console.log(err) this.setState({ loading:false }) }) } getWorkingHours(depId){ getWorkingHours({ depId }).then((msg)=>{ if(msg.error.length === 0){ let obj = Taro.getStorageSync('userInfor'); obj.workTimeInfor = msg.data; Taro.setStorageSync('userInfor', obj); Taro.switchTab({ url: '/pages/punchClock/index', }) }else{ Taro.showToast({title:msg.error[0].message,icon:'none'}) } }).catch((err)=>{ console.log(err) }) } setUsernameList(username,password){ if(!this.state.rememberPassword){ let usernameList = Taro.getStorageSync('usernameList') || []; let index = usernameList.findIndex(v=>v.username === username); if(index !== -1){ usernameList.splice(index,1) } Taro.setStorageSync('usernameList', usernameList); }else{ let usernameList = Taro.getStorageSync('usernameList') || []; let index = usernameList.findIndex(v=>v.username === username); if(index === -1){ usernameList.push({ username, password }) }else{ usernameList[index]={ username, password } } Taro.setStorageSync('usernameList', usernameList); } } getUsernameList(value = this.state.username){ let usernameList = Taro.getStorageSync('usernameList') || []; let arr = []; for(let i of usernameList){ if(i.username.indexOf(value) !== -1){ arr.push(i) } } this.setState({ usernameList:arr, isopenUsernameList:true }) } render () { return ( { this.setState({ isopenUsernameList:false }) }}> {}} /> 科德科技服务系统 欢迎您! { this.setState({ username: v.detail.value }) this.getUsernameList(v.detail.value); }} onFocus={()=>{ this.getUsernameList(); }} onBlur={()=>{ // this.setState({ // isopenUsernameList:false // }) }} /> {this.state.isopenUsernameList && this.state.usernameList.length >0 ? { this.state.usernameList.map((v,k)=>( { this.setState({ username:v.username, password:v.password, isopenUsernameList:false }) console.log({ username:v.username, password:v.password, isopenUsernameList:false }) }}> {v.username} ******* )) } : null} { this.setState({ password: v.detail.value }) }} /> { this.setState({ rememberPassword:!this.state.rememberPassword }) }}> 记住密码 登录 暂无账号?请联系管理员进行添加 湖南科德信息咨询集团有限公司 { this.setState({ isOpened:false, openedType:0, }) }} onCancel={()=>{ this.setState({ isOpened:false, openedType:0 }) }} onConfirm={()=>{ this.setState({ isOpened:false, openedType:0 },()=>{ Taro.openSetting({ success:(value)=> { } }) }) }} content={this.state.openedType === 1 ? '您存在拒绝接收的消息类型,请点击确认按钮,前往设置页->通知管理,点击不接受的消息通知类型,调整为允许' : '您关闭了接收通知权限,将不能收到订阅通知,请点击确认按钮,前往设置页->通知管理->接收通知,打开接收通知权限'} /> ) } } export default Login