/** * Vue 模板生成器 * @作者 li peng * @创建时间 2025-12-20 * @描述 生成 Vue2 和 Vue3 组件模板,严格遵循 M8 规范 */ /** * Vue 模板生成选项 */ export interface VueTemplateOptions { /** 组件名称 (kebab-case) */ name: string; /** Vue 版本 (2 或 3) */ vueVersion: 2 | 3; /** 组件描述 */ description: string; /** 使用的 UI 组件列表 */ components?: string[]; /** 是否包含样式(始终为外部引入) */ includeStyle?: boolean; /** 作者 */ author?: string; /** 是否使用 Mock 数据 */ useMock?: boolean; /** 页面标题 */ pageTitle?: string; } /** * 验证并修正组件名称 * @param componentName 组件名称 * @returns 修正后的组件名称,如果无效则返回 null;如果应该使用 API 则返回 { useApi: true } */ export declare function validateComponentName(componentName: string): string | null; /** * 过滤并验证组件列表 * @param components 组件列表 * @returns 验证后的组件列表和警告信息 */ export declare function filterValidComponents(components: string[]): { valid: string[]; warnings: string[]; }; /** * 表单字段信息 */ export interface FormFieldInfo { /** 字段名称(中文) */ name: string; /** 字段属性名(英文) */ propertyName: string; /** 字段类型 */ type: 'text' | 'password' | 'number' | 'tel' | 'idcard' | 'textarea' | 'uploader'; /** 需要的校验类型 */ validation?: 'mobile' | 'idcard' | 'email' | 'tel' | 'required'; /** 对应的 Util.string 校验方法 */ validationMethod?: string; } /** * 从需求描述中提取表单字段信息 * @param requirement 需求描述 * @returns 表单字段列表 */ export declare function extractFormFields(requirement: string): FormFieldInfo[]; /** * 根据需求智能推荐组件 * @param requirement 需求描述 * @returns 推荐的组件列表 */ export declare function suggestComponents(requirement: string): string[]; /** * 生成 Vue2 组件模板 (Options API) * 严格遵循 M8 规范:样式外部引入、使用 ejs.ui API * @param options 模板选项 * @returns Vue2 组件代码 */ export declare function generateVue2Template(options: VueTemplateOptions): string; /** * 生成 Vue3 组件模板 (Composition API with script setup) * 严格遵循 M8 规范:样式外部引入、使用 ejs.ui API * @param options 模板选项 * @returns Vue3 组件代码 */ export declare function generateVue3Template(options: VueTemplateOptions): string; /** * 根据版本生成 Vue 模板 * @param options 模板选项 * @returns Vue 组件代码 */ export declare function generateVueTemplate(options: VueTemplateOptions): string; /** * 检查代码是否使用 Options API (Vue2 风格) * @param code 代码字符串 * @returns 是否使用 Options API */ export declare function isOptionsApi(code: string): boolean; /** * 检查代码是否使用 Composition API (Vue3 风格) * @param code 代码字符串 * @returns 是否使用 Composition API */ export declare function isCompositionApi(code: string): boolean; //# sourceMappingURL=vue-template.d.ts.map