此票务管理卡片适用于需要管理和展示活动或活动门票的网站或应用程序。它允许用户查看他们的票务信息,包括活动详情、位置、条形码等。
import { ref } from "vue";
const tickets = ref([
{
id: 1,
title: "Pie Baking Class",
date: "Fri, June 20, 2020, 6:30 PM",
location: "ABC Design",
address: "123 Main Street, Brooklyn, NY 11201",
barcode: "1234567890123456",
},
]);
此代码段使用 Vue.js 的 ref
API 来初始化一个响应式数据对象 tickets
,其中包含一个活动的票务信息。
<template>
<div class="bg-gray-100">
<div class="max-w-2xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
<div class="bg-white shadow-sm sm:rounded-lg">
<div class="p-6">
<div class="flex items-center justify-between">
<h2 class="text-lg font-medium text-gray-900">My Tickets</h2>
<a href="#" class="text-sm text-indigo-600 hover:text-indigo-500">
View All
</a>
</div>
<div
class="mt-6 grid grid-cols-1 gap-y-6 sm:grid-cols-2 sm:gap-x-6 lg:grid-cols-3 lg:gap-x-8"
>
<div class="bg-white shadow overflow-hidden sm:rounded-lg">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center">
<div class="flex-shrink-0">
<img
class="h-10 w-10 rounded-full"
src="https://source.unsplash.com/random/100x100"
alt=""
/>
</div>
<div class="ml-3">
<p class="text-sm font-medium text-gray-900">
Pie Baking Class
</p>
<p class="text-sm text-gray-500">
Fri, June 20, 2020, 6:30 PM
</p>
</div>
</div>
<div class="mt-6">
<p class="text-sm text-gray-500">
<span class="font-medium text-gray-900">Location:</span>
<span>ABC Design</span>
</p>
<p class="text-sm text-gray-500">
<span class="font-medium text-gray-900">Address:</span>
<span>123 Main Street</span>
<span>Brooklyn, NY 11201</span>
</p>
</div>
</div>
<div class="border-t border-gray-200">
<div class="px-4 py-5 sm:px-6">
<div class="flex items-center justify-between">
<p class="text-sm text-gray-500">Ticket</p>
<div class="flex items-center">
<svg
class="h-5 w-5 text-gray-400"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
>
<path
fill-rule="evenodd"
d="M3 3a1 1 0 000 2v13a1 1 0 102 0V5a1 1 0 00-2 0zM7 7h10a1 1 0 000-2H7a1 1 0 000 2zM3 11a1 1 0 100 2v5a1 1 0 102 0v-5a1 1 0 00-2 0z"
clip-rule="evenodd"
/>
</svg>
<span class="ml-2 text-sm text-gray-500">
1234 5678 9012 3456
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
此模板定义了票务管理卡片的结构和样式。它包括一个带有标题和查看所有按钮的标题栏、一个网格用于显示票务信息、以及一个带有条形码的票务详细信息部分。
<script lang="tsx" setup>
import { ref } from "vue";
const tickets = ref([
{
id: 1,
title: "Pie Baking Class",
date: "Fri, June 20, 2020, 6:30 PM",
location: "ABC Design",
address: "123 Main Street, Brooklyn, NY 11201",
barcode: "1234567890123456",
},
]);
</script>
此脚本设置了一个 tickets
响应式数据对象,用于存储票务信息。它通过 Vue.js 的 v-for
指令在模板中迭代并渲染每个票务详细信息。
<style>
/* 省略其他样式 */
.h-10 {
height: 2.5rem;
}
.w-10 {
width: 2.5rem;
}
.rounded-full {
border-radius: 9999px;
}
/* 省略其他样式 */
</style>
此样式块自定义了票务卡片的样式,包括图像的大小、圆形头像的边框半径等。
开发经验与收获:
未来拓展与优化: