Апплет лотереи, рисуйте жребий, чтобы назначать задачи, так просто

Апплет WeChat
Апплет лотереи, рисуйте жребий, чтобы назначать задачи, так просто

задний план

Сегодня, кто готовит, кто моет посуду, кто покупает овощи... А, Хозяин сказал использовать лотерею, так что у меня такая картина

抽签

Таким образом, есть проблема читерства (вспомните характеристики палки, кто нарисует первым, кто нарисует позже и т. д.), поэтому есть эта маленькая программа-лотерея (конечно, я управляю маленькой программой один, Я хочу обмануть, зависит от моего настроения)

Введение

Опыт сканирования кода

Служба данных, хранение

В этом проекте используется облачная разработка WeChat, а облачная база данных может объявлять набор лотерейных списков chouqianList (облачная разработка предоставляет разработчикам полную собственную облачную поддержку и поддержку службы WeChat, ослабляет концепцию серверной части, эксплуатации и обслуживания, не требует создания сервер, использует платформу для предоставления API для развития основного бизнеса, что может обеспечить быстрый запуск и итерацию)

Подготовка перед бегом

(1)Зарегистрируйте мини-программу WeChat, получить appid, заменить appid в project.config.json этого проекта

(2)Откройте облачную разработку апплета

Реализация

титульная страница

首页

Сверху вниз на главной странице есть темы лотереи, варианты лотереи, инициация лотереи и обычная лотерея.Основная функция этой страницы - инициировать лотерею и сохранить содержимое лотереи в базе данных.

Советы по обзору WeChat

Чтобы решить эту проблему, добавьте контент для вызова этого метода (мини-программный API безопасности содержимого, который может вызываться облачной разработкой)

  isCheckMsg: function (msg) {
        return new Promise(function (n, s) {
            wx.cloud.callFunction({
                name: 'msg',
                data: ({
                    text: msg
                })
            }).then(res => {
                if (res.result.errCode === 87014) {
                    // 没通过
                    n(false) 
                } else {
                    // ("通过")
                    n(true)
                }
            });
        });
    },

случайный розыгрыш

 // 递归随机返回抽签项
    edchouqian() {
        let that = this;
        return new Promise(function (n, s) {
            const db = wx.cloud.database()
            // 查询当前用户所有的 chouqianList
            db.collection('chouqianList').where({
                _id: that.data.drawlotsId
            }).get({
                success: res => {
                    that.setData({
                        detail: res.data[0].detail,
                    });
                    let nullDetail = res.data[0].detail.filter(item => item.openid == "");//找出没有抽签的选项
                    let arrIndex = Math.floor((Math.random() * nullDetail.length));//从没有抽签的选项随机选择一个选项
                    let objindex = nullDetail[arrIndex].index;
                    n(objindex)
                },
                fail: err => {
                    wx.showToast({
                        icon: 'none',
                        title: '查询记录失败'
                    })
                    console.error('[数据库] [查询记录] 失败:', err);
                    s(err);
                }
            })
        });
    },

страница лотереи

抽签页

Страница лотереи имеет функцию лотереи для отображения результатов лотереи. Основная функция этой страницы - запросить, была ли лотерея розыграна из базы данных, отобразить результаты лотереи, если лотерея была разыграна, и случайным образом назначить лотерею если лотерея не разыграна (или показать, что номер лотереи израсходован).

Повторяющаяся проблема с лотереей с функцией анти-встряски или троттлинга

Страница результатов лотереи

抽签结果页

Страница результатов лотереи, показывающая весь персонал лотереи и результаты (результаты запрашиваются из базы данных в соответствии с идентификатором лотерейной таблицы)

Слишком далекоАдрес источника

Заключение:

Поскольку время публикации относительно короткое, страницы и функции необходимо постепенно улучшать, а выпущенные функции также нуждаются в улучшении.Я приветствую друзей-единомышленников по коду, чтобы они давали больше советов и обменивались мнениями.ヾ(❀╹◡╹)ノ~

Начальная обучающая группа 493671066, там много красивых женщин. Старый водитель быстро сел в машину, объяснять было поздно.

Авторские статьи Vue по теме

Контроль разрешений фоновой системы на основе Vue2.0

vue2.0 на основе скинов elementui (пользовательская тема)

Сводная информация о интерфейсной документации

Добавление, удаление, изменение, вложение, редактирование, добавление компонентов модели (всплывающее окно) VUE2.0 совместно

Спасибо искренне

打赏