Ver código fonte

zbytest003-2025-02-24 07:01:50

genlitex 2 meses atrás
pai
commit
3811b03a0c

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-Dd6Wq1hx.css


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
dist/assets/index-fDcX3l89.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-fDcX3l89.js"></script>
+    <link rel="stylesheet" crossorigin href="/ide/proxy/6007/assets/index-Dd6Wq1hx.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 UserStoriesView from '../views/UserStoriesView.vue'
 
 const routes = [
   {
     path: '/',
     name: 'home',
     component: HomeView
+  },
+  {
+    path: '/login',
+    name: 'login',
+    component: LoginView
+  },
+  {
+    path: '/portal',
+    name: 'portal',
+    component: PortalView
+  },
+  {
+    path: '/user-stories',
+    name: 'user-stories',
+    component: UserStoriesView
   }
 ]
 

+ 56 - 0
src/views/LoginView.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="min-h-screen flex bg-gradient-to-br from-white to-purple-500">
+    <!-- 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>
+        </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-white border border-gray-300 text-gray-900 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-white border border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-purple-500"
+            />
+          </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>
+        </form>
+      </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 handleLogin = () => {
+  if (username.value === 'admin' && password.value === 'admin') {
+    router.push('/portal')
+  } else {
+    alert('Invalid username or password')
+  }
+}
+</script>

+ 55 - 0
src/views/PortalView.vue

@@ -0,0 +1,55 @@
+<template>
+  <div class="min-h-screen flex bg-gradient-to-br from-white to-purple-500">
+    <!-- Sidebar -->
+    <nav class="w-250 bg-gradient-to-br from-white to-purple-500 p-4 space-y-4">
+      <div class="flex items-center justify-center bg-purple-500 text-white text-2xl font-bold py-3">
+        门户网站
+      </div>
+
+      <!-- Navigation Items -->
+      <div class="space-y-2">
+        <div class="font-semibold">轻量易用版模块</div>
+        <a href="#/user-stories" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-100">
+          <span>生成用户故事模块</span>
+        </a>
+        <a href="#" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-100">
+          <span>生成测试脚本模块</span>
+        </a>
+
+        <div class="font-semibold mt-4">智能项目分析模块</div>
+        <a href="#" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-100">
+          <span>智能项目分析模块</span>
+        </a>
+      </div>
+    </nav>
+
+    <!-- Main Content -->
+    <main class="flex-1 p-6 bg-white">
+      <!-- Main Content Area -->
+      <div class="p-8">
+        <h1 class="text-3xl font-bold mb-4">欢迎来到门户网站</h1>
+        <p class="text-gray-600 max-w-md">
+          请选择您需要的功能模块进行操作。
+        </p>
+      </div>
+    </main>
+  </div>
+</template>
+
+<script setup>
+import {
+  Home as HomeIcon,
+  Layout as LayoutIcon,
+  Activity as ActivityIcon,
+  MessageSquare as MessageSquareIcon,
+  FileText as FileTextIcon,
+  Link as LinkIcon,
+  User as UserIcon,
+  Bell as BellIcon,
+  Briefcase as BriefcaseIcon
+} from 'lucide-vue-next'
+</script>
+
+<style>
+/* Add any custom styles here */
+</style>

+ 58 - 0
src/views/UserStoriesView.vue

@@ -0,0 +1,58 @@
+<template>
+  <div class="flex h-screen bg-gradient-to-br from-white to-purple-500">
+    <!-- Sidebar -->
+    <aside class="w-250 bg-gradient-to-br from-white to-purple-500 p-4 space-y-4">
+      <div class="flex items-center justify-center bg-purple-500 text-white text-2xl font-bold py-3">
+        生成用户故事
+      </div>
+    </aside>
+
+    <!-- Main Content -->
+    <main class="flex-1 overflow-auto p-8 bg-white">
+      <div class="max-w-4xl mx-auto">
+        <!-- Chat Bubbles -->
+        <div class="mb-6">
+          <div class="flex items-end mb-4">
+            <div class="bg-purple-500 text-white p-3 rounded-lg mr-2">
+              <p class="text-sm">你好!我是一个用户故事生成助手。</p>
+            </div>
+          </div>
+          <div class="flex items-start mb-4">
+            <div class="bg-gray-200 p-3 rounded-lg ml-2">
+              <p class="text-sm">我想生成一个用户故事。</p>
+            </div>
+          </div>
+        </div>
+
+        <!-- Chat Input -->
+        <div class="flex gap-2">
+          <div class="flex-1 relative">
+            <input
+                type="text"
+                placeholder="输入你的消息..."
+                class="w-full p-3 pr-12 border rounded-lg"
+            />
+            <label for="file-upload" class="absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer">
+              <Upload class="w-5 h-5 text-gray-400" />
+            </label>
+            <input id="file-upload" type="file" class="hidden" />
+          </div>
+          <button class="p-3 bg-purple-500 text-white rounded-lg hover:bg-purple-600">
+            <Send class="w-5 h-5" />
+          </button>
+        </div>
+      </div>
+    </main>
+  </div>
+</template>
+
+<script setup>
+import {
+  Upload,
+  Send
+} from 'lucide-vue-next'
+</script>
+
+<style>
+/* Add any custom styles here */
+</style>

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff