From f7b8e0b6693467ae4df4bea4169dc62508b528e3 Mon Sep 17 00:00:00 2001 From: IchliebedichZhu <54796446@qq.com> Date: Wed, 13 Mar 2024 23:05:19 +0000 Subject: [PATCH] feat: add api function ts type --- src/api/home.ts | 46 +++++++++++++- src/api/material.ts | 60 ++++++++++++++++--- .../modules/panel/wrap/UserWrap.vue | 2 +- .../settings/EffectSelect/TextWrap.vue | 10 ++-- src/utils/widgets/loadFontRule.ts | 2 +- 5 files changed, 103 insertions(+), 17 deletions(-) diff --git a/src/api/home.ts b/src/api/home.ts index 091bfab..1532edf 100644 --- a/src/api/home.ts +++ b/src/api/home.ts @@ -46,7 +46,29 @@ type TGetTempDetail = { type?: number } -export const getTempDetail = (params: TGetTempDetail) => fetch<{data: string}>('design/temp', params, 'get') +type TTempDetail = { + /** 分类 */ + category: number + /** 封面 */ + cover: string + /** 创建时间 */ + created_time: string + /** Template内容 */ + data: string + /** 高度 */ + height: number + id: number + /** 来源 */ + original: string + resource: string + state: string + tag: string | null + title: string + updated_time: string + width: number +} + +export const getTempDetail = (params: TGetTempDetail) => fetch('design/temp', params, 'get') type TGetCategoriesParams = { type?: number @@ -66,8 +88,28 @@ export const getCategories = (params: TGetCategoriesParams) => fetch fetch('design/edit', params, 'post') // export const delTemp = (params: Type.Object = {}) => fetch('/api/template/temp_del', params) +type TGetCompListParam = { + search?: string + page?: number + type?: number + pageSize: number + cate: number +} + +/** 获取组件返回类型 */ +export type TGetCompListResult = { + cover: string + height: number + id: number + state: number + title: string + width: number +} + +type getCompListReturn = TPageRequestResult + // 组件相关接口 -export const getCompList = (params: Type.Object = {}) => fetch('design/list', params, 'get') +export const getCompList = (params: TGetCompListParam) => fetch('design/list', params, 'get') export const removeComp = (params: Type.Object = {}) => fetch('design/del', params, 'post') // export const getCompDetail = (params: Type.Object = {}) => fetch('/api/template/temp_info', params, 'get') diff --git a/src/api/material.ts b/src/api/material.ts index 14e720b..8765569 100644 --- a/src/api/material.ts +++ b/src/api/material.ts @@ -38,8 +38,6 @@ export type TGetListData = { export type TGetListResult = TPageRequestResult - - // 获取素材列表: export const getList = (params: TGetListParam) => fetch('design/material', params) @@ -60,7 +58,18 @@ export type TGetFontItemData = { // 获取字体 export const getFonts = (params: TGetFontParam = {}) => fetch>('design/fonts', params) -export const getFontSub = (params: Type.Object = {}, extra: any = {}) => fetch('design/font_sub', params, 'get', {}, extra) + +type TGetFontSubParam = { + font_id: string | number + id: string | number + content: string +} + +type TGetFontSubExtra = { + responseType?: string +} + +export const getFontSub = (params: TGetFontSubParam, extra: TGetFontSubExtra = {}) => fetch('design/font_sub', params, 'get', {}, extra) type TGetImageListParams = { page?: number @@ -74,16 +83,49 @@ export type TGetImageListResult = { url: string user_id: number id: string - thumb: string -} & IGetTempListData + thumb?: string +} & Partial // 图库列表 export const getImagesList = (params: TGetImageListParams) => fetch>('design/imgs', params, 'get') +type TMyPhotoParams = { + + page: number + pageSize?: number +} + +/** 获取我的资源管理返回 */ +export type TMyPhotoResult = { + created_time: string + height: number + id: number + url: string + user_id: number + width: number +} & IGetTempListData + // 我的上传列表 -export const getMyPhoto = (params: TGetImageListParams) => fetch>('design/user/image', params) -export const deleteMyPhoto = (params: Type.Object = {}) => fetch('design/user/image/del', params, 'post') -export const deleteMyWorks = (params: Type.Object = {}) => fetch('design/poster/del', params, 'post') +export const getMyPhoto = (params: TMyPhotoParams) => fetch>('design/user/image', params) + +type TDeleteMyPhotoParams = { + id: string | number + key: string +} + +export const deleteMyPhoto = (params: TDeleteMyPhotoParams) => fetch('design/user/image/del', params, 'post') + +type TDeleteMyWorksParams = { + id: string | number +} + +export const deleteMyWorks = (params: TDeleteMyWorksParams) => fetch('design/poster/del', params, 'post') + +type TAddMyPhotoParam = { + width: number + height: number + url: string +} // 添加图片 -export const addMyPhoto = (params: Type.Object = {}) => fetch('design/user/add_image', params) +export const addMyPhoto = (params: TAddMyPhotoParam) => fetch('design/user/add_image', params) diff --git a/src/components/modules/panel/wrap/UserWrap.vue b/src/components/modules/panel/wrap/UserWrap.vue index 147dcc2..196d815 100644 --- a/src/components/modules/panel/wrap/UserWrap.vue +++ b/src/components/modules/panel/wrap/UserWrap.vue @@ -45,7 +45,7 @@ import api from '@/api' import wImage from '../../widgets/wImage/wImage.vue' import setImageData, { TItem2DataParam } from '@/common/methods/DesignFeatures/setImage' import useConfirm from '@/common/methods/confirm' -import { TGetImageListResult } from '@/api/material' +import { TGetImageListResult, TMyPhotoResult } from '@/api/material' import photoList from './components/photoList.vue' import imgWaterFall from './components/imgWaterFall.vue' import { TUploadDoneData } from '@/components/common/Uploader/index.vue' diff --git a/src/components/modules/settings/EffectSelect/TextWrap.vue b/src/components/modules/settings/EffectSelect/TextWrap.vue index 89ee73f..fbbb136 100644 --- a/src/components/modules/settings/EffectSelect/TextWrap.vue +++ b/src/components/modules/settings/EffectSelect/TextWrap.vue @@ -27,10 +27,10 @@ :key="efi + 'effect'" :style="{ color: ef.filling && ef.filling.enable && ef.filling.type === 0 ? ef.filling.color : 'transparent', - webkitTextStroke: ef.stroke && ef.stroke.enable ? `${ef.stroke.width / coefficient}px ${ef.stroke.color}` : '', + WebkitTextStroke: ef.stroke && ef.stroke.enable ? `${ef.stroke.width / coefficient}px ${ef.stroke.color}` : '', textShadow: ef.shadow && ef.shadow.enable ? `${ef.shadow.offsetX / coefficient}px ${ef.shadow.offsetY / coefficient}px ${ef.shadow.blur / coefficient}px ${ef.shadow.color}` : undefined, backgroundImage: ef.filling && ef.filling.enable ? (ef.filling.type === 0 ? undefined : getGradientOrImg(ef)) : undefined, - webkitBackgroundClip: ef.filling && ef.filling.enable ? (ef.filling.type === 0 ? undefined : 'text') : undefined, + WebkitBackgroundClip: ef.filling && ef.filling.enable ? (ef.filling.type === 0 ? undefined : 'text') : undefined, }" class="demo" > @@ -117,7 +117,9 @@ import numberInput from '../numberInput.vue' import draggable from 'vuedraggable' import api from '@/api' import getGradientOrImg from '../../widgets/wText/getGradientOrImg' -let froze_font_effect_list: Record[] = [] +import { TGetCompListResult } from '@/api/home' + +let froze_font_effect_list: TGetCompListResult[] = [] type TProps = { modelValue?: Record @@ -132,7 +134,7 @@ type TEmits = { type TState = { strength: number visiable: boolean - list: Record[] + list: TGetCompListResult[] layers: Record[] draging: boolean unfold: boolean diff --git a/src/utils/widgets/loadFontRule.ts b/src/utils/widgets/loadFontRule.ts index a35d0bb..9771f1d 100644 --- a/src/utils/widgets/loadFontRule.ts +++ b/src/utils/widgets/loadFontRule.ts @@ -28,7 +28,7 @@ export const font2style = async (fontContent: any, fontData: any = []) => { } try { const result = await api.material.getFontSub(params, extra) - fontContent[key] = font.oid ? result : await blob2Base64(result) + fontContent[key] = font.oid ? result : await blob2Base64(result as Blob) } catch (e) { console.log('字体获取失败', e) }