Merge branch 'youmengting-dev' of http://gitea.dctpay.com/yangjie/high-mini into new-dev

master
杨杰 2 years ago
commit bf316127e4
  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. 2
      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> <image v-if="specificationList[chooseIndex].showImg" :src="imageUrl+specificationList[chooseIndex].showImg" @click="perImage(chooseIndex,imgList)" class="img choose-img " mode="aspectFill"></image>
</view> </view>
<view class="choose-price marRight10"> <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>
<view class="choose-less-price "> <view class="choose-less-price fontwig6 ">
<text class="">现价 {{specificationList[chooseIndex].price}}</text> <text class="">现价 ¥{{specificationList[chooseIndex].price}}</text>
</view> </view>
</view> </view>
@ -39,7 +39,7 @@
<!-- 选分类 --> <!-- 选分类 -->
<view class="choose-bottom marb10"> <view class="choose-bottom marb10">
<!-- 类型分类 --> <!-- 类型分类 -->
<view class="choose-bottom-title fontwig6 font13 mart10"> <view class="choose-bottom-title fontwig6 font14 mart10">
选择规格 选择规格
</view> </view>
<view class="choose-select"> <view class="choose-select">
@ -54,9 +54,9 @@
</view> </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> <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>
</view> </view>
@ -119,6 +119,14 @@
default:{} default:{}
} }
}, },
watch:{
specificationList:{
handler(n,o){
this.chooseNumber = 1;
},
deep:true
}
},
components:{ components:{
"uni-number-box":uniNumberBox "uni-number-box":uniNumberBox
}, },
@ -266,7 +274,7 @@
.choose-detail { .choose-detail {
position: relative; position: relative;
padding: 20rpx 20rpx 80rpx 20rpx; padding: 20rpx 20rpx 100rpx 20rpx;
// //
.choose-top { .choose-top {
display: flex; display: flex;
@ -286,7 +294,7 @@
display: inline-block; display: inline-block;
height: 50rpx; height: 50rpx;
line-height: 50rpx; line-height: 50rpx;
padding: 10rpx; padding: 10rpx 20rpx;
color: white; color: white;
background-color: #F95100; background-color: #F95100;
border-radius: 45rpx; border-radius: 45rpx;
@ -357,9 +365,9 @@
width: calc(100% - 40rpx); width: calc(100% - 40rpx);
padding-bottom: 20rpx; padding-bottom: 20rpx;
.choose-way{ .choose-way{
height: 60rpx; height: 70rpx;
width: 100%; width: 100%;
border-radius: 30rpx; border-radius: 35rpx;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
align-items: center; align-items: center;
@ -367,15 +375,15 @@
.way{ .way{
width: 50%; width: 50%;
height: 60rpx; height:70rpx;
line-height: 60rpx; line-height:70rpx;
text-align: center; text-align: center;
} }
.way1{ .way1{
width: 100% ; width: 100% ;
height: 60rpx; height: 70rpx;
line-height: 60rpx; line-height: 70rpx;
text-align: center; text-align: center;
} }

File diff suppressed because it is too large Load Diff

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

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

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

@ -1,6 +1,6 @@
{ {
"name" : "嗨森逛", "name" : "嗨森逛",
"appid" : "__UNI__E807B53", "appid" : "__UNI__70C9511",
"description" : "", "description" : "",
"versionName" : "1.2.1", "versionName" : "1.2.1",
"versionCode" : "100", "versionCode" : "100",

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

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

@ -4,15 +4,24 @@
<!-- 搜索框 --> <!-- 搜索框 -->
<block > <block >
<view class="nav-search jianbian" @click="toSearch"> <view class="nav-search jianbian" @click="toSearch">
<component-search propPlaceholder="输入商品名称搜索"></component-search> <component-search :disableInput="true" :propIsRequired="false" propPlaceholder="输入商品名称搜索"></component-search>
</view> </view>
</block> </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 > <block >
<!-- 一级导航 --> <!-- 一级导航 -->
<view class="top-nav scroll-view-horizontal"> <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"> <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="' 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' : '')"> <view :class="'icon-content circle br ' + (nav_active_index == index ? 'active-border' : '')">
@ -22,17 +31,21 @@
</view> </view>
</block> </block>
</scroll-view> </scroll-view>
</view> </view>
<view class="nav-container dis-flex">
<!-- 二级导航 --> <!-- 二级导航 -->
<view class="left-nav "> <view class="left-nav ">
<scroll-view :scroll-y="true" :scroll-top="scrollTop" class="ht-auto"> <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-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"> <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"> <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">
<text>{{item.title}}</text> <image v-if="item.img" style="height: 20px;width: 20px;" :src="imageUrl+item.img" mode="aspectFit"></image> <text class="">{{item.title || ''}}</text>
</view> </view>
</block> </block>
</block> </block>
@ -40,11 +53,11 @@
</scroll-view> </scroll-view>
</view> </view>
<!-- 商品列表 --> <!-- 商品列表 -->
<view class="goods-right-content pa "> <view class="goods-right-content ">
<view class="sort-contain"> <view class="sort-contain">
<view class="sort-cla"> <view class="sort-cla">
<view :class=" 'sort '+(sortIndex == 1 ? ' sort-active ' : '') " @click="sortEvent(1)" >综合</view> <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)"> <view class="sort px " @click="sortEvent(3)">
<text :class=" (sortIndex == 3 ? ' sort-active ' : '') ">价格</text> <text :class=" (sortIndex == 3 ? ' sort-active ' : '') ">价格</text>
<view class="pri-px"> <view class="pri-px">
@ -54,22 +67,34 @@
</view> </view>
</view> </view>
</view> </view>
<view class="goods-right-ms"> <view class="goods-right-ms" >
<goodsList v-if="hackReset" :propData="goodsListData" :pageData="pageData" :selectObject="selectObject" @loadData="loadData" @switchCategory="switchCategory" :paddBottom="0" ></goodsList> <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> </view>
</view>
</block> </block>
</view> </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> </view>
</template> </template>
@ -80,13 +105,16 @@
import goodsList from '@/components/goods-list/goods-list.vue' 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' import {getGoodsTypeTree,getListGoodsDetail,getShoppingCartList} from '@/Utils/physicalObject.js'
const app = getApp(); const app = getApp();
export default { export default {
components: { components: {
componentSearch, componentSearch,
goodsList, goodsList,
uniBadge uniBadge,
skeleton
}, },
data(){ data(){
return{ return{
@ -107,7 +135,7 @@
pageData:{ pageData:{
pageStart:1,// pageStart:1,//
pageNum:7,// pageNum:20,//
navigateLastPage:1,// navigateLastPage:1,//
allData:0 // allData:0 //
}, },
@ -118,27 +146,25 @@
// cartNum:app.globalData.cartNum, // cartNum:app.globalData.cartNum,
hackReset:false,// hackReset:false,//
isLoading:false,
skeletonNum:[1,2,3,4],
} }
}, },
created() {
// onLoad(){
this.init(); //
this.init();
this.isLoading = true;
}, },
onShow(){ onShow(){
this.hackReset = false; this.hackReset = false;
this.$nextTick(() => { this.$nextTick(() => {
this.hackReset = true; this.hackReset = true;
}) })
}, },
methods:{ methods:{
// //
init() { init() {
@ -180,7 +206,9 @@
}, },
touchFalse(){
return false;
},
// //
toSearch() { toSearch() {
uni.navigateTo({ uni.navigateTo({
@ -209,7 +237,7 @@
this.goodsListData = []; this.goodsListData = [];
this.pageData={ this.pageData={
pageStart:1, pageStart:1,
pageNum:7, pageNum:20,
allData:0 allData:0
} }
this.get_goods_list(this.data_content.children[this.nav_active_item_two_index].key) this.get_goods_list(this.data_content.children[this.nav_active_item_two_index].key)
@ -233,8 +261,12 @@
pageSize:_this.pageData.pageNum, pageSize:_this.pageData.pageNum,
price:price, price:price,
} }
// console.log(params,"params") // 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_code == '000000') {
if(res.return_data.list.length > 0){ if(res.return_data.list.length > 0){
_this.goodsListData =_this.goodsListData.concat(res.return_data.list); _this.goodsListData =_this.goodsListData.concat(res.return_data.list);
@ -265,7 +297,7 @@
// pageData:{ // pageData:{
// pageStart:1,// // pageStart:1,//
// pageNum:7,// // pageNum:20,//
// navigateLastPage:1,// // navigateLastPage:1,//
// allData:0 // // allData:0 //
// }, // },
@ -315,11 +347,15 @@
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
@import url("./classify.css"); @import url("./classify.css");
.gouwuche { .gouwuche {
position: absolute; position: absolute;
@ -341,4 +377,61 @@
font-size: 24px !important; font-size: 24px !important;
color: #F0AD4E; 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> </style>

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

@ -3,70 +3,73 @@
<form @submit="form_submit" class="form-container"> <form @submit="form_submit" class="form-container">
<view class="pd-main height100"> <view class="pd-main height100">
<view class="form-gorup backcolorfff"> <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> <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" <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>
<view class="form-gorup-item-right"> <view class="form-gorup-item-right">
<view class="form-gorup-title marb10">联系电话<text class="form-group-tips-must">*</text></view> <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" <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>
<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>
<view class="form-gorup backcolorfff"> <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=""> <view class="">
<pick-regions :defaultRegion="defaultRegionCode" @getRegion="handleGetRegion"> <pick-regions :defaultRegion="defaultRegionCode" @getRegion="handleGetRegion">
<view class="dis-flex flex-sp form-gorup-title"> <view class="dis-flex flex-sp form-gorup-title">
<view class=" flex-1">点击选择省市区<text class="form-group-tips-must">必选</text></view> <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 class="icon-ymt to-right font14 fcor666">
</view> </view>
</view> </view>
</pick-regions> </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>
<view style="clear: both;"> <view style="clear: both;">
<view class="form-gorup-title">详细地址<text class="form-group-tips-must">*</text> <view class="form-gorup-title">详细地址<text class="form-group-tips-must">*</text>
</view> </view>
<input type="text" name="address" v-model="userAddress.address" maxlength="40" <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> </view>
<view class="default-checkbox " @click="defaultChange"> <view class="default-checkbox " @click="defaultChange">
<radio :checked="userAddress.is_default" style="transform:scale(0.7)" color="#FF1A34" /> <radio :checked="userAddress.is_default" style="transform:scale(1.1)" color="#FF1A34" />
<text class="">设为默认地址</text> <text class="font18">设为默认地址</text>
</view> </view>
<view class="bottom-fixed padding-main"> <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>
</view> </view>
@ -337,11 +340,21 @@
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
z-index: 2; 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 { .page-bottom-fixed {
height: 100vh; height: 100vh;
padding-bottom: 120rpx; padding-bottom: 80px;
box-sizing: border-box; box-sizing: border-box;
} }
@ -355,12 +368,12 @@
border-radius: 20rpx; border-radius: 20rpx;
overflow: auto; overflow: auto;
input { .pickRes , input {
border-radius: 0; border-radius: 0;
box-sizing: border-box; box-sizing: border-box;
font-size: 28rpx; font-size: 18px;
height: 70rpx; height: 30px;
line-height: 70rpx; line-height: 30px;
} }
} }
@ -369,7 +382,7 @@
padding: 20rpx 0; padding: 20rpx 0;
margin-bottom: 5rpx; margin-bottom: 5rpx;
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 18px;
} }
} }
@ -384,65 +397,4 @@
color: #f00; 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> </style>

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

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

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

@ -2,7 +2,7 @@
<view class=""> <view class="">
<!-- 商品主图轮播 --> <!-- 商品主图轮播 -->
<view class="swiper-box"> <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"> <swiper-item class="fotct" v-for="(swiper,index) in goodsDetail.bannerImg" :key="index">
<image mode="heightFix" :src="swiper" @click="perImage(index,goodsDetail.bannerImg)"></image> <image mode="heightFix" :src="swiper" @click="perImage(index,goodsDetail.bannerImg)"></image>
</swiper-item> </swiper-item>
@ -26,20 +26,20 @@
<!-- 选择参数 --> <!-- 选择参数 -->
<view class="br bg-white parameter width100 " @click="showPopup(1)"> <view class="br bg-white parameter width100 " @click="showPopup(1)">
<view class="color999 "> <view class=" ">
选择 选择
</view> </view>
<view class=" "> <view class="color999 ">
规格 规格
</view> </view>
<view class="icon-ymt to-right"></view> <view class="icon-ymt to-right"></view>
</view> </view>
<!-- 保障 --> <!-- 保障 -->
<view class="br bg-white parameter width100 " @click="showPopup(2)"> <view class="br bg-white parameter width100 " @click="showPopup(2)">
<view class="color999 "> <view class=" ">
保障 保障
</view> </view>
<view class=" "> <view class="color999 ">
破损包赔 · 假一赔四 · 退货运费险 破损包赔 · 假一赔四 · 退货运费险
</view> </view>
<view class="icon-ymt to-right"></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" <cart-choose :goodsDetail="goodsDetail" :status="status" @refreshCartNum="refreshCartNum"
:specificationList="specificationList" @close="close"></cart-choose> :specificationList="specificationList" @close="close"></cart-choose>

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

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

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

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

@ -171,7 +171,7 @@
</view> </view>
</view> </view>
<view class="width100"> <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" :disable-default-padding="false" v-model="noteValue" maxlength="40"
placeholder="请输入备注信息"></textarea> placeholder="请输入备注信息"></textarea>
@ -390,11 +390,9 @@
if (this.goodsList.length > 1) { if (this.goodsList.length > 1) {
this.isMoreThanOne = true; this.isMoreThanOne = true;
} }
this.getAddrPrice() //
}, },
onShow() { onShow() {
this.getAddrPrice() //
this.getUserDiscount() // this.getUserDiscount() //
this.findUser() // this.findUser() //
}, },
@ -422,45 +420,28 @@
}, },
// //
getAddrPrice() { getAddrPrice() {
if(this.haveAddress){
return
}
uni.showLoading({ uni.showLoading({
title: '加载中', title: '加载中',
mask: true, mask: true,
}); });
getAddressPrice().then(res => { getAddressPrice().then(res => {
uni.hideLoading();
if (res.return_code == '000000') { if (res.return_code == '000000') {
if (res.return_data) { 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) this.getRegiFreight(res.return_data.deliveryAddress)
} }
} else { } else {
uni.showToast({ // uni.showToast({
title: res.return_msg, // title: res.return_msg,
icon: 'none', // icon: 'none',
duration: 2000 // duration: 2000
}) // })
} }
@ -580,13 +561,7 @@
} }
}); });
}, },
//
noteBlur() {
// console.log(12)
},
noteInput() {
// console.log(12)
},
@ -705,7 +680,7 @@
let obj = { let obj = {
orderNo : res.return_data.orderNo, orderNo : res.return_data.orderNo,
createTime:res.return_data.createTime, createTime:res.return_data.createTime,
payPrice:res.return_data.payablePrice payPrice:res.return_data.payPrice
} }
obj = JSON.stringify(obj) obj = JSON.stringify(obj)
@ -786,7 +761,7 @@
.settleAccounts { .settleAccounts {
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 130px; padding-bottom: 140px;
} }
// //
@ -855,7 +830,7 @@
} }
.tool-right { .tool-right {
flex: 1; // flex: 1;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 10px; padding: 10px;
@ -864,11 +839,13 @@
.tool-jiesuan {} .tool-jiesuan {}
.jiesuan-btn { .jiesuan-btn {
width: 200rpx; flex: 1;
height: 40px; // width: 200rpx;
line-height: 40px; width: 100%;
height: 50px;
line-height: 50px;
text-align: center; text-align: center;
border-radius: 20px; border-radius: 25px;
background: linear-gradient(to right, #FFCC1E, #FF8F19); background: linear-gradient(to right, #FFCC1E, #FF8F19);
} }
} }

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

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

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

Loading…
Cancel
Save