mint-ui —— picker的使用

Picker的使用

 

Import

 

import { Picker } from 'mint-ui';

Vue.component(Picker.name, Picker);

 

 

API






示例一:picker的简单使用

xxx.vue

<template>
  <div id="app">
  <mt-picker :slots="slots"  ></mt-picker>
  
    <router-view></router-view>
  </div>
</template>
 
<script>
 
export default {
  data () {
  return {
  slots:[{values: ['年假', '事假', '病假', '婚假', '其他']}]
  	}
  },
  mounted:function(){
 
  }
}
</script>
 
<style>
 
</style>

show

picker显示出来了



分析:

1.

pincker的显示,会在上方留下一半的白

 

当拖动的时候,选项就会跑到上方预留的空白位置






示例二:picker的简单使用——分组picker

xxx.vue

<template>
  <div id="app">
  	<mt-picker :slots="slots"  ></mt-picker>
  	
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  data () {
  	return {
  		slots:
				[
			    {
		          flex: 1,
		          values: ['年假', '事假', '病假', '婚假', '其他'],
		          className: 'slot1',
		          textAlign: 'left'
		        }, {
		          divider: true,
		          content: '-',
		          className: 'slot2'
		        }, {
		          flex: 1,
		          values: ['2015-11', '2015-02', '2015-03', '2015-04', '2015-05', '2015-06'],
		          className: 'slot3',
		          textAlign: 'right'
		        }
			  ]
  	}
  },
  mounted:function(){

  }
}
</script>

<style>

</style>

 

show



分析:

1.

picker还可以拆分成左中右3个部分——具体可以看上面的slot对象的属性

通过slots属性的设置对应的数据,接收一个数组,数组里面分3个对象

对象内除了可以使用values外,还可以使用flex(弹性盒子的flex值,1是充满剩余空间),className(使用slot1slot2slot3),textAlign(设置文字的水平位置,可以使用leftcenterright

 

2.

每个picker的高度默认是36px




示例三:picker使用change事件

xxx.vue

<template>
  <div id="app">
  	<mt-picker :slots="slots" @change="onValuesChange" ></mt-picker>  
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  name: 'app',
  data () {
  	return {
  		slots:
				[
			    {
		          flex: 1,
		          values: ['年假', '事假', '病假', '婚假', '其他'],
		          className: 'slot1',
		          textAlign: 'left'
		        }, {
		          divider: true,
		          content: '-',
		          className: 'slot2'
		        }, {
		          flex: 1,
		          values: ['2015-11', '2015-02', '2015-03', '2015-04', '2015-05', '2015-06'],
		          className: 'slot3',
		          textAlign: 'right'
		        }
			  ]
  	}
  },
  mounted:function(){

  },
  methods: {
		onValuesChange(picker, values) {
			console.log(picker)
			console.log(values)
    }
  }
}
</script>

<style>

</style>

show

运行后,change事件会自动输出2次内容

这是因为,这里面有2picker可以选择内容


 

分析:

1.

当滚动其中一列的时候,又会触发change事件






示例四:获取change事件所选的内容

xxx.vue

<template>
  <div id="app">
  	<mt-picker :slots="slots" @change="onValuesChange" ></mt-picker>  
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  name: 'app',
  data () {
  	return {
  		value:'',
  		slots:
				[
					{
						values: ['年假', '事假', '病假', '婚假', '其他', '婚假']
					}
				]
  	}
  },
  mounted:function(){

  },
  methods: {
		onValuesChange(picker, values) {
     this.value = values[0];
     console.log(this.value)
}
  }
}
</script>

<style>

</style>

show

开启picker的时候,在没有操作的时候,会先自动执行一次change事件,选中第一个选项的内容

 

更改选择的内容,输出了data内的数据





示例五:picker的显示个数

xxx.vue

<template>
  <div id="app">
  	<mt-picker :slots="slots" @change="onValuesChange" :visible-item-count="1"></mt-picker>  
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  name: 'app',
  data () {
  	return {
  		value:'',
  		slots:
				[
					{
						values: ['年假', '事假', '病假', '婚假', '其他', '婚假']
					}
				],
  	}
  },
  mounted:function(){

  },
  methods: {
		onValuesChange(picker, values) {
      this.value = values[0];
      console.log(this.value)
    }
  }
}
</script>

<style>

</style>

show

使用了:visible-item-count="1"之后,picker的可显示个数就变成了1





### 若依框架中的省市区三级联动组件 在若依框架中实现省市区三级联动功能通常依赖于前端Vue.js技术栈以及后台Spring Boot的支持。对于省市区数据的选择展示,可以借鉴其他成熟方案来构建适合若依系统的解决方案。 #### 前端部分:基于Element UIMint UIPicker组件 由于若依默认采用Element UI作为UI库,在此推荐使用其`Cascader`级联选择器组件完成这一需求[^1]。该组件允许开发者轻松创建多层嵌套选项列表,并支持异步加载子节点等功能特性,非常适合用来处理地理位置类别的关联型数据集。 ```html <template> <el-cascader :options="regionOptions" v-model="selectedRegion"></el-cascader> </template> <script> export default { data() { return { regionOptions: [], // 地区数据源 selectedRegion: [] // 用户选中的地区ID数组 }; }, created() { this.loadRegions(); }, methods: { loadRegions() { // 调用API获取省份信息并填充到regionOptions变量里 } } }; </script> ``` 为了使上述代码正常工作,还需要准备一份完整的中国行政区划JSON文件用于初始化`regionOptions`属性值。这份静态资源可以从公开渠道下载获得,也可以通过接口动态请求服务器端数据库内的最新记录版本[^2]。 #### 后台服务端逻辑设计 考虑到实际应用场景下可能存在的性能瓶颈问题,建议采取懒加载策略优化用户体验——即仅当用户点击展开某一层级时才去查询对应的下一级行政区域详情。这样既减少了初次渲染页面所需时间开销,又降低了网络传输负担。 具体来说就是在每次触发change事件之后向后端发起HTTP GET请求携带当前已选定项的信息参数,由控制器负责解析这些输入并将匹配的结果返回给客户端继续补充剩余未显示出来的部分[^3]。 ```java @RestController @RequestMapping("/api/regions") public class RegionController { @Autowired private IRegionService regionService; /** * 获取指定父级下的所有子级地区 */ @GetMapping("/{parentId}") public List<RegionDTO> getChildren(@PathVariable Long parentId){ return regionService.listByParentId(parentId); } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值