Răsfoiți Sursa

zbytest003-2025-02-20 05:59:07

genlitex 3 luni în urmă
părinte
comite
7abef5bb03

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
dist/assets/index-Btspm7_H.css


Fișier diff suprimat deoarece este prea mare
+ 0 - 4
dist/assets/index-malWbV8K.js


+ 0 - 13
dist/index.html

@@ -1,13 +0,0 @@
-<!doctype html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Prototype Design</title>
-    <script type="module" crossorigin src="/prototype/3000/assets/index-malWbV8K.js"></script>
-    <link rel="stylesheet" crossorigin href="/prototype/3000/assets/index-Btspm7_H.css">
-  </head>
-  <body>
-    <div id="app"></div>
-  </body>
-</html>

+ 155 - 0
src/assets/templates/generate_user_stories.vue

@@ -0,0 +1,155 @@
+<template>
+  <div class="flex h-screen bg-[#f8f5ff]">
+    <!-- Sidebar -->
+    <div class="w-64 bg-[#0a0225] text-white p-4 flex flex-col">
+      <!-- Logo -->
+      <div class="flex items-center gap-2 mb-8">
+        <div class="text-xl font-bold">
+          GEN <span class="text-purple-500">LITEX</span>
+        </div>
+      </div>
+
+      <!-- Navigation -->
+      <div class="space-y-6">
+        <div>
+          <div class="flex items-center gap-2 text-sm text-gray-400 mb-2">
+            <Home class="w-4 h-4" />
+            <span>Home</span>
+          </div>
+          <div class="flex items-center justify-between mb-2">
+            <div class="text-sm text-gray-400">Sessions</div>
+            <button class="h-7 px-2 text-xs border border-gray-600 rounded-md flex items-center gap-1 hover:bg-white/10">
+              <Plus class="w-3 h-3" />
+              New Requirement
+            </button>
+          </div>
+        </div>
+
+        <!-- Context Manager -->
+        <div>
+          <div class="text-xs text-gray-500 mb-2">MANAGER YOUR CONTEXT</div>
+          <nav class="space-y-2">
+            <div v-for="item in navItems" 
+                 :key="item.label" 
+                 class="flex items-center gap-2 text-sm text-gray-400 p-2 hover:bg-white/10 rounded-lg cursor-pointer">
+              <component :is="item.icon" class="w-4 h-4" />
+              <span>{{ item.label }}</span>
+            </div>
+          </nav>
+        </div>
+
+        <!-- Notifications -->
+        <div class="flex items-center gap-2 text-sm text-gray-400 p-2 hover:bg-white/10 rounded-lg cursor-pointer">
+          <Bell class="w-4 h-4" />
+          <span>Notifications</span>
+          <div class="ml-auto bg-purple-500 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center">
+            0
+          </div>
+        </div>
+      </div>
+
+      <!-- User Profile -->
+      <div class="mt-auto flex items-center gap-3 p-2 hover:bg-white/10 rounded-lg cursor-pointer">
+        <div class="w-8 h-8 bg-gray-600 rounded-full flex items-center justify-center text-sm">
+          ZB
+        </div>
+        <div>
+          <div class="text-sm">zbytest003</div>
+          <div class="text-xs text-gray-400">platform admin</div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Main Content -->
+    <div class="flex-1 overflow-auto">
+      <div class="max-w-5xl mx-auto p-6">
+        <!-- Welcome Card -->
+        <div class="bg-white rounded-xl p-6 shadow-sm mb-4">
+          <h2 class="text-xl font-semibold mb-4">Hi, zbytest003</h2>
+          <p class="text-gray-600 mb-2">
+            I am GenliteX User Story generator, I'm here to help.
+          </p>
+          <p class="text-gray-600 mb-2">
+            Simply upload the related documents you have so that I can understand the background and generate user stories more accurately.
+          </p>
+          <p class="text-gray-600">
+            You can also constantly clarify your requests through the conversation.
+          </p>
+        </div>
+
+        <!-- Chat Input -->
+        <div class="relative">
+          <input
+            type="text"
+            placeholder="Chat with GenliteX Chatbot ..."
+            class="w-full px-4 py-2 rounded-md border focus:outline-none focus:ring-2 focus:ring-purple-500 pr-24"
+          />
+          <div class="absolute right-2 top-1/2 -translate-y-1/2 flex gap-2">
+            <button class="p-2 text-gray-500 hover:bg-gray-100 rounded-md">
+              <Upload class="w-4 h-4" />
+            </button>
+            <button class="p-2 bg-purple-500 text-white rounded-md hover:bg-purple-600">
+              <Send class="w-4 h-4" />
+            </button>
+          </div>
+        </div>
+
+        <!-- Warning Message -->
+        <div class="mt-4 text-xs text-red-500">
+          **Important: The content generated by artificial intelligence (AI) tools or platforms may contain inaccuracies, errors, and omissions. This AI-generated content should not be considered a replacement for human expertise, review, and judgement. Users are urged to verify any information or content derived from AI sources with qualified professionals before making any decisions or taking any actions based on such content.
+        </div>
+      </div>
+    </div>
+
+    <!-- Right Panel -->
+    <div class="w-80 border-l bg-white p-4">
+      <!-- Model Selector -->
+      <select class="w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-purple-500">
+        <option value="" disabled selected>Select a model</option>
+        <option value="gpt-4">GPT-4</option>
+        <option value="gpt-3.5">GPT-3.5</option>
+      </select>
+
+      <!-- File Upload Section -->
+      <div class="mt-6">
+        <h3 class="text-lg mb-2">你上传的文档</h3>
+        <div class="flex justify-between text-sm text-gray-500 mb-2">
+          <span>文件名</span>
+          <span>Action</span>
+        </div>
+        <div class="bg-gray-50 rounded p-4 text-center text-gray-500">
+          No Data
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { 
+  Home,
+  Plus,
+  Workflow,
+  FileText,
+  MessageSquare,
+  Link as LinkIcon,
+  User,
+  Bell,
+  Upload,
+  Send
+} from 'lucide-vue-next'
+
+const navItems = [
+  { icon: Workflow, label: 'Workspace' },
+  { icon: FileText, label: 'Knowledge' },
+  { icon: MessageSquare, label: 'Prompt' },
+  { icon: LinkIcon, label: 'Link' },
+  { icon: User, label: 'User' },
+]
+</script>
+
+<style>
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+</style>

+ 7 - 1
src/router/index.js

@@ -1,11 +1,17 @@
 import { createRouter, createWebHashHistory } from 'vue-router'
 import HomeView from '../views/HomeView.vue'
+import GenerateUserStoriesView from '../views/GenerateUserStoriesView.vue'
 
 const routes = [
   {
     path: '/',
-    name: 'home',
+    name: 'Home',
     component: HomeView
+  },
+  {
+    path: '/generate-user-stories',
+    name: 'GenerateUserStories',
+    component: GenerateUserStoriesView
   }
 ]
 

+ 101 - 0
src/views/GenerateUserStoriesView.vue

@@ -0,0 +1,101 @@
+<template>
+  <a-layout class="user-stories-layout">
+    <a-layout-header>
+      <h1>Generate User Stories</h1>
+    </a-layout-header>
+    <a-layout-content>
+      <a-form :model="formState" @finish="handleSubmit">
+        <a-form-item label="Title" name="title" :rules="[{ required: true, message: 'Please input the title!' }]">
+          <a-input v-model:value="formState.title" />
+        </a-form-item>
+        <a-form-item label="Description" name="description" :rules="[{ required: true, message: 'Please input the description!' }]">
+          <a-textarea v-model:value="formState.description" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" html-type="submit">Submit</a-button>
+        </a-form-item>
+      </a-form>
+    </a-layout-content>
+  </a-layout>
+</template>
+
+<script>
+import { defineComponent, reactive } from 'vue';
+import { message } from 'ant-design-vue';
+
+export default defineComponent({
+  name: 'GenerateUserStoriesView',
+  setup() {
+    const formState = reactive({
+      title: '',
+      description: ''
+    });
+
+    const handleSubmit = (values) => {
+      console.log('Received values of form: ', values);
+      message.success('User story generated successfully!');
+    };
+
+    return {
+      formState,
+      handleSubmit
+    };
+  }
+});
+</script>
+
+<style scoped>
+.user-stories-layout {
+  background-color: #6a5acd; /* Purple background */
+  color: white;
+  padding: 20px;
+  min-height: 100vh;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+
+.ant-layout-header {
+  background: none;
+  padding: 0;
+  text-align: center;
+}
+
+.ant-layout-content {
+  flex: 1;
+  width: 100%;
+  max-width: 600px;
+  padding: 20px;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+  border-radius: 8px;
+  background-color: #fff;
+  color: #333;
+}
+
+.ant-form-item {
+  margin-bottom: 16px;
+}
+
+.ant-form-item-label {
+  font-weight: bold;
+}
+
+.ant-form-item-control {
+  margin-top: 8px;
+}
+
+.ant-form-item-control-input-content {
+  width: 100%;
+}
+
+.ant-btn-primary {
+  background-color: #6a5acd;
+  border-color: #6a5acd;
+}
+
+.ant-btn-primary:hover {
+  background-color: #52458b;
+  border-color: #52458b;
+}
+</style>

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff