@gct-paas/excel 0.1.40-beta.6 → 0.1.40-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BaseComponent-Dfx-Xuv4.js → BaseComponent-CELRDc47.js} +2 -2
- package/dist/{VueVideoPlayer-DHqhqgGs.js → VueVideoPlayer-CQ3WMohj.js} +2 -2
- package/dist/{align-editor-hvllGvX8.js → align-editor-BjxHuSxl.js} +1 -1
- package/dist/{barcode-design-CzlfYJ3s.js → barcode-design-BDHtEF3j.js} +2 -2
- package/dist/base/index.es.js +265 -109
- package/dist/{diagonal-design-DCVidBZD.js → diagonal-design-DLxRO_uM.js} +2 -2
- package/dist/{dynamic-table-action-Dn_iw4tV.js → dynamic-table-action-C_1EGXMe.js} +153 -148
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-Cz-fpECL.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-B7k5famp.js} +544 -495
- package/dist/{edit.utils-CXmmCnxE-BUEfsAZ3.js → edit.utils-CXmmCnxE-C1w2rhHM.js} +1 -1
- package/dist/excel.css +16 -16
- package/dist/{exceljs.min-9FX7NALn.js → exceljs.min-rIUD8u2M.js} +2 -2
- package/dist/{font-editor-ClqMOFPr.js → font-editor-DWmzS_0C.js} +3 -3
- package/dist/{image-design-Cx1YIea4.js → image-design-Cjob0qMO.js} +2 -2
- package/dist/{index-BKnroXXX.js → index--kolAY9o.js} +3 -3
- package/dist/{index-mCrtpdq2.js → index-2X2QGo0A.js} +255 -85
- package/dist/{index-Cj_t_73x.js → index-B9a9T8if.js} +1 -1
- package/dist/{index-DCv60fUG.js → index-BHxDpc-C.js} +2 -2
- package/dist/{index-a6chYhIK.js → index-BLpDtBBv.js} +2 -2
- package/dist/{index-D7ZzvopL.js → index-BeYN1fxt.js} +2 -2
- package/dist/{index-D4zDlgqU.js → index-BgsXETEd.js} +1 -1
- package/dist/{index-lf11EIvP.js → index-BlLeFC1A.js} +2 -2
- package/dist/{index-DkXBzlUL.js → index-Bn5H-iFV.js} +2 -2
- package/dist/{index-Dp2q7ZPo.js → index-Bw67kX4Y.js} +2 -2
- package/dist/{index-BkoKoZbl.js → index-ByeVrxVl.js} +1 -1
- package/dist/{index-BjSWHyj1.js → index-BzBMhjxB.js} +1 -1
- package/dist/{index-BRc6frrP.js → index-C-F1u_o7.js} +2 -2
- package/dist/{index-BLrixMsM.js → index-CAekmaIN.js} +2 -2
- package/dist/{index-BgzCdSQH.js → index-CHS101Sz.js} +3 -3
- package/dist/{index-BWHnHAjs.js → index-CIkhaEj4.js} +1 -1
- package/dist/{index-NJZaG-sl.js → index-CQ0BwWRP.js} +2 -2
- package/dist/{index-CVG3Z6rp.js → index-CQkWk_7M.js} +3 -3
- package/dist/{index-CjCFTTI3.js → index-CfyXGhk3.js} +1 -1
- package/dist/{index-BM1sPB29.js → index-Cn2_Yd7q.js} +1 -1
- package/dist/{index-DYyVGkv3.js → index-DJj0H4QE.js} +2 -2
- package/dist/{index-Cl_94fZQ.js → index-DMOi4nAC.js} +2 -2
- package/dist/{index-B9xwdsWY.js → index-DQNLZ671.js} +4 -4
- package/dist/{index-CG5LAGQp.js → index-DdxuhIJY.js} +2 -2
- package/dist/{index-NqYSNDX9.js → index-DiNxihKr.js} +2 -2
- package/dist/{index-Dru8lW-_.js → index-DqomTxsG.js} +1 -1
- package/dist/{index-CcB9d0A-.js → index-DxW-5l6p.js} +2 -2
- package/dist/{index-B3KkYxiX.js → index-DxaR4DCk.js} +2 -2
- package/dist/{index-CWjwF2wn.js → index-LOpDQbHn.js} +2 -2
- package/dist/{index-COmm7d4j.js → index-RV5ozdPP.js} +1 -1
- package/dist/{index-q_pMlfx9.js → index-Refavqkv.js} +3 -3
- package/dist/{index-vEKEZcff.js → index-U90xa0_k.js} +2 -2
- package/dist/{index-B4c_0M_d.js → index-nGGsFW_9.js} +2 -2
- package/dist/{index-BdYI71iy.js → index-poil0x4K.js} +2 -2
- package/dist/{index-CyPwg8fV.js → index-w6agN1-G.js} +1 -1
- package/dist/index.es.js +2 -2
- package/dist/{mb-render-DjSdDuaL.js → mb-render-wAlqnYW9.js} +1 -1
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-QrM7rL99.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-BLEHWjXh.js} +1 -1
- package/dist/{pagination-design-DJEw5vlL.js → pagination-design-CuM2_cOO.js} +2 -2
- package/dist/paper-widget-design-OVR0zocz.js +4 -0
- package/dist/{print-runtime-instance-BtxZfq51.js → print-runtime-instance-xGsbD9K-.js} +1 -1
- package/dist/{print-snapshot-renderer-0D5MUsR6.js → print-snapshot-renderer-DYUY1xCI.js} +3 -3
- package/dist/{qrcode-design-9jPH-S8z.js → qrcode-design-CO631M71.js} +1 -1
- package/dist/{revo-grid.entry-BhCFcCVS.js → revo-grid.entry-B7SWMhl1.js} +1 -1
- package/dist/{revogr-attribution_7.entry-icpuI3V8.js → revogr-attribution_7.entry-BkqynH6l.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-Dm2_h2RL.js → revogr-clipboard_3.entry-DAHR-Vx9.js} +2 -2
- package/dist/{revogr-data_4.entry-DlVEyI7J.js → revogr-data_4.entry-CVh6lcCy.js} +2 -2
- package/dist/{revogr-filter-panel.entry-MJr7PMnd.js → revogr-filter-panel.entry-BBhV4Xqa.js} +1 -1
- package/dist/seal-design-BnXd0buM.js +4 -0
- package/dist/{serialnumber-design-BsfJH6Kp.js → serialnumber-design-DxGYVdk3.js} +1 -1
- package/dist/shared/index.es.js +9 -9
- package/dist/{single-field-drop-DXjppxDh.js → single-field-drop-DpHqYP0Z.js} +2 -2
- package/dist/{size-editor-DzQdRb-7.js → size-editor-D0jQ3Lrf.js} +1 -1
- package/dist/src/domain/document-business/business/product-release/profile.d.ts +2 -0
- package/dist/src/domain/document-business/business/product-release/service.d.ts +2 -0
- package/dist/src/domain/document-business/index.d.ts +2 -0
- package/dist/src/domain/document-business/registry.d.ts +2 -0
- package/dist/src/domain/document-business/runtime/field-query-runtime.d.ts +4 -0
- package/dist/src/domain/document-business/types.d.ts +24 -0
- package/dist/src/domain/field/number/product-release-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/query-filter.d.ts +15 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +13 -11
- package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +8 -0
- package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +3 -3
- package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
- package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
- package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +1 -0
- package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +3 -0
- package/dist/src/nocode-base/src/interface/ref-loader.d.ts +12 -1
- package/dist/src/nocode-base/src/types/common/base.d.ts +2 -0
- package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
- package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
- package/dist/src/shared/enum/field-type.d.ts +7 -0
- package/dist/src/shared/utils/withRequestCache.d.ts +27 -0
- package/dist/{sub-table-factory-Ddx70uYs.js → sub-table-factory-dhsoO5eF.js} +194 -85
- package/dist/{text-design-DmLrMqdk.js → text-design-CCJVszh9.js} +2 -2
- package/dist/{throttle-Cpk1LoGk-DLVGpnFw.js → throttle-Cpk1LoGk-D7Z-44El.js} +1 -1
- package/dist/{timediff-design-CYqz1SKQ.js → timediff-design-DE0Lb5-J.js} +1 -1
- package/dist/{trace-like-wrapper-CVl0Vm8r.js → trace-like-wrapper-u1qMVyxo.js} +2 -2
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-B0aWEk5D.js → value-editor.vue_vue_type_style_index_0_lang-BDK70sFY.js} +2 -2
- package/dist/web-render/index.es.js +3 -3
- package/dist/{widget-barcode-DwYihxgd.js → widget-barcode-BiqBkpJf.js} +4 -4
- package/dist/{widget-diagonal-DWdxDYVl.js → widget-diagonal-DEPOR_xL.js} +3 -3
- package/dist/{widget-image-D1SXIbMU.js → widget-image-CT0b6oE3.js} +5 -5
- package/dist/{widget-line-BNTbSFkx.js → widget-line-CencIyCA.js} +2 -2
- package/dist/{widget-pagination-25CKNe-i.js → widget-pagination-CLokA4N9.js} +5 -5
- package/dist/{widget-power-BSjWdgM3.js → widget-power-BPxteor_.js} +3 -3
- package/dist/{widget-qrcode-Kbe9Skrd.js → widget-qrcode-gYHAR233.js} +3 -3
- package/dist/{widget-rangelimit-TWPoG8DX.js → widget-rangelimit-BJKYDkcT.js} +3 -3
- package/dist/{widget-serialnumber-uNkQzBIT.js → widget-serialnumber-BCPB7hqo.js} +1 -1
- package/dist/{widget-text-DH4r60jo.js → widget-text-D_CGo-mQ.js} +5 -5
- package/dist/{widget-timediff-Bv8VCgrv.js → widget-timediff-cBekBImJ.js} +2 -2
- package/package.json +1 -1
- package/dist/paper-widget-design-C3rm4SzP.js +0 -4
- package/dist/seal-design-CtzWGxnH.js +0 -4
package/dist/shared/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { aJ, aF, u,
|
|
2
|
-
import { O, _, P, S, V as V2 } from "../online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-
|
|
1
|
+
import { aJ, aF, u, cM, I, aK, aL, cN, au, aw, F, Y, ag, H, aE, bp, b0, cO, av, T, cP, X, W, bq, aa, V } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-B7k5famp.js";
|
|
2
|
+
import { O, _, P, S, V as V2 } from "../online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-BLEHWjXh.js";
|
|
3
3
|
var Platform = /* @__PURE__ */ ((Platform2) => {
|
|
4
4
|
Platform2["WEB"] = "web";
|
|
5
5
|
Platform2["MOBILE"] = "mobile";
|
|
@@ -57,11 +57,11 @@ export {
|
|
|
57
57
|
ButtonStyle,
|
|
58
58
|
ButtonType,
|
|
59
59
|
ButtonType_vant,
|
|
60
|
-
|
|
60
|
+
cM as CardControlEnum,
|
|
61
61
|
I as CreateType,
|
|
62
62
|
aK as Dependency_ENUM,
|
|
63
63
|
aL as EntityModelCategoryEnum,
|
|
64
|
-
|
|
64
|
+
cN as EntityModelTypeEnum,
|
|
65
65
|
au as ExpressionModeEnum,
|
|
66
66
|
aw as ExpressionTabEnum,
|
|
67
67
|
F as FIELD_TYPE,
|
|
@@ -69,23 +69,23 @@ export {
|
|
|
69
69
|
ag as FieldIconMap,
|
|
70
70
|
H as FieldTypeToJs,
|
|
71
71
|
aE as FormDesignEnum,
|
|
72
|
-
|
|
72
|
+
bp as FormulaRuleFieldKeyEnum,
|
|
73
73
|
GctMqttTopsEnum,
|
|
74
74
|
O as OnlineFormModelModal,
|
|
75
75
|
_ as OnlineFormModelSelect,
|
|
76
76
|
Platform,
|
|
77
77
|
P as ProductTypeEnum,
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
b0 as ProductionIdentificationTypeEnum,
|
|
79
|
+
cO as RecordNoGenerateEnum,
|
|
80
80
|
av as ReturnTypeEnum,
|
|
81
81
|
S as SEARCH_SEVICE,
|
|
82
82
|
SignatureTypeEnum,
|
|
83
83
|
T as TRACE_FIELD_TYPES,
|
|
84
|
-
|
|
84
|
+
cP as TagTypeEnum,
|
|
85
85
|
X as UniqueConstraintType,
|
|
86
86
|
V2 as VersionSelect,
|
|
87
87
|
W as WAREHOUSE_FIELD_TYPES,
|
|
88
|
-
|
|
88
|
+
bq as formulaRuleFieldDict,
|
|
89
89
|
aa as normalizeFieldType,
|
|
90
90
|
V as onlineFormMasterModelTypeEnum
|
|
91
91
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock, unref, normalizeClass } from "vue";
|
|
2
2
|
import { a as useNamespace } from "./AntdIcon-DCIaV352.js";
|
|
3
|
-
import { m as useDrop, T as TransferType, h as useModelFields, o as getFieldIcon, S as SingleDrop } from "./index-
|
|
4
|
-
import { a9 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-
|
|
3
|
+
import { m as useDrop, T as TransferType, h as useModelFields, o as getFieldIcon, S as SingleDrop } from "./index-2X2QGo0A.js";
|
|
4
|
+
import { a9 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-B7k5famp.js";
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
__name: "single-field-drop",
|
|
7
7
|
props: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode } from "vue";
|
|
2
|
-
import { a9 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-
|
|
2
|
+
import { a9 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-B7k5famp.js";
|
|
3
3
|
const _hoisted_1 = { class: "row" };
|
|
4
4
|
const _hoisted_2 = { class: "row mt-6px" };
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FieldQueryFilter } from '../../field/query-filter';
|
|
2
|
+
import { BusinessFieldQueryContext } from '../types';
|
|
3
|
+
/** 按业务场景与字段匹配规则;规则失败时保留原查询,失败结果不进入缓存。 */
|
|
4
|
+
export declare function resolveBusinessFieldFilters(context: BusinessFieldQueryContext): Promise<FieldQueryFilter[]>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FIELD_TYPE } from '../../shared/enum';
|
|
2
|
+
import { FieldQueryFilter } from '../field/query-filter';
|
|
3
|
+
/** detail 业务类型、实例参数与当前查询字段;业务规则无需依赖组件。 */
|
|
4
|
+
export interface BusinessFieldQueryContext {
|
|
5
|
+
businessType?: string;
|
|
6
|
+
paramsConfig: Readonly<Record<string, unknown>>;
|
|
7
|
+
fieldType?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BusinessFieldQueryRule {
|
|
10
|
+
id: string;
|
|
11
|
+
match: {
|
|
12
|
+
fieldType: FIELD_TYPE;
|
|
13
|
+
};
|
|
14
|
+
/** 声明结果缓存的依赖参数,由 Runtime 统一执行缓存和请求去重。 */
|
|
15
|
+
cache?: {
|
|
16
|
+
key: (context: BusinessFieldQueryContext) => unknown;
|
|
17
|
+
ttlMs?: number;
|
|
18
|
+
};
|
|
19
|
+
resolveFilters: (context: BusinessFieldQueryContext) => Promise<readonly FieldQueryFilter[]>;
|
|
20
|
+
}
|
|
21
|
+
export interface DocumentBusinessProfile {
|
|
22
|
+
businessType: string;
|
|
23
|
+
fieldQueries: readonly BusinessFieldQueryRule[];
|
|
24
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** 下拉接口使用的查询结构,与渲染组件解耦。 */
|
|
2
|
+
export interface FieldQuery {
|
|
3
|
+
queryData?: Record<string, unknown>;
|
|
4
|
+
exp?: string;
|
|
5
|
+
}
|
|
6
|
+
/** 空 values 明确表示无候选,空条件列表表示不追加过滤。 */
|
|
7
|
+
export interface FieldQueryFilter {
|
|
8
|
+
field: string;
|
|
9
|
+
operator: 'in';
|
|
10
|
+
values: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
/** 空 in 可能被接口视为不筛选,使用占位值表达无候选。 */
|
|
13
|
+
export declare const EMPTY_QUERY_VALUE = "__excel_no_matching_query_value__";
|
|
14
|
+
/** 附加条件统一按 AND 合并;同字段 IN 条件取交集,保留已有搜索表达式。 */
|
|
15
|
+
export declare function mergeQueryFilters(query: FieldQuery, filters: readonly FieldQueryFilter[]): FieldQuery;
|
package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export declare const F: {
|
|
|
30
30
|
readonly targetMaterialNoLb: "target_material_no__lb_";
|
|
31
31
|
/** 替换物料 */
|
|
32
32
|
readonly targetProduct: "target_product_id_";
|
|
33
|
+
/** 替换物料展示值 */
|
|
34
|
+
readonly targetProductLb: "target_product_id__lb_";
|
|
33
35
|
/** 替换物料名称 */
|
|
34
36
|
readonly targetProductName: "target_product_id_name_";
|
|
35
37
|
/** 替换物料编码 */
|
|
@@ -44,7 +46,7 @@ export type MaterialSubstitutionFieldKey = (typeof F)[keyof typeof F];
|
|
|
44
46
|
export declare const DISABLED_INPUT_FIELDS: readonly ["source_material_no_", "source_product_id_name_", "source_product_id_code_", "source_product_id_spec_", "source_qty_consumed_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
|
|
45
47
|
export declare const CLEAR_ON_SOURCE_PRODUCT_EMPTY: readonly ["source_material_no_", "source_material_no__lb_", "source_product_id__lb_", "source_product_id_name_", "source_product_id_code_", "source_product_id_spec_", "source_qty_consumed_"];
|
|
46
48
|
/** 替换物料批号清空 / 手输时需清空的物料字段 */
|
|
47
|
-
export declare const CLEAR_ON_TARGET_MATERIAL_NO_EMPTY: readonly ["target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
|
|
49
|
+
export declare const CLEAR_ON_TARGET_MATERIAL_NO_EMPTY: readonly ["target_product_id_", "target_product_id__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
|
|
48
50
|
/** 历史消耗选项 → 被替换物料行字段 */
|
|
49
51
|
export declare const FILL_FROM_SOURCE_PRODUCT_OPTION: readonly [{
|
|
50
52
|
readonly optionField: "material_name_";
|
|
@@ -69,6 +71,10 @@ export declare const FILL_FROM_SOURCE_PRODUCT_OPTION: readonly [{
|
|
|
69
71
|
}];
|
|
70
72
|
/** 替换物料批号选项 → 替换物料信息 */
|
|
71
73
|
export declare const FILL_FROM_TARGET_MATERIAL_NO_OPTION: readonly [{
|
|
74
|
+
readonly optionField: "product_id_";
|
|
75
|
+
readonly toField: "target_product_id_";
|
|
76
|
+
readonly name: "物料";
|
|
77
|
+
}, {
|
|
72
78
|
readonly optionField: "product_id_name_";
|
|
73
79
|
readonly toField: "target_product_id_name_";
|
|
74
80
|
readonly name: "物料名称";
|
|
@@ -83,27 +89,23 @@ export declare const FILL_FROM_TARGET_MATERIAL_NO_OPTION: readonly [{
|
|
|
83
89
|
}];
|
|
84
90
|
/** SN / 工序不影响扫码结果能否复用当前空行。 */
|
|
85
91
|
export declare const SCAN_ROW_CONTENT_FIELDS: readonly ["source_material_no_", "source_product_id_", "target_material_no_", "target_product_id_"];
|
|
86
|
-
/**
|
|
92
|
+
/** LOT/SN 选项 → 替换物料行字段;替换数量保留用户输入。 */
|
|
87
93
|
export declare const FILL_FROM_TARGET_PRODUCT_OPTION: readonly [{
|
|
88
|
-
readonly optionField: "
|
|
94
|
+
readonly optionField: "name_";
|
|
89
95
|
readonly toField: "target_material_no_";
|
|
90
96
|
readonly name: "物料批号";
|
|
91
97
|
}, {
|
|
92
|
-
readonly optionField: "
|
|
98
|
+
readonly optionField: "product_id_name_";
|
|
93
99
|
readonly toField: "target_product_id_name_";
|
|
94
100
|
readonly name: "物料名称";
|
|
95
101
|
}, {
|
|
96
|
-
readonly optionField: "
|
|
102
|
+
readonly optionField: "product_id_code_";
|
|
97
103
|
readonly toField: "target_product_id_code_";
|
|
98
104
|
readonly name: "物料编码";
|
|
99
105
|
}, {
|
|
100
|
-
readonly optionField: "
|
|
106
|
+
readonly optionField: "product_id_spec_";
|
|
101
107
|
readonly toField: "target_product_id_spec_";
|
|
102
108
|
readonly name: "物料规格";
|
|
103
|
-
}, {
|
|
104
|
-
readonly optionField: "qty_consumed_";
|
|
105
|
-
readonly toField: "target_qty_consumed_";
|
|
106
|
-
readonly name: "已消耗数量";
|
|
107
109
|
}];
|
|
108
110
|
/** 替换物料清空时同步清除批次、物料信息和数量。 */
|
|
109
|
-
export declare const CLEAR_ON_TARGET_PRODUCT_EMPTY: readonly ["target_material_no_", "target_material_no__id_", "target_material_no__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_", "target_qty_consumed_"];
|
|
111
|
+
export declare const CLEAR_ON_TARGET_PRODUCT_EMPTY: readonly ["target_product_id__lb_", "target_material_no_", "target_material_no__id_", "target_material_no__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_", "target_qty_consumed_"];
|
package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RefCustomLoader } from '../../../../../../nocode-base/src/interface/ref-loader';
|
|
2
|
+
export declare function flattenMaterialConsumeRecord(item: Record<string, any>): Record<string, any>;
|
|
3
|
+
/** 同一条选中记录的批次名称、ID 和展示名必须一起回填。 */
|
|
4
|
+
export declare function buildTargetMaterialSelectionPatch(record: Record<string, any>): Record<string, unknown>;
|
|
5
|
+
/** 历史消耗只使用当前行生产 SN,未选、LOT 或无法确认类型时阻断查询。 */
|
|
6
|
+
export declare function createMaterialConsumeHistoryLoader(rowData: Record<string, any>, fieldName?: string): RefCustomLoader;
|
|
7
|
+
/** 替换料从 LOT/SN 选择,保存产品 ID,批次身份由行内批号字段保存。 */
|
|
8
|
+
export declare function createTargetMaterialLoader(rowData: Record<string, any>): RefCustomLoader;
|
|
@@ -80,9 +80,9 @@ export declare class MaterialRequisitionTableCore extends ProfileDrivenSubTableC
|
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* 物料替换表 Core
|
|
83
|
-
* -
|
|
84
|
-
* -
|
|
85
|
-
* -
|
|
83
|
+
* - 被替换物料从当前行生产 SN 的历史消耗中选择,可按行内工序过滤
|
|
84
|
+
* - 替换物料从 LOT/SN 中选择,回填批次和物料信息,保留替换数量
|
|
85
|
+
* - 替换物料批号回填替换物料及其信息
|
|
86
86
|
* - 条码映射结果优先填充空行,否则追加新行
|
|
87
87
|
*/
|
|
88
88
|
export declare class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
|
|
@@ -62,9 +62,10 @@ export declare function getObjectBomMaterialLotQuery(opts: {
|
|
|
62
62
|
} | null;
|
|
63
63
|
/**
|
|
64
64
|
* 表单提交:校验所有物料消耗对象(失败打在对应单元格,收集全部错误)
|
|
65
|
-
* -
|
|
66
|
-
* -
|
|
67
|
-
* -
|
|
65
|
+
* - 物料范围:无配置 / 人为指定 / 记录模式,不校验物料是否属于 BOM
|
|
66
|
+
* - 记录模式:仅开启人为指定时,继续执行数量校验
|
|
67
|
+
* - BOM 模式未开人为指定:有物料则必须在实例 BOM 中
|
|
68
|
+
* - 数量与需求数量均有值、非查看类型且开启数量校验时,执行数量规则
|
|
68
69
|
* - 人为指定:用 objectBom.entries_[0];否则用 bomEntries 中与对象物料匹配的明细
|
|
69
70
|
*/
|
|
70
71
|
export declare function validateObjectBomQtyOnSubmit(opts: {
|
package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IBasicInfoItem, ValidateFieldErrorMap } from '../../types';
|
|
2
|
+
import { RuntimeInstanceRecord } from '../../runtime';
|
|
3
|
+
type Options = {
|
|
4
|
+
record: RuntimeInstanceRecord;
|
|
5
|
+
getInfo(): IBasicInfoItem | undefined;
|
|
6
|
+
isCurrent(): boolean;
|
|
7
|
+
shouldSkip(): boolean;
|
|
8
|
+
applyComments(fields: ValidateFieldErrorMap): void;
|
|
9
|
+
};
|
|
10
|
+
type Result = {
|
|
11
|
+
isValid: boolean;
|
|
12
|
+
fields?: ValidateFieldErrorMap;
|
|
13
|
+
};
|
|
14
|
+
/** 实例级对象错误展示与刷新;数据变化由已有 Store 订阅传入。 */
|
|
15
|
+
export declare function createMaterialConsumeObjectValidation(options: Options): {
|
|
16
|
+
validate: (live?: boolean) => Promise<Result | undefined>;
|
|
17
|
+
requestLive: () => void;
|
|
18
|
+
replaceTableFields: (fields?: ValidateFieldErrorMap) => void;
|
|
19
|
+
clear: () => void;
|
|
20
|
+
beginSubmit(): void;
|
|
21
|
+
endSubmit(): void;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -41,6 +41,7 @@ export declare function createRuntimeInstanceInitializer(props: IProps, payload:
|
|
|
41
41
|
productSearchFields: string;
|
|
42
42
|
showPrintFieldBg: any;
|
|
43
43
|
paramsConfig: Record<string, any> | undefined;
|
|
44
|
+
businessType: any;
|
|
44
45
|
instanceStatus: any;
|
|
45
46
|
};
|
|
46
47
|
selfInfo: RuntimeSelfInfo;
|
|
@@ -87,6 +87,7 @@ export declare function useRenderPageFactory(props: IProps, payload: IPayload):
|
|
|
87
87
|
renderPurpose?: "print" | "pdf" | undefined;
|
|
88
88
|
showPrintFieldBg?: boolean | undefined;
|
|
89
89
|
paramsConfig?: Record<string, any> | undefined;
|
|
90
|
+
businessType?: string | undefined;
|
|
90
91
|
instanceStatus?: string | undefined;
|
|
91
92
|
}[], IBasicInfoItem[] | {
|
|
92
93
|
key: string;
|
|
@@ -129,6 +130,7 @@ export declare function useRenderPageFactory(props: IProps, payload: IPayload):
|
|
|
129
130
|
renderPurpose?: "print" | "pdf" | undefined;
|
|
130
131
|
showPrintFieldBg?: boolean | undefined;
|
|
131
132
|
paramsConfig?: Record<string, any> | undefined;
|
|
133
|
+
businessType?: string | undefined;
|
|
132
134
|
instanceStatus?: string | undefined;
|
|
133
135
|
}[]>;
|
|
134
136
|
selfInfoList: import('vue').Ref<{
|
|
@@ -196,6 +198,7 @@ export declare function useRenderPageFactory(props: IProps, payload: IPayload):
|
|
|
196
198
|
renderPurpose?: "print" | "pdf" | undefined;
|
|
197
199
|
showPrintFieldBg?: boolean | undefined;
|
|
198
200
|
paramsConfig?: Record<string, any> | undefined;
|
|
201
|
+
businessType?: string | undefined;
|
|
199
202
|
instanceStatus?: string | undefined;
|
|
200
203
|
} | undefined;
|
|
201
204
|
updateRenderModeType: (uniqueId: string, mode: import('..').RenderModeEnum, updateButton?: boolean) => Promise<void>;
|
|
@@ -34,7 +34,18 @@ export type RefCustomLoaderRawResult = RefLoaderNormalizedResult | {
|
|
|
34
34
|
dict?: any;
|
|
35
35
|
pageSize?: number;
|
|
36
36
|
} | any[];
|
|
37
|
-
export type RefCustomLoader = (params: RefCustomLoaderParams) => Promise<RefCustomLoaderRawResult
|
|
37
|
+
export type RefCustomLoader = ((params: RefCustomLoaderParams) => Promise<RefCustomLoaderRawResult>) & {
|
|
38
|
+
/** 下拉展开前校验;未通过时由字段组件弹出 message 并阻止展开。 */
|
|
39
|
+
beforeOpen?: () => Promise<{
|
|
40
|
+
allowed: boolean;
|
|
41
|
+
message?: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** 选项关联同一物料时,仍按批次等独立身份高亮。 */
|
|
44
|
+
getSelectedKey?: () => string | undefined;
|
|
45
|
+
getOptionKey?: (option: RefLoaderNormalizedResult['options'][number]) => string;
|
|
46
|
+
/** 选中后立即与主字段一起回填的关联数据。 */
|
|
47
|
+
getSelectionPatch?: (record: Record<string, any>) => Record<string, unknown>;
|
|
48
|
+
};
|
|
38
49
|
/** 从 queryData 中提取快捷搜索关键字 */
|
|
39
50
|
export declare function extractKeywordFromQueryData(queryData?: Record<string, any>): any;
|
|
40
51
|
/** 将自定义数据源返回值标准化为 ref 组件消费结构 */
|
|
@@ -377,6 +377,8 @@ export interface IBasicInfoItem {
|
|
|
377
377
|
showPrintFieldBg?: boolean;
|
|
378
378
|
/** 填报入参(selfInfo.params + paramExtraProps) */
|
|
379
379
|
paramsConfig?: Record<string, any>;
|
|
380
|
+
/** detail 返回的单据业务类型,供业务字段查询匹配场景。 */
|
|
381
|
+
businessType?: string;
|
|
380
382
|
/** 实例状态 */
|
|
381
383
|
instanceStatus?: string;
|
|
382
384
|
}
|
|
@@ -5,13 +5,13 @@ export interface IDisplayField {
|
|
|
5
5
|
_dfUnremovable?: boolean;
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
8
|
+
/** 物料字段的设计端默认显示列。 */
|
|
9
9
|
export declare const DEFAULT_DISPLAY_FIELDS_MAP: Record<string, string[]>;
|
|
10
10
|
interface DefaultDisplayFieldConfig {
|
|
11
11
|
keys: string[];
|
|
12
12
|
unremovableKeys: string[];
|
|
13
13
|
}
|
|
14
|
-
export declare const getDefaultDisplayFieldConfig: (
|
|
14
|
+
export declare const getDefaultDisplayFieldConfig: (fieldType?: string) => DefaultDisplayFieldConfig;
|
|
15
15
|
/** 仅保留设备及批次类字段从历史搜索配置初始化显示列的行为。 */
|
|
16
16
|
export declare const retainsLegacyDisplayFields: (fieldType?: string) => boolean;
|
|
17
17
|
export declare function getDisplayFieldKey(item?: {
|
|
@@ -82,6 +82,7 @@ export declare const FieldTypeToCellWidgetMap: {
|
|
|
82
82
|
scrap_material_no: CellWidgetCategory;
|
|
83
83
|
destructive_test_qty: CellWidgetCategory;
|
|
84
84
|
product_check_qty: CellWidgetCategory;
|
|
85
|
+
product_release_qty: CellWidgetCategory;
|
|
85
86
|
material_check_qty: CellWidgetCategory;
|
|
86
87
|
inspection_qty: CellWidgetCategory;
|
|
87
88
|
inspection_module_qty: CellWidgetCategory;
|
|
@@ -327,6 +327,10 @@ export declare enum FIELD_TYPE {
|
|
|
327
327
|
* 产品检验数量
|
|
328
328
|
*/
|
|
329
329
|
PRODUCT_CHECK_QTY = "product_check_qty",
|
|
330
|
+
/**
|
|
331
|
+
* 放行数量
|
|
332
|
+
*/
|
|
333
|
+
PRODUCT_RELEASE_QTY = "product_release_qty",
|
|
330
334
|
/**
|
|
331
335
|
* 材料检验数量
|
|
332
336
|
*/
|
|
@@ -568,6 +572,7 @@ export declare const FieldIconMap: {
|
|
|
568
572
|
scrap_material_no: string;
|
|
569
573
|
destructive_test_qty: string;
|
|
570
574
|
product_check_qty: string;
|
|
575
|
+
product_release_qty: string;
|
|
571
576
|
material_check_qty: string;
|
|
572
577
|
inspection_qty: string;
|
|
573
578
|
inspection_module_qty: string;
|
|
@@ -581,6 +586,8 @@ export declare const FieldIconMap: {
|
|
|
581
586
|
qty_required: string;
|
|
582
587
|
qty_consumed: string;
|
|
583
588
|
qty: string;
|
|
589
|
+
object_type: string;
|
|
590
|
+
material_consume: string;
|
|
584
591
|
model_relation: string;
|
|
585
592
|
external_reference_no: string;
|
|
586
593
|
warehouse: string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
type RequestFn<TParams, TResult> = (params: TParams) => Promise<TResult>;
|
|
2
|
+
interface CacheEntry<TResult> {
|
|
3
|
+
data: TResult;
|
|
4
|
+
expireAt: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const withRequestCache: {
|
|
7
|
+
pendingMap: Map<string, Promise<any>>;
|
|
8
|
+
cacheMap: Map<string, CacheEntry<any>>;
|
|
9
|
+
defaultTTL: number;
|
|
10
|
+
/** 生成唯一 key */
|
|
11
|
+
getKey(url: string, params: any): string;
|
|
12
|
+
/**
|
|
13
|
+
* 处理带缓存与去重的请求
|
|
14
|
+
* @param url 唯一逻辑标识(非实际 API 地址)
|
|
15
|
+
* @param params 请求参数
|
|
16
|
+
* @param requestFn 实际请求函数
|
|
17
|
+
* @param ttl 可选,缓存有效期(毫秒)
|
|
18
|
+
*/
|
|
19
|
+
handleRequest<TParams, TResult>(url: string, params: TParams, requestFn: RequestFn<TParams, TResult>, ttl?: number): Promise<TResult>;
|
|
20
|
+
/** 清空全部缓存 */
|
|
21
|
+
clearCache(): void;
|
|
22
|
+
/** 清空 pending 状态 */
|
|
23
|
+
clearPending(): void;
|
|
24
|
+
/** 定期清理过期缓存 */
|
|
25
|
+
cleanupExpiredCache(): void;
|
|
26
|
+
};
|
|
27
|
+
export {};
|