import mpx from "@mpxjs/core"; import { grpc, ResponseData } from "jmash-core-mp"; import { DiyCompModel, DiyCompCreateReq, DiyCompList, DiyCompReq, DiyCompMoveKey, DiyCompMoveTopKey, DiyCompUpdateReq, } from "./types"; import { CompModel } from "../types"; class DiyCompApiImpl { // 转换组件模型 convertModel(diyModel: DiyCompModel): CompModel { return Object.assign(diyModel, { compData: JSON.parse(diyModel.compJson), }) as CompModel; } // 转换组件模型 convertModels(diyComps: Array): Array { const compModels = [] as CompModel[]; for (const model of diyComps) { const compModel = this.convertModel(model); compModels.push(compModel); } return compModels; } // 获取页面组件 findListByPage( pageId: string, vcardToken: string, tenant: string ): Promise> { const diyCompReq = { pageId: pageId, vcardToken: vcardToken } as DiyCompReq; return this.findList(diyCompReq, tenant); } // 查询列表信息DIY模板组件 findList( query: DiyCompReq, tenant: string ): Promise> { grpc.clearEmpty(query); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component/list/" + tenant, method: "GET", data: query, header: { "Grpc-Metadata-Tenant": tenant, }, }); } // 查询DIY模板组件 findById( compId: string, tenant: string ): Promise> { return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component/id/" + tenant + "/" + compId, method: "GET", }); } // 创建实体DIY模板组件 create( data: DiyCompCreateReq, tenant: string ): Promise> { data.tenant = tenant; grpc.clearEmpty(data); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component", method: "POST", data: data, header: { "Grpc-Metadata-Tenant": tenant, }, }); } // 上移下移 move( compId: string, up: boolean, tenant: string ): Promise> { const data: DiyCompMoveKey = { compId: compId, up: up, tenant: tenant }; grpc.clearEmpty(data); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component/move", method: "PUT", data: data, header: { "Grpc-Metadata-Tenant": tenant, }, }); } // 置顶/置底 moveTop( compId: string, top: boolean, tenant: string ): Promise> { const data: DiyCompMoveTopKey = { compId: compId, top: top, tenant: tenant, }; grpc.clearEmpty(data); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component/top", method: "PUT", data: data, header: { "Grpc-Metadata-Tenant": tenant, }, }); } // 删除DIY模板组件 delete(compId: string, tenant: string): Promise> { return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component/id?" + "tenant=" + tenant + "&compId=" + compId, method: "DELETE", header: { "Grpc-Metadata-Tenant": tenant, }, }); } // 修改实体DIY模板组件 update( data: DiyCompUpdateReq, tenant: string ): Promise> { data.tenant = tenant; grpc.clearEmpty(data); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_component", method: "PATCH", data: data, header: { "Grpc-Metadata-Tenant": tenant, }, }); } } const diyCompApi = new DiyCompApiImpl(); export { diyCompApi };