怎么赚钱
美团外卖饿了么外卖赚钱小程序还能赚钱吗,老有人问能不能赚钱,那么今天就说一下逻辑
首先,分为cps悬赏和,赏金两种方式赏金属于打赏比较高的。cps的模式主要靠用户下单的结算金额,用户买的多你就赚的多,通常是在3~6%,美团是3,美团被制裁之后就降价了(可能是这个原因,据说预算不够了)。
当然了,依赖外卖cps赚钱是不行的,当然要加点东西了。比如涵盖话费、视频会员、加油卡、礼品卡等多种品类折扣权益,吃、喝、玩、乐、购五大消费场景覆盖的综合权益卡券小程序,用户折扣购、平台赚佣金,个人、企业流量变现平台。
这些都可以加。三个月外卖收入订单。仁者见仁智者见智,都有自己的推广方式,但是,最好是用免费的流量,比如贴吧,什么的。
<template>
<view class="page-main">
<view class="head-picture-area">
<uni-nav-bar
:fixed="false"
:status-bar="true"
:border="false"
backgroundColor="transparent"
>
<!-- <view class="choose-address" slot="left" @click="openPopup">
<view class="icon" />
<view class="city">广州市</view>
</view> -->
</uni-nav-bar>
<image src="/static/index/banner.png" class="header-content" />
</view>
<loginWrap>
<view class="coupon-top" v-if="productActivityList.length">
<view
class="coupon-top-item"
v-for="(item, index) in productActivityList"
:key="index"
@click="jumpTo(`/pages/product/list?pcode=${item.code}`)"
>
<image class="pic" :src="item.logo" />
<view class="text">{{ item.name }}</view>
</view>
<view
class="coupon-top-item"
@click="
handleProductClick({
type: 'page',
path: '/pages/product/classify',
})
"
>
<image class="pic" src="/static/index/fenlei.png" />
<view class="text">分类查找</view>
</view>
</view>
<brandLoading v-else />
</loginWrap>
<view
class="hot-activity"
:class="{ layout2: layout == 2 }"
v-if="banner.length || coupon.length"
>
<view class="activity-left" v-if="banner.length">
<!-- <view class="title">1元拉新拼</view> -->
<swiper
:autoplay="true"
:circular="true"
class="swiper"
indicatorActiveColor="#fff"
indicatorColor="#ccc"
:indicatorDots="true"
v-if="banner.length > 1"
>
<swiper-item
class="swiper-item"
v-for="(banner, i) in banner"
:key="i"
@click="handleProductClick(banner)"
>
<image class="img" mode="aspectFill" :src="banner.pic.url"></image>
</swiper-item>
</swiper>
<view class="swiper" v-else>
<image class="img" mode="aspectFill" :src="banner[0].pic.url" @click="handleProductClick(banner[0])"></image>
</view>
</view>
<view class="activity-right" v-if="coupon.length">
<view class="activity-item" v-for="(coupon, i) in coupon" :key="i">
<image
:mode="layout == 2 ? 'aspectFill' : 'widthFix'"
:src="coupon.pic.url"
@click="handleProductClick(coupon)"
/>
</view>
</view>
</view>
<view class="coupon-card">
<view class="nav-bar">
<view class="nav-item active">精选优惠</view>
<!-- <view class="nav-item">周边好店</view> -->
</view>
<loginWrap>
<view class="coupon-card-list" v-if="productHotList.length">
<view
class="item"
@click="jumpTo(`/pages/product/detail?gcode=${item.code}`)"
v-for="(item, index) in productHotList"
:key="index"
>
<view
class="pic"
:style="{
background: `url(${item.bg_card}) no-repeat center/contain`,
}"
></view>
<view class="card-content">
<view class="title"> {{ item.name }} </view>
<view class="control">
<view class="btn">{{ item.discountStr }}领取</view>
<view class="earn" v-if="item.commission"
>赚¥{{ item.commission_str }}</view
>
<!-- <view class="like"></view> -->
</view>
</view>
</view>
</view>
<cardLoading v-else />
</loginWrap>
</view>
<customTabBar tab="index"></customTabBar>
</view>
</template>
<script>
import { mapState, mapActions } from "vuex";
import getShareMessage from "@/utils/getShareMessage";
import brandLoading from "./components/brandLoading";
import cardLoading from "./components/cardLoading";
export default {
components: { brandLoading, cardLoading },
data() {
return {};
},
computed: {
...mapState({
productActivityList: (state) => state.index.productActivityList,
productHotList: (state) => state.index.productHotList,
banner: (state) => state.index.banner,
coupon: (state) => state.index.coupon,
layout: (state) => state.index.layout,
}),
},
onLoad(option) {
// this.initLocation();
this.fetchProductActivity();
this.fetchProductHot();
this.fetchCardProductRecommand();
if (option.path) {
this.jumpTo(option.path);
}
},
methods: {
...mapActions([
"getAuthorize",
"fetchProductActivity",
"fetchProductHot",
"fetchCardProductRecommand",
]),
async initLocation() {
const authorize = await this.getAuthorize();
if (!authorize) return;
uni.showLoading({ title: "加载优惠中" });
const [locationErr, locationRes] = await uni.getLocation();
const { latitude, longitude } = locationRes;
// await this.fetchShopRecommand({
// lat: latitude,
// lng: longitude,
// });
uni.hideLoading();
},
jumpTo(payload) {
try {
const path = decodeURIComponent(payload);
uni.navigateTo({
url: path,
});
} catch (e) {}
},
handleProductClick(data) {
const { type, appId, path, url } = data;
if (type == "page") {
uni.navigateTo({
url: path,
});
}
if (type == "tab") {
uni.switchTab({
url: path,
});
}
if (type == "miniapp") {
uni.navigateToMiniProgram({
appId,
path,
});
}
if (url) {
uni.navigateTo({
url: `/pages/webview/webview?url=${encodeURIComponent(url)}`,
});
}
},
onShareAppMessage(res) {
return getShareMessage();
},
onShareTimeline() {
return getShareMessage();
},
},
};
</script>
<style lang="scss">
page {
background: #f2f2f2;
}
.head-picture-area {
position: relative;
background: #ffffff;
&::before {
position: absolute;
top: 0;
left: 0;
content: "";
display: block;
height: 248rpx;
width: 100%;
background: linear-gradient(180deg, #ffa1a1 0%, #fad2d6 47%, #ffffff 100%);
}
}
.choose-address {
display: flex;
align-items: center;
padding-left: 26rpx;
font-size: 30rpx;
line-height: 42rpx;
color: #333333;
white-space: nowrap;
.icon {
margin-right: 12rpx;
width: 32rpx;
height: 36rpx;
background: url(/static/index/icon.png) no-repeat center/contain;
}
}
.header-content {
position: relative;
display: block;
margin: 0 auto;
width: 686rpx;
height: 182rpx;
}
.coupon-top {
position: relative;
z-index: 1;
display: flex;
flex-wrap: wrap;
padding: 0 24rpx;
padding-top: 44rpx;
background: #ffffff;
&-item {
padding-bottom: 40rpx;
width: 20%;
text-align: center;
display: flex;
align-items: center;
flex-direction: column;
.pic {
display: block;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
.text {
margin-top: 18rpx;
font-size: 24rpx;
line-height: 34rpx;
color: #333333;
}
}
}
.hot-activity {
background: #f2f2f2;
display: flex;
flex-direction: column;
padding: 20rpx 32rpx;
justify-content: space-between;
box-shadow: 0 -2rpx 120rpx rgba(236, 89, 89, 0.1);
&.layout2 {
flex-direction: row;
justify-content: space-between;
.activity-left {
margin-bottom: 0;
height: 428rpx;
width: 334rpx;
.swiper {
height: 100%;
width: 100%;
}
image {
height: 100%;
width: 100%;
}
}
.activity-right {
justify-content: space-between;
margin-right: 0;
flex-direction: column;
.activity-item {
flex: initial;
margin-right: 0;
height: 204rpx;
width: 332rpx;
}
image {
width: 100;
height: 100%;
}
}
}
.swiper {
height: 160rpx;
}
.title {
font-size: 32rpx;
font-weight: 800;
line-height: 44rpx;
color: #333333;
}
.activity-left {
margin-bottom: 20rpx;
text-align: center;
image {
// margin-top: 18rpx;
display: block;
width: 100%;
height: 160rpx;
}
}
.activity-right {
display: flex;
margin-right: -20rpx;
flex-wrap: wrap;
.activity-item {
flex: 1;
margin-right: 20rpx;
}
image {
// margin-top: 18rpx;
display: block;
width: 100%;
height: 152rpx;
}
}
}
.coupon-card {
background: #fbf6f2;
border-radius: 40rpx 40rpx 0 0;
padding-top: 40rpx;
padding-bottom: 160rpx;
.nav-bar {
display: flex;
padding: 0 32rpx;
color: #333333;
align-items: center;
.nav-item {
margin-right: 40rpx;
font-size: 30rpx;
font-weight: 700;
line-height: 42rpx;
color: #999999;
&::after {
content: "";
// display: block;
margin: 14rpx auto 0;
width: 46rpx;
height: 6rpx;
background: transparent;
}
&.active {
font-size: 36rpx;
font-weight: 800;
line-height: 50rpx;
color: #333333;
&::after {
background: #ec5959;
}
}
}
}
&-list {
display: flex;
flex-wrap: wrap;
padding: 26rpx 25rpx;
.item {
box-sizing: border-box;
margin-bottom: 4rpx;
width: 350rpx;
height: 456rpx;
background: url(https://vkceyugu.cdn.bspapp.com/VKCEYUGU-cf26384b-87c0-45b4-a7e2-8a03c1243555/0ba920fc-465a-4a39-9c16-e6dbd436ea79.png)
no-repeat center/contain;
.pic {
display: block;
height: 218rpx;
margin: 0 20rpx;
}
.card-content {
padding: 0 42rpx;
}
.title {
padding-top: 34rpx;
font-size: 28rpx;
font-weight: 700;
line-height: 40rpx;
color: #333333;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.control {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 58rpx;
.btn {
padding: 0 22rpx;
height: 58rpx;
line-height: 58rpx;
background: #fbeae5;
border-radius: 30px;
text-align: center;
font-weight: 700;
color: #ec5959;
font-size: 26rpx;
}
.like {
width: 32rpx;
height: 30rpx;
background: url(/static/index/collect.png) no-repeat center/contain;
}
.earn {
// padding: 6rpx 6rpx;
color: #fa6400;
font-size: 24rpx;
// background: #fbeae5;
}
}
}
}
}
</style>