UNPKG

react-native-lib-cus-com

Version:

react-native 自定义辅助组件库,完美的网路请求,带加载条,可上传、下载文件,等等多种ui,可自定义删除;可节省应用级软件的开发时间

118 lines (106 loc) 3.81 kB
// import Picker from 'react-native-picker'; import {Tools} from "./Tools"; import {Components} from "./../StackComponent"; const Picker = Components.react_native_picker; /** * 自定义滑动选择 * **/ export class PickerCustome{ static selectedValue = null; /** * 选择框 底部 * @param dataJson objec;//参数 * @param callback function;//回调函数 * dataJson = { * pickerData:array,//需要选择的数组,可是多维数组 * selectedValue:array,//默认选中的数组 一纬数组 * pickerConfirmBtnText:string,//确定按钮显示文字,默认为:'确定' * pickerCancelBtnText:string,//取消按钮显示文字,默认为:'取消' * pickerTitleText:string,//中间title显示文字,默认为:'选择' * } * **/ static pick(dataJson,callback){ if(Picker.init){ Picker.init({ pickerConfirmBtnText:dataJson.pickerConfirmBtnText == undefined ? '确认' : dataJson.pickerConfirmBtnText, pickerCancelBtnText:dataJson.pickerCancelBtnText == undefined ? '取消' : dataJson.pickerCancelBtnText, pickerTitleText: dataJson.pickerTitleText == undefined ? '选择' : dataJson.pickerTitleText, pickerData: dataJson.pickerData, selectedValue: this.selectedValue == null ? dataJson.selectedValue == undefined ? [] : dataJson.selectedValue : this.selectedValue,//默认选中的值 onPickerConfirm: data => { // console.log(data);//确定 // Tools.toast("resolve: " + JSON.stringify(data)); // alert(JSON.stringify(data)) this.selectedValue = data; callback({ type:2, data:data }); }, onPickerCancel: data => { // console.log(data); //取消 // Tools.toast("onPickerCancel: " + JSON.stringify(data)); callback({ type:0, data:data }); }, onPickerSelect: data => { // console.log(data); //选择变化 // Tools.toast("onPickerSelect: " + JSON.stringify(data)); this.selectedValue = data; callback({ type:1, data:data }) }, }); Picker.show(); } else { console.info("请安装自定义滑动选择组件","react-native-picker"); Tools.toast("请安装组件 react-native-picker"); } } /** * 选择年月 * @param callback function;//回调函数 * **/ static pickMonth(callback){ let date = new Date(); let data = [ [], [1,2,3,4,5,6,7,8,9,10,11,12] ]; let dateJson = { year:date.getFullYear(), month:date.getMonth() + 1, day:date.getDate(), } let year = 2008; while (dateJson.year > year) { data[0].push(year++); } for(let i = 0; i < 21; i++) { data[0].push(year++); } return this.pick({ pickerData: data, pickerTitleText: '选择年/月', selectedValue: [dateJson.year,dateJson.month],//默认选中的值 },callback); } }