@gct-paas/excel 0.1.40-beta.33 → 0.1.40-beta.35

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.
Files changed (61) hide show
  1. package/dist/{BaseComponent-DxhjB3q7.js → BaseComponent-CotFh3wl.js} +1 -1
  2. package/dist/{VueVideoPlayer-D8ROwh6R.js → VueVideoPlayer-DkQDNpID.js} +1 -1
  3. package/dist/{barcode-design-BgQWAbPg.js → barcode-design-CgOCG5XT.js} +1 -1
  4. package/dist/base/index.es.js +4 -4
  5. package/dist/{diagonal-design-thqBT2R5.js → diagonal-design-DIE0IfhN.js} +1 -1
  6. package/dist/{dynamic-table-action-Bc7yXz3G.js → dynamic-table-action-kbsA8eU-.js} +10 -10
  7. package/dist/excel.css +43 -43
  8. package/dist/{exceljs.min-Bs_MiB-c.js → exceljs.min-P-Hz98Dz.js} +1 -1
  9. package/dist/{font-editor-Bg0PFKU6.js → font-editor-BuIZh0Ly.js} +1 -1
  10. package/dist/{index-DAUzzuMc.js → index--phihR7H.js} +1 -1
  11. package/dist/{index-BVeiNXJu.js → index-8m2CeuN_.js} +1 -1
  12. package/dist/{index-BXuWJZET.js → index-B9SbnYGU.js} +1 -1
  13. package/dist/{index-BT26ksf1.js → index-BUGkx1Fz.js} +1 -1
  14. package/dist/{index-CctUmK0i.js → index-Bp5vDPjt.js} +1 -1
  15. package/dist/{index-C9rWxn2O.js → index-C3Qu-TVa.js} +1 -1
  16. package/dist/{index-CWPTIlNB.js → index-C6o8mkgS.js} +1 -1
  17. package/dist/{index-YzpTNb9E.js → index-C9HZXpt3.js} +1 -1
  18. package/dist/{index-CsF-c8Ig.js → index-CD5G25V0.js} +1 -1
  19. package/dist/{index-Bh2jNQCB.js → index-CKrmNOOO.js} +1 -1
  20. package/dist/{index-BmdUEx5G.js → index-CR6YSkyp.js} +2 -2
  21. package/dist/{index-Dy0K-wRi.js → index-D2VYgPaU.js} +1 -1
  22. package/dist/{index-DDv6kGJ1.js → index-DCnWEw85.js} +2 -2
  23. package/dist/{index-uksJr_Yi.js → index-DNMvdEq7.js} +2 -2
  24. package/dist/{index-BEZ491o7.js → index-DSlVhqO2.js} +1 -1
  25. package/dist/{index-CtVIWevt.js → index-Dokwwqbq.js} +1 -1
  26. package/dist/{index-CvisAU9z.js → index-DuAz6558.js} +1 -1
  27. package/dist/{index-DO029v0L.js → index-DwH3jG2l.js} +2 -2
  28. package/dist/{index-CSPZa-Yx.js → index-F2zjKnAB.js} +3 -3
  29. package/dist/{index-DMVZNwaY.js → index-F_cMfOs8.js} +2 -2
  30. package/dist/{index-CR8YuUTK.js → index-JogyMfN5.js} +2 -2
  31. package/dist/{index-CTGFfYxu.js → index-nkuB_uqS.js} +1 -1
  32. package/dist/{index-CHXZ0Jx4.js → index-opa93Vh4.js} +1 -1
  33. package/dist/{index-BzzDCpIa.js → index-qD--ChR8.js} +81 -47
  34. package/dist/index.es.js +1 -1
  35. package/dist/{pagination-design-DSBkFyKE.js → pagination-design-C6-HpH1C.js} +1 -1
  36. package/dist/paper-widget-design-xuNFEk3W.js +4 -0
  37. package/dist/{print-runtime-instance-VkEhvyE2.js → print-runtime-instance-CNofYX1a.js} +1 -1
  38. package/dist/{print-snapshot-renderer-CDWMLRpr.js → print-snapshot-renderer-DhPqfVSQ.js} +3 -3
  39. package/dist/{qrcode-design-CuRu8U92.js → qrcode-design-BM231QD1.js} +1 -1
  40. package/dist/seal-design-BFDGZjDs.js +4 -0
  41. package/dist/{single-field-drop-SIHeEGRV.js → single-field-drop-Dk1VwVG3.js} +1 -1
  42. package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +4 -0
  43. package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +1 -1
  44. package/dist/{sub-table-factory-DtohfawW.js → sub-table-factory-CQvJXz8J.js} +80 -4
  45. package/dist/{text-design-B45BP7g7.js → text-design-CqAqnDLx.js} +1 -1
  46. package/dist/{trace-like-wrapper-BGPnzRCX.js → trace-like-wrapper-C_p1rN9X.js} +1 -1
  47. package/dist/{value-editor.vue_vue_type_style_index_0_lang-C5AZRekX.js → value-editor.vue_vue_type_style_index_0_lang-m9qDS6E3.js} +1 -1
  48. package/dist/{widget-barcode-BdX11UR3.js → widget-barcode-Dg-3FQ-e.js} +2 -2
  49. package/dist/{widget-diagonal-BCgR1cPm.js → widget-diagonal-CZ2-gr7C.js} +2 -2
  50. package/dist/{widget-image-BT5eEGg5.js → widget-image-YrpPveKI.js} +1 -1
  51. package/dist/{widget-line-CGJQ4U1P.js → widget-line-CCXw9AYv.js} +1 -1
  52. package/dist/{widget-pagination-CzzjDbbx.js → widget-pagination-CfJ3SAwE.js} +2 -2
  53. package/dist/{widget-power-V2R3qTzb.js → widget-power-yvaJES56.js} +2 -2
  54. package/dist/{widget-qrcode-DASaSYeb.js → widget-qrcode-1FKVnSaw.js} +2 -2
  55. package/dist/{widget-rangelimit-DKj_Exgi.js → widget-rangelimit-G6qlsbh9.js} +2 -2
  56. package/dist/{widget-serialnumber-C40xoj6C.js → widget-serialnumber-C9pAPERP.js} +1 -1
  57. package/dist/{widget-text-eOWyJoWF.js → widget-text-SYTtXTZG.js} +3 -3
  58. package/dist/{widget-timediff-CXUbpYxL.js → widget-timediff-BKgJ7N33.js} +1 -1
  59. package/package.json +1 -1
  60. package/dist/paper-widget-design-BuZsRX0C.js +0 -4
  61. package/dist/seal-design-BWTr4KWW.js +0 -4
@@ -6,7 +6,7 @@ import dayjs from "dayjs";
6
6
  import { useFormBaseModal, DataSourceChangeEvent, getBuiltinContextFields, DataSources, FieldFills, closeAllFormBaseModal, FormBaseModalPlugin } from "@gct-paas/form-base";
7
7
  import * as Antd from "ant-design-vue";
8
8
  import { message, Modal, Alert, Empty, InputSearch, Cascader, ConfigProvider, Tooltip as Tooltip$1, Input, Tree, Transfer, Select, Tag, Form, AutoComplete, TimePicker, DatePicker, Textarea, TreeSelect, CheckboxGroup, Checkbox, Radio, RadioGroup } from "ant-design-vue";
9
- import { b as bindFormulaCacheInvalidation, c as currentParamsConfig, M as MAX_RUNTIME_SHEETS, a as MAX_RUNTIME_SHEET_TITLE_LENGTH, d as MULTI_SHEET_SCHEMA_VERSION, n as normalizeGridColumnWidth, g as getParseFormulaVarInfos, e as createRuntimeDocumentV2, f as clampSealPosition, h as normalizeSealDiameter, i as normalizeFieldWidth, D as DEFAULT_BOOLEAN_FIELD_WIDTH, j as isCellAutoLineBreak, B as BorderTD, u as useFormModel, k as useFormTmplConfig, l as findFieldProfile, m as normalizeHistoricalBusinessRow, o as DeviceLinkTmplUtil, p as normalizeAIOcrTmpl, q as useWidgetStaticAttrs, r as useRuntimeInstanceServices, s as setSelectValidatorId, t as setSelectAnnotationId, v as useRuntimeRowState, w as getObjectBomMaterialLotQuery, x as buildObjectLotExtraQuery, y as resolveObjectFieldKeys, F as FormModelController, z as MaterialConsumptionPatternEnum, A as validateObjectBomForScan, C as resolveObjectBomEntry, E as runWithFillProduct, G as useNocodeFormWidget, H as applyConsumeObjectTraceChange, I as getObjectBomProductQuery, J as EMPTY_PRODUCT_VERSION_ID, K as normalizeHistoricalAutofillRow, L as readSealValue, N as isSealStamped, O as stampSealValue, P as isValidSealValue, Q as clearSealValue, R as NCB_PROVIDE, S as calculateFormula, T as useStyles, U as useDependency, V as useFieldPresentation, W as useRuntimeEditorFlusher, X as RuntimeFormStateStore, Y as createRuntimeInstanceContext, Z as RuntimeInstanceRegistry, _ as ScanParamType, $ as RequiredQtyCalcRule, a0 as MBRender, a1 as MCRender, a2 as moveSealValue, a3 as DocumentPaper, a4 as DynamicTableAction, a5 as _sfc_main$6C } from "./dynamic-table-action-Bc7yXz3G.js";
9
+ import { b as bindFormulaCacheInvalidation, c as currentParamsConfig, M as MAX_RUNTIME_SHEETS, a as MAX_RUNTIME_SHEET_TITLE_LENGTH, d as MULTI_SHEET_SCHEMA_VERSION, n as normalizeGridColumnWidth, g as getParseFormulaVarInfos, e as createRuntimeDocumentV2, f as clampSealPosition, h as normalizeSealDiameter, i as normalizeFieldWidth, D as DEFAULT_BOOLEAN_FIELD_WIDTH, j as isCellAutoLineBreak, B as BorderTD, u as useFormModel, k as useFormTmplConfig, l as findFieldProfile, m as normalizeHistoricalBusinessRow, o as DeviceLinkTmplUtil, p as normalizeAIOcrTmpl, q as useWidgetStaticAttrs, r as useRuntimeInstanceServices, s as setSelectValidatorId, t as setSelectAnnotationId, v as useRuntimeRowState, w as getObjectBomMaterialLotQuery, x as buildObjectLotExtraQuery, y as resolveObjectFieldKeys, F as FormModelController, z as MaterialConsumptionPatternEnum, A as validateObjectBomForScan, C as resolveObjectBomEntry, E as runWithFillProduct, G as useNocodeFormWidget, H as applyConsumeObjectTraceChange, I as getObjectBomProductQuery, J as EMPTY_PRODUCT_VERSION_ID, K as normalizeHistoricalAutofillRow, L as readSealValue, N as isSealStamped, O as stampSealValue, P as isValidSealValue, Q as clearSealValue, R as NCB_PROVIDE, S as calculateFormula, T as useStyles, U as useDependency, V as useFieldPresentation, W as useRuntimeEditorFlusher, X as RuntimeFormStateStore, Y as createRuntimeInstanceContext, Z as RuntimeInstanceRegistry, _ as ScanParamType, $ as RequiredQtyCalcRule, a0 as MBRender, a1 as MCRender, a2 as moveSealValue, a3 as DocumentPaper, a4 as DynamicTableAction, a5 as _sfc_main$6C } from "./dynamic-table-action-kbsA8eU-.js";
10
10
  import { S as SEARCH_SEVICE, u as useWebUpload, V as VersionSelect, C as CloseOutlined, E as EmptyImg$2, _ as _sfc_main$6B, P as ProductTypeEnum } from "./online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DAafXJ42.js";
11
11
  import { HttpUtil } from "@gct-paas/api";
12
12
  import { Tooltip, Grid, Table, Column, Icon as Icon$2, Edit, Validator, VxeGrid } from "vxe-table";
@@ -2016,7 +2016,7 @@ function openWindow(url, opt) {
2016
2016
  const FieldPropLabels = Object.entries(FIELD_PROP_LABEL_MAP);
2017
2017
  const FieldTypeLabels = Object.entries(FIELD_TYPE_LABEL_MAP);
2018
2018
  async function createWorkbook() {
2019
- const ExcelJs = (await import("./exceljs.min-Bs_MiB-c.js").then((n) => n.e)).default;
2019
+ const ExcelJs = (await import("./exceljs.min-P-Hz98Dz.js").then((n) => n.e)).default;
2020
2020
  return new ExcelJs.Workbook();
2021
2021
  }
2022
2022
  class XlsxParser {
@@ -2387,28 +2387,28 @@ class XlsxParser {
2387
2387
  }
2388
2388
  function asyncImportClassModules() {
2389
2389
  const modules = /* @__PURE__ */ Object.assign({
2390
- "./_field_/auto-complete/index.ts": () => import("./index-DO029v0L.js").then((m) => m["default"]),
2391
- "./_field_/datepicker/index.ts": () => import("./index-YzpTNb9E.js").then((m) => m["default"]),
2392
- "./_field_/datetimepicker/index.ts": () => import("./index-CHXZ0Jx4.js").then((m) => m["default"]),
2393
- "./_field_/department/index.ts": () => import("./index-CTGFfYxu.js").then((m) => m["default"]),
2394
- "./_field_/enum-select/index.ts": () => import("./index-DMVZNwaY.js").then((m) => m["default"]),
2395
- "./_field_/input/index.ts": () => import("./index-CvisAU9z.js").then((m) => m["default"]),
2396
- "./_field_/inputdouble/index.ts": () => import("./index-CWPTIlNB.js").then((m) => m["default"]),
2397
- "./_field_/inputnumber/index.ts": () => import("./index-Bh2jNQCB.js").then((m) => m["default"]),
2398
- "./_field_/rdo-select/index.ts": () => import("./index-CR8YuUTK.js").then((m) => m["default"]),
2399
- "./_field_/seal/index.ts": () => import("./index-BmdUEx5G.js").then((m) => m["default"]),
2400
- "./_field_/select/index.ts": () => import("./index-uksJr_Yi.js").then((m) => m["default"]),
2401
- "./_field_/sign/index.ts": () => import("./index-CsF-c8Ig.js").then((m) => m["default"]),
2402
- "./_field_/switch/index.ts": () => import("./index-CSPZa-Yx.js").then((m) => m["default"]),
2403
- "./_field_/textarea/index.ts": () => import("./index-C9rWxn2O.js").then((m) => m["default"]),
2404
- "./_field_/timepicker/index.ts": () => import("./index-BEZ491o7.js").then((m) => m["default"]),
2405
- "./_field_/upload-file/index.ts": () => import("./index-CtVIWevt.js").then((m) => m["default"]),
2406
- "./_field_/upload-image/index.ts": () => import("./index-BXuWJZET.js").then((m) => m["default"]),
2407
- "./_field_/userpicker/index.ts": () => import("./index-BVeiNXJu.js").then((m) => m["default"]),
2390
+ "./_field_/auto-complete/index.ts": () => import("./index-DwH3jG2l.js").then((m) => m["default"]),
2391
+ "./_field_/datepicker/index.ts": () => import("./index-C9HZXpt3.js").then((m) => m["default"]),
2392
+ "./_field_/datetimepicker/index.ts": () => import("./index-opa93Vh4.js").then((m) => m["default"]),
2393
+ "./_field_/department/index.ts": () => import("./index-nkuB_uqS.js").then((m) => m["default"]),
2394
+ "./_field_/enum-select/index.ts": () => import("./index-F_cMfOs8.js").then((m) => m["default"]),
2395
+ "./_field_/input/index.ts": () => import("./index-DuAz6558.js").then((m) => m["default"]),
2396
+ "./_field_/inputdouble/index.ts": () => import("./index-C6o8mkgS.js").then((m) => m["default"]),
2397
+ "./_field_/inputnumber/index.ts": () => import("./index-CKrmNOOO.js").then((m) => m["default"]),
2398
+ "./_field_/rdo-select/index.ts": () => import("./index-JogyMfN5.js").then((m) => m["default"]),
2399
+ "./_field_/seal/index.ts": () => import("./index-CR6YSkyp.js").then((m) => m["default"]),
2400
+ "./_field_/select/index.ts": () => import("./index-DNMvdEq7.js").then((m) => m["default"]),
2401
+ "./_field_/sign/index.ts": () => import("./index-CD5G25V0.js").then((m) => m["default"]),
2402
+ "./_field_/switch/index.ts": () => import("./index-F2zjKnAB.js").then((m) => m["default"]),
2403
+ "./_field_/textarea/index.ts": () => import("./index-C3Qu-TVa.js").then((m) => m["default"]),
2404
+ "./_field_/timepicker/index.ts": () => import("./index-DSlVhqO2.js").then((m) => m["default"]),
2405
+ "./_field_/upload-file/index.ts": () => import("./index-Dokwwqbq.js").then((m) => m["default"]),
2406
+ "./_field_/upload-image/index.ts": () => import("./index-B9SbnYGU.js").then((m) => m["default"]),
2407
+ "./_field_/userpicker/index.ts": () => import("./index-8m2CeuN_.js").then((m) => m["default"]),
2408
2408
  "./_widget_/barcode/index.ts": () => import("./index-B8RwUwjv.js").then((m) => m["default"]),
2409
- "./_widget_/combine-fields/index.ts": () => import("./index-CctUmK0i.js").then((m) => m["default"]),
2410
- "./_widget_/diagonal/index.ts": () => import("./index-DAUzzuMc.js").then((m) => m["default"]),
2411
- "./_widget_/dyn-value/index.ts": () => import("./index-BT26ksf1.js").then((m) => m["default"]),
2409
+ "./_widget_/combine-fields/index.ts": () => import("./index-Bp5vDPjt.js").then((m) => m["default"]),
2410
+ "./_widget_/diagonal/index.ts": () => import("./index--phihR7H.js").then((m) => m["default"]),
2411
+ "./_widget_/dyn-value/index.ts": () => import("./index-BUGkx1Fz.js").then((m) => m["default"]),
2412
2412
  "./_widget_/image/index.ts": () => import("./index-VyXT9Zho.js").then((m) => m["default"]),
2413
2413
  "./_widget_/line/index.ts": () => import("./index-BVpn4h4X.js").then((m) => m["default"]),
2414
2414
  "./_widget_/power/index.ts": () => import("./index-C4Dwu_PF.js").then((m) => m["default"]),
@@ -2418,8 +2418,8 @@ function asyncImportClassModules() {
2418
2418
  "./_widget_/sub-table/index.ts": () => import("./index-BfVfmEwC.js").then((m) => m["default"]),
2419
2419
  "./_widget_/timediff/index.ts": () => import("./index-WkRaeG4c.js").then((m) => m["default"]),
2420
2420
  "./paper/index.ts": () => import("./index-CNsrOwaF.js").then((m) => m["default"]),
2421
- "./td/index.ts": () => import("./index-DDv6kGJ1.js").then((m) => m["default"]),
2422
- "./tr/index.ts": () => import("./index-Dy0K-wRi.js").then((m) => m["default"])
2421
+ "./td/index.ts": () => import("./index-DCnWEw85.js").then((m) => m["default"]),
2422
+ "./tr/index.ts": () => import("./index-D2VYgPaU.js").then((m) => m["default"])
2423
2423
  });
2424
2424
  return modules;
2425
2425
  }
@@ -15164,7 +15164,7 @@ const _sfc_main$6i = /* @__PURE__ */ defineComponent({
15164
15164
  () => !readonly.value && hasAnyAffix.value && !wrapAffix.value
15165
15165
  );
15166
15166
  const preserveOptionWidth = computed(
15167
- () => props2.inCombinedFields && !props2.autoLineBreak && !readonly.value && props2.fieldWidget.category === CellWidgetCategory.Enum && [CellWidgetRenderComp.Radio, CellWidgetRenderComp.Checkbox].includes(
15167
+ () => props2.inCombinedFields && !props2.autoLineBreak && !readonly.value && [CellWidgetCategory.Enum, CellWidgetCategory.Boolean].includes(props2.fieldWidget.category) && [CellWidgetRenderComp.Radio, CellWidgetRenderComp.Checkbox].includes(
15168
15168
  props2.fieldWidget.renderComp
15169
15169
  )
15170
15170
  );
@@ -15226,7 +15226,7 @@ const _sfc_main$6i = /* @__PURE__ */ defineComponent({
15226
15226
  };
15227
15227
  }
15228
15228
  });
15229
- const CellWidgetDesign = /* @__PURE__ */ _export_sfc(_sfc_main$6i, [["__scopeId", "data-v-0c318157"]]);
15229
+ const CellWidgetDesign = /* @__PURE__ */ _export_sfc(_sfc_main$6i, [["__scopeId", "data-v-c130469f"]]);
15230
15230
  const cellWidgetDesign = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
15231
15231
  __proto__: null,
15232
15232
  default: CellWidgetDesign
@@ -16260,7 +16260,7 @@ function asyncImportWidgetConfigList() {
16260
16260
  return widgetConfigList;
16261
16261
  }
16262
16262
  function asyncImportWidgetDesign() {
16263
- const modules = /* @__PURE__ */ Object.assign({ "../__cell_widgets__/cell-widget-design.vue": () => Promise.resolve().then(() => cellWidgetDesign), "../__cell_widgets__/seal/seal-design.vue": () => import("./seal-design-BWTr4KWW.js"), "./barcode/barcode-design.vue": () => import("./barcode-design-BgQWAbPg.js"), "./diagonal/diagonal-design.vue": () => import("./diagonal-design-thqBT2R5.js"), "./image/image-design.vue": () => import("./image-design-OhBdKUs2.js"), "./line/line-design.vue": () => Promise.resolve().then(() => lineDesign), "./pagination/pagination-design.vue": () => import("./pagination-design-DSBkFyKE.js"), "./paper-widget-design.vue": () => import("./paper-widget-design-BuZsRX0C.js"), "./power/power-design.vue": () => Promise.resolve().then(() => powerDesign), "./qrcode/qrcode-design.vue": () => import("./qrcode-design-CuRu8U92.js"), "./rangelimit/rangelimit-design.vue": () => Promise.resolve().then(() => rangelimitDesign), "./serialnumber/serialnumber-design.vue": () => import("./serialnumber-design-CUkjBnDt.js"), "./text/text-design.vue": () => import("./text-design-B45BP7g7.js"), "./timediff/timediff-design.vue": () => import("./timediff-design-kEIo8l2p.js") });
16263
+ const modules = /* @__PURE__ */ Object.assign({ "../__cell_widgets__/cell-widget-design.vue": () => Promise.resolve().then(() => cellWidgetDesign), "../__cell_widgets__/seal/seal-design.vue": () => import("./seal-design-BFDGZjDs.js"), "./barcode/barcode-design.vue": () => import("./barcode-design-CgOCG5XT.js"), "./diagonal/diagonal-design.vue": () => import("./diagonal-design-DIE0IfhN.js"), "./image/image-design.vue": () => import("./image-design-OhBdKUs2.js"), "./line/line-design.vue": () => Promise.resolve().then(() => lineDesign), "./pagination/pagination-design.vue": () => import("./pagination-design-C6-HpH1C.js"), "./paper-widget-design.vue": () => import("./paper-widget-design-xuNFEk3W.js"), "./power/power-design.vue": () => Promise.resolve().then(() => powerDesign), "./qrcode/qrcode-design.vue": () => import("./qrcode-design-BM231QD1.js"), "./rangelimit/rangelimit-design.vue": () => Promise.resolve().then(() => rangelimitDesign), "./serialnumber/serialnumber-design.vue": () => import("./serialnumber-design-CUkjBnDt.js"), "./text/text-design.vue": () => import("./text-design-CqAqnDLx.js"), "./timediff/timediff-design.vue": () => import("./timediff-design-kEIo8l2p.js") });
16264
16264
  const widgetDesignMap = Object.keys(modules).reduce((map2, path) => {
16265
16265
  const mKey = path.match(/\/([a-z]+)-design\.vue$/)?.[1];
16266
16266
  if (mKey) {
@@ -56837,7 +56837,7 @@ const _sfc_main$3v = /* @__PURE__ */ defineComponent({
56837
56837
  }
56838
56838
  });
56839
56839
  function asyncImportWidgetProp() {
56840
- const modules = /* @__PURE__ */ Object.assign({ "./widget-barcode.vue": () => import("./widget-barcode-BdX11UR3.js"), "./widget-diagonal.vue": () => import("./widget-diagonal-BCgR1cPm.js"), "./widget-image.vue": () => import("./widget-image-BT5eEGg5.js"), "./widget-line.vue": () => import("./widget-line-CGJQ4U1P.js"), "./widget-pagination.vue": () => import("./widget-pagination-CzzjDbbx.js"), "./widget-power.vue": () => import("./widget-power-V2R3qTzb.js"), "./widget-qrcode.vue": () => import("./widget-qrcode-DASaSYeb.js"), "./widget-rangelimit.vue": () => import("./widget-rangelimit-DKj_Exgi.js"), "./widget-serialnumber.vue": () => import("./widget-serialnumber-C40xoj6C.js"), "./widget-text.vue": () => import("./widget-text-eOWyJoWF.js"), "./widget-timediff.vue": () => import("./widget-timediff-CXUbpYxL.js") });
56840
+ const modules = /* @__PURE__ */ Object.assign({ "./widget-barcode.vue": () => import("./widget-barcode-Dg-3FQ-e.js"), "./widget-diagonal.vue": () => import("./widget-diagonal-CZ2-gr7C.js"), "./widget-image.vue": () => import("./widget-image-YrpPveKI.js"), "./widget-line.vue": () => import("./widget-line-CCXw9AYv.js"), "./widget-pagination.vue": () => import("./widget-pagination-CfJ3SAwE.js"), "./widget-power.vue": () => import("./widget-power-yvaJES56.js"), "./widget-qrcode.vue": () => import("./widget-qrcode-1FKVnSaw.js"), "./widget-rangelimit.vue": () => import("./widget-rangelimit-G6qlsbh9.js"), "./widget-serialnumber.vue": () => import("./widget-serialnumber-C9pAPERP.js"), "./widget-text.vue": () => import("./widget-text-SYTtXTZG.js"), "./widget-timediff.vue": () => import("./widget-timediff-BKgJ7N33.js") });
56841
56841
  const widgetPropMap = Object.keys(modules).reduce((map2, path) => {
56842
56842
  const mKey = path.match(/\/widget-([a-z]+)\.vue$/)?.[1];
56843
56843
  if (mKey) {
@@ -69020,8 +69020,12 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69020
69020
  }
69021
69021
  watch(
69022
69022
  () => [props2.value, parentDisplayLabel.value],
69023
- () => {
69023
+ ([value], previous) => {
69024
69024
  if (suppressDisplayWriteback) return;
69025
+ if (previous && value !== previous[0]) {
69026
+ clearBlurCommitTimer();
69027
+ isManualInput = false;
69028
+ }
69025
69029
  syncInputTextFromModel();
69026
69030
  },
69027
69031
  { immediate: true }
@@ -69039,6 +69043,8 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69039
69043
  }
69040
69044
  inputText.value = val;
69041
69045
  if (val === void 0 || val === null || val === "") {
69046
+ clearBlurCommitTimer();
69047
+ fetchSeq += 1;
69042
69048
  isManualInput = false;
69043
69049
  emit2("update:value", null);
69044
69050
  patchRow({ [idFieldKey]: null, [`${field}_lb_`]: null }, "user");
@@ -69102,12 +69108,19 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69102
69108
  );
69103
69109
  state.data = [{ label: label || keyword2, value: keyword2 }];
69104
69110
  setDisplayText(label || keyword2);
69111
+ return record;
69105
69112
  } catch (e) {
69106
69113
  console.error(e);
69107
69114
  }
69108
69115
  }
69109
69116
  function onAutoChange(val) {
69110
69117
  if (suppressDisplayWriteback) return;
69118
+ if (val === void 0 || val === null || val === "") {
69119
+ isManualInput = false;
69120
+ emit2("change");
69121
+ searchTable();
69122
+ return;
69123
+ }
69111
69124
  if (!isManualInput && parentDisplayLabel.value && val === parentDisplayLabel.value && props2.value && val !== props2.value) {
69112
69125
  return;
69113
69126
  }
@@ -69143,8 +69156,10 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69143
69156
  } else {
69144
69157
  emit2("update:value", typed);
69145
69158
  void (async () => {
69146
- await fetchIdByName(typed);
69159
+ const record = await fetchIdByName(typed);
69160
+ if (props2.value !== typed) return;
69147
69161
  emit2("change", {
69162
+ ...record,
69148
69163
  name_: typed,
69149
69164
  __VALUE__: typed,
69150
69165
  id_: props2.formData[idFieldKey]
@@ -69309,8 +69324,10 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69309
69324
  if (field) row[field] = materialNo;
69310
69325
  runWithFillProduct(() => patchRow(row, "user"));
69311
69326
  isManualInput = false;
69312
- await fetchIdByName(materialNo);
69327
+ const record = await fetchIdByName(materialNo);
69328
+ if (props2.formData[field] !== materialNo) return;
69313
69329
  emit2("change", {
69330
+ ...record,
69314
69331
  __VALUE__: materialNo,
69315
69332
  id_: props2.formData[idFieldKey]
69316
69333
  });
@@ -69457,7 +69474,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
69457
69474
  };
69458
69475
  }
69459
69476
  });
69460
- const TraceLotSelect = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-7fa94416"]]);
69477
+ const TraceLotSelect = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-834ad328"]]);
69461
69478
  const _hoisted_1$1e = { class: "search-actions" };
69462
69479
  const _sfc_main$2g = /* @__PURE__ */ defineComponent({
69463
69480
  __name: "sterilize-lot-select-table",
@@ -70131,6 +70148,9 @@ const _sfc_main$2d = /* @__PURE__ */ defineComponent({
70131
70148
  const id = record?.id_ ?? null;
70132
70149
  if (source === "async") markRowFieldUserModified(idFieldKey);
70133
70150
  setRowField(idFieldKey, id, source);
70151
+ if (source === "async" && record) {
70152
+ emit2("change", { ...record, __VALUE__: keyword2 });
70153
+ }
70134
70154
  } catch (e) {
70135
70155
  console.error(e);
70136
70156
  }
@@ -70239,7 +70259,7 @@ const _sfc_main$2d = /* @__PURE__ */ defineComponent({
70239
70259
  };
70240
70260
  }
70241
70261
  });
70242
- const TraceMaterialLotSelect = /* @__PURE__ */ _export_sfc(_sfc_main$2d, [["__scopeId", "data-v-965a808f"]]);
70262
+ const TraceMaterialLotSelect = /* @__PURE__ */ _export_sfc(_sfc_main$2d, [["__scopeId", "data-v-10af5364"]]);
70243
70263
  const _sfc_main$2c = /* @__PURE__ */ defineComponent({
70244
70264
  __name: "auto-complete-render",
70245
70265
  props: {
@@ -72655,8 +72675,7 @@ function useAutofill() {
72655
72675
  const dictVal = sourceRow?._DICT?.[fromField]?.[sourceRow[fromField]];
72656
72676
  return Array.isArray(dictVal) ? dictVal[0] : dictVal || sourceRow[fromField];
72657
72677
  }
72658
- const v = sourceRow?.[fromField];
72659
- return v;
72678
+ return sourceRow?.[fromField] ?? null;
72660
72679
  }
72661
72680
  function applyAutofillRules(rules, sourceRow, formData, opts) {
72662
72681
  if (!opts?.enabled) return;
@@ -72988,6 +73007,7 @@ const _sfc_main$1V = /* @__PURE__ */ defineComponent({
72988
73007
  const onClear = () => {
72989
73008
  if (onClearSearchValue()) {
72990
73009
  emit2("update:value", null);
73010
+ applyAutofillRules(autofillRules, void 0, props2.formData, { enabled: !!enableAutofill });
72991
73011
  }
72992
73012
  };
72993
73013
  let visibilityRequest = 0;
@@ -73262,7 +73282,7 @@ const _sfc_main$1V = /* @__PURE__ */ defineComponent({
73262
73282
  };
73263
73283
  }
73264
73284
  });
73265
- const TraceRdoSelect = /* @__PURE__ */ _export_sfc(_sfc_main$1V, [["__scopeId", "data-v-1493d589"]]);
73285
+ const TraceRdoSelect = /* @__PURE__ */ _export_sfc(_sfc_main$1V, [["__scopeId", "data-v-14135aea"]]);
73266
73286
  const _hoisted_1$19 = { class: "allocate-product__dropdown" };
73267
73287
  const _sfc_main$1U = /* @__PURE__ */ defineComponent({
73268
73288
  __name: "allocate-product",
@@ -73564,6 +73584,11 @@ const _sfc_main$1U = /* @__PURE__ */ defineComponent({
73564
73584
  };
73565
73585
  }) ?? [];
73566
73586
  }
73587
+ function handleValueChange(value) {
73588
+ if (!isNil(value) && value !== "") return;
73589
+ applyAutofillRules(autofillRules, void 0, props2.formData, { enabled: !!enableAutofill });
73590
+ emit2("change", null);
73591
+ }
73567
73592
  async function changeSelect(info) {
73568
73593
  const { product_id_name_, product_id_ } = info || {};
73569
73594
  currentValue.value = product_id_;
@@ -73601,6 +73626,7 @@ const _sfc_main$1U = /* @__PURE__ */ defineComponent({
73601
73626
  widget: __props.widget,
73602
73627
  open: open.value,
73603
73628
  onSearch: handleSearch,
73629
+ onChange: handleValueChange,
73604
73630
  onClick: onSelectClick,
73605
73631
  onFocus: blurPlaceholderSelect,
73606
73632
  ref_key: "selectRef",
@@ -73658,7 +73684,7 @@ const _sfc_main$1U = /* @__PURE__ */ defineComponent({
73658
73684
  };
73659
73685
  }
73660
73686
  });
73661
- const AllocateProduct = /* @__PURE__ */ _export_sfc(_sfc_main$1U, [["__scopeId", "data-v-5fb899d6"]]);
73687
+ const AllocateProduct = /* @__PURE__ */ _export_sfc(_sfc_main$1U, [["__scopeId", "data-v-1531c6d4"]]);
73662
73688
  const VuePdfEmbed = defineAsyncComponent(() => import("./index-IoZ43cS-.js"));
73663
73689
  if (typeof window !== "undefined") {
73664
73690
  if (window.NodeList && !NodeList.prototype.forEach) {
@@ -74486,7 +74512,7 @@ const VuePdf = /* @__PURE__ */ defineComponent({
74486
74512
  }
74487
74513
  });
74488
74514
  const VueVideoPlayer = defineAsyncComponent(
74489
- () => import("./VueVideoPlayer-D8ROwh6R.js")
74515
+ () => import("./VueVideoPlayer-DkQDNpID.js")
74490
74516
  );
74491
74517
  const _hoisted_1$18 = {
74492
74518
  key: 0,
@@ -76355,6 +76381,7 @@ const _sfc_main$1L = /* @__PURE__ */ defineComponent({
76355
76381
  state.data = [];
76356
76382
  setRowField(`${field}_lb_`, null, "user");
76357
76383
  emit2("update:value", null);
76384
+ applyAutofillRules(autofillRules, void 0, props2.formData, { enabled: !!enableAutofill });
76358
76385
  emit2("change", null);
76359
76386
  }
76360
76387
  watch(
@@ -76736,11 +76763,12 @@ const _sfc_main$1K = /* @__PURE__ */ defineComponent({
76736
76763
  return transformUtils.transformSourceData2SubTable(res?.data || [], res?.dict || {}).map(mapRowToOption);
76737
76764
  }
76738
76765
  function handleValueChange(value) {
76739
- if (!isNil(value)) return;
76766
+ if (!isNil(value) && value !== "") return;
76740
76767
  const formField = inventoryBinding.value?.formField;
76741
76768
  if (isInventory.value && formField) {
76742
- setRowField(formField, void 0, "user");
76769
+ setRowField(formField, null, "user");
76743
76770
  }
76771
+ applyAutofillRules(autofillRules, void 0, props2.formData, { enabled: !!enableAutofill });
76744
76772
  emit2("change", void 0);
76745
76773
  }
76746
76774
  async function changeSelect(info) {
@@ -76802,7 +76830,7 @@ const _sfc_main$1K = /* @__PURE__ */ defineComponent({
76802
76830
  };
76803
76831
  }
76804
76832
  });
76805
- const AllocatePart = /* @__PURE__ */ _export_sfc(_sfc_main$1K, [["__scopeId", "data-v-6c8bafae"]]);
76833
+ const AllocatePart = /* @__PURE__ */ _export_sfc(_sfc_main$1K, [["__scopeId", "data-v-0580e88e"]]);
76806
76834
  function useAsyncOptions$1({ bindModelKey, modelCategory, code: code2 }) {
76807
76835
  async function getRefList(arg = {}) {
76808
76836
  const res = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
@@ -77329,6 +77357,9 @@ const _sfc_main$1I = /* @__PURE__ */ defineComponent({
77329
77357
  return { stale, option: stale ? null : option2 };
77330
77358
  }
77331
77359
  function handleNativeChange(value, option2) {
77360
+ if (isNil(value) || value === "") {
77361
+ applyAutofillRules(autofillRules, void 0, props2.formData, { enabled: !!enableAutofill });
77362
+ }
77332
77363
  emit2("change", value, option2);
77333
77364
  }
77334
77365
  onBeforeUnmount(() => {
@@ -77485,7 +77516,7 @@ const _sfc_main$1I = /* @__PURE__ */ defineComponent({
77485
77516
  };
77486
77517
  }
77487
77518
  });
77488
- const TraceDevice = /* @__PURE__ */ _export_sfc(_sfc_main$1I, [["__scopeId", "data-v-104db85d"]]);
77519
+ const TraceDevice = /* @__PURE__ */ _export_sfc(_sfc_main$1I, [["__scopeId", "data-v-e96f7d80"]]);
77489
77520
  function useReferenceLabel(rowSource, field, dataField = field) {
77490
77521
  const { formStateStore } = useRuntimeInstanceServices();
77491
77522
  const labelKey = `${field}_lb_`;
@@ -78156,6 +78187,9 @@ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
78156
78187
  if (targetRow[labelKey] != null) setRowField(labelKey, null, "user");
78157
78188
  });
78158
78189
  if (!accepted) return;
78190
+ applyAutofillRules(props2.widget.props.autofillRules, void 0, targetRow, {
78191
+ enabled: !!props2.widget.props.enableAutofill
78192
+ });
78159
78193
  emit2("change", null);
78160
78194
  open.value = false;
78161
78195
  }
@@ -85279,7 +85313,7 @@ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
85279
85313
  const { fields } = reactive(props2.widget.props);
85280
85314
  const dataRelationShip = inject(NCB_PROVIDE.DATA_RELATION_SHIP);
85281
85315
  const isPreview = computed(() => dataRelationShip?.renderModeType === RenderModeEnum.ViewMode);
85282
- const preserveOptionWidth = (fieldWidget) => fieldWidget.component === ComponentTypeEnum.EnumSelect && "bindCompStyleType" in fieldWidget.props && (fieldWidget.props.bindCompStyleType === BindCmpStyleEnum.CMP_RADIO || fieldWidget.props.bindCompStyleType === BindCmpStyleEnum.CMP_CHECKBOX) && !isCellAutoLineBreak(fieldWidget.style);
85316
+ const preserveOptionWidth = (fieldWidget) => [ComponentTypeEnum.EnumSelect, ComponentTypeEnum.Switch].includes(fieldWidget.component) && "bindCompStyleType" in fieldWidget.props && (fieldWidget.props.bindCompStyleType === BindCmpStyleEnum.CMP_RADIO || fieldWidget.props.bindCompStyleType === BindCmpStyleEnum.CMP_CHECKBOX) && !isCellAutoLineBreak(fieldWidget.style);
85283
85317
  const wrapFields = computed(() => isCellAutoLineBreak(props2.widget.style));
85284
85318
  const layoutStyle = computed(() => {
85285
85319
  const { textAlign, verticalAlign } = props2.widget.style ?? {};
@@ -85331,7 +85365,7 @@ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
85331
85365
  };
85332
85366
  }
85333
85367
  });
85334
- const combineFieldsRender = /* @__PURE__ */ _export_sfc(_sfc_main$1q, [["__scopeId", "data-v-fdb7c6dd"]]);
85368
+ const combineFieldsRender = /* @__PURE__ */ _export_sfc(_sfc_main$1q, [["__scopeId", "data-v-dd2329c8"]]);
85335
85369
  const __vite_glob_0_19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
85336
85370
  __proto__: null,
85337
85371
  default: combineFieldsRender
@@ -96183,8 +96217,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
96183
96217
  printTask = (async () => {
96184
96218
  if (document.activeElement instanceof HTMLElement) document.activeElement.blur();
96185
96219
  await nextTick();
96186
- const { printRuntimeInstance } = await import("./print-runtime-instance-VkEhvyE2.js");
96187
- const { default: renderer } = await import("./print-snapshot-renderer-CDWMLRpr.js");
96220
+ const { printRuntimeInstance } = await import("./print-runtime-instance-CNofYX1a.js");
96221
+ const { default: renderer } = await import("./print-snapshot-renderer-DhPqfVSQ.js");
96188
96222
  if (abort.signal.aborted) throw new Error("打印已取消");
96189
96223
  printRenderer.value = markRaw(renderer);
96190
96224
  await printRuntimeInstance(
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { H, J, K, M, N, O, Q, U, W, B, X, Y, Z, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, x, aa, ab, y, ac, P, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, h } from "./index-BzzDCpIa.js";
1
+ import { H, J, K, M, N, O, Q, U, W, B, X, Y, Z, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, x, aa, ab, y, ac, P, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, h } from "./index-qD--ChR8.js";
2
2
  import { O as O2, _, V } from "./online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DAafXJ42.js";
3
3
  import { DataSources } from "@gct-paas/form-base";
4
4
  export {
@@ -4,7 +4,7 @@ import "lodash-es";
4
4
  import "dayjs";
5
5
  import "@gct-paas/form-base";
6
6
  import "ant-design-vue";
7
- import { j as calcText } from "./index-BzzDCpIa.js";
7
+ import { j as calcText } from "./index-qD--ChR8.js";
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  __name: "pagination-design",
10
10
  props: {
@@ -0,0 +1,4 @@
1
+ import { k as _sfc_main } from "./index-qD--ChR8.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -1,4 +1,4 @@
1
- import { d as captureRuntimePrintSnapshot, w as waitPrintFonts, e as waitPrintImages, p as printPagesInIframe } from "./index-BzzDCpIa.js";
1
+ import { d as captureRuntimePrintSnapshot, w as waitPrintFonts, e as waitPrintImages, p as printPagesInIframe } from "./index-qD--ChR8.js";
2
2
  async function printRuntimeInstance(record, basicInfo, renderSnapshot, signal, options = {}) {
3
3
  if (!record.controller) throw new Error("表单尚未完成初始化,暂时无法打印");
4
4
  const snapshot = await record.controller.preparePrintSnapshot(
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, provide, ref, onErrorCaptured, onBeforeUnmount, openBlock, createBlock, unref } from "vue";
2
- import { X as RuntimeFormStateStore, Z as RuntimeInstanceRegistry, R as NCB_PROVIDE } from "./dynamic-table-action-Bc7yXz3G.js";
3
- import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "./sub-table-factory-DtohfawW.js";
4
- import { _ as _sfc_main$1 } from "./index-BzzDCpIa.js";
2
+ import { X as RuntimeFormStateStore, Z as RuntimeInstanceRegistry, R as NCB_PROVIDE } from "./dynamic-table-action-kbsA8eU-.js";
3
+ import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "./sub-table-factory-CQvJXz8J.js";
4
+ import { _ as _sfc_main$1 } from "./index-qD--ChR8.js";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "print-snapshot-renderer",
7
7
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeClass, createElementVNode } from "vue";
2
- import { B as BwipCodeTypeOptions, l as loadBwip } from "./index-BzzDCpIa.js";
2
+ import { B as BwipCodeTypeOptions, l as loadBwip } from "./index-qD--ChR8.js";
3
3
  const _hoisted_1 = ["src"];
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "qrcode-design",
@@ -0,0 +1,4 @@
1
+ import { f as _sfc_main } from "./index-qD--ChR8.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, normalizeClass } from "vue";
2
2
  import { ad as useNamespace, ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsAJe1I6.js";
3
- import { m as useDrop, T as TransferType, h as useModelFields, o as getFieldIcon, S as SingleDrop } from "./index-BzzDCpIa.js";
3
+ import { m as useDrop, T as TransferType, h as useModelFields, o as getFieldIcon, S as SingleDrop } from "./index-qD--ChR8.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "single-field-drop",
6
6
  props: {
@@ -1,5 +1,9 @@
1
1
  import { RefCustomLoader } from '../../../../../../nocode-base/src/interface/ref-loader';
2
2
  export declare function flattenMaterialConsumeRecord(item: Record<string, any>): Record<string, any>;
3
+ /** 扫码、批号查询和 LOT/SN 列表的物料信息统一为表内填充字段。 */
4
+ export declare function normalizeMaterialSubstitutionRecord(item: Record<string, any>): Record<string, any>;
5
+ /** 扫码解析后的物料编码需转换为产品 ID,并补齐被替换侧的物料信息。 */
6
+ export declare function buildSourceMaterialScanPatch(record: Record<string, any>): Record<string, unknown>;
3
7
  /** 同一条选中记录的批次名称、ID 和展示名必须一起回填。 */
4
8
  export declare function buildTargetMaterialSelectionPatch(record: Record<string, any>): Record<string, unknown>;
5
9
  /** 历史消耗只使用当前行生产 SN,未选、LOT 或无法确认类型时阻断查询。 */
@@ -83,7 +83,7 @@ export declare class MaterialRequisitionTableCore extends ProfileDrivenSubTableC
83
83
  * - 被替换物料从当前行生产 SN 的历史消耗中选择,可按行内工序过滤
84
84
  * - 替换物料从 LOT/SN 中选择,回填批次和物料信息,保留替换数量
85
85
  * - 替换物料批号回填替换物料及其信息
86
- * - 条码映射结果优先填充空行,否则追加新行
86
+ * - 扫码走生产标识匹配接口,按字段映射回填两侧物料,优先填充空行
87
87
  */
88
88
  export declare class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
89
89
  protected isEmptyScanRow(row: Record<string, unknown>): boolean;
@@ -1,5 +1,5 @@
1
1
  import { shallowReactive } from "vue";
2
- import { a_ as SubTableActionMenuTypeEnum, a$ as getMenuByAction, b0 as SubTableActionEnum, b1 as resolveScanFillData, aF as SubTableCore, b2 as buildDefaultMapFromProfile, b3 as buildFieldStatusFromProfile, b4 as getRowHandlersForFieldChange, b5 as getInsertSubMenu, b6 as resolveScanAdjustType, b7 as resolveScanQty, b8 as toDateOnly, b9 as hasSubtableBusinessData, ba as getCopySubMenu, bb as resolveScanParsedValue, bc as isProductBatchEmptyRow } from "./dynamic-table-action-Bc7yXz3G.js";
2
+ import { a_ as SubTableActionMenuTypeEnum, a$ as getMenuByAction, b0 as SubTableActionEnum, b1 as resolveScanFillData, b2 as resolveScanParsedValue, aF as SubTableCore, b3 as buildDefaultMapFromProfile, b4 as buildFieldStatusFromProfile, b5 as getRowHandlersForFieldChange, b6 as getInsertSubMenu, b7 as resolveScanAdjustType, b8 as resolveScanQty, b9 as toDateOnly, ba as hasSubtableBusinessData, bb as getCopySubMenu, bc as isProductBatchEmptyRow } from "./dynamic-table-action-kbsA8eU-.js";
3
3
  import { p as api, cO as F$1, aS as resolveLotDisplayLabel, cP as FILL_FROM_TARGET_PRODUCT_OPTION, b4 as resolveLotRecordByValue, b9 as ProductionIdentificationTypeEnum, b2 as buildLotSnListQuery, cQ as F$2, cR as SCAN_ROW_CONTENT_FIELDS, cS as F$3, cT as runRowHandler, c as getProfileByTableType, b as isBusinessSubTableProfile, cU as F$4, cV as F$5, cW as FILL_FROM_SOURCE_PRODUCT_OPTION, cX as FILL_FROM_TARGET_MATERIAL_NO_OPTION, cY as FILL_FROM_INVENTORY_OPTION, cZ as FILL_FROM_PART_OPTION, c_ as FILL_FROM_INVENTORY_OPTION$1, c$ as TABLE_TYPE, d0 as FILL_FROM_INVENTORY_OPTION$2, bf as F$6, d1 as INVENTORY_BASE_FIELDS, d2 as resolveGroupByWarehouse, d3 as AUTO_LOAD_READONLY_SELECT_FIELDS, be as STOCKTAKE_DIMENSION, bb as getParseRuleInfo, d4 as buildFillFromInventoryOption, c7 as calcFillData, d5 as resolveStocktakeInventoryApi, bc as getParseRuleValue, d6 as F$7, d7 as FILL_FROM_INVENTORY_OPTION$3, d8 as LOCKED_INPUT_FIELDS, cd as extractKeywordFromQueryData, d9 as composeProductionLotListQuery, da as F$8, db as isProductManuallyEditable, dc as applyFillFromMfgOrderOption, dd as applyFillFromOption$1, de as applyFillFromProductOption, df as mergeQueryFilters, dg as composeMaterialLotListQuery, b1 as LOT_CONTAINER_ROLE, dh as MATERIAL_CONTAINER_ID, di as F$9, dj as PRODUCT_QUICK_SEARCH_FIELDS, dk as PRODUCT_QUICK_SEARCH_EXP, dl as isProductManuallyEditable$1, dm as applyFillFromMaterialNoOption, dn as applyFillFromProductOption$1, dp as F$a, dq as FILL_FROM_INVENTORY_OPTION$4, a1 as FormTypeEnum, d as getBusinessProfileByRefModelType, aN as transformUtils, h as SubTableType } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsAJe1I6.js";
4
4
  import { has, merge } from "lodash-es";
5
5
  class RuntimeInstanceController {
@@ -268,6 +268,9 @@ function unwrapBizServiceList(result) {
268
268
  const data = result.data;
269
269
  if (Array.isArray(data)) return data;
270
270
  if (data && typeof data === "object") return [data];
271
+ if (typeof result === "object" && "product_id_" in result) {
272
+ return [result];
273
+ }
271
274
  return [];
272
275
  }
273
276
  async function matchProductionIdentificationScanRecords(parsed) {
@@ -294,8 +297,33 @@ function flattenMaterialConsumeRecord(item) {
294
297
  }
295
298
  return result;
296
299
  }
300
+ function normalizeMaterialSubstitutionRecord(item) {
301
+ const result = { ...item };
302
+ result.name_ = item.name_ ?? item.material_no_;
303
+ result.id_ = item.production_identification_id_ ?? item.id_;
304
+ for (const key of ["name_", "code_", "spec_"]) {
305
+ const field = `product_id_${key}`;
306
+ const foreignField = `product_id_.${key}`;
307
+ result[field] = item[field] ?? item[`product_${key}`] ?? item[foreignField] ?? item.__FOREIGN__?.[foreignField] ?? item._OPCT?.[foreignField];
308
+ }
309
+ return result;
310
+ }
297
311
  const emptyResult = () => ({ data: [], options: [], finished: true, totalCount: 0, totalPage: 0 });
312
+ function buildSourceMaterialScanPatch(record) {
313
+ const material = normalizeMaterialSubstitutionRecord(record);
314
+ const label = resolveLotDisplayLabel(material);
315
+ return {
316
+ [F$1.sourceProduct]: material.product_id_,
317
+ [F$1.sourceProductLb]: material.product_id_name_ ? JSON.stringify([material.product_id_name_]) : void 0,
318
+ [F$1.sourceMaterialNo]: material.name_,
319
+ [F$1.sourceMaterialNoLb]: label ? JSON.stringify([label]) : void 0,
320
+ [F$1.sourceProductName]: material.product_id_name_,
321
+ [F$1.sourceProductCode]: material.product_id_code_,
322
+ [F$1.sourceProductSpec]: material.product_id_spec_
323
+ };
324
+ }
298
325
  function buildTargetMaterialSelectionPatch(record) {
326
+ record = normalizeMaterialSubstitutionRecord(record);
299
327
  const hasBatch = !isBlank$4(record.name_);
300
328
  const label = hasBatch ? resolveLotDisplayLabel(record) : "";
301
329
  return {
@@ -331,6 +359,23 @@ function createMaterialConsumeHistoryLoader(rowData, fieldName = "SN") {
331
359
  pageSize = 20,
332
360
  ids = []
333
361
  }) => {
362
+ if (mode === "byIds" && ids.length === 1 && ids[0] === rowData[F$1.sourceProduct] && !isBlank$4(rowData[F$1.sourceProductName])) {
363
+ const item = {
364
+ product_id_: rowData[F$1.sourceProduct],
365
+ material_name_: rowData[F$1.sourceMaterialNo],
366
+ qty_consumed_: rowData[F$1.sourceQtyConsumed],
367
+ "product_id_.name_": rowData[F$1.sourceProductName],
368
+ "product_id_.code_": rowData[F$1.sourceProductCode],
369
+ "product_id_.spec_": rowData[F$1.sourceProductSpec]
370
+ };
371
+ return {
372
+ data: [item],
373
+ options: [{ label: item["product_id_.name_"], value: item.product_id_, _item: item }],
374
+ finished: true,
375
+ totalCount: 1,
376
+ totalPage: 1
377
+ };
378
+ }
334
379
  const value = rowData[F$1.productionContainer];
335
380
  const operation = rowData[F$1.routingOperation];
336
381
  if (isBlank$4(value)) return emptyResult();
@@ -409,7 +454,9 @@ function createTargetMaterialLoader(rowData) {
409
454
  {},
410
455
  { query, exp, pageNo, pageSize }
411
456
  );
412
- const rows = Array.isArray(res) ? res : res?.data ?? [];
457
+ const rows = (Array.isArray(res) ? res : res?.data ?? []).map(
458
+ normalizeMaterialSubstitutionRecord
459
+ );
413
460
  const totalCount = Number(res?.totalCount ?? rows.length);
414
461
  const totalPage = Number(res?.totalPage ?? Math.max(1, Math.ceil(totalCount / pageSize)));
415
462
  return {
@@ -677,7 +724,11 @@ class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
677
724
  return;
678
725
  }
679
726
  if (field === F$1.targetMaterialNo) {
680
- applyOptionFill(rowData, source, FILL_FROM_TARGET_MATERIAL_NO_OPTION);
727
+ applyOptionFill(
728
+ rowData,
729
+ normalizeMaterialSubstitutionRecord(source),
730
+ FILL_FROM_TARGET_MATERIAL_NO_OPTION
731
+ );
681
732
  }
682
733
  }
683
734
  calcSubTableActionMenu = ({ showDelBtn }) => [
@@ -702,11 +753,36 @@ class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
702
753
  ] : []
703
754
  ];
704
755
  async onScan(input) {
705
- const fillData = resolveScanFillData(input);
756
+ const fillData = { ...resolveScanFillData(input) };
706
757
  if (!Object.keys(fillData).length) {
707
758
  this.warning({ content: "未配置条码字段映射" });
708
759
  return;
709
760
  }
761
+ const parsed = resolveScanParsedValue(input);
762
+ if (!parsed || !hasProductionIdentificationScanKey(parsed)) {
763
+ this.error({ content: PRODUCTION_IDENTIFICATION_SCAN_LOT_OR_UNIQUE_REQUIRED_MSG });
764
+ return;
765
+ }
766
+ const records = await matchProductionIdentificationScanRecords(parsed);
767
+ if (!records.length) {
768
+ this.error({ content: PRODUCTION_IDENTIFICATION_SCAN_NOT_FOUND_MSG });
769
+ return;
770
+ }
771
+ const selected = await this.pickScanRecord(records.map(normalizeMaterialSubstitutionRecord));
772
+ if (!selected) return;
773
+ if (isBlank$3(selected.product_id_)) {
774
+ this.error({ content: PRODUCTION_IDENTIFICATION_SCAN_NOT_FOUND_MSG });
775
+ return;
776
+ }
777
+ if (F$1.sourceMaterialNo in fillData || F$1.sourceProduct in fillData) {
778
+ Object.assign(fillData, buildSourceMaterialScanPatch(selected));
779
+ }
780
+ if (F$1.targetMaterialNo in fillData || F$1.targetProduct in fillData) {
781
+ Object.assign(fillData, buildTargetMaterialSelectionPatch(selected), {
782
+ [F$1.targetProduct]: selected.product_id_,
783
+ [F$1.targetProductLb]: selected.product_id_name_ ? JSON.stringify([selected.product_id_name_]) : void 0
784
+ });
785
+ }
710
786
  this.appendOrFillScanRow(fillData);
711
787
  }
712
788
  }
@@ -4,7 +4,7 @@ import { Y as PaperWidgeValueType, ae as _export_sfc } from "./dynamic-table-act
4
4
  import "dayjs";
5
5
  import "@gct-paas/form-base";
6
6
  import "ant-design-vue";
7
- import { u as useSpreadSheet, h as useModelFields } from "./index-BzzDCpIa.js";
7
+ import { u as useSpreadSheet, h as useModelFields } from "./index-qD--ChR8.js";
8
8
  const _hoisted_1 = { class: "ws-pre-wrap" };
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
10
  __name: "text-design",
@@ -4,7 +4,7 @@ import "vue";
4
4
  import "dayjs";
5
5
  import "@gct-paas/form-base";
6
6
  import "ant-design-vue";
7
- import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig } from "./index-BzzDCpIa.js";
7
+ import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig } from "./index-qD--ChR8.js";
8
8
  function getTraceLikeSelectProps(data) {
9
9
  const isSubtableMfgOrder = !!data.info.subModelKey && (data.info.bizType === FIELD_TYPE.MFG_ORDER || data.info.fieldType === FIELD_TYPE.MFG_ORDER);
10
10
  const displayFields = (() => {