提交 9ea91b2e 编写于 作者: AndroidLeaves's avatar AndroidLeaves

update

上级 d2bf4089
......@@ -96,6 +96,10 @@ class Widget extends BaseWidget {
fruitNightColor: '#84B264',
baiTiaoDayColor: '#F62910',
baiTiaoNightColor: '#F62910',
packageFlowTitleDayColor: '#283149',
packageFlowTitleNightColor: '#283149',
packageFlowDescDayColor: '#494949',
packageFlowDescNightColor: '#494949',
};
userInfo = {
......@@ -171,6 +175,12 @@ class Widget extends BaseWidget {
baiTiaoDayColor = () => this.getValueByKey('baiTiaoDayColor');
baiTiaoNightColor = () => this.getValueByKey('baiTiaoNightColor');
packageFlowTitleDayColor = () => this.getValueByKey('packageFlowTitleDayColor');
packageFlowTitleNightColor = () => this.getValueByKey('packageFlowTitleNightColor');
packageFlowDescDayColor = () => this.getValueByKey('packageFlowDescDayColor');
packageFlowDescNightColor = () => this.getValueByKey('packageFlowDescNightColor');
constructor(scriptName) {
super(scriptName);
this.defaultConfig.refreshInterval = '60';
......@@ -416,6 +426,46 @@ class Widget extends BaseWidget {
}
]
},
{
items: [
{
name: 'packageFlowTitleDayColor',
label: '物流标题白天颜色',
type: 'color',
icon: { name: 'pencil.and.outline', color: '#3a86ff', },
needLoading: false,
default: this.packageFlowTitleDayColor(),
},
{
name: 'packageFlowTitleNightColor',
label: '物流标题深色颜色',
type: 'color',
icon: { name: 'square.and.pencil', color: '#3a0ca3', },
needLoading: false,
default: this.packageFlowTitleNightColor(),
}
]
},
{
items: [
{
name: 'packageFlowDescDayColor',
label: '物流明细白天颜色',
type: 'color',
icon: { name: 'pencil.and.outline', color: '#3a86ff', },
needLoading: false,
default: this.packageFlowDescDayColor(),
},
{
name: 'packageFlowDescNightColor',
label: '物流明细深色颜色',
type: 'color',
icon: { name: 'square.and.pencil', color: '#3a0ca3', },
needLoading: false,
default: this.packageFlowDescNightColor(),
}
]
},
]
},
],
......@@ -756,7 +806,7 @@ class Widget extends BaseWidget {
let image;
//================================
const baiTiaoSize = new Size(25, 25);
const baiTiaoColor = new Color('#F62910');
const baiTiaoColor = Color.dynamic(new Color(this.baiTiaoDayColor()), new Color(this.baiTiaoNightColor()));;
//================================
detailInfoStack.addSpacer(2);
let baiTiaoStack = detailInfoStack.addStack();
......@@ -802,8 +852,8 @@ class Widget extends BaseWidget {
let image;
//================================
const coverSize = new Size(23, 23);
const titleColor = new Color('#283149');
const descColor = new Color('#494949');
const titleColor = Color.dynamic(new Color(this.packageFlowTitleDayColor()), new Color(this.packageFlowTitleNightColor()));
const descColor = Color.dynamic(new Color(this.packageFlowDescDayColor()), new Color(this.packageFlowDescNightColor()));
//================================
stack.addSpacer(4);
let packageFlowStack = stack.addStack();
......@@ -813,7 +863,7 @@ class Widget extends BaseWidget {
//
image = await this.getImageByUrl(itemFlow.cover);
imgSpan = packageFlowStack.addImage(image);
imgSpan.imageOpacity = 0.6;
imgSpan.imageOpacity = 0.8;
imgSpan.imageSize = coverSize;
imgSpan.cornerRadius = 4;
//
......@@ -830,7 +880,7 @@ class Widget extends BaseWidget {
textSpan = infoStack.addText(` ${itemFlow.desc}`);
textSpan.textColor = descColor;
textSpan.font = Font.regularSystemFont(9);
textSpan.textOpacity = 0.6;
textSpan.textOpacity = 0.7;
textSpan.lineLimit = 1;
//
packageFlowStack.addSpacer();
......
......@@ -41,10 +41,14 @@ class BaseWidget {
dayOnlineBgName = () => `${this.scriptName}_day_online`;
dayLocalBgName = () => `${this.scriptName}_day_local`;
nightTransparentBgName = () => `${this.scriptName}_night_transparent`;
nightOnlineBgName = () => `${this.scriptName}_night_online`;
nightLocalBgName = () => `${this.scriptName}_night_local`;
changeBgMode2OnLineBg = async (bgUrlArr = [], options = {}) => {
this.defaultConfig.bgType = '1';
let widgetSetting = this.readWidgetSetting();
......@@ -1948,7 +1952,6 @@ class BaseWidget {
showWidgetSettingBg = false, // 是否显示组件背景设置的图片
showWidgetBg = true, // 是否显示背景菜单选项
isChildLevel = false, // 是否是二级菜单
subTitle = '', // 二级菜单名称
needLocation = false, // 是否需要定位
settingItemFontSize = 16,
authorNameFontSize = 20,
......@@ -1970,7 +1973,7 @@ class BaseWidget {
const { dayBackgroundImagePath, nightBackgroundImagePath, dayBackgroundImageUrl, nightBackgroundImageUrl, picType } = widgetSetting;
let dayBackgroundImage = this.useFileManager().readImgCache(dayBackgroundImagePath);
let nightBackgroundImage = this.useFileManager().readImgCache(nightBackgroundImagePath);
if ((picType == 0 || picType == 1) && showWidgetSettingBg) {
if ((picType == 0 || picType == 1 || picType == 2) && showWidgetSettingBg) {
if (picType == 1) {
dayBackgroundImage = dayBackgroundImageUrl ? await this.getImageByUrl(dayBackgroundImageUrl) : null;
nightBackgroundImage = nightBackgroundImageUrl ? await this.getImageByUrl(nightBackgroundImageUrl) : null;
......@@ -2511,7 +2514,7 @@ class BaseWidget {
<label id="cleanData" class="form-item form-item--link">
<div class="form-label">
<img class="form-label-img" src="${cleanDataIco}"/>
<div class="form-label-title">清理缓存</div>
<div class="form-label-title">组件清理</div>
</div>
<i class="iconfont icon-arrow-right"></i>
</label>
......@@ -2588,7 +2591,6 @@ class BaseWidget {
case 'widgetBg':
try {
const bgWebView = new WebView();
let subTitle = '';
let settingItems = [];
const bgTypeIndex = await this.presentSheet({
title: '组件背景设置',
......@@ -2602,17 +2604,16 @@ class BaseWidget {
});
if (bgTypeIndex !== -1) {
bgType = `${bgTypeIndex}`;
if (bgTypeIndex == 0 || bgTypeIndex == 1) {
if (bgTypeIndex == 0 || bgTypeIndex == 1 || bgTypeIndex == 2) {
widgetSetting['picType'] = bgTypeIndex;
widgetSetting['dayBackgroundImagePath'] = bgTypeIndex == 0 ? this.dayTransparentBgName() : this.dayOnlineBgName();
widgetSetting['nightBackgroundImagePath'] = bgTypeIndex == 0 ? this.nightTransparentBgName() : this.nightOnlineBgName();
widgetSetting['dayBackgroundImagePath'] = bgTypeIndex == 0 ? this.dayTransparentBgName() : (bgTypeIndex == 1 ? this.dayOnlineBgName() : this.dayLocalBgName());
widgetSetting['nightBackgroundImagePath'] = bgTypeIndex == 0 ? this.nightTransparentBgName() : (bgTypeIndex == 1 ? this.nightOnlineBgName() : this.nightLocalBgName());
}
this.writeWidgetSetting({ ...widgetSetting, bgType });
this.insertTextByElementId(previewWebView, 'bgType', this.bgType2Text(bgType));
}
switch (bgTypeIndex) {
case 0: // 透明背景
subTitle = '透明背景图设置';
settingItems = [
{
items: [
......@@ -2638,7 +2639,6 @@ class BaseWidget {
break;
case 1: // 在线图片
subTitle = '在线背景图设置';
settingItems = [
{
items: [
......@@ -2671,12 +2671,17 @@ class BaseWidget {
default: false
},
{
name: 'darkBlurBg',
label: '深色模糊',
type: 'switch',
name: 'blurMode',
label: '模糊效果',
type: 'select',
icon: { name: 'rectangle.fill.on.rectangle.fill', color: '#6A63B8', },
needLoading: false,
default: true
options: [
{ label: '浅色模糊', value: 'light' },
{ label: '深色模糊', value: 'dark' },
{ label: '完全模糊', value: 'none' },
],
default: "none"
},
{
name: 'blurRadius',
......@@ -2692,7 +2697,6 @@ class BaseWidget {
break;
case 2: // 相册图片
subTitle = '相册背景图设置';
settingItems = [
{
items: [
......@@ -2702,7 +2706,7 @@ class BaseWidget {
type: 'cell',
icon: { name: 'photo', color: '#11c4d4', },
needLoading: false,
default: widgetSetting.dayBackgroundImageUrl ? '已设置' : ''
default: this.useFileManager().readImgCache(this.dayLocalBgName()) ? '已设置' : ''
},
{
name: 'bgNightImg',
......@@ -2710,14 +2714,14 @@ class BaseWidget {
type: 'cell',
icon: { name: 'photo.fill', color: '#0c81e4', },
needLoading: false,
default: widgetSetting.nightBackgroundImageUrl ? '已设置' : ''
default: this.useFileManager().readImgCache(this.nightLocalBgName()) ? '已设置' : ''
},
]
},
{
items: [
{
name: 'blurBg',
name: 'localBlurBg',
label: '高斯模糊',
type: 'switch',
icon: { name: 'rectangle.on.rectangle', color: '#938BF0', },
......@@ -2725,15 +2729,20 @@ class BaseWidget {
default: false
},
{
name: 'darkBlurBg',
label: '深色模糊',
type: 'switch',
name: 'localBlurMode',
label: '模糊效果',
type: 'select',
icon: { name: 'rectangle.fill.on.rectangle.fill', color: '#6A63B8', },
needLoading: false,
default: true
options: [
{ label: '浅色模糊', value: 'light' },
{ label: '深色模糊', value: 'dark' },
{ label: '完全模糊', value: 'none' },
],
default: 'none'
},
{
name: 'blurRadius',
name: 'localBlurRadius',
label: '模糊强度',
type: 'number',
icon: { name: 'plus.rectangle.on.rectangle', color: '#FF59A1', },
......@@ -2746,7 +2755,6 @@ class BaseWidget {
break;
case 3: // 纯色背景
subTitle = '纯色背景设置';
settingItems = [
{
items: [
......@@ -2772,7 +2780,6 @@ class BaseWidget {
break;
case 4: // 渐变背景
subTitle = '渐变背景设置';
settingItems = [
{
items: [
......@@ -2811,8 +2818,7 @@ class BaseWidget {
await this.renderAppView({
isChildLevel: true,
showWidgetBg: false,
showWidgetSettingBg: bgTypeIndex == 0 || bgTypeIndex == 1,
subTitle,
showWidgetSettingBg: bgTypeIndex == 0 || bgTypeIndex == 1 || bgTypeIndex == 2,
settingItems,
onItemClick: async (item) => {
switch (item.name) {
......@@ -2839,7 +2845,7 @@ class BaseWidget {
);
}
}
} else {
} else if (bgTypeIndex == 1) {
await this.generateInputAlert({
title: '在线白天图片背景',
message: '填入图片链接设置为组件背景图\n系统自动裁剪中间部分图片使用',
......@@ -2862,6 +2868,25 @@ class BaseWidget {
false
);
});
} else if (bgTypeIndex == 2) {
let backgroundImage = await Photos.fromLibrary();
if (backgroundImage) {
this.useFileManager().writeImgCache(this.dayLocalBgName(), backgroundImage);
// 保存配置
widgetSetting['picType'] = 2;
widgetSetting['dayBackgroundImagePath'] = this.dayLocalBgName();
this.writeWidgetSetting({ ...widgetSetting });
this.insertTextByElementId(bgWebView, item.name, '已设置');
bgWebView.evaluateJavaScript(
`
document.getElementById("previewBg").style.display = "";
document.getElementById("previewDayBg").style.display = "";
document.getElementById("dayBg").height = ${this.getWidgetSize('中号').height / 2};
document.getElementById("dayBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}";
`,
false
);
}
}
break;
......@@ -2888,7 +2913,7 @@ class BaseWidget {
);
}
}
} else {
} else if (bgTypeIndex == 1) {
await this.generateInputAlert({
title: '在线深色图片背景',
message: '填入图片链接设置为组件背景图\n系统自动裁剪中间部分图片使用',
......@@ -2911,6 +2936,25 @@ class BaseWidget {
false
);
});
} else if (bgTypeIndex == 2) {
let backgroundImage = await Photos.fromLibrary();
if (backgroundImage) {
this.useFileManager().writeImgCache(this.nightLocalBgName(), backgroundImage);
// 保存配置
widgetSetting['picType'] = 2;
widgetSetting['nightBackgroundImagePath'] = this.nightLocalBgName();
this.writeWidgetSetting({ ...widgetSetting });
this.insertTextByElementId(bgWebView, item.name, '已设置');
bgWebView.evaluateJavaScript(
`
document.getElementById("previewBg").style.display = "";
document.getElementById("previewDarkBg").style.display = "";
document.getElementById("darkBg").height = ${this.getWidgetSize('中号').height / 2};
document.getElementById("darkBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}";
`,
false
);
}
}
break;
}
......@@ -2952,10 +2996,10 @@ class BaseWidget {
break
case 'cleanData':
let res = await this.generateAlert('清理缓存', '', ['重置组件', '清理文件'], '取消');
let res = await this.generateAlert('组件清理', '', ['重置组件', '清理缓存'], '取消');
if (res != -1) {
this.removeWidgetSetting(res != 0);
await this.generateAlert('清理缓存', '清理缓存成功\n请重新运行小组件', ['确定']);
await this.generateAlert('组件清理', '清理成功\n请重新运行小组件', ['确定']);
this.rerunWidget();
}
break
......@@ -3001,7 +3045,6 @@ class BaseWidget {
await this.renderAppView({
isChildLevel: true,
showWidgetBg: false,
subTitle: label,
settingItems: childItems
});
} else {
......@@ -3119,7 +3162,8 @@ class BaseWidget {
const {
refreshInterval,
picType = 0,
blurBg, darkBlurBg, blurRadius,
blurBg, blurMode, blurRadius,
localBlurBg, localBlurMode, localBlurRadius,
dayBackgroundImageUrl,
nightBackgroundImageUrl,
dayBackgroundImagePath,
......@@ -3131,32 +3175,54 @@ class BaseWidget {
endColor,
} = widgetSetting;
let bgImg;
let dayBackgroundImagePathTmp = '';
let nightBackgroundImagePathTmp = '';
switch (bgType) {
case '0':
case '1':
case '2':
if (picType == 1) {
if (dayBackgroundImageUrl) {
let dayBgImg = await this.getImageByUrl(dayBackgroundImageUrl);
if (blurBg) {
dayBgImg = await this.blurImage(dayBgImg, { w: dayBgImg.size.width, h: dayBgImg.size.height, x: 0, y: 0 }, darkBlurBg ? 'dark' : 'light', blurRadius);
dayBgImg = await this.blurImage(dayBgImg, { w: dayBgImg.size.width, h: dayBgImg.size.height, x: 0, y: 0 }, blurMode, blurRadius);
}
this.useFileManager().writeImgCache(this.dayOnlineBgName(), dayBgImg);
}
if (nightBackgroundImageUrl) {
let nightBgImg = await this.getImageByUrl(nightBackgroundImageUrl);
if (blurBg) {
nightBgImg = await this.blurImage(nightBgImg, { w: nightBgImg.size.width, h: nightBgImg.size.height, x: 0, y: 0 }, darkBlurBg ? 'dark' : 'light', blurRadius);
nightBgImg = await this.blurImage(nightBgImg, { w: nightBgImg.size.width, h: nightBgImg.size.height, x: 0, y: 0 }, blurMode, blurRadius);
}
this.useFileManager().writeImgCache(this.nightOnlineBgName(), nightBgImg);
}
} else if (picType == 2) {
if (dayBackgroundImagePath && !Device.isUsingDarkAppearance()) {
let dayBgImg = this.useFileManager().readImgCache(dayBackgroundImagePath);
if (localBlurBg) {
dayBgImg = await this.blurImage(dayBgImg, { w: dayBgImg.size.width, h: dayBgImg.size.height, x: 0, y: 0 }, localBlurMode, localBlurRadius);
}
dayBackgroundImagePathTmp = this.dayLocalBgName() + "_blur";
this.useFileManager().writeImgCache(dayBackgroundImagePathTmp, dayBgImg);
}
if (nightBackgroundImagePath && Device.isUsingDarkAppearance()) {
let nightBgImg = this.useFileManager().readImgCache(nightBackgroundImagePath);
if (localBlurBg) {
nightBgImg = await this.blurImage(nightBgImg, { w: nightBgImg.size.width, h: nightBgImg.size.height, x: 0, y: 0 }, localBlurMode, localBlurRadius);
}
nightBackgroundImagePathTmp = this.nightLocalBgName() + "_blur";
this.useFileManager().writeImgCache(nightBackgroundImagePathTmp, nightBgImg);
}
}
bgImg = this.useFileManager().readImgCache(Device.isUsingDarkAppearance() ? nightBackgroundImagePath || dayBackgroundImagePath : dayBackgroundImagePath || nightBackgroundImagePath);
const dayBackgroundImage = this.useFileManager().readImgCache(dayBackgroundImagePathTmp || dayBackgroundImagePath);
const nightBackgroundImage = this.useFileManager().readImgCache(nightBackgroundImagePathTmp || nightBackgroundImagePath);
bgImg = Device.isUsingDarkAppearance() ? nightBackgroundImage || dayBackgroundImage : dayBackgroundImage || nightBackgroundImage;
if (bgImg) {
widget.backgroundImage = bgImg;
}
break;
case '2':
case '3':
let pureColors = this.splitColors(this.backgroundColor);
if (bgDayColor && bgNightColor) {
widget.backgroundColor = Color.dynamic(new Color(bgDayColor), new Color(bgNightColor));
......@@ -3165,7 +3231,7 @@ class BaseWidget {
}
break;
case '3':
case '4':
let gradientColors = this.splitColors(this.backgroundGradientColor);
if (startColor && endColor) {
gradientColors = [startColor, endColor];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册