uniapp封装门票等票务样式

先看效果图
在这里插入图片描述

ticketpage组件引用后,根据父级背景颜色改变镂空的颜色,空组件只有中间镂空的样式,上面是插槽heaer,下面内容是插槽content,可以自定义自己的内容和样式。我实现的最终效果是用的uview组件,如果复现需要项目引入。可以替换中间的虚线为背景图等适合自己的样式

组件代码:

<template>
    <view class="ticket-page">
        <view class="header">
            <slot name="header">header</slot>
        </view>
        <view class="line">
            <view class="middle">
                <view class="dashed"></view>
            </view>
        </view>
        <view class="content">
            <slot name="content">content</slot>
        </view>
    </view>
</template>

<script>
export default {
    // import引入的组件需要注入到对象中才能使用
    components: {},
    mixins: [],
    props: {
        bgColor: {
            default: '#F6F6F6',
        },
    },
    data() {
        // 这里存放数据
        return {
            dashed: '-',
        };
    },
    // 挂载方法
    mounted() {},
    // 方法集合
    methods: {},
    // 监听属性 类似于data概念
    computed: {},
    // 监控data中的数据变化
    watch: {},
    // 生命周期 - 创建完成(可以访问当前this实例)
    onLoad(options) {},
    // 生命周期 - 页面展示(不可以访问DOM元素)
    onShow() {},
    // 生命周期 - 挂载完成(可以访问DOM元素)
    onReady() {},
    onHide() {}, // 生命周期 - 监听页面隐藏
    // 生命周期 - 上拉加载更多
    //onReachBottom() {
    //  if (this.hotelParasm.pageNum * this.hotelParasm.pageSize >= this.total) {
    //  this.loadStatus = 'nomore' return;
    //  if (this.isloading) return;
    //if (this.isloading) return;
    //此处判断,上锁,防止重复请求
    //  if (!this.isloading) {
    //      this.hotelParasm.pageNum += 1
    //          this.gethotelList();
    //      }
    //},
    // 生命周期 - 下拉刷新数据
    //onPullDownRefresh() {
    //},
    onUnload() {}, // 生命周期 - 监听页面卸载
};
</script>
<style lang="scss" scoped>
.ticket-page {
    width: 690rpx;
    box-sizing: border-box;

    .header {
        min-height: 100rpx;
        background-color: white;
        border-radius: 15rpx 15rpx 0 0;
    }
    .line {
        width: 690rpx;
        display: flex;
        justify-content: flex-start;
        height: 30rpx;
        align-items: center;
        box-sizing: border-box;
        background: radial-gradient(circle at 0 50%, transparent 0.4rem, #fff 0.45rem) top left,
            radial-gradient(circle at 100% 50%, transparent 0.4rem, #fff 0.45rem) top right;
        background-size: 51% 100%;
        background-repeat: no-repeat;
        padding-left: 15rpx;
        padding-right: 15rpx;

        .middle {
            width: 660rpx;
            display: flex;
            justify-content: flex-start;
            align-items: center;
            box-sizing: border-box;
            background-color: white;
            overflow: hidden;
            .dashed {
                width: 100%;
                border: 1rpx dashed #cdcdcd;
            }
        }
    }

    .content {
        min-height: 100rpx;
        background-color: white;
        border-radius: 0 0 15rpx 15rpx;
    }
}
</style>

组件使用:

   <ticketpage>
                <template slot="header">
                    <view class="header">
                        <view class="title">巫山小三峡·小小三峡景区</view>
                        <view class="date">
                            <text class="iconfont icon-rili"></text>
                            <text>2023-6-16至2023-7-16</text>
                        </view>
                    </view>
                </template>
                <template #content>
                    <view class="content">
                        <u-cell :border="false">
                            <view slot="title" class="cell-title">购买数量</view>
                            <u-number-box slot="right-icon" @change="handleBuyNum" :integer="true" v-model="buyNum" step="1" :min="0" :max="10">
                                <view slot="minus" class="minus">
                                    <u-icon name="minus" size="12" color="#fff"></u-icon>
                                </view>
                                <text class="ipt" slot="input">{{ buyNum }}</text>
                                <view slot="plus" class="plus">
                                    <u-icon name="plus" color="#fff" size="12"></u-icon>
                                </view>
                            </u-number-box>
                        </u-cell>
                        <view style="padding: 0 30rpx 30rpx; box-sizing: border-box">
                            <view class="prompt">可在使用范围日期内任选一天游玩</view>
                            <view class="prompt">
                                <text style="color: #ff6100">条件退款 | </text>
                                <text style="color: #ff6100; margin-right: 30rpx">无需换票</text>
                                <text style="color: #666666">购买须知 ></text>
                            </view>
                        </view>
                    </view>
                </template>
            </ticketpage>
  <style lang="scss" scoped>
.buy-ticket {
    width: 100%;
    .home {
        background-color: #f1f1f1;
        padding: 30rpx;
        box-sizing: border-box;
        font-size: 24rpx;
        .header {
            padding: 30rpx;
            box-sizing: border-box;
            .title {
                font-size: 32rpx;
                font-weight: bold;
            }
            .date {
                width: 100%;
                background-color: #f7f8fa;
                color: #666;
                padding: 20rpx;
                box-sizing: border-box;
                margin-top: 20rpx;
            }
        }
        .content {
            box-sizing: border-box;
            .ipt {
                display: inline-block;
                width: 40rpx;
                height: 40rpx;
                border-radius: 10rpx;
                text-align: center;
                font-weight: bold;
                // background-color: #cdcdcd;
                margin: 0 6rpx;
                color: #333;
            }
            .cell-title {
                font-size: 32rpx;
                font-weight: bold;
            }
            .plus {
                min-width: 40rpx;
                height: 40rpx;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 4rpx;
                background-color: $red;
                border-radius: 6rpx;
            }
            .minus {
                width: 40rpx;
                height: 40rpx;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 4rpx;
                background-color: #cdcdcd;
                border-radius: 10rpx;
            }
            .prompt {
                height: 40rpx;
                line-height: 40rpx;
                color: #666666;
            }
        }
    }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/34273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx负载均衡与动静分离

一、Nginx负载均衡&#xff1a; 1.概述&#xff1a; Nginx是一款http服务器软件&#xff0c;支持高达50000个并发连接数的响应。 &#xff08;1&#xff09;拥有强大的处理静态资源的能力。 &#xff08;2&#xff09;运行稳定。 &#xff08;3&#xff09;CPU&#xff0c…

【Unity3D编辑器开发】Unity3D中初次尝试使用PropertyDrawer属性

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 前段时间一直比较忙&#xff0c;没有时间更新博客&#xff0c;…

2011年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&…

tomcat接入skywalking

tomcat接入skywalking 一、说明二、步骤2.1 准备java-agent包2.2 tomcat部署2.2.1 下载2.2.2 tomcat修改catalina.sh文件2.2.3 tomcat修改启动端口2.2.4 启动tomcat 三、验证四、问题排查4.1 tomcat的启动日志 一、说明 服务器中已经运行着skywalking&#xff0c;准备在同一台…

7-WebApis-5

Web APIs - 5 目标&#xff1a; 能够利用JS操作浏览器,具备利用本地存储实现学生就业表的能力 BOM操作综合案例 js组成 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。比如&#xff1a;变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型&#xff…

2023全云在线联合微软AIGC专场沙龙:人工智能与企业创新,促进创造力的数字化转型

6月29日&#xff0c;由全云在线平台和微软联合主办的人工智能与企业创新&#xff1a;促进创造力的数字化转型——2023AIGC微软专场沙龙在广州天河区正佳万豪酒店举行。 关于2023AIGC微软专场沙龙 GPT翻开了AGI新的一页&#xff0c;也翻开了各行各业的新篇章。 2022年11月30日…

使用Jmeter读取和使用Redis数据

目录 前言 缓存 Redis服务和客户端安装 Jmeter使用Redis 前言 在使用 JMeter 进行性能测试时&#xff0c;有时需要读取和使用 Redis 数据。Redis 是一个开源的内存数据存储系统&#xff0c;常用于缓存、消息队列和数据存储等场景。 缓存 Web系统通常使用数据库来存储数据…

性能测试讲解超详细Jmeter

目录 什么是性能 性能测试的目的 功能测试和性能测试 基准测试 负载测试 稳定性测试 压力测试 并发测试 总结 性能测试指标 响应时间 并发数 吞吐量 点击数 错误率 资源使用率 总结 性能测试流程 性能测试需求分析 性能测试计划和方案 ​编辑性能测试用例​编辑 性…

【MySQL】MySQL数据库,RDBMS 术语,使用说明和报错解决的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

CommonJS 和 ES6 module

本文主要自己觉得要记录的点记录下来,不耽误大家时间&#xff0c;会持续更新。 Module对象 Module {id: xxx/demo/1.js, //加载文件的绝对路径path: xxx/demo,// 加载文件所在目录的绝对路径exports: [Function (anonymous)],filename: xxx/demo/1.js,加载文件的绝对路径load…

蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Lesson1-1:OpenCV简介

图像处理 学习目标 了解图像的起源知道数字图像的表示 1 图像的起源 1.1 图像是什么 图像是人类视觉的基础&#xff0c;是自然景物的客观反映&#xff0c;是人类认识世界和人类本身的重要源泉。“图”是物体反射或透射光的分布&#xff0c;“像“是人的视觉系统所接受的图在…

【数据库】MySQL 高级(进阶) SQL 语句

文章目录 前提条件一、常用查询1. SELECT&#xff08;显示查询&#xff09;2. DISTINCT&#xff08;不重复查询&#xff09;3. WHERE&#xff08;有条件查询&#xff09;4. AND/OR&#xff08;且/或&#xff09;5. IN &#xff08;显示已知值的字段&#xff09;6. BETWEEN&…

【探索 Kubernetes|作业管理篇 系列 14】StatefulSet 存储状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 StatefulSet 的拓扑状态&#xff1b;我们发现&#xff0c;它的拓扑状态&#xff0c;就是顺序启动/删除、Pod 名称编号命名、将 Pod 名称设为 Hostname 名称、通过 Service 无头服务的 DNS 记录访问。 …

4通道AD采集子卡模块有哪些推荐?

FMC134是一款4通道3.2GSPS&#xff08;2通道6.4GSPS&#xff09;采样率12位AD采集FMC子卡模块&#xff0c;该板卡为FMC标准&#xff0c;符合VITA57.4规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;16通道的JESD204B接口通过FMC连接器连接至FPGA的高速串行…

Excel的一些操作:移动列,添加索引

移动列 在 Excel 中移动列的 5 种方法——分步教程 选中某一列&#xff0c;然后鼠标放在边缘&#xff0c;移动到你想移动到的列 添加索引 例如&#xff0c;我想添加的索引列名为“index”&#xff0c;然后选中想要添加序列的行&#xff0c;点击“填充-->录入123序列”

MySQL的体系架构

文章目录 前言MySQL的Server层MySQL的存储引擎1&#xff09;InnoDB 存储引擎2&#xff09;MyISAM 存储引擎3&#xff09;Memory 存储引擎 前言 在学习一种事务之前&#xff0c;我们需要先了解事物的基本组成结构&#xff0c;清楚了事物的基本组成结构之后&#xff0c;我们才能…

水站桶装水订水小程序

水站桶装水订水小程序正式上线&#xff0c;支持多种商品展示形式&#xff0c;会员卡、积分、分销等功能&#xff0c;有需要的老板可以先看演示&#xff01;​​​​​​​​​​​​​​​​​​​​​

nacos批量信息获取-GitNacosConfig

声明&#xff1a;文中涉及到的技术和工具&#xff0c;仅供学习使用&#xff0c;禁止从事任何非法活动&#xff0c;如因此造成的直接或间接损失&#xff0c;均由使用者自行承担责任。 点点关注不迷路&#xff0c;每周不定时持续分享各种干货。 原文链接&#xff1a;众亦信安&a…

基于SpringBoot+vue的旅游管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…
最新文章