基于微信小程序的票价和时间选择以及计算总价

本文介绍如何使用微信小程序的wxml、wxss及JS技术实现选座购票功能,包括选择时间、票价,实时计算总价,以及缺货登记等交互细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发布时间:2018-10-30
 
技术:wxml+wxss+JS
 

概述

微信小程序实现选择时间和票价,根据选择的票价和时间实时计算总价,当时间和票价都显示缺货状态时,点击弹出缺货登记,需要选择票价和时间才能点击立即购买,否则弹出提示。

详细

一、运行结果

 

页面的功能代码在ycselect文件夹内,index和list文件夹对此功能没有作用,until文件夹里面是引入的小图标。

360截图20181026101545828.jpg

 

360截图20181026103449482.jpg

 

360截图20181026103000496.jpg

 

 

二、实现过程

1.下载的代码解压后放到某盘里面。

2.打开微信开发者工具点击上方的项目》新建项目。

1.jpg

3.新建项目的项目目录选择代码所在的位置,AppID可以点击测试号的小程序自动生成、项目名称可根据自己喜好来取。

4.点确定即可。

2.jpg

三、主要代码

 

页面属于静态页面,没有与后台交互, 主要思想是需要选中时间和票价才能点击下一步,用变量存时间(time_num)、票价(price_num)、总价(select_total)、数量(num),当选择了时间和票价后,对应的值存到对应的变量,在点击加减数量时,就可以取变量的值计算总价并存到select_total。数量小于1则禁用减号,最多可以选择10个。

 

缺货登记弹框默认隐藏,当点击缺货时间或票价时弹框显示出来,只需要给缺货的时间和票价添加id(disabed)就可以了。点开缺货登记需要输入手机号,正则验证通过才能提交登记。

Page({
    data: {
        stockFlag: true,//缺货登记
        show:false,//控制下拉列表的显示隐藏,false隐藏、true显示
        selectData:['1','2','3','4','5','6','7','8','9'],//下拉列表的数据
        index:0,//选择的下拉列表下标
        phone: '',  //手机号
        number: '', //数量
        showMessage:false, //点击弹出的缺货登记提示显示
        messageContent: '',//点击弹出的缺货登记提示内容
        submitMessage:false, //点击弹出的缺货登记提示显示
        time:"", //默认选中第一个时间
        price:"", //默认选中第一个不是缺货的时间
        time_num:"", //默认选中第一个时间下标
        price_num:"", //默认选中第一个不是缺货的时间下标
        select_total:0, //总票价
        num: 1, //默认选择的票价数量
        minusStatus: 'disabled ' //数量小于1禁止点击状态
    },
    onload:function(){


    },
    selectTap: function (e) {// 点击下拉显示框
        this.setData({
            show: !this.data.show
        });
    },
    optionTap: function (e) { // 点击下拉列表
        var Index=e.currentTarget.dataset.index;//获取点击的下拉列表的下标
        this.setData({
            index:Index,
            show:!this.data.show
        });
    },
    phoneInput: function(e) {  //监听手机号输入
        this.data.phone = e.detail.value;
    },
    wordInput: function(e) {  //监听留言输入
        this.data.word = e.detail.value;
    },
    stockRefer: function() {
        var _index = this.data.index;//点击数量的下标
        var _phone = this.data.phone;//手机号
        var _num = this.data.selectData[_index];//下拉选择的数量
        var _word = this.data.word;//留言
        console.log(_phone);
        console.log(_num);
        console.log(_word);
        var telRule = /^1[3|4|5|7|8]\d{9}$/;  //验证手机号
        if(_phone == ''){
            this.showMessage('手机号不能为空');
        }else if(!telRule.test(_phone)){
            this.showMessage('手机号格式不正确');
        }
    },
    showMessage: function(text) { //打开关闭提示弹框
        var that = this;
        that.setData({
            showMessage: true,
            messageContent: text
        });
        setTimeout(function(){
            that.setData({
                showMessage: false,
                messageContent: ''
            })
        }, 3000)
    },
    selectTime:function(e){  //点击选择时间
        var _time=e.currentTarget.dataset.time; //点击选择获取时间
        var _num=e.currentTarget.dataset.num; //点击选择获取时间的下标
        this.setData({
            time_num:_num,
            time:_time
        })
    },
    selectPrice: function (e) { //选择时间
        var _price=e.currentTarget.dataset.price; //点击选择获取价格
        var _num=e.currentTarget.dataset.num; //点击选择获取价格的下标
        var totalPrice=this.data.num*_price;
        var _id = e.target.id;
        if(_id=="disabled"){// 判断当缺货时打开缺货登记
            this.setData({
                stockFlag:false
            })
        }else{  // 当点击非缺货时
            this.setData({
                price_num:_num,
                price:_price,
                select_total:totalPrice
            });
        }
    },
    stockHide: function (e) {  // 关闭缺货登记
        this.setData({
            stockFlag:true
        })
    },

    /* 点击减号 */
    bindMinus: function() {
        var num = this.data.num; //选择的数量
        var price= this.data.price; //选中的票价
        // 如果大于1时,才可以减
        if (num > 1) {
            num --;
        }
        // 只有大于一件的时候,才能normal状态,否则disable状态
        var minusStatus = num <= 1 ? 'disabled' : 'normal';
        var totalPrice=num*price;
        // 将数值与状态写回
        this.setData({
            num: num,
            minusStatus: minusStatus,
            select_total:totalPrice
        });
    },
    /* 点击加号 */
    bindPlus: function() {
        var num = this.data.num;
        var price= this.data.price; //选中的票价
        // 数量最多可以选择10件
        if (num < 10) {
            num ++;
        }
        // 只有大于一件的时候,才能normal状态,否则disable状态
        var minusStatus = num < 1 ? 'disabled' : 'normal';
        var totalPrice=num*price;
        // 将数值与状态写回
        this.setData({
            num: num,
            minusStatus: minusStatus,
            select_total:totalPrice
        });
    },
    submitClick:function() {
        var that = this;
        var num = this.data.num; //选择的数量
        var price = this.data.price; //选中的票价
        var time = this.data.time; //选中的时间
        var total = this.data.select_total; //总价格

        if (price == ''||time == '') {
            that.setData({
                submitMessage: true
            });
            setTimeout(function () {
                that.setData({
                    submitMessage: false
                })
            }, 3000)
        } else {
            console.log(time);
            console.log(price);
            console.log(num);
            console.log(total);
        }
    }
});

 

 

四 、运行

点击编译可以在微信开发者工具预览效果,点击编译后点击预览可以扫描二维码在手机预览。

 

360截图20181026103546483.jpg

 

 

五、其他

暂时没有

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

转载于:https://www.cnblogs.com/demodashi/p/10492730.html

电影院订票选座微信小程序(后台javaweb)使用教程用户首次登陆系统需要注册一个用户或直接使用微信作为账号,用户在登录平台后,可以进行平台的操作。主要模块包括以下几点:(1)登录功能:注册普通账号登录;也可以直接使用微信登录;登录后可以修改用户的基本信息,也可以退出。(2)资讯功能:后台录入资讯,在微信小程序电影院订票选座系统的资讯模板展示,用户可以任意浏览资讯列表详细信息   (3)电影库:后台录入电影的相关信息,可以在小程序电影列表面一个一个点击进去查看电影详细信息;支持通过查询来查找所需要的电影。(4)电影信息: 点击到电影详情页面,可以查看电影的介绍,查看电影影评。(5)收藏操作:在电影信息详情,下方点击“收藏”,进行收藏(6)电影票购买选座:在电影信息详情,下方点击“选座购买”,进行日期选择、场次选择、座位选择。(7)我的电影票:包含待付款、已经付款的电影票信息(8)下单付款:在“我的电影票”列表中,点击“去付款”,模拟付款款(9)取消电影票:在“我的电影票”列表中,点击“取消申请”,删除订单(10)电影评价:在“我的电影票”列表中,已经付款的电影,在观影后可以,点击“去评价”,去打分填写影评.(11)我的收藏:用户收藏的电影列表。(12)用户信息:填写姓名、qq、邮箱、备注等信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值