优化页面

This commit is contained in:
pengxiaolong
2025-06-20 21:55:09 +08:00
parent 2afc95d531
commit acc81963e9
405 changed files with 1362 additions and 1284 deletions

View File

@@ -1 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/common/Avatar/index.vue","/Users/plw/Documents/outsource/tk-mini-program/TUIKit/components/common/Avatar/index.vue?type=component"],"sourcesContent":["<template>\n <div\n class=\"avatar-container\"\n :style=\"{\n width: avatarSize,\n height: avatarSize,\n borderRadius: avatarBorderRadius,\n }\"\n >\n <template v-if=\"isUniFrameWork\">\n <image\n v-if=\"!loadErrorInUniapp\"\n class=\"avatar-image\"\n :src=\"avatarImageUrl || defaultAvatarUrl\"\n @load=\"avatarLoadSuccess\"\n @error=\"avatarLoadFailed\"\n />\n <image\n v-else\n class=\"avatar-image\"\n :src=\"defaultAvatarUrl\"\n @load=\"avatarLoadSuccess\"\n @error=\"avatarLoadFailed\"\n />\n </template>\n <img\n v-else\n class=\"avatar-image\"\n :src=\"avatarImageUrl || defaultAvatarUrl\"\n @load=\"avatarLoadSuccess\"\n @error=\"avatarLoadFailed\"\n >\n <div\n v-if=\"useAvatarSkeletonAnimation && !isImgLoaded\"\n :class=\"{\n placeholder: true,\n hidden: isImgLoaded,\n 'skeleton-animation': useAvatarSkeletonAnimation\n }\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, toRefs } from '../../../adapter-vue';\nimport { isUniFrameWork } from '../../../utils/env';\n\ninterface IProps {\n url: string;\n size?: string;\n borderRadius?: string;\n useSkeletonAnimation?: boolean;\n}\n\ninterface IEmits {\n (key: 'onLoad', e: Event): void;\n (key: 'onError', e: Event): void;\n}\n\nconst defaultAvatarUrl = ref('https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png');\nconst emits = defineEmits<IEmits>();\nconst props = withDefaults(defineProps<IProps>(), {\n // uniapp vue2 does not support constants in defineProps\n url: 'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png',\n size: '36px',\n borderRadius: '5px',\n useSkeletonAnimation: false,\n});\n\nconst {\n size: avatarSize,\n url: avatarImageUrl,\n borderRadius: avatarBorderRadius,\n useSkeletonAnimation: useAvatarSkeletonAnimation,\n} = toRefs(props);\n\nlet reloadAvatarTime = 0;\nconst isImgLoaded = ref<boolean>(false);\nconst loadErrorInUniapp = ref<boolean>(false);\n\nfunction avatarLoadSuccess(e: Event) {\n isImgLoaded.value = true;\n emits('onLoad', e);\n}\n\nfunction avatarLoadFailed(e: Event) {\n reloadAvatarTime += 1;\n if (reloadAvatarTime > 3) {\n return;\n }\n if (isUniFrameWork) {\n loadErrorInUniapp.value = true;\n } else {\n (e.currentTarget as HTMLImageElement).src = defaultAvatarUrl.value;\n }\n emits('onError', e);\n}\n</script>\n\n<style scoped lang=\"scss\">\n:not(not) {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.avatar-container {\n position: relative;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n flex: 0 0 auto;\n\n .placeholder {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ececec;\n transition:\n opacity 0.3s,\n background-color 0.1s ease-out;\n\n &.skeleton-animation {\n animation: breath 2s linear 0.3s infinite;\n }\n\n &.hidden {\n opacity: 0;\n }\n }\n\n .avatar-image {\n width: 100%;\n height: 100%;\n }\n}\n\n@keyframes breath {\n 50% {\n /* stylelint-disable-next-line scss/no-global-function-names */\n background-color: darken(#ececec, 10%);\n }\n}\n</style>\n","import Component from '/Users/plw/Documents/outsource/tk-mini-program/TUIKit/components/common/Avatar/index.vue'\nwx.createComponent(Component)"],"names":["ref","toRefs","isUniFrameWork"],"mappings":";;;;;;;;;;;;;;AA2DM,UAAA,mBAAmBA,kBAAI,kEAAkE;AAC/F,UAAM,QAAQ;AACd,UAAM,QAAQ;AAQR,UAAA;AAAA,MACJ,MAAM;AAAA,MACN,KAAK;AAAA,MACL,cAAc;AAAA,MACd,sBAAsB;AAAA,IAAA,IACpBC,cAAAA,OAAO,KAAK;AAEhB,QAAI,mBAAmB;AACjB,UAAA,cAAcD,kBAAa,KAAK;AAChC,UAAA,oBAAoBA,kBAAa,KAAK;AAE5C,aAAS,kBAAkB,GAAU;AACnC,kBAAY,QAAQ;AACpB,YAAM,UAAU,CAAC;AAAA,IACnB;AAEA,aAAS,iBAAiB,GAAU;AACd,0BAAA;AACpB,UAAI,mBAAmB,GAAG;AACxB;AAAA,MACF;AACA,UAAIE,iCAAgB;AAClB,0BAAkB,QAAQ;AAAA,MAAA,OACrB;AACJ,UAAE,cAAmC,MAAM,iBAAiB;AAAA,MAC/D;AACA,YAAM,WAAW,CAAC;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FA,GAAG,gBAAgB,SAAS;"}
{"version":3,"file":"index.js","sources":["TUIKit/components/common/Avatar/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9jb21tb24vQXZhdGFyL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\r\n <div\r\n class=\"avatar-container\"\r\n :style=\"{\r\n width: avatarSize,\r\n height: avatarSize,\r\n borderRadius: avatarBorderRadius,\r\n }\"\r\n >\r\n <template v-if=\"isUniFrameWork\">\r\n <image\r\n v-if=\"!loadErrorInUniapp\"\r\n class=\"avatar-image\"\r\n :src=\"avatarImageUrl || defaultAvatarUrl\"\r\n @load=\"avatarLoadSuccess\"\r\n @error=\"avatarLoadFailed\"\r\n />\r\n <image\r\n v-else\r\n class=\"avatar-image\"\r\n :src=\"defaultAvatarUrl\"\r\n @load=\"avatarLoadSuccess\"\r\n @error=\"avatarLoadFailed\"\r\n />\r\n </template>\r\n <img\r\n v-else\r\n class=\"avatar-image\"\r\n :src=\"avatarImageUrl || defaultAvatarUrl\"\r\n @load=\"avatarLoadSuccess\"\r\n @error=\"avatarLoadFailed\"\r\n >\r\n <div\r\n v-if=\"useAvatarSkeletonAnimation && !isImgLoaded\"\r\n :class=\"{\r\n placeholder: true,\r\n hidden: isImgLoaded,\r\n 'skeleton-animation': useAvatarSkeletonAnimation\r\n }\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, toRefs } from '../../../adapter-vue';\r\nimport { isUniFrameWork } from '../../../utils/env';\r\n\r\ninterface IProps {\r\n url: string;\r\n size?: string;\r\n borderRadius?: string;\r\n useSkeletonAnimation?: boolean;\r\n}\r\n\r\ninterface IEmits {\r\n (key: 'onLoad', e: Event): void;\r\n (key: 'onError', e: Event): void;\r\n}\r\n\r\nconst defaultAvatarUrl = ref('https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png');\r\nconst emits = defineEmits<IEmits>();\r\nconst props = withDefaults(defineProps<IProps>(), {\r\n // uniapp vue2 does not support constants in defineProps\r\n url: 'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png',\r\n size: '36px',\r\n borderRadius: '5px',\r\n useSkeletonAnimation: false,\r\n});\r\n\r\nconst {\r\n size: avatarSize,\r\n url: avatarImageUrl,\r\n borderRadius: avatarBorderRadius,\r\n useSkeletonAnimation: useAvatarSkeletonAnimation,\r\n} = toRefs(props);\r\n\r\nlet reloadAvatarTime = 0;\r\nconst isImgLoaded = ref<boolean>(false);\r\nconst loadErrorInUniapp = ref<boolean>(false);\r\n\r\nfunction avatarLoadSuccess(e: Event) {\r\n isImgLoaded.value = true;\r\n emits('onLoad', e);\r\n}\r\n\r\nfunction avatarLoadFailed(e: Event) {\r\n reloadAvatarTime += 1;\r\n if (reloadAvatarTime > 3) {\r\n return;\r\n }\r\n if (isUniFrameWork) {\r\n loadErrorInUniapp.value = true;\r\n } else {\r\n (e.currentTarget as HTMLImageElement).src = defaultAvatarUrl.value;\r\n }\r\n emits('onError', e);\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n:not(not) {\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n min-width: 0;\r\n}\r\n\r\n.avatar-container {\r\n position: relative;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n flex: 0 0 auto;\r\n\r\n .placeholder {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: #ececec;\r\n transition:\r\n opacity 0.3s,\r\n background-color 0.1s ease-out;\r\n\r\n &.skeleton-animation {\r\n animation: breath 2s linear 0.3s infinite;\r\n }\r\n\r\n &.hidden {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n .avatar-image {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n\r\n@keyframes breath {\r\n 50% {\r\n /* stylelint-disable-next-line scss/no-global-function-names */\r\n background-color: darken(#ececec, 10%);\r\n }\r\n}\r\n</style>\r\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/common/Avatar/index.vue'\nwx.createComponent(Component)"],"names":["ref","toRefs","isUniFrameWork"],"mappings":";;;;;;;;;;;;;;AA2DM,UAAA,mBAAmBA,kBAAI,kEAAkE;AAC/F,UAAM,QAAQ;AACd,UAAM,QAAQ;AAQR,UAAA;AAAA,MACJ,MAAM;AAAA,MACN,KAAK;AAAA,MACL,cAAc;AAAA,MACd,sBAAsB;AAAA,IAAA,IACpBC,cAAAA,OAAO,KAAK;AAEhB,QAAI,mBAAmB;AACjB,UAAA,cAAcD,kBAAa,KAAK;AAChC,UAAA,oBAAoBA,kBAAa,KAAK;AAE5C,aAAS,kBAAkB,GAAU;AACnC,kBAAY,QAAQ;AACpB,YAAM,UAAU,CAAC;AAAA,IACnB;AAEA,aAAS,iBAAiB,GAAU;AACd,0BAAA;AACpB,UAAI,mBAAmB,GAAG;AACxB;AAAA,MACF;AACA,UAAIE,iCAAgB;AAClB,0BAAkB,QAAQ;AAAA,MAAA,OACrB;AACJ,UAAE,cAAmC,MAAM,iBAAiB;AAAA,MAC/D;AACA,YAAM,WAAW,CAAC;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FA,GAAG,gBAAgB,SAAS;"}