|
@@ -1,3 +1,6 @@
|
|
|
|
+import { groupBy } from '@/tools';
|
|
|
|
+
|
|
|
|
+
|
|
export function fromTongueAnalysisModel(data: Record<string, any>): AnalysisModel {
|
|
export function fromTongueAnalysisModel(data: Record<string, any>): AnalysisModel {
|
|
const exception: AnalysisException[] = [];
|
|
const exception: AnalysisException[] = [];
|
|
const fromTongueException = fromAnalysisException(exception);
|
|
const fromTongueException = fromAnalysisException(exception);
|
|
@@ -16,6 +19,7 @@ export function fromTongueAnalysisModel(data: Record<string, any>): AnalysisMode
|
|
],
|
|
],
|
|
},
|
|
},
|
|
exception,
|
|
exception,
|
|
|
|
+ exceptionGroup: [],
|
|
result: data?.tongueAnalysisResult ?? data?.tongue ?? '',
|
|
result: data?.tongueAnalysisResult ?? data?.tongue ?? '',
|
|
cover: Object.assign([c1, c2].filter(Boolean), {
|
|
cover: Object.assign([c1, c2].filter(Boolean), {
|
|
['舌上']: c1,
|
|
['舌上']: c1,
|
|
@@ -50,6 +54,7 @@ export function fromFaceAnalysisModel(data: Record<string, any>): AnalysisModel
|
|
],
|
|
],
|
|
},
|
|
},
|
|
exception,
|
|
exception,
|
|
|
|
+ exceptionGroup: [],
|
|
result: data?.faceAnalysisResult ?? data?.face ?? '',
|
|
result: data?.faceAnalysisResult ?? data?.face ?? '',
|
|
cover: Object.assign([c1, c2, c3].filter(Boolean), {
|
|
cover: Object.assign([c1, c2, c3].filter(Boolean), {
|
|
['正面']: c1,
|
|
['正面']: c1,
|
|
@@ -59,12 +64,34 @@ export function fromFaceAnalysisModel(data: Record<string, any>): AnalysisModel
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+export function fromAnalysisModel(mode: 'tongue' | 'face', data: Record<string, any>): AnalysisModel {
|
|
|
|
+ let model: AnalysisModel;
|
|
|
|
+ switch ( mode ) {
|
|
|
|
+ case 'tongue':
|
|
|
|
+ model = fromTongueAnalysisModel(data);
|
|
|
|
+ break;
|
|
|
|
+ case 'face':
|
|
|
|
+ model = fromFaceAnalysisModel(data);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const group = groupBy<AnalysisException>(model.exception, (item) => item.cover ?? '');
|
|
|
|
+ model.exceptionGroup = Object.entries(group).map(([ key, exception ]) => (
|
|
|
|
+ { key, exception }
|
|
|
|
+ ));
|
|
|
|
+ return model;
|
|
|
|
+}
|
|
|
|
+
|
|
export interface AnalysisModel {
|
|
export interface AnalysisModel {
|
|
table: {
|
|
table: {
|
|
columns: string[];
|
|
columns: string[];
|
|
data: (string[] & { exception: boolean })[];
|
|
data: (string[] & { exception: boolean })[];
|
|
};
|
|
};
|
|
exception: AnalysisException[];
|
|
exception: AnalysisException[];
|
|
|
|
+ exceptionGroup: {
|
|
|
|
+ key: string;
|
|
|
|
+ exception: AnalysisException[]
|
|
|
|
+ }[];
|
|
cover: string[];
|
|
cover: string[];
|
|
result: string;
|
|
result: string;
|
|
}
|
|
}
|