1.要实现点击遮罩层关闭弹框,必须设置closeOnClickOverlay和close事件
<u-picker :show="showHiddenTrouble" :columns="hiddenTroubleTypeColumns" :closeOnClickOverlay="true" @close="showHiddenTrouble = false" @cancel="showHiddenTrouble = false"></u-picker>
2.在u-form中使用一定要注意u-Picker放置的位置(关闭不了的原因)
错误示范(把u-Picker放在了u-form-item里面):
<u-form-item label="年份" prop="year" required borderBottom @click="showyear = true">
<u--input v-model="form.year" disabled disabledColor="#ffffff" placeholder="请选择年份" >
</u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
<u-picker name="year" :show="showyear " :columns="columns" :defaultIndex="defaultIndex" :closeOnClickOverlay="true" @close="showyear = false" @cancel="showyear = false">
</u-picker>
</u-form-item>
正确示范(u-Picker与u-form-item同级-解决问题):
<u-form-item label="年份" prop="year" required borderBottom @click="showyear = true">
<u--input v-model="form.year" disabled disabledColor="#ffffff" placeholder="请选择年份" >
</u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-picker name="year" :show="showyear " :columns="columns" :defaultIndex="defaultIndex" :closeOnClickOverlay="true" @close="showyear = false" @cancel="showyear = false">
</u-picker>