千家信息网

JS如何实现课程表小程序加入自定义背景功能

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章将为大家详细讲解有关JS如何实现课程表小程序加入自定义背景功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。gif演示:在底部会放上gitee的开源地址最近
千家信息网最后更新 2025年02月01日JS如何实现课程表小程序加入自定义背景功能

这篇文章将为大家详细讲解有关JS如何实现课程表小程序加入自定义背景功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

gif演示:

在底部会放上gitee的开源地址

最近总感觉目前的界面过于简洁了,不满足我这个体面人的需求,故加入自定义课程表背景的的功能。
新增页面:

效果:

需要在mine.js里面加入一个入口:

{                name: "设置课表背景",                icon: "/images/scheduleIcon.png",                url: "/pages/schedule/schedule?",            },

新增页面schedule

wxml代码

                    {{couples? "给Ta设置背景":"设置课表背景"}}                                        上传背景                                                                    情侣课表背景                        背景开始展示时间                                                                                        设置背景展示时长                                            设置课表背景        用户可上传喜欢的图片作为课表的背景展示(点击图片替换)                                                                    日课表背景                                        上传日课表背景                                                                    周课表背景                                        上传周课表背景                

js代码

import {    scheduleBG,    couplesBG,    couplesInfoAdd,    setbgdefault,} from "../../utils/api/user";//获取应用实例const app = getApp();const dayjs = require("../../utils/dayjs/dayjs.min");import { wxShowToast } from "../../utils/promisify";Page({    data: {        StatusBar: app.globalData.StatusBar,        CustomBar: app.globalData.CustomBar,        ImgUrl: app.globalData.ImgUrl,        displayArea: app.globalData.displayArea,        CouplesBG: null, // 情侣课表背景        dailySchedule: null, // 日课表背景        weeklySchedule: null, // 周课表背景        sendTime: "现在", // 情侣课表背景开始时间        displayTimeList: [            {                label: "一天",                checked: false,                time: 1,            },            {                label: "一周",                checked: true,                time: 7,            },            {                label: "一个月",                checked: false,                time: 30,            },        ],        startTime: null,    },    onLoad: function (query) {        let { index_bgimage, table_bgimage } = app.globalData.userInfo;        this.setData({            couples: query.couples ? query.couples : null,            dailySchedule: index_bgimage                ? app.globalData.ImgUrl + index_bgimage                : null, // 日课表背景            weeklySchedule: table_bgimage                ? app.globalData.ImgUrl + table_bgimage                : null, // 周课表背景        });    },    /**     * 后退一页     */    BackPage() {        wx.navigateBack({            delta: 1,        });    },    /**     * 切换展示时间     */    showTime(e) {        let id = e.currentTarget.dataset.id;        console.log(e.currentTarget.dataset.id);        let displayTimeList = this.data.displayTimeList.map((v, i) => {            v.checked = id === i;            return v;        });        this.setData({            displayTimeList,        });    },    /**     * 修改背景     */    modifyImage(e) {        let type = e.currentTarget.dataset.type;        wx.chooseImage({            count: 1,            sizeType: ["compressed"],            sourceType: ["album"],            success: (res) => {                // tempFilePath可以作为img标签的src属性显示图片                const tempFilePaths = res.tempFilePaths;                switch (type) {                case "week":                    scheduleBG(tempFilePaths[0], "table").then((v) => {                        app.getSet();                        v.code && wxShowToast(v.msg);                        this.setData({                            weeklySchedule: tempFilePaths[0],                        });                    });                    break;                case "daily":                    scheduleBG(tempFilePaths[0], "index").then((v) => {                        app.getSet();                        v.code && wxShowToast(v.msg);                        this.setData({                            dailySchedule: tempFilePaths[0],                        });                    });                    break;                case "Couples":                    couplesBG(tempFilePaths[0]).then((v) => {                        console.log(v);                        app.getSet();                        v.code && wxShowToast(v.msg);                        this.setData({                            CouplesBG:                                    app.globalData.ImgUrl + v.data.imgurl,                        });                    });                    break;                default:                    wxShowToast("设置失败,请重试");                    break;                }            },        });    },    /**     * 恢复默认背景     */    saveButton() {        this.setData({            dailySchedule: null,            weeklySchedule: null,        });        setbgdefault().then((v) => {            v.code && wxShowToast(v.msg);            app.getSet();        });    },    /**     * 情侣课表开始时间     */    TimePicker(e) {        let day = dayjs(e.detail).format("MM月DD日");        let am = dayjs(e.detail).format("A") == "PM" ? "下午" : "上午";        let time = dayjs(e.detail).format("HH:mm");        let sendTime = `${day} ${am} ${time}`;        console.log(sendTime, "TimePicker");        this.setData({            sendTime,            startTime: dayjs(e.detail),        });    },    /**     * 保存情侣背景     */    saveCouplesBG() {        let { displayTimeList, startTime, CouplesBG } = this.data;        let endType = displayTimeList.filter((v) => v.checked === true)[0];        let _startTime = startTime ? dayjs(startTime) : dayjs();        let endTime = endType.time;        let tid = app.globalData.userInfo.lovers_id;        if (!tid) {            wx.showToast({                title: "保存失败",                icon: "none",                duration: 2000,            });            return;        }        couplesInfoAdd({            tid,            starttime: _startTime.unix(),            endtime: endTime,            love_sort: 1,            contents: CouplesBG.replace(this.data.ImgUrl, ""),        }).then((v) => {            wxShowToast(v.msg);            if (v.code) {                app.getSet().then(() => {                    this.BackPage();                });            }        });    },});

wss代码

headBox {  width: 750rpx; }page {  background-color: #fff; }.BGListBox {  flex-wrap: wrap;  justify-content: space-between; }.BGBox {  width: 321rpx;  height: 321rpx;  border-radius: 34rpx;  overflow: hidden;  margin-top: 22rpx; }  .BGBox .BGImg {    width: 321rpx;    height: 321rpx; }  .BGBox .BGState {    position: relative;    background: #000000;    opacity: 0.5;    padding: 10rpx 20rpx;    bottom: 50rpx;    color: #fff; }.addBG {  width: 321rpx;  height: 321rpx;  margin-top: 22rpx;  border: 1rpx dashed #92979d;  border-radius: 24rpx;  border-radius: 34rpx; }.message {  width: 70rpx;  height: 70rpx;  margin-top: 20rpx; }.title {  font-size: 32rpx;  font-weight: 500;  line-height: 45rpx;  color: #282b2f; }.tips {  font-size: 24rpx;  font-weight: 400;  line-height: 33rpx;  color: #92979d; }.sendTimeBox {  width: 686rpx;  height: 90rpx;  background: #ffffff;  border: 1rpx solid #dfe4ea;  border-radius: 14rpx;  margin: 24rpx 0; }

关于"JS如何实现课程表小程序加入自定义背景功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

背景 课表 情侣 时间 功能 课程 课程表 代码 图片 篇文章 程序 更多 页面 不错 实用 简洁 入口 内容 地址 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库管理实验总结及体会 漳州芒果互联网科技招聘 服务器机房配置 配置服务器文件夹权限管理 舵机控制软件开发 区总工会数据库维护工作 5e匹配选择服务器 服务器网站上传传奇登陆器 如何访问阿里云服务器内网IP 网络安全宣传周活动有哪些 2017三级网络技术题库 云锁怎么检查服务器安全 科来网络安全分析 计算机网络技术学什么最好 皇图云互联网科技有限公司 u8管理服务器在哪里设置 软件开发定制私活 服务器自带的网卡是什么 电商网络安全问题的特点 银川新华互联网科技学校是国营吗 公安网络安全防范知识 上海富赢网络技术有限公司 数据库的数据在前台格式不对 工厂数据库设计报告 皖通科技网络安全 mongo数据库导出索引 计算机网络技术求职信范文英语 邯郸企业软件开发有用吗 形容网络安全可靠的词语 行星边际2服务器有哪些
0