Picker.js 3.27 KB
import Picker from 'react-native-picker';
import moment from 'moment'
import 'moment/locale/zh-cn'
import {BackHandler,
	Easing,
    Platform,
    Animated} from 'react-native';
export const PickRemindDate = (logic) => {
	let date = []
	let dateText = []
	const oneDay = 1000 * 60 * 60 * 24
	const now = new Date().getTime()
	let targetDay = now - 15 * oneDay
	moment.locale('zh-cn')
	for (let i = 0; i < 30; i++) {
		if (targetDay === now) {
			dateText.push('今天')
		} else {
			const result = moment(targetDay).format('MMMDo') + ' ' + moment(targetDay).format('dddd')
			dateText.push(result)
		}
		date.push(targetDay)
		targetDay = targetDay + oneDay
	}
	const data1 = ['上午', '下午']
	const data2 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
	const data3 = ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55']
	const data = [dateText, data1, data2, data3]
	Picker.init({
		pickerData: data,
		selectedValue: ['今天', '上午', '9', '00'],
		wheelFlex: [2, 1, 1, 1],
		pickerCancelBtnText: "移除",
		pickerTitleText: "",
		pickerConfirmBtnText: "设置提醒",
		pickerConfirmBtnColor: [53, 133, 211, 1],
		pickerCancelBtnColor: [129, 129, 129, 1],
		pickerToolBarBg: [248, 248, 248, 1],
		pickerBg: [255, 255, 255, 1],
		onPickerConfirm: data => {
			logic.remindDate = data
		},
		onPickerCancel: data => {
			console.log(data);
		},
	});
	Picker.show();
}
export const PickExpireDate = (logic) => {
	let date = []
	let dateText = []
	const oneDay = 1000 * 60 * 60 * 24
	const now = new Date().getTime()
	let targetDay = now - 15 * oneDay
	moment.locale('zh-cn')
	for (let i = 0; i < 30; i++) {
		const result = moment(targetDay).format('MMMDo')+""
		dateText.push(result)
		date.push(targetDay)
		targetDay = targetDay + oneDay
	}
	Picker.init({
		pickerData: dateText,
		selectedValue: [dateText[15]],
		pickerCancelBtnText: "移除",
		pickerTitleText: "",
		pickerFontSize:20,
		pickerConfirmBtnText: "设置到期日",
		pickerConfirmBtnColor: [53, 133, 211, 1],
		pickerCancelBtnColor: [129, 129, 129, 1],
		pickerToolBarBg: [248, 248, 248, 1],
		pickerBg: [255, 255, 255, 1],
		onPickerConfirm: data => {
			logic.expireDate = data[0]
		},
		onPickerCancel: data => {
			console.log(data);
		},
	});
	Picker.show();
}


export const PickCategory = (data,onChange) => {

     if (Platform.OS==="android"){
         const dismissKeyboard = require('dismissKeyboard');
         dismissKeyboard();
	 }


    Picker.init({
		pickerData: data,
		selectedValue: [data[0]],
		pickerCancelBtnText: "取消",
		pickerTitleText: "",
		pickerFontSize:26,
		pickerConfirmBtnText: "确定",
		pickerConfirmBtnColor: [53, 133, 211, 1],
		pickerCancelBtnColor: [129, 129, 129, 1],
		pickerToolBarBg: [248, 248, 248, 1],
		pickerBg: [255, 255, 255, 1],
		onPickerConfirm: data => {
			onChange( data[0])
		},
		onPickerCancel: data => {
			console.log(data);
		},
	});
	Picker.show();
    let backHandler = BackHandler;
    let that = this;
    onBackAndroid = () => {
        // console.warn('hardwareBackPress');
        backHandler.removeEventListener('hardwareBackPress', that.onBackAndroid);
        Picker.hide();
        return true;
    };


    BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
}

export const hidePickCategory = () => {

    Picker.hide();
}