2 lines
6.0 KiB
JavaScript
2 lines
6.0 KiB
JavaScript
var e,t,n,o;import{G as l,H as i,o as a,c as s,w as r,a as c,A as u,h as d,t as m,m as h,n as p,B as f,K as v,d as C,b as y,r as g,F as x,g as _,aY as I,aZ as k}from"./index-d76b1e7a.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";import{r as $}from"./useRouter.2bdb47a0.js";import{a as S}from"./uv-transition.b33e1d5c.js";import{_ as w}from"./uv-popup.432d8c17.js";const T=b({name:"uv-toolbar",emits:["confirm","cancel"],mixins:[l,i,{props:{show:{type:Boolean,default:!0},showBorder:{type:Boolean,default:!1},cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确认"},cancelColor:{type:String,default:"#909193"},confirmColor:{type:String,default:"#3c9cff"},title:{type:String,default:""},...null==(t=null==(e=uni.$uv)?void 0:e.props)?void 0:t.toolbar}}],methods:{cancel(){this.$emit("cancel")},confirm(){this.$emit("confirm")}}},[["render",function(e,t,n,o,l,i){const y=v,g=C;return e.show?(a(),s(g,{key:0,class:p(["uv-toolbar",{"uv-border-bottom":e.showBorder}]),onTouchmove:f(e.noop,["stop","prevent"])},{default:r((()=>[c(g,{class:"uv-toolbar__cancel__wrapper","hover-class":"uv-hover-class"},{default:r((()=>[c(y,{class:"uv-toolbar__wrapper__cancel",onClick:i.cancel,style:u({color:e.cancelColor})},{default:r((()=>[d(m(e.cancelText),1)])),_:1},8,["onClick","style"])])),_:1}),e.title?(a(),s(y,{key:0,class:"uv-toolbar__title uv-line-1"},{default:r((()=>[d(m(e.title),1)])),_:1})):h("",!0),c(g,{class:"uv-toolbar__confirm__wrapper","hover-class":"uv-hover-class"},{default:r((()=>[c(y,{class:"uv-toolbar__wrapper__confirm",onClick:i.confirm,style:u({color:e.confirmColor})},{default:r((()=>[d(m(e.confirmText),1)])),_:1},8,["onClick","style"])])),_:1})])),_:1},8,["class","onTouchmove"])):h("",!0)}],["__scopeId","data-v-2f73cab8"]]);const B=b({name:"uv-picker",emits:["confirm","cancel","close","change"],mixins:[l,i,{props:{showToolbar:{type:Boolean,default:!0},title:{type:String,default:""},round:{type:[String,Number],default:0},columns:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},itemHeight:{type:[String,Number],default:44},cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确定"},cancelColor:{type:String,default:"#909193"},confirmColor:{type:String,default:"#3c9cff"},color:{type:String,default:""},activeColor:{type:String,default:""},visibleItemCount:{type:[String,Number],default:5},keyName:{type:String,default:"text"},closeOnClickOverlay:{type:Boolean,default:!0},closeOnClickConfirm:{type:Boolean,default:!0},defaultIndex:{type:Array,default:()=>[]},immediateChange:{type:Boolean,default:!1},...null==(o=null==(n=uni.$uv)?void 0:n.props)?void 0:o.picker}}],computed:{textStyle(){return(e,t)=>{const n={display:"block"};return this.color&&(n.color=this.color),this.activeColor&&t===this.innerIndex[e]&&(n.color=this.activeColor),n}}},data:()=>({lastIndex:[],innerIndex:[],innerColumns:[],columnIndex:0}),watch:{defaultIndex:{immediate:!0,handler(e){this.setIndexs(e,!0)}},columns:{immediate:!0,handler(e){this.setColumns(e)}}},methods:{open(){this.$refs.pickerPopup.open()},close(){this.$refs.pickerPopup.close()},popupChange(e){e.show||this.$emit("close")},getItemText(e){return this.$uv.test.object(e)?e[this.keyName]:e},cancel(){this.$emit("cancel"),this.close()},confirm(){this.$emit("confirm",this.$uv.deepClone({indexs:this.innerIndex,value:this.innerColumns.map(((e,t)=>e[this.innerIndex[t]])),values:this.innerColumns})),this.closeOnClickConfirm&&this.close()},changeHandler(e){const{value:t}=e.detail;let n=0,o=0;for(let i=0;i<t.length;i++){let e=t[i];if(e!==(this.lastIndex[i]||0)){o=i,n=e;break}}this.columnIndex=o;const l=this.innerColumns;this.setLastIndex(t),this.setIndexs(t),this.$emit("change",{value:this.innerColumns.map(((e,n)=>e[t[n]])),index:n,indexs:t,values:l,columnIndex:o})},setIndexs(e,t){this.innerIndex=this.$uv.deepClone(e),t&&this.setLastIndex(e)},setLastIndex(e){this.lastIndex=this.$uv.deepClone(e)},setColumnValues(e,t){this.innerColumns.splice(e,1,t);let n=this.$uv.deepClone(this.innerIndex);for(let o=0;o<this.innerColumns.length;o++)o>this.columnIndex&&(n[o]=0);this.setIndexs(n)},getColumnValues(e){return(async()=>{await this.$uv.sleep()})(),this.innerColumns[e]},setColumns(e){this.innerColumns=this.$uv.deepClone(e),0===this.innerIndex.length&&(this.innerIndex=new Array(e.length).fill(0))},getIndexs(){return this.innerIndex},getValues(){return(async()=>{await this.$uv.sleep()})(),this.innerColumns.map(((e,t)=>e[this.innerIndex[t]]))}}},[["render",function(e,t,n,o,l,i){const p=$(_("uv-toolbar"),T),f=v,b=k,B=I,H=$(_("uv-loading-icon"),S),j=C,O=$(_("uv-popup"),w);return a(),s(O,{ref:"pickerPopup",mode:"bottom",round:e.round,"close-on-click-overlay":e.closeOnClickOverlay,onChange:i.popupChange},{default:r((()=>[c(j,{class:"uv-picker"},{default:r((()=>[e.showToolbar?(a(),s(p,{key:0,cancelColor:e.cancelColor,confirmColor:e.confirmColor,cancelText:e.cancelText,confirmText:e.confirmText,title:e.title,onCancel:i.cancel,onConfirm:i.confirm},null,8,["cancelColor","confirmColor","cancelText","confirmText","title","onCancel","onConfirm"])):h("",!0),c(B,{class:"uv-picker__view",indicatorStyle:`height: ${e.$uv.addUnit(e.itemHeight)}`,value:l.innerIndex,immediateChange:e.immediateChange,style:u({height:`${e.$uv.addUnit(e.visibleItemCount*e.itemHeight)}`}),onChange:i.changeHandler},{default:r((()=>[(a(!0),y(x,null,g(l.innerColumns,((t,n)=>(a(),s(b,{key:n,class:"uv-picker__view__column"},{default:r((()=>[e.$uv.test.array(t)?(a(!0),y(x,{key:0},g(t,((t,o)=>(a(),s(f,{class:"uv-picker__view__column__item uv-line-1",key:o,style:u([{height:e.$uv.addUnit(e.itemHeight),lineHeight:e.$uv.addUnit(e.itemHeight),fontWeight:o===l.innerIndex[n]?"bold":"normal"},i.textStyle(n,o)])},{default:r((()=>[d(m(i.getItemText(t)),1)])),_:2},1032,["style"])))),128)):h("",!0)])),_:2},1024)))),128))])),_:1},8,["indicatorStyle","value","immediateChange","style","onChange"]),e.loading?(a(),s(j,{key:1,class:"uv-picker--loading"},{default:r((()=>[c(H,{mode:"circle"})])),_:1})):h("",!0)])),_:1})])),_:1},8,["round","close-on-click-overlay","onChange"])}],["__scopeId","data-v-dd0d048b"]]);export{B as _};
|