提交 4d456bae 编写于 作者: fxy060608's avatar fxy060608

refactor: upx2px

上级 71abcea3
...@@ -11,6 +11,8 @@ const BASE_DEVICE_WIDTH = 750 ...@@ -11,6 +11,8 @@ const BASE_DEVICE_WIDTH = 750
let isIOS = false let isIOS = false
let deviceWidth = 0 let deviceWidth = 0
let deviceDPR = 0 let deviceDPR = 0
let maxWidth = 960
let baseWidth = 375
function checkDeviceWidth() { function checkDeviceWidth() {
const { platform, pixelRatio, windowWidth } = getBaseSystemInfo() const { platform, pixelRatio, windowWidth } = getBaseSystemInfo()
...@@ -24,6 +26,13 @@ function checkValue(value: unknown, defaultValue: number) { ...@@ -24,6 +26,13 @@ function checkValue(value: unknown, defaultValue: number) {
return isNaN(newValue) ? defaultValue : newValue return isNaN(newValue) ? defaultValue : newValue
} }
function checkMaxWidth() {
const config = __uniConfig.globalStyle || {}
// ignore rpxCalcIncludeWidth
maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960)
baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375)
}
export const upx2px = defineSyncApi<API_TYPE_UPX2PX>( export const upx2px = defineSyncApi<API_TYPE_UPX2PX>(
API_UPX2PX, API_UPX2PX,
(number, newDeviceWidth?: number) => { (number, newDeviceWidth?: number) => {
...@@ -33,6 +42,9 @@ export const upx2px = defineSyncApi<API_TYPE_UPX2PX>( ...@@ -33,6 +42,9 @@ export const upx2px = defineSyncApi<API_TYPE_UPX2PX>(
} }
if (deviceWidth === 0) { if (deviceWidth === 0) {
checkDeviceWidth() checkDeviceWidth()
if (__PLATFORM__ === 'app' || __PLATFORM__ === 'h5') {
checkMaxWidth()
}
} }
number = Number(number) number = Number(number)
...@@ -41,10 +53,6 @@ export const upx2px = defineSyncApi<API_TYPE_UPX2PX>( ...@@ -41,10 +53,6 @@ export const upx2px = defineSyncApi<API_TYPE_UPX2PX>(
} }
let width = newDeviceWidth || deviceWidth let width = newDeviceWidth || deviceWidth
if (__PLATFORM__ === 'app' || __PLATFORM__ === 'h5') { if (__PLATFORM__ === 'app' || __PLATFORM__ === 'h5') {
const config = __uniConfig.globalStyle || {}
// ignore rpxCalcIncludeWidth
const maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960)
const baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375)
width = width <= maxWidth ? width : baseWidth width = width <= maxWidth ? width : baseWidth
} }
let result = (number / BASE_DEVICE_WIDTH) * width let result = (number / BASE_DEVICE_WIDTH) * width
......
...@@ -9814,6 +9814,8 @@ var serviceContext = (function (vue) { ...@@ -9814,6 +9814,8 @@ var serviceContext = (function (vue) {
let isIOS$1 = false; let isIOS$1 = false;
let deviceWidth = 0; let deviceWidth = 0;
let deviceDPR = 0; let deviceDPR = 0;
let maxWidth = 960;
let baseWidth = 375;
function checkDeviceWidth() { function checkDeviceWidth() {
const { platform, pixelRatio, windowWidth } = getBaseSystemInfo(); const { platform, pixelRatio, windowWidth } = getBaseSystemInfo();
deviceWidth = windowWidth; deviceWidth = windowWidth;
...@@ -9824,9 +9826,18 @@ var serviceContext = (function (vue) { ...@@ -9824,9 +9826,18 @@ var serviceContext = (function (vue) {
const newValue = Number(value); const newValue = Number(value);
return isNaN(newValue) ? defaultValue : newValue; return isNaN(newValue) ? defaultValue : newValue;
} }
function checkMaxWidth() {
const config = __uniConfig.globalStyle || {};
// ignore rpxCalcIncludeWidth
maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
}
const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => { const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {
if (deviceWidth === 0) { if (deviceWidth === 0) {
checkDeviceWidth(); checkDeviceWidth();
{
checkMaxWidth();
}
} }
number = Number(number); number = Number(number);
if (number === 0) { if (number === 0) {
...@@ -9834,10 +9845,6 @@ var serviceContext = (function (vue) { ...@@ -9834,10 +9845,6 @@ var serviceContext = (function (vue) {
} }
let width = newDeviceWidth || deviceWidth; let width = newDeviceWidth || deviceWidth;
{ {
const config = __uniConfig.globalStyle || {};
// ignore rpxCalcIncludeWidth
const maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
const baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
width = width <= maxWidth ? width : baseWidth; width = width <= maxWidth ? width : baseWidth;
} }
let result = (number / BASE_DEVICE_WIDTH) * width; let result = (number / BASE_DEVICE_WIDTH) * width;
......
...@@ -20,15 +20,14 @@ function getWindowWidth() { ...@@ -20,15 +20,14 @@ function getWindowWidth() {
} }
export function useRem() { export function useRem() {
const config = __uniConfig.globalStyle || {}
// ignore: rpxCalcIncludeWidth
const maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960)
const baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375)
// TODO 与 upx2px 合并抽离逻辑到 shared,区分 service、view // TODO 与 upx2px 合并抽离逻辑到 shared,区分 service、view
function updateRem() { function updateRem() {
const config = __uniConfig.globalStyle || {}
// ignore: rpxCalcIncludeWidth
const maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960)
const baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375)
let width = getWindowWidth() let width = getWindowWidth()
width = width <= maxWidth ? width : baseWidth width = width <= maxWidth ? width : baseWidth
document.documentElement.style.fontSize = width / 23.4375 + 'px' document.documentElement.style.fontSize = width / 23.4375 + 'px'
} }
updateRem() updateRem()
......
...@@ -484,12 +484,12 @@ function getWindowWidth$1() { ...@@ -484,12 +484,12 @@ function getWindowWidth$1() {
return windowWidth; return windowWidth;
} }
function useRem() { function useRem() {
const config = __uniConfig.globalStyle || {};
const maxWidth2 = checkValue$1(config.rpxCalcMaxDeviceWidth, 960);
const baseWidth2 = checkValue$1(config.rpxCalcBaseDeviceWidth, 375);
function updateRem() { function updateRem() {
const config = __uniConfig.globalStyle || {};
const maxWidth = checkValue$1(config.rpxCalcMaxDeviceWidth, 960);
const baseWidth = checkValue$1(config.rpxCalcBaseDeviceWidth, 375);
let width = getWindowWidth$1(); let width = getWindowWidth$1();
width = width <= maxWidth ? width : baseWidth; width = width <= maxWidth2 ? width : baseWidth2;
document.documentElement.style.fontSize = width / 23.4375 + "px"; document.documentElement.style.fontSize = width / 23.4375 + "px";
} }
updateRem(); updateRem();
...@@ -2792,6 +2792,8 @@ const BASE_DEVICE_WIDTH = 750; ...@@ -2792,6 +2792,8 @@ const BASE_DEVICE_WIDTH = 750;
let isIOS = false; let isIOS = false;
let deviceWidth = 0; let deviceWidth = 0;
let deviceDPR = 0; let deviceDPR = 0;
let maxWidth = 960;
let baseWidth = 375;
function checkDeviceWidth() { function checkDeviceWidth() {
const { platform, pixelRatio: pixelRatio2, windowWidth } = getBaseSystemInfo(); const { platform, pixelRatio: pixelRatio2, windowWidth } = getBaseSystemInfo();
deviceWidth = windowWidth; deviceWidth = windowWidth;
...@@ -2802,9 +2804,17 @@ function checkValue(value, defaultValue) { ...@@ -2802,9 +2804,17 @@ function checkValue(value, defaultValue) {
const newValue = Number(value); const newValue = Number(value);
return isNaN(newValue) ? defaultValue : newValue; return isNaN(newValue) ? defaultValue : newValue;
} }
function checkMaxWidth() {
const config = __uniConfig.globalStyle || {};
maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
}
const upx2px = /* @__PURE__ */ defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => { const upx2px = /* @__PURE__ */ defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {
if (deviceWidth === 0) { if (deviceWidth === 0) {
checkDeviceWidth(); checkDeviceWidth();
{
checkMaxWidth();
}
} }
number = Number(number); number = Number(number);
if (number === 0) { if (number === 0) {
...@@ -2812,9 +2822,6 @@ const upx2px = /* @__PURE__ */ defineSyncApi(API_UPX2PX, (number, newDeviceWidth ...@@ -2812,9 +2822,6 @@ const upx2px = /* @__PURE__ */ defineSyncApi(API_UPX2PX, (number, newDeviceWidth
} }
let width = newDeviceWidth || deviceWidth; let width = newDeviceWidth || deviceWidth;
{ {
const config = __uniConfig.globalStyle || {};
const maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
const baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
width = width <= maxWidth ? width : baseWidth; width = width <= maxWidth ? width : baseWidth;
} }
let result = number / BASE_DEVICE_WIDTH * width; let result = number / BASE_DEVICE_WIDTH * width;
...@@ -3797,10 +3804,10 @@ const initCanvasContextProperty = /* @__PURE__ */ once(() => { ...@@ -3797,10 +3804,10 @@ const initCanvasContextProperty = /* @__PURE__ */ once(() => {
}; };
case "fillText": case "fillText":
case "strokeText": case "strokeText":
return function(text2, x, y, maxWidth) { return function(text2, x, y, maxWidth2) {
var data = [text2.toString(), x, y]; var data = [text2.toString(), x, y];
if (typeof maxWidth === "number") { if (typeof maxWidth2 === "number") {
data.push(maxWidth); data.push(maxWidth2);
} }
this.actions.push({ this.actions.push({
method: method2, method: method2,
...@@ -6800,8 +6807,8 @@ function useMethods(props2, canvasRef, actionsWaiting) { ...@@ -6800,8 +6807,8 @@ function useMethods(props2, canvasRef, actionsWaiting) {
}, resolve) { }, resolve) {
const canvas = canvasRef.value; const canvas = canvasRef.value;
let data; let data;
const maxWidth = canvas.offsetWidth - x; const maxWidth2 = canvas.offsetWidth - x;
width = width ? Math.min(width, maxWidth) : maxWidth; width = width ? Math.min(width, maxWidth2) : maxWidth2;
const maxHeight = canvas.offsetHeight - y; const maxHeight = canvas.offsetHeight - y;
height = height ? Math.min(height, maxHeight) : maxHeight; height = height ? Math.min(height, maxHeight) : maxHeight;
if (!hidpi) { if (!hidpi) {
...@@ -19467,21 +19474,21 @@ function initMediaQuery(minWidth, callback) { ...@@ -19467,21 +19474,21 @@ function initMediaQuery(minWidth, callback) {
} }
function useMaxWidth(layoutState, rootRef) { function useMaxWidth(layoutState, rootRef) {
const route = usePageRoute(); const route = usePageRoute();
function checkMaxWidth() { function checkMaxWidth2() {
const windowWidth = document.body.clientWidth; const windowWidth = document.body.clientWidth;
const maxWidth = parseInt(String(__uniConfig.globalStyle.maxWidth || Number.MAX_SAFE_INTEGER)); const maxWidth2 = parseInt(String(__uniConfig.globalStyle.maxWidth || Number.MAX_SAFE_INTEGER));
let showMaxWidth = false; let showMaxWidth = false;
if (windowWidth > maxWidth) { if (windowWidth > maxWidth2) {
showMaxWidth = true; showMaxWidth = true;
} else { } else {
showMaxWidth = false; showMaxWidth = false;
} }
if (showMaxWidth && maxWidth) { if (showMaxWidth && maxWidth2) {
layoutState.marginWidth = (windowWidth - maxWidth) / 2; layoutState.marginWidth = (windowWidth - maxWidth2) / 2;
nextTick(() => { nextTick(() => {
const rootEl = rootRef.value; const rootEl = rootRef.value;
if (rootEl) { if (rootEl) {
rootEl.setAttribute("style", "max-width:" + maxWidth + "px;margin:0 auto;"); rootEl.setAttribute("style", "max-width:" + maxWidth2 + "px;margin:0 auto;");
} }
}); });
} else { } else {
...@@ -19494,10 +19501,10 @@ function useMaxWidth(layoutState, rootRef) { ...@@ -19494,10 +19501,10 @@ function useMaxWidth(layoutState, rootRef) {
}); });
} }
} }
watch([() => route.path], checkMaxWidth); watch([() => route.path], checkMaxWidth2);
onMounted(() => { onMounted(() => {
checkMaxWidth(); checkMaxWidth2();
window.addEventListener("resize", checkMaxWidth); window.addEventListener("resize", checkMaxWidth2);
}); });
} }
function useState() { function useState() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册