| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import CommonContent from "@/api/CommonContent";
- import type { IHomeCommonCategoryListTabNestCategoryItemDefine } from "../CommonCategoryDefine";
- import type { IHomeCommonCategoryDynamicDataCommonContent } from "../CommonCategoryDynamicData";
- export interface IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumns {
- type: 'speicalMergeItem:getColumns',
- params: {
- modelId: number,
- mainBodyColumnId: number,
- },
- }
- export interface IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumn {
- type: 'speicalMergeItem:getColumn',
- params: {
- modelId: number,
- mainBodyColumnId: number,
- },
- }
- export type IHomeCommonCategoryCategoryDynamicDataMerg =
- | IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumns
- | IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumn;
- export async function doLoadDynamicCategoryDataMergeTypeGetColumns(
- categorys: IHomeCommonCategoryListTabNestCategoryItemDefine[],
- ) {
- for (let i = categorys.length - 1; i >= 0; i--) {
- const category = categorys[i];
- if (category.type?.startsWith('speicalMergeItem:')) {
- const d = category.type.split(':');
- const op = d[1];
- const type = d[2];
- switch (op) {
- case 'getColumns': {
- const data = category as unknown as IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumns;
- const result = await CommonContent.getModelColumList(
- data.params.modelId,
- data.params.mainBodyColumnId
- )
- const newArray = result.map((item) => ({
- ...category,
- params: undefined,
- text: item.name as string,
- type,
- data: {
- type: 'commonContent',
- params: {
- modelId: item.modelId,
- mainBodyColumnId: item.id,
- },
- } as IHomeCommonCategoryDynamicDataCommonContent,
- }));
- categorys.splice(i, 1, ...newArray);
- break;
- }
- case 'getColumn': {
- const data = category as unknown as IHomeCommonCategoryCategoryDynamicDataMergeTypeGetColumn;
- const result = await CommonContent.getModelColumList(
- data.params.modelId,
- )
- categorys.splice(i, 1, ...result
- .filter((item) => item.id === data.params.mainBodyColumnId)
- .map((item) => ({
- ...category,
- text: item.name as string,
- type,
- data: {
- type: 'commonContent',
- params: {
- modelId: item.modelId,
- mainBodyColumnId: item.id,
- },
- } as IHomeCommonCategoryDynamicDataCommonContent,
- })));
- break;
- }
- }
- }
- }
- return categorys;
- }
|