upload project source code

This commit is contained in:
2026-04-30 18:49:43 +08:00
commit 9b394ba682
2277 changed files with 660945 additions and 0 deletions

View File

@@ -0,0 +1,350 @@
/*
* @Author: caoziyuan ziyuan.cao@zhuying.com
* @Date: 2026-01-14 09:43:15
* @LastEditors: caoziyuan ziyuan.cao@zhuying.com
* @LastEditTime: 2026-01-14 11:10:33
* @FilePath: \uni-app\api\naming.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* 起名相关 API
*/
import { http } from '../utils/request';
/**
* 起名/改名/测名返回的「方案 JSON」建议在根级包含五行生克与属相模块字段约定见
* `utils/backend-wuxing-zodiac-spec.ts`bazi_name_fit、wuxing_bagua、zodiac_sign
* 生成提示词可用:`buildBackendWuxingZodiacPromptZh()`。
*/
export interface PersonalNamingRequest {
last_name: string;
gender: string;
birth_date: string;
birth_place: string;
style_label: string;
father_name?: string;
father_birth_date?: string;
mother_name?: string;
mother_birth_date?: string;
family_book?: string;
}
export interface PersonalNamingResponse {
report_id: number;
status?: number;
solutions?: Array<{
id: number;
name: string;
pinyin?: string;
tags?: string[];
name_meaning?: string;
poetry_source?: string;
total_score?: number;
wuxing?: string;
zodiac?: string;
constellation?: string;
}>;
[key: string]: any;
}
export interface PersonalRenamingRequest {
last_name: string;
gender: string;
birth_date: string;
birth_place: string;
style_label: string;
father_name?: string;
father_birth_date?: string;
mother_name?: string;
mother_birth_date?: string;
family_book?: string;
original_name: string;
reason: string;
}
/**
* 个人测名。建议后端同时接收:精确出生时辰、出生地/时区(若有),以便排出八字、喜用与生肖年柱;
* 详见 `utils/backend-wuxing-zodiac-spec.ts` 中 RECOMMENDED_PERSONAL_REQUEST_FIELDS。
*/
export interface PersonalScoringRequest {
surname: string;
given_name: string;
gender: string;
birthday: string;
}
// 公司起名核心成员
export interface CompanyCoreMember {
name: string;
birthday: string; // 格式: 'YYYY-MM-DD HH:mm:ss'
}
// 公司起名请求参数
export interface CompanyNamingRequest {
industry: string; // 行业,如 "科技"
address: string; // 地址,如 "临沂"
core_members: CompanyCoreMember[]; // 核心成员列表
report_id?: number;
}
export interface CompanyRenamingRequest {
industry: string;
address: string;
core_members: CompanyCoreMember[];
vision: string;
preference: string;
original_name: string;
reason: string;
}
export interface CompanyRenamingResponse {
report_id: number;
status?: number;
solutions?: Array<{
id: number;
name: string;
pinyin?: string;
tags?: string[];
name_meaning?: string;
poetry_source?: string;
total_score?: number;
star_rating?: number;
is_recommended?: number;
}>;
[key: string]: any;
}
// 公司起名响应 - request.ts 会解包,实际返回的是 data 部分
export interface CompanyNamingResponse {
report_id: number;
status: number;
solutions?: Array<{
id: number;
name: string;
pinyin: string;
wuxing: string;
tags: string[];
name_meaning: string;
poetry_source: string;
total_score: number;
star_rating: number;
is_recommended: number;
}>;
}
// 方案详情响应 - request.ts 会解包,实际返回的是 data 部分
export interface SolutionDetailResponse {
id: number;
report_id: number;
name: string;
pinyin: string;
total_score: number;
star_rating: number;
wuxing: string;
shuxiang: string | null;
tags: string[];
name_meaning: string;
poetry_source: string;
is_recommended: number;
is_favorited: boolean;
sections: Array<{
id: number;
section_type: string;
title: string;
summary_data: any;
sort_order: number;
details: Array<{
id: number;
detail_type: string;
title: string;
content: any;
sort_order: number;
}>;
}>;
[key: string]: any;
}
// 公司测名/企业运程company_analysis请求参数
export interface CompanyAnalysisRequest {
company_name: string;
industry: string;
address: string;
target_audience: string;
members: Array<{ name: string; birth_date: string }>; // 格式: 'YYYY-MM-DD HH:mm:ss'
}
export interface CompanyScoringRequest {
company_name: string;
industry: string;
address: string;
target_audience: string;
members: Array<{ name: string; birthday: string }>;
}
export type CompanyAnalysisDetailNode =
| { type: 'text'; text: string }
| { type: 'list'; items: string[] }
| { type: 'kv'; items: Array<{ label: string; value: string }> };
export interface CompanyAnalysisDetails {
title: string;
nodes: CompanyAnalysisDetailNode[];
}
// 公司测名/企业运程company_analysis响应 - request.ts 会解包,实际返回的是 data 部分
export interface CompanyAnalysisResponse {
header: {
name: string;
tagLeft: string;
tagRight: string;
score: number;
quote: string;
details?: CompanyAnalysisDetails;
};
characterAnalysis: {
characters: Array<{ char: string; stroke: number; element: string; meaning: string }>;
analysis: string;
details?: CompanyAnalysisDetails;
};
businessPattern: {
radar: { labels: string[]; values: number[] };
summary: Array<{ label: string; value: string }>;
details?: CompanyAnalysisDetails;
};
gua: {
bg: string;
name: string;
badge: string;
desc: string;
tags: string[];
insight: string;
details?: CompanyAnalysisDetails;
};
team: {
members: Array<{ role: string; score: number; desc: string; match: string }>;
note: string;
details?: CompanyAnalysisDetails;
};
years: {
items: Array<{ year: string; luck: string; text: string }>;
details?: CompanyAnalysisDetails;
};
wealthTrend: {
bars: number[];
note: string;
details?: CompanyAnalysisDetails;
};
direction: {
note: string;
goodDot?: { x: number; y: number };
details?: CompanyAnalysisDetails;
};
layout: {
items: Array<{
strong: string;
textBefore: string;
highlights?: string[];
textAfter: string;
}>;
details?: CompanyAnalysisDetails;
};
execution: {
text: string;
details?: CompanyAnalysisDetails;
};
}
export interface NewCompanyRenamingRequest {
industry: string;
address: string;
core_members: CompanyCoreMember[];
vision: string;
preference: string;
original_name: string;
reason: string;
additional_info: string;
}
export interface NewCompanyRenamingResponse {
report_id: number;
status?: number;
solutions?: Array<{
id: number;
name: string;
pinyin?: string;
tags?: string[];
name_meaning?: string;
poetry_source?: string;
total_score?: number;
star_rating?: number;
is_recommended?: number;
}>;
[key: string]: any;
}
export const namingApi = {
personalNaming(params: PersonalNamingRequest): Promise<PersonalNamingResponse> {
return http.post('/yifan_naming_reports/personal-naming', params);
},
personalScoring(params: PersonalScoringRequest): Promise<any> {
return http.post('/yifan_naming_reports/personal-scoring', params);
},
personalScoringTrial(params: PersonalScoringRequest): Promise<any> {
return http.post('/yifan_naming_reports/personal-scoring-trial', params);
},
personalRenaming(params: PersonalRenamingRequest): Promise<PersonalNamingResponse> {
return http.post('/yifan_naming_reports/personal-renaming', params);
},
/**
* 公司起名
*/
companyNaming(params: CompanyNamingRequest): Promise<CompanyNamingResponse> {
return http.post('/yifan_naming_reports/company-naming', params);
},
companyRenaming(params: CompanyRenamingRequest): Promise<CompanyRenamingResponse> {
return http.post('/yifan_naming_reports/company-renaming', params);
},
/**
* 公司测名/企业运程
*/
companyAnalysis(params: CompanyAnalysisRequest): Promise<CompanyAnalysisResponse> {
return http.post('/yifan_naming_reports/company-analysis', params);
},
companyScoring(params: CompanyScoringRequest): Promise<any> {
return http.post('/yifan_naming_reports/company-scoring', params);
},
companyScoringTrial(params: CompanyScoringRequest): Promise<any> {
return http.post('/yifan_naming_reports/company-scoring-trial', params);
},
/**
* 测名试用分享回调 - 好友通过分享链接进入小程序后,为分享者增加免费次数
*/
scoringTrialShareCallback(): Promise<any> {
return http.post('/yifan_naming_reports/scoring-trial-share-callback');
},
/**
* 根据方案ID获取详情
* @param solutionId 方案ID
*/
getSolutionDetail(solutionId: number | string): Promise<SolutionDetailResponse> {
return http.get(`/yifan_naming_solutions/full_detail/${solutionId}`);
},
/**
* 根据报告ID获取方案列表
* @param reportId 报告ID
*/
getSolutionsByReportId(reportId: number | string): Promise<any> {
return http.get(`/yifan_naming_reports/${reportId}/solutions`);
},
};