refactor: 统一表单 schema 挂载与 resetForm 处理

pull/350/head
YunaiV 2026-05-29 11:40:28 +08:00
parent 2d1325f11a
commit d3233c4bb4
111 changed files with 172 additions and 292 deletions

View File

@ -100,7 +100,6 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await formApi.resetForm();
return;
}
//

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { IotProductApi } from '#/api/iot/product/product';
@ -14,7 +14,7 @@ import { getSimpleProductCategoryList } from '#/api/iot/product/category';
/** 基础表单字段(不含图标、图片、描述) */
export function useBasicFormSchema(
formApi?: any,
formApi?: VbenFormApi,
generateProductKey?: () => string,
): VbenFormSchema[] {
return [

View File

@ -60,9 +60,6 @@ const [AdvancedForm, advancedFormApi] = useVbenForm({
showDefaultActions: false,
});
/** 基础表单需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useBasicFormSchema(formApi, generateProductKey) });
/** 获取高级表单的值(如果表单未挂载,则从 formData 中获取) */
async function getAdvancedFormValues() {
if (advancedFormApi.isMounted) {
@ -106,6 +103,9 @@ const [Modal, modalApi] = useVbenModal({
activeKey.value = [];
return;
}
formApi.setState({
schema: useBasicFormSchema(formApi, generateProductKey),
});
//
const data = modalApi.getData<IotProductApi.Product>();
if (!data || !data.id) {

View File

@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
formData.value = undefined;
await formApi.resetForm();
sourceConfigRef.value?.setData([]);
return;
}

View File

@ -134,7 +134,6 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
},
});
</script>

View File

@ -7,7 +7,7 @@ import type {
SpuProperty,
} from '#/views/mall/product/spu/components';
import { computed, nextTick, ref } from 'vue';
import { computed, ref } from 'vue';
import { useVbenForm, useVbenModal } from '@vben/common-ui';
import { PromotionDiscountTypeEnum } from '@vben/constants';
@ -213,13 +213,11 @@ function handleSkuDiscountPercentChange(row: SkuExtension) {
}
/** 重置表单 */
async function resetForm() {
function resetForm() {
spuList.value = [];
spuPropertyList.value = [];
spuIdList.value = [];
formData.value = {};
await nextTick();
await formApi.resetForm();
}
// ================= =================
@ -264,7 +262,7 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await resetForm();
resetForm();
return;
}
//

View File

@ -50,7 +50,6 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
const data = modalApi.getData<{ day: string }>();
if (!data?.day) {
return;

View File

@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 确认排班计划 */
async function handleConfirmPlan() {
const { valid } = await formApi.validate();
@ -106,7 +103,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'shift';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -45,9 +45,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'member';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -81,7 +78,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'machinery';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -103,7 +103,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -47,9 +47,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 查看设备条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -91,7 +88,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
subTabsName.value = 'check';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesDvMachineryTypeApi.MachineryType>();
if (!data || !data.id) {

View File

@ -110,7 +110,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -57,9 +57,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 提交维修工单 */
async function handleSubmit() {
const { valid } = await formApi.validate();
@ -164,7 +161,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -69,7 +66,7 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -76,7 +76,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<MesMdAutoCodeRuleApi.AutoCodeRule>();
if (!data?.id) {

View File

@ -86,7 +86,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -75,7 +72,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'productSalesLine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看物料条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -103,7 +100,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'bom';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -65,7 +62,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesMdItemTypeApi.ItemType>();
if (!data || !data.id) {

View File

@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<MesMdUnitMeasureApi.UnitMeasure>();
if (!data || !data.id) {

View File

@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'itemReceiptLine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看工作站条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -102,7 +99,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'machine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看车间条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -92,7 +89,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 处置:保存(保持 ACTIVE 状态) */
async function handleSave() {
modalApi.lock();
@ -136,7 +133,6 @@ const [Modal, modalApi] = useVbenModal({
formType.value = data.formType;
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
modalApi.setState({ showConfirmButton: formType.value === 'create' });
await formApi.resetForm();
if (formType.value === 'create') {
//
await formApi.setValues({ userId: userStore.userInfo?.id });

View File

@ -82,9 +82,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-3',
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 提交前对齐数量:根据 checkFlag 决定 uncheck/合格/不良归零策略 */
function alignQuantity(data: MesProFeedbackApi.Feedback) {
if (data.checkFlag) {
@ -239,7 +236,6 @@ const [Modal, modalApi] = useVbenModal({
showConfirmButton:
formType.value !== 'detail' && formType.value !== 'approve',
});
await formApi.resetForm();
if (!data?.id) {
//
const code = await generateAutoCode(

View File

@ -65,7 +65,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-3',
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -79,7 +76,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -78,7 +78,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-2',
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTab.value = 'process';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -81,7 +81,6 @@ const [Modal, modalApi] = useVbenModal({
// schema
const schema = await loadSchema();
formApi.setState({ schema });
await formApi.resetForm();
} finally {
modalApi.unlock();
}

View File

@ -83,7 +83,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -34,9 +34,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -61,7 +58,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesQcDefectApi.Defect>();
if (!data || !data.id) {

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码、跨字段联动),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesQcIndicatorApi.Indicator>();
if (!data || !data.id) {

View File

@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (formType.value === 'detail') {
@ -80,7 +77,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'indicator';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<
MesQcTemplateIndicatorApi.TemplateIndicator & { templateId: number }

View File

@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<
MesQcTemplateItemApi.TemplateItem & { templateId: number }

View File

@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看工具条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -90,7 +87,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -43,9 +43,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -74,7 +71,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -141,6 +141,8 @@ export const MesAutoCodeRuleCode = {
PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE',
QC_DEFECT_CODE: 'QC_DEFECT_CODE',
QC_INDICATOR_CODE: 'QC_INDICATOR_CODE',
QC_INDICATOR_RESULT_CODE: 'QC_INDICATOR_RESULT_CODE',
QC_IQC_CODE: 'QC_IQC_CODE',
QC_TEMPLATE_CODE: 'QC_TEMPLATE_CODE',
TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE',
TM_TOOL_CODE: 'TM_TOOL_CODE',
@ -215,6 +217,47 @@ export const MesQcResultValueType = {
FILE: 5,
} as const;
/** MES 业务类型常量 */
export const MesBizTypeEnum = {
// WM 仓库模块 [100, 200)
WM_ARRIVAL_NOTICE: 100, // 到货通知单
WM_RETURN_ISSUE: 116, // 生产退料
WM_PRODUCT_SALES: 118, // 销售出库
WM_RETURN_SALES: 119, // 销售退货入库
WM_OUTSOURCE_RECPT: 121, // 外协入库
// PRO 生产模块 [300, 400)
PRO_FEEDBACK: 304, // 生产报工
} as const;
/** MES 质检来源单据类型枚举 */
export const MesQcSourceDocTypeEnum = {
// IQC
ARRIVAL_NOTICE: MesBizTypeEnum.WM_ARRIVAL_NOTICE,
OUTSOURCE_RECPT: MesBizTypeEnum.WM_OUTSOURCE_RECPT,
// IPQC
PRO_FEEDBACK: MesBizTypeEnum.PRO_FEEDBACK,
// OQC
PRODUCT_SALES: MesBizTypeEnum.WM_PRODUCT_SALES,
// RQC
RETURN_ISSUE: MesBizTypeEnum.WM_RETURN_ISSUE,
RETURN_SALES: MesBizTypeEnum.WM_RETURN_SALES,
} as const;
/** MES 质检类型枚举 */
export const MesQcTypeEnum = {
IQC: 1, // 来料检验
IPQC: 2, // 过程检验
OQC: 3, // 出货检验
RQC: 4, // 退货检验
} as const;
/** MES 质检单状态枚举 */
export const MesQcStatusEnum = {
DRAFT: MesOrderStatusConstants.DRAFT,
FINISHED: MesOrderStatusConstants.FINISHED,
} as const;
/** MES 编码规则分段类型枚举 */
export const MesAutoCodePartTypeEnum = {
INPUT: 1,

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h } from 'vue';
@ -9,7 +9,7 @@ import { z } from '#/adapter/form';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改商品品牌的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
component: 'Input',

View File

@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -66,7 +63,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsItemBrandApi.ItemBrand>();
if (!data || !data.id) {
return;

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { WmsItemCategoryApi } from '#/api/wms/md/item/category';
@ -15,7 +15,7 @@ import { getItemCategorySimpleList } from '#/api/wms/md/item/category';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改商品分类的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
fieldName: 'id',

View File

@ -41,9 +41,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -70,7 +67,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsItemCategoryApi.ItemCategory>();
if (!data || !data.id) {
formData.value = data;

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h, markRaw } from 'vue';
@ -13,7 +13,7 @@ import { WmsItemBrandSelect } from './brand/components';
import { WmsItemCategorySelect } from './category/components';
/** 新增/修改商品的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
component: 'Input',

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
async function resetSkuForm(item?: WmsItemApi.Item) {
await nextTick();
await skuFormRef.value?.setRows(item?.skus);
@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
await resetSkuForm();
//
const data = modalApi.getData<WmsItemApi.Item>();

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h } from 'vue';
@ -12,7 +12,7 @@ import { z } from '#/adapter/form';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改往来企业的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
component: 'Input',

View File

@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsMerchantApi.Merchant>();
if (!data || !data.id) {
return;

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h } from 'vue';
@ -9,7 +9,7 @@ import { z } from '#/adapter/form';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改仓库的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
component: 'Input',

View File

@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -69,6 +66,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsWarehouseApi.Warehouse>();
if (!data || !data.id) {
await formApi.setValues({ sort: 0 });

View File

@ -535,7 +535,6 @@ const [Modal, modalApi] = useVbenModal({
setDetails([]);
return;
}
await formApi.resetForm();
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
if (data?.id) {

View File

@ -373,7 +373,6 @@ const [Modal, modalApi] = useVbenModal({
setDetails([]);
return;
}
await formApi.resetForm();
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
if (data?.id) {

View File

@ -317,7 +317,6 @@ const [Modal, modalApi] = useVbenModal({
setDetails([]);
return;
}
await formApi.resetForm();
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
if (data?.id) {

View File

@ -360,7 +360,6 @@ const [Modal, modalApi] = useVbenModal({
return;
}
initializing.value = true;
await formApi.resetForm();
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
if (data?.id) {

View File

@ -100,7 +100,6 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await formApi.resetForm();
return;
}
//

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { IotProductApi } from '#/api/iot/product/product';
@ -14,7 +14,7 @@ import { getSimpleProductCategoryList } from '#/api/iot/product/category';
/** 基础表单字段(不含图标、图片、描述) */
export function useBasicFormSchema(
formApi?: any,
formApi?: VbenFormApi,
generateProductKey?: () => string,
): VbenFormSchema[] {
return [

View File

@ -60,9 +60,6 @@ const [AdvancedForm, advancedFormApi] = useVbenForm({
showDefaultActions: false,
});
/** 基础表单需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useBasicFormSchema(formApi, generateProductKey) });
/** 获取高级表单的值(如果表单未挂载,则从 formData 中获取) */
async function getAdvancedFormValues() {
if (advancedFormApi.isMounted) {
@ -106,6 +103,9 @@ const [Modal, modalApi] = useVbenModal({
activeKey.value = [];
return;
}
formApi.setState({
schema: useBasicFormSchema(formApi, generateProductKey),
});
//
const data = modalApi.getData<IotProductApi.Product>();
if (!data || !data.id) {

View File

@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
formData.value = undefined;
await formApi.resetForm();
sourceConfigRef.value?.setData([]);
return;
}

View File

@ -134,7 +134,6 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
},
});
</script>

View File

@ -7,7 +7,7 @@ import type {
SpuProperty,
} from '#/views/mall/product/spu/components';
import { computed, nextTick, ref } from 'vue';
import { computed, ref } from 'vue';
import { useVbenForm, useVbenModal } from '@vben/common-ui';
import { PromotionDiscountTypeEnum } from '@vben/constants';
@ -213,13 +213,11 @@ function handleSkuDiscountPercentChange(row: SkuExtension) {
}
/** 重置表单 */
async function resetForm() {
function resetForm() {
spuList.value = [];
spuPropertyList.value = [];
spuIdList.value = [];
formData.value = {};
await nextTick();
await formApi.resetForm();
}
// ================= =================
@ -264,7 +262,7 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await resetForm();
resetForm();
return;
}
//

View File

@ -50,7 +50,6 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
const data = modalApi.getData<{ day: string }>();
if (!data?.day) {
return;

View File

@ -50,9 +50,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 确认排班计划 */
async function handleConfirmPlan() {
const { valid } = await formApi.validate();
@ -107,7 +104,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'shift';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -45,9 +45,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'member';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -81,7 +78,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'machinery';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -103,7 +103,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -47,9 +47,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 查看设备条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -91,7 +88,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
subTabsName.value = 'check';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesDvMachineryTypeApi.MachineryType>();
if (!data || !data.id) {

View File

@ -110,7 +110,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -57,9 +57,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 提交维修工单 */
async function handleSubmit() {
const { valid } = await formApi.validate();
@ -164,7 +161,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -69,7 +66,7 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -76,7 +76,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<MesMdAutoCodeRuleApi.AutoCodeRule>();
if (!data?.id) {

View File

@ -86,7 +86,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -75,7 +72,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'productSalesLine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看物料条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -103,7 +100,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'bom';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -65,7 +62,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesMdItemTypeApi.ItemType>();
if (!data || !data.id) {

View File

@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<MesMdUnitMeasureApi.UnitMeasure>();
if (!data || !data.id) {

View File

@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'itemReceiptLine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看工作站条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -102,7 +99,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'machine';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看车间条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -92,7 +89,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 处置:保存(保持 ACTIVE 状态) */
async function handleSave() {
modalApi.lock();
@ -136,7 +133,6 @@ const [Modal, modalApi] = useVbenModal({
formType.value = data.formType;
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
modalApi.setState({ showConfirmButton: formType.value === 'create' });
await formApi.resetForm();
if (formType.value === 'create') {
//
await formApi.setValues({ userId: userStore.userInfo?.id });

View File

@ -88,9 +88,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-3',
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
/** 提交前对齐数量:根据 checkFlag 决定 uncheck/合格/不良归零策略 */
function alignQuantity(data: MesProFeedbackApi.Feedback) {
if (data.checkFlag) {
@ -247,7 +244,6 @@ const [Modal, modalApi] = useVbenModal({
showConfirmButton:
formType.value !== 'detail' && formType.value !== 'approve',
});
await formApi.resetForm();
if (!data?.id) {
//
const code = await generateAutoCode(

View File

@ -65,7 +65,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-3',
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -79,7 +76,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -78,7 +78,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({
wrapperClass: 'grid-cols-2',
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTab.value = 'process';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -81,7 +81,6 @@ const [Modal, modalApi] = useVbenModal({
// schema
const schema = await loadSchema();
formApi.setState({ schema });
await formApi.resetForm();
} finally {
modalApi.unlock();
}

View File

@ -83,7 +83,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<{
id?: number;

View File

@ -34,9 +34,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -61,7 +58,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesQcDefectApi.Defect>();
if (!data || !data.id) {

View File

@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码、跨字段联动),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<MesQcIndicatorApi.Indicator>();
if (!data || !data.id) {

View File

@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (formType.value === 'detail') {
@ -80,7 +77,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
subTabsName.value = 'indicator';
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();

View File

@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<
MesQcTemplateIndicatorApi.TemplateIndicator & { templateId: number }

View File

@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
//
const data = modalApi.getData<
MesQcTemplateItemApi.TemplateItem & { templateId: number }

View File

@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
/** 查看工具条码 */
function handleBarcode() {
if (!formData.value?.id) {
@ -90,7 +87,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -43,9 +43,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
if (isDetail.value) {
@ -74,7 +71,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
//
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;

View File

@ -141,6 +141,8 @@ export const MesAutoCodeRuleCode = {
PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE',
QC_DEFECT_CODE: 'QC_DEFECT_CODE',
QC_INDICATOR_CODE: 'QC_INDICATOR_CODE',
QC_INDICATOR_RESULT_CODE: 'QC_INDICATOR_RESULT_CODE',
QC_IQC_CODE: 'QC_IQC_CODE',
QC_TEMPLATE_CODE: 'QC_TEMPLATE_CODE',
TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE',
TM_TOOL_CODE: 'TM_TOOL_CODE',
@ -215,6 +217,47 @@ export const MesQcResultValueType = {
FILE: 5,
} as const;
/** MES 业务类型常量 */
export const MesBizTypeEnum = {
// WM 仓库模块 [100, 200)
WM_ARRIVAL_NOTICE: 100, // 到货通知单
WM_RETURN_ISSUE: 116, // 生产退料
WM_PRODUCT_SALES: 118, // 销售出库
WM_RETURN_SALES: 119, // 销售退货入库
WM_OUTSOURCE_RECPT: 121, // 外协入库
// PRO 生产模块 [300, 400)
PRO_FEEDBACK: 304, // 生产报工
} as const;
/** MES 质检来源单据类型枚举 */
export const MesQcSourceDocTypeEnum = {
// IQC
ARRIVAL_NOTICE: MesBizTypeEnum.WM_ARRIVAL_NOTICE,
OUTSOURCE_RECPT: MesBizTypeEnum.WM_OUTSOURCE_RECPT,
// IPQC
PRO_FEEDBACK: MesBizTypeEnum.PRO_FEEDBACK,
// OQC
PRODUCT_SALES: MesBizTypeEnum.WM_PRODUCT_SALES,
// RQC
RETURN_ISSUE: MesBizTypeEnum.WM_RETURN_ISSUE,
RETURN_SALES: MesBizTypeEnum.WM_RETURN_SALES,
} as const;
/** MES 质检类型枚举 */
export const MesQcTypeEnum = {
IQC: 1, // 来料检验
IPQC: 2, // 过程检验
OQC: 3, // 出货检验
RQC: 4, // 退货检验
} as const;
/** MES 质检单状态枚举 */
export const MesQcStatusEnum = {
DRAFT: MesOrderStatusConstants.DRAFT,
FINISHED: MesOrderStatusConstants.FINISHED,
} as const;
/** MES 编码规则分段类型枚举 */
export const MesAutoCodePartTypeEnum = {
INPUT: 1,

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h } from 'vue';
@ -9,7 +9,7 @@ import { z } from '#/adapter/form';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改商品品牌的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
component: 'Input',

View File

@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -66,7 +63,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsItemBrandApi.ItemBrand>();
if (!data || !data.id) {
return;

View File

@ -1,4 +1,4 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { WmsItemCategoryApi } from '#/api/wms/md/item/category';
@ -15,7 +15,7 @@ import { getItemCategorySimpleList } from '#/api/wms/md/item/category';
import { generateWmsCode } from '#/views/wms/utils/constants';
/** 新增/修改商品分类的表单 */
export function useFormSchema(formApi?: any): VbenFormSchema[] {
export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
return [
{
fieldName: 'id',

View File

@ -41,9 +41,6 @@ const [Form, formApi] = useVbenForm({
showDefaultActions: false,
});
/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */
formApi.setState({ schema: useFormSchema(formApi) });
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
const { valid } = await formApi.validate();
@ -70,7 +67,7 @@ const [Modal, modalApi] = useVbenModal({
formData.value = undefined;
return;
}
await formApi.resetForm();
formApi.setState({ schema: useFormSchema(formApi) });
const data = modalApi.getData<WmsItemCategoryApi.ItemCategory>();
if (!data || !data.id) {
formData.value = data;

Some files were not shown because too many files have changed in this diff Show More