diff --git a/src/uni_modules/uview-plus/components/up-overlay/overlay.uts b/src/uni_modules/uview-plus/components/up-overlay/overlay.uts new file mode 100644 index 000000000..5862cfb40 --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-overlay/overlay.uts @@ -0,0 +1,18 @@ +/* + * @Author : jry + * @Description : + * @version : 4.0 + * @Date : 2024-09-12 01:06:21 + * @LastAuthor : jry + * @lastTime : 2024-09-12 01:06:21 + * @FilePath : /uview-plus/libs/config/props/overlay + */ +export default { + // overlay组件 + overlay: { + show: false, + zIndex: 10070, + duration: 300, + opacity: 0.5 + } +} as UTSJSONObject diff --git a/src/uni_modules/uview-plus/components/up-overlay/props.uts b/src/uni_modules/uview-plus/components/up-overlay/props.uts new file mode 100644 index 000000000..cac5a2d74 --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-overlay/props.uts @@ -0,0 +1,28 @@ +import { defineMixin } from '../../libs/vue' +import defProps from './overlay' +let crtProp = defProps['overlay'] as UTSJSONObject + +export const propsOverlay = defineMixin({ + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: crtProp['show'] + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: crtProp['zIndex'] + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: crtProp['duration'] + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: crtProp['opacity'] + } + } +}) diff --git a/src/uni_modules/uview-plus/components/up-overlay/up-overlay.uvue b/src/uni_modules/uview-plus/components/up-overlay/up-overlay.uvue new file mode 100644 index 000000000..da6710934 --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-overlay/up-overlay.uvue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/uni_modules/uview-plus/components/up-overlay/up-overlay.vue b/src/uni_modules/uview-plus/components/up-overlay/up-overlay.vue index 7ad1dfe91..13c61c765 100644 --- a/src/uni_modules/uview-plus/components/up-overlay/up-overlay.vue +++ b/src/uni_modules/uview-plus/components/up-overlay/up-overlay.vue @@ -29,7 +29,7 @@ */ export default { name: "up-overlay", - mixins: [mpMixin, mixin,props], + mixins: [mpMixin, mixin, props], computed: { overlayStyle() { const style = { diff --git a/src/uni_modules/uview-plus/components/up-popup/popup.uts b/src/uni_modules/uview-plus/components/up-popup/popup.uts new file mode 100644 index 000000000..35d335e43 --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-popup/popup.uts @@ -0,0 +1,28 @@ +/* + * @Author : jry + * @Description : uview-plus component's props mixin file + * @version : 4.0 + * @Date : 2024-00-12 00:47:21 + * @LastAuthor : jry + * @lastTime : 2024-09-12 00:47:21 + */ +export default { + // popup组件 + popup: { + show: false, + overlay: true, + mode: 'bottom', + duration: 300, + closeable: false, + overlayStyle: {}, + closeOnClickOverlay: true, + zIndex: 10075, + safeAreaInsetBottom: true, + safeAreaInsetTop: false, + closeIconPos: 'top-right', + round: 0, + zoom: true, + bgColor: '', + overlayOpacity: 0.5 + } +} as UTSJSONObject diff --git a/src/uni_modules/uview-plus/components/up-popup/props.uts b/src/uni_modules/uview-plus/components/up-popup/props.uts new file mode 100644 index 000000000..8935aa565 --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-popup/props.uts @@ -0,0 +1,91 @@ +/* + * @Author : jry + * @Description : uview-plus component's props mixin file + * @version : 4.0 + * @Date : 2024-00-12 00:47:21 + * @LastAuthor : jry + * @lastTime : 2024-09-12 00:47:21 + */ +import { defineMixin } from '../../libs/vue' +import defProps from './popup' +let crtProp = defProps['popup'] as UTSJSONObject + +export const propsPopup = defineMixin({ + props: { + // 是否展示弹窗 + show: { + type: Boolean, + default: crtProp['show'] + }, + // 是否显示遮罩 + overlay: { + type: Boolean, + default: crtProp['overlay'] + }, + // 弹出的方向,可选值为 top bottom right left center + mode: { + type: String, + default: crtProp['mode'] + }, + // 动画时长,单位ms + duration: { + type: [String, Number], + default: crtProp['duration'] + }, + // 是否显示关闭图标 + closeable: { + type: Boolean, + default: crtProp['closeable'] + }, + // 自定义遮罩的样式 + overlayStyle: { + type: [Object, String], + default: crtProp['overlayStyle'] + }, + // 点击遮罩是否关闭弹窗 + closeOnClickOverlay: { + type: Boolean, + default: crtProp['closeOnClickOverlay'] + }, + // 层级 + zIndex: { + type: [String, Number], + default: crtProp['zIndex'] + }, + // 是否为iPhoneX留出底部安全距离 + safeAreaInsetBottom: { + type: Boolean, + default: crtProp['safeAreaInsetBottom'] + }, + // 是否留出顶部安全距离(状态栏高度) + safeAreaInsetTop: { + type: Boolean, + default: crtProp['safeAreaInsetTop'] + }, + // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角 + closeIconPos: { + type: String, + default: crtProp['closeIconPos'] + }, + // 是否显示圆角 + round: { + type: [Boolean, String, Number], + default: crtProp['round'] + }, + // mode=center,也即中部弹出时,是否使用缩放模式 + zoom: { + type: Boolean, + default: crtProp['zoom'] + }, + // 弹窗背景色,设置为transparent可去除白色背景 + bgColor: { + type: String, + default: crtProp['bgColor'] + }, + // 遮罩的透明度,0-1之间 + overlayOpacity: { + type: [Number, String], + default: crtProp['overlayOpacity'] + } + } +}) diff --git a/src/uni_modules/uview-plus/components/up-popup/up-popup.uvue b/src/uni_modules/uview-plus/components/up-popup/up-popup.uvue new file mode 100644 index 000000000..1a8f6faac --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-popup/up-popup.uvue @@ -0,0 +1,313 @@ + + + + + diff --git a/src/uni_modules/uview-plus/components/up-radio/props.uts b/src/uni_modules/uview-plus/components/up-radio/props.uts index 600fee606..6a54f7eee 100644 --- a/src/uni_modules/uview-plus/components/up-radio/props.uts +++ b/src/uni_modules/uview-plus/components/up-radio/props.uts @@ -6,7 +6,7 @@ * @LastAuthor : jry * @lastTime : 2024-08-30 23:17:20 */ - import { defineMixin } from '../../libs/vue' +import { defineMixin } from '../../libs/vue' import defProps from './radio' let crtProp = defProps['radio'] as UTSJSONObject diff --git a/src/uni_modules/uview-plus/components/up-safe-bottom/props.uts b/src/uni_modules/uview-plus/components/up-safe-bottom/props.uts new file mode 100644 index 000000000..ee2c5f77a --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-safe-bottom/props.uts @@ -0,0 +1,6 @@ +import { defineMixin } from '../../libs/vue' + +export const propsSafeBottom = defineMixin({ + props: { + } +}) diff --git a/src/uni_modules/uview-plus/components/up-safe-bottom/up-safe-bottom.uvue b/src/uni_modules/uview-plus/components/up-safe-bottom/up-safe-bottom.uvue new file mode 100644 index 000000000..d2269507c --- /dev/null +++ b/src/uni_modules/uview-plus/components/up-safe-bottom/up-safe-bottom.uvue @@ -0,0 +1,59 @@ + + + + + diff --git a/uni-app-x/pages.json b/uni-app-x/pages.json index 9e13221db..729fa3ebf 100644 --- a/uni-app-x/pages.json +++ b/uni-app-x/pages.json @@ -72,13 +72,13 @@ "navigationBarTitleText": "加载中图标" } } - // ,{ - // "path": "overlay/overlay", - // "style": { - // "navigationBarTitleText": "遮罩层", - // "navigationStyle": "custom" - // } - // }, + ,{ + "path": "overlay/overlay", + "style": { + "navigationBarTitleText": "遮罩层", + "navigationStyle": "custom" + } + } ,{ "path": "loading-page/loading-page", "style": { @@ -86,14 +86,14 @@ "navigationStyle": "custom" } } + ,{ + "path": "popup/popup", + "style": { + "navigationBarTitleText": "弹窗", + "navigationStyle": "custom" + } + } // ,{ - // "path": "popup/popup", - // "style": { - // "navigationBarTitleText": "弹窗", - // "navigationStyle": "custom" - // } - // }, - // { // "path": "swipeAction/swipeAction", // "style": { // "navigationBarTitleText": "滑动单元格" diff --git a/uni-app-x/pages/componentsA/overlay/overlay.nvue b/uni-app-x/pages/componentsA/overlay/overlay.uvue similarity index 88% rename from uni-app-x/pages/componentsA/overlay/overlay.nvue rename to uni-app-x/pages/componentsA/overlay/overlay.uvue index d735c6b9a..3b1eec4c7 100644 --- a/uni-app-x/pages/componentsA/overlay/overlay.nvue +++ b/uni-app-x/pages/componentsA/overlay/overlay.uvue @@ -1,4 +1,7 @@ @@ -43,6 +46,9 @@ > + + +