校园跑腿小程序---任务界面 发布以及后端模板下载

devtools/2025/1/20 21:37:45/

在这里插入图片描述

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹

🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页:code袁的博客
💥 个人QQ:2647996100
🐯 个人wechat:code8896
code袁系列专栏导航
1.《毕业设计与课程设计》本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.《微信小程序开发》本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.《vue开发系列全程线路》本专栏分享自己的vue的学习历程。

非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 

在这里插入图片描述

文章目录

      • 1.接单页面的开发
      • 2.发布页面的开发
      • 3.后端模板下载
      • 🎉写在最后

B站讲解视频

上篇文章

校园跑腿小程序—轮播图,导航栏开发

1.接单页面的开发

<view class="tabr"><view class="rw">最新任务</view><view class="top" wx:for="{{taskList}}"><view class="top_left"><view class="item">{{item.taskType}}</view><view class="money">佣金{{item.money}}</view></view><view class="start">取件地址:{{item.startAdddress}}</view><view class="end">送达地址:{{item.endAdddress}}</view><view class="bottom"><view class="time">服务时间:{{item.time}}</view><view class="help">帮ta</view></view></view>
</view>
.rw{margin: 15rpx 30rpx;font-size: 38rpx;font-weight: 600;
}
.top{width: 90%;margin: 15rpx auto;box-shadow: 0 0 15px rgb(0 0 0 / 20%);height: 240rpx;padding: 10rpx 20rpx;
}
.top_left{font-size: 36rpx;display: flex;justify-content: space-between;margin-bottom: 20rpx;
}
.money{color: rgb(255, 161, 20);
}
.start{margin-bottom: 20rpx;
}
.bottom{margin-top: 10rpx;display: flex;align-items: center;justify-content: space-between;
}
.help{width: 150rpx;height: 70rpx;text-align: center;line-height: 70rpx;border-radius: 35rpx;color: white;background-color: #1296db;margin-bottom: -20rpx;
}
// components/task/task.js
Component({/*** 组件的属性列表*/properties: {taskList:{type:Array,value:[]}},/*** 组件的初始数据*/data: {taskList:[]},/*** 组件的方法列表*/methods: {}
})

实现效果

在这里插入图片描述

2.发布页面的开发

user.js
在这里插入图片描述
在这里插入图片描述
发布页面的代码

<view class="top"><view class="address"><view class="startAddress">取件地址</view><input type="text" placeholder="请输入取件地址" bindinput="startAddress" /><view class="endAddress">收货地址</view><input type="text" placeholder="请输入取件地址" bindinput="endAddress"/><view class="endAddress">联系电话</view><input type="text" placeholder="请输入联系电话" bindinput="phone"/></view><view class="shopdetail"><view class="name"><text style="color: red;">*</text> 物品名称:<input type="text" placeholder="物品名称" bindinput="name" /></view><view class="desc">描述信息:<textarea placeholder="描述信息" bindinput="desc" /></view><view class="zl">物品重量:<input type="text" placeholder="物品重量" bindinput="weight" /></view><view class="type"><text style="color: red;">*</text> 物品类别:<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"><view class="picker">{{array[index]}}</view></picker></view><view class="price"><text style="color: red;">*</text> 小费:<button bind:tap="delet" data-value="{{price}}">-</button><text style="margin-left: 25rpx;">{{price}}</text><button bind:tap="add" data-value="{{price}}"  style="margin-left: 25rpx;">+</button></view><view class="img">物品图片:<image wx:if="{{imgUrl}}" src="{{imgUrl}}" mode=""/><image wx:else bind:tap="goupload" src="../../image/index/upload.png" mode=""/></view></view><button class="gopublic" bind:tap="goPublic">发布</button>
</view>
/* pages/send/send.wxss */
.address{margin: 15rpx auto;width: 92%;box-shadow: 0 0 15px rgb(0 0 0 / 20%);padding: 10rpx;
}
.startAddress,.endAddress{font-weight: 600;font-size: 36rpx;margin: 15rpx 10rpx;border-left: 5rpx solid #1296db;padding-left: 10rpx;}
.address input{height: 50rpx;padding: 10rpx;border-bottom: 1rpx dashed gainsboro;
}
.shopdetail {margin: 20rpx auto;width: 92%;box-shadow: 0 0 15px rgb(0 0 0 / 20%);padding: 10rpx;font-size: 36rpx;
}
.name{display: flex;margin: 15rpx 10rpx;align-items: center;font-size: 36rpx;
}
.name input{width: 66%;height: 65rpx;padding-left: 10rpx;border-bottom: 1rpx dashed gainsboro;
}
.desc{margin: 15rpx 20rpx;display: flex;
}
.desc textarea{width: 70%;height: 120rpx;border-bottom: 1rpx dashed gainsboro;margin-left: 20rpx;
}
.type{margin: 30rpx 20rpx;display: flex;}
.price{margin: 25rpx 20rpx;display: flex;
}
.price button{width: 60rpx;padding: 0;margin: 0;height: 60rpx;line-height: 50rpx;
}
.zl{display: flex;margin: 20rpx 20rpx;
}
.zl input{width: 70%;height: 65rpx;border-bottom: 1rpx dashed gainsboro;margin-left: 20rpx;
}
.img{margin: 20rpx 20rpx;display:flex;
}
.img image{ width: 250rpx;height: 250rpx;
}
.gopublic{background-color: #1296db;width: 80%;margin: 50rpx auto;border-radius: 50rpx;color: white;
}
// pages/send/send.js
const {addTask} =require('../../api/user')
Page({/*** 页面的初始数据*/data: {array: ['取快递', '取外卖', '代买零食', '打印'],index:0,imgUrl:'',price:0,startAddress:'',endAddress:'',phone:'',name:'',desc:'',weight:''},/*** 生命周期函数--监听页面加载*/onLoad(options) {},startAddress(e){this.setData({startAddress:e.detail.value})},endAddress(e){this.setData({endAddress:e.detail.value})},phone(e){this.setData({phone:e.detail.value})},name(e){this.setData({name:e.detail.value})  },desc(e){this.setData({desc:e.detail.value}) },weight(e){this.setData({weight:e.detail.value}) },add(e){let value=e.currentTarget.dataset.valuethis.setData({price:value+1})},delet(e){let value=e.currentTarget.dataset.valueif(value<2){wx.showToast({title: '小费不能为零',icon:'none'})}else{this.setData({price:value-1})}},bindPickerChange: function(e) {this.setData({index: e.detail.value})},goupload(res){let that=thiswx.chooseImage({count: 1,sizeType: ['original', 'compressed'],sourceType: ['album', 'camera'],success (res) {var imgsFile = res.tempFilePaths[0];that.setData({imgUrl:imgsFile})wx.uploadFile({filePath: imgsFile,name: 'file',url: 'http://localhost:3000/upload/upload',success: res => {that.data.userInfo.imgUrl=JSON.parse(res.data).url}})}})},goPublic(){if(this.data.startAddress==''){wx.showToast({title: '取件地址不能为空',icon:"none"})}else if(this.data.endAddress==''){wx.showToast({title: '收货地址不能为空',icon:"none"})}else if(this.data.phone==''){wx.showToast({title: '手机号不能为空',icon:"none"})}else if(this.data.name==''){wx.showToast({title: '物品名称不能为空',icon:"none"})}else if(this.data.price==0){wx.showToast({title: '佣金不能为零',icon:"none"})} else{let data={startAddress:this.data.startAddress,endAddress:this.data.endAddress,phone:this.data.phone,name:this.data.name,desc:this.data.desc,weight:this.data.weight,type:this.data.array[this.data.index],price:this.data.price,imgUrl:this.data.imgUrl,user_id:wx.getStorageSync('userInfo').id}addTask(data).then(res=>{if(res.code==200){wx.showToast({title: '发布成功',icon:"none"})}})}},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

在这里插入图片描述

3.后端模板下载

如果需要后端模板的可以下面这个gitee的地址去下载

gitee后端模板下载

vscode 的下载,node 下载以及vue脚手架的安装可以去看看这个篇文章,大家有啥不懂的都可以去看我发布的视频。重要的环节我都已视频的形式表达了。

vue脚手架的安装

在这里插入图片描述
在这里插入图片描述

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~
在这里插入图片描述


http://www.ppmy.cn/devtools/152196.html

相关文章

BERT与CNN结合实现糖尿病相关医学问题多分类模型

完整源码项目包获取→点击文章末尾名片&#xff01; 使用HuggingFace开发的Transformers库&#xff0c;使用BERT模型实现中文文本分类&#xff08;二分类或多分类&#xff09; 首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类 然后手动实现B…

C# 数据结构全面解析

在 C# 编程的世界里&#xff0c;数据结构是构建高效程序的基石。合理运用数据结构&#xff0c;能够优化数据的存储和访问方式&#xff0c;显著提升程序的性能。本文将深入探讨 C# 中常见的数据结构及其应用场景。 一、数据结构基础概念 数据结构是一种组织和存储数据的方式&a…

算法分析与设计之贪心算法

文章目录 前言一、Greedy Algorithms1.1 贪心选择性质1.2 最优子结构性质1.3 正确性证明 二、典型例题2.1 Interval Scheduling间隔调度2.2 Interval Partitioning最少间教室排课2.3 Selecting Breakpoints选择加油站停靠点2.4 硬币找零2.5 Scheduling to Minimizing Lateness2…

Redis系列之底层数据结构整数集IntSet

Redis系列之底层数据结构整数集IntSet 什么是IntSet IntSet&#xff0c;整数集合&#xff0c;是Redis集合类型的一种底层数据结构&#xff0c;当一个集合只包含整数值元素&#xff0c;并且这个集合的元素数量不多时&#xff0c;redis就会选用intset作为底层实现。 IntSet的数…

Python脚本搬运当前文件夹及其子文件夹中所有的.c格式的文件到当前新建的文件夹中

写一个Python脚本&#xff0c;用来搬运当前文件夹及其子文件夹中所有的.c格式的文件到当前新建的SourceLib文件夹中&#xff0c;并排除搬运isnocopyname.txt中定义的c文件。新建Lib_Log.txt文本&#xff0c;开头打印当前计算器名和时间&#xff0c;并将搬运的文件的路径及文件名…

PostCSS安装与基本使用?

1. 安装PostCSS及其CLI工具 在全局环境中安装PostCSS CLI工具以便从命令行运行PostCSS&#xff1a; npm install -g postcss postcss-cli如果你想在项目中局部安装&#xff1a; npm install --save-dev postcss postcss-cli2. 创建PostCSS配置文件 在项目根目录下创建一个名…

lvm快照备份

前提 数据文件要在逻辑卷上&#xff1b; 此逻辑卷所在卷组必须有足够空间使用快照卷&#xff1b; 数据文件和事务日志要在同一个逻辑卷上&#xff1b; 前提&#xff1a;MySQL数据lv和将要创建的快照要在同一vg&#xff0c;vg要有足够的空间存储 优点 几乎是热备&…

Nature Microbiology | John C. Alverdy组-肠杆菌素抑制芳香烃受体促进小鼠细菌性败血症...

研究论文 ● 期刊&#xff1a;Nature Microbiology (IF:20.5) ● DOI&#xff1a;https://doi.org/10.1038/s41564-024-01882-9 ●原文链接: https://www.nature.com/articles/s41564-024-01882-9 ● 第一作者&#xff1a;Robert C. Keskey ● 通讯作者&#xff1a;Robert C. …