uni-data-select.c2b2dcdb.js 4.93 KB
import{M as e,L as t,u as a,o as s,c as l,w as i,j as c,t as o,f as n,b as r,v as u,d as h,F as m,k as d,i as p,q as f,X as y}from"./index-faed4152.js";import{D as _}from"./uni-forms.d13e4a45.js";import{_ as b}from"./uni-icons.3b49d363.js";import{r as g}from"./uni-app.es.32d1ec75.js";import{_ as D}from"./_plugin-vue_export-helper.1b428a4d.js";const C=D({name:"uni-stat-select",mixins:[_.mixinDatacom||{}],props:{localdata:{type:Array,default:()=>[]},value:{type:[String,Number],default:""},modelValue:{type:[String,Number],default:""},label:{type:String,default:""},placeholder:{type:String,default:"请选择"},emptyTips:{type:String,default:"无选项"},clear:{type:Boolean,default:!0},defItem:{type:Number,default:0},disabled:{type:Boolean,default:!1},format:{type:String,default:""}},data:()=>({showSelector:!1,current:"",mixinDatacomResData:[],apps:[],channels:[],cacheKey:"uni-data-select-lastSelectedValue"}),created(){this.debounceGet=this.debounce((()=>{this.query()}),300),this.collection&&!this.localdata.length&&this.debounceGet()},computed:{typePlaceholder(){const e=this.placeholder,t={"opendb-stat-app-versions":"版本","opendb-app-channels":"渠道","opendb-app-list":"应用"}[this.collection];return t?e+t:e},valueCom(){return this.modelValue}},watch:{localdata:{immediate:!0,handler(e,t){Array.isArray(e)&&t!==e&&(this.mixinDatacomResData=e)}},valueCom(e,t){this.initDefVal()},mixinDatacomResData:{immediate:!0,handler(e){e.length&&this.initDefVal()}}},methods:{debounce(e,t=100){let a=null;return function(...s){a&&clearTimeout(a),a=setTimeout((()=>{e.apply(this,s)}),t)}},query(){this.mixinDatacomEasyGet()},onMixinDatacomPropsChange(){this.collection&&this.debounceGet()},initDefVal(){let e="";if(!this.valueCom&&0!==this.valueCom||this.isDisabled(this.valueCom)){let t;if(this.collection&&(t=this.getCache()),t||0===t)e=t;else{let t="";this.defItem>0&&this.defItem<=this.mixinDatacomResData.length&&(t=this.mixinDatacomResData[this.defItem-1].value),e=t}(e||0===e)&&this.emit(e)}else e=this.valueCom;const t=this.mixinDatacomResData.find((t=>t.value===e));this.current=t?this.formatItemName(t):""},isDisabled(e){let t=!1;return this.mixinDatacomResData.forEach((a=>{a.value===e&&(t=a.disable)})),t},clearVal(){this.emit(""),this.collection&&this.removeCache()},change(e){e.disable||(this.showSelector=!1,this.current=this.formatItemName(e),this.emit(e.value))},emit(e){this.$emit("change",e),this.$emit("input",e),this.$emit("update:modelValue",e),this.collection&&this.setCache(e)},toggleSelector(){this.disabled||(this.showSelector=!this.showSelector)},formatItemName(e){let{text:t,value:a,channel_code:s}=e;if(s=s?`(${s})`:"",this.format){let t="";t=this.format;for(let a in e)t=t.replace(new RegExp(`{${a}}`,"g"),e[a]);return t}return this.collection.indexOf("app-list")>0?`${t}(${a})`:t||`未命名${s}`},getLoadData(){return this.mixinDatacomResData},getCurrentCacheKey(){return this.collection},getCache(t=this.getCurrentCacheKey()){return(e(this.cacheKey)||{})[t]},setCache(a,s=this.getCurrentCacheKey()){let l=e(this.cacheKey)||{};l[s]=a,t(this.cacheKey,l)},removeCache(a=this.getCurrentCacheKey()){let s=e(this.cacheKey)||{};delete s[a],t(this.cacheKey,s)}}},[["render",function(e,t,_,D,C,x){const k=p,v=g(a("uni-icons"),b),S=f,w=y;return s(),l(k,{class:"uni-stat__select"},{default:i((()=>[_.label?(s(),c("span",{key:0,class:"uni-label-text hide-on-phone"},o(_.label+":"),1)):n("",!0),r(k,{class:u(["uni-stat-box",{"uni-stat__actived":C.current}])},{default:i((()=>[r(k,{class:u(["uni-select",{"uni-select--disabled":_.disabled}])},{default:i((()=>[r(k,{class:"uni-select__input-box",onClick:x.toggleSelector},{default:i((()=>[C.current?(s(),l(k,{key:0,class:"uni-select__input-text"},{default:i((()=>[h(o(C.current),1)])),_:1})):(s(),l(k,{key:1,class:"uni-select__input-text uni-select__input-placeholder"},{default:i((()=>[h(o(x.typePlaceholder),1)])),_:1})),C.current&&_.clear&&!_.disabled?(s(),l(v,{key:2,type:"clear",color:"#c0c4cc",size:"24",onClick:x.clearVal},null,8,["onClick"])):(s(),l(v,{key:3,type:C.showSelector?"top":"bottom",size:"14",color:"#999"},null,8,["type"]))])),_:1},8,["onClick"]),C.showSelector?(s(),l(k,{key:0,class:"uni-select--mask",onClick:x.toggleSelector},null,8,["onClick"])):n("",!0),C.showSelector?(s(),l(k,{key:1,class:"uni-select__selector"},{default:i((()=>[r(k,{class:"uni-popper__arrow"}),r(w,{"scroll-y":"true",class:"uni-select__selector-scroll"},{default:i((()=>[0===C.mixinDatacomResData.length?(s(),l(k,{key:0,class:"uni-select__selector-empty"},{default:i((()=>[r(S,null,{default:i((()=>[h(o(_.emptyTips),1)])),_:1})])),_:1})):(s(!0),c(m,{key:1},d(C.mixinDatacomResData,((e,t)=>(s(),l(k,{class:"uni-select__selector-item",key:t,onClick:t=>x.change(e)},{default:i((()=>[r(S,{class:u({"uni-select__selector__disabled":e.disable})},{default:i((()=>[h(o(x.formatItemName(e)),1)])),_:2},1032,["class"])])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})):n("",!0)])),_:1},8,["class"])])),_:1},8,["class"])])),_:1})}],["__scopeId","data-v-d3404cad"]]);export{C as _};