1
0

feat: 增加AI按钮

This commit is contained in:
2025-11-28 18:54:32 +08:00
parent 12d7b7e176
commit df75f13816

View File

@@ -1,5 +1,32 @@
import React from 'react' import React from 'react'
import {amisRender, commonInfo, horizontalFormOptions} from '../util/amis.tsx' import {amisRender, commonInfo, horizontalFormOptions} from '../util/amis.tsx'
import {type Schema, uuid} from 'amis'
const aiToolbar = (component: Schema): Schema[] => {
const id = uuid()
return [
{
...component,
componentId: id,
},
{
className: 'text-right',
type: 'button-toolbar',
buttons: [
{
type: 'action',
label: 'AI 生成',
icon: 'fa fa-brain',
},
{
type: 'action',
label: 'AI 润色',
icon: 'fa fa-edit',
},
],
},
]
}
function Creator() { function Creator() {
return ( return (
@@ -16,7 +43,7 @@ function Creator() {
wrapWithPanel: false, wrapWithPanel: false,
canAccessSuperData: false, canAccessSuperData: false,
body: [ body: [
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'outline', name: 'outline',
label: '故事概述', label: '故事概述',
@@ -24,8 +51,8 @@ function Creator() {
required: true, required: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'world', name: 'world',
label: '世界观', label: '世界观',
@@ -33,7 +60,7 @@ function Creator() {
required: true, required: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ {
type: 'input-tag', type: 'input-tag',
name: 'tags', name: 'tags',
@@ -58,18 +85,14 @@ function Creator() {
leftFixed: 'sm', leftFixed: 'sm',
}, },
items: [ items: [
{ ...aiToolbar({
type: 'uuid',
name: 'id',
},
{
type: 'input-text', type: 'input-text',
name: 'name', name: 'name',
label: '名称', label: '名称',
clearable: true, clearable: true,
required: true, required: true,
trimContents: true, trimContents: true,
}, }),
{ {
type: 'select', type: 'select',
name: 'sex', name: 'sex',
@@ -95,7 +118,7 @@ function Creator() {
precision: 0, precision: 0,
required: true, required: true,
}, },
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'appearance', name: 'appearance',
label: '外形', label: '外形',
@@ -103,8 +126,9 @@ function Creator() {
required: true, required: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ ...aiToolbar({
componentId: 'd8eecb59-153d-4f5e-97b7-a52f4dc2dc58',
type: 'textarea', type: 'textarea',
name: 'disposition', name: 'disposition',
label: '性格', label: '性格',
@@ -112,31 +136,31 @@ function Creator() {
required: true, required: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'clothes', name: 'clothes',
label: '衣着', label: '衣着',
clearable: true, clearable: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'experience', name: 'experience',
label: '经历', label: '经历',
clearable: true, clearable: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ ...aiToolbar({
type: 'textarea', type: 'textarea',
name: 'family', name: 'family',
label: '家庭', label: '家庭',
clearable: true, clearable: true,
trimContents: true, trimContents: true,
showCounter: true, showCounter: true,
}, }),
{ {
type: 'input-kvs', type: 'input-kvs',
name: 'extra2', name: 'extra2',
@@ -152,8 +176,7 @@ function Creator() {
leftFixed: 'sm', leftFixed: 'sm',
}, },
}, },
valueItems: [ valueItems: aiToolbar({
{
type: 'textarea', type: 'textarea',
name: 'value', name: 'value',
label: '属性内容', label: '属性内容',
@@ -165,8 +188,7 @@ function Creator() {
horizontal: { horizontal: {
leftFixed: 'sm', leftFixed: 'sm',
}, },
}, }),
],
}, },
], ],
}, },