import React, {Component} from 'react'; import {StyleSheet, View, Text, DeviceEventEmitter, ScrollView, TouchableOpacity, Dimensions} from 'react-native'; import {Button} from '@ant-design/react-native'; import ReadUHF from "../../utils/ReadUHF"; import Barcode from "react-native-barcode-builder"; import SyncStorage from "sync-storage"; let screenW = Dimensions.get('window').width; class DesktopHome extends Component { constructor(props) { super(props); this.state = { data: [], userData: [], no_begin: '8', no_length: '14', error: 0, isStart: true, timerID: [], }; } static navigationOptions = ({navigation}) => { return { headerRight: ( navigation.navigate("setPower")}> 设置 ) }; }; componentDidMount() { ReadUHF.changeFlag(0) DeviceEventEmitter.addListener('MsgFromAndroid', this._addCode); DeviceEventEmitter.addListener('onKeyDown', this.onKeyDown); } _addCode = (item) => { const str = JSON.parse(item) // 防止重复扫描 let {data, userData, error} = this.state; const product_index = userData.indexOf(str['userData']) if (product_index < 0) { userData.push(str['userData']) data.unshift(str) if (str['error']) { error += 1 } this.setState({data, userData, error}) } } _start = () => { const no_begin = SyncStorage.get('no_begin') const no_length = SyncStorage.get('no_length') if (no_begin && no_begin) { this.setState({no_begin, no_length}) } let {isStart} = this.state; ReadUHF.doRead() this.setState({isStart: !isStart}) } _clear = () => { this.setState({userData: [], data: [], error: 0}) } onKeyDown = () => { const no_begin = SyncStorage.get('no_begin') const no_length = SyncStorage.get('no_length') if (no_begin && no_begin) { this.setState({no_begin, no_length}) } let {isStart} = this.state; this.setState({isStart: !isStart}) } dianYaRender = (item, index) => { const assetID = item.assetID.slice(parseInt(this.state.no_begin) - 1, parseInt(this.state.no_begin) + parseInt(this.state.no_length) - 1) const releaseDates = item.releaseDate.split('-') const releaseDate = releaseDates[0] + "年" + releaseDates[1] + "月" let districtText = '' if (parseInt(item.district) > 10000) { districtText = item.districtText } else { const len1 = item.districtText.split('-')[1].length districtText = "国网"+item.districtText.split('-')[1].slice(0,len1-1)+"电力" } return ( 计量{item.kind} 型号:{item.model} 电压等级:{item.voltageLevel}kV 绕组数量:{item.secondWindingCount} 二次电压 准确等级 功率因数 生产日期 {item.secondVoltage}kV {item.accuracy} {item.powerFactor} {releaseDate} 安装场所:{item.place} 额定负荷:{item.ratedLoad}VA 电压因数:{item.voltageFactor} {item.manufacturer} {districtText} NO.{assetID} {item.assetID} ) } dianLiuRender = (item, index) => { const assetID = item.assetID.slice(parseInt(this.state.no_begin) - 1, parseInt(this.state.no_begin) + parseInt(this.state.no_length) - 1) const releaseDates = item.releaseDate.split('-') const releaseDate = releaseDates[0] + "年" + releaseDates[1] + "月" let districtText = '' if (parseInt(item.district) > 10000) { districtText = item.districtText } else { const len1 = item.districtText.split('-')[1].length districtText = "国网"+item.districtText.split('-')[1].slice(0,len1-1)+"电力" } return ( 计量{item.kind} 型号:{item.model} 电压等级:{item.voltageLevel}kV 绕组数量:{item.secondWindingCount} 一次电流 二次电流 功率因数 生产日期 {item.firstCurrent}A {item.senondCurrent}A {item.powerFactor} {releaseDate} 安装场所:{item.place} 额定负荷:{item.ratedLoad}VA 准确等级:{item.accuracy} {item.manufacturer} {districtText} NO.{assetID} {item.assetID} ) } errorRender = (item, index) => { return ( {item.error_msg} ) } render() { let {isStart} = this.state; const start_text = isStart ? '开始识别' : '停止识别' return ( { this.state.data.map((item, index) => { if (item.error) { return this.errorRender(item, index) } else if (item.kind.indexOf('电压') > -1) { return this.dianYaRender(item, index) } else if (item.kind.indexOf('电流') > -1) { return this.dianLiuRender(item, index) } }) } 合计:{this.state.data.length} 失败:{this.state.error} ); } } const styles = StyleSheet.create({ container: { flex: 1 }, button: { borderRadius: 5, marginHorizontal: 10, marginBottom: 2, marginTop: 5, borderWidth: 0, backgroundColor: "#2b90ea" }, textColor: { color: '#333', textAlign: 'center', }, textColor3: { color: '#333', textAlign: 'center', width: (screenW - 9) / 3, }, textColor4: { color: '#333', textAlign: 'center', width: (screenW - 8) / 4, }, textColor2: { color: '#333', textAlign: 'center', width: (screenW - 10) / 2, }, mainView: { margin: 5, borderWidth: 0.5, borderColor: '#7b7b7b', }, betweenView: { flexDirection: 'row', justifyContent: 'space-between', borderTopWidth: 0.5, borderTopColor: '#7b7b7b', }, centerWidth: { borderLeftWidth: 0.5, borderRightWidth: 0.5, borderLeftColor: '#7b7b7b', borderRightColor: '#7b7b7b', alignItems: 'center', flexDirection: 'row', }, centerView: { alignItems: 'center', flexDirection: 'row', }, rightWidth: { borderRightWidth: 0.5, borderRightColor: '#7b7b7b', alignItems: 'center', flexDirection: 'row', }, }) export default DesktopHome;