From 97c7b41f385c75c8899dc720796d2431fd9b55c5 Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Wed, 11 Jun 2025 15:06:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=AE=98=E7=BD=91=E6=96=B0?= =?UTF-8?q?=E5=A2=9Emcp=E7=BB=BC=E5=90=88=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/sites/package.json | 7 +- examples/sites/src/App.vue | 2 +- .../components-doc => }/components/anchor.vue | 0 .../components/api-docs.vue | 0 .../components/async-highlight.vue | 0 .../components/contributor.vue | 0 .../components-doc => }/components/demo.vue | 2 +- .../components/float-settings.vue | 0 .../components-doc => }/components/header.vue | 0 .../components/mcp-docs.vue | 0 .../tiny-robot-chat.vue | 8 +- .../components/version-tip.vue | 0 .../DifyModelProvider.ts | 1 - examples/sites/src/composable/storage.ts | 71 +++++++ .../useTasksFinish.ts | 0 .../useTinyRobot.ts | 0 .../composition => composable}/utils.ts | 6 +- examples/sites/src/router.js | 6 + .../sites/src/views/components-doc/common.vue | 16 +- .../sites/src/views/comprehensive/Demo.vue | 185 ++++++++++++++++++ .../sites/src/views/comprehensive/index.vue | 95 +++++++++ .../src/views/comprehensive/products.json | 99 ++++++++++ .../src/views/comprehensive/types/index.ts | 37 ++++ examples/sites/src/views/layout/layout.vue | 4 +- 24 files changed, 516 insertions(+), 23 deletions(-) rename examples/sites/src/{views/components-doc => }/components/anchor.vue (100%) rename examples/sites/src/{views/components-doc => }/components/api-docs.vue (100%) rename examples/sites/src/{views/components-doc => }/components/async-highlight.vue (100%) rename examples/sites/src/{views/components-doc => }/components/contributor.vue (100%) rename examples/sites/src/{views/components-doc => }/components/demo.vue (99%) rename examples/sites/src/{views/components-doc => }/components/float-settings.vue (100%) rename examples/sites/src/{views/components-doc => }/components/header.vue (100%) rename examples/sites/src/{views/components-doc => }/components/mcp-docs.vue (100%) rename examples/sites/src/{views/components-doc => components}/tiny-robot-chat.vue (94%) rename examples/sites/src/{views/components-doc => }/components/version-tip.vue (100%) rename examples/sites/src/{views/components-doc/composition => composable}/DifyModelProvider.ts (99%) create mode 100644 examples/sites/src/composable/storage.ts rename examples/sites/src/{views/components-doc/composition => composable}/useTasksFinish.ts (100%) rename examples/sites/src/{views/components-doc/composition => composable}/useTinyRobot.ts (100%) rename examples/sites/src/{views/components-doc/composition => composable}/utils.ts (97%) create mode 100644 examples/sites/src/views/comprehensive/Demo.vue create mode 100644 examples/sites/src/views/comprehensive/index.vue create mode 100644 examples/sites/src/views/comprehensive/products.json create mode 100644 examples/sites/src/views/comprehensive/types/index.ts diff --git a/examples/sites/package.json b/examples/sites/package.json index bd3c7575c8..7c5c429ae7 100644 --- a/examples/sites/package.json +++ b/examples/sites/package.json @@ -29,9 +29,9 @@ "@docsearch/react": "npm:@docsearch/css", "@opentiny/next": "0.1.2", "@opentiny/next-vue": "0.0.1-alpha.1", - "@opentiny/tiny-robot": "0.2.1", - "@opentiny/tiny-robot-kit": "0.2.1", - "@opentiny/tiny-robot-svgs": "0.2.1", + "@opentiny/tiny-robot": "0.2.5", + "@opentiny/tiny-robot-kit": "0.2.5", + "@opentiny/tiny-robot-svgs": "0.2.5", "@opentiny/tiny-vue-mcp": "0.0.1-alpha.3", "@opentiny/utils": "workspace:~", "@opentiny/vue": "workspace:~", @@ -58,6 +58,7 @@ "@vue/shared": "^3.4.31", "@vueuse/core": "^12.7.0", "@vueuse/head": "0.7.13", + "crypto-js": "^4.2.0", "github-markdown-css": "~5.1.0", "highlight.js": "^11.5.1", "marked": "^4.3.0", diff --git a/examples/sites/src/App.vue b/examples/sites/src/App.vue index 96f7face8d..22969fc421 100644 --- a/examples/sites/src/App.vue +++ b/examples/sites/src/App.vue @@ -17,7 +17,7 @@ import { iconClose } from '@opentiny/vue-icon' import { appData } from './tools' import useTheme from './tools/useTheme' import { useNextClient } from '@opentiny/next-vue' -import { globalConversation } from './views/components-doc/composition/utils' +import { globalConversation } from './composable/utils' export default defineComponent({ name: 'AppVue', diff --git a/examples/sites/src/views/components-doc/components/anchor.vue b/examples/sites/src/components/anchor.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/anchor.vue rename to examples/sites/src/components/anchor.vue diff --git a/examples/sites/src/views/components-doc/components/api-docs.vue b/examples/sites/src/components/api-docs.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/api-docs.vue rename to examples/sites/src/components/api-docs.vue diff --git a/examples/sites/src/views/components-doc/components/async-highlight.vue b/examples/sites/src/components/async-highlight.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/async-highlight.vue rename to examples/sites/src/components/async-highlight.vue diff --git a/examples/sites/src/views/components-doc/components/contributor.vue b/examples/sites/src/components/contributor.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/contributor.vue rename to examples/sites/src/components/contributor.vue diff --git a/examples/sites/src/views/components-doc/components/demo.vue b/examples/sites/src/components/demo.vue similarity index 99% rename from examples/sites/src/views/components-doc/components/demo.vue rename to examples/sites/src/components/demo.vue index 71a57c2663..ce4c8e3fe1 100644 --- a/examples/sites/src/views/components-doc/components/demo.vue +++ b/examples/sites/src/components/demo.vue @@ -75,7 +75,7 @@ import { i18nByKey, getWord } from '@/i18n' import { $split, fetchDemosFile } from '@/tools' import { Tabs as TinyTabs, TabItem as TinyTabItem, Button as TinyButton } from '@opentiny/vue' import { AutoTip as vAutoTip } from '@opentiny/vue-directive' -import { languageMap, vueComponents, getWebdocPath, staticDemoPath } from '../cmp-config' +import { languageMap, vueComponents, getWebdocPath, staticDemoPath } from '../views/components-doc/cmp-config' import { router } from '@/router.js' import demoConfig from '@demos/config.js' import { useApiMode, useTemplateMode } from '@/tools' diff --git a/examples/sites/src/views/components-doc/components/float-settings.vue b/examples/sites/src/components/float-settings.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/float-settings.vue rename to examples/sites/src/components/float-settings.vue diff --git a/examples/sites/src/views/components-doc/components/header.vue b/examples/sites/src/components/header.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/header.vue rename to examples/sites/src/components/header.vue diff --git a/examples/sites/src/views/components-doc/components/mcp-docs.vue b/examples/sites/src/components/mcp-docs.vue similarity index 100% rename from examples/sites/src/views/components-doc/components/mcp-docs.vue rename to examples/sites/src/components/mcp-docs.vue diff --git a/examples/sites/src/views/components-doc/tiny-robot-chat.vue b/examples/sites/src/components/tiny-robot-chat.vue similarity index 94% rename from examples/sites/src/views/components-doc/tiny-robot-chat.vue rename to examples/sites/src/components/tiny-robot-chat.vue index 6ef89550b6..175af8b845 100644 --- a/examples/sites/src/views/components-doc/tiny-robot-chat.vue +++ b/examples/sites/src/components/tiny-robot-chat.vue @@ -42,20 +42,16 @@ + + diff --git a/examples/sites/src/views/comprehensive/index.vue b/examples/sites/src/views/comprehensive/index.vue new file mode 100644 index 0000000000..99a7bf4ae4 --- /dev/null +++ b/examples/sites/src/views/comprehensive/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/examples/sites/src/views/comprehensive/products.json b/examples/sites/src/views/comprehensive/products.json new file mode 100644 index 0000000000..718fff1c72 --- /dev/null +++ b/examples/sites/src/views/comprehensive/products.json @@ -0,0 +1,99 @@ +[ + + { + "id": 1, + "name": "iPhone 16", + "price": 5999, + "description": "苹果手机", + "image": "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.alicdn.com%2Fbao%2Fuploaded%2FO1CN011qHTQ81edxfMcnfNR_%21%216000000003895-0-yinhe.jpg_300x300.jpg&refer=http%3A%2F%2Fimg.alicdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1750986769&t=4570d81c9f0301ab1745c75dfff9f272", + "category": "phones", + "stock": 100, + "status": "on", + "createdAt": "2024-03-20", + "updatedAt": "2025-05-29T21:56:30.481Z" + }, + { + "id": 2, + "name": "MacBook Pro", + "price": 12999, + "description": "笔记本电脑", + "image": "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fg-search1.alicdn.com%2Fimg%2Fbao%2Fuploaded%2Fi3%2F1831488473%2FO1CN01I8MRyC2CSgWGbhVjJ_%21%211831488473.jpg_300x300.jpg&refer=http%3A%2F%2Fg-search1.alicdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1750986810&t=9eb9c9e0765244130200dd0f935b9cea", + "category": "laptops", + "stock": 50, + "status": "off", + "createdAt": "2024-03-20", + "updatedAt": "2024-03-20" + }, + { + "id": 3, + "name": "iPad", + "price": 2399, + "description": "平板电脑", + "image": "https://respic.3d66.com/coverimg/cache/f2d1/53893cd4d00efe87132f1e3371b72339.jpg%21medium-size-2?v=17611204&k=D41D8CD98F00B204E9800998ECF8427E", + "category": "tablets", + "stock": 12999, + "status": "on", + "createdAt": "2025-05-27T00:49:29.993Z", + "updatedAt": "2025-05-29T16:11:49.743Z" + }, + { + "id": 4, + "name": "Huawei Pura 70", + "price": 6499, + "description": "华为手机", + "image": "https://img1.baidu.com/it/u=1559062020,1043707656&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500", + "category": "phones", + "stock": 1999, + "status": "on", + "createdAt": "2025-05-27T00:54:38.771Z", + "updatedAt": "2025-05-29T22:29:40.124Z" + }, + { + "id": 5, + "name": "Huawei Mate XT ultimate", + "price": 23999, + "description": "华为手机 非凡大师", + "image": "https://img2.baidu.com/it/u=2892977680,910281472&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500", + "category": "phones", + "stock": 100, + "status": "on", + "createdAt": "2025-05-27T00:54:38.771Z", + "updatedAt": "2025-05-30T17:40:59.199Z" + }, + { + "id": 6, + "name": "小米15", + "price": 4999, + "description": "小米手机", + "image": "https://img2.baidu.com/it/u=2892977680,910281472&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500", + "category": "phones", + "stock": 222, + "status": "off", + "createdAt": "2025-05-29T00:30:02.226Z", + "updatedAt": "2025-05-29T16:14:35.150Z" + }, + { + "id": 7, + "name": "小米 13", + "price": 3999, + "description": "小米手机", + "image": "https://img1.baidu.com/it/u=809120544,2106407569&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500", + "category": "phones", + "stock": 2222, + "status": "on", + "createdAt": "2025-05-29T00:32:46.308Z", + "updatedAt": "2025-05-30T21:28:28.543Z" + }, + { + "id": 8, + "name": "Vivo X90", + "price": 2999, + "description": "Vivo手机", + "image": "https://img2.baidu.com/it/u=2892977680,910281472&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500", + "category": "phones", + "stock": 3999, + "status": "on", + "createdAt": "2025-05-27T00:54:38.771Z", + "updatedAt": "2025-05-30T17:40:59.199Z" + } +] diff --git a/examples/sites/src/views/comprehensive/types/index.ts b/examples/sites/src/views/comprehensive/types/index.ts new file mode 100644 index 0000000000..ac736adb2b --- /dev/null +++ b/examples/sites/src/views/comprehensive/types/index.ts @@ -0,0 +1,37 @@ +// 用户类型 +export interface User { + id: number + username: string + avatar?: string +} + +// 商品类型 +export interface Product { + id: number + name: string + price: number + description?: string + image: string + category: string + stock: number + status: 'on' | 'off' // on: 上架, off: 下架 + createdAt?: string + updatedAt?: string +} + +// 登录表单类型 +export interface LoginForm { + username: string + password: string +} + +// 商品表单类型 +export interface ProductForm { + name: string + price: number + description: string + image: string + category: string + stock: number + status: 'on' | 'off' +} diff --git a/examples/sites/src/views/layout/layout.vue b/examples/sites/src/views/layout/layout.vue index 26f7b5401e..abd216984f 100644 --- a/examples/sites/src/views/layout/layout.vue +++ b/examples/sites/src/views/layout/layout.vue @@ -63,8 +63,8 @@ import { genMenus, getMenuIcons } from '@/menus.jsx' import { router } from '@/router.js' import { getWord, i18nByKey, appData, appFn, useApiMode, useTemplateMode } from '@/tools' import useTheme from '@/tools/useTheme' -import FloatSettings from '@/views/components-doc/components/float-settings.vue' -import VersionTip from '@/views/components-doc/components/version-tip.vue' +import FloatSettings from '@/components/float-settings.vue' +import VersionTip from '@/components/version-tip.vue' export default defineComponent({ name: 'LayoutVue', From 04035659efbd44e4e4a1050b6f046ffb5a92e0ce Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Wed, 11 Jun 2025 15:46:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20tiny-robot-chat?= =?UTF-8?q?=20=E7=BB=84=E4=BB=B6=E4=B8=AD=E7=9A=84=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E9=A1=B9=E5=92=8C=E5=BB=BA=E8=AE=AE=E9=A1=B9=E7=9A=84=E4=BC=A0?= =?UTF-8?q?=E9=80=92=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BC=98=E5=8C=96=20Demo?= =?UTF-8?q?=20=E7=BB=84=E4=BB=B6=E7=9A=84=20QR=20=E7=A0=81=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/sites/package.json | 6 +- .../sites/src/components/tiny-robot-chat.vue | 18 +- .../sites/src/views/comprehensive/Demo.vue | 30 +- .../sites/src/views/comprehensive/index.vue | 310 +++++++++++++++++- 4 files changed, 347 insertions(+), 17 deletions(-) diff --git a/examples/sites/package.json b/examples/sites/package.json index 7c5c429ae7..5956602b10 100644 --- a/examples/sites/package.json +++ b/examples/sites/package.json @@ -29,9 +29,9 @@ "@docsearch/react": "npm:@docsearch/css", "@opentiny/next": "0.1.2", "@opentiny/next-vue": "0.0.1-alpha.1", - "@opentiny/tiny-robot": "0.2.5", - "@opentiny/tiny-robot-kit": "0.2.5", - "@opentiny/tiny-robot-svgs": "0.2.5", + "@opentiny/tiny-robot": "0.2.1", + "@opentiny/tiny-robot-kit": "0.2.1", + "@opentiny/tiny-robot-svgs": "0.2.1", "@opentiny/tiny-vue-mcp": "0.0.1-alpha.3", "@opentiny/utils": "workspace:~", "@opentiny/vue": "workspace:~", diff --git a/examples/sites/src/components/tiny-robot-chat.vue b/examples/sites/src/components/tiny-robot-chat.vue index 175af8b845..92ea9e692f 100644 --- a/examples/sites/src/components/tiny-robot-chat.vue +++ b/examples/sites/src/components/tiny-robot-chat.vue @@ -2,13 +2,13 @@
- +