From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 28 五月 2025 16:48:52 +0800 Subject: [PATCH] 初始化项目 --- uview-ui/components/u-divider/u-divider.vue | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 153 insertions(+), 0 deletions(-) diff --git a/uview-ui/components/u-divider/u-divider.vue b/uview-ui/components/u-divider/u-divider.vue new file mode 100644 index 0000000..6f8d7e6 --- /dev/null +++ b/uview-ui/components/u-divider/u-divider.vue @@ -0,0 +1,153 @@ +<template> + <view class="u-divider" :style="{ + height: height == 'auto' ? 'auto' : height + 'rpx', + backgroundColor: bgColor, + marginBottom: marginBottom + 'rpx', + marginTop: marginTop + 'rpx' + }" @tap="click"> + <view class="u-divider-line" :class="[type ? 'u-divider-line--bordercolor--' + type : '']" :style="[lineStyle]"></view> + <view v-if="useSlot" class="u-divider-text" :style="{ + color: color, + fontSize: fontSize + 'rpx' + }"><slot /></view> + <view class="u-divider-line" :class="[type ? 'u-divider-line--bordercolor--' + type : '']" :style="[lineStyle]"></view> + </view> +</template> + +<script> +/** + * divider 鍒嗗壊绾� + * @description 鍖洪殧鍐呭鐨勫垎鍓茬嚎锛屼竴鑸敤浜庨〉闈㈠簳閮�"娌℃湁鏇村"鐨勬彁绀恒�� + * @tutorial https://www.uviewui.com/components/divider.html + * @property {String Number} half-width 鏂囧瓧宸︽垨鍙宠竟绾挎潯瀹藉害锛屾暟鍊兼垨鐧惧垎姣旓紝鏁板�兼椂鍗曚綅涓簉px + * @property {String} border-color 绾挎潯棰滆壊锛屼紭鍏堢骇楂樹簬type锛堥粯璁�#dcdfe6锛� + * @property {String} color 鏂囧瓧棰滆壊锛堥粯璁�#909399锛� + * @property {String Number} fontSize 瀛椾綋澶у皬锛屽崟浣峳px锛堥粯璁�26锛� + * @property {String} bg-color 鏁翠釜divider鐨勮儗鏅鑹诧紙榛樿鍛�#ffffff锛� + * @property {String Number} height 鏁翠釜divider鐨勯珮搴︼紝鍗曚綅rpx锛堥粯璁�40锛� + * @property {String} type 灏嗙嚎鏉¤缃富棰樿壊锛堥粯璁rimary锛� + * @property {Boolean} useSlot 鏄惁浣跨敤slot浼犲叆鍐呭锛屽鏋滀笉浼犲叆锛屼腑闂翠笉浼氭湁绌洪殭锛堥粯璁rue锛� + * @property {String Number} margin-top 涓庡墠涓�涓粍浠剁殑璺濈锛屽崟浣峳px锛堥粯璁�0锛� + * @property {String Number} margin-bottom 涓庡悗涓�涓粍浠剁殑璺濈锛屽崟浣峳px锛�0锛� + * @event {Function} click divider缁勪欢琚偣鍑绘椂瑙﹀彂 + * @example <u-divider color="#fa3534">闀挎渤钀芥棩鍦�</u-divider> + */ +export default { + name: 'u-divider', + props: { + // 鍗曚竴杈筪ivider妯嚎鐨勫搴�(鏁板��)锛屽崟浣峳px銆傛垨鑰呯櫨鍒嗘瘮 + halfWidth: { + type: [Number, String], + default: 150 + }, + // divider妯嚎鐨勯鑹诧紝濡傝缃紝 + borderColor: { + type: String, + default: '#dcdfe6' + }, + // 涓婚鑹诧紝鍙互鏄痯rimary|info|success|warning|error涔嬩竴鍊� + type: { + type: String, + default: 'primary' + }, + // 鏂囧瓧棰滆壊 + color: { + type: String, + default: '#909399' + }, + // 鏂囧瓧澶у皬锛屽崟浣峳px + fontSize: { + type: [Number, String], + default: 26 + }, + // 鏁翠釜divider鐨勮儗鏅鑹� + bgColor: { + type: String, + default: '#ffffff' + }, + // 鏁翠釜divider鐨勯珮搴﹀崟浣峳px + height: { + type: [Number, String], + default: 'auto' + }, + // 涓婅竟璺� + marginTop: { + type: [String, Number], + default: 0 + }, + // 涓嬭竟璺� + marginBottom: { + type: [String, Number], + default: 0 + }, + // 鏄惁浣跨敤slot浼犲叆鍐呭锛屽鏋滀笉鐢╯lot浼犲叆鍐呭锛屽厛鐨勪腑闂村氨涓嶄細鏈夌┖闅� + useSlot: { + type: Boolean, + default: true + } + }, + computed: { + lineStyle() { + let style = {}; + if(String(this.halfWidth).indexOf('%') != -1) style.width = this.halfWidth; + else style.width = this.halfWidth + 'rpx'; + // borderColor浼樺厛绾ч珮浜巘ype鍊� + if(this.borderColor) style.borderColor = this.borderColor; + return style; + } + }, + methods: { + click() { + this.$emit('click'); + } + } +}; +</script> + +<style lang="scss" scoped> +@import "../../libs/css/style.components.scss"; +.u-divider { + width: 100%; + position: relative; + text-align: center; + @include vue-flex; + justify-content: center; + align-items: center; + overflow: hidden; + flex-direction: row; +} + +.u-divider-line { + border-bottom: 1px solid $u-border-color; + transform: scale(1, 0.5); + transform-origin: center; + + &--bordercolor--primary { + border-color: $u-type-primary; + } + + &--bordercolor--success { + border-color: $u-type-success; + } + + &--bordercolor--error { + border-color: $u-type-primary; + } + + &--bordercolor--info { + border-color: $u-type-info; + } + + &--bordercolor--warning { + border-color: $u-type-warning; + } +} + +.u-divider-text { + white-space: nowrap; + padding: 0 16rpx; + /* #ifndef APP-NVUE */ + display: inline-flex; + /* #endif */ +} +</style> -- Gitblit v1.9.3