微信小程序管理奖品(抽奖)

这篇具有很好参考价值的文章主要介绍了微信小程序管理奖品(抽奖)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

话不多说直接上代码

功能:
使用微信小程序vant-weapp 组件库中的upload组件以及两个input框
最后拿到的值是一个数组对象的形式

微信小程序管理奖品(抽奖),微信小程序,小程序
主要代码如下:
wxml

<view wx:for="{{prizes}}" wx:key="index" class="inputs">
            <input style="width:31%;border-radius:10rpx" value="{{item.name}}" placeholder="奖品名称" bindinput="handleInput" data-type="name" data-index="{{index}}" />
            <input style="width:31%;border-radius:10rpx" value="{{item.gl}}" placeholder="奖品概率" bindinput="handleInput" data-type="gl" data-index="{{index}}" />
            <van-uploader file-list="{{ item.fileList }}" max-count="1" bind:after-read="afterRead" deletable="{{ true }}" bind:delete="deleteImage" data-index="{{index}}" />
        </view>

js

data: {
    prizes: Array.from({ length: 8 }, () => ({
      name: "",
      gl: "",
      img: "",//存储图片路径
      fileList: [],//上传图片所用
    })),
  },
//input所绑定的事件
 handleInput(e) {
    const { index, type } = e.currentTarget.dataset;
    const { value } = e.detail;
    const prizes = this.data.prizes;
    prizes[index][type] = value;
    this.setData({ prizes });
  },
   //上传
  afterRead(event) {
    const { file } = event.detail;
    const { index } = event.currentTarget.dataset; 
    console.log(file, "file");
    wx.uploadFile({
      url: "自己的路径",
      filePath: file.url, 
      name: "file",
      formData: { user: "test" },
      header: {
        //自己的请求头,
      },
      success: (res) => {
        let { data } = JSON.parse(res.data);
        console.log(data, "data");
        const prizes = this.data.prizes;
        prizes[index].img = data.url;
        prizes[index].fileList.push({ url: file.url, dataUrl: file.url });
        this.setData({ prizes });
      },
      fail: (e) => {
        console.log(e, "fail");
      },
    });
  },
  //删除图片
  deleteImage(event) {
    const { index } = event.currentTarget.dataset;
    const prizes = this.data.prizes.slice();
    prizes[index].fileList = [];
    prizes[index].img = "";
    this.setData({ prizes });
  },

需要赋值回显的话:

onLoad(options) {
    let fileList = []; // 初始化 fileList 变量为空数组
    const prizes = [
      { name: "奖品1", gl: "概率1", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品2", gl: "概率2", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品3", gl: "概率3", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品4", gl: "概率4", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品5", gl: "概率5", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品6", gl: "概率6", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品7", gl: "概率7", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
      { name: "奖品8", gl: "概率8", img: "/uploads/20231221/4a4595fbd2b102b0eea8982133b64cfc.png"},
    ];
    const prizesWithFileList = prizes.map(prize => ({
      ...prize,
      fileList: [ ...fileList, { url: prize.img } ]
    }));
    this.setData({ prizes:prizesWithFileList });
    console.log(this.data.prizes,'赋值回显');
  },

确认提交按钮

 handleButtonClick() {
  const { prizes } = this.data;
  //这里是把数组中的每一个对象的fileList去掉
  let arr = prizes.map(({ fileList, ...rest }) => rest);
  console.log(arr, "最终数据");
  const hasEmptyField = prizes.some((prize) => {
    return prize.name === "" || prize.gl === "" || prize.img === "";
  });
  if (hasEmptyField) {
    wx.showToast({
      title: "请填写完整后提交",
      icon: "none",
    });
  } else {
    // 执行提交事件,请求接口
  }
},

记得点赞关注,后续会发布更多实用文章文章来源地址https://www.toymoban.com/news/detail-764368.html

到了这里,关于微信小程序管理奖品(抽奖)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 - 实现容器卡片翻转动画效果,类似考勤打卡签到时翻转效果(像翻牌抽奖类似的效果动画)详细示例源码教程,一键复制开箱即用!

    微信小程序项目中,实现了任意容器像卡片一样的翻转效果动画,类似钉钉打卡签到点击时的翻转动画! 示例源码的注释非常详细,保证一键复制后改改样式就能应用到你的项目中去了。

    2024年02月10日
    浏览(39)
  • 分享微信抽奖小程序制作步骤_微信抽奖小程序怎么开发

    各位商家在节日期间做活动的时候,都希望用更少的费用去或者更好的宣传和推广的效果。比较常见的就是抽奖活动小程序。无须玩家下载,通过微信扫码或者指定入口就可以参与。 方便,效果又好。 那么,性价比高的抽奖活动小程序怎么做? 来看看微信小游戏发布和制作的

    2024年02月10日
    浏览(27)
  • 基于微信小程序商店管理系统源码成品(微信小程序毕业设计)

    项目获取请看文章最底下官网 商店管理系统是基于微信小程序,java编程语言和mysql数据库和idea开发工具作为后台,微信端采用微信开发工具开发。本系统分为用户和管理员两个角色,用户的主要功能有登陆微信小程序,查看促销资讯,商品分类,商品详情,加入购物车,生

    2024年02月08日
    浏览(51)
  • 微信小程序如何分包管理

    微信小程序的分包管理可以帮助你更有效地组织和管理小程序的代码和资源,以提高性能和加载速度。以下是一些关于如何进行微信小程序分包管理的步骤: 微信小程序的分包管理可以帮助你更有效地组织和管理小程序的代码和资源,以提高性能和加载速度。以下是一些关于

    2024年02月09日
    浏览(39)
  • 微信小程序之投票管理

    对于会议管理模块,必不可少的当然就是我们的投票管理,实现真正意义上的无纸化办公,本期博客为大家介绍会议管理模块,包括发布投票及查看各类投票的状态  MyBatis、SpringMVC、VentUI  MyBatis和SpringMVC在博客主页有讲解,可以翻看往期博客 这里简单介绍一下VantUI Vant是一

    2024年02月07日
    浏览(29)
  • 微信小程序|ssm基于微信小程序的高校课堂教学管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库

    2024年02月21日
    浏览(42)
  • (微信小程序毕业设计源码)基于微信小程序商店管理系统源码成品

    项目获取请看文章最底下官网 商店管理系统是基于微信小程序,java编程语言和mysql数据库和idea开发工具作为后台,微信端采用微信开发工具开发。本系统分为用户和管理员两个角色,用户的主要功能有登陆微信小程序,查看促销资讯,商品分类,商品详情,加入购物车,生

    2024年02月14日
    浏览(41)
  • 微信小程序图书管理系统

    目 录 摘 要 I Abstract II 目 录 V 1 绪论 1 1.1研究背景 1 1.2研究课题和意义 2 1.3研究内容和论文结构 3 2 移动网络环境下图书管理系统的现状分析 4 2.1移动网络环境下图书管理系统的特点 4 2.2当前国内外移动网络环境下图书管理系统的现状 7 2.3微信给移动网络环境下图书管理系统

    2023年04月09日
    浏览(30)
  • 微信小程序——Git版本管理

    微信官方开发文档:微信开放文档 最近在 前端的学习过程 中,接触了与 代码管理 相关的内容,涉及到 微信小程序的代码版本管理 。由于微信小程序和其他的编译软件(例如vs code)的图形化界面不同,更强调版本的管理,微信小程序官方使用了 Git工具 进行版本管理。因此

    2024年02月16日
    浏览(29)
  • 微信小程序毕业设计作品成品(88)微信小程序宠物领养管理系统设计与实现

    博主介绍:《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版等

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包