master
游梦婷 2 years ago
parent 0c5aa2ba6a
commit 923e854bd0
  1. 13
      App.vue
  2. 270
      components/J-skeleton/J-skeleton.vue
  3. 77
      components/J-skeleton/README.md
  4. 36
      components/cart-choose/cart-choose.vue
  5. 1148
      components/goods-list/goods-list.vue
  6. 94
      components/search/search.vue
  7. 2
      components/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue
  8. 2
      components/wyb-popup/wyb-popup.vue
  9. 4
      manifest.json
  10. 14
      pages.json
  11. 34
      pages/tabBar/classify/classify.css
  12. 161
      pages/tabBar/classify/classify.vue
  13. 2
      pages/user/order_list/order_list.vue
  14. 140
      physical-merchants/address/addNewAddress/addNewAddress.vue
  15. 54
      physical-merchants/address/address.vue
  16. 119
      physical-merchants/classify/cart/cart.vue
  17. 4
      physical-merchants/classify/goods-search/goods-search.vue
  18. 12
      physical-merchants/classify/goodsDetail/goodsDetail.vue
  19. 4
      physical-merchants/classify/order/orderDetail.vue
  20. 12
      physical-merchants/classify/order/pay.vue
  21. 2
      physical-merchants/classify/order/paymentResult.vue
  22. 10
      physical-merchants/settleAccounts/detail-popup/detail-popup.vue
  23. 67
      physical-merchants/settleAccounts/settleAccounts.vue
  24. 4
      uni.scss
  25. 2
      uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue
  26. 4
      uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue

@ -271,6 +271,19 @@
}
/* 解决小程序和app滚动条的问题 */
/* #ifdef MP-WEIXIN || APP-PLUS */
::-webkit-scrollbar{
display: none;
}
/* #endif */
/* 解决H5 的问题 */
/* #ifdef H5 */
uni-scroll-view .uni-scroll-view::-webkit-scrollbar {
/* 隐藏滚动条,但依旧具备可以滚动的功能 */
display: none
}
/* #endif */

@ -0,0 +1,270 @@
<template>
<view>
<view v-if="loading" class="skeleton" :class="{ animate: animate,margin16:!isClassify }" :style="{ justifyContent: flexType}">
<!-- 轮播图 -->
<view
v-if="imgTitle"
class="skeleton-imgTitle"
style="width: 95%;border-radius: 10px;height: 100px;display: block;"
></view>
<!-- 头像图 -->
<view
v-if="showAvatar && !imgTitle"
class="skeleton-avatar"
v-for="(item, index) in nameRow"
:key="index"
:class="[avatarShape]"
:style="{ width: avatarSize, height: avatarSize}"
></view>
<!-- 文字条 -->
<view class="skeleton-content" v-if="showTitle && !imgTitle">
<view class="skeleton-title" :style="{ width: titleWidth }"></view>
<view class="skeleton-rows">
<view
class="skeleton-row-item"
v-for="(item, index) in rowList"
:key="index"
:style="{ width: item.width }"
></view>
</view>
</view>
<view v-if="isClassify"
class="classify-avatar"
>
<view class="top dis-flex">
<view class="top-con" v-for="(item,index) in [1,2,3,4,5,6,7,8,9]" :key="index">
<view class="img">
</view>
<view class="title"></view>
</view>
</view>
<view class="dis-flex boto">
<view class="left">
</view>
<view class="right flex-1 dis-flex">
<view class="ri-top">
</view>
<view class="dis-flex ri-item">
<view class="skeleton-avatar "></view>
<view class="skeleton-rows">
<view
class="skeleton-row-item"
v-for="(item, index) in rowList"
:key="index"
:style="{ width: item.width }"
>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view v-else><slot></slot></view>
</view>
</template>
<script>
const DEFAULT_ROW_WIDTH = '100%'
const DEFAULT_LAST_ROW_WIDTH = '80%'
export default {
props: {
loading: {
type: Boolean,
default: true,
},
isClassify:{
type: Boolean,
default: false,
},
imgTitle: {
type: Boolean,
default: false,
},
nameRow:{
type: Number,
default: 1,
},
flexType:{
type: String,
default: 'flex-start', // center space-between space-around flex-start flex-end
},
showAvatar: {
type: Boolean,
default: true,
},
avatarSize: {
type: String,
default: '50px',
},
avatarShape: {
type: String,
default: 'round', // square | round
},
showTitle: {
type: Boolean,
default: false,
},
titleWidth: {
type: String,
default: '40%',
},
row: {
type: Number,
default: 3,
},
animate: {
type: Boolean,
default: true,
},
},
data() {
return {}
},
computed: {
rowList() {
let list = []
for (let i = 0; i < this.row; i++) {
list.push({
width: i === this.row - 1 && i !== 0 ? DEFAULT_LAST_ROW_WIDTH : DEFAULT_ROW_WIDTH,
})
}
return list
},
},
}
</script>
<style lang="scss" scoped>
.classify-avatar{
height: calc(100vh - 60px);
}
.boto{
height: calc(100% - 150rpx);
}
.top{
height: 150rpx;
overflow: hidden;
.top-con{
height: 100%;
padding: 0 15rpx;
text-align: center;
}
.img{
width: 80rpx;
height: 80rpx;
padding: 2rpx;
margin: 0 0 10rpx;
background:var(--bg-color);
border-radius: 50% !important;
}
.title{
height: 16px;
width: 80rpx;
border-radius: 8px;
background:var(--bg-color) ;
}
}
.left{
width: 200rpx;
height: 100%;
background:var(--bg-color) ;
box-sizing: border-box;
margin: 0 20rpx;
border-radius: 8px;
}
.right{
padding: 16px;
height: 100%;
.ri-top{
}
.ri-item{
}
}
/* */
.skeleton {
display: flex;
--bg-color: #f2f3f5;
--row-height: 16px;
--row-margin-top: 16px;
}
.margin16{
margin: 16px 16px 0 16px;
}
.skeleton-imgTitle {
flex-wrap: wrap;
background: var(--bg-color);
margin: 10px auto;
}
.skeleton-avatar {
flex-shrink: 0;
background: var(--bg-color);
margin-right: 8px;
}
.skeleton-avatar.round {
border-radius: 50%;
}
.skeleton-content {
width: 100%;
}
.skeleton-title {
background-color: var(--bg-color);
height: var(--row-height);
}
.skeleton-title + .skeleton-rows {
margin-top: var(--row-margin-top);
}
.skeleton-rows {
}
.skeleton-row-item {
background-color: var(--bg-color);
height: var(--row-height);
}
.skeleton-row-item:not(:first-child) {
margin-top: var(--row-margin-top);
}
.skeleton.animate {
animation: skeleton-blink 1.2s ease-in-out infinite;
}
@keyframes skeleton-blink {
0% {
opacity: 1;
}
50% {
opacity: 0.6;
}
100% {
opacity: 1;
}
}
</style>

@ -0,0 +1,77 @@
# skeleton
感谢原作者 https://ext.dcloud.net.cn/plugin?id=852
自己项目非常需要骨架,正好原作者发布了1.0 根据自己项目 自己修改了下。
目前仅支持:
1.轮播图
2.分类栏
3.头像
4.文章条
5.动态心情
以上是根据自己项目修改的,后续再拓展,或者自己根据自己项目修改,原作者写的还是很灵活的,修改方便!
## 属性说明
|属性名|类型|默认值|说明|
| -- | -- | --|--|
| loading | Boolean | true | 是否显示占位图 |
| flexType | String | flex-start | 排列方式 center 居中 √ space-between 两端对齐 √ space-around 子元素拉手分布 √ flex-start 居左 flex-end 居右 |
| imgTitle | Boolean | false | 轮播图占位图 |
| showAvatar | Boolean | true | 是否显示头像占位图 |
| nameRow | Number | 1 | 显示头像圆1个 |
| avatarSize | String | 50px | 头像站占位图大小 |
| avatarShape | String | round | 头像形状,可选值:round, square |
| showTitle | Boolean | true | 是否显示标题占位图 |
| titleWidth | String | 40% | 标题占位图宽度 |
| row | Number| 3 | 标题段落占位图行数 |
| animate | Boolean | true | 是否开启动画 |
## 使用示例
```html
<skeleton
:loading="loading"
:avatarSize="skeleton1.avatarSize"
:row="skeleton1.row"
:showTitle="skeleton1.showTitle"
>
<view class="section-content">我是段落1</view>
</skeleton>
```
```javascript
import Skeleton from '../components/skeleton/index.vue'
export default {
components: {
Skeleton
},
data() {
return {
loading: true,
skeleton1 : {
avatarSize: '52px',
row: 3,
showTitle: true,
}
}
},
created() {
this.reloadData()
},
methods: {
reloadData() {
this.loading = true
setTimeout(() => {
this.loading = false
}, 3000)
},
},
}
```
## 效果图
![](http://images.alisali.cn/img_20191014113211.png)

@ -8,10 +8,10 @@
<image v-if="specificationList[chooseIndex].showImg" :src="imageUrl+specificationList[chooseIndex].showImg" @click="perImage(chooseIndex,imgList)" class="img choose-img " mode="aspectFill"></image>
</view>
<view class="choose-price marRight10">
<text class="" style="text-decoration: line-through;">原价 {{specificationList[chooseIndex].originalPrice}}</text>
<text class="" style="text-decoration: line-through;">原价¥{{specificationList[chooseIndex].originalPrice}}</text>
</view>
<view class="choose-less-price ">
<text class="">现价 {{specificationList[chooseIndex].price}}</text>
<view class="choose-less-price fontwig6 ">
<text class="">现价 ¥{{specificationList[chooseIndex].price}}</text>
</view>
</view>
@ -39,7 +39,7 @@
<!-- 选分类 -->
<view class="choose-bottom marb10">
<!-- 类型分类 -->
<view class="choose-bottom-title fontwig6 font13 mart10">
<view class="choose-bottom-title fontwig6 font14 mart10">
选择规格
</view>
<view class="choose-select">
@ -54,9 +54,9 @@
</view>
<!-- 数量分类 -->
<view class="choose-bottom-title paddbotm10 fontwig6 font13 mart10 choose-num">
<view class="choose-bottom-title paddbotm10 fontwig6 font14 mart15 choose-num">
<view class="">购买数量</view>
<uni-number-box style="transform: scale(0.9);" v-model="chooseNumber" :min="1" :max="specificationList[chooseIndex].stock || 9999999" @noMoreLess="noMoreLess" @change="changeNumValue" />
<uni-number-box v-model="chooseNumber" :min="1" :max="specificationList[chooseIndex].stock || 9999999" @noMoreLess="noMoreLess" @change="changeNumValue" />
</view>
</view>
@ -119,6 +119,14 @@
default:{}
}
},
watch:{
specificationList:{
handler(n,o){
this.chooseNumber = 1;
},
deep:true
}
},
components:{
"uni-number-box":uniNumberBox
},
@ -266,7 +274,7 @@
.choose-detail {
position: relative;
padding: 20rpx 20rpx 80rpx 20rpx;
padding: 20rpx 20rpx 100rpx 20rpx;
//
.choose-top {
display: flex;
@ -286,7 +294,7 @@
display: inline-block;
height: 50rpx;
line-height: 50rpx;
padding: 10rpx;
padding: 10rpx 20rpx;
color: white;
background-color: #F95100;
border-radius: 45rpx;
@ -357,9 +365,9 @@
width: calc(100% - 40rpx);
padding-bottom: 20rpx;
.choose-way{
height: 60rpx;
height: 70rpx;
width: 100%;
border-radius: 30rpx;
border-radius: 35rpx;
overflow: hidden;
display: flex;
align-items: center;
@ -367,15 +375,15 @@
.way{
width: 50%;
height: 60rpx;
line-height: 60rpx;
height:70rpx;
line-height:70rpx;
text-align: center;
}
.way1{
width: 100% ;
height: 60rpx;
line-height: 60rpx;
height: 70rpx;
line-height: 70rpx;
text-align: center;
}

File diff suppressed because it is too large Load Diff

@ -1,12 +1,11 @@
<template>
<view>
<view class="search-content pr">
<view class="search-icon pa" @tap="search_input_event">
<!-- <uni-icons :type="propIcon" size="12" :color="propIconColor"></uni-icons> -->
<view class="search-icon pa" @click="search_input_event">
<view class="search icon icon-color icon-font"></view>
</view>
<input type="text" confirm-type="search" class="round " :placeholder="propPlaceholder" :placeholder-class="propPlaceholderClass" v-model="keywords" @confirm="search_input_event" :style="'color:'+propTextColor+';background:'+propBgColor+';'+((propBrColor || null) != null ? 'border:1px solid '+propBrColor+';' : '')">
<input type="text" :disabled="disableInput" confirm-type="search" class="round " :placeholder="propPlaceholder" :placeholder-class="propPlaceholderClass" v-model="keywords" @confirm="search_input_event" style="color:#666;background:#ffffff;">
</view>
</view>
</template>
@ -21,14 +20,6 @@
},
components: {},
props: {
propUrl: {
type: String,
default: '/pages/goods-search/goods-search'
},
propFormName: {
type: String,
default: 'keywords'
},
propPlaceholder: {
type: String,
default: '输入商品名称搜索'
@ -37,41 +28,28 @@
type: String,
default: 'cr-grey'
},
propTextColor: {
type: String,
default: '#666'
},
propBgColor: {
type: String,
default: '#FFFFFF'
},
propBrColor: {
type: String,
default: ''
},
propIsRequired: {
type: Boolean,
default: true
},
propIsOnEvent: {
type: Boolean,
default: false
},
// propIcon: {
// type: String,
// default: 'search'
// },
propIsIconOnEvent: {
type: Boolean,
default: false
},
disableInput:{
type: Boolean,
default: false
}
},
// watch:{
// propKeyWords:{
// handler(n,o){
// this.keywords = n;
// },
// immediate:true
// }
// },
methods: {
//
search_input_event() {
// var keywords = e.detail.value || null;
// console.log(this.keywords)
this.keywords = this.keywords || null;
//
if (this.propIsRequired && this.keywords == null) {
@ -82,29 +60,23 @@
});
return false;
}
//
// if(this.propIsOnEvent) {
this.$emit('onsearch', this.keywords);//
// } else {
// //
// uni.navigateTo({
// url: this.propUrl+'?'+this.propFormName+'=' + keywords
// });
// }
this.$emit('onsearch', this.keywords);//
},
// icon
// search_icon_event(e) {
// //
// if(this.propIsIconOnEvent) {
// this.$emit('onicon', {});
// }
// }
}
},
destroyed() {
this.keywords = ""
}
};
</script>
<style>
.cr-grey{
display: flex;
flex-direction: column;
justify-content: center;
}
.round{
border-radius: 50rpx ;
}
@ -121,8 +93,8 @@
.search-content .search-icon {
text-align: center;
height: 30px;
line-height: 30px;
height: 40px;
line-height: 40px;
width: 30px;
}
@ -135,11 +107,11 @@
font-size:20px ;
}
.search-content input {
font-size: 12px;
.search-content .round {
font-size: 16px;
padding: 0 15px 0 30px;
box-sizing: border-box;
height: 30px;
line-height: 30px;
height: 40px;
line-height: 40px;
}
</style>

@ -114,7 +114,7 @@
.uni-tab__cart-box {
flex: 1;
height: 50px;
height: 60px;
background-color: #fff;
z-index: 900;
}

@ -148,7 +148,7 @@
if (this.type === 'left' || this.type === 'right') {
return '100%'
} else {
return '400px'
return `${this.height}px`
}
}
}

@ -1,6 +1,6 @@
{
"name" : "嗨森逛",
"appid" : "__UNI__E807B53",
"appid" : "__UNI__70C9511",
"description" : "",
"versionName" : "1.2.1",
"versionCode" : "100",
@ -70,7 +70,7 @@
"desc" : "你的位置信息将用于小程序定位"
}
},
"requiredPrivateInfos" : [ "getLocation","chooseAddress" ]
"requiredPrivateInfos" : [ "getLocation", "chooseAddress" ]
},
"h5" : {
"sdkConfigs" : {

@ -35,7 +35,8 @@
"navigationBarTitleText": "商品",
"navigationBarBackgroundColor": "#3da7e7",
"backgroundColorTop": "#3da7e7",
"onReachBottomDistance": 50,
"enablePullDownRefresh": false,
"disableScroll": true,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
@ -1095,14 +1096,17 @@
"navigationBarTitleText": "搜索",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3da7e7",
"backgroundColorTop": "#3da7e7"
"backgroundColorTop": "#3da7e7",
"navigationBarTextStyle": "white"
}
},
{
"path": "classify/cart/cart",
"style": {
"navigationBarTitleText": "购物车",
"enablePullDownRefresh": false
"enablePullDownRefresh": false,
"disableScroll": true
}
},
{
@ -1131,6 +1135,10 @@
"style": {
"navigationBarTitleText": "订单确认",
"enablePullDownRefresh": false
},
"app-plus": {
// "softinputNavBar": "none",
"softinputMode": "adjustResize"
}
},
{

@ -33,6 +33,13 @@
.bs{
box-sizing: border-box;
}
/* 商品comtainer */
.nav-container{
height:calc(100% - 150rpx );
}
/**
* 左侧导航
*/
@ -41,7 +48,8 @@
}
.left-nav {
width: 200rpx;
height:calc(100% - 150rpx );
/* height:calc(100% - 150rpx ); */
height:100%;
background-color: #F9F9F9;
}
@ -130,14 +138,11 @@
.goods-right-content {
width: calc(100% - 200rpx);
height: calc(100% - 150rpx);
top: 150rpx;
right: 0;
/* height: calc(100% - 150rpx); */
height: 100%;
background: #ffffff;
/* padding-left: 20rpx;
padding-right: 20rpx; */
box-sizing: border-box;
/* overflow: auto; */
}
.right-content-actual {
height: calc(100% - 150rpx);
@ -145,20 +150,17 @@
}
.goods-right-ms{
/* height: calc(100% - 60rpx); */
height: 100%;
padding-top: 60rpx;
height: calc(100% - 60rpx);
/* padding-top: 60rpx; */
box-sizing: border-box;
}
.goods-right-content .sort-contain{
position: fixed;
/* top:150rpx; */
width: calc(100% - 240rpx);
z-index: 100;
/* position: fixed; */
width: 100%;
/* z-index: 100; */
background-color: #ffffff;
/* background-color: #333333; */
}
.goods-right-content .sort-cla {
width: 100%;

@ -4,15 +4,24 @@
<!-- 搜索框 -->
<block >
<view class="nav-search jianbian" @click="toSearch">
<component-search propPlaceholder="输入商品名称搜索"></component-search>
<component-search :disableInput="true" :propIsRequired="false" propPlaceholder="输入商品名称搜索"></component-search>
</view>
</block>
<view v-if="category_list.length > 0" class="category-content pr " :style="'height:calc(100vh - '+(50)+'px);'">
<!-- <skeleton
:loading="false"
:isClassify="true"
:showAvatar="false"
>
</skeleton> -->
<view v-if="category_list.length > 0" class="category-content pr " :style="'height:calc(100vh - '+(60)+'px);'">
<!-- 商品列表模式 -->
<block >
<!-- 一级导航 -->
<view class="top-nav scroll-view-horizontal">
<scroll-view :scroll-x="true" >
<scroll-view :scroll-x="true" >
<block v-for="(item, index) in category_list" :key="index">
<view :class="' item dis-inline-block ' + (nav_active_index == index ? 'active-class ' : '')" :data-index="index" :data-itemtwoindex="0" @click="nav_event">
<view :class="'icon-content circle br ' + (nav_active_index == index ? 'active-border' : '')">
@ -22,17 +31,21 @@
</view>
</block>
</scroll-view>
</view>
<view class="nav-container dis-flex">
<!-- 二级导航 -->
<view class="left-nav ">
<scroll-view :scroll-y="true" :scroll-top="scrollTop" class="ht-auto">
<view class="left-content-actual bs tc">
<view class="left-content-actual bs tc ">
<block v-if="(data_content || null) != null && (data_content.children || null) != null && data_content.children.length > 0">
<block v-for="(item, index) in data_content.children" :key="index">
<view :class="' item ' + (nav_active_item_two_index == index ? 'active-class active-border nav-active' : '')" :data-index="nav_active_index" :data-itemtwoindex="index" @click="nav_event">
<text>{{item.title}}</text>
<view :class="'dis-flex flex-center item ' + (nav_active_item_two_index == index ? 'active-class active-border nav-active' : '')" :data-index="nav_active_index" :data-itemtwoindex="index" @click="nav_event">
<image v-if="item.img" style="height: 20px;width: 20px;" :src="imageUrl+item.img" mode="aspectFit"></image> <text class="">{{item.title || ''}}</text>
</view>
</block>
</block>
@ -40,11 +53,11 @@
</scroll-view>
</view>
<!-- 商品列表 -->
<view class="goods-right-content pa ">
<view class="goods-right-content ">
<view class="sort-contain">
<view class="sort-cla">
<view :class=" 'sort '+(sortIndex == 1 ? ' sort-active ' : '') " @click="sortEvent(1)" >综合</view>
<view :class=" 'sort '+(sortIndex == 2 ? ' sort-active ' : '') " @click="sortEvent(2)">销量</view>
<!-- <view :class=" 'sort '+(sortIndex == 2 ? ' sort-active ' : '') " @click="sortEvent(2)">销量</view> -->
<view class="sort px " @click="sortEvent(3)">
<text :class=" (sortIndex == 3 ? ' sort-active ' : '') ">价格</text>
<view class="pri-px">
@ -54,22 +67,34 @@
</view>
</view>
</view>
<view class="goods-right-ms">
<goodsList v-if="hackReset" :propData="goodsListData" :pageData="pageData" :selectObject="selectObject" @loadData="loadData" @switchCategory="switchCategory" :paddBottom="0" ></goodsList>
<view class="goods-right-ms" >
<skeleton
:loading="isLoading"
:avatarSize="'200rpx'"
avatarShape="square"
:row="3"
:showTitle="true"
v-for="(item,index) in skeletonNum"
:key="index"
>
</skeleton>
<goodsList v-if="hackReset&&!isLoading" :propData="goodsListData" :pageData="pageData" :selectObject="selectObject" @loadData="loadData" @switchCategory="switchCategory" :paddBottom="0" ></goodsList>
<!-- <view class="spinner">
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
</view> -->
</view>
</view>
</view>
</block>
</view>
<!-- 购物车 -->
<!-- <view class="gouwuche " @click="goCart">
<uniBadge class="uni-badge-left-margin badgeClass" max-num="99" :text="cartNum" type="warning" size="small" />
<view class="icon cart font24px">
</view>
</view> -->
</view>
</template>
@ -80,13 +105,16 @@
import goodsList from '@/components/goods-list/goods-list.vue'
import skeleton from '@/components/J-skeleton/J-skeleton.vue'
import {getGoodsTypeTree,getListGoodsDetail,getShoppingCartList} from '@/Utils/physicalObject.js'
const app = getApp();
export default {
components: {
componentSearch,
goodsList,
uniBadge
uniBadge,
skeleton
},
data(){
return{
@ -107,7 +135,7 @@
pageData:{
pageStart:1,//
pageNum:7,//
pageNum:20,//
navigateLastPage:1,//
allData:0 //
},
@ -118,27 +146,25 @@
// cartNum:app.globalData.cartNum,
hackReset:false,//
isLoading:false,
skeletonNum:[1,2,3,4],
}
},
created() {
//
this.init();
onLoad(){
//
this.init();
this.isLoading = true;
},
onShow(){
onShow(){
this.hackReset = false;
this.$nextTick(() => {
this.hackReset = true;
})
})
},
methods:{
//
init() {
@ -180,7 +206,9 @@
},
touchFalse(){
return false;
},
//
toSearch() {
uni.navigateTo({
@ -209,7 +237,7 @@
this.goodsListData = [];
this.pageData={
pageStart:1,
pageNum:7,
pageNum:20,
allData:0
}
this.get_goods_list(this.data_content.children[this.nav_active_item_two_index].key)
@ -233,8 +261,12 @@
pageSize:_this.pageData.pageNum,
price:price,
}
// console.log(params,"params")
getListGoodsDetail(params).then(res=>{
getListGoodsDetail(params).then(res=>{
setTimeout(()=>{
this.isLoading = false;
},200)
if (res.return_code == '000000') {
if(res.return_data.list.length > 0){
_this.goodsListData =_this.goodsListData.concat(res.return_data.list);
@ -265,7 +297,7 @@
// pageData:{
// pageStart:1,//
// pageNum:7,//
// pageNum:20,//
// navigateLastPage:1,//
// allData:0 //
// },
@ -315,11 +347,15 @@
},
}
}
</script>
<style scoped>
@import url("./classify.css");
.gouwuche {
position: absolute;
@ -341,4 +377,61 @@
font-size: 24px !important;
color: #F0AD4E;
}
/*
*/
.spinner {
width: 60px;
height: 60px;
position: relative;
left: calc(50% - 30px);
top:calc(50% - 25px);
}
.spinner .dot {
position: absolute;
inset: 0;
display: flex;
justify-content: center;
}
.spinner .dot::after {
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
background-color: rgb(12, 180, 231);
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.spinner .dot {
animation: spin 2s infinite;
}
.spinner .dot:nth-child(2) {
animation-delay: 100ms;
}
.spinner .dot:nth-child(3) {
animation-delay: 200ms;
}
.spinner .dot:nth-child(4) {
animation-delay: 300ms;
}
.spinner .dot:nth-child(5) {
animation-delay: 400ms;
}
</style>

@ -81,7 +81,7 @@
<view class="font16 fontwig6 fcor333 alijusstart">
<image mode="widthFix" :src="imageUrl+'orderLogo/goods.png'" v-if="row.productType == 12"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<view class="width100 text1">{{row.title}}</view>
<view class="width100 text1">{{row.title.replaceAll("+", "|")}}</view>
</view>
</view>
<view class="po-ra mart10">

@ -3,70 +3,73 @@
<form @submit="form_submit" class="form-container">
<view class="pd-main height100">
<view class="form-gorup backcolorfff">
<view class="form-gorup-item-left">
<!-- <view class="form-gorup-item-left">
<view class="form-gorup-title marb10">联系人<text class="form-group-tips-must">*</text></view>
<input type="text" name="name" v-model="userAddress.name" maxlength="5"
placeholder-class="fcor666" class="fcor666 " placeholder="联系人2~5个字符">
placeholder-class="corf6" class="fcor666 " placeholder="联系人2~5个字符">
</view>
<view class="form-gorup-item-right">
<view class="form-gorup-title marb10">联系电话<text class="form-group-tips-must">*</text></view>
<input type="number" name="tel" v-model="userAddress.tel" maxlength="11"
placeholder-class="fcor666" class="fcor666" placeholder="手机号">
placeholder-class="corf6" class="fcor666" placeholder="手机号">
</view> -->
<!-- -->
<view class="form-gorup-title">联系人<text class="form-group-tips-must">*</text>
</view>
<input type="text" name="name" v-model="userAddress.name" maxlength="5"
placeholder-class="corf6" class="fcor666 bs-bb" placeholder="联系人2~5个字符">
<view class="width100 mart10 border-b">
</view>
<view class="form-gorup-title">联系电话<text class="form-group-tips-must">*</text>
</view>
<input type="number" name="tel" v-model="userAddress.tel" maxlength="11"
placeholder-class="corf6" class="fcor666" placeholder="手机号">
<!-- -->
</view>
<view class="form-gorup backcolorfff">
<!-- <view> -->
<!-- <view class="form-gorup-title">省市区<text class="form-group-tips-must">必选</text></view> -->
<!-- <view class="dis-flex flex-sp" @click="chooseAddress">
<input type='text' placeholder='请选择地址' :disabled="true" name='region'
:value='userAddress.region' class="fcor666 flex-1">
<view class="icon-ymt to-right font14 fcor666">
</view>
</view> -->
<!-- -->
<view class="">
<pick-regions :defaultRegion="defaultRegionCode" @getRegion="handleGetRegion">
<view class="dis-flex flex-sp form-gorup-title">
<view class=" flex-1">点击选择省市区<text class="form-group-tips-must">必选</text></view>
<!-- <input type='text' placeholder='请选择地址' :disabled="false" name='region'
v-model='userAddress.region' class=" flex-1 fcor333" placeholder-class="fcor333" style="font-size: 16px;">
-->
<view class="icon-ymt to-right font14 fcor666">
</view>
</view>
</pick-regions>
<view class="font15 fcor666" style="height: 20px;line-height: 20px;">{{userAddress.region || '请选择'}}</view>
<view class=" pickRes fcor666" >{{userAddress.region || '请选择'}}</view>
</view>
<!-- </view> -->
<view class="width100 mart10 border-b">
</view>
<view style="clear: both;">
<view class="form-gorup-title">详细地址<text class="form-group-tips-must">*</text>
</view>
<input type="text" name="address" v-model="userAddress.address" maxlength="40"
placeholder-class="fcor666" :class="'fcor666 bs-bb '" placeholder="详细地址1~40个字符">
placeholder-class="corf6" :class="'fcor666 bs-bb '" placeholder="详细地址1~40个字符">
</view>
</view>
<view class="default-checkbox " @click="defaultChange">
<radio :checked="userAddress.is_default" style="transform:scale(0.7)" color="#FF1A34" />
<text class="">设为默认地址</text>
<radio :checked="userAddress.is_default" style="transform:scale(1.1)" color="#FF1A34" />
<text class="font18">设为默认地址</text>
</view>
<view class="bottom-fixed padding-main">
<button class=" " type="default" form-type="submit">保存</button>
<button class="btn " type="default" form-type="submit">保存</button>
</view>
</view>
@ -337,11 +340,21 @@
width: 100%;
box-sizing: border-box;
z-index: 2;
.btn{
height: 60px;
border-radius: 30px;
background-color: #3da7e7;
margin-bottom: 15px;
color: #ffffff;
line-height: 60px;
font-size: 18px;
}
}
.page-bottom-fixed {
height: 100vh;
padding-bottom: 120rpx;
padding-bottom: 80px;
box-sizing: border-box;
}
@ -355,12 +368,12 @@
border-radius: 20rpx;
overflow: auto;
input {
.pickRes , input {
border-radius: 0;
box-sizing: border-box;
font-size: 28rpx;
height: 70rpx;
line-height: 70rpx;
font-size: 18px;
height: 30px;
line-height: 30px;
}
}
@ -369,7 +382,7 @@
padding: 20rpx 0;
margin-bottom: 5rpx;
font-weight: 500;
font-size: 16px;
font-size: 18px;
}
}
@ -384,65 +397,4 @@
color: #f00;
}
/*
* 三级联动
*/
// .select-address {
// box-sizing: border-box;
// height: 70rpx;
// line-height: 70rpx;
// padding: 0 10rpx;
// height: auto;
// overflow: auto;
// .fl{
// float: left;
// }
// }
// .select-address .section {
// width: 33.33%;
// box-sizing: border-box;
// }
// .select-address .section:not(:first-child) {
// padding: 0 5rpx;
// }
/**
* 地址信息
*/
// .default-checkbox image {
// width: 35rpx;
// height: 35rpx !important;
// }
// .address-value {
// padding-right: 110rpx;
// }
// .map-icon {
// bottom: 0;
// right: 0;
// width: 90rpx;
// height: 80rpx;
// line-height: 80rpx;
// }
// .auto-discern {
// bottom: 20rpx;
// right: 20rpx;
// z-index: 2;
// }
// .auto-discern button {
// line-height: inherit;
// padding: 5rpx 20rpx !important;
// }
/*
* 身份信息
*/
// .idcard-container {
// background: #e6e6e6;
// }
// .idcard-container .form-upload-data .item image {
// width: 256rpx;
// height: 170rpx;
// border: 1px dashed #c2c2c2;
// }
</style>

@ -4,7 +4,7 @@
<scroll-view scroll-y="true" class="address-contain paading10">
<radio-group @change="radioChange">
<view v-for="(item,index) in addressList" @click.stop="chooseAddress(item)" :key="item.id"
<view v-for="(item,index) in addressList" @click="chooseAddress(item)" :key="item.id"
class="border-8r paading10 backcolorfff marb10">
<view class="user-msg border-b paddbotm5">
<view class=" mart3 ">
@ -19,14 +19,14 @@
<view class="user-handle mart10">
<view class="handle-left">
<!-- <radio :checked="item.whetherDefault" style="transform:scale(0.7)" :value="item.id" color="#FF1A34" /> -->
<radio :checked="selectId == item.id" style="transform:scale(0.7)" :value="item.id"
<radio @click.stop :checked="selectId == item.id" style="transform:scale(1.1)" :value="item.id"
color="#FF1A34" />
<text class=" margle">默认地址</text>
</view>
<view class="handle-right">
<button type="primary" class="marRight10" plain="true" size="mini"
<button class="marRight10 btn edit"
@click.stop="editAddress(item.id)">编辑</button>
<button type="warn" plain="true" size="mini"
<button class="del btn"
@click.stop="deleteAddress(item.id)">删除</button>
</view>
</view>
@ -72,6 +72,9 @@
if (options.status) { //1:
this.status = options.status;
}
},
onShow(){
this.initData()
},
methods: {
@ -245,7 +248,7 @@
overflow: hidden;
.address-contain {
height: calc(100vh - 70px);
height: calc(100vh - 80px);
width: calc(100% - 20px);
}
@ -257,6 +260,26 @@
.handle-right {
vertical-align: middle;
display: flex;
align-items: center;
.edit{
background-color: #1aad19;
}
.del{
background-color: #e64340;
}
.btn{
box-sizing: content-box;
font-size: 15px;
height: 40px;
line-height: 40px;
width: 80rpx;
border-radius: 10px;
// padding: 6px 30rpx;
color:#ffffff !important;
}
}
}
@ -268,20 +291,23 @@
bottom: 0;
left: 0;
right: 0;
height: 50px;
line-height: 50px;
box-sizing: border-box;
display: flex;
justify-content: space-around;
align-items: center;
margin-bottom: 15px;
.add-btn {
width: 45%;
height: 40px;
line-height: 40px;
width: 80%;
text-align: center;
border-radius: 20px;
height: 60px;
border-radius: 30px;
background-color: #3da7e7;
color: #ffffff;
line-height: 60px;
font-size: 18px;
&:first-of-type {
background-color: #F6C133;
}

@ -1,24 +1,20 @@
<template>
<view class="">
<!-- v-if="cartList.length>0" -->
<view class="cart-container backcor9">
<scroll-view :scroll-y="true" class="cart-list">
<view class="cart-container backcor9" @touchmove.stop>
<scroll-view v-if="cartList.length>0" :scroll-y="true" class="cart-list">
<uni-swipe-action>
<!-- 从这里开始遍历-->
<view v-for="(item,index) in cartList"
:class="(item.loseEfficacy?' loseEfficacy ':' ')+'marb10 border-8r backcolorfff paading10'"
:key="item.id">
:key="item.id" @click="goGoodsDetail(item.goodsId)">
<!-- :disabled="item.loseEfficacy" -->
<uni-swipe-action-item :auto-close="autoClose" :right-options="swipe_options"
@click="swipe_opt_event($event,item.id)" @change="swipe_change($event, item.id)">
@click.stop="swipe_opt_event($event,item.id)" @change="swipe_change($event, item.id)">
<view class="cart-container2">
<checkbox-group @change="checkClick(item)">
<checkbox class="mycheck" :disabled="!isEdit&&item.loseEfficacy" color="#FFC71E"
<checkbox @click.stop class="mycheck" :disabled="!isEdit&&item.loseEfficacy" color="#FFC71E"
:value="item.id" :checked="item.whetherCheck" />
</checkbox-group>
<view class="cart-detail">
@ -34,7 +30,7 @@
<view class="cart-msg-price">
<view class="dis-flex">
<view class="cart-price font16 fcorred">
<view class="cart-price font18 fcorred">
<!-- ¥ <text class="font20">18 </text>.8 -->
¥{{item.price}}
</view>
@ -43,7 +39,7 @@
</view> -->
</view>
<view :class="'cart-num'+(item.loseEfficacy?' pont-event ':' ')">
<view @click.stop :class="'cart-num'+(item.loseEfficacy?' pont-event ':' ')">
<uni-number-box v-model="item.num" :min="1"
@noMoreLess="noMoreLess(item.id+'')"
@ -59,33 +55,44 @@
</view>
<noMore></noMore>
</uni-swipe-action>
<noMore ></noMore>
</scroll-view>
<view v-if="cartList.length==0" class="empy-cart fcor666 fotct cart-list backcor9">
<view class="icon cart fcor666 font48"></view>
<view class=" mart30">
购物车内暂无商品快去逛逛吧
</view>
<view @click="goClassify" class="btn-go mart20">
去逛逛
</view>
</view>
<view class="cart-tool bg-white">
<view class="select-all">
<checkbox-group @change="checkAllClick">
<label>
<!-- :disabled="cartList.length == 0" -->
<checkbox class="mycheck" color="#FFC71E" :value="allCheck.value"
:checked="allCheck.whetherCheck" />
<text class="paddleft5 font16 fcor777">全选</text>
:checked="allCheck.whetherCheck" style="transform: scale(1.1);"/>
<text class="paddleft5 fcor777">全选</text>
</label>
<!-- -->
</checkbox-group>
<text v-if="!isEdit" class="paddleft5 fcorred font16" @click="editDelete">编辑</text>
<text v-if="!isEdit" class="paddleft5 fcorred " @click="editDelete">编辑</text>
<text v-if="isEdit" class="icon-ymt delete paddleft5 fcorred" @click="deleteCart"></text>
</view>
<text v-if="isEdit" class="tool-right paddleft5 fcorred" @click="editDelete">退出编辑</text>
<view v-if="!isEdit" class="tool-right">
<text v-if="isEdit" class="tool-right paddleft5 fcorred " @click="editDelete">退出编辑</text>
<view v-if="!isEdit" class="tool-right ">
<view class="tool-jiesuan marRight10 ">
<!-- <text v-if="priceOrigin > 0" class="fcor666 margle10 marRight10 font14 text-lt">¥{{priceOrigin}}</text> -->
合计:<text v-if="priceAll>0" class="fcorred">¥{{priceAll | numFormat}}</text>
<text v-else class="fcorred">¥{{priceAll}}</text>
合计:<text v-if="priceAll>0" class="fcorred font20">¥{{priceAll | numFormat}}</text>
<text v-if="priceAll==0" class="fcorred">¥{{priceAll}}</text>
</view>
<view class="jiesuan-btn fcorfff " @click="settleAccount">
@ -97,19 +104,13 @@
</view>
</view>
<!-- <view v-else class="cart-container backcor9">
<view class="">
购物车内暂无商品快去购物吧
</view>
</view> -->
</view>
</template>
<script>
// import cartList from '@/pages/classify/cart-list/cart-list.vue'
import noMore from '@/components/no-more/no-more.vue'
import uniNumberBox from '@/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue'
import {
@ -207,14 +208,7 @@
// }
},
onLoad() {
// this.cartList.map(item=>{
// this.$set(item, 'checked', false);
// })
// this.initData();
},
onShow(){
this.initData();
},
@ -436,7 +430,12 @@
let params = {
ids: ids
};
uni.showLoading({
title: '加载中',
mask:true,
});
deleteShoppingCart(params).then(res => {
uni.hideLoading();
let title;
if (res.return_code == '000000') {
title = res.return_data;
@ -455,16 +454,22 @@
} else if (res.cancel) {
console.log('用户点击取消');
// console.log('');
}
}
});
},
//
goGoodsDetail(goodsId){
uni.navigateTo({
url: '/physical-merchants/classify/goodsDetail/goodsDetail?goodsId=' + goodsId
})
},
changeNumValue(v, id) {
console.log(v, id)
// console.log(this.cartList)
let params = {
id: id,
num: v
@ -500,7 +505,12 @@
})
}
},
goClassify(){
uni.switchTab({
url:'/pages/tabBar/classify/classify'
})
},
}
@ -508,6 +518,23 @@
</script>
<style lang="scss" scoped>
.empy-cart{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.btn-go{
width: 40%;
height: 40px;
line-height: 40px;
border-radius: 20px;
border:1px solid #FF8F19;
color: #FF8F19;
/* #FFCC1E, #FF8F19 */
}
.bg-white {
background-color: #fff;
}
@ -520,7 +547,7 @@
}
.cart-list {
height: calc(100vh - 70px);
height: calc(100% - 80px);
}
//
@ -617,7 +644,7 @@
right: 0;
box-sizing: border-box;
padding: 10px;
height: 60px;
height: 80px;
// line-height: 60px;
display: flex;
justify-content: space-between;
@ -637,11 +664,11 @@
.tool-jiesuan {}
.jiesuan-btn {
width: 200rpx;
height: 40px;
line-height: 40px;
width: 240rpx;
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 20px;
border-radius: 25px;
background: linear-gradient(to right, #FFCC1E, #FF8F19);
}
}

@ -34,7 +34,7 @@
keywordsSearh: '',
page: {
pageStart: 1, //
pageNum: 7, //
pageNum: 20, //
navigateLastPage: 1, //
allData: 0 //
},
@ -58,7 +58,7 @@
this.data_list = [];
this.page = {
pageStart: 1, //
pageNum: 7, //
pageNum: 20, //
navigateLastPage: 1, //
allData: 0 //
}

@ -2,7 +2,7 @@
<view class="">
<!-- 商品主图轮播 -->
<view class="swiper-box">
<swiper circular="true" :autoplay="false" style="height: 188px;" @change="swiperChange">
<swiper circular="true" :autoplay="false" style="height: 288px;" @change="swiperChange">
<swiper-item class="fotct" v-for="(swiper,index) in goodsDetail.bannerImg" :key="index">
<image mode="heightFix" :src="swiper" @click="perImage(index,goodsDetail.bannerImg)"></image>
</swiper-item>
@ -26,20 +26,20 @@
<!-- 选择参数 -->
<view class="br bg-white parameter width100 " @click="showPopup(1)">
<view class="color999 ">
<view class=" ">
选择
</view>
<view class=" ">
<view class="color999 ">
规格
</view>
<view class="icon-ymt to-right"></view>
</view>
<!-- 保障 -->
<view class="br bg-white parameter width100 " @click="showPopup(2)">
<view class="color999 ">
<view class=" ">
保障
</view>
<view class=" ">
<view class="color999 ">
破损包赔 · 假一赔四 · 退货运费险
</view>
<view class="icon-ymt to-right"></view>
@ -89,7 +89,7 @@
<!-- 选择类别 -->
<wybPopup ref="popup" type="bottom" width="500" scrollY="true" radius="6" :showCloseIcon="true">
<wybPopup ref="popup" height="500" type="bottom" width="500" scrollY="true" radius="6" :showCloseIcon="true">
<cart-choose :goodsDetail="goodsDetail" :status="status" @refreshCartNum="refreshCartNum"
:specificationList="specificationList" @close="close"></cart-choose>

@ -122,7 +122,7 @@
<!-- 价格总额 -->
<view class="tr fontwig6 pd-tb10">
<!-- <text class="paddtright10">已优惠<text class="fcorred">¥ 12.01</text></text> -->
<view v-if="recinfo.orderStatus == 1 ||recinfo.orderStatus == 5 " class="dis-flex flex-end">商品总金额<text class="margle10 font22">¥{{recinfo.payablePrice | numFormat}}</text> </view>
<view v-if="recinfo.orderStatus == 1 ||recinfo.orderStatus == 5 " class="dis-flex flex-end">商品总金额<text class="margle10 font22">¥{{recinfo.payPrice | numFormat}}</text> </view>
<view v-else class="dis-flex flex-end">实付 <text class="font22 margle10">¥{{recinfo.payRealPrice}}</text></view>
</view>
@ -487,7 +487,7 @@
let obj = {
orderNo : this.recinfo.orderNo,
createTime:this.recinfo.createTime,
payPrice:this.recinfo.payablePrice
payPrice:this.recinfo.payPrice
}
obj = JSON.stringify(obj)
uni.navigateTo({

@ -486,7 +486,7 @@
<style lang="scss" scoped>
.bor-b {
border-bottom: 1px solid #f6f6f6;
border-bottom: 1px solid #666666;
&:last-of-type {
border-bottom: none;
@ -494,7 +494,8 @@
}
.pay-syt {
height: 100vh;
height:calc(100vh - 60px);
overflow: auto;
}
.pay-img {
@ -517,9 +518,10 @@
.btn-edit {
height: 40px;
border-radius: 20px;
line-height: 40px;
height: 50px;
border-radius: 25px;
line-height: 50px;
background-color: #EA3E44;
margin-bottom: 10px;
}
</style>

@ -1,7 +1,7 @@
<template>
<view class="pay-suc ">
<view class="top-con font18">
<view class="colorgr icon-ymt zhenque font22"></view>
<view class="colorgr icon-ymt zhenque font48"></view>
<view class="mart5">支付成功</view>
<view class="mart5">¥<text class="fontwig6 font24">{{recinfo.payablePrice}}</text></view>
<view class="mart5 font16 ">{{ recinfo.payType | filtersType}}支付</view>

@ -1,7 +1,7 @@
<template>
<!-- 选择类别 -->
<wybPopup ref="popup" @hide="hide" type="bottom" width="500" scrollY="true" radius="0" :showCloseIcon="true">
<wybPopup ref="popup" @hide="hide" type="bottom" height="500" width="500" scrollY="true" radius="0" :showCloseIcon="true">
<!-- 货品 -->
<view v-if="keywords == 'goods'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>商品列表</text></view>
@ -89,7 +89,7 @@
<view class="pop-title fontwig6"><text>积分说明</text></view>
<view class="pop-content">
<view class="flex-row pd10">
<!-- <view class="flex-row pd10">
<view class="font16">
运费总计
</view>
@ -120,12 +120,12 @@
</view>
<view class="font14 color999 marb5">
基础运费6元
</view>
</view> -->
<view class="font14 color999 marb5">
不同城市地区之间收费规则会略有不同
100积分抵扣1元
</view>
<view class="font14 color999 marb5">
运费优惠仅针对基础运费部分进行抵扣;
当积分把金额抵扣为0时,需要输入支付密码进行确认;
</view>
</view>
</view>

@ -171,7 +171,7 @@
</view>
</view>
<view class="width100">
<textarea class="border-8r backcor9 paading10 note" @blur="noteBlur" @input="noteInput" :focus="true"
<textarea :cursor-spacing="50" class="border-8r backcor9 paading10 note" :focus="false"
:disable-default-padding="false" v-model="noteValue" maxlength="40"
placeholder="请输入备注信息"></textarea>
@ -390,11 +390,9 @@
if (this.goodsList.length > 1) {
this.isMoreThanOne = true;
}
this.getAddrPrice() //
},
onShow() {
this.getAddrPrice() //
this.getUserDiscount() //
this.findUser() //
},
@ -422,45 +420,28 @@
},
//
getAddrPrice() {
if(this.haveAddress){
return
}
uni.showLoading({
title: '加载中',
mask: true,
});
getAddressPrice().then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
if (res.return_data) {
uni.hideLoading();
// this.addressDetail =res.return_data.deliveryAddress;
/*
address: "nclanfpqwnc"
consignee: "小明"
createTime: 1681788155000
ext1: null
ext2: null
ext3: null
id: 7
opId: null
opName: null
phone: "15983446565"
regionId: "110101"
regionName: "北京市,市辖区,东城区"
updateTime: 1681788174000
userId: 204040
whetherDefault: true
*/
this.getRegiFreight(res.return_data.deliveryAddress)
}
} else {
uni.showToast({
title: res.return_msg,
icon: 'none',
duration: 2000
})
// uni.showToast({
// title: res.return_msg,
// icon: 'none',
// duration: 2000
// })
}
@ -580,13 +561,7 @@
}
});
},
//
noteBlur() {
// console.log(12)
},
noteInput() {
// console.log(12)
},
@ -705,7 +680,7 @@
let obj = {
orderNo : res.return_data.orderNo,
createTime:res.return_data.createTime,
payPrice:res.return_data.payablePrice
payPrice:res.return_data.payPrice
}
obj = JSON.stringify(obj)
@ -786,7 +761,7 @@
.settleAccounts {
box-sizing: border-box;
padding-bottom: 130px;
padding-bottom: 140px;
}
//
@ -855,7 +830,7 @@
}
.tool-right {
flex: 1;
// flex: 1;
display: flex;
justify-content: space-between;
padding: 10px;
@ -864,11 +839,13 @@
.tool-jiesuan {}
.jiesuan-btn {
width: 200rpx;
height: 40px;
line-height: 40px;
flex: 1;
// width: 200rpx;
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 20px;
border-radius: 25px;
background: linear-gradient(to right, #FFCC1E, #FF8F19);
}
}

@ -269,7 +269,9 @@ $uni-font-size-paragraph:30upx;
.colorccc{
color:#cccccc !important;
}
.corf6{
color:#bcbcbc !important;
}
.backcorf2f6 {
background-color: #2f6f43;

@ -122,7 +122,7 @@
.uni-tab__cart-box {
flex: 1;
height: 50px;
height: 60px;
background-color: #fff;
z-index: 900;
}

@ -155,7 +155,7 @@
};
</script>
<style lang="scss" scoped>
$box-height: 26px;
$box-height: 30px;
$bg: #f5f5f5;
$br: 2px;
$color: #333;
@ -174,7 +174,7 @@
flex-direction: row;
align-items: center;
justify-content: center;
padding: 0 8px;
padding: 0 12px;
background-color: $bg;
/* #ifdef H5 */
cursor: pointer;

Loading…
Cancel
Save