Ver Fonte

zbytest003-2025-02-24 08:42:56

genlitex há 2 meses atrás
pai
commit
dd90e3eb00

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-B6Rxkt3y.css


Diff do ficheiro suprimidas por serem muito extensas
+ 4 - 0
dist/assets/index-CeI02fxJ.js


+ 14 - 0
dist/index.html

@@ -0,0 +1,14 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Vite + Vue</title>
+    <script type="module" crossorigin src="/ide/proxy/6007/assets/index-CeI02fxJ.js"></script>
+    <link rel="stylesheet" crossorigin href="/ide/proxy/6007/assets/index-B6Rxkt3y.css">
+  </head>
+  <body>
+    <div id="app"></div>
+  </body>
+</html>

+ 18 - 0
src/router/index.js

@@ -1,11 +1,29 @@
 import { createRouter, createWebHashHistory } from 'vue-router'
 import HomeView from '../views/HomeView.vue'
+import LoginView from '../views/LoginView.vue'
+import PortalView from '../views/PortalView.vue'
+import GenerateUserStoriesView from '../views/GenerateUserStoriesView.vue'
 
 const routes = [
   {
     path: '/',
     name: 'home',
     component: HomeView
+  },
+  {
+    path: '/login',
+    name: 'login',
+    component: LoginView
+  },
+  {
+    path: '/portal',
+    name: 'portal',
+    component: PortalView
+  },
+  {
+    path: '/generate-user-stories',
+    name: 'generateUserStories',
+    component: GenerateUserStoriesView
   }
 ]
 

+ 116 - 0
src/views/GenerateUserStoriesView.vue

@@ -0,0 +1,116 @@
+<template>
+  <div class="flex h-screen bg-gradient-to-br from-white to-purple-600">
+    <!-- Sidebar -->
+    <aside class="w-64 bg-[#08002E] text-white flex flex-col">
+      <!-- Logo -->
+      <div class="p-6">
+        <div class="flex items-center gap-2">
+          <div class="w-8 h-8 bg-purple-600 rounded-lg flex items-center justify-center">
+            <MessageSquareIcon class="w-5 h-5" />
+          </div>
+          <span class="text-xl font-semibold">GenLiteX</span>
+        </div>
+      </div>
+
+      <!-- Navigation -->
+      <nav class="flex-1 px-4">
+        <div class="mb-8">
+          <div class="flex items-center justify-between mb-4">
+            <span class="text-sm">Chat History</span>
+          </div>
+          <div class="space-y-2">
+            <a href="#" class="flex items-center gap-3 px-3 py-2 text-gray-300 rounded-lg hover:bg-purple-600/20">
+              <MessageCircleIcon class="w-5 h-5" />
+              Chat Session 1
+            </a>
+            <a href="#" class="flex items-center gap-3 px-3 py-2 text-gray-300 rounded-lg hover:bg-purple-600/20">
+              <MessageCircleIcon class="w-5 h-5" />
+              Chat Session 2
+            </a>
+            <!-- Add more chat sessions as needed -->
+          </div>
+        </div>
+      </nav>
+
+      <!-- User Profile -->
+      <div class="p-4 border-t border-gray-700">
+        <div class="flex items-center gap-3">
+          <div class="w-10 h-10 bg-gray-600 rounded-full"></div>
+          <div>
+            <div class="text-sm font-medium">zbytest003</div>
+            <div class="text-xs text-gray-400">platform admin</div>
+          </div>
+        </div>
+      </div>
+    </aside>
+
+    <!-- Main Content -->
+    <main class="flex-1 overflow-auto p-8">
+      <div class="max-w-4xl mx-auto">
+        <!-- Header -->
+        <div class="flex justify-between items-center mb-8">
+          <div>
+            <h1 class="text-2xl font-semibold mb-2">User Story Generation</h1>
+            <p class="text-gray-600">I am GenLiteX User Story generator, I'm here to help.</p>
+          </div>
+        </div>
+
+        <!-- Chat Interface -->
+        <div class="bg-white p-6 rounded-lg shadow-sm mb-6">
+          <div class="space-y-4">
+            <!-- User Message -->
+            <div class="flex justify-end">
+              <div class="bg-purple-500 text-white p-3 rounded-lg max-w-sm">
+                How can I generate user stories?
+              </div>
+            </div>
+            <!-- System Reply -->
+            <div class="flex justify-start">
+              <div class="bg-gray-200 p-3 rounded-lg max-w-sm">
+                How can I generate user stories? Here's a simple way to start: Define the problem, identify the users, and describe the solution.
+              </div>
+            </div>
+            <!-- Add more messages as needed -->
+          </div>
+        </div>
+
+        <!-- Chat Input -->
+        <div class="flex gap-2">
+          <div class="flex-1 relative">
+            <input
+                type="text"
+                v-model="userInput"
+                placeholder="Type your message..."
+                @keyup.enter="sendMessage"
+                class="w-full p-3 pr-12 border rounded-lg"
+            />
+          </div>
+          <button @click="sendMessage" class="p-3 bg-purple-500 text-white rounded-lg hover:bg-purple-600">
+            <SendIcon class="w-5 h-5" />
+          </button>
+        </div>
+      </div>
+    </main>
+  </div>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import {
+  MessageSquare as MessageSquareIcon,
+  MessageCircle as MessageCircleIcon,
+  Send as SendIcon
+} from 'lucide-vue-next'
+
+const userInput = ref('')
+
+const sendMessage = () => {
+  if (userInput.value.trim()) {
+    // Add user message to chat
+    // For demonstration, we'll just log it
+    console.log('User:', userInput.value)
+    // Clear input
+    userInput.value = ''
+  }
+}
+</script>

+ 97 - 0
src/views/LoginView.vue

@@ -0,0 +1,97 @@
+<template>
+  <div class="min-h-screen flex bg-gradient-to-br from-white to-purple-600">
+    <!-- Right side - Login Form -->
+    <div class="w-full flex flex-col justify-between p-8 lg:p-12">
+      <div class="max-w-md w-full mx-auto mt-8">
+        <div class="mb-8">
+          <h2 class="text-3xl font-semibold text-white mb-2">Login</h2>
+          <p class="text-gray-400">Welcome back!</p>
+        </div>
+
+        <form @submit.prevent="handleLogin" class="space-y-6">
+          <div>
+            <input
+                type="text"
+                v-model="username"
+                placeholder="Username"
+                class="w-full px-4 py-3 rounded-lg bg-gray-900/50 border border-gray-700 text-white placeholder-gray-400 focus:outline-none focus:border-purple-500"
+            />
+          </div>
+
+          <div>
+            <input
+                type="password"
+                v-model="password"
+                placeholder="Password"
+                class="w-full px-4 py-3 rounded-lg bg-gray-900/50 border border-gray-700 text-white placeholder-gray-400 focus:outline-none focus:border-purple-500"
+            />
+          </div>
+
+          <div class="flex items-center">
+            <input
+                type="checkbox"
+                id="remember"
+                v-model="rememberMe"
+                class="w-4 h-4 rounded border-gray-700 bg-gray-900/50 text-purple-500 focus:ring-purple-500"
+            />
+            <label for="remember" class="ml-2 text-gray-400">Remember me</label>
+          </div>
+
+          <button
+              type="submit"
+              class="w-full py-3 rounded-lg bg-purple-500 hover:bg-purple-600 text-white font-medium transition-colors"
+          >
+            Login
+          </button>
+
+          <div class="text-center">
+            <a href="#/reset-password" class="text-purple-400 hover:text-purple-300">Forgot password?</a>
+          </div>
+
+          <!-- Language Selector -->
+          <div class="mt-8 flex items-center justify-center gap-2">
+            <span class="text-gray-400">Language:</span>
+            <select
+                v-model="language"
+                class="px-3 py-1.5 rounded bg-gray-900/50 border border-gray-700 text-gray-300 focus:outline-none focus:border-purple-500"
+            >
+              <option value="en">English</option>
+              <option value="es">Español</option>
+              <option value="fr">Français</option>
+            </select>
+          </div>
+        </form>
+
+        <div v-if="error" class="mt-4 text-red-500 text-center">
+          {{ error }}
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import { useRouter } from 'vue-router'
+
+const router = useRouter()
+
+const username = ref('')
+const password = ref('')
+const rememberMe = ref(false)
+const language = ref('en')
+const error = ref('')
+
+const handleLogin = () => {
+  if (!username.value || !password.value) {
+    error.value = 'Please enter both username and password.'
+    return
+  }
+
+  if (username.value === 'admin' && password.value === 'admin') {
+    router.push('/portal')
+  } else {
+    error.value = 'Invalid username or password.'
+  }
+}
+</script>

+ 103 - 0
src/views/PortalView.vue

@@ -0,0 +1,103 @@
+<template>
+  <div class="min-h-screen bg-gradient-to-br from-white to-purple-600 flex">
+    <!-- Sidebar -->
+    <nav class="w-64 bg-[#08002E] p-4 space-y-4">
+      <div class="flex items-center gap-2 mb-8">
+        <div class="w-8 h-8 bg-purple-600 rounded-lg"></div>
+        <h1 class="text-xl font-semibold">GenLiteX</h1>
+      </div>
+
+      <!-- Navigation Items -->
+      <div class="space-y-2">
+        <a href="#/" class="flex items-center gap-3 p-3 rounded-lg bg-[#13043D] text-white/90 hover:bg-[#13043D]/80">
+          <HomeIcon class="w-5 h-5" />
+          <span>首页</span>
+        </a>
+
+        <a href="#" class="flex items-center gap-3 p-3 rounded-lg text-white/70 hover:bg-[#13043D]/80">
+          <BriefcaseIcon class="w-5 h-5" />
+          <span>项目管理</span>
+        </a>
+
+        <a href="#" class="flex items-center gap-3 p-3 rounded-lg text-white/70 hover:bg-[#13043D]/80">
+          <ActivityIcon class="w-5 h-5" />
+          <span>数据分析</span>
+        </a>
+      </div>
+    </nav>
+
+    <!-- Main Content -->
+    <main class="flex-1 p-6 space-y-6">
+      <!-- Lightweight Easy-to-Use Module -->
+      <section class="p-8 rounded-2xl bg-gradient-to-br from-white to-purple-600">
+        <h2 class="text-2xl font-semibold mb-4">
+          轻量易用版模块
+        </h2>
+        <div class="grid grid-cols-2 gap-6">
+          <!-- Generate User Stories Module -->
+          <div class="p-6 rounded-2xl bg-white/10">
+            <div class="w-12 h-12 mb-4 bg-purple-500/20 rounded-lg flex items-center justify-center">
+              <MessageSquareIcon class="w-6 h-6 text-purple-500" />
+            </div>
+            <h3 class="text-xl font-semibold mb-2">
+              生成用户故事模块
+            </h3>
+            <p class="text-white/70 mb-6">
+              创建详细的用户故事以指导项目开发。
+            </p>
+            <a href="#/generate-user-stories" class="px-4 py-2 bg-purple-500 rounded-lg hover:bg-purple-600 transition-colors text-white">
+              前往生成用户故事
+            </a>
+          </div>
+
+          <!-- Generate Test Scripts Module -->
+          <div class="p-6 rounded-2xl bg-white/10">
+            <div class="w-12 h-12 mb-4 bg-purple-500/20 rounded-lg flex items-center justify-center">
+              <FileTextIcon class="w-6 h-6 text-purple-500" />
+            </div>
+            <h3 class="text-xl font-semibold mb-2">
+              生成测试脚本模块
+            </h3>
+            <p class="text-white/70 mb-6">
+              自动生成测试脚本以确保代码质量。
+            </p>
+            <button class="px-4 py-2 bg-purple-500 rounded-lg hover:bg-purple-600 transition-colors text-white">
+              生成测试脚本
+            </button>
+          </div>
+        </div>
+      </section>
+
+      <!-- Smart Project Analysis Module -->
+      <section class="p-8 rounded-2xl bg-gradient-to-br from-white to-purple-600">
+        <h2 class="text-2xl font-semibold mb-4">
+          智能项目分析模块
+        </h2>
+        <div class="p-6 rounded-2xl bg-white/10">
+          <div class="w-12 h-12 mb-4 bg-purple-500/20 rounded-lg flex items-center justify-center">
+            <ActivityIcon class="w-6 h-6 text-purple-500" />
+          </div>
+          <h3 class="text-xl font-semibold mb-2">
+            智能项目分析
+          </h3>
+          <p class="text-white/70 mb-6">
+            使用智能分析工具来优化项目流程。
+          </p>
+          <button class="px-4 py-2 bg-purple-500 rounded-lg hover:bg-purple-600 transition-colors text-white">
+            开始分析
+          </button>
+        </div>
+      </section>
+    </main>
+  </div>
+</template>
+
+<script setup>
+import {
+  Home as HomeIcon,
+  Briefcase as BriefcaseIcon,
+  Activity as ActivityIcon,
+  MessageSquare as MessageSquareIcon,
+  FileTextIcon
+} from 'lucide-vue-next'
+</script>

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff