DeepSeek ArtifactsDeepSeek Artifacts

在线巴士票务系统

4.0
ru
交通与物流
巴士票务
在线购票
票务系统

Промпт

Создать систему по поиску автобусных билетов и продажу билетов онлайн

Сгенерированный Результат

import React, { useState } from 'react';
import './App.css';

const App = () => {
  const [from, setFrom] = useState('');
  const [to, setTo] = useState('');
  const [date, setDate] = useState('');
  const [tickets, setTickets] = useState([]);
  const [selectedTicket, setSelectedTicket] = useState(null);

  const searchTickets = () => {
    // Mock data for demonstration
    const mockTickets = [
      { id: 1, from: 'New York', to: 'Boston', date: '2025-01-01', price: '$20' },
      { id: 2, from: 'New York', to: 'Philadelphia', date: '2025-01-01', price: '$25' },
      { id: 3, from: 'New York', to: 'Washington DC', date: '2025-01-01', price: '$30' },
    ];
    setTickets(mockTickets);
  };

  const selectTicket = (ticket) => {
    setSelectedTicket(ticket);
  };

  const confirmPurchase = () => {
    alert(`You have purchased a ticket from ${selectedTicket.from} to ${selectedTicket.to} on ${selectedTicket.date} for ${selectedTicket.price}`);
    setSelectedTicket(null);
  };

  return (
    <div className="App bg-gray-100 min-h-screen p-8">
      <header className="text-center mb-8">
        <h1 className="text-4xl font-bold text-blue-600">Bus Ticket Search and Purchase System</h1>
      </header>

      <div className="max-w-4xl mx-auto bg-white p-8 rounded-lg shadow-lg mb-8">
        <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-8">
          <input
            type="text"
            placeholder="From"
            value={from}
            onChange={(e) => setFrom(e.target.value)}
            className="p-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600"
          />
          <input
            type="text"
            placeholder="To"
            value={to}
            onChange={(e) => setTo(e.target.value)}
            className="p-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600"
          />
          <input
            type="date"
            value={date}
            onChange={(e) => setDate(e.target.value)}
            className="p-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600"
          />
        </div>
        <button
          onClick={searchTickets}
          className="w-full bg-blue-600 text-white p-2 rounded-lg hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-600"
        >
          Search Tickets
        </button>
      </div>

      {tickets.length > 0 && (
        <div className="max-w-4xl mx-auto bg-white p-8 rounded-lg shadow-lg mb-8">
          <h2 className="text-2xl font-bold mb-4 text-blue-600">Available Tickets</h2>
          <div className="space-y-4">
            {tickets.map((ticket) => (
              <div
                key={ticket.id}
                className="p-4 border rounded-lg hover:bg-gray-50 cursor-pointer"
                onClick={() => selectTicket(ticket)}
              >
                <p className="font-bold">{ticket.from} to {ticket.to}</p>
                <p>Date: {ticket.date}</p>
                <p>Price: {ticket.price}</p>
              </div>
            ))}
          </div>
        </div>
      )}

      {selectedTicket && (
        <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center">
          <div className="bg-white p-8 rounded-lg shadow-lg max-w-md w-full">
            <h2 className="text-2xl font-bold mb-4 text-blue-600">Confirm Purchase</h2>
            <p className="mb-4">Are you sure you want to purchase the ticket from {selectedTicket.from} to {selectedTicket.to} on {selectedTicket.date} for {selectedTicket.price}?</p>
            <div className="flex justify-end space-x-4">
              <button
                onClick={() => setSelectedTicket(null)}
                className="bg-gray-300 text-gray-700 p-2 rounded-lg hover:bg-gray-400 focus:outline-none focus:ring-2 focus:ring-gray-600"
              >
                Cancel
              </button>
              <button
                onClick={confirmPurchase}
                className="bg-blue-600 text-white p-2 rounded-lg hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-600"
              >
                Confirm
              </button>
            </div>
          </div>
        </div>
      )}

      <footer className="text-center mt-8 text-gray-600">
        <p>&copy; 2025 Bus Ticket Search and Purchase System. All rights reserved.</p>
      </footer>
    </div>
  );
};

export default App;

Больше Рекомендаций

Посмотреть Все

创建名片网站

4.0
网页设计
ru
名片网站
网站制作
在线名片
напиши сайт визитку ...

Создать читательский дневник

4.0
Образование
ru
читательский дневник
русский язык
литература
создать читательский дневник русском языке ...

Создать читательский дневник

4.0
Образование
ru
читательский дневник
книги
литература
заметки
чтение
создать читательский дневник ...

Умный кулинарный помощник

4.0
Технологии и кулинария
ru
рецепты
кулинария
список покупок
• Идея: "Умный кулинарный помощник" • Описание: Веб-приложение, которое помогает пользователям с рецептами. Основная фишка – не просто база рецептов, а возможность масштабировать ингредиенты (например...

Духовная психология

4.0
Психология
ru
духовная психология
йога
буддизм
психология
духовные практики
сгенерируй лендинг используя следующий текст для наполнения - Духовная психология - про что это? Я выбрала это название для очень обширной сферы своей деятельности, которой не просто подобрать конк...