import React, {Component} from 'react'; import { View, Image, Text, FlatList, TextInput, TouchableOpacity, DeviceEventEmitter, ScrollView, SafeAreaView, StyleSheet, Dimensions, PixelRatio, } from 'react-native'; import {List, SwipeAction} from '@ant-design/react-native'; import DragSortableView from 'react-native-drag-sort/DragSortableView'; import {ShowToast} from '../../components/rootToast/root_toast'; import public_css from '../../source/css/public_css'; const {width} = Dimensions.get('window'); const parentWidth = width; const childrenWidth = width; const childrenHeight = 48; export default class enterprise_user extends Component { constructor(props) { super(props); this.state = { type: this.props.route.params.type, user: [], userName: '', }; } render() { return ( 人员添加: { this.setState({ userName: value, }); }} value={this.state.userName} /> { this.addUser(); }}> 人员姓名 排序 (this.scrollView = scrollView)} scrollEnabled={this.state.scrollEnabled} style={styles.container}> { this.setState({ scrollEnabled: false, }); }} onDragEnd={startIndex => { this.setState({ scrollEnabled: true, }); }} onDataChange={data => { this.setState({ user: data, }); }} // keyExtractor={(item, index) => item.key} // FlatList作用一样,优化 onClickItem={(data, item, index) => {}} renderItem={(item, index) => { return this.renderItem(item, index); }} /> { this.setState({ user: '', userName: '', }); }}> 全部清除 this.submitData()}> 确定 ); } //显示页面加载 componentDidMount(): void { if (this.props.route.params.type == 1) { let payees = this.props.route.params.data.state.payees; if (payees != null) { if (payees.length > 0) { let list = payees.split(','); let userList = list.map((_, i) => ({ key: i, name: list[i], })); this.setState({ user: this.state.user.concat(userList), userName: '', }); } } } if (this.props.route.params.type == 2) { let reviewers = this.props.route.params.data.state.reviewers; if (reviewers != null) { if (reviewers.length > 0) { let list = reviewers.split(','); let userList = list.map((_, i) => ({ key: i, name: list[i], })); this.setState({ user: this.state.user.concat(userList), userName: '', }); } } } } //关闭页面加载 componentWillUnmount(): void { this.timer && clearTimeout(this.timer); } //加载客户列表数据 renderItem = data => ( {data.name} ); //显示侧滑按钮 right = data => [ { text: '删除', onPress: () => { this.deleteData(data); }, style: {backgroundColor: 'red', color: 'white'}, }, ]; //删除用户信息 deleteData = data => { let listData = this.state.user; const prevIndex = listData.findIndex(item => item.key === data.key); listData.splice(prevIndex, 1); let userList = listData.map((_, i) => ({ key: i, name: listData[i].name, })); this.setState({ user: userList, }); }; //添加人员信息 addUser = () => { if (this.state.userName.length > 0) { let user = { key: this.state.user.length, name: this.state.userName, }; this.setState({ user: this.state.user.concat(user), userName: '', }); } else { ShowToast('请输入人员姓名!'); return; } }; //提交用户信息 submitData = () => { let user = ''; if (this.state.user.length > 0) { this.state.user.map((_, i) => { user = user + this.state.user[i].name + ','; }); user = user.substring(0, user.length - 1); } if (this.state.type == 1) { this.props.route.params.data.setPayees(user); } if (this.state.type == 2) { this.props.route.params.data.setReviewers(user); } this.props.navigation.goBack(); }; } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#f0f0f0', }, item: { width: childrenWidth, height: childrenHeight, flexDirection: 'row', justifyContent: 'center', alignItems: 'center', backgroundColor: '#ffffff', borderBottomWidth: 3 / PixelRatio.get(), borderColor: 'rgb(208,208,208)', }, item_children: { width: childrenWidth, height: childrenHeight - 4, backgroundColor: '#ffffff', flexDirection: 'row', alignItems: 'center', }, item_icon: { width: childrenHeight * 0.6, height: childrenHeight * 0.6, marginLeft: 15, resizeMode: 'contain', }, item_text: { marginRight: 15, color: '#2ecc71', }, });