| @ -0,0 +1,133 @@ | |||
| <!-- 优惠券弹窗 --> | |||
| <template> | |||
| <view class="couponPopup"> | |||
| <uv-overlay :show="show" :z-index="999999"> | |||
| <view class="couponPopup-wrapper"> | |||
| <view class="main-container"> | |||
| <view class="body"> | |||
| <image src="@/pages_order/static/coupon/bg.png" mode="widthFix" class="coupon-bg"></image> | |||
| <image @click="closeCouponPopup" src="@/pages_order/static/coupon/close-btn.png" mode="widthFix" | |||
| class="close-btn"> | |||
| </image> | |||
| <view class="coupon-money"> | |||
| <text class="unit">¥</text> | |||
| <view class="money"> | |||
| 20 | |||
| </view> | |||
| </view> | |||
| <image src="@/pages_order/static/coupon/register-success.png" mode="widthFix" | |||
| class="register-success"></image> | |||
| <view class="shopping">(购物即可抵扣!)</view> | |||
| </view> | |||
| <image src="@/pages_order/static/coupon/examine.png" mode="widthFix" class="examine"></image> | |||
| </view> | |||
| </view> | |||
| </uv-overlay> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name: "CouponPopup", | |||
| data() { | |||
| return {} | |||
| }, | |||
| methods: { | |||
| //关闭新人优惠券活动 | |||
| closeCouponPopup() { | |||
| this.show = false; | |||
| } | |||
| }, | |||
| computed: { | |||
| show: { | |||
| get() { | |||
| return this.value; | |||
| }, | |||
| set(newValue) { | |||
| this.$emit('input', newValue); | |||
| } | |||
| } | |||
| }, | |||
| props: { | |||
| value: { | |||
| type: Boolean, | |||
| default: false | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .couponPopup { | |||
| .couponPopup-wrapper { | |||
| width: 100%; | |||
| height: 100vh; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| .main-container { | |||
| .body { | |||
| position: relative; | |||
| .coupon-bg {} | |||
| .close-btn { | |||
| position: absolute; | |||
| right: 0; | |||
| top: 0; | |||
| width: 50rpx; | |||
| height: 50rpx; | |||
| } | |||
| .coupon-money { | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: flex-end; | |||
| position: absolute; | |||
| left: 50%; | |||
| top: 34%; | |||
| width: 40%; | |||
| color: #FF6733; | |||
| transform: translateX(-30%); | |||
| font-weight: bold; | |||
| .unit { | |||
| font-size: 40rpx; | |||
| } | |||
| .money { | |||
| font-size: 120rpx; | |||
| line-height: 120rpx; | |||
| } | |||
| } | |||
| .register-success { | |||
| position: absolute; | |||
| top: 7%; | |||
| left: 50%; | |||
| transform: translateX(-50%); | |||
| width: 80%; | |||
| } | |||
| .shopping { | |||
| position: absolute; | |||
| bottom: 5%; | |||
| left: 50%; | |||
| transform: translateX(-50%); | |||
| color: #FEF3DD; | |||
| text-align: center; | |||
| font-size: 40rpx; | |||
| width: 80%; | |||
| } | |||
| } | |||
| .examine { | |||
| display: block; | |||
| width: 70%; | |||
| margin: 20rpx auto; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -1,133 +1,130 @@ | |||
| <template> | |||
| <view class="list"> | |||
| <view class="item" | |||
| v-for="(item, index) in list" | |||
| @click="$utils.navigateTo('/pages_order/product/productDetail?id=' + item.id)" | |||
| :key="index"> | |||
| <image | |||
| class="image" | |||
| :src="item.image && | |||
| <view class="item" v-for="(item, index) in list" | |||
| @click="$utils.navigateTo('/pages_order/product/productDetail?id=' + item.id)" :key="index"> | |||
| <image class="image" :src="item.image && | |||
| item.image.split(',')[0]" mode="aspectFill"></image> | |||
| <view class="info"> | |||
| <view class="title"> | |||
| <view class="product-info"> | |||
| <view class="product-title"> | |||
| {{ item.title }} | |||
| </view> | |||
| <view style="display: flex;align-items: flex-end;"> | |||
| <view class="price"> | |||
| <text>¥{{ item.price }}</text>/件 | |||
| </view> | |||
| <view class="oldPrice"> | |||
| <text>¥{{ item.oldPrice }}</text>/件 | |||
| </view> | |||
| </view> | |||
| <!-- <view class="favorable"> | |||
| <view class="t"> | |||
| 限时优惠 | |||
| <view class="product-main"> | |||
| <view class="sale-information"> | |||
| <view style="display: flex;align-items: flex-end;"> | |||
| <view class="price"> | |||
| <text>¥{{ item.price }}</text>/件 | |||
| </view> | |||
| <view class="oldPrice"> | |||
| <text>¥{{ item.oldPrice }}</text>/件 | |||
| </view> | |||
| </view> | |||
| <view class="num"> | |||
| 已售卖5000+件 | |||
| </view> | |||
| </view> | |||
| <view class="p"> | |||
| ¥48 | |||
| <view class="btn"> | |||
| 购买 | |||
| </view> | |||
| </view> --> | |||
| <view class="num"> | |||
| 已售卖5000+件 | |||
| </view> | |||
| </view> | |||
| <view class="btn"> | |||
| 购买 | |||
| <!-- <uv-icon name="shopping-cart" | |||
| color="#fff"></uv-icon> --> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name:"productList", | |||
| props : { | |||
| list : { | |||
| default : [] | |||
| name: "productList", | |||
| props: { | |||
| list: { | |||
| default: [] | |||
| }, | |||
| }, | |||
| data() { | |||
| return { | |||
| }; | |||
| }, | |||
| methods : { | |||
| methods: { | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .list{ | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| .item{ | |||
| position: relative; | |||
| width: 300rpx; | |||
| padding: 20rpx; | |||
| // padding-bottom: 50rpx; | |||
| background-color: #fff; | |||
| border-radius: 20rpx; | |||
| margin-top: 20rpx; | |||
| &:nth-child(odd){ | |||
| margin-right: 20rpx; | |||
| } | |||
| .image{ | |||
| width: 300rpx; | |||
| height: 250rpx; | |||
| .list { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| .item { | |||
| position: relative; | |||
| width: 345rpx; | |||
| padding: 20rpx; | |||
| box-sizing: border-box; | |||
| background-color: #fff; | |||
| border-radius: 20rpx; | |||
| } | |||
| .info{ | |||
| font-size: 24rpx; | |||
| .title{ | |||
| font-size: 28rpx; | |||
| overflow:hidden; //超出的文本隐藏 | |||
| text-overflow:ellipsis; //溢出用省略号显示 | |||
| white-space:nowrap; //溢出不换行 | |||
| } | |||
| .price{ | |||
| color: $uni-color; | |||
| margin-top: 6rpx; | |||
| text{ | |||
| font-size: 30rpx; | |||
| font-weight: 900; | |||
| } | |||
| } | |||
| .oldPrice{ | |||
| color: #888; | |||
| text-decoration: line-through; | |||
| margin-left: 20rpx; | |||
| .image { | |||
| width: 300rpx; | |||
| height: 250rpx; | |||
| border-radius: 20rpx; | |||
| } | |||
| .favorable{ | |||
| display: flex; | |||
| background-image: url(/static/image/product/favorable.png); | |||
| background-size: 100% 100%; | |||
| width: fit-content; | |||
| padding: 5rpx 10rpx; | |||
| font-size: 18rpx; | |||
| margin-top: 6rpx; | |||
| .p{ | |||
| color: #fff; | |||
| margin-left: 10rpx; | |||
| .product-info { | |||
| font-size: 24rpx; | |||
| .product-title {} | |||
| .product-main { | |||
| display: flex; | |||
| .sale-information { | |||
| width: 75%; | |||
| .title { | |||
| font-size: 28rpx; | |||
| overflow: hidden; //超出的文本隐藏 | |||
| text-overflow: ellipsis; //溢出用省略号显示 | |||
| white-space: nowrap; //溢出不换行 | |||
| } | |||
| .price { | |||
| color: $uni-color; | |||
| margin-top: 6rpx; | |||
| text { | |||
| font-size: 30rpx; | |||
| font-weight: 900; | |||
| } | |||
| } | |||
| .oldPrice { | |||
| color: #888; | |||
| text-decoration: line-through; | |||
| } | |||
| .num { | |||
| margin-top: 6rpx; | |||
| font-size: 22rpx; | |||
| color: #888; | |||
| } | |||
| } | |||
| .btn { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| border-radius: 10rpx; | |||
| font-size: 24rpx; | |||
| height: 60rpx; | |||
| width: 25%; | |||
| color: #fff; | |||
| background-color: $uni-color; | |||
| } | |||
| } | |||
| } | |||
| .num{ | |||
| margin-top: 6rpx; | |||
| font-size: 22rpx; | |||
| color: #888; | |||
| } | |||
| } | |||
| .btn{ | |||
| padding: 10rpx 20rpx; | |||
| border-radius: 10rpx; | |||
| font-size: 24rpx; | |||
| color: #fff; | |||
| margin-left: auto; | |||
| width: fit-content; | |||
| background-color: $uni-color; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,141 @@ | |||
| <!-- 会员卡片页面 --> | |||
| <template> | |||
| <view class="member-card"> | |||
| <!-- 导航栏 --> | |||
| <navbar title="会员" leftClick @leftClick="$utils.navigateBack" /> | |||
| <!-- 会员列表 --> | |||
| <view class="member-list"> | |||
| <view v-for="item in memberList" :key="item.id" class="member-item"> | |||
| <image :src="item.memberBg" mode="widthFix" class="member-image"></image> | |||
| <view class="member-info"> | |||
| <view class="profile-photo"> | |||
| <image src="@/pages_order/static/card/profilePhoto.png" mode="widthFix" class="pro-img"></image> | |||
| <view class="open-status"> | |||
| 暂未开通 | |||
| </view> | |||
| </view> | |||
| <view class="open"> | |||
| 立即开通 | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 小会员列表 --> | |||
| <view class="member-list-min"> | |||
| <image v-for="item in minMemberList" :key="item.id" :src="item.icon" mode="heightFix" class="member-icon"></image> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name: 'MenberCard', | |||
| data() { | |||
| return { | |||
| memberList: [{ | |||
| id: 1, | |||
| memberBg: "/pages_order/static/card/diamond.png", | |||
| }, | |||
| { | |||
| id: 2, | |||
| memberBg: "/pages_order/static/card/gold.png", | |||
| }, | |||
| { | |||
| id: 3, | |||
| memberBg: "/pages_order/static/card/silver.png", | |||
| } | |||
| ], | |||
| minMemberList: [{ | |||
| id: 1, | |||
| icon: "/pages_order/static/card/diamond-min.png", | |||
| }, | |||
| { | |||
| id: 2, | |||
| icon: "/pages_order/static/card/gold-min.png", | |||
| }, | |||
| { | |||
| id: 3, | |||
| icon: "/pages_order/static/card/sliver-min.png", | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .member-card { | |||
| background: white; | |||
| min-height: 100vh; | |||
| // 会员列表 | |||
| .member-list { | |||
| padding: 20rpx; | |||
| box-sizing: border-box; | |||
| .member-item { | |||
| position: relative; | |||
| .member-image { | |||
| width: 100%; | |||
| } | |||
| .member-info { | |||
| position: absolute; | |||
| bottom: 30rpx; | |||
| left: 0rpx; | |||
| display: flex; | |||
| justify-content: space-between; | |||
| padding: 0rpx 40rpx; | |||
| box-sizing: border-box; | |||
| width: 100%; | |||
| .profile-photo { | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| .pro-img { | |||
| width: 60rpx; | |||
| height: 60rpx; | |||
| } | |||
| .open-status { | |||
| color: #F8A95F; | |||
| border: 1px solid #F8A95F; | |||
| border-radius: 30rpx; | |||
| padding: 7rpx 20rpx; | |||
| margin-left: 10rpx; | |||
| } | |||
| } | |||
| .open { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| background: #F8A95F; | |||
| color: white; | |||
| border-radius: 30rpx; | |||
| padding: 7rpx 20rpx; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // 小会员列表 | |||
| .member-list-min { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| margin: 20rpx 0rpx 0rpx 0rpx; | |||
| .member-icon { | |||
| height: 80rpx; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,406 @@ | |||
| <!-- 会员中心页面 --> | |||
| <template> | |||
| <view class="member-center"> | |||
| <!-- 导航栏 --> | |||
| <navbar title="会员中心" leftClick @leftClick="$utils.navigateBack" /> | |||
| <!-- 会员卡片 --> | |||
| <swiper :slides-per-view="3" :space-between="50" @swiper="onSwiper" @slideChange="onSlideChange"> | |||
| <swiper-slide v-for="item in memberList" :key="item.id" class="member-item"> | |||
| <image :src="item.memberBg" mode="widthFix" class="member-image"></image> | |||
| <view class="member-info"> | |||
| <view class="profile-photo"> | |||
| <image src="@/pages_order/static/card/profilePhoto.png" mode="widthFix" class="pro-img"> | |||
| </image> | |||
| <view class="open-status"> | |||
| 暂未开通 | |||
| </view> | |||
| </view> | |||
| <view class="open"> | |||
| 立即开通 | |||
| </view> | |||
| </view> | |||
| </swiper-slide> | |||
| </swiper> | |||
| <!-- 充值套餐 --> | |||
| <view class="top-up-package"> | |||
| <view class="title"> | |||
| 充值套餐 | |||
| </view> | |||
| <view class="set-meal-list"> | |||
| <view v-for="item in cardList" :key="item.id" :class="{'active-set-meal-item' : item.id == 1}" | |||
| class="set-meal-item"> | |||
| <view class="card-tag"> | |||
| 限时折扣 | |||
| </view> | |||
| <view class="card-title">{{ item.title }}</view> | |||
| <view class="money"> | |||
| <text class="unit">¥</text>{{ item.money }} | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="member-descript"> | |||
| (不同会员等级商品价格不一样,可以设置给与推荐人佣金。) | |||
| </view> | |||
| </view> | |||
| <!-- 会员权益 --> | |||
| <view class="member-equity-title"> | |||
| <image src="@/pages_order/static/memberCenter/equity.png" mode="widthFix" class="eqyity-img"></image> | |||
| </view> | |||
| <view class="equity-card-list"> | |||
| <view v-for="(item,index) in equityList" :key="item.id" class="equity-card"> | |||
| <view class="equity-title">{{ item.title }}</view> | |||
| <view class="equity-descript-list"> | |||
| <view class="equity-descript-icon"> | |||
| <image :src="item.icon" mode="widthFix" class="equity-descript-img"></image> | |||
| </view> | |||
| <view v-for="(litem,lindex) in item.list" :key="lindex" class="equity-descript-item"> | |||
| <view class="num"> | |||
| {{ lindex + 1 }} | |||
| </view> | |||
| <view class="content"> | |||
| {{ litem }} | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| import { | |||
| Swiper, | |||
| SwiperSlide | |||
| } from 'vue-awesome-swiper' | |||
| import 'swiper/css/swiper.css' | |||
| export default { | |||
| name: "MemberCenter", | |||
| data() { | |||
| return { | |||
| memberList: [{ | |||
| id: 1, | |||
| memberBg: "/pages_order/static/card/diamond.png", | |||
| }, | |||
| { | |||
| id: 2, | |||
| memberBg: "/pages_order/static/card/gold.png", | |||
| }, | |||
| { | |||
| id: 3, | |||
| memberBg: "/pages_order/static/card/silver.png", | |||
| } | |||
| ], | |||
| list: [ | |||
| 'https://cdn.uviewui.com/uview/swiper/swiper3.png', | |||
| 'https://cdn.uviewui.com/uview/swiper/swiper2.png', | |||
| 'https://cdn.uviewui.com/uview/swiper/swiper1.png' | |||
| ], | |||
| memberList: [{ | |||
| id: 1, | |||
| memberBg: "/pages_order/static/card/diamond.png", | |||
| }, | |||
| { | |||
| id: 2, | |||
| memberBg: "/pages_order/static/card/gold.png", | |||
| }, | |||
| { | |||
| id: 3, | |||
| memberBg: "/pages_order/static/card/silver.png", | |||
| } | |||
| ], | |||
| cardList: [{ | |||
| id: 1, | |||
| title: "金卡", | |||
| money: "39" | |||
| }, | |||
| { | |||
| id: 2, | |||
| title: "银卡", | |||
| money: "29" | |||
| }, | |||
| { | |||
| id: 3, | |||
| title: "钻石卡", | |||
| money: "99" | |||
| } | |||
| ], | |||
| equityList: [{ | |||
| id: 1, | |||
| title: "权益1·专属推广码", | |||
| icon: "/pages_order/static/memberCenter/descript1.png", | |||
| list: [ | |||
| "购买会员卡或者购物金额满500元!有专属推广码。", | |||
| "显示直推,间推人员信息及下单佣金明细。" | |||
| ] | |||
| }, | |||
| { | |||
| id: 2, | |||
| title: "权益2·直推奖励", | |||
| icon: "/pages_order/static/memberCenter/descript2.png", | |||
| list: [ | |||
| "通过扫专属推广码进来的用户下单,享受30%的直推奖励!(比例可调)", | |||
| "显示直推,间推人员信息及下单佣金明细。" | |||
| ] | |||
| }, | |||
| { | |||
| id: 3, | |||
| title: "权益3·间推奖励", | |||
| icon: "/pages_order/static/memberCenter/descript1.png", | |||
| list: [ | |||
| "下级发展的用户下单,享受20%的间推奖励!(比例可调)", | |||
| ] | |||
| }, | |||
| { | |||
| id: 4, | |||
| title: "权益4·会员等级奖励", | |||
| icon: "/pages_order/static/memberCenter/descript2.png", | |||
| list: [ | |||
| "银,金,钻不同会员等级,同一个商品分佣比例不一样,等级越高,佣金比例越高!" | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| methods: { | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .member-center { | |||
| //会员卡片 | |||
| .member-image { | |||
| width: 100%; | |||
| } | |||
| .member-info { | |||
| position: absolute; | |||
| bottom: 30rpx; | |||
| left: 0rpx; | |||
| display: flex; | |||
| justify-content: space-between; | |||
| padding: 0rpx 40rpx; | |||
| box-sizing: border-box; | |||
| width: 100%; | |||
| .profile-photo { | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| .pro-img { | |||
| width: 60rpx; | |||
| height: 60rpx; | |||
| } | |||
| .open-status { | |||
| color: #F8A95F; | |||
| border: 1px solid #F8A95F; | |||
| border-radius: 30rpx; | |||
| padding: 7rpx 20rpx; | |||
| margin-left: 10rpx; | |||
| } | |||
| } | |||
| .open { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| background: #F8A95F; | |||
| color: white; | |||
| border-radius: 30rpx; | |||
| padding: 7rpx 20rpx; | |||
| } | |||
| } | |||
| // 充值套餐 | |||
| .top-up-package { | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| .title { | |||
| font-size: 36rpx; | |||
| font-weight: bold; | |||
| margin-top: 30rpx; | |||
| } | |||
| .set-meal-list { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| margin-top: 20rpx; | |||
| .set-meal-item { | |||
| position: relative; | |||
| width: 30%; | |||
| margin-right: calc(9% / 2); | |||
| border-radius: 10rpx; | |||
| overflow: hidden; | |||
| box-sizing: border-box; | |||
| background: white; | |||
| margin-bottom: 20rpx; | |||
| padding: 40rpx; | |||
| &:nth-child(3n) { | |||
| margin-right: 0rpx; | |||
| } | |||
| .card-tag { | |||
| position: absolute; | |||
| left: 0; | |||
| top: 0; | |||
| background: #FF9633; | |||
| border-bottom-right-radius: 10rpx; | |||
| color: white; | |||
| padding: 5rpx 10rpx; | |||
| font-size: 20rpx; | |||
| } | |||
| .card-title { | |||
| text-align: center; | |||
| font-size: 38rpx; | |||
| font-weight: bold; | |||
| } | |||
| .money { | |||
| color: #FF9633; | |||
| font-size: 30rpx; | |||
| text-align: center; | |||
| .unit {} | |||
| } | |||
| } | |||
| .active-set-meal-item { | |||
| border: 2rpx solid #FF9633; | |||
| background: #FFF5EB; | |||
| } | |||
| } | |||
| .member-descript { | |||
| font-size: 24rpx; | |||
| color: #333333; | |||
| text-align: center; | |||
| } | |||
| } | |||
| // 会员权益 | |||
| .member-equity-title { | |||
| margin: 30rpx 0rpx; | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| .eqyity-img { | |||
| width: 240rpx; | |||
| } | |||
| } | |||
| .equity-card-list { | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| .equity-card { | |||
| background: white; | |||
| border-radius: 10rpx; | |||
| margin-bottom: 40rpx; | |||
| padding: 20rpx; | |||
| box-sizing: border-box; | |||
| .equity-title { | |||
| color: #F18F09; | |||
| font-size: 28rpx; | |||
| font-weight: bold; | |||
| } | |||
| .equity-descript-list { | |||
| position: relative; | |||
| .equity-descript-icon { | |||
| .equity-descript-img { | |||
| width: 150rpx; | |||
| } | |||
| } | |||
| .equity-descript-item { | |||
| position: relative; | |||
| background: #FDF9EF; | |||
| border-radius: 10rpx; | |||
| border: 1px solid #F7C47B; | |||
| margin: 20rpx 0rpx; | |||
| padding: 20rpx; | |||
| box-sizing: border-box; | |||
| color: #BA7E2B; | |||
| font-size: 24rpx; | |||
| .num { | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| position: absolute; | |||
| top: -15rpx; | |||
| left: -15rpx; | |||
| width: 30rpx; | |||
| height: 30rpx; | |||
| border-radius: 50%; | |||
| background: #F18F09; | |||
| border: 2px solid #F8CB8E; | |||
| box-sizing: border-box; | |||
| color: white; | |||
| font-size: 24rpx; | |||
| } | |||
| } | |||
| } | |||
| &:nth-child(1) { | |||
| .equity-descript-list { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| flex-wrap: wrap; | |||
| .equity-descript-icon { | |||
| position: absolute; | |||
| bottom: 100%; | |||
| right: 0rpx; | |||
| z-index: 200; | |||
| } | |||
| .equity-descript-item { | |||
| width: 49%; | |||
| } | |||
| } | |||
| } | |||
| &:nth-child(2) { | |||
| .equity-descript-icon { | |||
| position: absolute; | |||
| bottom: -10%; | |||
| right: 0rpx; | |||
| z-index: 200; | |||
| } | |||
| .equity-descript-item { | |||
| &:nth-child(3) { | |||
| width: calc(100% - 160rpx); | |||
| margin-right: 10rpx; | |||
| } | |||
| } | |||
| } | |||
| &:nth-child(3), | |||
| &:nth-child(4) { | |||
| .equity-descript-icon { | |||
| position: absolute; | |||
| bottom: 100%; | |||
| right: 0rpx; | |||
| z-index: 200; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,119 @@ | |||
| <!-- 更多商品 --> | |||
| <template> | |||
| <view class="more-commodity"> | |||
| <!-- 导航栏 --> | |||
| <navbar title="商品" leftClick @leftClick="$utils.navigateBack" /> | |||
| <view class="more-commodity-header"> | |||
| <!-- 搜索栏 --> | |||
| <view class="search"> | |||
| <uv-search placeholder="搜你喜欢的产品" bgColor="#fff" @search="getData" @custom="getData" | |||
| v-model="queryParams.title"></uv-search> | |||
| </view> | |||
| <!-- 筛选过滤 --> | |||
| <view class="filtration"> | |||
| <view v-for="(item,index) in filtrationList" :key="index" | |||
| :class="{ 'filtration-acitve-item' : activeFiltration == index }" @click="changeFiltration(index)" | |||
| class="filtration-item"> | |||
| {{ item }} | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 商品列表 --> | |||
| <view class="product-list"> | |||
| <productList :list="commodiryList" /> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| import productList from '@/components/user/productList.vue' | |||
| export default { | |||
| name: "MoreCommodity", | |||
| components: { | |||
| productList | |||
| }, | |||
| data() { | |||
| return { | |||
| filtrationList: ['综合', '销量', '价格', '上新'], | |||
| activeFiltration: 0, | |||
| commodiryList: [] | |||
| } | |||
| }, | |||
| onShow() { | |||
| this.getRiceCommonProductList(); | |||
| }, | |||
| methods: { | |||
| //修改过滤条件 | |||
| changeFiltration(index) { | |||
| this.activeFiltration = index; | |||
| //重新获取数据逻辑 | |||
| }, | |||
| // 获取常规产品 | |||
| getRiceCommonProductList() { | |||
| this.$api('getRiceCommonProductList', res => { | |||
| uni.stopPullDownRefresh() | |||
| if (res.code == 200) { | |||
| this.commodiryList = res.result | |||
| } | |||
| }) | |||
| }, | |||
| //搜索 | |||
| getData() { | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .more-commodity { | |||
| .more-commodity-header { | |||
| background: white; | |||
| padding: 20rpx; | |||
| // 搜索栏 | |||
| .search { | |||
| border: 1px solid #F0F0F0; | |||
| border-radius: 41rpx; | |||
| padding: 10rpx 20rpx; | |||
| display: flex; | |||
| align-items: center; | |||
| /deep/ .uv-search__action { | |||
| background-color: $uni-color; | |||
| color: #FFFFFF; | |||
| padding: 10rpx 20rpx; | |||
| border-radius: 30rpx; | |||
| } | |||
| } | |||
| // 筛选过滤 | |||
| .filtration { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| padding: 30rpx 20rpx; | |||
| .filtration-item { | |||
| font-size: 36rpx; | |||
| } | |||
| .filtration-acitve-item { | |||
| color: $uni-color; | |||
| } | |||
| } | |||
| } | |||
| // 商品列表 | |||
| .product-list { | |||
| padding-top: 20rpx; | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,270 @@ | |||
| <!-- 合伙人页面 --> | |||
| <template> | |||
| <view class="partner"> | |||
| <!-- 导航栏 --> | |||
| <navbar title="合伙人" leftClick @leftClick="$utils.navigateBack" /> | |||
| <!-- 合伙人信息 --> | |||
| <view class="partner-info-bg"> | |||
| <view class="partner-info"> | |||
| <view class="profile-photo"> | |||
| <image src="@/pages_order/static/card/profilePhoto.png" mode="widthFix" class="pro-img"></image> | |||
| </view> | |||
| <view class="performance-information"> | |||
| <view class="user-info-base"> | |||
| <view class="username">18200000000</view> | |||
| <view class="user-tag">合伙人</view> | |||
| </view> | |||
| <view class="live-performance"> | |||
| <view class="live-performance-money"> | |||
| <view class="live-tag"> | |||
| 直推及间推业绩 | |||
| </view> | |||
| <view class="money"> | |||
| <text class="unit">¥</text>666 | |||
| </view> | |||
| </view> | |||
| <view class="withdraw"> | |||
| <view class="btn"> | |||
| 去提现 | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="tabs"> | |||
| <uv-tabs :list="tabList" @click="click"></uv-tabs> | |||
| </view> | |||
| <!-- 佣金列表 --> | |||
| <view class="brokerage-list"> | |||
| <view v-for="item in 10" :key="item" class="brokerage-item"> | |||
| <view class="brokerage-user"> | |||
| <image src="@/pages_order/static/card/profilePhoto.png" mode="widthFix" class="pro-img"></image> | |||
| <view class="name-time"> | |||
| <view class="name"> | |||
| 用户138xxxxxxxx | |||
| </view> | |||
| <view class="time"> | |||
| 已加入平台120天 | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="brokerage-money"> | |||
| <view class="order-money"> | |||
| 下单量: <text>666</text> | |||
| </view> | |||
| <text>|</text> | |||
| <view class="money"> | |||
| 佣金:<text>666元</text> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name: "Partner", | |||
| data() { | |||
| return { | |||
| tabList: [{ | |||
| name: '直推用户' | |||
| }, | |||
| { | |||
| name: '间推用户' | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .partner { | |||
| // 合伙人信息 | |||
| .partner-info-bg { | |||
| background: $uni-color; | |||
| padding: 60rpx 0rpx; | |||
| .partner-info { | |||
| display: flex; | |||
| align-items: center; | |||
| background: white; | |||
| border-radius: 20rpx; | |||
| box-sizing: border-box; | |||
| padding: 20rpx; | |||
| width: 90%; | |||
| margin: 0rpx auto; | |||
| .profile-photo { | |||
| width: 25%; | |||
| .pro-img { | |||
| width: 100%; | |||
| aspect-ratio: 1, 1; | |||
| } | |||
| } | |||
| .performance-information { | |||
| width: 75%; | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| .user-info-base { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| align-items: center; | |||
| border-bottom: 2px dashed $uni-color; | |||
| padding: 20rpx 0rpx; | |||
| .username { | |||
| font-size: 36rpx; | |||
| } | |||
| .user-tag { | |||
| background: black; | |||
| color: white; | |||
| margin-left: 20rpx; | |||
| border-radius: 20rpx; | |||
| padding: 3rpx 10rpx; | |||
| font-size: 28rpx; | |||
| } | |||
| } | |||
| .live-performance { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| padding: 20rpx 0rpx; | |||
| box-sizing: border-box; | |||
| .live-performance-money { | |||
| width: 50%; | |||
| .live-tag { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| background: #F99F9F; | |||
| color: #DC2828; | |||
| border-radius: 40rpx; | |||
| font-weight: bold; | |||
| font-size: 28rpx; | |||
| padding: 10rpx 0rpx; | |||
| } | |||
| .money { | |||
| font-size: 45rpx; | |||
| color: $uni-color; | |||
| font-weight: bold; | |||
| .unit { | |||
| font-size: 32rpx; | |||
| } | |||
| } | |||
| } | |||
| .withdraw { | |||
| display: flex; | |||
| flex-direction: column; | |||
| justify-content: center; | |||
| align-items: flex-end; | |||
| width: 50%; | |||
| .btn { | |||
| width: 90%; | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| background: #DC2828; | |||
| color: white; | |||
| border-radius: 40rpx; | |||
| padding: 20rpx 0rpx; | |||
| font-weight: bold; | |||
| font-size: 32rpx; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .tabs { | |||
| background: white; | |||
| } | |||
| // 佣金列表 | |||
| .brokerage-list { | |||
| padding: 0rpx 20rpx; | |||
| .brokerage-item { | |||
| display: flex; | |||
| align-items: center; | |||
| flex-wrap: wrap; | |||
| background: white; | |||
| margin: 20rpx 0rpx; | |||
| border-radius: 20rpx; | |||
| padding: 20rpx; | |||
| box-sizing: border-box; | |||
| .brokerage-user { | |||
| width: 50%; | |||
| display: flex; | |||
| align-items: center; | |||
| flex-wrap: wrap; | |||
| .pro-img { | |||
| width: 100rpx; | |||
| height: 100rpx; | |||
| } | |||
| .name-time { | |||
| width: calc(100% - 100rpx); | |||
| padding: 0rpx 20rpx; | |||
| box-sizing: border-box; | |||
| .name { | |||
| font-size: 32rpx; | |||
| white-space: nowrap; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| } | |||
| .time { | |||
| color: #999999; | |||
| font-size: 26rpx; | |||
| } | |||
| } | |||
| } | |||
| .brokerage-money { | |||
| width: 50%; | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| justify-content: space-between; | |||
| .order-money { | |||
| text { | |||
| margin-left: 10rpx; | |||
| } | |||
| } | |||
| .money { | |||
| text { | |||
| color: #FEB814; | |||
| margin-left: 10rpx; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -1,89 +0,0 @@ | |||
| <template> | |||
| <view class="page"> | |||
| <navbar title="推广明细" leftClick @leftClick="$utils.navigateBack" /> | |||
| <view class="top"> | |||
| <view class="top-text"> | |||
| <view>{{ total }}</view> | |||
| <view>直推人数</view> | |||
| </view> | |||
| </view> | |||
| <view class="cell"> | |||
| <view class="cell-top">推广明细</view> | |||
| <view class="cell-box" | |||
| :key="index" | |||
| v-for="(item,index) in list"> | |||
| <uv-cell-group> | |||
| <uv-cell | |||
| :title="item.nickName" | |||
| :label="item.createTime" | |||
| :center="true"> | |||
| <template #value> | |||
| <text style="font-weight: 600; font-size: 28rpx;"> | |||
| {{ vipType[item.isPay] }} | |||
| </text> | |||
| </template> | |||
| </uv-cell> | |||
| </uv-cell-group> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| import mixinsList from '@/mixins/list.js' | |||
| export default { | |||
| mixins : [mixinsList], | |||
| data() { | |||
| return { | |||
| mixinsListApi : 'getFansPageList', | |||
| vipType : ['普通会员', '黄金会员', '渠道商'], | |||
| } | |||
| }, | |||
| onLoad(e) {}, | |||
| methods: { | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .page { | |||
| background-color: #F3F3F3; | |||
| height: 100vh; | |||
| .top { | |||
| display: flex; | |||
| height: 400rpx; | |||
| justify-content: center; | |||
| align-items: center; | |||
| color: #474747; | |||
| .top-text { | |||
| text-align: center; | |||
| view:nth-child(1) { | |||
| font-size: 78rpx; | |||
| font-weight: 600; | |||
| } | |||
| view:nth-child(2) { | |||
| font-size: 28rpx; | |||
| } | |||
| } | |||
| } | |||
| .cell { | |||
| margin: 20rpx; | |||
| background-color: #FFFFFF; | |||
| border-radius: 16rpx; | |||
| .cell-top { | |||
| padding: 40rpx 34rpx; | |||
| color: #474747; | |||
| font-size: 34rpx; | |||
| font-weight: 600; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -1,162 +0,0 @@ | |||
| <template> | |||
| <view class="page"> | |||
| <navbar title="推广明细" leftClick @leftClick="$utils.navigateBack" /> | |||
| <view class="search"> | |||
| <uv-search | |||
| placeholder="会员ID/昵称" | |||
| bgColor="#fff" | |||
| @search="getData" | |||
| @custom="getData" | |||
| v-model="queryParams.title"></uv-search> | |||
| </view> | |||
| <view class="top"> | |||
| <view class="top-text"> | |||
| <view>{{ total }}</view> | |||
| <view>直推人数</view> | |||
| </view> | |||
| </view> | |||
| <view class="cell"> | |||
| <!-- <view class="cell-top">推广明细</view> --> | |||
| <view class="cell-box" | |||
| :key="index" | |||
| v-for="(item,index) in list"> | |||
| <view class="headImage"> | |||
| <image :src="item.headImage" mode="aspectFill"></image> | |||
| </view> | |||
| <view class="info"> | |||
| <view | |||
| style="width: 300rpx;"> | |||
| <text>昵称:</text> | |||
| {{ item.nickName }} | |||
| </view> | |||
| <view style="display: flex;align-items: center;" | |||
| @click="$utils.copyText(item.shareId)"> | |||
| <text>上级ID:</text> | |||
| {{ item.shareId && item.shareId.substring(0, 8) }}... | |||
| <uv-icon name="empty-news" color="#aaa" size="40"></uv-icon> | |||
| </view> | |||
| </view> | |||
| <view class="info"> | |||
| <view class=""> | |||
| <text>级别:</text> | |||
| 直属下级 | |||
| </view> | |||
| <view class=""> | |||
| <text>时间:</text> | |||
| {{ $dayjs(item.createTime).format('YYYY-MM-DD') }} | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| import mixinsList from '@/mixins/list.js' | |||
| export default { | |||
| mixins : [mixinsList], | |||
| data() { | |||
| return { | |||
| mixinsListApi : 'getFansPageList', | |||
| vipType : ['普通会员', '黄金会员', '渠道商'], | |||
| } | |||
| }, | |||
| onLoad(e) { | |||
| // this.queryParams.xxx = id | |||
| }, | |||
| methods: { | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .page { | |||
| background-color: #F3F3F3; | |||
| height: 100vh; | |||
| .search { | |||
| position: relative; | |||
| background: #FFFFFF; | |||
| margin: 20rpx; | |||
| border-radius: 41rpx; | |||
| padding: 10rpx 20rpx; | |||
| display: flex; | |||
| align-items: center; | |||
| /deep/ .uv-search__action { | |||
| background-color: $uni-color; | |||
| color: #FFFFFF; | |||
| padding: 10rpx 20rpx; | |||
| border-radius: 30rpx; | |||
| } | |||
| } | |||
| .top { | |||
| display: flex; | |||
| height: 200rpx; | |||
| justify-content: center; | |||
| align-items: center; | |||
| color: #474747; | |||
| .top-text { | |||
| text-align: center; | |||
| view:nth-child(1) { | |||
| font-size: 78rpx; | |||
| font-weight: 600; | |||
| } | |||
| view:nth-child(2) { | |||
| font-size: 28rpx; | |||
| } | |||
| } | |||
| } | |||
| .cell { | |||
| .cell-box{ | |||
| border-radius: 16rpx; | |||
| margin: 20rpx; | |||
| background-color: #FFFFFF; | |||
| padding: 20rpx; | |||
| display: flex; | |||
| align-items: center; | |||
| .headImage{ | |||
| width: 120rpx; | |||
| height: 120rpx; | |||
| margin-right: 20rpx; | |||
| flex-shrink: 0; | |||
| image{ | |||
| width: 100%; | |||
| height: 100%; | |||
| border-radius: 50%; | |||
| } | |||
| } | |||
| .info{ | |||
| flex: 1; | |||
| font-size: 22rpx; | |||
| flex-shrink: 0; | |||
| view{ | |||
| width: 240rpx; | |||
| overflow:hidden; //超出的文本隐藏 | |||
| text-overflow:ellipsis; //溢出用省略号显示 | |||
| white-space:nowrap; //溢出不换行 | |||
| } | |||
| text{ | |||
| font-weight: 900; | |||
| color: #474747; | |||
| } | |||
| } | |||
| } | |||
| .cell-top { | |||
| padding: 40rpx 34rpx; | |||
| color: #474747; | |||
| font-size: 34rpx; | |||
| font-weight: 600; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,177 @@ | |||
| <!-- 合伙人招募令页面 --> | |||
| <template> | |||
| <view class="recruit"> | |||
| <!-- 导航栏 --> | |||
| <navbar title="合伙人" leftClick @leftClick="$utils.navigateBack" /> | |||
| <view class="b-relative" style="width: 710rpx;margin: 20rpx;"> | |||
| <image src="@/pages_order/static/recruit/bg.png" style="width: 710rpx;height: 310rpx;"></image> | |||
| </view> | |||
| <view class="item-card"> | |||
| <view class="item-line"> | |||
| <view class="before"></view> | |||
| <view class="label">合伙人</view> | |||
| </view> | |||
| <view class="item-line"> | |||
| <view class="label">您的姓名</view> | |||
| <input placeholder="请输入姓名" v-model="partnership.name" /> | |||
| </view> | |||
| <view class="item-line"> | |||
| <view class="label">联系方式</view> | |||
| <input placeholder="请输入联系方式" v-model="partnership.phone" /> | |||
| </view> | |||
| <view class="item-line"> | |||
| <view class="label">所在地区</view> | |||
| <input placeholder="请输入所在地区" v-model="partnership.city" /> | |||
| </view> | |||
| <view class="item-line"> | |||
| <view class="label">详细地址</view> | |||
| <textarea v-model="partnership.detailAddress" placeholder="请输入详细地址"></textarea> | |||
| </view> | |||
| </view> | |||
| <view class="b-fiexd"> | |||
| <view @click="addOrUpdateMsgTer" class="button-submit">提交</view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name: "Recruit", | |||
| data() { | |||
| return { | |||
| partnership: { | |||
| name: "", | |||
| phone: "", | |||
| city: "", | |||
| detailAddress: "" | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .recruit { | |||
| .item-card { | |||
| width: calc(710rpx - 40rpx); | |||
| height: auto; | |||
| background: #ffffff; | |||
| border-radius: 16rpx; | |||
| margin: 40rpx auto 20rpx; | |||
| padding: 40rpx 20rpx; | |||
| } | |||
| .item-line { | |||
| display: flex; | |||
| height: 60rpx; | |||
| font-size: 28rpx; | |||
| font-family: PingFang SC, PingFang SC-Bold; | |||
| font-weight: 700; | |||
| text-align: left; | |||
| color: #333333; | |||
| margin-bottom: 40rpx; | |||
| &:nth-child(1) { | |||
| margin-bottom: 0rpx; | |||
| .label { | |||
| font-size: 36rpx; | |||
| } | |||
| } | |||
| &:last-child { | |||
| margin-bottom: 0rpx; | |||
| height: auto; | |||
| } | |||
| } | |||
| .item-line .before { | |||
| content: ""; | |||
| width: 8rpx; | |||
| height: 30rpx; | |||
| background: $uni-color; | |||
| border-radius: 4rpx; | |||
| margin-right: 10rpx; | |||
| margin-top: 15rpx; | |||
| } | |||
| .item-line .label { | |||
| display: flex; | |||
| align-items: center; | |||
| width: 152rpx; | |||
| height: 60rpx; | |||
| } | |||
| .item-line input, | |||
| .item-line textarea { | |||
| width: 90%; | |||
| height: 60rpx; | |||
| line-height: 60rpx; | |||
| background: #f5f5f5; | |||
| border-radius: 12rpx; | |||
| font-size: 24rpx; | |||
| font-family: PingFang SC, PingFang SC-Medium; | |||
| font-weight: 500; | |||
| text-align: left; | |||
| color: #939393; | |||
| padding: 0 20rpx; | |||
| } | |||
| .item-line textarea { | |||
| height: 120rpx; | |||
| padding: 10rpx; | |||
| } | |||
| .upload { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| width: 200rpx; | |||
| height: 200rpx; | |||
| background: rgba(245, 245, 245, 0.82); | |||
| border: 2rpx dashed #99dcd0; | |||
| border-radius: 16rpx; | |||
| margin: 10rpx 12rpx; | |||
| } | |||
| .upload-img { | |||
| width: calc(100% - 4rpx); | |||
| height: calc(100% - 4rpx); | |||
| border: 2rpx dashed #ccc; | |||
| margin: 2rpx; | |||
| } | |||
| .b-fiexd { | |||
| position: fixed; | |||
| left: 0; | |||
| bottom: 0; | |||
| width: 100%; | |||
| .button-submit { | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| width: 596rpx; | |||
| height: 90rpx; | |||
| background: #E3441A; | |||
| border-radius: 46rpx; | |||
| margin: 20rpx auto; | |||
| font-size: 28rpx; | |||
| font-family: PingFang SC, PingFang SC-Regular; | |||
| font-weight: 400; | |||
| text-align: center; | |||
| color: #ffffff; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -1 +0,0 @@ | |||
| <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1726157567630" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6220" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><path d="M513.536 628.6336c101.6832 0 280.8832 38.7072 310.8864 193.7408 77.5168-77.5168 124.928-185.9584 124.928-305.0496 0-241.152-194.6624-435.8144-435.8144-435.8144S77.7216 277.0944 77.7216 517.2224c0 119.0912 47.4112 227.6352 124.928 306.0736 30.0032-154.9312 209.2032-194.6624 310.8864-194.6624z m0-439.7056c112.3328 0 204.3904 91.0336 204.3904 204.3904 0 112.3328-91.0336 204.3904-204.3904 204.3904a203.776 203.776 0 0 1-204.3904-204.3904c0.1024-112.4352 92.0576-204.3904 204.3904-204.3904z m0 0" fill="#cdcdcd" p-id="6221"></path><path d="M515.4816 1006.8992c-65.8432 0-129.8432-12.9024-189.952-38.4-58.1632-24.576-110.2848-59.8016-155.136-104.5504A485.56032 485.56032 0 0 1 65.8432 708.8128c-25.6-60.2112-38.5024-124.1088-38.5024-189.952 0-65.8432 12.9024-129.8432 38.4-189.952 24.576-58.1632 59.8016-110.2848 104.5504-155.136 44.8512-44.8512 96.9728-79.9744 155.136-104.5504C385.6384 43.6224 449.536 30.72 515.4816 30.72c65.8432 0 129.8432 12.9024 189.952 38.4 58.1632 24.576 110.2848 59.8016 155.136 104.5504 44.8512 44.8512 79.9744 96.9728 104.5504 155.136C990.6176 389.0176 1003.52 452.9152 1003.52 518.8608c0 65.8432-12.9024 129.8432-38.4 189.952-24.576 58.1632-59.8016 110.2848-104.5504 155.136a485.56032 485.56032 0 0 1-155.136 104.5504 484.39296 484.39296 0 0 1-189.952 38.4z m0-936.8576c-60.6208 0-119.3984 11.8784-174.6944 35.2256a447.76448 447.76448 0 0 0-142.6432 96.1536A444.42624 444.42624 0 0 0 101.9904 344.064a446.70976 446.70976 0 0 0-35.2256 174.6944c0 60.6208 11.8784 119.3984 35.2256 174.6944 22.6304 53.4528 54.9888 101.4784 96.1536 142.6432 41.1648 41.2672 89.1904 73.6256 142.6432 96.1536 55.296 23.3472 114.0736 35.2256 174.6944 35.2256 60.6208 0 119.3984-11.8784 174.6944-35.2256 53.4528-22.6304 101.4784-54.9888 142.6432-96.1536 41.2672-41.1648 73.6256-89.1904 96.1536-142.6432 23.3472-55.296 35.2256-114.0736 35.2256-174.6944 0-60.6208-11.8784-119.3984-35.2256-174.6944a447.76448 447.76448 0 0 0-96.1536-142.6432 444.42624 444.42624 0 0 0-142.6432-96.1536 447.44704 447.44704 0 0 0-174.6944-35.2256z m0 0" fill="#cdcdcd" p-id="6222"></path></svg> | |||
| @ -0,0 +1,8 @@ | |||
| ## 1.0.3(2022-01-21) | |||
| - 优化 组件示例 | |||
| ## 1.0.2(2021-11-22) | |||
| - 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 | |||
| ## 1.0.1(2021-11-22) | |||
| - 修复 vue3中scss语法兼容问题 | |||
| ## 1.0.0(2021-11-18) | |||
| - init | |||
| @ -0,0 +1 @@ | |||
| @import './styles/index.scss'; | |||
| @ -0,0 +1,82 @@ | |||
| { | |||
| "id": "uni-scss", | |||
| "displayName": "uni-scss 辅助样式", | |||
| "version": "1.0.3", | |||
| "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", | |||
| "keywords": [ | |||
| "uni-scss", | |||
| "uni-ui", | |||
| "辅助样式" | |||
| ], | |||
| "repository": "https://github.com/dcloudio/uni-ui", | |||
| "engines": { | |||
| "HBuilderX": "^3.1.0" | |||
| }, | |||
| "dcloudext": { | |||
| "category": [ | |||
| "JS SDK", | |||
| "通用 SDK" | |||
| ], | |||
| "sale": { | |||
| "regular": { | |||
| "price": "0.00" | |||
| }, | |||
| "sourcecode": { | |||
| "price": "0.00" | |||
| } | |||
| }, | |||
| "contact": { | |||
| "qq": "" | |||
| }, | |||
| "declaration": { | |||
| "ads": "无", | |||
| "data": "无", | |||
| "permissions": "无" | |||
| }, | |||
| "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" | |||
| }, | |||
| "uni_modules": { | |||
| "dependencies": [], | |||
| "encrypt": [], | |||
| "platforms": { | |||
| "cloud": { | |||
| "tcb": "y", | |||
| "aliyun": "y" | |||
| }, | |||
| "client": { | |||
| "App": { | |||
| "app-vue": "y", | |||
| "app-nvue": "u" | |||
| }, | |||
| "H5-mobile": { | |||
| "Safari": "y", | |||
| "Android Browser": "y", | |||
| "微信浏览器(Android)": "y", | |||
| "QQ浏览器(Android)": "y" | |||
| }, | |||
| "H5-pc": { | |||
| "Chrome": "y", | |||
| "IE": "y", | |||
| "Edge": "y", | |||
| "Firefox": "y", | |||
| "Safari": "y" | |||
| }, | |||
| "小程序": { | |||
| "微信": "y", | |||
| "阿里": "y", | |||
| "百度": "y", | |||
| "字节跳动": "y", | |||
| "QQ": "y" | |||
| }, | |||
| "快应用": { | |||
| "华为": "n", | |||
| "联盟": "n" | |||
| }, | |||
| "Vue": { | |||
| "vue2": "y", | |||
| "vue3": "y" | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,4 @@ | |||
| `uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 | |||
| ### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) | |||
| #### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 | |||
| @ -0,0 +1,7 @@ | |||
| @import './setting/_variables.scss'; | |||
| @import './setting/_border.scss'; | |||
| @import './setting/_color.scss'; | |||
| @import './setting/_space.scss'; | |||
| @import './setting/_radius.scss'; | |||
| @import './setting/_text.scss'; | |||
| @import './setting/_styles.scss'; | |||
| @ -0,0 +1,3 @@ | |||
| .uni-border { | |||
| border: 1px $uni-border-1 solid; | |||
| } | |||
| @ -0,0 +1,66 @@ | |||
| // TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 | |||
| // @mixin get-styles($k,$c) { | |||
| // @if $k == size or $k == weight{ | |||
| // font-#{$k}:#{$c} | |||
| // }@else{ | |||
| // #{$k}:#{$c} | |||
| // } | |||
| // } | |||
| $uni-ui-color:( | |||
| // 主色 | |||
| primary: $uni-primary, | |||
| primary-disable: $uni-primary-disable, | |||
| primary-light: $uni-primary-light, | |||
| // 辅助色 | |||
| success: $uni-success, | |||
| success-disable: $uni-success-disable, | |||
| success-light: $uni-success-light, | |||
| warning: $uni-warning, | |||
| warning-disable: $uni-warning-disable, | |||
| warning-light: $uni-warning-light, | |||
| error: $uni-error, | |||
| error-disable: $uni-error-disable, | |||
| error-light: $uni-error-light, | |||
| info: $uni-info, | |||
| info-disable: $uni-info-disable, | |||
| info-light: $uni-info-light, | |||
| // 中性色 | |||
| main-color: $uni-main-color, | |||
| base-color: $uni-base-color, | |||
| secondary-color: $uni-secondary-color, | |||
| extra-color: $uni-extra-color, | |||
| // 背景色 | |||
| bg-color: $uni-bg-color, | |||
| // 边框颜色 | |||
| border-1: $uni-border-1, | |||
| border-2: $uni-border-2, | |||
| border-3: $uni-border-3, | |||
| border-4: $uni-border-4, | |||
| // 黑色 | |||
| black:$uni-black, | |||
| // 白色 | |||
| white:$uni-white, | |||
| // 透明 | |||
| transparent:$uni-transparent | |||
| ) !default; | |||
| @each $key, $child in $uni-ui-color { | |||
| .uni-#{"" + $key} { | |||
| color: $child; | |||
| } | |||
| .uni-#{"" + $key}-bg { | |||
| background-color: $child; | |||
| } | |||
| } | |||
| .uni-shadow-sm { | |||
| box-shadow: $uni-shadow-sm; | |||
| } | |||
| .uni-shadow-base { | |||
| box-shadow: $uni-shadow-base; | |||
| } | |||
| .uni-shadow-lg { | |||
| box-shadow: $uni-shadow-lg; | |||
| } | |||
| .uni-mask { | |||
| background-color:$uni-mask; | |||
| } | |||
| @ -0,0 +1,55 @@ | |||
| @mixin radius($r,$d:null ,$important: false){ | |||
| $radius-value:map-get($uni-radius, $r) if($important, !important, null); | |||
| // Key exists within the $uni-radius variable | |||
| @if (map-has-key($uni-radius, $r) and $d){ | |||
| @if $d == t { | |||
| border-top-left-radius:$radius-value; | |||
| border-top-right-radius:$radius-value; | |||
| }@else if $d == r { | |||
| border-top-right-radius:$radius-value; | |||
| border-bottom-right-radius:$radius-value; | |||
| }@else if $d == b { | |||
| border-bottom-left-radius:$radius-value; | |||
| border-bottom-right-radius:$radius-value; | |||
| }@else if $d == l { | |||
| border-top-left-radius:$radius-value; | |||
| border-bottom-left-radius:$radius-value; | |||
| }@else if $d == tl { | |||
| border-top-left-radius:$radius-value; | |||
| }@else if $d == tr { | |||
| border-top-right-radius:$radius-value; | |||
| }@else if $d == br { | |||
| border-bottom-right-radius:$radius-value; | |||
| }@else if $d == bl { | |||
| border-bottom-left-radius:$radius-value; | |||
| } | |||
| }@else{ | |||
| border-radius:$radius-value; | |||
| } | |||
| } | |||
| @each $key, $child in $uni-radius { | |||
| @if($key){ | |||
| .uni-radius-#{"" + $key} { | |||
| @include radius($key) | |||
| } | |||
| }@else{ | |||
| .uni-radius { | |||
| @include radius($key) | |||
| } | |||
| } | |||
| } | |||
| @each $direction in t, r, b, l,tl, tr, br, bl { | |||
| @each $key, $child in $uni-radius { | |||
| @if($key){ | |||
| .uni-radius-#{"" + $direction}-#{"" + $key} { | |||
| @include radius($key,$direction,false) | |||
| } | |||
| }@else{ | |||
| .uni-radius-#{$direction} { | |||
| @include radius($key,$direction,false) | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,56 @@ | |||
| @mixin fn($space,$direction,$size,$n) { | |||
| @if $n { | |||
| #{$space}-#{$direction}: #{$size*$uni-space-root}px | |||
| } @else { | |||
| #{$space}-#{$direction}: #{-$size*$uni-space-root}px | |||
| } | |||
| } | |||
| @mixin get-styles($direction,$i,$space,$n){ | |||
| @if $direction == t { | |||
| @include fn($space, top,$i,$n); | |||
| } | |||
| @if $direction == r { | |||
| @include fn($space, right,$i,$n); | |||
| } | |||
| @if $direction == b { | |||
| @include fn($space, bottom,$i,$n); | |||
| } | |||
| @if $direction == l { | |||
| @include fn($space, left,$i,$n); | |||
| } | |||
| @if $direction == x { | |||
| @include fn($space, left,$i,$n); | |||
| @include fn($space, right,$i,$n); | |||
| } | |||
| @if $direction == y { | |||
| @include fn($space, top,$i,$n); | |||
| @include fn($space, bottom,$i,$n); | |||
| } | |||
| @if $direction == a { | |||
| @if $n { | |||
| #{$space}:#{$i*$uni-space-root}px; | |||
| } @else { | |||
| #{$space}:#{-$i*$uni-space-root}px; | |||
| } | |||
| } | |||
| } | |||
| @each $orientation in m,p { | |||
| $space: margin; | |||
| @if $orientation == m { | |||
| $space: margin; | |||
| } @else { | |||
| $space: padding; | |||
| } | |||
| @for $i from 0 through 16 { | |||
| @each $direction in t, r, b, l, x, y, a { | |||
| .uni-#{$orientation}#{$direction}-#{$i} { | |||
| @include get-styles($direction,$i,$space,true); | |||
| } | |||
| .uni-#{$orientation}#{$direction}-n#{$i} { | |||
| @include get-styles($direction,$i,$space,false); | |||
| } | |||
| } | |||
| } | |||
| } | |||