mirror of
https://github.com/labring/FastGPT.git
synced 2025-12-26 04:24:54 +00:00
add templateId to apps (#5866)
* fix: timeselector ui error * var update node * add templateId to apps
This commit is contained in:
parent
45869fa058
commit
bf33f7af2e
|
|
@ -29,6 +29,7 @@ export type AppSchema = {
|
||||||
name: string;
|
name: string;
|
||||||
avatar: string;
|
avatar: string;
|
||||||
intro: string;
|
intro: string;
|
||||||
|
templateId?: string; // Create by template
|
||||||
|
|
||||||
updateTime: Date;
|
updateTime: Date;
|
||||||
|
|
||||||
|
|
@ -46,16 +47,18 @@ export type AppSchema = {
|
||||||
scheduledTriggerConfig?: AppScheduledTriggerConfigType | null;
|
scheduledTriggerConfig?: AppScheduledTriggerConfigType | null;
|
||||||
scheduledTriggerNextTime?: Date;
|
scheduledTriggerNextTime?: Date;
|
||||||
|
|
||||||
inited?: boolean;
|
|
||||||
teamTags: string[];
|
|
||||||
inheritPermission?: boolean;
|
inheritPermission?: boolean;
|
||||||
|
|
||||||
// if access the app by favourite or quick
|
// if access the app by favourite or quick
|
||||||
favourite?: boolean;
|
favourite?: boolean;
|
||||||
quick?: boolean;
|
quick?: boolean;
|
||||||
|
|
||||||
// abandon
|
/** @deprecated */
|
||||||
defaultPermission?: number;
|
defaultPermission?: number;
|
||||||
|
/** @deprecated */
|
||||||
|
inited?: boolean;
|
||||||
|
/** @deprecated */
|
||||||
|
teamTags: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type AppListItemType = {
|
export type AppListItemType = {
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,12 @@ export type UsageSchemaType = {
|
||||||
teamId: string;
|
teamId: string;
|
||||||
tmbId: string;
|
tmbId: string;
|
||||||
appName: string;
|
appName: string;
|
||||||
appId?: string;
|
|
||||||
pluginId?: string;
|
|
||||||
totalPoints: number;
|
totalPoints: number;
|
||||||
source: `${UsageSourceEnum}`;
|
source: `${UsageSourceEnum}`;
|
||||||
|
|
||||||
|
appId?: string;
|
||||||
|
datasetId?: string;
|
||||||
|
|
||||||
// @deprecated
|
// @deprecated
|
||||||
list?: UsageItemType[];
|
list?: UsageItemType[];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -60,18 +60,14 @@ const AppSchema = new Schema(
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
},
|
},
|
||||||
|
templateId: String,
|
||||||
|
|
||||||
updateTime: {
|
updateTime: {
|
||||||
type: Date,
|
type: Date,
|
||||||
default: () => new Date()
|
default: () => new Date()
|
||||||
},
|
},
|
||||||
|
|
||||||
// role and auth
|
// Workflow data
|
||||||
teamTags: {
|
|
||||||
type: [String]
|
|
||||||
},
|
|
||||||
|
|
||||||
// save app(Not publish)
|
|
||||||
modules: {
|
modules: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: []
|
||||||
|
|
@ -83,7 +79,8 @@ const AppSchema = new Schema(
|
||||||
chatConfig: {
|
chatConfig: {
|
||||||
type: chatConfigType
|
type: chatConfigType
|
||||||
},
|
},
|
||||||
// plugin config
|
|
||||||
|
// Tool config
|
||||||
pluginData: {
|
pluginData: {
|
||||||
type: {
|
type: {
|
||||||
nodeVersion: String,
|
nodeVersion: String,
|
||||||
|
|
@ -108,19 +105,21 @@ const AppSchema = new Schema(
|
||||||
type: Date
|
type: Date
|
||||||
},
|
},
|
||||||
|
|
||||||
inited: {
|
|
||||||
type: Boolean
|
|
||||||
},
|
|
||||||
inheritPermission: {
|
inheritPermission: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Chat setting
|
||||||
favourite: Boolean,
|
favourite: Boolean,
|
||||||
quick: Boolean,
|
quick: Boolean,
|
||||||
|
|
||||||
// abandoned
|
/** @deprecated */
|
||||||
defaultPermission: Number
|
defaultPermission: Number,
|
||||||
|
inited: Boolean,
|
||||||
|
teamTags: {
|
||||||
|
type: [String]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
minimize: false
|
minimize: false
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import {
|
||||||
TeamMemberCollectionName
|
TeamMemberCollectionName
|
||||||
} from '@fastgpt/global/support/user/team/constant';
|
} from '@fastgpt/global/support/user/team/constant';
|
||||||
import { UsageCollectionName, UsageItemCollectionName } from './constants';
|
import { UsageCollectionName, UsageItemCollectionName } from './constants';
|
||||||
|
import { AppCollectionName } from '../../../core/app/schema';
|
||||||
|
import { DatasetCollectionName } from '../../../core/dataset/schema';
|
||||||
|
|
||||||
const UsageSchema = new Schema(
|
const UsageSchema = new Schema(
|
||||||
{
|
{
|
||||||
|
|
@ -25,31 +27,30 @@ const UsageSchema = new Schema(
|
||||||
enum: Object.values(UsageSourceEnum),
|
enum: Object.values(UsageSourceEnum),
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
// usage name
|
||||||
appName: {
|
appName: {
|
||||||
// usage name
|
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
},
|
},
|
||||||
|
// total points
|
||||||
totalPoints: {
|
totalPoints: {
|
||||||
// total points
|
|
||||||
type: Number,
|
type: Number,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
appId: {
|
|
||||||
type: Schema.Types.ObjectId,
|
|
||||||
ref: 'apps',
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
pluginId: {
|
|
||||||
type: Schema.Types.ObjectId,
|
|
||||||
ref: 'plugins',
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
time: {
|
time: {
|
||||||
type: Date,
|
type: Date,
|
||||||
default: () => new Date()
|
default: () => new Date()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
appId: {
|
||||||
|
type: Schema.Types.ObjectId,
|
||||||
|
ref: AppCollectionName
|
||||||
|
},
|
||||||
|
datasetId: {
|
||||||
|
type: Schema.Types.ObjectId,
|
||||||
|
ref: DatasetCollectionName
|
||||||
|
},
|
||||||
|
|
||||||
// @description It will not be used again in the future.
|
// @description It will not be used again in the future.
|
||||||
list: {
|
list: {
|
||||||
type: Array
|
type: Array
|
||||||
|
|
|
||||||
|
|
@ -484,7 +484,7 @@ const RenderList = React.memo(function RenderList({
|
||||||
_hover={{
|
_hover={{
|
||||||
color: 'primary.600'
|
color: 'primary.600'
|
||||||
}}
|
}}
|
||||||
onClick={() => router.push('/toolkit/tools')}
|
onClick={() => router.push('/plugin/tool')}
|
||||||
gap={1}
|
gap={1}
|
||||||
bottom={0}
|
bottom={0}
|
||||||
right={[3, 6]}
|
right={[3, 6]}
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,14 @@ export type CreateAppBody = {
|
||||||
modules: AppSchema['modules'];
|
modules: AppSchema['modules'];
|
||||||
edges?: AppSchema['edges'];
|
edges?: AppSchema['edges'];
|
||||||
chatConfig?: AppSchema['chatConfig'];
|
chatConfig?: AppSchema['chatConfig'];
|
||||||
|
|
||||||
|
templateId?: string;
|
||||||
utmParams?: ShortUrlParams;
|
utmParams?: ShortUrlParams;
|
||||||
};
|
};
|
||||||
|
|
||||||
async function handler(req: ApiRequestProps<CreateAppBody>) {
|
async function handler(req: ApiRequestProps<CreateAppBody>) {
|
||||||
const { parentId, name, avatar, intro, type, modules, edges, chatConfig, utmParams } = req.body;
|
const { parentId, name, avatar, intro, type, modules, edges, chatConfig, templateId, utmParams } =
|
||||||
|
req.body;
|
||||||
|
|
||||||
if (!name || !type || !Array.isArray(modules)) {
|
if (!name || !type || !Array.isArray(modules)) {
|
||||||
return Promise.reject(CommonErrEnum.inheritPermissionError);
|
return Promise.reject(CommonErrEnum.inheritPermissionError);
|
||||||
|
|
@ -122,6 +125,7 @@ export const onCreateApp = async ({
|
||||||
pluginData,
|
pluginData,
|
||||||
username,
|
username,
|
||||||
userAvatar,
|
userAvatar,
|
||||||
|
templateId,
|
||||||
session
|
session
|
||||||
}: {
|
}: {
|
||||||
parentId?: ParentIdType;
|
parentId?: ParentIdType;
|
||||||
|
|
@ -137,6 +141,7 @@ export const onCreateApp = async ({
|
||||||
pluginData?: AppSchema['pluginData'];
|
pluginData?: AppSchema['pluginData'];
|
||||||
username?: string;
|
username?: string;
|
||||||
userAvatar?: string;
|
userAvatar?: string;
|
||||||
|
templateId?: string;
|
||||||
session?: ClientSession;
|
session?: ClientSession;
|
||||||
}) => {
|
}) => {
|
||||||
const create = async (session: ClientSession) => {
|
const create = async (session: ClientSession) => {
|
||||||
|
|
@ -154,7 +159,8 @@ export const onCreateApp = async ({
|
||||||
chatConfig,
|
chatConfig,
|
||||||
type,
|
type,
|
||||||
version: 'v2',
|
version: 'v2',
|
||||||
pluginData
|
pluginData,
|
||||||
|
templateId
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
{ session, ordered: true }
|
{ session, ordered: true }
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,8 @@ const TemplateMarket = ({
|
||||||
type: template.type as AppTypeEnum,
|
type: template.type as AppTypeEnum,
|
||||||
modules: templateDetail.workflow.nodes || [],
|
modules: templateDetail.workflow.nodes || [],
|
||||||
edges: templateDetail.workflow.edges || [],
|
edges: templateDetail.workflow.edges || [],
|
||||||
chatConfig: templateDetail.workflow.chatConfig
|
chatConfig: templateDetail.workflow.chatConfig,
|
||||||
|
templateId: templateDetail.templateId
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
webPushTrack.useAppTemplate({
|
webPushTrack.useAppTemplate({
|
||||||
id: res,
|
id: res,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue