历时三个月,我发布了一款领取外卖红包小程序

近几年,推广外卖红包爆火,各种推广外卖红包的公众号层出不穷。于是,我就在想外卖红包究竟是怎么一回事。就这样,我带着问题开始了关于外卖红包的研究。

在研究的过程中,我开始了解隐藏优惠券、cps等一系列相关的术语。最后,我明白外卖红包其实就是推广分成,外卖平台会对某些店铺设置隐藏奖励,用户通过分享的链接领取红包进行下单后,分享者会获得一定的收入。了解这些后,我便着手如何将这些隐藏的分成让利给下单的用户,因此也就有了下面的小程序。

“天省宝”小程序提供了一键解决今天吃什么难题,外卖红包领取,以及领取红包下单后可获得分成奖励。

代码技术

服务端:使用PHP+MySQL编写服务端接口

前端:使用UniApp开发并封装成微信小程序

界面截图介绍

一、外卖红包

提供美团和饿了么外卖红包领取,下单可获得分成(平台只抽取极少一部分分成,作为开发和日常维护费用)

领取饿了么红包

在这里插入图片描述

领取美团外卖红包

在这里插入图片描述

二、今天吃什么

提供一键解决今天吃什么难题,可随机抽取不同时间段的菜品

在这里插入图片描述

随机抽取菜品,我使用的是定时器setInterval进行多次获取菜品

<template>
<view class="food-top"><view class="food-title flex-center">今天{{row.time_text && row.time_text != '不限' ? row.time_text: ''}}<textclass="ml5">{{formData.name}}</text>{{startLoading ? '!': '?'}}</view><view class="food-start"><view class="start-text" @click="chooseMenu()">{{buttonText}}</view></view>
</view>
<script>
// 声明定时器
var timer = null;
export default {components: {},data() {return {buttonText: "开始", // 按钮文字row: {cate_id: 0, // 就餐类型idtime_text: '', // 就餐类型文字},// 抽取菜品结果formData: {name: '什么'},cateList: []};},onLoad() {this.getList();},onHide() {this.endMenu()},onUnload() {this.endMenu()},methods: {getList() {this.$api.get('/api/food/menuList', this.queryForm).then(res => {this.foodList = res.data.list;this.cateList = res.data.cate_list;this.row = res.data.row;});},// 选择类型selectCate(item) {this.playSound()this.queryForm.cate_id = item.idthis.$global.showToast('成功选择“' + item.name + '”类型,请开始选择')this.initMenu()},// 随机选择菜单chooseMenu() {this.playSound()if (this.buttonText == '开始' || this.buttonText == '换一个') {// 开始选择this.startMenu()} else {// 结束选择this.buttonText = '换一个'this.startLoading = truethis.endMenu()this.recordMenu()}},// 记录手动选择结果recordMenu() {// menuChoosethis.$api.get('/api/food/menuChoose', this.formData).then(res => {// console.log(res.data.length)if (res.data.msg) {this.$global.showToast(res.data.msg)}});},// 初始化菜单initMenu() {this.buttonText = '开始'this.formData.name = '什么'this.startLoading = falseclearInterval(timer)this.getList()},// 开始选择startMenu() {this.buttonText = '停'this.startLoading = falsetimer = setInterval(() => {let row = this.getRandValue(this.foodList)// console.log(row)this.formData.name = row.name}, 50)},// 结束选择endMenu() {// 记录选择结果 清楚定时clearInterval(timer)},getRandValue(list = []) {let arr = listlet index = Math.floor((Math.random() * arr.length))return arr[index];},}
};
</script>
</template>

三、我的页面

提供分成提现、收益明细和排行、好友等相关功能

在这里插入图片描述

收益明细页面,展示了最近10天内的收益、累计总收益和近30日的收益

在这里插入图片描述

收益明细的柱状图使用的是echarts官方提供的小程序版本echarts-for-weixin组件。详细代码如下:

<template>
// 2. 页面使用echarts组件
<uni-ec-canvas class="uni-ec-canvas" id="year-canvas" ref="yearCanvas" canvas-id="year-canvas" :ec="ec"></uni-ec-canvas>
</template>
<script>
// 1. 需要引入echarts相关的组件
import uniEcCanvas from '@/pagesMine/components/cloud/uni-ec-canvas/uni-ec-canvas.vue';
import * as echarts from '@/pagesMine/components/cloud/uni-ec-canvas/echarts.min.js';
var chart = null;
export default {components: {// 注册echarts组件uniEcCanvas},data() {return {// 格式化echarts组件为柱状图样式ec: {lazyLoad: true},optionYear: {tooltip: {trigger: 'axis',axisPointer: {// 坐标轴指示器,坐标轴触发有效type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'}},grid: {//设置 上下左右距离dom容器距离 控制图标大小left: '1%',right: '1%',bottom: '2%',top: '8%',//是否显示刻度标签 true显示containLabel: true},//直角坐标系配置//设置x轴配置xAxis: {type: 'category',axisTick: {show: false,alignWithLabel: true},nameTextStyle: {color: '#666666'},axisLabel: {show: true,interval: 0,// rotate: 40,textStyle: {color: '#666',fontSize: '10',fontWeight: 'bold'}},axisLine: {lineStyle: {color: '#666',width: 1}},data: ['寿险', '重疾', '意外', '医疗', '年金']},//设置y轴配置yAxis: {type: 'value',axisLine: {show: false //y轴线消失},axisLabel: {show: true,textStyle: {color: '#666',fontSize: '10'}},axisTick: {show: false}},series: [{type: 'line',data: [20, 50, 40, 10, 20],smooth: true,areaStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#6f9989'},{offset: 1,color: '#c4d7c7'}])},itemStyle: {color: '#6f9989',lineStyle: {color: '#6f9989'}},label: {show: true,position: 'top',formatter: params => {// console.log(params);if (params.data > 0) {return params.data;} else {return '';}},color: '#666666',fontStyle: 'PingFang SC',fontWeight: 'bold',fontSize: '12'}}]}};},onLoad(options) {this.getIncome();},methods: {// 获取服务端数据 并进行绘图getIncome() {this.$api.get('/api/person/incomeStatistics', {}).then(res => {this.row = res.data;this.optionYear.xAxis.data = res.data.income_day[0];this.optionYear.series[0].data = res.data.income_day[1];// 获取不到 canvas实例this.$nextTick(() => {setTimeout(() => {this.$refs.yearCanvas.init(this.initYearChart);}, 300);});this.isLoading = false;},rs => {this.isLoading = false;});},// 绘成柱状图initYearChart(canvas, width, height, canvasDpr) {// console.log(canvas, width, height, canvasDpr);chart = echarts.init(canvas, null, {width: width,height: height,devicePixelRatio: canvasDpr});canvas.setChart(chart);chart.setOption(this.optionYear);return chart;},}
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9个AI视频后期处理神器——Runway 全功能超详细使用教程(3)

前面2期内容&#xff0c;主要给大家重点介绍了Runway视频生成技术的核心产品功能板块Gen1、Gen2、FI使用教程&#xff0c;还没有看过的小伙伴可以回看往期文章。除了视频生成AI技术外&#xff0c;Runway还具有图片、视频后期处理30多项单个功能&#xff0c;例如视频修复、视频主…

用Elasticsearch搜索匹配功能实现基于地理位置的查询

1.Redis,MongoDB,Elasticsearch实现地理位置查询比较 1.1 Redis: 优点&#xff1a;Redis提供了地理空间索引功能&#xff0c;可以通过Geo数据类型进行地理位置查询。这使得Redis在处理地理位置查询时非常高效。 缺点&#xff1a; Redis的地理空间索引功能相对简单&#xff0…

融云筑基,移动云加速构建高性能智能算力底座

自2022年11月以来&#xff0c;全球大模型数量迅速增加&#xff0c;以ChatGPT为代表的大模型已经成为世界数字科技领域新热点。大模型带来的算力需求迅速增长&#xff0c;未来智算场景将会有非常大的突破空间。 在“十四五”规划的指引下&#xff0c;各地政府积极投入智算中心建…

深度学习-yolo目标检测-机器学习-计算机视觉-python学习路线(呕心沥血出品-绝对精品-附资源链接)

学习路线 1. 计算机视觉基础知识 图像处理基础:了解图像的基本处理技术,如滤波、边缘检测、直方图等。数字图像处理:熟悉数字图像的表示、颜色模型、图像增强等基本概念。opencv课程链接:Python for Computer Vision with OpenCV and Deep Learning资料推荐: 书籍:《数字…

内核延时函数sleep和delay

延时函数 linux 驱动开发过程中&#xff0c;经常会用到延迟函数&#xff1a;udelay&#xff0c;mdelay&#xff0c;usleep&#xff0c;msleep&#xff0c;usleep_range。这几个延时函数优先使用usleep_range其次是usleep最后udelay。 1、delay和sleep的区别 delay&#xff0…

基于vue框架的美团类药品点单系统

基于VUE框架的美团类药品点单管理系统 摘要&#xff1a; 2019年12月以来&#xff0c;中国湖北省武汉市爆发新型冠状病毒引发的肺炎疫情&#xff0c;并通过人传人的感染方式快速向全国其他地区扩散。全国上下万众一心抗击病毒&#xff0c;湖北广东浙江等24省市启动重大卫生突发…

运动耳机哪个好?跑步耳机哪个好?蓝牙运动耳机十大名牌排行榜

​相信很多人都喜欢在运动的过程中佩戴着耳机一边锻炼一边听音乐享受过程。在选择运动耳机的时候一定要重点去关注以下几点&#xff0c;佩戴时要绝对稳固舒适、音质表现不差、防水防尘效果要好等&#xff0c;这样就不会容易损伤耳朵。很多朋友还不知道运动耳机该怎么选&#xf…

【数据结构】带修莫队

文章目录 问题引入 核心维护修改 总结Code 问题引入 洛谷P1903 嗯&#xff0c;上手一个莫队 … \dots … &#xff1f;还有修改操作&#xff1f; 本文我们来学习带修莫队&#xff0c;及支持修改的莫队。 请确保你已经学会了普通的莫队&#xff0c;不会的可以看这里。 和原来的…

idea创建spring boot项目,java版本只能选择17和21

1.问题描述 java版本为"11.0.20"&#xff0c;idea2023创建spring boot项目时&#xff08;File->Project->Spring Initializr&#xff09;&#xff0c;java版本无法选择11&#xff0c;导致报错&#xff0c;如下图所示&#xff1a; 2.原因 spring2.X版本在2023…

力扣labuladong——一刷day55

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣951. 翻转等价二叉树二、力扣124. 二叉树中的最大路径和三、力扣112. 路径总和&#xff08;遍历&#xff09;四、力扣112. 路径总和&#xff08;分解&a…

GEE errors——在大图像转化为矢量集合中如何避免超限?(含解决方案和详细代码)

问题: 假设在 Google Earth Engine 中有一个大图像,我想将其导出为 CSV。但是,由于它的大小,我很难将其转换为 FeatureCollection 来进行导出,而且我不知道是否有解决方法。 这里将提供几条修改意见,一个是根据经纬度获取个点的值,并用sample进行提取;另外就是重采样…

无效的目标发行版: 21 和springboot爆错

目录 问题描述 原因分析&#xff1a; 问题描述 springboot爆红 调整一下这个&#xff1a;把这里的version调低一点应该就可以了 无效的目标发行版: 21 调整一下这个把这里的Java version调整一下&#xff0c;我是调整到1.8&#xff08;其他没有试过&#xff09; 原因分析&a…

GPT还远远不是真正的智能

GPT是一个基于深度学习的自然语言处理模型&#xff0c;它可以生成逼真的文本。虽然GPT在生成文本方面取得了显著的进展&#xff0c;但它并不具备真正的智能。GPT是通过训练模型来学习语言模式&#xff0c;它不具备理解、推理、判断和主动学习的能力。它只是根据已有的语料库生成…

create-vue 生成式脚手架源码解析

文章目录 命令交互输出渐变标题解析命令行参数命令行交互国际化提示prompts 库实现命令行交互 生成模版创建项目输出文件夹生成 packge.json查找预设的模版文件根据路径生成模块文件render 生成模版填充 ejs 模版数据根据生成项目是 ts 还是 js 后置处理根据需要的模块生成所有…

【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)

​ 目录 一、排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法 二、常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.1.3 直接插入排序和希尔排序的性能对比 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.2.3 直接选择排序和堆排序的性能…

c# 责任链模式

责任链模式是一种行为型设计模式&#xff0c;它允许多个对象按照链式结构处理请求&#xff0c;直到有对象能够处理请求为止。在 C# 中&#xff0c;责任链模式通常通过构建一个处理请求的链来实现。 下面是一个简单的示例&#xff1a; 首先&#xff0c;定义一个处理请求的抽象…

Mysql锁实战详细分析

1.mysql回表查询 在这里提起主要是用于说明mysql数据和索引的结构&#xff0c;有助于理解后续加锁过程中的一些问题。 mysql索引结构和表数据结构是相互独立的&#xff0c;根据索引查询&#xff0c;只能找到索引列和主键聚簇索引。如果select语句中不包含索引列&#xff0c;m…

陪诊系统|沈阳陪诊系统定制|陪诊软件保障患者安全与便利

陪诊系统是一种以专业医疗服务为核心的综合性陪同体系。它涵盖了医院前线咨询、专业陪诊、医后关怀等多个环节&#xff0c;提供全方位的医疗咨询服务和专业的医疗陪同服务。通过陪诊系统&#xff0c;患者可以获得更加便捷、高效、安全的医疗服务体验。陪诊系统的出现&#xff0…

多类场景、遍布各地,融云 IM 支撑多款应用全球增长

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 无论是面向企业场景的工作流协同还是消费场景的网络效应形成&#xff0c;商务社交还是陌生人社交&#xff0c;IM 都是必备组件。IM 遍布互联网各角落&#xff0c;出现在所有…

netty学习

netty是一个 NIO 框架&#xff0c;它提供了一个高性能、异步事件驱动的网络应用程序框架 NIO 三大主键channel&buffer 通道/缓冲 &#xff1f;有哪些selector 选择器 &#xff08;适合连接多&#xff0c;流量低&#xff09;多路复用 单线程配合selector管理多个chann…