2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
|
|
import{g as e,s as t,f as a,o as l,i as s,w as i,q as o,v as n,p as c,l as r,H as d,m as h,x as m,j as u,F as p,t as g,k as f,I as A,Q as b,c as y,h as k,n as w,b as C,r as D,u as x}from"./index-CjgLNey7.js";import{_}from"./uni-icons.Cd3ohCN4.js";import{r as v}from"./uni-app.es.Lj9F4eZi.js";import{t as S}from"./uni-cloud.es.BWcFvug7.js";import{_ as B}from"./_plugin-vue_export-helper.BCo6x5W8.js";import{_ as E}from"./uni-load-more.CzXabmC7.js";import{h as I}from"./headerHeight.CXXE7c94.js";import{n as L}from"./nav.BPYuvgkN.js";const M=B({name:"uni-data-select",mixins:[S.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:""},placement:{type:String,default:"bottom"}},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},textShow(){let e=this.current;return e.length>10?e.slice(0,25)+"...":e},getOffsetByPlacement(){switch(this.placement){case"top":return"bottom:calc(100% + 12px);";case"bottom":return"top:calc(100% + 12px);"}}},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(...l){a&&clearTimeout(a),a=setTimeout((()=>{e.apply(this,l)}),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("input",e),this.$emit("update:modelValue",e),this.$emit("change",e),this.collection&&this.setCache(e)},toggleSelector(){this.disabled||(this.showSelector=!this.showSelector)},formatItemName(e){let{text:t,value:a,channel_code:l}=e;if(l=l?`(${l})`:"",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||`未命名${l}`},getLoadData(){return this.mixinDatacomResData},getCurrentCacheKey(){return this.collection},getCache(t=this.getCurrentCacheKey()){return(e(this.cacheKey)||{})[t]},setCache(a,l=this.getCurrentCacheKey()){let s=e(this.cacheKey)||{};s[l]=a,t(this.cacheKey,s)},removeCache(a=this.getCurrentCacheKey()){let l=e(this.cacheKey)||{};delete l[a],t(this.cacheKey,l)}}},[["render",function(e,t,y,k,w,C){const D=f,x=v(a("uni-icons"),_),S=A,B=b;return l(),s(D,{class:"uni-stat__select"},{default:i((()=>[y.label?(l(),o("span",{key:0,class:"uni-label-text hide-on-phone"},n(y.label+":"),1)):c("",!0),r(D,{class:d(["uni-stat-box",{"uni-stat__actived":w.current}])},{default:i((()=>[r(D,{class:d(["uni-select",{"uni-select--disabled":y.disabled}])},{default:i((()=>[r(D,{class:"uni-select__input-box",onClick:C.toggleSelector},{default:i
|