import { Component } from 'react' import Taro from '@tarojs/taro' import { connect } from 'react-redux' import { View, Input, Image } from '@tarojs/components' import { login, setOpenId, getInfo } 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.png'; import LOGO from '../../image/kdjt.png'; 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.getInfo = this.getInfo.bind(this); } componentDidShow() { } componentDidMount() { } authorization() { this.setState({ loading: true, }) let _this = this; Taro.getSetting({ withSubscriptions: true, success: (res) => { if (res.subscriptionsSetting.mainSwitch) { if (res.subscriptionsSetting['2L9AJWl2yNfgd83Fw_f_E6HiaEvPf109iw_xFtI8PXI'] === "reject") { this.setState({ isOpened: true, loading: false, openedType: 1 }) return; } Taro.requestSubscribeMessage({ //获取下发权限 tmplIds: [ '2L9AJWl2yNfgd83Fw_f_E6HiaEvPf109iw_xFtI8PXI', ], //此处写在后台获取的模板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 }); this.getInfo() }).catch((err) => { this.setState({ loading: false }) }) } getInfo() { getInfo({}).then((msg) => { if (msg.code === 200) { if (!msg.user.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.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.departmentId); } // let obj = Taro.getStorageSync('userInfor'); // obj.workTimeInfor = msg.user; Taro.setStorageSync('userInfor', msg.user); Taro.setStorageSync('roles', msg.roles); Taro.switchTab({ // url: '/pages/project/index', 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 }) }}> } background='#0000' color='#FFF' onHome={() => { }} /> {/* */} 研发工时管理服务系统 欢迎您! { 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 }) }}> {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