Files
anmo/server/public/coach/assets/u-select.2fbb182f.js
2025-08-21 16:38:20 +08:00

2 lines
5.4 KiB
JavaScript

import{r as e,a as t,o as l,c as a,w as s,b as u,Q as i,n as o,j as n,t as c,q as m,F as h,s as d,i as r,bw as p,bx as f}from"./index-8146d74e.js";import{_}from"./u-popup.5aaa2bdd.js";import{_ as v}from"./_plugin-vue_export-helper.1b428a4d.js";const x=v({emits:["update:modelValue","input","confirm"],props:{value:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},list:{type:Array,default:()=>[]},border:{type:Boolean,default:!0},cancelColor:{type:String,default:"#606266"},confirmColor:{type:String,default:"#2979ff"},zIndex:{type:[String,Number],default:0},safeAreaInsetBottom:{type:Boolean,default:!1},maskCloseAble:{type:Boolean,default:!0},defaultValue:{type:Array,default:()=>[0]},mode:{type:String,default:"single-column"},valueName:{type:String,default:"value"},labelName:{type:String,default:"label"},childName:{type:String,default:"children"},title:{type:String,default:""},cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确认"},blur:{type:[Number,String],default:0}},data:()=>({popupValue:!1,defaultSelector:[0],columnData:[],selectValue:[],lastSelectIndex:[],columnNum:0,moving:!1}),watch:{value:{immediate:!0,handler(e){e&&setTimeout(()=>this.init(),10),this.popupValue=e}},modelValue:{immediate:!0,handler(e){e&&setTimeout(()=>this.init(),10),this.popupValue=e}}},computed:{uZIndex(){return this.zIndex?this.zIndex:this.$u.zIndex.popup}},methods:{pickstart(){},pickend(){},init(){this.setColumnNum(),this.setDefaultSelector(),this.setColumnData(),this.setSelectValue()},setDefaultSelector(){this.defaultSelector=this.defaultValue.length==this.columnNum?this.defaultValue:Array(this.columnNum).fill(0),this.lastSelectIndex=this.$u.deepClone(this.defaultSelector)},setColumnNum(){if("single-column"==this.mode)this.columnNum=1;else if("mutil-column"==this.mode)this.columnNum=this.list.length;else if("mutil-column-auto"==this.mode){let e=1,t=this.list;for(;t[0][this.childName];)t=t[0]?t[0][this.childName]:{},e++;this.columnNum=e}},setColumnData(){let e=[];if(this.selectValue=[],"mutil-column-auto"==this.mode){let t=this.list[this.defaultSelector.length?this.defaultSelector[0]:0];for(let l=0;l<this.columnNum;l++)0==l?(e[l]=this.list,t=t[this.childName]):(e[l]=t,t=t[this.defaultSelector[l]][this.childName])}else"single-column"==this.mode?e[0]=this.list:e=this.list;this.columnData=e},setSelectValue(){let e=null;for(let t=0;t<this.columnNum;t++){e=this.columnData[t][this.defaultSelector[t]];let l={value:e?e[this.valueName]:null,label:e?e[this.labelName]:null};e&&e.extra&&(l.extra=e.extra),this.selectValue.push(l)}},columnChange(e){let t=null,l=e.detail.value;if(this.selectValue=[],"mutil-column-auto"==this.mode){this.lastSelectIndex.map((e,a)=>{e!=l[a]&&(t=a)}),this.defaultSelector=l;for(let e=t+1;e<this.columnNum;e++)this.columnData[e]=this.columnData[e-1][e-1==t?l[t]:0][this.childName],this.defaultSelector[e]=0;l.map((e,t)=>{let a=this.columnData[t][l[t]],s={value:a?a[this.valueName]:null,label:a?a[this.labelName]:null};a&&void 0!==a.extra&&(s.extra=a.extra),this.selectValue.push(s)}),this.lastSelectIndex=l}else if("single-column"==this.mode){let e=this.columnData[0][l[0]],t={value:e?e[this.valueName]:null,label:e?e[this.labelName]:null};e&&void 0!==e.extra&&(t.extra=e.extra),this.selectValue.push(t)}else"mutil-column"==this.mode&&l.map((e,t)=>{let a=this.columnData[t][l[t]],s={value:a?a[this.valueName]:null,label:a?a[this.labelName]:null};a&&void 0!==a.extra&&(s.extra=a.extra),this.selectValue.push(s)})},close(){this.$emit("input",!1),this.$emit("update:modelValue",!1)},getResult(e=null){e&&this.$emit(e,this.selectValue),this.close()},selectHandler(){this.$emit("click")}}},[["render",function(v,x,y,b,N,g){const S=r,V=p,C=f,k=e(t("u-popup"),_);return l(),a(S,{class:"u-select"},{default:s(()=>[u(k,{blur:y.blur,maskCloseAble:y.maskCloseAble,mode:"bottom",popup:!1,modelValue:N.popupValue,"onUpdate:modelValue":x[4]||(x[4]=e=>N.popupValue=e),length:"auto",safeAreaInsetBottom:y.safeAreaInsetBottom,onClose:g.close,"z-index":g.uZIndex},{default:s(()=>[u(S,{class:"u-select"},{default:s(()=>[u(S,{class:"u-select__header",onTouchmove:x[3]||(x[3]=i(()=>{},["stop","prevent"]))},{default:s(()=>[u(S,{class:"u-select__header__cancel u-select__header__btn",style:o({color:y.cancelColor}),"hover-class":"u-hover-class","hover-stay-time":150,onClick:x[0]||(x[0]=e=>g.getResult("cancel"))},{default:s(()=>[n(c(y.cancelText),1)]),_:1},8,["style"]),u(S,{class:"u-select__header__title"},{default:s(()=>[n(c(y.title),1)]),_:1}),u(S,{class:"u-select__header__confirm u-select__header__btn",style:o({color:N.moving?y.cancelColor:y.confirmColor}),"hover-class":"u-hover-class","hover-stay-time":150,onTouchmove:x[1]||(x[1]=i(()=>{},["stop"])),onClick:x[2]||(x[2]=i(e=>g.getResult("confirm"),["stop"]))},{default:s(()=>[n(c(y.confirmText),1)]),_:1},8,["style"])]),_:1}),u(S,{class:"u-select__body"},{default:s(()=>[u(C,{onChange:g.columnChange,class:"u-select__body__picker-view",value:N.defaultSelector,onPickstart:g.pickstart,onPickend:g.pickend},{default:s(()=>[(l(!0),m(h,null,d(N.columnData,(e,t)=>(l(),a(V,{key:t},{default:s(()=>[(l(!0),m(h,null,d(e,(e,t)=>(l(),a(S,{class:"u-select__body__picker-view__item",key:t},{default:s(()=>[u(S,{class:"u-line-1"},{default:s(()=>[n(c(e[y.labelName]),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024))),128))]),_:1},8,["onChange","value","onPickstart","onPickend"])]),_:1})]),_:1})]),_:1},8,["blur","maskCloseAble","modelValue","safeAreaInsetBottom","onClose","z-index"])]),_:1})}],["__scopeId","data-v-6d36d0a6"]]);export{x as _};