diff --git a/.gitignore b/.gitignore index d994b3794c9ab583182ba1960f3b1ca8334d0056..14d44d182c7326226da21a64a810170cf9f4032d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ pnpm-debug.log* lerna-debug.log* node_modules +/output dist dist-ssr *.local diff --git a/package.json b/package.json index 1cd8d0569d6afbfc55cb6950d66a4f5a5c681240..6cdf86b2a2bc38fea2e411b80a813a0164affceb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "pnpm --filter portal dev", - "dev:portal": "pnpm --filter portal dev", + "dev:ak": "pnpm --filter portal-ak dev", "dev:lib": "pnpm --filter @opensig/opendesign dev" }, "keywords": [], diff --git a/packages/opendesign/src/components/_shared/dom.ts b/packages/opendesign/src/components/_shared/dom.ts index 4572d814338ab822cef61b756c96b9c977a953fa..b070815d4ec109ced331fe1f441d9b1db2fe0294 100644 --- a/packages/opendesign/src/components/_shared/dom.ts +++ b/packages/opendesign/src/components/_shared/dom.ts @@ -107,7 +107,7 @@ export function mergeClass(...classList: Array) { let rlt: any[] = []; classList.forEach((item) => { - if (Array.isArray(item)) { + if (isArray(item)) { rlt = rlt.concat(item); } else { rlt.push(item); diff --git a/packages/opendesign/src/components/_shared/global.ts b/packages/opendesign/src/components/_shared/global.ts index 34639c331fa56c22774fe257e100c5ebd2d69fa8..4e9f2e2fce597c8023f3b6d89c32b51b3ad13613 100644 --- a/packages/opendesign/src/components/_shared/global.ts +++ b/packages/opendesign/src/components/_shared/global.ts @@ -1,6 +1,7 @@ -import { ref } from 'vue'; +import { ref, computed } from 'vue'; import { ColorPool } from './utils'; -import { RoundT, SizeT } from './types'; +import { SizeT } from './types'; +import { isClient, isTouchDevice } from './is'; // 尺寸 export const defaultSize = ref('medium'); @@ -9,8 +10,8 @@ export function initSize(val: SizeT) { } // 圆角 -export const defaultRound = ref<'pill' | string>(''); -export function initRound(type: RoundT) { +export const defaultRound = ref<'pill' | undefined>(); +export function initRound(type?: 'pill') { defaultRound.value = type; } @@ -20,3 +21,34 @@ export const defaultPrestColorPool = ref(new ColorPool(defaultPrestColor)); export function initPrestColor(colors: string[]) { defaultPrestColorPool.value = new ColorPool(colors); } + +// 断点 +export const mediaPoint = ref>({ + phone: 720, + pad: 1200, +}); +export function initMediaPoint(point: Record<'phone' | 'pad', number>) { + mediaPoint.value = point; +} + +// 当前是否为pad +export const isPadSize = computed(() => { + if (isClient) { + const { innerWidth } = window; + return innerWidth > mediaPoint.value.phone && innerWidth <= mediaPoint.value.pad; + } + return false; +}); + +// 当前是否为手机 +export const isPhoneSize = computed(() => { + if (isClient) { + const { innerWidth } = window; + return innerWidth <= mediaPoint.value.phone; + } + return false; +}); + +export const isPhonePad = computed(() => { + return isTouchDevice && (isPadSize.value || isPhoneSize.value); +}); diff --git a/packages/opendesign/src/components/_shared/icons.ts b/packages/opendesign/src/components/_shared/icons.ts index 8542a82023ce9e226fa57ea289afac612a092caf..ed9cb5a06fe859e4871a10d607983cc5b3b9c151 100644 --- a/packages/opendesign/src/components/_shared/icons.ts +++ b/packages/opendesign/src/components/_shared/icons.ts @@ -19,6 +19,11 @@ import { OIconRefresh, OIconDelete, OIconPoint, + OIconEye, + OIconEyeOff, + OIconFile, + OIconEdit, + OIconImageError, } from '../icon-components'; /** @@ -77,7 +82,7 @@ export const IconChevronRight = shallowRef(OIconChevronRight); export const IconDone = shallowRef(OIconDone); /** - * 更多...图标 + * 更多...图标,用于pagition */ export const IconEllipsis = shallowRef(OIconEllipsis); @@ -100,3 +105,33 @@ export const IconDelete = shallowRef(OIconDelete); * 错误/失败图标 */ export const IconError = shallowRef(OIconPoint); + +/** + * 预览图标 + */ +export const IconPreview = shallowRef(OIconEye); + +/** + * 文件图标 + */ +export const IconFile = shallowRef(OIconFile); + +/** + * 文件图标 + */ +export const IconEdit = shallowRef(OIconEdit); + +/** + * 可见图标,用于密码框等 + */ +export const IconEyeOn = shallowRef(OIconEye); + +/** + * 不可见图标,用于密码框等 + */ +export const IconEyeOff = shallowRef(OIconEyeOff); + +/** + * 加载失败的图片 + */ +export const IconImageError = shallowRef(OIconImageError); diff --git a/packages/opendesign/src/components/_shared/is.ts b/packages/opendesign/src/components/_shared/is.ts index 3e682ad650c8374bd1291f68ca184b9ebfbdb079..2b5b17774ad77d131ebb312589566e2ee0be4c3f 100644 --- a/packages/opendesign/src/components/_shared/is.ts +++ b/packages/opendesign/src/components/_shared/is.ts @@ -43,3 +43,5 @@ export const isPromise = (val: unknown): val is Promise => { }; export const isClient = typeof window !== 'undefined'; + +export const isTouchDevice = isClient ? 'ontouchstart' in document.documentElement : false; diff --git a/packages/opendesign/src/components/_shared/vue-utils.ts b/packages/opendesign/src/components/_shared/vue-utils.ts index cab767471217328bd784a2604736a2250f68be2e..c9b6c1c35a3f4537f661b993947d89d5fe79c59f 100644 --- a/packages/opendesign/src/components/_shared/vue-utils.ts +++ b/packages/opendesign/src/components/_shared/vue-utils.ts @@ -187,6 +187,7 @@ export const isEmptySlot = (slot?: Slot) => { if (children.length === 0) { return true; } + // TODO: 如何判断是否为注释节点 if (children.length === 1 && isTextElement(children[0]) && !children[0].children) { return true; } diff --git a/packages/opendesign/src/components/badge/OBadge.vue b/packages/opendesign/src/components/badge/OBadge.vue index 0d4408f3f6f35d5ecd157c54e3fcf8d526235e31..23688fef897ccc93dba69437ec8e4db9965d3b05 100644 --- a/packages/opendesign/src/components/badge/OBadge.vue +++ b/packages/opendesign/src/components/badge/OBadge.vue @@ -31,7 +31,9 @@ const style = computed(() => {
- {{ content }} + +
{{ content }}
+
diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue b/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue index dbc79427a955604c1fced6e91ebe321a3cb4e7c5..634e4cafbdd29e0458238bc219d37fc00863e870 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue @@ -7,7 +7,7 @@ import { OBadge } from '../index';