diff --git a/src/api/instance/axios.d.ts b/src/api/instance/axios.d.ts index de21309..7c9b152 100644 --- a/src/api/instance/axios.d.ts +++ b/src/api/instance/axios.d.ts @@ -1,7 +1,7 @@ -import { IToastOptions } from "@/components"; -import "axios"; +import { IToastOptions } from '@/components'; +import 'axios'; -declare module "axios" { +declare module 'axios' { interface AxiosRequestConfig { /** * 请求弹窗配置 @@ -26,5 +26,9 @@ declare module "axios" { * 请求异常提示 */ reqErrorTip?: boolean | string; + /** + * TODO + */ + tip?: boolean | string | { requestErrorTip?: string; responseErrorTip?: string }; } } diff --git a/src/api/interceptors/exception.ts b/src/api/interceptors/exception.ts index 20e4e61..f3e8f20 100644 --- a/src/api/interceptors/exception.ts +++ b/src/api/interceptors/exception.ts @@ -33,7 +33,6 @@ export function addExceptionInterceptor(axios: AxiosInstance, exipreHandler?: (. return res; }, error => { - console.log('res error', error); if (error.response) { const code = error.response.data?.code; if (expiredCodes.includes(code)) { @@ -48,11 +47,14 @@ export function addExceptionInterceptor(axios: AxiosInstance, exipreHandler?: (. } return Promise.reject(error); } - const resMsg = error.response?.data?.message; - let message: string | null = resMsg ?? resMessageTip; + let message: string | null = resMessageTip; if (error.config?.method === 'get') { message = resGetMessage; } + const resMsg = error.response?.data?.message; + if (resMsg) { + message = resMsg; + } if (has(error.config, 'resErrorTip')) { const tip = error.config.resErrorTip; if (tip) { diff --git a/src/components/AnForm/components/FormModal.tsx b/src/components/AnForm/components/FormModal.tsx index 3ca862f..f5395b4 100644 --- a/src/components/AnForm/components/FormModal.tsx +++ b/src/components/AnForm/components/FormModal.tsx @@ -4,6 +4,7 @@ import { InjectionKey, PropType, Ref } from 'vue'; import { getModel, setModel } from '../utils/useFormModel'; import { AnForm, AnFormInstance, AnFormSubmit } from './Form'; import { AnFormItemProps } from './FormItem'; +import { cloneDeep } from 'lodash-es'; export interface AnFormModalContext { visible: Ref; @@ -113,6 +114,7 @@ export const AnFormModal = defineComponent({ emits: ['update:model', 'submited'], setup(props, { emit }) { const model = useVModel(props, 'model', emit); + const originModel = cloneDeep(model.value); const anFormRef = ref(null); const visible = ref(false); const loading = ref(false); @@ -175,7 +177,8 @@ export const AnFormModal = defineComponent({ const open = async (data: Recordable = {}) => { visible.value = true; await nextTick(); - anFormRef.value && setModel(model.value, data); + model.value = cloneDeep(originModel) + setModel(model.value, data); }; const close = () => { diff --git a/src/components/AnForm/hooks/useFormItems.tsx b/src/components/AnForm/hooks/useFormItems.tsx index 8327edd..99d92ba 100644 --- a/src/components/AnForm/hooks/useFormItems.tsx +++ b/src/components/AnForm/hooks/useFormItems.tsx @@ -73,7 +73,7 @@ export function useFormItems(items: FormItem[], model: Recordable) { (target.setterProps as Recordable).placholder = item.placeholder; } - if (has(item, 'value')) { + if (!has(model, item.field)) { model[item.field] = item.value; } diff --git a/src/components/AnForm/hooks/useFormModal.tsx b/src/components/AnForm/hooks/useFormModal.tsx index 9104915..0794d24 100644 --- a/src/components/AnForm/hooks/useFormModal.tsx +++ b/src/components/AnForm/hooks/useFormModal.tsx @@ -15,6 +15,10 @@ export type FormModalUseOptions = Partial> & { width?: number; /** * modal宽度 + * @example + * ```ts + * 1080 + * ``` */ modalWidth?: number; /** diff --git a/src/components/AnForm/utils/useFormModel.tsx b/src/components/AnForm/utils/useFormModel.tsx index 2831956..59779e5 100644 --- a/src/components/AnForm/utils/useFormModel.tsx +++ b/src/components/AnForm/utils/useFormModel.tsx @@ -32,6 +32,7 @@ export function setModel(model: Recordable, data: Recordable) { } model[key] = data[key]; } + console.log(model, data); return model; } diff --git a/src/components/AnTable/hooks/useModiyForm.tsx b/src/components/AnTable/hooks/useModiyForm.tsx index a0e5cae..8add55c 100644 --- a/src/components/AnTable/hooks/useModiyForm.tsx +++ b/src/components/AnTable/hooks/useModiyForm.tsx @@ -1,5 +1,5 @@ import { FormItem, FormModalUseOptions, useFormModalProps, AnFormModalProps } from '@/components/AnForm'; -import { merge } from 'lodash-es'; +import { cloneDeep, merge } from 'lodash-es'; import { ExtendFormItem } from './useSearchForm'; import { TableUseOptions } from './useTable'; @@ -23,14 +23,14 @@ export type ModifyForm = Omit & { items?: ExtendFormItem[]; }; -export function useModifyForm(options: TableUseOptions): AnFormModalProps | undefined { +export function useModifyForm(options: TableUseOptions, createModel: Recordable): AnFormModalProps | undefined { const { create, modify } = options; if (!modify) { return undefined; } - let result: FormModalUseOptions = { items: [] }; + let result: FormModalUseOptions = { items: [], model: cloneDeep(createModel) }; if (modify.extend && create) { result = merge({}, create); } diff --git a/src/components/AnTable/hooks/useTable.tsx b/src/components/AnTable/hooks/useTable.tsx index 313f2a4..5a0c5b0 100644 --- a/src/components/AnTable/hooks/useTable.tsx +++ b/src/components/AnTable/hooks/useTable.tsx @@ -80,7 +80,7 @@ export function useTableProps(options: TableUseOptions): AnTableProps { const paging = { hide: false, showTotal: true, showPageSize: true, ...(options.paging ?? {}) }; const search = options.search && useSearchForm(options.search); const create = options.create && useFormModalProps(options.create); - const modify = options.modify && useModifyForm(options); + const modify = options.modify && useModifyForm(options, create?.model ?? {} ); return { tableProps, diff --git a/src/pages/system/user/index.vue b/src/pages/system/user/index.vue index b61138c..d17244b 100644 --- a/src/pages/system/user/index.vue +++ b/src/pages/system/user/index.vue @@ -121,12 +121,12 @@ const { component: UserTable } = useTable({ required: true, placeholder: '英文字母+数组组成,5~10位', }, - { - field: 'password', - label: '登陆密码', - setter: 'input', - placeholder: '包含大小写,长度6 ~ 12位', - }, + // { + // field: 'password', + // label: '登陆密码', + // setter: 'input', + // placeholder: '包含大小写,长度6 ~ 12位', + // }, { field: 'nickname', label: '用户昵称', diff --git a/src/pages/user/index.vue b/src/pages/user/index.vue index 7eaa1f6..1101f9c 100644 --- a/src/pages/user/index.vue +++ b/src/pages/user/index.vue @@ -86,15 +86,15 @@ - + - + @@ -102,8 +102,8 @@ @@ -111,8 +111,8 @@ @@ -170,10 +170,10 @@ const mail = reactive({ enable: true, smtpHost: '10.10.10.30', smtpPort: 25, - sender: 'no-reply@juetan.cn', - authNeed: true, - authUser: '952222@163.com', - authPass: 'FenZyealdsa@s92.', + smtpFrom: 'no-reply@juetan.cn', + smtpAuth: true, + smtpUser: '952222@163.com', + smtpPass: 'FenZyealdsa@s92.', }); const user = reactive({