| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | 
							- <template>
 
- 	<view class="mpvue-picker">
 
- 		<page-head :title="title"></page-head>
 
- 		<view class="uni-padding-wrap uni-common-mt">
 
- 			<view class="uni-title">
 
- 				<!-- #ifndef H5 -->
 
- 				<uni-icons size="16" type="info"></uni-icons>
 
- 				<!-- #endif -->
 
- 				说明 :
 
- 			</view>
 
- 			<view class="uni-helllo-text">
 
- 				<view>
 
- 					在App端可在pages.json里配置buttons,暂不支持动态改变buttons的样式,使用onNavigationBarButtonTap可监听城市选择按钮的点击事件。
 
- 				</view>
 
- 			</view>
 
- 		</view>
 
- 		<mpvue-picker
 
- 			:themeColor="themeColor"
 
- 			ref="mpvuePicker"
 
- 			:mode="mode"
 
- 			:deepLength="deepLength"
 
- 			:pickerValueDefault="pickerValueDefault"
 
- 			@onConfirm="onConfirm"
 
- 			@onCancel="onCancel"
 
- 			:pickerValueArray="pickerValueArray"
 
- 		></mpvue-picker>
 
- <!-- 		<picker ref="mpvuePicker" @change="bindPickerChange" :value="index" :range="pickerValueArray" range-key="label">
 
- 			<view class="">{{pickerValueArray[index].label}}</view>
 
- 		</picker>
 
-  -->	</view>
 
- </template>
 
- <script>
 
- // https://github.com/zhetengbiji/mpvue-picker
 
- import mpvuePicker from '../../../components/mpvue-picker/mpvuePicker.vue';
 
- // https://github.com/zhetengbiji/mpvue-citypicker
 
- export default {
 
- 	components: {
 
- 		mpvuePicker
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			title: 'nav-city-dropdown',
 
- 			pickerValueArray: [
 
- 				{
 
- 					label: '北京市',
 
- 					value: 110000
 
- 				},
 
- 				{
 
- 					label: '天津市',
 
- 					value: 120000
 
- 				},
 
- 				{
 
- 					label: '广州市',
 
- 					value: 440100
 
- 				},
 
- 				{
 
- 					label: '深圳市',
 
- 					value: 440300
 
- 				}
 
- 			],
 
- 			themeColor: '#007AFF',
 
- 			mode: '',
 
- 			deepLength: 1,
 
- 			pickerValueDefault: [0],
 
- 			index: 0,
 
- 		};
 
- 	},
 
- 	onReady() {
 
- 		this.setStyle(0, '北京市');
 
- 	},
 
- 	methods: {
 
- 		onCancel(e) {
 
- 			console.log(e);
 
- 		},
 
- 		// 单列
 
- 		showSinglePicker() {
 
- 			this.mode = 'selector';
 
- 			this.deepLength = 1;
 
- 			this.pickerValueDefault = [0];
 
- 			this.$refs.mpvuePicker.show();
 
- 		},
 
- 		onConfirm(e) {
 
- 			console.log(e.label);
 
- 			this.setStyle(0, e.label);
 
- 		},
 
- 		/**
 
- 		 * 修改导航栏buttons
 
- 		 * index[number] 修改的buttons 下标索引,最右边索引为0
 
- 		 * text[string] 需要修改的text 内容
 
- 		 */
 
- 		setStyle(index, text) {
 
- 			let pages = getCurrentPages();
 
- 			let page = pages[pages.length - 1];
 
- 			if (text.length > 3) {
 
- 				text = text.substr(0, 3) + '...';
 
- 			}
 
- 			// #ifdef APP-PLUS
 
- 			let currentWebview = page.$getAppWebview();
 
- 			let titleNView = currentWebview.getStyle().titleNView;
 
- 			// 添加文字过长截取为3个字符,请根据自己业务需求更改
 
- 			titleNView.buttons[0].text = text;
 
- 			currentWebview.setStyle({
 
- 				titleNView: titleNView
 
- 			});
 
- 			// #endif
 
- 			// #ifdef H5
 
- 			// h5 临时方案
 
- 			document.getElementsByClassName('uni-btn-icon')[1].innerText = text;
 
- 			// #endif
 
- 		}
 
- 	},
 
- 	onBackPress() {
 
- 		if (this.$refs.mpvuePicker.showPicker) {
 
- 			this.$refs.mpvuePicker.pickerCancel();
 
- 			return true;
 
- 		}
 
- 	},
 
- 	onUnload() {
 
- 		if (this.$refs.mpvuePicker.showPicker) {
 
- 			this.$refs.mpvuePicker.pickerCancel();
 
- 		}
 
- 	},
 
- 	onNavigationBarButtonTap(e) {
 
- 		if (e.index === 0) {
 
- 			this.showSinglePicker();
 
- 		}
 
- 	}
 
- };
 
- </script>
 
- <style></style>
 
 
  |