2 lines
2.4 KiB
JavaScript
2 lines
2.4 KiB
JavaScript
"use strict";const e=require("../../../common/vendor.js"),t={name:"fui-collapse-item",emits:["change"],props:{index:{type:[Number,String],default:0},disabled:{type:Boolean,default:!1},background:{type:String,default:"#fff"},animation:{type:Boolean,default:!0},open:{type:Boolean,default:!1},isBorder:{type:Boolean,default:!0},borderColor:{type:String,default:""},borderLeft:{type:[Number,String],default:0},arrow:{type:Boolean,default:!0},arrowColor:{type:String,default:"#B2B2B2"},arrowRight:{type:[Number,String],default:24},contentBg:{type:String,default:"#fff"},marginTop:{type:[Number,String],default:0},marginBottom:{type:[Number,String],default:0}},data:()=>({isOpen:!1,isHeight:null,height:0,elId:`fui_${Math.ceil(1e6*Math.random()).toString(36)}`}),watch:{open(e){this.isOpen=e}},updated(e){this.$nextTick((()=>{setTimeout((()=>{this.init()}),50)}))},created(){this.collapse=this.getCollapse(),this.collapse&&-1===this.collapse.children.indexOf(this)&&this.collapse.children.push(this),this.oldHeight=0},beforeUnmount(){this.uninstall()},mounted(){this.$nextTick((()=>{setTimeout((()=>{this.init(),this.isOpen=this.open}),50)}))},methods:{init(){this.getCollapseHeight()},uninstall(){this.collapse&&this.collapse.children.forEach(((e,t)=>{e===this&&this.collapse.children.splice(t,1)}))},onClick(e){this.disabled||(this.isOpen=e,this.collapse?this.collapse.collapseChange(this,e,this.index):this.$emit("change",{index:this.index,isOpen:e}))},getCollapseHeight(t=0){e.index.createSelectorQuery().in(this).select(`#${this.elId}`).fields({size:!0},(e=>{if(!(t>=10)){if(!e)return t++,void this.getCollapseHeight(t);this.height=e.height,this.isHeight=!0}})).exec()},getNvueHeight(){dom.getComponentRect(this.$refs.fui_collapse__el,(e=>{e&&e.result&&e.size&&(this.height=e.size.height,this.isHeight=!0)}))},getCollapse(e="fui-collapse"){let t=this.$parent,i=t.$options.name;for(;i!==e;){if(t=t.$parent,!t)return!1;i=t.$options.name}return t}}};const i=e._export_sfc(t,[["render",function(t,i,o,s,n,r){return e.e({a:o.arrow},o.arrow?{b:o.arrowColor,c:n.isOpen?"":1,d:n.isOpen?1:"",e:o.animation?1:"",f:o.arrowRight+"rpx"}:{},{g:o.isBorder},o.isBorder?{h:o.borderColor,i:o.borderLeft+"rpx",j:o.borderColor?"":1}:{},{k:e.o((e=>r.onClick(!n.isOpen))),l:o.disabled?1:"",m:o.background,n:n.elId,o:n.isHeight?1:"",p:o.animation?1:"",q:(n.isOpen?n.height:0)+"px",r:o.contentBg,s:o.marginTop+"rpx",t:o.marginBottom+"rpx"})}],["__scopeId","data-v-a15f8ec6"]]);wx.createComponent(i);
|