
@ -0,0 +1,31 @@ |
|||
1.团购已经添加商品但不能在“拼团特价”里显示 |
|||
2.优惠券不能使用 |
|||
3.“精选标签”和“卖家中心”里面的功能没有调整 |
|||
4.点击“卖家中心”一直在请稍候的状态 |
|||
5.“物业管理”里“小区列表”没有添加功能,编辑信息时不能保存字段,同时地图不能选点,增加一个上传图片功能如产品图片。 |
|||
6.“农村社区”里的“社区列表”改为“农村社区列表”,列表显示村名、地址、电话,去掉均价。上面去掉“楼房”搜索项。 |
|||
7.“社区主页”变更为村名,“社区活动”变更为“社区公告”,去掉“费用管理”,“社区服务”改为“限时抢购”,“社区拍卖”改为“农机租赁”,农机租赁可先做成文章形式的,以发布信息方式体现。下方放“社区团购”、“社区特供”分别对应首页的“拼团特价”、“区域商品”、“积分兑换”。 |
|||
|
|||
3.“精选标签”和“卖家中心”里面的功能没有调整 (郭兴) |
|||
应该怎么调整? |
|||
|
|||
4.点击“精选标签”一直在请稍候的状态 (郭兴) |
|||
这三个接口需要调整 |
|||
orderStatic: 'home/orderStatic', // 订单统计 |
|||
goodsStatic: 'home/goodsStatic', // 商品统计 |
|||
userStatic: 'home/userStatic', //会员统计 |
|||
bannerList: 'sms/SmsHomeAdvertise/list', // 首页banner |
|||
|
|||
6.“农村社区”里的“社区列表”改为“农村社区列表”,(完成) |
|||
|
|||
列表显示村名、地址、电话,去掉均价。 列表显示字段 需要接口调整 |
|||
communityList: 'single/build/communityList', // 所有社区和房间 |
|||
nearCommunityList: 'single/build/near/communityList', // 周边社区 |
|||
|
|||
上面去掉“楼房”搜索项。 (完成) |
|||
|
|||
7.“社区主页”变更为村名,“社区活动”变更为“社区公告”,去掉“费用管理”,“社区服务”改为“限时抢购”,“社区拍卖”改为“农机租赁”,(完成) |
|||
|
|||
农机租赁可先做成文章形式的,以发布信息方式体现。(不理解需求) |
|||
|
|||
下方放“社区团购”、“社区特供”分别对应首页的“拼团特价”、“区域商品”、“积分兑换”。(不理解需求,俩个对应三个??) |
@ -1,93 +1,190 @@ |
|||
<template> |
|||
<view class="coupon-item"> |
|||
<view class="coupon-item"> |
|||
<view class="coupon-money"> |
|||
<view class="nick" ></view> |
|||
<view class="nick">{{item.name}}</view> |
|||
<view class="layof" :style="{color:theme}">¥{{item.amount}}</view> |
|||
<view class="end_time">{{item.endTime | formatCreateTime}}前使用</view> |
|||
<view > |
|||
<view class="demand">满{{ item.minPoint }} 减 {{ item.amount }}</view> |
|||
<view> |
|||
<view class="demand">满{{ item.minPoint }} 减 {{ item.amount }}</view> |
|||
</view> |
|||
</view> |
|||
<view class="get-btn" v-if="!types" :style="{color:color, borderColor:color, background:solid}" @click="acceptCoupon(item)" >立即领取</view> |
|||
<navigator class="get-btn" v-if="types" :style="{color:color, borderColor:color, background:solid}" :url='item.url' @click="acceptCoupon(item)">立即使用</navigator> |
|||
</view> |
|||
<view class="get-btn" v-if="!types" :style="{color:color, borderColor:color, background:solid}" |
|||
@click="acceptCoupon(item)">立即领取</view> |
|||
<navigator class="get-btn" v-if="types" :style="{color:color, borderColor:color, background:solid}" |
|||
:url='item.url' @click="useCoupon(item)">立即使用</navigator> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import Api from '@/common/api'; |
|||
import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue'; |
|||
import { formatDate } from '@/common/date'; |
|||
import Api from '@/common/api'; |
|||
import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue'; |
|||
import { |
|||
formatDate |
|||
} from '@/common/date'; |
|||
|
|||
export default { |
|||
components:{ |
|||
export default { |
|||
components: { |
|||
|
|||
}, |
|||
data() { |
|||
return { |
|||
|
|||
} |
|||
}, |
|||
props:{ |
|||
item:{ |
|||
type: Object |
|||
}, |
|||
types:{ |
|||
type: String, |
|||
default: '' |
|||
data() { |
|||
return { |
|||
types: false |
|||
} |
|||
}, |
|||
theme:{ |
|||
type: String, |
|||
default: '#ff9000' |
|||
props: { |
|||
item: { |
|||
type: Object |
|||
}, |
|||
theme: { |
|||
type: String, |
|||
default: '#ff9000' |
|||
}, |
|||
solid: { |
|||
type: String, |
|||
default: '#ffffff' |
|||
}, |
|||
color: { |
|||
type: String, |
|||
default: '#ff9000' |
|||
}, |
|||
}, |
|||
solid:{ |
|||
type: String, |
|||
default: '#ffffff' |
|||
filters: { |
|||
formatCreateTime(time) { |
|||
let date = new Date(time); |
|||
return formatDate(date, 'yyyy-MM-dd hh:mm:ss') |
|||
}, |
|||
}, |
|||
color:{ |
|||
type: String, |
|||
default: '#ff9000' |
|||
}, |
|||
}, |
|||
filters: { |
|||
formatCreateTime(time) { |
|||
let date = new Date(time); |
|||
return formatDate(date, 'yyyy-MM-dd hh:mm:ss') |
|||
}, |
|||
}, |
|||
methods: { |
|||
async acceptCoupon(item){ |
|||
uni.showLoading({ |
|||
title: '请稍后' |
|||
}); |
|||
methods: { |
|||
async acceptCoupon(item) { |
|||
this.types =!this.types |
|||
uni.showLoading({ |
|||
title: '请稍后' |
|||
}); |
|||
|
|||
let params = { couponId: item.id }; |
|||
let data = await Api.apiCall('post', Api.index.acceptCoupon, params); |
|||
console.log(data); |
|||
if (data) { |
|||
this.$api.msg(data); |
|||
} |
|||
uni.hideLoading(); |
|||
let params = { |
|||
couponId: item.id |
|||
}; |
|||
let data = await Api.apiCall('post', Api.index.acceptCoupon, params); |
|||
console.log(data); |
|||
if (data) { |
|||
this.$api.msg(data); |
|||
} |
|||
uni.hideLoading(); |
|||
|
|||
}, |
|||
}, |
|||
async useCoupon(item){ |
|||
uni.showLoading({ |
|||
title: '请稍后' |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang='scss'> |
|||
.coupon-item { |
|||
width:100%; height:auto; display:table; border-radius:10upx; padding:0 20upx; margin-top:22upx; border:1px solid #eeeeee; position:relative; |
|||
.coupon-money { |
|||
width:465upx; height:auto; display:table; float:left; padding:26upx 0; border-style:none dotted none none; border-color:#eeeeee; |
|||
.coupon-item { |
|||
width: 100%; |
|||
height: auto; |
|||
display: table; |
|||
border-radius: 10upx; |
|||
padding: 0 20upx; |
|||
margin-top: 22upx; |
|||
border: 1px solid #eeeeee; |
|||
position: relative; |
|||
|
|||
.coupon-money { |
|||
width: 465upx; |
|||
height: auto; |
|||
display: table; |
|||
float: left; |
|||
padding: 26upx 0; |
|||
border-style: none dotted none none; |
|||
border-color: #eeeeee; |
|||
|
|||
.nick { |
|||
width: 100%; |
|||
height: 50upx; |
|||
line-height: 30upx; |
|||
font-size: $font-sm; |
|||
color: $font-color-999; |
|||
} |
|||
|
|||
.tit { |
|||
width: 100%; |
|||
height: 50upx; |
|||
line-height: 50upx; |
|||
font-size: $font-sm; |
|||
color: $font-color-999; |
|||
} |
|||
|
|||
.nick { width:100%; height:50upx; line-height:30upx; font-size:$font-sm; color:$font-color-999; } |
|||
.tit { width:100%; height:50upx; line-height:50upx; font-size:$font-sm; color:$font-color-999; } |
|||
.demand { width:100%; height:30upx; line-height:30upx; font-size:$font-sm; color:$font-color-999; } |
|||
.demand { |
|||
width: 100%; |
|||
height: 30upx; |
|||
line-height: 30upx; |
|||
font-size: $font-sm; |
|||
color: $font-color-999; |
|||
} |
|||
|
|||
.layof { |
|||
width: 100%; |
|||
height: 48upx; |
|||
line-height: 30upx; |
|||
font-size: 44upx; |
|||
color: #ff9000; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.end_time { |
|||
width: 100%; |
|||
height: 30upx; |
|||
line-height: 30upx; |
|||
font-size: $font-sm; |
|||
color: $font-color-999; |
|||
} |
|||
} |
|||
|
|||
.get-btn { |
|||
width: 146upx; |
|||
height: 52upx; |
|||
line-height: 50upx; |
|||
position: absolute; |
|||
top: 50%; |
|||
right: 26upx; |
|||
margin-top: -26upx; |
|||
text-align: center; |
|||
border-radius: 60upx; |
|||
color: #ff9000; |
|||
border: 1px solid #ff9000; |
|||
font-size: $font-sm; |
|||
float: right; |
|||
} |
|||
} |
|||
|
|||
.coupon-item:after { |
|||
width: 40upx; |
|||
height: 20upx; |
|||
position: absolute; |
|||
left: 460upx; |
|||
top: -1px; |
|||
border-radius: 0 0 40upx 40upx; |
|||
content: ""; |
|||
display: block; |
|||
background: $bgcolor_white; |
|||
border: 1px solid #eeeeee; |
|||
border-top: 0px; |
|||
} |
|||
|
|||
.layof { width:100%; height:48upx; line-height:30upx; font-size:44upx; color:#ff9000; font-weight:bold; } |
|||
.end_time { width:100%; height:30upx; line-height:30upx; font-size:$font-sm; color:$font-color-999; } |
|||
.coupon-item:before { |
|||
width: 40upx; |
|||
height: 20upx; |
|||
position: absolute; |
|||
left: 460upx; |
|||
bottom: -1px; |
|||
border-radius: 40upx 40upx 0 0; |
|||
content: ""; |
|||
display: block; |
|||
background: $bgcolor_white; |
|||
border: 1px solid #eeeeee; |
|||
border-bottom: 0px; |
|||
} |
|||
.get-btn { width:146upx; height:52upx; line-height:50upx; position:absolute; top:50%; right:26upx; margin-top:-26upx; text-align:center; border-radius:60upx; color:#ff9000; border:1px solid #ff9000; font-size:$font-sm; float:right; } |
|||
} |
|||
.coupon-item:after { width:40upx; height:20upx; position:absolute; left:460upx; top:-1px; border-radius:0 0 40upx 40upx; content:""; display:block; background:$bgcolor_white; border:1px solid #eeeeee; border-top:0px; } |
|||
.coupon-item:before { width:40upx; height:20upx; position:absolute; left:460upx; bottom:-1px; border-radius:40upx 40upx 0 0; content:""; display:block; background:$bgcolor_white; border:1px solid #eeeeee; border-bottom:0px; } |
|||
</style> |
|||
|
@ -0,0 +1,71 @@ |
|||
<template> |
|||
<view class="icons" @click.stop="likeTab"> |
|||
<uni-icons size="20" color="#f07373" :type="like?'heart-filled':'heart'" ></uni-icons> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props:{ |
|||
item:{ |
|||
type:Object, |
|||
default(){ |
|||
return {} |
|||
} |
|||
}, |
|||
types:{ |
|||
type:String, |
|||
default:'' |
|||
} |
|||
}, |
|||
watch:{ |
|||
item(newVal){ |
|||
this.like = this.item.is_like |
|||
} |
|||
}, |
|||
created() { |
|||
this.like = this.item.is_like |
|||
}, |
|||
data() { |
|||
return { |
|||
like:false |
|||
}; |
|||
}, |
|||
methods:{ |
|||
likeTab(){ |
|||
this.like = !this.like; |
|||
this.updateLikes(); |
|||
}, |
|||
updateLikes(){ |
|||
uni.showLoading(); |
|||
this.$api.update_likes({ |
|||
user_id:'5f3d11c03d11c60001141e5f', |
|||
article_id:this.item._id |
|||
}).then(res=>{ |
|||
uni.hideLoading(); |
|||
console.log(res); |
|||
uni.showToast({ |
|||
title:this.like?"收藏成功":"取消收藏", |
|||
icon:'none' |
|||
}) |
|||
uni.$emit('update_article',this.types) |
|||
}).catch(()=>{ |
|||
uni.hideLoading(); |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.icons { |
|||
position: absolute; |
|||
right: 0; |
|||
top: 0; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
width: 20px; |
|||
height: 20px; |
|||
} |
|||
</style> |
@ -0,0 +1,269 @@ |
|||
<template> |
|||
<view class="home"> |
|||
<view class="home-list"> |
|||
|
|||
<view v-for="(item,index) in tableList" :key="item._id" :item="item"> |
|||
<view @click="open"> |
|||
<!-- 基础卡片 --> |
|||
<view v-if="item.mode==='base'" class="listcard"> |
|||
<view class="listcard-image"> |
|||
<image :src="item.cover[0]" mode="aspectFill"></image> |
|||
</view> |
|||
<view class="listcard-content"> |
|||
<view class="listcard-content_title"> |
|||
<text>{{item.title}}</text> |
|||
<likes :types="types" :item="item"></likes> |
|||
</view> |
|||
<view class="listcard-content_des"> |
|||
<view class="listcard-content_des-label"> |
|||
<view class="listcard-content_des-label-item">{{item.classify}}</view> |
|||
</view> |
|||
<view class="listcard-content_des-browe">{{item.browse_count}}浏览</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 多图模式 --> |
|||
<view v-if="item.mode==='column'" class="listcard mode-column"> |
|||
<view class="listcard-content"> |
|||
<view class="listcard-content_title"> |
|||
<text>{{item.title}}</text> |
|||
<likes :types="types" :item="item"></likes> |
|||
</view> |
|||
<view class="listcard-image"> |
|||
<view v-if="index<3" v-for="(item,index) in item.cover" :key="index" |
|||
class="listcard-image_item"> |
|||
<image :src="item" mode="aspectFill"></image> |
|||
</view> |
|||
</view> |
|||
<view class="listcard-content_des"> |
|||
<view class="listcard-content_des-label"> |
|||
<view class="listcard-content_des-label-item">{{item.classify}}</view> |
|||
</view> |
|||
<view class="listcard-content_des-browe">{{item.browse_count}}浏览</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 大图模式 --> |
|||
<view v-if="item.mode==='image'" class="listcard mode-image"> |
|||
<view class="listcard-image"> |
|||
<image :src="item.cover[0]" mode="aspectFill"></image> |
|||
</view> |
|||
<view class="listcard-content"> |
|||
<view class="listcard-content_title"> |
|||
<text>{{item.title}}</text> |
|||
<likes :types="types" :item="item"></likes> |
|||
</view> |
|||
|
|||
<view class="listcard-content_des"> |
|||
<view class="listcard-content_des-label"> |
|||
<view class="listcard-content_des-label-item">{{item.classify}}</view> |
|||
</view> |
|||
<view class="listcard-content_des-browe">{{item.browse_count}}浏览</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
types:"", |
|||
tableList: [{ |
|||
_id: 1, |
|||
title: "到速度奥昂是大宋到速度奥昂是大宋到速度奥昂是大宋", |
|||
mode: 'base', |
|||
cover: [ |
|||
"https://ts1.cn.mm.bing.net/th/id/R-C.df4462fabf18edd07195679a5f8a37e5?rik=FnNvr9jWWjHCVQ&riu=http%3a%2f%2fseopic.699pic.com%2fphoto%2f50059%2f8720.jpg_wh1200.jpg&ehk=ofb4q76uCls2S07aIlc8%2bab3H5zwrmj%2bhqiZ%2fyw3Ghw%3d&risl=&pid=ImgRaw&r=0" |
|||
], |
|||
classify: 111, |
|||
browse_count: 111 |
|||
}, |
|||
{ |
|||
_id: 2, |
|||
title: "啊实打实大苏打实打实打算大苏打", |
|||
mode: 'column', |
|||
cover: [ |
|||
"https://pic3.zhimg.com/v2-58d652598269710fa67ec8d1c88d8f03_r.jpg?source=1940ef5c", |
|||
"https://pic3.zhimg.com/v2-58d652598269710fa67ec8d1c88d8f03_r.jpg?source=1940ef5c", |
|||
"https://pic3.zhimg.com/v2-c6ae9c3aff36b9b221258f6a90577902_r.jpg", |
|||
"https://pic3.zhimg.com/v2-c6ae9c3aff36b9b221258f6a90577902_r.jpg" |
|||
], |
|||
classify: 222, |
|||
browse_count: 222 |
|||
}, |
|||
{ |
|||
_id: 3, |
|||
title: "都是否定的撒撒大撒反对的飒飒的撒范德萨", |
|||
mode: 'image', |
|||
cover: [ |
|||
"https://ts1.cn.mm.bing.net/th?id=OIP-C.kJE5c2uL7he1BwdQb3-APAHaNK&w=187&h=333&c=8&rs=1&qlt=90&o=6&pid=3.1&rm=2" |
|||
], |
|||
classify: 333, |
|||
browse_count: 333 |
|||
}, |
|||
], |
|||
}; |
|||
}, |
|||
methods: { |
|||
open() { |
|||
|
|||
} |
|||
|
|||
} |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
page { |
|||
height: 100%; |
|||
display: flex; |
|||
} |
|||
|
|||
.home { |
|||
display: flex; |
|||
flex-direction: column; |
|||
flex: 1; |
|||
overflow: hidden; |
|||
|
|||
.home-list { |
|||
flex: 1; |
|||
box-sizing: border-box; |
|||
} |
|||
} |
|||
.listcard { |
|||
display: flex; |
|||
padding: 15px; |
|||
margin: 20px; |
|||
border-radius: 5px; |
|||
box-shadow: 0 0 5px 1px rgba($color:#000000, $alpha:0.1); |
|||
box-sizing: border-box; |
|||
|
|||
.listcard-image { |
|||
flex-shrink: 0; |
|||
width: 80px; |
|||
height: 80px; |
|||
border-radius: 8px; |
|||
overflow: hidden; |
|||
|
|||
image { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
} |
|||
|
|||
.listcard-content { |
|||
display: flex; |
|||
flex-direction: column; |
|||
padding-left: 10px; |
|||
width: 100%; |
|||
justify-content: space-between; |
|||
|
|||
.listcard-content_title { |
|||
padding-right: 30px; |
|||
font-size: 14px; |
|||
color: #333; |
|||
font-weight: 400; |
|||
line-height: 1.2; |
|||
position: relative; |
|||
|
|||
text { |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
display: -webkit-box; |
|||
-webkit-line-clamp: 2; |
|||
-webkit-box-orient: vertical; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.listcard-content_des { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
font-size: 12px; |
|||
|
|||
.listcard-content_des-label { |
|||
display: flex; |
|||
|
|||
.listcard-content_des-label-item { |
|||
padding: 0 5px; |
|||
margin-right: 5px; |
|||
border-radius: 15px; |
|||
color: #f00; |
|||
border: 1px #f00 solid; |
|||
} |
|||
} |
|||
|
|||
.listcard-content_des-browe { |
|||
color: #999; |
|||
line-height: 1.5; |
|||
} |
|||
} |
|||
} |
|||
|
|||
&.mode-column { |
|||
.list-content { |
|||
width: 100%; |
|||
padding-left: 0; |
|||
} |
|||
|
|||
.listcard-image { |
|||
display: flex; |
|||
margin-top: 10px; |
|||
width: 100%; |
|||
height: 80px; |
|||
|
|||
.listcard-image_item { |
|||
margin-left: 10px; |
|||
width: 100%; |
|||
border-radius: 5px; |
|||
overflow: hidden; |
|||
|
|||
&:first-child { |
|||
margin-left: 0; |
|||
} |
|||
|
|||
image { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.listcard-content_des { |
|||
margin-top: 10px; |
|||
} |
|||
} |
|||
|
|||
&.mode-image { |
|||
flex-direction: column; |
|||
|
|||
.listcard-image { |
|||
width: 100%; |
|||
height: 100px; |
|||
} |
|||
|
|||
.listcard-content { |
|||
padding-left: 0; |
|||
margin-top: 10px; |
|||
|
|||
.listcard-content_des { |
|||
display: flex; |
|||
align-items: center; |
|||
margin-top: 10px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 640 B |
After Width: | Height: | Size: 449 B |
After Width: | Height: | Size: 885 B |
After Width: | Height: | Size: 329 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 976 B |
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 905 B |
After Width: | Height: | Size: 812 B |
After Width: | Height: | Size: 1.1 KiB |