| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | <template>	<view>		<page-head :title="title"></page-head>		<view class="uni-title uni-common-pl">普通选择器</view>		<view class="uni-list">			<view class="uni-list-cell">				<view class="uni-list-cell-left">					当前选择				</view>				<view class="uni-list-cell-db">					<picker @change="bindPickerChange" :value="index" :range="array" range-key="name">						<view class="uni-input">{{array[index].name}}</view>					</picker>				</view>			</view>		</view>		<!-- #ifndef MP-ALIPAY -->		<view class="uni-title uni-common-pl">多列选择器</view>		<view class="uni-list">			<view class="uni-list-cell">				<view class="uni-list-cell-left">					当前选择				</view>				<view class="uni-list-cell-db">					<picker mode="multiSelector" @columnchange="bindMultiPickerColumnChange" :value="multiIndex" :range="multiArray">						<view class="uni-input">{{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}</view>					</picker>				</view>			</view>		</view>		<!-- #endif -->		<view class="uni-title uni-common-pl">时间选择器</view>		<view class="uni-list">			<view class="uni-list-cell">				<view class="uni-list-cell-left">					当前选择				</view>				<view class="uni-list-cell-db">					<picker mode="time" :value="time" start="09:01" end="21:01" @change="bindTimeChange">						<view class="uni-input">{{time}}</view>					</picker>				</view>			</view>		</view>		<view class="uni-picker-tips">			注:选择 09:01 ~ 21:01 之间的时间, 不在区间内不能选中		</view>		<view class="uni-title uni-common-pl">日期选择器</view>		<view class="uni-list">			<view class="uni-list-cell">				<view class="uni-list-cell-left">					当前选择				</view>				<view class="uni-list-cell-db">					<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">						<view class="uni-input">{{date}}</view>					</picker>				</view>			</view>		</view>		<view class="uni-picker-tips">			注:选择当前时间 ±10 年之间的时间, 不在区间内不能选中		</view>	</view></template><script>	function getDate(type) {		const date = new Date();		let year = date.getFullYear();		let month = date.getMonth() + 1;		let day = date.getDate();		if (type === 'start') {			year = year - 10;		} else if (type === 'end') {			year = year + 10;		}		month = month > 9 ? month : '0' + month;;		day = day > 9 ? day : '0' + day;		return `${year}-${month}-${day}`;	}	export default {		data() {			return {				title: 'picker',				array: [{name:'中国'},{name: '美国'}, {name:'巴西'}, {name:'日本'}],				index: 0,				multiArray: [					['亚洲', '欧洲'],					['中国', '日本'],					['北京', '上海', '广州']				],				multiIndex: [0, 0, 0],				date: getDate({					format: true				}),				startDate:getDate('start'),				endDate:getDate('end'),				time: '12:01'			}		},		methods: {			bindPickerChange: function(e) {				console.log('picker发送选择改变,携带值为:' + e.detail.value)				this.index = e.detail.value			},			bindMultiPickerColumnChange: function(e) {				console.log('修改的列为:' + e.detail.column + ',值为:' + e.detail.value)				this.multiIndex[e.detail.column] = e.detail.value				switch (e.detail.column) {					case 0: //拖动第1列						switch (this.multiIndex[0]) {							case 0:								this.multiArray[1] = ['中国', '日本']								this.multiArray[2] = ['北京', '上海', '广州']								break							case 1:								this.multiArray[1] = ['英国', '法国']								this.multiArray[2] = ['伦敦', '曼彻斯特']								break						}						this.multiIndex.splice(1, 1, 0)						this.multiIndex.splice(2, 1, 0)						break					case 1: //拖动第2列						switch (this.multiIndex[0]) { //判断第一列是什么							case 0:								switch (this.multiIndex[1]) {									case 0:										this.multiArray[2] = ['北京', '上海', '广州']										break									case 1:										this.multiArray[2] = ['东京','北海道']										break								}								break							case 1:								switch (this.multiIndex[1]) {									case 0:										this.multiArray[2] = ['伦敦', '曼彻斯特']										break									case 1:										this.multiArray[2] = ['巴黎', '马赛']										break								}								break						}						this.multiIndex.splice(2, 1, 0)						break				}				this.$forceUpdate()			},			bindDateChange: function(e) {				this.date = e.detail.value			},			bindTimeChange: function(e) {				this.time = e.detail.value			}		}	}</script><style>.uni-picker-tips {	font-size: 12px;	color: #666;	margin-bottom: 15px;	padding: 0 15px;	/* text-align: right; */}</style>
 |