同步代码
This commit is contained in:
70
Cunkebao/src/utils/common.ts
Normal file
70
Cunkebao/src/utils/common.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import { Modal } from "antd-mobile";
|
||||
import { getSetting } from "@/store/module/settings";
|
||||
/**
|
||||
* 通用js调用弹窗,Promise风格
|
||||
* @param content 弹窗内容
|
||||
* @param config 配置项(title, cancelText, confirmText)
|
||||
* @returns Promise<void>
|
||||
*/
|
||||
export const comfirm = (
|
||||
content: string,
|
||||
config?: {
|
||||
title?: string;
|
||||
cancelText?: string;
|
||||
confirmText?: string;
|
||||
},
|
||||
): Promise<void> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
Modal.show({
|
||||
title: config?.title || "提示",
|
||||
content,
|
||||
closeOnAction: true,
|
||||
actions: [
|
||||
{
|
||||
key: "cancel",
|
||||
text: config?.cancelText || "取消",
|
||||
onClick: () => reject(),
|
||||
},
|
||||
{
|
||||
key: "confirm",
|
||||
text: config?.confirmText || "确认",
|
||||
danger: true,
|
||||
onClick: () => resolve(),
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
export function getSafeAreaHeight() {
|
||||
// 1. 优先使用 CSS 环境变量
|
||||
if (CSS.supports("padding-top", "env(safe-area-inset-top)")) {
|
||||
const safeAreaTop = getComputedStyle(
|
||||
document.documentElement,
|
||||
).getPropertyValue("env(safe-area-inset-top)");
|
||||
const height = parseInt(safeAreaTop) || 0;
|
||||
if (height > 0) return height;
|
||||
}
|
||||
|
||||
// 2. 设备检测
|
||||
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
|
||||
const isAndroid = /Android/.test(navigator.userAgent);
|
||||
const isAppMode = getSetting("isAppMode");
|
||||
if (isIOS && isAppMode) {
|
||||
// iOS 设备
|
||||
const isIPhoneX = window.screen.height >= 812;
|
||||
return isIPhoneX ? 44 : 20;
|
||||
} else if (isAndroid) {
|
||||
// Android 设备
|
||||
return 24;
|
||||
}
|
||||
|
||||
// 3. 默认值
|
||||
return 0;
|
||||
}
|
||||
// 设置全局 CSS 变量
|
||||
export function initSafeArea() {
|
||||
const root = document.documentElement;
|
||||
const height = getSafeAreaHeight();
|
||||
root.style.setProperty("--safe-area-top", `${height}px`);
|
||||
}
|
||||
Reference in New Issue
Block a user