diff --git a/.prettierrc.json b/.prettierrc.json index 24f1a24..48fd51f 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -4,5 +4,7 @@ "tabWidth": 4, "singleQuote": true, "printWidth": 100, - "trailingComma": "none" + "trailingComma": "none", + "useTabs": true, + "vueIndentScriptAndStyle": true } \ No newline at end of file diff --git a/src/assets/icons/copy.svg b/src/assets/icons/copy.svg new file mode 100644 index 0000000..3b3790d --- /dev/null +++ b/src/assets/icons/copy.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/equal.svg b/src/assets/icons/equal.svg new file mode 100644 index 0000000..9c30bcf --- /dev/null +++ b/src/assets/icons/equal.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/refreshTransparent.svg b/src/assets/icons/refreshTransparent.svg new file mode 100644 index 0000000..a50b43f --- /dev/null +++ b/src/assets/icons/refreshTransparent.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/thumbDown.svg b/src/assets/icons/thumbDown.svg new file mode 100644 index 0000000..4718775 --- /dev/null +++ b/src/assets/icons/thumbDown.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/thumbUp.svg b/src/assets/icons/thumbUp.svg new file mode 100644 index 0000000..57d6b42 --- /dev/null +++ b/src/assets/icons/thumbUp.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/agent-thumb.jpg b/src/assets/images/agent-thumb.jpg new file mode 100644 index 0000000..2b4e3e5 Binary files /dev/null and b/src/assets/images/agent-thumb.jpg differ diff --git a/src/assets/images/sender.png b/src/assets/images/sender.png new file mode 100644 index 0000000..0579e40 Binary files /dev/null and b/src/assets/images/sender.png differ diff --git a/src/assets/images/user-thumb.jpg b/src/assets/images/user-thumb.jpg new file mode 100644 index 0000000..6f4117f Binary files /dev/null and b/src/assets/images/user-thumb.jpg differ diff --git a/src/lang/en.ts b/src/lang/en.ts index 02b1879..8fb1572 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1,118 +1,122 @@ export default { - AlphaVersion: '2026 Alpha Version', - Login: { - login: 'Log in', - register: 'Register', - signUp: 'Sign up', - loginTo: 'Log on to FiDA', - loginTitle: 'A multi-agent canvas for rapid, trend driven design iteration.', - name: 'Name', - email: 'Email', - password: 'Password', - enterName: 'Enter your name', - enterEmail: 'Enter your email', - enterPassword: 'Enter your password', - forgetPassword: 'Forget password?', - pleaseInputName: 'Please input the name', - nameLengthError: 'Name length must be between {min} and {max} characters', - pleaseInputEmail: 'Please input the email', - emailFormatError: 'Please input the email again', - pleaseInputPassword: 'Please input the password', - passwordLengthError: 'Password length must be between {min} and {max} characters', - pleaseTermsPolicy: 'Please agree to the Terms, Policy and Fees', - agreeTermsPolicy: - 'I agree to the Terms, Policy and Fees.', - noAccountToSignUp: `Don't have an account? Sign up`, - signUpFor: 'Sign up for FiDA', - registerTip: 'A multi-agent canvas for rapid, trend driven design iteration.', - havenAccountToLogin: `Already have an account? Log in`, - verifyEmail: 'Verify your email address', - verifyCodeHasSent: 'A verification code has been sent to {email}', - verify: 'Verify', - resendCode: 'Resend Code', - resendCodeIn: 'Resend Code in {time}', - orContinueWith: 'or continue with', - googleLogin: 'Sign in with Google', - wechatLogin: 'Sign in with Wechat', - indexTip: 'A multi-agent canvas for rapid, trend driven design iteration.', - }, - Nuic: { - hiName: 'Hi, {name}. This is Fiphant.', - nuic1Title: `Help him discover the "YOU" in your space.`, - nuic1Tip: `Let's set up your profile. A few quick details will help Fiphant understand
your needs and find exactly what you're looking for.`, - letsGo: 'Let’s go, Fiphant!', - skip: 'Skip', - next: 'Next', - nuic2Title: `What vibe do you usually go for?`, - loadMore: 'Load more', - nuic3Title: `Where are you based? What do you do?`, - basedIn: 'Based in', - role: 'Role', - allSet: 'All set!', - loadingTip: 'We’re customizing your dashboard.', - }, - Home: { - creditsNum: 'Credits: {num}', - newProject: 'New Project', - home: 'Home', - history: 'History', - today: 'Today', - yesterday: 'Yesterday', - earlierChat: 'Earlier Chat' - }, - Input: { - placeholder: 'Please input', - selectPlaceholder: 'Please select', - typePlaceholder: 'Type', - areaPlaceholder: 'Region', - stylePlaceholder: 'Style', - types: { - sofa: 'Sofa', - desk: 'Desk', - chair: 'Chair' - }, - styles: { - Coastal: 'Coastal', - Verdant: 'Verdant', - Traditional: 'Traditional', - CenturyChrome: 'Century\nChrome', - ModernRevival: 'Modern\nRevival', - Tuscan2000s: "Tuscan\n2000's", - Bauhaus: 'Bauhaus', - Constructivism: 'Constructivism', - NordicNoir: 'Nordic\nNoir' - }, - chooseStyle: 'Choose Style', - setting: 'Setting', - settingOptions: { - creativity: 'Creativity', - diversity: 'Diversity', - relevance: 'Relevance' - }, - confirm: 'Confirm', - styleTitle: 'Settings', - createProject: 'Create Project', - trendingReport: 'Trending Report' - }, - area: { - unitedStates: 'United States', - singapore: 'Singapore', - australia: 'Australia', - southKorea: 'South Korea', - china: 'China', - italy: 'Italy', - france: 'France', - japan: 'Japan', - canada: 'Canada', - germany: 'Germany' - }, + AlphaVersion: '2026 Alpha Version', + Login: { + login: 'Log in', + register: 'Register', + signUp: 'Sign up', + loginTo: 'Log on to FiDA', + loginTitle: 'A multi-agent canvas for rapid, trend driven design iteration.', + name: 'Name', + email: 'Email', + password: 'Password', + enterName: 'Enter your name', + enterEmail: 'Enter your email', + enterPassword: 'Enter your password', + forgetPassword: 'Forget password?', + pleaseInputName: 'Please input the name', + nameLengthError: 'Name length must be between {min} and {max} characters', + pleaseInputEmail: 'Please input the email', + emailFormatError: 'Please input the email again', + pleaseInputPassword: 'Please input the password', + passwordLengthError: 'Password length must be between {min} and {max} characters', + pleaseTermsPolicy: 'Please agree to the Terms, Policy and Fees', + agreeTermsPolicy: + 'I agree to the Terms, Policy and Fees.', + noAccountToSignUp: `Don't have an account? Sign up`, + signUpFor: 'Sign up for FiDA', + registerTip: 'A multi-agent canvas for rapid, trend driven design iteration.', + havenAccountToLogin: `Already have an account? Log in`, + verifyEmail: 'Verify your email address', + verifyCodeHasSent: 'A verification code has been sent to {email}', + verify: 'Verify', + resendCode: 'Resend Code', + resendCodeIn: 'Resend Code in {time}', + orContinueWith: 'or continue with', + googleLogin: 'Sign in with Google', + wechatLogin: 'Sign in with Wechat', + indexTip: 'A multi-agent canvas for rapid, trend driven design iteration.' + }, + Nuic: { + hiName: 'Hi, {name}. This is Fiphant.', + nuic1Title: `Help him discover the "YOU" in your space.`, + nuic1Tip: `Let's set up your profile. A few quick details will help Fiphant understand
your needs and find exactly what you're looking for.`, + letsGo: 'Let’s go, Fiphant!', + skip: 'Skip', + next: 'Next', + nuic2Title: `What vibe do you usually go for?`, + loadMore: 'Load more', + nuic3Title: `Where are you based? What do you do?`, + basedIn: 'Based in', + role: 'Role', + allSet: 'All set!', + loadingTip: 'We’re customizing your dashboard.' + }, + Home: { + creditsNum: 'Credits: {num}', + newProject: 'New Project', + home: 'Home', + history: 'History', + today: 'Today', + yesterday: 'Yesterday', + earlierChat: 'Earlier Chat' + }, + Input: { + placeholder: 'Please input', + selectPlaceholder: 'Please select', + typePlaceholder: 'Type', + areaPlaceholder: 'Region', + stylePlaceholder: 'Style', + types: { + sofa: 'Sofa', + desk: 'Desk', + chair: 'Chair' + }, + styles: { + Coastal: 'Coastal', + Verdant: 'Verdant', + Traditional: 'Traditional', + CenturyChrome: 'Century\nChrome', + ModernRevival: 'Modern\nRevival', + Tuscan2000s: "Tuscan\n2000's", + Bauhaus: 'Bauhaus', + Constructivism: 'Constructivism', + NordicNoir: 'Nordic\nNoir' + }, + chooseStyle: 'Choose Style', + setting: 'Setting', + settingOptions: { + creativity: 'Creativity', + diversity: 'Diversity', + relevance: 'Relevance' + }, + confirm: 'Confirm', + styleTitle: 'Settings', + createProject: 'Create Project', + trendingReport: 'Trending Report' + }, + area: { + unitedStates: 'United States', + singapore: 'Singapore', + australia: 'Australia', + southKorea: 'South Korea', + china: 'China', + italy: 'Italy', + france: 'France', + japan: 'Japan', + canada: 'Canada', + germany: 'Germany' + }, + agent: { + copySuccess: 'Text copied to clipboard', + copyFaild: 'Copy failed. Your browser may be restricting clipboard access. Please try copying manually.' + }, - // Version Tree - VersionTree: { - versionInformation: 'Version Information', - input: 'Input', - userRequest: 'User Request', - sketch: 'Sketch', - generateResult: 'Generate Result' - } + // Version Tree + VersionTree: { + versionInformation: 'Version Information', + input: 'Input', + userRequest: 'User Request', + sketch: 'Sketch', + generateResult: 'Generate Result' + } } diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts index 0bb4f0d..0fd6e70 100644 --- a/src/lang/zh-cn.ts +++ b/src/lang/zh-cn.ts @@ -1,102 +1,107 @@ export default { - AlphaVersion: '2026版本', - Login: { - login: '登录', - register: '注册', - signUp: '注册', - loginTo: '登录到 FiDA条款、政策 和费用。', - noAccountToSignUp: `还没有账号? 注册`, - signUpFor: '注册账号', - registerTip: '一个多智能体画布,用于快速、趋势驱动的设计迭代。', - havenAccountToLogin: `已经有账号? 登录`, - verifyEmail: '验证您的邮箱地址', - verifyCodeHasSent: '已发送验证码到 {email}', - verifyCode: '请输入验证码', - verify: '验证', - resendCode: '重新发送验证码', - resendCodeIn: '重新发送验证码倒计时 {time}', - orContinueWith: '或者使用', - googleLogin: '使用 Google 登录', - wechatLogin: '使用微信登录', - indexTip: '一个多智能体画布,用于快速、趋势驱动的设计迭代。', - }, - Nuic: { - hiName: '你好,{name}。这是 Fiphant。', - nuic1Title: `帮助他发现您空间中的 “YOU”。`, - nuic1Tip: `让我们设置您的个人资料。几个快速的细节将帮助 Fiphant 理解您的需求并找到您正在寻找的内容。`, - letsGo: '让我们开始,Fiphant!', - skip: '跳过', - next: '下一步', - nuic2Title: `你通常喜欢什么样的风格呢?`, - loadMore: '加载更多', - nuic3Title: `您在 哪里 工作?您从事什么 工作?`, - basedIn: '公司', - role: '角色', - allSet: '准备好了!', - loadingTip: '我们正在自定义您的仪表板。', - }, - Home: { - creditsNum: '积分: {num}', - newProject: '新建项目', - home: '首页', - history: '历史记录', - today: '今天', - yesterday: '昨天', - earlierChat: '更早的' - }, - Input: { - placeholder: '请输入', - selectPlaceholder: '请选择', - type: '类型', - area: '地区', - style: '风格', - types: { - sofa: '沙发', - desk: '书桌', - chair: '椅子' - }, - styles: { - modern: '现代', - classic: '古典' - }, - chooseStyle: '选择风格', - setting: 'Setting', - settingOptions: { - creativity: '创意度', - diversity: '多样性', - relevance: '相关度' - }, - confirm: '确认', - styleTitle: '设置', - createProject: '创建项目', - trendingReport: '趋势报告' - }, - area: { - unitedStates: '美国', - singapore: '新加坡', - australia: '澳大利亚', - southKorea: '韩国', - china: '中国', - italy: '意大利', - france: '法国', - japan: '日本', - canada: '加拿大', - germany: '德国' - } + AlphaVersion: '2026版本', + Login: { + login: '登录', + register: '注册', + signUp: '注册', + loginTo: '登录到 FiDA条款、政策 和费用。', + noAccountToSignUp: `还没有账号? 注册`, + signUpFor: '注册账号', + registerTip: '一个多智能体画布,用于快速、趋势驱动的设计迭代。', + havenAccountToLogin: `已经有账号? 登录`, + verifyEmail: '验证您的邮箱地址', + verifyCodeHasSent: '已发送验证码到 {email}', + verifyCode: '请输入验证码', + verify: '验证', + resendCode: '重新发送验证码', + resendCodeIn: '重新发送验证码倒计时 {time}', + orContinueWith: '或者使用', + googleLogin: '使用 Google 登录', + wechatLogin: '使用微信登录', + indexTip: '一个多智能体画布,用于快速、趋势驱动的设计迭代。' + }, + Nuic: { + hiName: '你好,{name}。这是 Fiphant。', + nuic1Title: `帮助他发现您空间中的 “YOU”。`, + nuic1Tip: `让我们设置您的个人资料。几个快速的细节将帮助 Fiphant 理解您的需求并找到您正在寻找的内容。`, + letsGo: '让我们开始,Fiphant!', + skip: '跳过', + next: '下一步', + nuic2Title: `你通常喜欢什么样的风格呢?`, + loadMore: '加载更多', + nuic3Title: `您在 哪里 工作?您从事什么 工作?`, + basedIn: '公司', + role: '角色', + allSet: '准备好了!', + loadingTip: '我们正在自定义您的仪表板。' + }, + Home: { + creditsNum: '积分: {num}', + newProject: '新建项目', + home: '首页', + history: '历史记录', + today: '今天', + yesterday: '昨天', + earlierChat: '更早的' + }, + Input: { + placeholder: '请输入', + selectPlaceholder: '请选择', + type: '类型', + area: '地区', + style: '风格', + types: { + sofa: '沙发', + desk: '书桌', + chair: '椅子' + }, + styles: { + modern: '现代', + classic: '古典' + }, + chooseStyle: '选择风格', + setting: 'Setting', + settingOptions: { + creativity: '创意度', + diversity: '多样性', + relevance: '相关度' + }, + confirm: '确认', + styleTitle: '设置', + createProject: '创建项目', + trendingReport: '趋势报告' + }, + area: { + unitedStates: '美国', + singapore: '新加坡', + australia: '澳大利亚', + southKorea: '韩国', + china: '中国', + italy: '意大利', + france: '法国', + japan: '日本', + canada: '加拿大', + germany: '德国' + }, + agent: { + copySuccess: '文本已复制到剪贴板', + copyFaild: + '复制失败。您的浏览器可能限制了剪贴板访问,请允许浏览器访问剪贴板或尝试手动复制。' + } } diff --git a/src/router/index.ts b/src/router/index.ts index ad37270..b76e886 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -7,69 +7,75 @@ import { createRouter, createWebHistory } from 'vue-router' * 3. 路由的name默认是文件名,如果文件名与name不一致,通过defineOptions({ name: 'componentName' })来设置 */ const router = createRouter({ - history: createWebHistory('/'), - // history: createWebHistory(import.meta.env.VITE_APP_URL), - routes: [ - { - path: '/', - redirect: '/index' - }, - { - path: '/index', - name: 'index', - component: () => import('../views/login/index.vue'), - }, - { - path: '/login', - name: 'login', - component: () => import('../views/login/login.vue'), - }, - { - path: '/register', - name: 'register', - component: () => import('../views/login/register.vue'), - }, - { - path: '/nuic', - name: 'nuic', - component: () => import('../views/nuic/index.vue'), - }, - { - path: '/home', - name: 'home', - component: () => import('../views/home/index.vue'), - children: [ - { - path: 'test/:id', - name: 'test', - component: () => import('../views/home/test.vue'), - meta: { topNavStyle: '2' } - }, - { - path: '/home/versionTree', - name: 'versionTree', - component: () => import('../views/home/versionTree.vue'), - meta: { topNavStyle: '2' } - }, - { - path: 'mainInput', - name: 'mainInput', - component: () => import('../views/home/mainInput.vue') - }, - { - path: 'canvas', - name: 'canvas', - component: () => import('../views/canvas/index.vue'), - meta: { topNavStyle: '2' } - }, - ] - }, - { - path: '/:pathMatch(.*)', - name: '404', - component: () => import('../views/404.vue'), - } - ] + history: createWebHistory('/'), + // history: createWebHistory(import.meta.env.VITE_APP_URL), + routes: [ + { + path: '/', + redirect: '/index' + }, + { + path: '/index', + name: 'index', + component: () => import('../views/login/index.vue') + }, + { + path: '/login', + name: 'login', + component: () => import('../views/login/login.vue') + }, + { + path: '/register', + name: 'register', + component: () => import('../views/login/register.vue') + }, + { + path: '/nuic', + name: 'nuic', + component: () => import('../views/nuic/index.vue') + }, + { + path: '/home', + name: 'home', + component: () => import('../views/home/index.vue'), + children: [ + { + path: 'test/:id', + name: 'test', + component: () => import('../views/home/test.vue'), + meta: { topNavStyle: '2' } + }, + { + path: '/home/versionTree', + name: 'versionTree', + component: () => import('../views/home/versionTree.vue'), + meta: { topNavStyle: '2' } + }, + { + path: 'mainInput', + name: 'mainInput', + component: () => import('../views/home/mainInput.vue') + }, + { + path: 'canvas', + name: 'canvas', + component: () => import('../views/canvas/index.vue'), + meta: { topNavStyle: '2' } + }, + { + path: 'agent', + name: 'agent', + component: () => import('../views/home/agent/index.vue') + } + ] + }, + + { + path: '/:pathMatch(.*)', + name: '404', + component: () => import('../views/404.vue') + } + ] }) export default router diff --git a/src/views/home/agent/components/Agent.vue b/src/views/home/agent/components/Agent.vue new file mode 100644 index 0000000..d71e631 --- /dev/null +++ b/src/views/home/agent/components/Agent.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/home/agent/components/Item.vue b/src/views/home/agent/components/Item.vue new file mode 100644 index 0000000..6a08846 --- /dev/null +++ b/src/views/home/agent/components/Item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/home/agent/components/List.vue b/src/views/home/agent/components/List.vue new file mode 100644 index 0000000..50bbddd --- /dev/null +++ b/src/views/home/agent/components/List.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/home/agent/index.vue b/src/views/home/agent/index.vue new file mode 100644 index 0000000..f92a8b9 --- /dev/null +++ b/src/views/home/agent/index.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/views/home/components/Input.vue b/src/views/home/components/Input.vue index 5f7ee4e..4d37ea8 100644 --- a/src/views/home/components/Input.vue +++ b/src/views/home/components/Input.vue @@ -1,748 +1,798 @@ diff --git a/src/views/home/versionTree/index.vue b/src/views/home/versionTree/index.vue index fcd7dfc..b8d4f7c 100644 --- a/src/views/home/versionTree/index.vue +++ b/src/views/home/versionTree/index.vue @@ -1,47 +1,44 @@ \ No newline at end of file + .expandBtnBox { + } + .versionTreeBox { + flex: 1; + display: flex; + overflow: hidden; + > .tree { + flex: 1; + height: 100%; + overflow: hidden; + padding: 2.1rem 0 5.4rem 2.2rem; + } + > .detail { + width: 35rem; + margin: 2.1rem 3rem 5.4rem 3.4rem; + height: calc(100% - 2.1rem - 5.4rem); + overflow: hidden; + } + } +} +