绩效考核查看详情用户端(手机版)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

203 lines
4.1 KiB

<template>
<view class="u-page" ref="page">
<u-navbar
title="选择器"
@leftClick="navigateBack"
safeAreaInsetTop
fixed
placeholder
></u-navbar>
<u-cell-group>
<u-cell
@click="showPicker(index)"
:title="item.title"
v-for="(item, index) in list"
:key="index"
isLink
>
<image
slot="icon"
class="u-cell-icon"
:src="item.iconUrl"
mode="widthFix"
></image>
</u-cell>
</u-cell-group>
<u-picker
:show="show1"
:columns="columns1"
@change="change"
@cancel="cancel"
@confirm="confirm"
></u-picker>
<u-picker
:show="show2"
:columns="columns2"
:defaultIndex="[1]"
@cancel="cancel"
@confirm="confirm"
@change="change"
></u-picker>
<u-picker
:show="show3"
:columns="columns3"
ref="uPicker3"
@cancel="cancel"
@confirm="confirm"
@change="changeHandler1"
></u-picker>
<u-picker
:show="show4"
:columns="columns4"
@cancel="cancel"
@confirm="confirm"
:loading="loading"
@change="changeHandler2"
ref="uPicker4"
></u-picker>
<u-picker
:show="show5"
:columns="columns5"
title="标题太长就会显示省略号"
@cancel="cancel"
@confirm="confirm"
@change="change"
></u-picker>
<u-picker
:show="show6"
:columns="columns6"
closeOnClickOverlay
@cancel="cancel"
@confirm="confirm"
@close="close"
@change="change"
></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
index: 0,
loading: false,
columnData: [
['深圳', '厦门', '上海', '拉萨'],
['得州', '华盛顿', '纽约', '阿拉斯加']
],
columns1: [
['中国', '美国', '日本']
],
columns2: [
['中国', '美国', '日本']
],
columns3: [
['中国', '美国'],
['深圳', '厦门', '上海', '拉萨']
],
columns4: [
['中国', '美国'],
['深圳', '厦门', '上海', '拉萨']
],
columns5: [
['中国', '美国', '日本']
],
columns6: [
['中国', '美国', '日本']
],
show1: false,
show2: false,
show3: false,
show4: false,
show5: false,
show6: false,
list: [{
title: '基础使用',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/2.png'
},
{
title: '设置默认项',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/5.png'
},
{
title: '多列联动',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/1.png'
},
{
title: '加载中状态(切换第一列)',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/3.png'
},
{
title: '设置标题',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/4.png'
}, {
title: '允许点击遮罩关闭',
iconUrl: 'https://cdn.uviewui.com/uview/demo/picker/6.png'
},
]
}
},
methods: {
changeHandler1(e) {
this.change(e)
const {
columnIndex,
value,
values,
index,
// 微信小程序无法将picker实例传出来,只能通过ref操作
picker = this.$refs.uPicker3
} = e
if (columnIndex === 0) {
picker.setColumnValues(1, this.columnData[index])
}
},
changeHandler2(e) {
this.change(e)
const {
columnIndex,
value,
values,
index,
// 微信小程序无法将picker实例传出来,只能通过ref操作
picker = this.$refs.uPicker4
} = e
if (columnIndex === 0) {
this.loading = true
uni.$u.sleep(1500).then(() => {
picker.setColumnValues(1, this.columnData[index])
this.loading = false
})
}
},
navigateBack() {
uni.navigateBack()
},
change(e) {
// console.log('change', e);
},
showPicker(index) {
this.index = index + 1
this[`show${index + 1}`] = true
},
close() {
// console.log('close');
this[`show${this.index}`] = false
},
confirm(e) {
// console.log('confirm', e);
this[`show${this.index}`] = false
},
cancel() {
// console.log('cancel');
this[`show${this.index}`] = false
}
},
}
</script>
<style lang="scss">
.u-page {
padding: 0;
}
</style>