1?"loop "+(t.loop-i)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",o)}t.loop=1}function dn(e,t){const n=t.stack,o=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[o],r=t.fv,a=t.pv,i=n.pop(),l=t.z2[t.contours[i]];let c=l;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",i);const u=a.distance(s,s,!1,!0);do{c!==s&&r.setRelative(c,c,u,a),c=c.nextPointOnContour}while(c!==l)}function gn(e,t){const n=t.stack,o=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[o],r=t.fv,a=t.pv,i=n.pop();let l,c;switch(exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",i),i){case 0:l=t.tZone;break;case 1:l=t.gZone;break;default:throw new Error("Invalid zone")}const u=a.distance(s,s,!1,!0),p=l.length-2;for(let e=0;e",i),t.stack.push(Math.round(64*i))}function Sn(e,t){const n=t.stack,o=n.pop(),s=t.fv,r=t.pv,a=t.ppem,i=t.deltaBase+16*(e-1),l=t.deltaShift,c=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",o,n);for(let e=0;e>4)!==a)continue;let u=(15&o)-8;u>=0&&u++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",e,"by",u*l);const p=c[e];s.setRelative(p,p,u*l,r)}}function xn(e,t){const n=t.stack,o=n.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),n.push(64*t.round(o/64))}function Un(e,t){const n=t.stack,o=n.pop(),s=t.ppem,r=t.deltaBase+16*(e-1),a=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",o,n);for(let e=0;e>4)!==s)continue;let i=(15&o)-8;i>=0&&i++;const l=i*a;exports.DEBUG&&console.log(t.step,"DELTACFIX",e,"by",l),t.cvt[e]+=l}}function Tn(e,t){const n=t.stack,o=n.pop(),s=n.pop(),r=t.z2[o],a=t.z1[s];let i,l;exports.DEBUG&&console.log("SDPVTL["+e+"]",o,s),e?(i=r.y-a.y,l=a.x-r.x):(i=a.x-r.x,l=a.y-r.y),t.dpv=$t(i,l)}function En(e,t){const n=t.stack,o=t.prog;let s=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(let t=0;t=0?1:-1,m=Math.abs(m),e&&(v=r.cvt[i],o&&Math.abs(m-v)":"_")+(o?"R":"_")+(0===s?"Gr":1===s?"Bl":2===s?"Wh":"")+"]",e?i+"("+r.cvt[i]+","+v+")":"",l,"(d =",g,"->",y*m,")"),r.rp1=r.rp0,r.rp2=l,t&&(r.rp0=l)}function kn(e){(e=e||{}).empty||(Gt(e.familyName,"When creating a new Font object, familyName is required."),Gt(e.styleName,"When creating a new Font object, styleName is required."),Gt(e.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),Gt(e.ascender,"When creating a new Font object, ascender is required."),Gt(e.descender,"When creating a new Font object, descender is required."),Gt(e.descender<0,"Descender should be negative (e.g. -512)."),this.names={fontFamily:{en:e.familyName||" "},fontSubfamily:{en:e.styleName||" "},fullName:{en:e.fullName||e.familyName+" "+e.styleName},postScriptName:{en:e.postScriptName||e.familyName+e.styleName},designer:{en:e.designer||" "},designerURL:{en:e.designerURL||" "},manufacturer:{en:e.manufacturer||" "},manufacturerURL:{en:e.manufacturerURL||" "},license:{en:e.license||" "},licenseURL:{en:e.licenseURL||" "},version:{en:e.version||"Version 0.1"},description:{en:e.description||" "},copyright:{en:e.copyright||" "},trademark:{en:e.trademark||" "}},this.unitsPerEm=e.unitsPerEm||1e3,this.ascender=e.ascender,this.descender=e.descender,this.createdTimestamp=e.createdTimestamp,this.tables={os2:{usWeightClass:e.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:e.widthClass||this.usWidthClasses.MEDIUM,fsSelection:e.fsSelection||this.fsSelectionValues.REGULAR}}),this.supported=!0,this.glyphs=new Le.GlyphSet(this,e.glyphs||[]),this.encoding=new ye(this),this.substitution=new Lt(this),this.tables=this.tables||{},Object.defineProperty(this,"hinting",{get:function(){return this._hinting?this._hinting:"truetype"===this.outlinesFormat?this._hinting=new Ht(this):void 0}})}function Rn(e,t){const n=JSON.stringify(e);let o=256;for(let e in t){let s=parseInt(e);if(s&&!(s<256)){if(JSON.stringify(t[e])===n)return s;o<=s&&(o=s+1)}}return t[o]=e,o}function Dn(e,t,n){const o=Rn(t.name,n);return[{name:"tag_"+e,type:"TAG",value:t.tag},{name:"minValue_"+e,type:"FIXED",value:t.minValue<<16},{name:"defaultValue_"+e,type:"FIXED",value:t.defaultValue<<16},{name:"maxValue_"+e,type:"FIXED",value:t.maxValue<<16},{name:"flags_"+e,type:"USHORT",value:0},{name:"nameID_"+e,type:"USHORT",value:o}]}function Cn(e,t,n){const o={},s=new ue.Parser(e,t);return o.tag=s.parseTag(),o.minValue=s.parseFixed(),o.defaultValue=s.parseFixed(),o.maxValue=s.parseFixed(),s.skip("uShort",1),o.name=n[s.parseUShort()]||{},o}function Ln(e,t,n,o){const s=[{name:"nameID_"+e,type:"USHORT",value:Rn(t.name,o)},{name:"flags_"+e,type:"USHORT",value:0}];for(let o=0;o2)return;const n=this.font;let o=this._prepState;if(!o||o.ppem!==t){let e=this._fpgmState;if(!e){tn.prototype=en,e=this._fpgmState=new tn("fpgm",n.tables.fpgm),e.funcs=[],e.font=n,exports.DEBUG&&(console.log("---EXEC FPGM---"),e.step=-1);try{Pt(e)}catch(e){return console.log("Hinting error in FPGM:"+e),void(this._errorState=3)}}tn.prototype=e,o=this._prepState=new tn("prep",n.tables.prep),o.ppem=t;const s=n.tables.cvt;if(s){const e=o.cvt=new Array(s.length),r=t/n.unitsPerEm;for(let t=0;t1))try{return At(e,o)}catch(e){return this._errorState<1&&(console.log("Hinting error:"+e),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}},At=function(e,t){const n=t.ppem/t.font.unitsPerEm,o=n;let s,r,a,i=e.components;if(tn.prototype=t,i){const l=t.font;r=[],s=[];for(let e=0;e1?"loop "+(e.loop-n)+": ":"")+"SHPIX[]",a,s),o.setRelative(i,i,s),o.touch(i)}e.loop=1},function(e){const t=e.stack,n=e.rp1,o=e.rp2;let s=e.loop;const r=e.z0[n],a=e.z1[o],i=e.fv,l=e.dpv,c=e.z2;for(;s--;){const u=t.pop(),p=c[u];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"IP[]",u,n,"<->",o),i.interpolate(p,r,a,l),i.touch(p)}e.loop=1},mn.bind(void 0,0),mn.bind(void 0,1),function(e){const t=e.stack,n=e.rp0,o=e.z0[n];let s=e.loop;const r=e.fv,a=e.pv,i=e.z1;for(;s--;){const n=t.pop(),l=i[n];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"ALIGNRP[]",n),r.setRelative(l,o,0,a),r.touch(l)}e.loop=1},function(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=_t},yn.bind(void 0,0),yn.bind(void 0,1),function(e){const t=e.prog;let n=e.ip;const o=e.stack,s=t[++n];exports.DEBUG&&console.log(e.step,"NPUSHB[]",s);for(let e=0;en?1:0)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",n,o),t.push(o>=n?1:0)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",n,o),t.push(n===o?1:0)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",n,o),t.push(n!==o?1:0)},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",n),t.push(Math.trunc(n)%2?1:0)},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",n),t.push(Math.trunc(n)%2?0:1)},function(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(on(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))},function(e){exports.DEBUG&&console.log(e.step,"EIF[]")},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",n,o),t.push(n&&o?1:0)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",n,o),t.push(n||o?1:0)},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",n),t.push(n?0:1)},Sn.bind(void 0,1),function(e){const t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDB[]",t),e.deltaBase=t},function(e){const t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDS[]",t),e.deltaShift=Math.pow(.5,t)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",n,o),t.push(o+n)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",n,o),t.push(o-n)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",n,o),t.push(64*o/n)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",n,o),t.push(o*n/64)},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",n),t.push(Math.abs(n))},function(e){const t=e.stack;let n=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",n),t.push(-n)},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",n),t.push(64*Math.floor(n/64))},function(e){const t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",n),t.push(64*Math.ceil(n/64))},xn.bind(void 0,0),xn.bind(void 0,1),xn.bind(void 0,2),xn.bind(void 0,3),void 0,void 0,void 0,void 0,function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",n,o),e.cvt[o]=n*e.ppem/e.font.unitsPerEm},Sn.bind(void 0,2),Sn.bind(void 0,3),Un.bind(void 0,1),Un.bind(void 0,2),Un.bind(void 0,3),function(e){let t,n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SROUND[]",n),e.round=jt,192&n){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=t,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*t},function(e){let t,n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"S45ROUND[]",n),e.round=jt,192&n){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=t,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*t},void 0,void 0,function(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=zt},void 0,function(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=Xt},function(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=Vt},un,un,void 0,void 0,void 0,void 0,void 0,function(e){const t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)},Tn.bind(void 0,0),Tn.bind(void 0,1),function(e){const t=e.stack,n=t.pop();let o=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",n),1&n&&(o=35),32&n&&(o|=4096),t.push(o)},void 0,function(e){const t=e.stack,n=t.pop(),o=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(o),t.push(n),t.push(s)},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",n,o),t.push(Math.max(o,n))},function(e){const t=e.stack,n=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",n,o),t.push(Math.min(o,n))},function(e){const t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)},function(e){const t=e.stack.pop();let n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,n),t){case 1:return void(e.inhibitGridFit=!!n);case 2:return void(e.ignoreCvt=!!n);default:throw new Error("invalid INSTCTRL[] selector")}},void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,En.bind(void 0,1),En.bind(void 0,2),En.bind(void 0,3),En.bind(void 0,4),En.bind(void 0,5),En.bind(void 0,6),En.bind(void 0,7),En.bind(void 0,8),On.bind(void 0,1),On.bind(void 0,2),On.bind(void 0,3),On.bind(void 0,4),On.bind(void 0,5),On.bind(void 0,6),On.bind(void 0,7),On.bind(void 0,8),wn.bind(void 0,0,0,0,0,0),wn.bind(void 0,0,0,0,0,1),wn.bind(void 0,0,0,0,0,2),wn.bind(void 0,0,0,0,0,3),wn.bind(void 0,0,0,0,1,0),wn.bind(void 0,0,0,0,1,1),wn.bind(void 0,0,0,0,1,2),wn.bind(void 0,0,0,0,1,3),wn.bind(void 0,0,0,1,0,0),wn.bind(void 0,0,0,1,0,1),wn.bind(void 0,0,0,1,0,2),wn.bind(void 0,0,0,1,0,3),wn.bind(void 0,0,0,1,1,0),wn.bind(void 0,0,0,1,1,1),wn.bind(void 0,0,0,1,1,2),wn.bind(void 0,0,0,1,1,3),wn.bind(void 0,0,1,0,0,0),wn.bind(void 0,0,1,0,0,1),wn.bind(void 0,0,1,0,0,2),wn.bind(void 0,0,1,0,0,3),wn.bind(void 0,0,1,0,1,0),wn.bind(void 0,0,1,0,1,1),wn.bind(void 0,0,1,0,1,2),wn.bind(void 0,0,1,0,1,3),wn.bind(void 0,0,1,1,0,0),wn.bind(void 0,0,1,1,0,1),wn.bind(void 0,0,1,1,0,2),wn.bind(void 0,0,1,1,0,3),wn.bind(void 0,0,1,1,1,0),wn.bind(void 0,0,1,1,1,1),wn.bind(void 0,0,1,1,1,2),wn.bind(void 0,0,1,1,1,3),wn.bind(void 0,1,0,0,0,0),wn.bind(void 0,1,0,0,0,1),wn.bind(void 0,1,0,0,0,2),wn.bind(void 0,1,0,0,0,3),wn.bind(void 0,1,0,0,1,0),wn.bind(void 0,1,0,0,1,1),wn.bind(void 0,1,0,0,1,2),wn.bind(void 0,1,0,0,1,3),wn.bind(void 0,1,0,1,0,0),wn.bind(void 0,1,0,1,0,1),wn.bind(void 0,1,0,1,0,2),wn.bind(void 0,1,0,1,0,3),wn.bind(void 0,1,0,1,1,0),wn.bind(void 0,1,0,1,1,1),wn.bind(void 0,1,0,1,1,2),wn.bind(void 0,1,0,1,1,3),wn.bind(void 0,1,1,0,0,0),wn.bind(void 0,1,1,0,0,1),wn.bind(void 0,1,1,0,0,2),wn.bind(void 0,1,1,0,0,3),wn.bind(void 0,1,1,0,1,0),wn.bind(void 0,1,1,0,1,1),wn.bind(void 0,1,1,0,1,2),wn.bind(void 0,1,1,0,1,3),wn.bind(void 0,1,1,1,0,0),wn.bind(void 0,1,1,1,0,1),wn.bind(void 0,1,1,1,0,2),wn.bind(void 0,1,1,1,0,3),wn.bind(void 0,1,1,1,1,0),wn.bind(void 0,1,1,1,1,1),wn.bind(void 0,1,1,1,1,2),wn.bind(void 0,1,1,1,1,3)],kn.prototype.hasChar=function(e){return null!==this.encoding.charToGlyphIndex(e)},kn.prototype.charToGlyphIndex=function(e){return this.encoding.charToGlyphIndex(e)},kn.prototype.charToGlyph=function(e){const t=this.charToGlyphIndex(e);let n=this.glyphs.get(t);return n||(n=this.glyphs.get(0)),n},kn.prototype.stringToGlyphs=function(e,t){t=t||this.defaultRenderOptions;const n=[];for(let t=0;t>1;e1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");const n=255&e.parseUShort();if(e.skip("uShort"),0===n){const n=e.parseUShort();e.skip("uShort",3);for(let o=0;o{const t=Vn.loadSync(e);Zn.font=t,Zn.ascender=t.ascender,Zn.descender=t.descender}};const $n=Qn.options,Kn=function(e,t){return Math.round(e+Math.random()*(t-e))};const Jn=function(e,t){return{text:(e+t).toString(),equation:e+"+"+t}},eo=function(e,t){return{text:(e-t).toString(),equation:e+"-"+t}};function to(e,t,n){return 6*(n=(n+1)%1)<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}var no={int:Kn,greyColor:function(e,t){const n=Kn(e=e||1,t=t||9).toString(16);return`#${n}${n}${n}`},captchaText:function(e){"number"==typeof e&&(e={size:e});const t=(e=e||{}).size||4,n=e.ignoreChars||"";let o=-1,s="",r=e.charPreset||$n.charPreset;n&&(r=function(e,t){return e.split("").filter(e=>-1===t.indexOf(e))}(r,n));const a=r.length-1;for(;++o>16,o=t>>8&255,s=255&t,r=Math.max(n,o,s),a=Math.min(n,o,s);return(r+a)/510}(e):1;let s,r;o>=.5?(s=Math.round(100*o)-45,r=Math.round(100*o)-25):(s=Math.round(100*o)+25,r=Math.round(100*o)+45);const a=Kn(s,r)/100,i=a<.5?a*(a+n):a+n-a*n,l=2*a-i,c=Math.floor(255*to(l,i,t+1/3)),u=Math.floor(255*to(l,i,t));return"#"+(Math.floor(255*to(l,i,t-1/3))|u<<8|c<<16|1<<24).toString(16).slice(1)}};const oo=Qn.options,so=function(e,t){e=e||no.captchaText();const n=(t=Object.assign({},oo,t)).width,o=t.height,s=t.background||t.backgroundColor;s&&(t.color=!0);const r=s?``:"",a=[].concat(function(e,t,n){const o=n.color,s=[],r=n.inverse?7:1,a=n.inverse?15:9;let i=-1;for(;++i`)}return s}(n,o,t)).concat(function(e,t,n,o,s){const r=e.length,a=(t-2)/(r+1),i=o.inverse?10:0,c=o.inverse?14:4;let u=-1;const p=[],h=s||o.color?no.color(o.background):no.greyColor(i,c);for(;++u`)}return p}(e,n,o,t)).sort(()=>Math.random()-.5).join("");return`${``};var ro=so,ao=no.captchaText,io=function(e){const t=e.text||no.captchaText(e);return{text:t,data:so(t,e)}},lo=function(e){const t=no.mathExpr(e.mathMin,e.mathMax,e.mathOperator);return{text:t.text,data:so(t.equation,e)}},co=oo,uo=Qn.loadFont;ro.randomText=ao,ro.create=io,ro.createMathExpr=lo,ro.options=co,ro.loadFont=uo;var po=ro;const ho=Object.prototype.toString;function fo(e){return"[object Object]"===ho.call(e)}function go(){"development"===process.env.NODE_ENV&&console.log(...arguments)}const mo=async function(){};function yo(e){return mo.constructor===e.constructor?async function(){const t=await e.apply(this,arguments);return fo(t)&&(t.msg&&(t.message=t.msg,t.errMsg=t.msg),t.errCode=t.code),t}:function(){const t=e.apply(this,arguments);return fo(t)&&(t.msg&&(t.message=t.msg,t.errMsg=t.msg),t.errCode=t.code),t}}const vo=uniCloud.database().collection("opendb-verify-codes");class bo{async setVerifyCode({deviceId:e,code:t,expiresDate:n,scene:o}){if(!e)return{code:10101,msg:"deviceId不可为空"};if(!t)return{code:10102,msg:"验证码不可为空"};n||(n=180);const s=Date.now(),r={deviceId:e,scene:o,code:t.toLocaleLowerCase(),state:0,ip:__ctx__.CLIENTIP,created_date:s,expired_date:s+1e3*n};return go("addRes",await vo.add(r)),{code:0,deviceId:e}}async verifyCode({deviceId:e,code:t,scene:n}){if(!e)return{code:10101,msg:"deviceId不可为空"};if(!t)return{code:10102,msg:"验证码不可为空"};const o=Date.now(),s={deviceId:e,scene:n,code:t.toLocaleLowerCase(),state:0},r=await vo.where(s).orderBy("created_date","desc").limit(1).get();if(go("verifyRecord:",r),r&&r.data&&r.data.length>0){const e=r.data[0];if(e.expired_date{e.scene&&delete e.scene,this.pluginConfig.scene[n]=Object.assign({},t,e[n])})}}}{constructor(){super(),this.DEVICEID2opts={}}mergeConfig(e){const t=fo(this.pluginConfig.scene)?this.pluginConfig.scene[e.scene]:e.scene;return Object.assign({},fo(t)?t:this.pluginConfig,e)}async create(e={}){if(!e.scene)throw new Error("scene验证码场景不可为空");e=this.mergeConfig(e);let{scene:t,expiresDate:n,deviceId:o,...s}=e;if(o=o||__ctx__.DEVICEID,!o)throw new Error("deviceId不可为空");const r=new bo;try{const{text:a,base64:i}=function(e={}){const{uniPlatform:t=""}=e;let n;n=e.mathExpr?po.createMathExpr(e):po.create(e);let o="data:image/svg+xml;utf8,"+n.data.replace(/#/g,"%23");return(!t||"string"==typeof t&&-1===t.indexOf("mp-"))&&(o=o.replace(/"/g,"'").replace(//g,"%3E")),{text:n.text,base64:o}}(s),l=await r.setVerifyCode({deviceId:o,code:a,expiresDate:n,scene:t});return l.code>0?{...l,code:10001}:(this.DEVICEID2opts[o]=e,{code:0,msg:"验证码获取成功",captchaBase64:i})}catch(e){return{code:10001,msg:"验证码生成失败:"+e.message}}}async verify({deviceId:e,captcha:t,scene:n}){if(!(e=e||__ctx__.DEVICEID))throw new Error("deviceId不可为空");if(!n)throw new Error("scene验证码场景不可为空");const o=new bo;try{const s=await o.verifyCode({deviceId:e,code:t,scene:n});return s.code>0?s:{code:0,msg:"验证码通过"}}catch(e){return{code:10002,msg:"验证码校验失败:"+e.message}}}async refresh(e={}){let{scene:t,expiresDate:n,deviceId:o,...s}=e;if(o=o||__ctx__.DEVICEID,!o)throw new Error("deviceId不可为空");if(!t)throw new Error("scene验证码场景不可为空");const r=await vo.where({deviceId:o,scene:t}).orderBy("created_date","desc").limit(1).get();if(r&&r.data&&r.data.length>0){const e=r.data[0];await vo.doc(e._id).update({state:2}),Object.keys(s).length>0&&(this.DEVICEID2opts[o]=Object.assign({},this.DEVICEID2opts[o],s));let a={};try{a=await this.create(Object.assign({},this.DEVICEID2opts[o],{deviceId:o,scene:t,expiresDate:n}))}catch(e){return{code:50403,msg:e.message}}return a.code>0?{...a,code:10003}:{code:0,msg:"验证码刷新成功",captchaBase64:a.captchaBase64}}return{code:10003,msg:`验证码刷新失败:无此设备在 ${t} 场景信息,请重新获取`}}}const Uo=new bo;Object.keys(Uo).forEach(e=>{xo.prototype[e]=yo(Uo[e])});const To=new xo,Eo=new Proxy(To,{get(e,t){if(t in e)return"function"==typeof e[t]?yo(e[t]).bind(Eo):e[t]}});module.exports=Eo;
diff --git a/uni_modules/uni-captcha/uniCloud/cloudfunctions/common/uni-captcha/package.json b/uni_modules/uni-captcha/uniCloud/cloudfunctions/common/uni-captcha/package.json
index f5e9cd9e34135384a20303bcffc85863fd3bbc65..2bb07ec8c0d0da397669bd1854637b12cf4d7bc9 100644
--- a/uni_modules/uni-captcha/uniCloud/cloudfunctions/common/uni-captcha/package.json
+++ b/uni_modules/uni-captcha/uniCloud/cloudfunctions/common/uni-captcha/package.json
@@ -1,6 +1,6 @@
{
"name": "uni-captcha",
- "version": "0.1.1",
+ "version": "0.2.2",
"description": "uni-captcha",
"main": "index.js",
"homepage": "https://ext.dcloud.net.cn/plugin?id=4048",
@@ -9,5 +9,8 @@
"url": "git+https://gitee.com/dcloud/uni-captcha"
},
"author": "DCloud",
- "license": "Apache-2.0"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "uni-config-center": "file:../../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center"
+ }
}
\ No newline at end of file
diff --git a/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/index.obj.js b/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/index.obj.js
new file mode 100644
index 0000000000000000000000000000000000000000..09b36ac9ecaef591b568dfcd6518f3f788267898
--- /dev/null
+++ b/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/index.obj.js
@@ -0,0 +1,32 @@
+// 开发文档: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
+//导入验证码公共模块
+const uniCaptcha = require('uni-captcha')
+//获取数据库对象
+const db = uniCloud.database();
+//获取数据表opendb-verify-codes对象
+const verifyCodes = db.collection('opendb-verify-codes')
+module.exports = {
+ async getImageCaptcha({
+ scene
+ }) {
+ //获取设备id
+ let {
+ deviceId,
+ platform
+ } = this.getClientInfo();
+ //根据:设备id、场景值、状态,查找记录是否存在
+ let res = await verifyCodes.where({
+ scene,
+ deviceId,
+ state: 0
+ }).limit(1).get()
+ //如果已存在则调用刷新接口,反之调用插件接口
+ let action = res.data.length ? 'refresh' : 'create'
+ //执行并返回结果
+ //导入配置,配置优先级说明:此处配置 > uni-config-center
+ return await uniCaptcha[action]({
+ scene, //来源客户端传递,表示:使用场景值,用于防止不同功能的验证码混用
+ uniPlatform: platform
+ })
+ }
+}
diff --git a/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/package.json b/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..b5188c3ff1d1c0f44665bd437fa7017dd20cf866
--- /dev/null
+++ b/uni_modules/uni-captcha/uniCloud/cloudfunctions/uni-captcha-co/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "uni-captcha-co",
+ "dependencies": {
+ "uni-captcha": "file:../common/uni-captcha",
+ "uni-config-center": "file:../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center"
+ },
+ "extensions": {
+ "uni-cloud-jql": {}
+ }
+}
\ No newline at end of file
diff --git a/uniCloud-aliyun/database/opendb-verify-codes.schema.json b/uni_modules/uni-captcha/uniCloud/database/opendb-verify-codes.schema.json
similarity index 72%
rename from uniCloud-aliyun/database/opendb-verify-codes.schema.json
rename to uni_modules/uni-captcha/uniCloud/database/opendb-verify-codes.schema.json
index 8f86479d5508ed71158be14fe685a9e0c7de7b83..1f3be590712e9eb110bd753c8392d784be9aad6d 100644
--- a/uniCloud-aliyun/database/opendb-verify-codes.schema.json
+++ b/uni_modules/uni-captcha/uniCloud/database/opendb-verify-codes.schema.json
@@ -1,41 +1,45 @@
-{
- "bsonType": "object",
- "required": [],
- "properties": {
- "_id": {
- "description": "ID,系统自动生成"
- },
- "mobile": {
- "bsonType": "string",
- "description": "手机号码"
- },
- "email": {
- "bsonType": "string",
- "description": "邮箱"
- },
- "code": {
- "bsonType": "string",
- "description": "验证码"
- },
- "type": {
- "bsonType": "string",
- "description": "验证类型:login, bind, unbind, pay"
- },
- "state": {
- "bsonType": "int",
- "description": "验证状态:0 未验证、1 已验证、2 已作废"
- },
- "ip": {
- "bsonType": "string",
- "description": "请求时客户端IP地址"
- },
- "created_at": {
- "bsonType": "timestamp",
- "description": "创建时间"
- },
- "expired_at": {
- "bsonType": "timestamp",
- "description": "过期时间"
- }
- }
-}
+{
+ "bsonType": "object",
+ "properties": {
+ "_id": {
+ "description": "ID,系统自动生成"
+ },
+ "code": {
+ "bsonType": "string",
+ "description": "验证码"
+ },
+ "create_date": {
+ "bsonType": "timestamp",
+ "description": "创建时间"
+ },
+ "device_uuid": {
+ "bsonType": "string",
+ "description": "设备UUID,常用于图片验证码"
+ },
+ "email": {
+ "bsonType": "string",
+ "description": "邮箱"
+ },
+ "expired_date": {
+ "bsonType": "timestamp",
+ "description": "过期时间"
+ },
+ "ip": {
+ "bsonType": "string",
+ "description": "请求时客户端IP地址"
+ },
+ "mobile": {
+ "bsonType": "string",
+ "description": "手机号码"
+ },
+ "scene": {
+ "bsonType": "string",
+ "description": "使用验证码的场景,如:login, bind, unbind, pay"
+ },
+ "state": {
+ "bsonType": "int",
+ "description": "验证状态:0 未验证、1 已验证、2 已作废"
+ }
+ },
+ "required": []
+}
\ No newline at end of file
diff --git a/uni_modules/uni-card/changelog.md b/uni_modules/uni-card/changelog.md
index c84f1ace5d86ce7b0105d5ff6228c52d2423ee25..c3cd8c45ace0d5838a3f1c1eff8ea0fc349afb9c 100644
--- a/uni_modules/uni-card/changelog.md
+++ b/uni_modules/uni-card/changelog.md
@@ -1,12 +1,26 @@
+## 1.3.1(2021-12-20)
+- 修复 在vue页面下略缩图显示不正常的bug
+## 1.3.0(2021-11-19)
+- 重构插槽的用法 ,header 替换为 title
+- 新增 actions 插槽
+- 新增 cover 封面图属性和插槽
+- 新增 padding 内容默认内边距离
+- 新增 margin 卡片默认外边距离
+- 新增 spacing 卡片默认内边距
+- 新增 shadow 卡片阴影属性
+- 取消 mode 属性,可使用组合插槽代替
+- 取消 note 属性 ,使用actions插槽代替
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card)
## 1.2.1(2021-07-30)
- 优化 vue3下事件警告的问题
-## 1.2.0(2021-07-13)
-- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
-## 1.1.8(2021-07-01)
-- 优化 图文卡片无图片加载时,提供占位图标
-- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持)
-- 修复 thumbnail 不存在仍然占位的 bug
-## 1.1.7(2021-05-12)
-- 新增 组件示例地址
-## 1.1.6(2021-02-04)
-- 调整为uni_modules目录规范
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8(2021-07-01)
+- 优化 图文卡片无图片加载时,提供占位图标
+- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持)
+- 修复 thumbnail 不存在仍然占位的 bug
+## 1.1.7(2021-05-12)
+- 新增 组件示例地址
+## 1.1.6(2021-02-04)
+- 调整为uni_modules目录规范
diff --git a/uni_modules/uni-card/components/uni-card/uni-card.vue b/uni_modules/uni-card/components/uni-card/uni-card.vue
index 7458b777f1368d1802b2b3d77103e5a742149639..045c082a7933d7832c1f1694eda421162dac9594 100644
--- a/uni_modules/uni-card/components/uni-card/uni-card.vue
+++ b/uni_modules/uni-card/components/uni-card/uni-card.vue
@@ -1,58 +1,36 @@
-
-
-
-
@@ -63,22 +41,22 @@
* @description 卡片视图组件
* @tutorial https://ext.dcloud.net.cn/plugin?id=22
* @property {String} title 标题文字
- * @property {String} subTitle 副标题(仅仅mode=title下生效)
+ * @property {String} subTitle 副标题
+ * @property {Number} padding 内容内边距
+ * @property {Number} margin 卡片外边距
+ * @property {Number} spacing 卡片内边距
* @property {String} extra 标题额外信息
- * @property {String} note 底部信息
+ * @property {String} cover 封面图(本地路径需要引入)
* @property {String} thumbnail 标题左侧缩略图
- * @property {String} mode = [basic|style|title] 卡片模式
- * @value basic 基础卡片
- * @value style 图文卡片
- * @value title 标题卡片
- * @property {Boolean} isFull = [true | false] 卡片内容是否通栏,为 true 时将去除padding值
- * @property {Boolean} isShadow = [true | false] 卡片内容是否开启阴影
+ * @property {Boolean} is-full = [true | false] 卡片内容是否通栏,为 true 时将去除padding值
+ * @property {Boolean} is-shadow = [true | false] 卡片内容是否开启阴影
+ * @property {String} shadow 卡片阴影
+ * @property {Boolean} border 卡片边框
* @event {Function} click 点击 Card 触发事件
- * @example 内容主体,可自定义内容及样式
*/
export default {
name: 'UniCard',
- emits:['click'],
+ emits: ['click'],
props: {
title: {
type: String,
@@ -88,11 +66,23 @@
type: String,
default: ''
},
+ padding: {
+ type: String,
+ default: '10px'
+ },
+ margin: {
+ type: String,
+ default: '15px'
+ },
+ spacing: {
+ type: String,
+ default: '0 10px'
+ },
extra: {
type: String,
default: ''
},
- note: {
+ cover: {
type: String,
default: ''
},
@@ -100,10 +90,6 @@
type: String,
default: ''
},
- mode: {
- type: String,
- default: 'basic'
- },
isFull: {
// 内容区域是否通栏
type: Boolean,
@@ -111,300 +97,157 @@
},
isShadow: {
// 是否开启阴影
- type: [Boolean, String],
- default: false
+ type: Boolean,
+ default: true
+ },
+ shadow: {
+ type: String,
+ default: '0px 0px 3px 1px rgba(0, 0, 0, 0.08)'
+ },
+ border: {
+ type: Boolean,
+ default: true
}
},
methods: {
- onClick() {
- this.$emit('click')
+ onClick(type) {
+ this.$emit('click', type)
}
}
}
-
diff --git a/uni_modules/uni-card/package.json b/uni_modules/uni-card/package.json
index 79533648372c7bd339e04d86911da660ce844ea0..f16224de2b73a95a4f4708243b9b5818ba53ff3d 100644
--- a/uni_modules/uni-card/package.json
+++ b/uni_modules/uni-card/package.json
@@ -1,85 +1,90 @@
-{
- "id": "uni-card",
- "displayName": "uni-card 卡片",
- "version": "1.2.1",
- "description": "Card 组件,提供常见的卡片样式。",
- "keywords": [
- "uni-ui",
- "uniui",
- "card",
- "",
- "卡片"
-],
- "repository": "https://github.com/dcloudio/uni-ui",
- "engines": {
- "HBuilderX": ""
- },
- "directories": {
- "example": "../../temps/example_temps"
- },
- "dcloudext": {
- "category": [
- "前端组件",
- "通用组件"
- ],
- "sale": {
- "regular": {
- "price": "0.00"
- },
- "sourcecode": {
- "price": "0.00"
- }
- },
- "contact": {
- "qq": ""
- },
- "declaration": {
- "ads": "无",
- "data": "无",
- "permissions": "无"
- },
- "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
- },
- "uni_modules": {
- "dependencies": [
- "uni-icons"
- ],
- "encrypt": [],
- "platforms": {
- "cloud": {
- "tcb": "y",
- "aliyun": "y"
- },
- "client": {
- "App": {
- "app-vue": "y",
- "app-nvue": "y"
- },
- "H5-mobile": {
- "Safari": "y",
- "Android Browser": "y",
- "微信浏览器(Android)": "y",
- "QQ浏览器(Android)": "y"
- },
- "H5-pc": {
- "Chrome": "y",
- "IE": "y",
- "Edge": "y",
- "Firefox": "y",
- "Safari": "y"
- },
- "小程序": {
- "微信": "y",
- "阿里": "y",
- "百度": "y",
- "字节跳动": "y",
- "QQ": "y"
- },
- "快应用": {
- "华为": "u",
- "联盟": "u"
- }
- }
- }
- }
-}
+{
+ "id": "uni-card",
+ "displayName": "uni-card 卡片",
+ "version": "1.3.1",
+ "description": "Card 组件,提供常见的卡片样式。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "card",
+ "",
+ "卡片"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-icons",
+ "uni-scss"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/uni_modules/uni-card/readme.md b/uni_modules/uni-card/readme.md
index 6f72c837d0df7a5022e84c11257a47e79992f12a..7434e71d2897720b157a92ee90c6f51a7d2bbf98 100644
--- a/uni_modules/uni-card/readme.md
+++ b/uni_modules/uni-card/readme.md
@@ -4,101 +4,9 @@
> **组件名:uni-card**
> 代码块: `uCard`
-
卡片视图组件。
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-> **注意事项**
-> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
-> - 因为平台兼容问题 , 目前 APP-NVUE 安卓平台下不支持阴影
-
-
-### 基本用法
-
-在 ``template`` 中使用组件
-
-```html
-
-
- 内容主体,可自定义内容及样式
-
-
-
-
-
-
-
-
-
- uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可编译到iOS、Android、H5、以及各种小程序等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。
-
-
-
-
- uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可编译到iOS、Android、H5、以及各种小程序等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。
-
-
-
-
- 默认内容
-
-
-
-
-```
-
-## API
-
-### Card Props
-
-|属性名 |类型 |默认值 |说明 |
-|:-: |:-: |:-: |:-: |
-|title |String |- |标题文字 |
-|extra |String |- |标题额外信息 |
-|note |String |- |底部信息 |
-|thumbnail |String |- |标题左侧缩略图,支持网络图片,本地图片,本图片需要传入一个绝对路径,如:`/static/xxx.png` |
-|mode |String |basic |卡片模式 ,可选值, basic:基础卡片 ;style :图文卡片 ; title :标题卡片 |
-|isFull |Boolean|false |卡片内容是否通栏,为true时将去除padding值 |
-|isShadow |Boolean|false |卡片内容是否开启阴影 |
-
-
-### Card Events
-
-|事件称名 |事件说明 |返回参数 |
-|:-: |:-: |:-: |
-|@click |点击 Card 触发事件 |- |
-
-
-### Card Slots
-
-|插槽称名 |说明 |
-|:-: |:-: |
-|header |卡片头部插槽( 图文卡片 mode="style" 时,不支持)|
-|footer |卡片底部插槽 |
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
-## 组件示例
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/card/card](https://hellouniapp.dcloud.net.cn/pages/extUI/card/card)
\ No newline at end of file
diff --git a/uni_modules/uni-collapse/changelog.md b/uni_modules/uni-collapse/changelog.md
index c0dba72e0ede34c4b8922c78684c63281578b02a..292e4c79f34d8291119fc98bedf97c40b12dd015 100644
--- a/uni_modules/uni-collapse/changelog.md
+++ b/uni_modules/uni-collapse/changelog.md
@@ -1,27 +1,36 @@
+## 1.4.3(2022-01-25)
+- 修复 初始化的时候 ,open 属性失效的bug
+## 1.4.2(2022-01-21)
+- 修复 微信小程序resize后组件收起的bug
+## 1.4.1(2021-11-22)
+- 修复 vue3中个别scss变量无法找到的问题
+## 1.4.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse)
## 1.3.3(2021-08-17)
- 优化 show-arrow 属性默认为true
-## 1.3.2(2021-08-17)
-- 新增 show-arrow 属性,控制是否显示右侧箭头
-## 1.3.1(2021-07-30)
-- 优化 vue3下小程序事件警告的问题
-## 1.3.0(2021-07-30)
-- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
-## 1.2.2(2021-07-21)
-- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug
-## 1.2.1(2021-07-21)
-- 优化 组件示例
-## 1.2.0(2021-07-21)
-- 新增 组件折叠动画
-- 新增 value\v-model 属性 ,动态修改面板折叠状态
-- 新增 title 插槽 ,可定义面板标题
-- 新增 border 属性 ,显示隐藏面板内容分隔线
-- 新增 title-border 属性 ,显示隐藏面板标题分隔线
-- 修复 resize 方法失效的Bug
-- 修复 change 事件返回参数不正确的Bug
-- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法
-## 1.1.7(2021-05-12)
-- 新增 组件示例地址
-## 1.1.6(2021-02-05)
-- 优化 组件引用关系,通过uni_modules引用组件
-## 1.1.5(2021-02-05)
+## 1.3.2(2021-08-17)
+- 新增 show-arrow 属性,控制是否显示右侧箭头
+## 1.3.1(2021-07-30)
+- 优化 vue3下小程序事件警告的问题
+## 1.3.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.2.2(2021-07-21)
+- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug
+## 1.2.1(2021-07-21)
+- 优化 组件示例
+## 1.2.0(2021-07-21)
+- 新增 组件折叠动画
+- 新增 value\v-model 属性 ,动态修改面板折叠状态
+- 新增 title 插槽 ,可定义面板标题
+- 新增 border 属性 ,显示隐藏面板内容分隔线
+- 新增 title-border 属性 ,显示隐藏面板标题分隔线
+- 修复 resize 方法失效的Bug
+- 修复 change 事件返回参数不正确的Bug
+- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法
+## 1.1.7(2021-05-12)
+- 新增 组件示例地址
+## 1.1.6(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.1.5(2021-02-05)
- 调整为uni_modules目录规范
\ No newline at end of file
diff --git a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue
index 32d63739cc75aaad1d35b30c869434441e7e5049..b2aad1fd0bbe4190e674506216f35613b54c9e74 100644
--- a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue
+++ b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue
@@ -11,11 +11,10 @@
-
-
+
{
+ this.$nextTick(() => {
this.init(true)
})
},
- created(){
+ created() {
this.collapse = this.getCollapse()
this.oldHeight = 0
- },
- // #ifndef VUE3
- // TODO vue2
- destroyed() {
- if (this.__isUnmounted) return
- this.uninstall()
- },
+ this.onClick(this.open, 'init')
+ },
+ // #ifndef VUE3
+ // TODO vue2
+ destroyed() {
+ if (this.__isUnmounted) return
+ this.uninstall()
+ },
// #endif
- // #ifdef VUE3
- // TODO vue3
- unmounted() {
- this.__isUnmounted = true
- this.uninstall()
- },
+ // #ifdef VUE3
+ // TODO vue3
+ unmounted() {
+ this.__isUnmounted = true
+ this.uninstall()
+ },
// #endif
mounted() {
if (!this.collapse) return
@@ -181,14 +181,14 @@
})
}
},
- onClick(isOpen,type) {
+ onClick(isOpen, type) {
if (this.disabled) return
this.isOpen = isOpen
if (this.isOpen && this.collapse) {
this.collapse.setAccordion(this)
}
- if(type !== 'init'){
- this.collapse.onChange(isOpen,this)
+ if (type !== 'init') {
+ this.collapse.onChange(isOpen, this)
}
},
getCollapseHeight(type, index = 0) {
@@ -213,7 +213,7 @@
// #endif
this.isheight = true
if (type) return
- this.onClick(this.open,'init')
+ this.onClick(this.isOpen, 'init')
})
.exec()
},
@@ -228,7 +228,7 @@
// #endif
this.isheight = true
if (type) return
- this.onClick(this.open,'init')
+ this.onClick(this.open, 'init')
}
})
},
@@ -249,7 +249,7 @@
}
-
+
diff --git a/uni_modules/uni-collapse/package.json b/uni_modules/uni-collapse/package.json
index 59731d5b9abd39d5058be5eb78ad0562b8a7a7fb..65349cf9f7056e882abba6128c0dfc66fc244a91 100644
--- a/uni_modules/uni-collapse/package.json
+++ b/uni_modules/uni-collapse/package.json
@@ -1,88 +1,89 @@
-{
- "id": "uni-collapse",
- "displayName": "uni-collapse 折叠面板",
- "version": "1.3.3",
- "description": "Collapse 组件,可以折叠 / 展开的内容区域。",
- "keywords": [
- "uni-ui",
- "折叠",
- "折叠面板",
- "手风琴"
-],
- "repository": "https://github.com/dcloudio/uni-ui",
- "engines": {
- "HBuilderX": ""
- },
- "directories": {
- "example": "../../temps/example_temps"
- },
- "dcloudext": {
- "category": [
- "前端组件",
- "通用组件"
- ],
- "sale": {
- "regular": {
- "price": "0.00"
- },
- "sourcecode": {
- "price": "0.00"
- }
- },
- "contact": {
- "qq": ""
- },
- "declaration": {
- "ads": "无",
- "data": "无",
- "permissions": "无"
- },
- "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
- },
- "uni_modules": {
- "dependencies": [
- "uni-icons"
- ],
- "encrypt": [],
- "platforms": {
- "cloud": {
- "tcb": "y",
- "aliyun": "y"
- },
- "client": {
- "App": {
- "app-vue": "y",
- "app-nvue": "y"
- },
- "H5-mobile": {
- "Safari": "y",
- "Android Browser": "y",
- "微信浏览器(Android)": "y",
- "QQ浏览器(Android)": "y"
- },
- "H5-pc": {
- "Chrome": "y",
- "IE": "y",
- "Edge": "y",
- "Firefox": "y",
- "Safari": "y"
- },
- "小程序": {
- "微信": "y",
- "阿里": "y",
- "百度": "y",
- "字节跳动": "y",
- "QQ": "y"
- },
- "快应用": {
- "华为": "u",
- "联盟": "u"
- },
- "Vue": {
- "vue2": "y",
- "vue3": "u"
- }
- }
- }
- }
-}
\ No newline at end of file
+{
+ "id": "uni-collapse",
+ "displayName": "uni-collapse 折叠面板",
+ "version": "1.4.3",
+ "description": "Collapse 组件,可以折叠 / 展开的内容区域。",
+ "keywords": [
+ "uni-ui",
+ "折叠",
+ "折叠面板",
+ "手风琴"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/uni_modules/uni-collapse/readme.md b/uni_modules/uni-collapse/readme.md
index 12e872fb1d6f51bdb6fb8259043b1fa3c04b47a2..bc758ebc4f3eee187ee494de5745fe33b69bd3e0 100644
--- a/uni_modules/uni-collapse/readme.md
+++ b/uni_modules/uni-collapse/readme.md
@@ -8,269 +8,5 @@
折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。
-> **注意事项**
-> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
-> - 组件需要依赖 `sass` 插件 ,请自行手动安装
-> - `App` 端默认关闭组件动画 ,因为 `height` 动画开销比较大,会导致页面卡顿,请酌情使用动画
-> - 如在使用组件过程从发现卡顿严重,请尝试停用组件动画,问题原因如上
-> - 在小程序端组件内容发生变化,需要手动调用 resize() 方法,手动更新几点信息,避免出现内容错位
-> - 如需自定义组件默认边框颜色等,请使用插槽自定义内容并合理使用 `border ` 和 `title-border` 属性
-> - 折叠面板仅支持嵌套使用,请勿单独使用
-> - 组件支持 nvue ,需要在 `manifest.json > app-plus` 节点下配置 `"nvueStyleCompiler" : "uni-app"`
-> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
-
-
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-
-### 基本用法
-
-使用 `title` 属性指定面板显示内容
-
-使用 `open` 属性默认打开当前面板
-
-使用 `disabled` 属性禁用面板
-
-
-```html
-
-
- 折叠内容
-
-
- 折叠内容
-
-
- 折叠内容
-
-
-```
-
-### 手风琴效果
-
-使用 `accordion` 属性,可以仅打开一个面板并关闭其他已经打开的面板,效果类似手风琴
-
-设置 `accordion` 属性时,`open` 属性则生效在最后一个组件
-
-```html
-
-
- 折叠内容
-
-
- 折叠内容
-
-
- 折叠内容
-
-
-```
-
-### 动态设置折叠面板打开状态
-
-使用 `v-model` 属性,动态设置面板的显示状态
-
-使用 `name` 属性设置每个面板的唯一标识,如不设置使用默认索引,从字符串 `"0"` 开始记数
-
-**注意**
-
-- 如果 `accordion` 属性为 `true` 则 `v-model` 类型为 `String`
-- 如果 `accordion` 属性为 `false` 则 `v-model` 类型为 `Array`
-- 请注意 `v-model` 属性与 `open` 属性请勿一起使用 ,建议只使用 `v-model`
-
-```html
-
-
- 折叠内容
-
-
- 折叠内容
-
-
- 折叠内容
-
-
-```
-
-```javascript
-export default {
- data(){
- return {
- value:['key1','key2'],
- // 如果设置了 accordion 属性,则使用 string 类型
- // value:'key1'
- }
- }
-}
-```
-
-### 使用动画
-
-使用 `show-animation` 属性开启或关闭面板折叠动画,默认动画开启
-
-**注意**
-
-- `App` 端默认关闭组件动画 ,因为 height 动画开销比较大,会导致页面卡顿,请酌情使用动画,如出现明显卡顿,尝试关闭动画
-
-
-```html
-
-
- 折叠内容
-
-
- 折叠内容
-
-
- 折叠内容
-
-
-```
-
-### 配置图片
-
-使用 `thumb` 配置图片地址, 可在面板左侧显示一个图片
-
-如需显示更多内容,如图标等,请见下方自定义插槽的说明
-
-```html
-
-
-
- 折叠内容主体,可自定义内容及样式
-
-
-
-```
-
-### 自定义插槽
-
-如果需要自定义面板显示,可以使用 `title` 插槽达成完全自定义。下面是一个使用 `uni-list` 的列表示例,需要引入 `uni-list` 组件
-
-```html
-
-
-
-
-
-
-
-
-
-
- 折叠内容主体,可自定义内容及样式
-
-
-
-```
-
-**注意**
-
-- 在折叠面板组件中使用list时,在 App-Nvue 下请勿单独使用 uni-list-item,会导致组件无法正常显示,其他平台不做限制
-- 在默认插槽里使用 uni-list 组件与上方示例一样,直接写在默认插槽里即可
-
-## API
-
-### Collapse Props
-
-|属性名|类型|默认值|说明|
-|:-:|:-:|:-:|:-:|
-|value/v-model|String/Array|-|当前激活面板改变时触发(如果是手风琴模式,参数类型为string,否则为array)|
-|accordion|Boolean|false|是否开启手风琴效果 |
-
-### Collapse Event
-
-|事件称名|说明|返回值|
-|:-:|:-:|:-:|
-|@change|切换面板时触发 |切换面板时触发,如果是手风琴模式,返回类型为string,否则为array|
-
-### Collapse Methods
-
-|方法名称|说明|
-|:-:|:-:|
-|resize |更新当前列表高度|
-
-> **提示**
-> - resize 方法解决动态添加数据,带动画的折叠面板高度不更新的问题
-> - 需要在数据渲染完毕之后使用 `resize` 方法。推荐在 `this.$nextTick()` 中使用
-> - 当前只有小程序端需要调用此方法,H5\App 端已经做了处理,不需要手动更新高度
-> ```html
->
->
->
->
-> {{content}}
->
->
->
->
-> 折叠内容主体,这是一段比较长内容。默认折叠主要内容,只显示当前项标题。点击标题展开,才能看到这段文字。再次点击标题,折叠内容。
->
->
->
->
->
-> ```
-> ```javascript
-> export default {
-> data() {
-> return {
-> value:['0'],
-> content: '折叠内容主体,可自定义内容及样式,点击按钮修改内容使高度发生变化。',
-> }
-> },
-> methods: {
-> add() {
-> if (this.content.length > 35) {
-> this.content = '折叠内容主体,可自定义内容及样式,点击按钮修改内容使高度发生变化。'
-> } else {
-> this.content = '折叠内容主体,这是一段比较长内容。通过点击按钮修改后内容后,使组件高度发生变化,在次点击按钮恢复之前的内容和高度。'
-> }
-> // TODO 小程序中不支持自动更新 ,需要手动resize 更新组件高度
-> // #ifdef MP
-> this.$nextTick(() => {
-> this.$refs.collapse.resize()
-> })
-> // #endif
-> }
-> }
-> }
-> ```
-
-
-### CollapseItem Props
-
-|属性名|类型|默认值|说明|
-|:-:|:-:|:-:|:-:|
-|title|String|-|标题文字|
-|thumb|String|-|标题左侧缩略图|
-|disabled|Boolean|false|是否禁用|
-|open|Boolean|false|是否展开面板|
-|show-animation|Boolean|false|开启动画|
-|border|Boolean|true|折叠面板内容分隔线|
-|title-border|String|auto|折叠面板标题分隔线可选值见下方 **TitleBorder Params**|
-|show-arrow|Boolean|true|是否显示右侧箭头|
-
-#### TitleBorder Params
-
-|参数名|说明|
-|:-:|:-:|
-|auto|分隔线自动显示|
-|none|不显示分隔线|
-|show|一直显示分隔线|
-
-### Collapse Slots
-
-|插槽名|说明|
-|:-:| :-:|
-|default|默认插槽|
-|title|面板标题插槽,如使用此插槽禁用样式效果将失效|
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/collapse/collapse](https://hellouniapp.dcloud.net.cn/pages/extUI/collapse/collapse)
\ No newline at end of file
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/uni_modules/uni-combox/changelog.md b/uni_modules/uni-combox/changelog.md
index 77cedbd7cc4b66c4dcb920ca4026f69ca4cc363c..15256a2e79a8bb35f08b25e22338183edd47a09f 100644
--- a/uni_modules/uni-combox/changelog.md
+++ b/uni_modules/uni-combox/changelog.md
@@ -1,5 +1,10 @@
-## 0.1.0(2021-07-30)
-- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.1(2021-11-23)
+- 优化 label、label-width 属性
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox)
+## 0.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 0.0.6(2021-05-12)
- 新增 组件示例地址
## 0.0.5(2021-04-21)
diff --git a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue
index 3c201d3a2a178309089ddd3d9530dc6af9b06c02..98bf152e30457eb9c037d82859c69af4bdfb9fec 100644
--- a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue
+++ b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue
@@ -1,22 +1,26 @@
-
+
{{label}}
-
-
-
-
-
- {{emptyTips}}
-
-
- {{item}}
-
-
-
+
+
+
+
+
+
+
+
+ {{emptyTips}}
+
+
+ {{item}}
+
+
@@ -35,8 +39,12 @@
*/
export default {
name: 'uniCombox',
- emits:['input','update:modelValue'],
+ emits: ['input', 'update:modelValue'],
props: {
+ border: {
+ type: Boolean,
+ default: true
+ },
label: {
type: String,
default: ''
@@ -81,11 +89,9 @@
computed: {
labelStyle() {
if (this.labelWidth === 'auto') {
- return {}
- }
- return {
- width: this.labelWidth
+ return ""
}
+ return `width: ${this.labelWidth}`
},
filterCandidates() {
return this.candidates.filter((item) => {
@@ -144,10 +150,15 @@
diff --git a/uni_modules/uni-combox/package.json b/uni_modules/uni-combox/package.json
index 951a901598afdd9aac83954b290f6aca402fcbec..3fed6140a9c50c12004ce4f5f169e0d57d4efe1e 100644
--- a/uni_modules/uni-combox/package.json
+++ b/uni_modules/uni-combox/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-combox",
"displayName": "uni-combox 组合框",
- "version": "0.1.0",
+ "version": "1.0.1",
"description": "可以选择也可以输入的表单项 ",
"keywords": [
"uni-ui",
@@ -42,6 +42,7 @@
},
"uni_modules": {
"dependencies": [
+ "uni-scss",
"uni-icons"
],
"encrypt": [],
@@ -78,6 +79,10 @@
"快应用": {
"华为": "u",
"联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
}
}
}
diff --git a/uni_modules/uni-combox/readme.md b/uni_modules/uni-combox/readme.md
index edab4d409d273103f364792c5b891f9da57644bf..ffa2cc864bd3b883cede1b9243b114ecf608a275 100644
--- a/uni_modules/uni-combox/readme.md
+++ b/uni_modules/uni-combox/readme.md
@@ -7,46 +7,5 @@
组合框组件。
-### 平台兼容性说明
-
-**暂不支持nvue**
-
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-### 基本用法
-
-在 ``template`` 中使用组件
-```html
-
-```
-
-## API
-
-### Combox Props
-
-|属性名 |类型 |默认值 |说明 |
-|:-: |:-: |:-: |:-: |
-|label |String |- |标签文字 |
-|value |String |- |combox的值 |
-|labelWidth |String |auto |标签宽度,有单位字符串,如:'100px' |
-|placeholder|String |- |输入框占位符 |
-|candidates |Array/String |[] |候选字段 |
-|emptyTips |String |无匹配项 |无匹配项时的提示语 |
-
-### Combox Events
-
-|事件称名 |说明 |返回值 |
-|:-: |:-: |:-: |
-|@input |combox输入事件 |返回combox值|
-
-
-
-
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/combox/combox](https://hellouniapp.dcloud.net.cn/pages/extUI/combox/combox)
\ No newline at end of file
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/uni_modules/uni-countdown/changelog.md b/uni_modules/uni-countdown/changelog.md
index e551725b461a2e2b5e52dec681e5585e6705794a..f25beefca64d4da9c8617324d652dff3b2ab3f36 100644
--- a/uni_modules/uni-countdown/changelog.md
+++ b/uni_modules/uni-countdown/changelog.md
@@ -1,3 +1,13 @@
+## 1.2.2(2022-01-19)
+- 修复 在微信小程序中样式不生效的bug
+## 1.2.1(2022-01-18)
+- 新增 update 方法 ,在动态更新时间后,刷新组件
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown)
+## 1.1.3(2021-10-18)
+- 重构
+- 新增 font-size 支持自定义字体大小
## 1.1.2(2021-08-24)
- 新增 支持国际化
## 1.1.1(2021-07-30)
diff --git a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue
index 1f916bd5e8ac788c749b0f8882bd69fc7e31dd86..5f63365e338108d39d1b8b7e4cd98ae70df7faf8 100644
--- a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue
+++ b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue
@@ -1,25 +1,23 @@
- {{ d }}
- {{dayText}}
- {{ h }}
- {{ showColon ? ':' : hourText }}
- {{ i }}
- {{ showColon ? ':' : minuteText }}
- {{ s }}
- {{secondText}}
+ {{ d }}
+ {{dayText}}
+ {{ h }}
+ {{ showColon ? ':' : hourText }}
+ {{ i }}
+ {{ showColon ? ':' : minuteText }}
+ {{ s }}
+ {{secondText}}
+
diff --git a/uni_modules/uni-countdown/package.json b/uni_modules/uni-countdown/package.json
index 7960b62e9ff41de8976a2f4e3ba1d2ea00f06668..70e99ee7cf615d5a60a69c3dc9495cdf0d75de7b 100644
--- a/uni_modules/uni-countdown/package.json
+++ b/uni_modules/uni-countdown/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-countdown",
"displayName": "uni-countdown 倒计时",
- "version": "1.1.2",
+ "version": "1.2.2",
"description": "CountDown 倒计时组件",
"keywords": [
"uni-ui",
@@ -40,7 +40,7 @@
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules": {
- "dependencies": [],
+ "dependencies": ["uni-scss"],
"encrypt": [],
"platforms": {
"cloud": {
@@ -78,7 +78,7 @@
},
"Vue": {
"vue2": "y",
- "vue3": "u"
+ "vue3": "y"
}
}
}
diff --git a/uni_modules/uni-countdown/readme.md b/uni_modules/uni-countdown/readme.md
index 25c2a3a2756009668fe23208a4aab6048f088d10..4bcb1aa71694bf71daad7a822897d29485f5b74d 100644
--- a/uni_modules/uni-countdown/readme.md
+++ b/uni_modules/uni-countdown/readme.md
@@ -4,54 +4,7 @@
> **组件名:uni-countdown**
> 代码块: `uCountDown`
-
倒计时组件。
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-### 基本用法
-
-在 ``template`` 中使用组件
-
-```html
-
-
-
-
-
-
-
-
-```
-
-## API
-
-### Countdown Props
-
-|属性名 |类型 |默认值 |说明 |
-|:-: |:-: |:-: |:-: |
-|backgroundColor |String |#FFFFFF|背景色 |
-|color |String |#000000|文字颜色 |
-|splitorColor |String |#000000|分割符号颜色 |
-|day |Number |0 |天数 |
-|hour |Number |0 |小时 |
-|minute |Number |0 |分钟 |
-|second |Number |0 |秒 |
-|showDay |Boolean|true |是否显示天数 |
-|showColon |Boolean|true |是否以冒号为分隔符 |
-|start |Boolean|true |是否初始化组件后就开始倒计时|
-
-### Countdown Events
-
-|事件称名 |说明 |返回值 |
-|:-: |:-: |:-: |
-|@timeup|倒计时时间到触发事件 |- |
-
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/countdown/countdown](https://hellouniapp.dcloud.net.cn/pages/extUI/countdown/countdown)
\ No newline at end of file
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/uni_modules/uni-data-checkbox/changelog.md b/uni_modules/uni-data-checkbox/changelog.md
index 47e9f4c23dc963643fed6b72abda998b61656360..d8f420b9a6cfec68b7fd755ab516f26f8f2dfd39 100644
--- a/uni_modules/uni-data-checkbox/changelog.md
+++ b/uni_modules/uni-data-checkbox/changelog.md
@@ -1,36 +1,41 @@
+## 1.0.1(2022-02-07)
+- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox)
## 0.2.5(2021-08-23)
- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题
## 0.2.4(2021-08-17)
- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题
-## 0.2.3(2021-08-11)
-- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题
-## 0.2.2(2021-07-30)
-- 优化 在uni-forms组件,与label不对齐的问题
-## 0.2.1(2021-07-27)
-- 修复 单选默认值为0不能选中的Bug
-## 0.2.0(2021-07-13)
-- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
-## 0.1.11(2021-07-06)
-- 优化 删除无用日志
-## 0.1.10(2021-07-05)
-- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题
-## 0.1.9(2021-07-05)
-- 修复 nvue 黑框样式问题
-## 0.1.8(2021-06-28)
-- 修复 selectedTextColor 属性不生效的Bug
-## 0.1.7(2021-06-02)
-- 新增 map 属性,可以方便映射text/value属性
-## 0.1.6(2021-05-26)
-- 修复 不关联服务空间的情况下组件报错的Bug
-## 0.1.5(2021-05-12)
-- 新增 组件示例地址
-## 0.1.4(2021-04-09)
-- 修复 nvue 下无法选中的问题
-## 0.1.3(2021-03-22)
-- 新增 disabled属性
-## 0.1.2(2021-02-24)
-- 优化 默认颜色显示
-## 0.1.1(2021-02-24)
-- 新增 支持nvue
-## 0.1.0(2021-02-18)
-- “暂无数据”显示居中
+## 0.2.3(2021-08-11)
+- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题
+## 0.2.2(2021-07-30)
+- 优化 在uni-forms组件,与label不对齐的问题
+## 0.2.1(2021-07-27)
+- 修复 单选默认值为0不能选中的Bug
+## 0.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 0.1.11(2021-07-06)
+- 优化 删除无用日志
+## 0.1.10(2021-07-05)
+- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题
+## 0.1.9(2021-07-05)
+- 修复 nvue 黑框样式问题
+## 0.1.8(2021-06-28)
+- 修复 selectedTextColor 属性不生效的Bug
+## 0.1.7(2021-06-02)
+- 新增 map 属性,可以方便映射text/value属性
+## 0.1.6(2021-05-26)
+- 修复 不关联服务空间的情况下组件报错的Bug
+## 0.1.5(2021-05-12)
+- 新增 组件示例地址
+## 0.1.4(2021-04-09)
+- 修复 nvue 下无法选中的问题
+## 0.1.3(2021-03-22)
+- 新增 disabled属性
+## 0.1.2(2021-02-24)
+- 优化 默认颜色显示
+## 0.1.1(2021-02-24)
+- 新增 支持nvue
+## 0.1.0(2021-02-18)
+- “暂无数据”显示居中
diff --git a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue
index 7d3d52ece4b778e5521347aeaa737bb16aef5d90..300cb5fe6e7e31a60b2bc2c9a15b48dc15ac4315 100644
--- a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue
+++ b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue
@@ -65,15 +65,9 @@
* @event {Function} change 选中发生变化触发
*/
- // import clientdb from './clientdb.js'
export default {
name: 'uniDataChecklist',
- // mixins: [clientdb],
mixins: [uniCloud.mixinDatacom || {}],
- // model: {
- // prop: 'modelValue',
- // event: 'update:modelValue'
- // },
emits:['input','update:modelValue','change'],
props: {
mode: {
@@ -185,8 +179,8 @@
},
isLocal:true,
styles: {
- selectedColor: '#007aff',
- selectedTextColor: '#333',
+ selectedColor: '#2979ff',
+ selectedTextColor: '#666',
},
isTop:0
};
@@ -381,7 +375,7 @@
selectedArr.push(item[this.map.value])
}
})
- return this.dataValue.length > 0 ? this.dataValue : selectedArr
+ return this.dataValue && this.dataValue.length > 0 ? this.dataValue : selectedArr
},
/**
@@ -389,7 +383,7 @@
*/
setStyleBackgroud(item) {
let styles = {}
- let selectedColor = this.selectedColor?this.selectedColor:'#007aff'
+ let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
if (this.mode !== 'list') {
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
}
@@ -405,7 +399,7 @@
setStyleIcon(item) {
let styles = {}
let classles = ''
- let selectedColor = this.selectedColor?this.selectedColor:'#007aff'
+ let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
styles['background-color'] = item.selected?selectedColor:'#fff'
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
@@ -422,11 +416,11 @@
setStyleIconText(item) {
let styles = {}
let classles = ''
- let selectedColor = this.selectedColor?this.selectedColor:'#007aff'
+ let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
if (this.mode === 'tag') {
- styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#333'
+ styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
} else {
- styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:selectedColor):'#333'
+ styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:selectedColor):'#666'
}
if(!item.selected && item.disabled){
styles.color = '#999'
@@ -454,7 +448,7 @@
+
+ /* picker 弹出层通用的指示小三角, todo:扩展至上下左右方向定位 */
+ /* #ifndef APP-NVUE */
+ .uni-popper__arrow,
+ .uni-popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 6px;
+ }
+
+ .uni-popper__arrow {
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ top: -6px;
+ left: 10%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #EBEEF5;
+ }
+
+ .uni-popper__arrow::after {
+ content: " ";
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+ }
+ /* #endif */
+
diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
index 8efd48390ca4792c60746ce822591b964dcafa76..e1803010e673e1b6338bffd60de977af6f39923d 100644
--- a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
+++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
@@ -58,10 +58,10 @@
managedMode: {
type: Boolean,
default: false
- },
- ellipsis: {
- type: Boolean,
- default: true
+ },
+ ellipsis: {
+ type: Boolean,
+ default: true
}
},
data() {
@@ -177,7 +177,7 @@
}
}
-
+
diff --git a/uni_modules/uni-data-picker/package.json b/uni_modules/uni-data-picker/package.json
index 0647354f763695637a2be5949772fdb225ade9c0..d1af059e314d3646ab68969579428ce30bef8172 100644
--- a/uni_modules/uni-data-picker/package.json
+++ b/uni_modules/uni-data-picker/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-data-picker",
"displayName": "uni-data-picker 数据驱动的picker选择器",
- "version": "0.4.9",
+ "version": "1.0.4",
"description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景",
"keywords": [
"uni-ui",
@@ -44,7 +44,8 @@
"uni_modules": {
"dependencies": [
"uni-load-more",
- "uni-icons"
+ "uni-icons",
+ "uni-scss"
],
"encrypt": [],
"platforms": {
diff --git a/uni_modules/uni-data-picker/readme.md b/uni_modules/uni-data-picker/readme.md
index d466274845937e7252a71fbba177b8aff548e736..6cda22406a331df00284904e3955b0d2a2cb37e9 100644
--- a/uni_modules/uni-data-picker/readme.md
+++ b/uni_modules/uni-data-picker/readme.md
@@ -18,269 +18,5 @@
在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。
-
-> **注意事项**
-> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
-> - 组件需要依赖 `sass` 插件 ,请自行手动安装
-> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
-> - `` 内部包含了弹出层组件 `` 外层的布局可能会影响弹出层,[详情](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Common_CSS_Questions)
-
-
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`componets`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-## API
-
-### DataPicker Props
-
-|属性名 | 类型 | 可选值 | 默认值 | 说明|
-|:-: | :-: |:-: | :-: | :-: |
-|v-model |String/ Number | - | - |绑定数据|
-|spaceInfo |Object | | |服务空间配置,[详情](https://uniapp.dcloud.net.cn/uniCloud/init)|
-|localdata |Array | | |数据,[详情](https://gitee.com/dcloud/datacom)|
-|preload |Boolean | true/false | false |预加载数据|
-|readonly |Boolean | true/false | false |是否禁用|
-|clear-icon |Boolean | true/false | true |是否显示清除按钮|
-|ellipsis |Boolean | true/false | true |是否隐藏 tab 标签过长的文本|
-|step-searh |Boolean | true/false | true |分步查询时,点击节点请求数据|
-|step-search-url |String | | |分步查询时,动态加载云端数据url格式,`https://xxx.com/{parentValue}`(当前版本暂不支持,下版支持)|
-|self-field |String | | |分步查询时当前字段名称|
-|parent-field |String | | |分步查询时父字段名称|
-|collection |String | | |表名。支持输入多个表名,用 `,` 分割|
-|field |String | | |查询字段,多个字段用 `,` 分割|
-|where |String | | |查询条件,内容较多,另见jql文档:[详情](https://uniapp.dcloud.net.cn/uniCloud/uni-clientDB?id=jsquery)|
-|orderby |String | | |排序字段及正序倒叙设置|
-|popup-title |String | | |弹出层标题|
-|map |Object | |{text:'text',value:'value'}|字段映射,将text/value映射到数据中的其他字段|
-
-> ****
-> `collection/where/orderby` 和 `` 的用法一致,[详情](https://uniapp.dcloud.net.cn/uniCloud/unicloud-db)
-
-
-
-### DataPicker Events
-
-|事件称名 | 类型 | 说明 |
-|:-: | :-: | :-: |
-|@change |EventHandle | 选择完成时触发 {detail: {value}} |
-|@nodeclick |EventHandle | 节点被点击时触发 |
-|@stepsearch |EventHandle | 动态加载节点数据前触发(当前版本暂不支持,下版支持) |
-|@popupopened |EventHandle | 弹出层弹出时触发 |
-|@popupclosed |EventHandle | 弹出层关闭时触发 |
-
-### DataPicker Methods
-
-|方法称名 |说明|参数|
-|:-:|:-:|:-:|
-|show|打开弹出层|-|
-|hide|关闭弹出层|-|
-|clear|清除已选项|-|
-
-**使用方法:**
-```js
-this.$refs.picker.show() // `picker` 为组件的 ref 名称
-```
-
-### DataPicker Slots
-
-|名称|说明|
-|:-:|:-:|
-|default|覆盖显示框内容|
-
-
-### 基本用法
-
-#### 云端数据
-
-> **注意事项**
-> - 云端数据需要关联服务空间
-> - 下面示例中使用的表 `opendb-city-china`(中国城市省市区数据,含港澳台), 在[uniCloud控制台](https://unicloud.dcloud.net.cn/)使用opendb创建,[详情](https://gitee.com/dcloud/opendb)
-
-
-```html
-
-
-
-
-
-
-```
-
-```js
-
-
-```
-
-
-
-
-
-#### 本地数据
-
-```html
-
-
-
-
-
-```
-
-```js
-
-
-```
-
-
-#### 自定义solt
-
-```html
-
-
- {{error}}
-
-
-
- {{item.text}}
-
-
-
- 请选择
-
-
-```
-
-
-> **注意事项**
-> `localdata` 和 `collection` 同时配置时,`localdata` 优先
-
-
-
-#### 完整示例
-
-```html
-
-
-
-
-
-
-```
-
-```js
-
-
-```
-
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/data-picker/data-picker](https://hellouniapp.dcloud.net.cn/pages/extUI/data-picker/data-picker)
\ No newline at end of file
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/uni_modules/uni-dateformat/changelog.md b/uni_modules/uni-dateformat/changelog.md
index 7006d13a0854c4f636bef64670a4de41526789db..d551d7b88687002c2177d9bcba31b7ae2c3fca44 100644
--- a/uni_modules/uni-dateformat/changelog.md
+++ b/uni_modules/uni-dateformat/changelog.md
@@ -1,3 +1,6 @@
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
## 0.0.5(2021-07-08)
- 调整 默认时间不再是当前时间,而是显示'-'字符
## 0.0.4(2021-05-12)
diff --git a/uni_modules/uni-dateformat/package.json b/uni_modules/uni-dateformat/package.json
index 93023ad9aa63054e368339ae0407d1f97abf584d..99b9df35ac51f1426cd90d96cd764b9d7a3d3dfa 100644
--- a/uni_modules/uni-dateformat/package.json
+++ b/uni_modules/uni-dateformat/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-dateformat",
"displayName": "uni-dateformat 日期格式化",
- "version": "0.0.5",
+ "version": "1.0.0",
"description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式",
"keywords": [
"uni-ui",
@@ -42,7 +42,7 @@
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules": {
- "dependencies": [],
+ "dependencies": ["uni-scss"],
"encrypt": [],
"platforms": {
"cloud": {
@@ -77,6 +77,10 @@
"快应用": {
"华为": "y",
"联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
}
}
}
diff --git a/uni_modules/uni-dateformat/readme.md b/uni_modules/uni-dateformat/readme.md
index 7d2da4aa033e718269d8d3d662ce98b4e788c234..37ddb6ecef2875ce33687da3f815de4274d25914 100644
--- a/uni_modules/uni-dateformat/readme.md
+++ b/uni_modules/uni-dateformat/readme.md
@@ -7,71 +7,5 @@
日期格式化组件。
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-### 基本用法
-
-在 ``template`` 中使用组件
-
-```html
-
-
-
-
-
-```
-
-## API
-
-### Dateformat Props
-
-|属性名 |类型 |默认值 |说明 |
-|:-: |:-: |:-: |:-: |
-|date |Object|String|Number |Date.now() |要格式化的日期对象/日期字符串/时间戳 |
-|threshold |Array |[0, 0] |转化类型阈值 |
-|format |String |'yyyy/MM/dd hh:mm:ss' |格式字符串 |
-|locale |String |zh |格式化使用的语言,目前支持zh(中文)、en(英文) |
-
-
-#### Threshold Options
-
-格式化组件会对时间进行用户友好转化,threshold就是用来控制转化的时间阈值的。
-
-以`[60000, 3600000]`为例,将传入时间与当前时间差的绝对值记为delta(单位毫秒)
-
-- `delta < 60000`时,时间会被转化为“刚刚|马上”
-- `delta >= 60000 && delta < 3600000`时,时间会被转化为“xx分钟前|xx分钟后”,如果超过1小时会显示成“xx小时前|xx小时后”,以此类推
-- `delta >= 3600000`时,会按照format参数传入的格式进行格式化
-
-如果不想转化为“马上|刚刚”可以传入`:threshold = "[0,3600000]"`。默认值`[0,0]`既不会转换为“马上|刚刚”也不会转化为“xx分钟前|xx分钟后”
-
-#### Format Options
-
-format接收字符以及含义如下:
-
-|字符 |说明 |
-|:-: |:-: |
-|yyyy |四位年份 |
-|yy |两位年份 |
-|MM |两位月份(不足两位在前面补0) |
-|M |月份,不自动补0 |
-|dd |两位天(不足两位在前面补0) |
-|d |天,不自动补0 |
-|hh |两位小时(不足两位在前面补0) |
-|h |小时,不自动补0 |
-|mm |两位分钟(不足两位在前面补0) |
-|m |分钟,不自动补0 |
-|ss |两位秒(不足两位在前面补0) |
-|s |秒,不自动补0 |
-|SSS |三位毫秒(不足三位在前面补0) |
-|S |毫秒,不自动补0 |
-
-
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/dateformat/dateformat](https://hellouniapp.dcloud.net.cn/pages/extUI/dateformat/dateformat)
\ No newline at end of file
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md
index 4182e0c2148f2f6a623c69fddb1d06a778170689..9611a30e6268e12a6e6612f793243608c4e34acd 100644
--- a/uni_modules/uni-datetime-picker/changelog.md
+++ b/uni_modules/uni-datetime-picker/changelog.md
@@ -1,3 +1,16 @@
+## 2.2.4(2022-03-31)
+- 修复 Vue3 下动态赋值,单选类型未响应的 bug
+## 2.2.3(2022-03-28)
+- 修复 Vue3 下动态赋值未响应的 bug
+## 2.2.2(2021-12-10)
+- 修复 clear-icon 属性在小程序平台不生效的 bug
+## 2.2.1(2021-12-10)
+- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug
+## 2.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker)
+## 2.1.5(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
## 2.1.4(2021-09-10)
- 修复 hide-second 在移动端的 bug
- 修复 单选赋默认值时,赋值日期未高亮的 bug
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
index 7c9a093c898e3b039f65c3f67e1449d529b80685..1c95c68decb8f8deead93caf8f750f0c87721e43 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
@@ -6,7 +6,6 @@
'uni-calendar-item--after-checked-x':weeks.afterMultiple,
}" @click="choiceDate(weeks)" @mouseenter="handleMousemove(weeks)">
- {{weeks.date}}
+ {{weeks.date}}
+
@@ -61,7 +61,7 @@
}
-
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
index d04b9cf23ba1d2aec7082721506bdd3ac6d4f835..548849d84637cb25828dbc27e3dfe777f3e0d741 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
@@ -3,26 +3,30 @@
-
-