调整分包,完成隐私协议(样式待优化)
This commit is contained in:
98
childPackage/miniprogram_npm/towxml/img/img.js
Normal file
98
childPackage/miniprogram_npm/towxml/img/img.js
Normal file
@@ -0,0 +1,98 @@
|
||||
const config = require('../config');
|
||||
Component({
|
||||
options: {
|
||||
styleIsolation: 'shared'
|
||||
},
|
||||
properties: {
|
||||
data: {
|
||||
type: Object,
|
||||
value: {}
|
||||
}
|
||||
},
|
||||
data: {
|
||||
attr:{
|
||||
src:'',
|
||||
class:'',
|
||||
style:''
|
||||
},
|
||||
size:{
|
||||
w:0,
|
||||
h:0
|
||||
},
|
||||
styleObj:{}
|
||||
},
|
||||
lifetimes:{
|
||||
attached:function(){
|
||||
const _ts = this;
|
||||
let dataAttr = this.data.data.attrs;
|
||||
|
||||
// 将图片大小处理到对象中
|
||||
if(dataAttr.width){
|
||||
_ts.data.size.w = +dataAttr.width / config.dpr;
|
||||
};
|
||||
|
||||
if(dataAttr.height){
|
||||
_ts.data.size.h = +dataAttr.height / config.dpr;
|
||||
};
|
||||
|
||||
// 将样式合并到样式对象中
|
||||
if(dataAttr.style){
|
||||
let re = /;\s{0,}/ig;
|
||||
dataAttr.style = dataAttr.style.replace(re,';');
|
||||
dataAttr.style.split(';').forEach(item => {
|
||||
let itemArr = item.split(':');
|
||||
if(/^(width|height)$/i.test(itemArr[0])){
|
||||
let num = parseInt(itemArr[1]) || 0,
|
||||
key = '';
|
||||
// itemArr[1] = num / config.dpr + itemArr[1].replace(num,'');
|
||||
switch (itemArr[0].toLocaleLowerCase()) {
|
||||
case 'width':
|
||||
key = 'w';
|
||||
break;
|
||||
case 'height':
|
||||
key = 'h';
|
||||
break;
|
||||
};
|
||||
_ts.data.size[key] = num / config.dpr;
|
||||
}else{
|
||||
_ts.data.styleObj[itemArr[0]] = itemArr[1];
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
// 设置公式图片
|
||||
_ts.setData({
|
||||
attrs:{
|
||||
src:dataAttr.src,
|
||||
class:dataAttr.class,
|
||||
style:_ts.setStyle(_ts.data.styleObj)
|
||||
},
|
||||
size:_ts.data.size
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 设置图片样式
|
||||
setStyle:function(o){
|
||||
let str = ``;
|
||||
for(let key in o){
|
||||
str += `${key}:${o[key]};`;
|
||||
};
|
||||
return str;
|
||||
},
|
||||
|
||||
// 图片加载完成设置图片大小
|
||||
load:function(e){
|
||||
const _ts = this;
|
||||
|
||||
if(!_ts.data.size.w || !_ts.data.size.h){
|
||||
_ts.setData({
|
||||
size:{
|
||||
w:e.detail.width / config.dpr,
|
||||
h:e.detail.height / config.dpr
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
})
|
3
childPackage/miniprogram_npm/towxml/img/img.json
Normal file
3
childPackage/miniprogram_npm/towxml/img/img.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"component": true
|
||||
}
|
1
childPackage/miniprogram_npm/towxml/img/img.wxml
Normal file
1
childPackage/miniprogram_npm/towxml/img/img.wxml
Normal file
@@ -0,0 +1 @@
|
||||
<image class="{{attrs.class}}" lazy-load="true" mode="{{attrs.mode || 'widthFix'}}" src="{{attrs.src}}" style="{{attrs.style}} width:{{size.w}}px;height:{{size.h}}px;" bindload="load"></image>
|
0
childPackage/miniprogram_npm/towxml/img/img.wxss
Normal file
0
childPackage/miniprogram_npm/towxml/img/img.wxss
Normal file
Reference in New Issue
Block a user