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

ops/2025/1/18 5:09:11/

在这里插入图片描述

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/ops/151004.html

相关文章

Ubuntu cuda-cudnn中断安装如何卸载

文章目录 问题描述解决方法使用强制移除 问题描述 Ubuntu22.04系统&#xff0c;在终端中执行apt insatll安装或dpkg .deb安装时如果强制关闭终端会导致安装失败&#xff08;安装包会变成iu状态或ru状态&#xff0c;安装成功的应该是ii状态&#xff0c;只需要sudo apt remove p…

代码随想录算法训练营第三十天-贪心算法-763. 划分字母区间

标记字符最远位置&#xff0c;这是人能想到的&#xff1f;定义一个26个字母的数组&#xff0c;下标表示字母的位置&#xff0c;数组值表示当前字母在字符串中遍历过程中所处的位置算法题目无厘头太多&#xff0c;但解法也是太精彩&#xff0c;可是根本记不住&#xff0c;要每日…

Pytorch通信算子组合测试

Pytorch通信算子组合测试 一.背景二.相关链接三.遇到的问题四.操作步骤1.登录服务器2.查看拓扑3.准备测试用例A.准备目录B.用例代码 4.创建docker容器5.查看当前pytorch版本6.运行测试程序 一.背景 测试pytorch通信算子不同配置下的功能及性能测试不同的group组合测试不同的te…

搭建Node.js后端

从头开始搭建一个Node.js后端&#xff0c;并实现查询历史数据的功能&#xff0c;下面是详细的步骤说明&#xff0c;包括环境配置、项目初始化、代码编写、以及服务器启动。 1. 环境配置 1.1 安装 Node.js 和 npm 首先&#xff0c;你需要在你的电脑上安装 Node.js 和 npm&…

C++实现设计模式---中介者模式 (Mediator)

中介者模式 (Mediator) 中介者模式 是一种行为型设计模式&#xff0c;它用一个中介对象来封装一组对象之间的交互。中介者通过协调多个对象之间的通信&#xff0c;避免对象之间的直接依赖&#xff0c;从而实现对象之间的松耦合。 意图 通过引入一个中介者对象&#xff0c;减少…

vscode 极简Linux下 cmake c++开发环境

​ 安装这三插件 vscode安装插件clangd 后报错 无法自动下载服务端 Failed to install clangd language server: FetchError: request to https://api.github.com/repos/clangd/clangd/releases/latest failed, reason: Failed to establish a socket connection to proxies…

使用AKTools本地部署AKShare财经数据接口库

使用AKTools部署AKShare财经数据接口库&#xff0c;AKShare的介绍见&#xff1a;基于 Python 的财经数据接口库&#xff1a;AKShare-CSDN博客 AKTools 是一款用于快速搭建 AKShare HTTP API 的工具&#xff0c;通过 AKTools 可以利用一行命令来启动 HTTP 服务&#xff0c;从而…

element el-input只能输入数字

背景&#xff1a; 在项目中做新增功能的时候&#xff0c;前端需要限制用户的输入&#xff0c;这里例如&#xff1a;在input 输入框只能输入数字。 第2点&#xff0c;如果我想限制的是&#xff0c;输入的是数字限制数字位数。 实现思路&#xff1a;input输入框只能输入数字&…