UNPKG

uv-ui

Version:

基于vue3的移动端组件库

2 lines (1 loc) 2.74 kB
"use strict";const e=require("vue"),_=require("../popup/index.cjs"),j=require("./picker-column.cjs"),d=require("./utils.cjs");require("./picker.vue_vue_type_style_index_0_lang.cjs");const C={class:"uv-picker"},E={class:"uv-picker-title"},B={class:"uv-picker-title-center"},q={class:"uv-picker-content"},w=e.createElementVNode("div",{class:"uv-picker-content-wrapper"},null,-1),O={name:"UvPicker"},P=Object.assign(O,{props:{modelValue:{type:[String,Number],default:""},title:{type:String},leftName:{type:String,default:"\u53D6\u6D88"},rightName:{type:String,default:"\u786E\u5B9A"},list:{type:Array,default:()=>[]},keyName:{type:[String,Number],default:"value"},labelName:{type:[String,Number],default:"label"},childrenName:{type:String,default:"children"}},emits:["update:modelValue","change","column-change","cancle","confim"],setup(a,{expose:p,emit:u}){const o=a,v=e.computed(()=>{const t=String(o.modelValue);return/[\\/:\-\s]/.test(t)?t.split(/[\\/:\-\s]/):t.split(",")}),m=e.computed(()=>d.getColumnsType(o.list,o.childrenName)),f=e.computed(()=>{const{list:t,labelName:l,keyName:s,childrenName:r}=o;switch(m.value){case"multiple":return t;case"cascade":return d.formatCascadeColumns(t,{label:l,value:s,children:r},n);default:return[t]}}),{props:g,validateBlurOrChange:k}=e.inject("form-item",{}),n=e.ref([]);e.watch(()=>o.modelValue,t=>{n.value=t.split(",")},{immediate:!0});const c=e.ref(!1),h=()=>{c.value=!0},y=()=>{c.value=!1};function N(){u("cancle"),c.value=!1}function V(t,l){n.value[l]=t,n.value.join(","),u("change",n.value.join(",")),u("column-change",{value:t,index:l})}function b(t,l){n.value[l]=t}function S(){u("confim",n.value.join(",")),u("update:modelValue",n.value.join(",")),g&&k("blur"),c.value=!1}return p({open:h,close:y}),(t,l)=>(e.openBlock(),e.createBlock(e.unref(_),e.mergeProps({modelValue:c.value,"onUpdate:modelValue":l[0]||(l[0]=s=>c.value=s),position:"bottom"},t.$attrs),{default:e.withCtx(()=>[e.createElementVNode("div",C,[e.createElementVNode("div",E,[e.createElementVNode("div",{class:"uv-picker-title-left",onClick:N},e.toDisplayString(a.leftName),1),e.renderSlot(t.$slots,"title",{},()=>[e.createElementVNode("div",B,e.toDisplayString(a.title),1)]),e.createElementVNode("div",{class:"uv-picker-title-right",onClick:S},e.toDisplayString(a.rightName),1)]),e.createElementVNode("div",q,[w,(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(s,r)=>(e.openBlock(),e.createBlock(j,{key:r,list:s,"key-name":a.keyName,"label-name":a.labelName,value:e.unref(v)[r],"columns-type":e.unref(m),onChange:i=>V(i,r),onFirstOpen:i=>b(i,r)},null,8,["list","key-name","label-name","value","columns-type","onChange","onFirstOpen"]))),128))])])]),_:3},16,["modelValue"]))}});module.exports=P;