123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- import axios from "./instance";
- import {
- TAGGING_STYLE_LIST,
- INSERT_TAGGING_STYLE,
- DELETE_TAGGING_STYLE,
- UPLOAD_HEADS,
- TAGGING_STYLE_TREE,
- } from "./constant";
- import { jsonToForm } from "@/utils";
- import { params } from "@/env";
- import { ui18n } from "@/lang";
- import { fetchMaterialGroups } from "./material";
- interface ServiceStyle {
- iconId: number;
- iconTitle: string;
- iconUrl: string;
- isSystem: number;
- lastUse: 1 | 0;
- }
- export const defStyleType = {
- id: 8,
- name: ui18n.t('sys.other'),
- }
- export const styleTypes = [
- {
- id: 1,
- name: ui18n.t('tagging.type.1'),
- children: [
- { id: 2, name: ui18n.t('tagging.type.2') },
- { id: 3, name: ui18n.t('tagging.type.3') },
- { id: 4, name: ui18n.t('tagging.type.4') },
- { id: 5, name: ui18n.t('tagging.type.5') },
- { id: 6, name: ui18n.t('tagging.type.6') },
- ],
- },
- {
- id: 7,
- name: ui18n.t('tagging.type.7'),
- },
- defStyleType
- ];
- export const getStyleTypeName = (id: number, all: any = styleTypes): string => {
- for (const item of all) {
- if (id === item.id) {
- return item.name;
- } else if ("children" in item && item.children) {
- const cname = getStyleTypeName(id, item.children);
- if (cname) {
- return cname;
- }
- }
- }
- return "";
- };
- export const getStyleTypeId = (dictId: number, all: any = styleTypes): number => {
- for (const item of all) {
- if (dictId === item.dictId) {
- return item.id;
- } else if ("children" in item && item.children) {
- const cid = getStyleTypeId(dictId, item.children);
- if (cid) {
- return cid;
- }
- }
- }
- return -1;
- };
- export const getStyleDictId = (id: number, all: any = styleTypes): number => {
- return __map[id]
- };
- export interface TaggingStyle {
- id: string;
- icon: string;
- typeId: number;
- lastUse: 1 | 0;
- default: boolean;
- }
- const toLocal = (serviceStyle: ServiceStyle): TaggingStyle => {
- return {
- id: serviceStyle.iconId.toString(),
- lastUse: serviceStyle.lastUse,
- typeId: Number(serviceStyle.iconTitle),
- icon: serviceStyle.iconUrl,
- default: Boolean(serviceStyle.isSystem),
- };
- };
- const toService = (style: TaggingStyle): ServiceStyle => ({
- iconId: Number(style.id),
- iconTitle: style.typeId.toString(),
- lastUse: style.lastUse,
- iconUrl: style.icon,
- isSystem: Number(style.default),
- });
- export type TaggingStyles = TaggingStyle[];
- const __map: Record<string, number> = {}
- export const fetchTaggingStyles = async () => {
- const reqParams = params.share ? { fusionId: params.caseId } : {};
- const treeData = await axios.get<any>(TAGGING_STYLE_TREE, {
- params: reqParams,
- });
- const styles: any[] = [];
- const genTree = (tree: any, parent?: any) => {
- for (const item of tree) {
- if (item.iconUrl) {
- delete parent.children;
- __map[item.iconId] = item.dictId || parent.dictId
- styles.push(toLocal({ ...item, iconTitle: parent.id }));
- } else {
- const data = {
- id: item.iconId,
- dictId: item.dictId,
- name: item.iconTitle,
- children: [],
- };
- parent.children.push(data);
- genTree(item.childrenList, data)
- }
- }
- };
- const tree: any = { children: [] };
- genTree(treeData, tree);
- styleTypes.length = 0
- styleTypes.push(...tree.children)
- Object.assign(defStyleType, tree.children[tree.children.length - 1])
-
- console.error('StyleT', styleTypes)
- // const data = await axios.get<ServiceStyle[]>(TAGGING_STYLE_LIST, {
- // params: reqParams,
- // });
- return styles;
- };
- export const postAddTaggingStyle = async (props: {
- file: Blob;
- iconTitle: string;
- }) => {
- const data = await axios<ServiceStyle>({
- method: "POST",
- headers: UPLOAD_HEADS,
- url: INSERT_TAGGING_STYLE,
- data: jsonToForm({
- file: new File([props.file], `${props.iconTitle}.png`),
- iconTitle: props.iconTitle.toString(),
- parentId: props.iconTitle,
- fusionId: params.caseId,
- }),
- });
- return toLocal(data);
- };
- export const postDeleteTaggingStyle = async (id: TaggingStyle["id"]) => {
- await axios.post(DELETE_TAGGING_STYLE, { iconId: Number(id) });
- };
|