@gct-paas/word 0.1.63-beta.5 → 0.1.63-beta.7

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.
@@ -0,0 +1,7 @@
1
+ import { Doc } from '../../../../core';
2
+ import { DataEnricherRegistration } from '../../../../core/data';
3
+ import { BusinessSubTableType } from '../../types';
4
+ /**
5
+ * 按业务表类型,仅为该表内的「生产批次号」补全 _href_
6
+ */
7
+ export declare function createProductionContainerHyperlinkEnricher(doc: Doc, tableType: BusinessSubTableType): DataEnricherRegistration;
package/dist/index.es.js CHANGED
@@ -83937,6 +83937,10 @@ function getSelectStrategy(fieldType) {
83937
83937
  if (strategy) return strategy;
83938
83938
  return selectStrategyMap[FIELD_TYPE.REF];
83939
83939
  }
83940
+ const EXCLUDE_FROM_FIELD_TYPES = /* @__PURE__ */ new Set([FIELD_TYPE.BOOLEAN]);
83941
+ function isSelectableFromField(field) {
83942
+ return !EXCLUDE_FROM_FIELD_TYPES.has(field.type);
83943
+ }
83940
83944
  function buildFromFieldTree(currentField, refModelFieldList) {
83941
83945
  return [
83942
83946
  {
@@ -83945,7 +83949,7 @@ function buildFromFieldTree(currentField, refModelFieldList) {
83945
83949
  icon: currentField.icon,
83946
83950
  iconVersion: currentField.version,
83947
83951
  iconColor: "#026ac8",
83948
- children: refModelFieldList.map((item) => ({
83952
+ children: refModelFieldList.filter(isSelectableFromField).map((item) => ({
83949
83953
  label: item.name,
83950
83954
  value: item.key,
83951
83955
  icon: item.icon,
@@ -83976,8 +83980,22 @@ function isSubTableAutofillRule(rule) {
83976
83980
  function isAutofillSubTableTarget(rule, templatePath) {
83977
83981
  return isSubTableAutofillRule(rule) || parseValuePath(templatePath).isSubTable;
83978
83982
  }
83983
+ function resolveLegacyToSubFieldKey(rule, opts) {
83984
+ if (rule.toSubFieldKey) return rule.toSubFieldKey;
83985
+ if (!isSubTableAutofillRule(rule)) return void 0;
83986
+ if (opts?.sourceValuePath) {
83987
+ const parentFieldKey = parseValuePath(opts.sourceValuePath).parentFieldKey;
83988
+ if (parentFieldKey) return parentFieldKey;
83989
+ }
83990
+ return void 0;
83991
+ }
83992
+ function normalizeAutofillRule(rule, opts) {
83993
+ const toSubFieldKey = resolveLegacyToSubFieldKey(rule, opts);
83994
+ if (!toSubFieldKey || toSubFieldKey === rule.toSubFieldKey) return rule;
83995
+ return { ...rule, toSubFieldKey };
83996
+ }
83979
83997
  function buildAutofillTargetTemplatePath(rule) {
83980
- const { toField, toSubFieldKey, toSubModel } = rule;
83998
+ const { toField, toSubFieldKey } = rule;
83981
83999
  if (!toField) return void 0;
83982
84000
  if (isSubTableAutofillRule(rule) && !toSubFieldKey) return void 0;
83983
84001
  return generateValuePath(toField, isSubTableAutofillRule(rule) ? toSubFieldKey : "");
@@ -84022,10 +84040,15 @@ function applyAutofillRules(record, autofillRules, opts) {
84022
84040
  for (const ruleItem of autofillRules) {
84023
84041
  const { fromField } = ruleItem;
84024
84042
  if (!fromField) continue;
84025
- const templatePath = buildAutofillTargetTemplatePath(ruleItem);
84043
+ const normalizedRule = normalizeAutofillRule(ruleItem, opts);
84044
+ const templatePath = buildAutofillTargetTemplatePath(normalizedRule);
84026
84045
  if (!templatePath) continue;
84027
84046
  const value = resolveAutofillSourceValue(record, fromField);
84028
- for (const runtimeValuePath of resolveAutofillRuntimeValuePaths(templatePath, ruleItem, opts)) {
84047
+ for (const runtimeValuePath of resolveAutofillRuntimeValuePaths(
84048
+ templatePath,
84049
+ normalizedRule,
84050
+ opts
84051
+ )) {
84029
84052
  result[runtimeValuePath] = value;
84030
84053
  }
84031
84054
  }
@@ -89127,7 +89150,8 @@ const fields$1 = [
89127
89150
  optionMapping: { value: "id_", label: "name_" },
89128
89151
  searchFields: ["name_"],
89129
89152
  baseQuery: {
89130
- "production_identification_type_.in": ["LOT", "SN"]
89153
+ "production_identification_type_.in": ["LOT", "SN"],
89154
+ is_rework_: 0
89131
89155
  }
89132
89156
  },
89133
89157
  defaultProps: {},
@@ -89371,6 +89395,53 @@ const profile$1 = {
89371
89395
  labelBjColor: "rgba(33, 33, 213, 0.8)"
89372
89396
  }
89373
89397
  };
89398
+ const PRODUCTION_CONTAINER_FIELD_KEY = "production_container_id_";
89399
+ async function resolveHrefByLabel(path, doc) {
89400
+ const materialNo = doc.dataManager.get(getLabelPath(path));
89401
+ if (!isPresent(materialNo)) return null;
89402
+ try {
89403
+ const bool = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
89404
+ {
89405
+ bsKey: "biz_judge_jump",
89406
+ modelKey: "gct_edhr_instance",
89407
+ modelCategory: "entity"
89408
+ },
89409
+ { materialNo },
89410
+ {}
89411
+ );
89412
+ return bool ? String(materialNo) : null;
89413
+ } catch {
89414
+ return null;
89415
+ }
89416
+ }
89417
+ function createProductionContainerHyperlinkEnricher(doc, tableType) {
89418
+ const subFieldKeys = new Set(
89419
+ TableRuntimeContext.collectAll(doc).filter((ctx) => ctx.profile.type === tableType).map((ctx) => ctx.subFieldKey)
89420
+ );
89421
+ return createCompanionEnricher(
89422
+ {
89423
+ id: `hyperlink:${tableType}:production-container`,
89424
+ valuePathTemplate: `*.${PRODUCTION_CONTAINER_FIELD_KEY}`,
89425
+ match: (path) => {
89426
+ const parsed = parseSubtableFieldPath(path);
89427
+ if (!parsed || parsed.fieldKey !== PRODUCTION_CONTAINER_FIELD_KEY) return false;
89428
+ return subFieldKeys.has(parsed.subFieldKey);
89429
+ },
89430
+ doc
89431
+ },
89432
+ {
89433
+ cacheNamespace: "hyperlink_enrich_resolve",
89434
+ defaultIdPrefix: "hyperlink:",
89435
+ getCompanionPath: getHrefPath,
89436
+ buildCacheKey: (path, value, currentDoc) => ({
89437
+ path,
89438
+ value,
89439
+ materialNo: currentDoc.dataManager.get(getLabelPath(path))
89440
+ }),
89441
+ resolveCompanion: (path, _value, currentDoc) => resolveHrefByLabel(path, currentDoc)
89442
+ }
89443
+ );
89444
+ }
89374
89445
  function handleProductionContainerChange$1(doc, subFieldKey, rowIndex) {
89375
89446
  const ctx = getRowChangeCtx(doc, subFieldKey, rowIndex);
89376
89447
  if (!ctx) return;
@@ -89420,81 +89491,12 @@ function resolvePretreatmentListRemoteSync(records, ctx) {
89420
89491
  }
89421
89492
  };
89422
89493
  }
89494
+ registerStaticLabelEnricher((doc) => createProductionContainerHyperlinkEnricher(doc, TABLE_TYPE$1));
89423
89495
  registerRowHandler(TABLE_TYPE$1, "on-production-container-change", handleProductionContainerChange$1);
89424
89496
  registerRowHandler(TABLE_TYPE$1, "on-mfg-order-change", handleMfgOrderChange);
89425
89497
  registerRowHandler(TABLE_TYPE$1, "on-material-container-no-change", handleMaterialContainerNoChange);
89426
89498
  registerRowHandler(TABLE_TYPE$1, "on-product-change", handleProductChange);
89427
89499
  registerRemoteSyncApplyResolver(TABLE_TYPE$1, "remote-sync", resolvePretreatmentListRemoteSync);
89428
- async function openPretreatmentListScan(options) {
89429
- const { doc, subRenderer, subFieldKey } = options;
89430
- const regionProps = subRenderer.widgetMeta?.props;
89431
- await openScanWithParseRule({
89432
- regionId: subRenderer.id,
89433
- barcodeParsingRulesId: regionProps?.barcode_parsing_rules_id_,
89434
- modalEvent: "OPEN_PRETREATMENT_LIST_TABLE_SCAN_MODAL",
89435
- title: subRenderer.tableName || "操作",
89436
- onScan: async (scanInput, { parseRuleProps, scanRuleInfo }) => {
89437
- const ctx = TableRuntimeContext.find(doc, subFieldKey);
89438
- const remoteSync = ctx?.profile.remoteSync;
89439
- if (!ctx || !remoteSync) return;
89440
- const parsed = getParseRuleValue$1(scanInput.str, scanRuleInfo.rules_);
89441
- if (!parsed.lot) {
89442
- GctMessage.error("条码中未解析到批次号");
89443
- return;
89444
- }
89445
- const remoteSyncEngine = new RemoteSyncEngine(doc);
89446
- const requestBody = remoteSyncEngine.buildBody(
89447
- {
89448
- name_: parsed.lot
89449
- },
89450
- remoteSync
89451
- );
89452
- if (!requestBody) {
89453
- GctMessage.error("扫描的物料批次不存在");
89454
- return;
89455
- }
89456
- const { queryData: typeQueryData, exp: typeExp } = buildLikeQuery(
89457
- [],
89458
- "",
89459
- {
89460
- "production_identification_type_.eq": "MATERIAL",
89461
- "production_identification_type_.isNull": null
89462
- },
89463
- {
89464
- filterCombine: "or"
89465
- }
89466
- );
89467
- const queryData = {
89468
- ...typeQueryData,
89469
- ...requestBody
89470
- };
89471
- const nameKeys = Object.keys(requestBody);
89472
- const nameExp = nameKeys.length <= 1 ? nameKeys[0] ?? "" : `AND(${nameKeys.join(",")})`;
89473
- const exp = typeExp && nameExp ? `AND(${nameExp},${typeExp})` : nameExp || typeExp;
89474
- const result = await callBizService(remoteSync.api, {
89475
- query: queryData,
89476
- exp
89477
- });
89478
- const records = unwrapBizServiceList(result);
89479
- if (!records.length) {
89480
- GctMessage.error("扫描的物料批次不存在");
89481
- return;
89482
- }
89483
- const fillData = parseRuleProps?.fillMapArr?.length ? calcFillData(parsed, parseRuleProps.fillMapArr) : {};
89484
- const rows = doc.dataManager.getRawData()[subFieldKey] || [];
89485
- remoteSyncEngine.applySyncResult(ctx, rows.length, remoteSync, records, "", {
89486
- qty_: parsed.qty,
89487
- ...fillData
89488
- });
89489
- }
89490
- });
89491
- }
89492
- async function changePretreatmentListParseRule(options) {
89493
- return changeBarcodeParseRule({
89494
- ...options,
89495
- modalEvent: "OPEN_PRETREATMENT_LIST_TABLE_PARSE_RULE_MODAL"
89496
- });
89497
- }
89498
89500
  const F$1 = {
89499
89501
  /** 产品 */
89500
89502
  product: "product_id_",
@@ -89542,7 +89544,8 @@ const fields = [
89542
89544
  optionMapping: { value: "id_", label: "name_" },
89543
89545
  searchFields: ["name_"],
89544
89546
  baseQuery: {
89545
- "production_identification_type_.in": ["LOT", "SN"]
89547
+ "production_identification_type_.in": ["LOT", "SN"],
89548
+ is_rework_: 0
89546
89549
  }
89547
89550
  },
89548
89551
  defaultProps: {},
@@ -89665,64 +89668,9 @@ function handleProductionContainerChange(doc, subFieldKey, rowIndex) {
89665
89668
  if (!isBlank(ctx.row[F$1.productionContainer])) return;
89666
89669
  applyRowClears(ctx, CLEAR_ON_PROD_CONTAINER_EMPTY);
89667
89670
  }
89671
+ registerStaticLabelEnricher((doc) => createProductionContainerHyperlinkEnricher(doc, TABLE_TYPE));
89668
89672
  registerRowHandler(TABLE_TYPE, "on-production-container-change", handleProductionContainerChange);
89669
89673
  registerRemoteSyncApplyResolver(TABLE_TYPE, "remote-sync", resolveEntrustSterilBatchListRemoteSync);
89670
- async function openEntrustSterilBatchListScan(options) {
89671
- const { doc, subRenderer, subFieldKey } = options;
89672
- const regionProps = subRenderer.widgetMeta?.props;
89673
- await openScanWithParseRule({
89674
- regionId: subRenderer.id,
89675
- barcodeParsingRulesId: regionProps?.barcode_parsing_rules_id_,
89676
- modalEvent: "OPEN_ENTRUST_STERIL_BATCH_LIST_TABLE_SCAN_MODAL",
89677
- title: subRenderer.tableName || "操作",
89678
- onScan: async (scanInput, { parseRuleProps, scanRuleInfo }) => {
89679
- const ctx = TableRuntimeContext.find(doc, subFieldKey);
89680
- const remoteSync = ctx?.profile.remoteSync;
89681
- if (!ctx || !remoteSync) return;
89682
- const parsed = getParseRuleValue$1(scanInput.str, scanRuleInfo.rules_);
89683
- if (!parsed.lot) {
89684
- GctMessage.error("条码中未解析到批次号");
89685
- return;
89686
- }
89687
- const remoteSyncEngine = new RemoteSyncEngine(doc);
89688
- const requestBody = remoteSyncEngine.buildBody(
89689
- {
89690
- name_: parsed.lot
89691
- },
89692
- remoteSync
89693
- );
89694
- if (!requestBody) {
89695
- GctMessage.error("扫描的物料批次不存在");
89696
- return;
89697
- }
89698
- const { queryData, exp } = buildLikeQuery([], "", {
89699
- "production_identification_type_.in": ["LOT", "SN"],
89700
- ...requestBody
89701
- });
89702
- const result = await callBizService(remoteSync.api, {
89703
- query: queryData,
89704
- exp
89705
- });
89706
- const records = unwrapBizServiceList(result);
89707
- if (!records.length) {
89708
- GctMessage.error("扫描的物料批次不存在");
89709
- return;
89710
- }
89711
- const fillData = parseRuleProps?.fillMapArr?.length ? calcFillData(parsed, parseRuleProps.fillMapArr) : {};
89712
- const rows = doc.dataManager.getRawData()[subFieldKey] || [];
89713
- remoteSyncEngine.applySyncResult(ctx, rows.length, remoteSync, records, "", {
89714
- qty_: parsed.qty,
89715
- ...fillData
89716
- });
89717
- }
89718
- });
89719
- }
89720
- async function changeEntrustSterilBatchListParseRule(options) {
89721
- return changeBarcodeParseRule({
89722
- ...options,
89723
- modalEvent: "OPEN_ENTRUST_STERIL_BATCH_LIST_TABLE_PARSE_RULE_MODAL"
89724
- });
89725
- }
89726
89674
  const ALL_TABLE_PROFILES = [
89727
89675
  profile$a,
89728
89676
  profile$9,
@@ -102757,6 +102705,10 @@ class LayoutManager {
102757
102705
  while (remainingTable) {
102758
102706
  const page = this.pageContext.page;
102759
102707
  const pageRemainingSize = page.getRemainingSize();
102708
+ const firstRowHeight = remainingTable?.children?.[0]?._height;
102709
+ if (firstRowHeight && firstRowHeight > pageRemainingSize) {
102710
+ break;
102711
+ }
102760
102712
  const { cur, next } = splitTableByHeight(remainingTable, pageRemainingSize);
102761
102713
  const newRowIds = [];
102762
102714
  const trModelIds = cur?.getChildren().map((item) => item.modelRef?.id) || [];
@@ -108064,6 +108016,34 @@ const DefaultDocxJson = {
108064
108016
  fontTable,
108065
108017
  footers
108066
108018
  };
108019
+ const updatePgSzElInfo = (pgSz, paperSize, options) => {
108020
+ const direction = options?.direction ?? "portrait";
108021
+ let width = 11906;
108022
+ let height = 16838;
108023
+ switch (paperSize) {
108024
+ case PaperSizeConst.A3:
108025
+ width = 16838;
108026
+ height = 23811;
108027
+ break;
108028
+ case PaperSizeConst.A5:
108029
+ width = 8391;
108030
+ height = 11906;
108031
+ break;
108032
+ case PaperSizeConst.CUSTOM:
108033
+ width = Number(UnitConverter.mmToTwip(options.width));
108034
+ height = Number(UnitConverter.mmToTwip(options.height));
108035
+ break;
108036
+ default:
108037
+ width = 11906;
108038
+ height = 16838;
108039
+ break;
108040
+ }
108041
+ if (direction === "landscape") {
108042
+ [width, height] = [height, width];
108043
+ }
108044
+ pgSz["@attrs"]["w:w"] = String(width);
108045
+ pgSz["@attrs"]["w:h"] = String(height);
108046
+ };
108067
108047
  class RuntimeJsonBuilder {
108068
108048
  json;
108069
108049
  constructor(base) {
@@ -108088,32 +108068,7 @@ class RuntimeJsonBuilder {
108088
108068
  setPageSize(paperSize, options) {
108089
108069
  const pgSz = this.findNode(this.json.document, "w:pgSz");
108090
108070
  if (!pgSz) return this;
108091
- const direction = options?.direction ?? "portrait";
108092
- let width = 11906;
108093
- let height = 16838;
108094
- switch (paperSize) {
108095
- case PaperSizeConst.A3:
108096
- width = 16838;
108097
- height = 23811;
108098
- break;
108099
- case PaperSizeConst.A5:
108100
- width = 8391;
108101
- height = 11906;
108102
- break;
108103
- case PaperSizeConst.CUSTOM:
108104
- width = Number(UnitConverter.mmToTwip(options.width));
108105
- height = Number(UnitConverter.mmToTwip(options.height));
108106
- break;
108107
- default:
108108
- width = 11906;
108109
- height = 16838;
108110
- break;
108111
- }
108112
- if (direction === "landscape") {
108113
- [width, height] = [height, width];
108114
- }
108115
- pgSz["@attrs"]["w:w"] = String(width);
108116
- pgSz["@attrs"]["w:h"] = String(height);
108071
+ updatePgSzElInfo(pgSz, paperSize, options);
108117
108072
  return this;
108118
108073
  }
108119
108074
  /**
@@ -108832,7 +108787,17 @@ class MCDataUtil {
108832
108787
  * @param rowPath $.f_sub[n] n 必须为数字
108833
108788
  */
108834
108789
  static updateConfirmableFieldsDisablement(option) {
108835
- const fields2 = ["product_id_", "material_no_", "qty_", "routing_operation_id_"];
108790
+ const fields2 = [
108791
+ "product_id_",
108792
+ "material_no_",
108793
+ "qty_",
108794
+ "routing_operation_id_",
108795
+ "qty_required_uom_id_",
108796
+ "qty_uom_id_",
108797
+ "qty_transfer_",
108798
+ "qty_transfer_uom_id_",
108799
+ "transfer_formula_"
108800
+ ];
108836
108801
  this._updateDisablement({ ...option, fields: fields2 });
108837
108802
  }
108838
108803
  /**
@@ -109729,6 +109694,21 @@ class SingleTemplateStrategy extends DocRequestStrategy {
109729
109694
  direction: requestInfo.direction
109730
109695
  }).build();
109731
109696
  requestInfo.runtimeJson = JSON.stringify(json);
109697
+ } else {
109698
+ const jsonObj = JSON.parse(requestInfo.runtimeJson);
109699
+ const pgSzEl = jsonObj.document.elements[0].elements.find((el) => el.name === "w:sectPr")?.elements.find((el) => el.name === "w:pgSz");
109700
+ if (pgSzEl) {
109701
+ updatePgSzElInfo(
109702
+ pgSzEl,
109703
+ requestInfo.paperSize || PaperSizeConst.A4,
109704
+ {
109705
+ width: requestInfo.width,
109706
+ height: requestInfo.height,
109707
+ direction: requestInfo.direction
109708
+ }
109709
+ );
109710
+ }
109711
+ requestInfo.runtimeJson = JSON.stringify(jsonObj);
109732
109712
  }
109733
109713
  return {
109734
109714
  id,
@@ -116305,31 +116285,19 @@ const _hoisted_8$e = {
116305
116285
  };
116306
116286
  const _hoisted_9$a = { class: "item-icon" };
116307
116287
  const _hoisted_10$8 = { class: "item-icon scale-large" };
116308
- const _hoisted_11$6 = {
116309
- key: 2,
116310
- class: "action-menu"
116311
- };
116288
+ const _hoisted_11$6 = { class: "action-menu" };
116312
116289
  const _hoisted_12$5 = { class: "item-icon" };
116313
- const _hoisted_13$4 = { class: "item-icon scale-large" };
116314
- const _hoisted_14$3 = {
116315
- key: 3,
116316
- class: "action-menu"
116317
- };
116318
- const _hoisted_15$2 = { class: "item-icon" };
116290
+ const _hoisted_13$4 = { class: "item-icon" };
116291
+ const _hoisted_14$3 = { class: "item-icon scale-large" };
116292
+ const _hoisted_15$2 = { class: "item-label flex-between-center" };
116319
116293
  const _hoisted_16$1 = { class: "item-icon scale-large" };
116320
- const _hoisted_17 = { class: "action-menu" };
116321
- const _hoisted_18 = { class: "item-icon" };
116322
- const _hoisted_19 = { class: "item-icon" };
116323
- const _hoisted_20 = { class: "item-icon scale-large" };
116324
- const _hoisted_21 = { class: "item-label flex-between-center" };
116325
- const _hoisted_22 = { class: "item-icon scale-large" };
116326
- const _hoisted_23 = { class: "item-label flex-between-center" };
116327
- const _hoisted_24 = {
116328
- key: 4,
116294
+ const _hoisted_17 = { class: "item-label flex-between-center" };
116295
+ const _hoisted_18 = {
116296
+ key: 2,
116329
116297
  class: "action-menu"
116330
116298
  };
116331
- const _hoisted_25 = { class: "item-icon" };
116332
- const _hoisted_26 = { class: "more-btn" };
116299
+ const _hoisted_19 = { class: "item-icon" };
116300
+ const _hoisted_20 = { class: "more-btn" };
116333
116301
  const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116334
116302
  __name: "sub-table-action",
116335
116303
  props: {
@@ -116459,30 +116427,6 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116459
116427
  await changeWarehouseInventoryParseRule({ doc, subRenderer, subModelKey });
116460
116428
  }
116461
116429
  };
116462
- const handleEntrustSterilBatchListAction = async (val) => {
116463
- const { doc } = props;
116464
- const { subRenderer, valuePath, subFieldKey, subModelKey } = getCtx();
116465
- if (!valuePath || !subFieldKey) return;
116466
- if (val === "scan") {
116467
- checkTargetRowThen(() => {
116468
- openEntrustSterilBatchListScan({ doc, subRenderer, subFieldKey });
116469
- });
116470
- } else if (val === "change-rule") {
116471
- await changeEntrustSterilBatchListParseRule({ doc, subRenderer, subModelKey });
116472
- }
116473
- };
116474
- const handlePretreatmentListAction = async (val) => {
116475
- const { doc } = props;
116476
- const { subRenderer, valuePath, subFieldKey, subModelKey } = getCtx();
116477
- if (!valuePath || !subFieldKey) return;
116478
- if (val === "scan") {
116479
- checkTargetRowThen(() => {
116480
- openPretreatmentListScan({ doc, subRenderer, subFieldKey });
116481
- });
116482
- } else if (val === "change-rule") {
116483
- await changePretreatmentListParseRule({ doc, subRenderer, subModelKey });
116484
- }
116485
- };
116486
116430
  const getIsAddable = () => {
116487
116431
  if (subTableType.value.isMaterialConsume) {
116488
116432
  const { subFieldKey } = getCtx();
@@ -116576,7 +116520,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116576
116520
  popper: withCtx(() => [
116577
116521
  createElementVNode("div", _hoisted_2$1e, [
116578
116522
  subTableType.value.isMaterialConsume ? (openBlock(), createElementBlock("div", _hoisted_3$V, [
116579
- _cache[24] || (_cache[24] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116523
+ _cache[20] || (_cache[20] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116580
116524
  actionInfo.value.canEdit ? (openBlock(), createElementBlock("div", {
116581
116525
  key: 0,
116582
116526
  class: "menu-item",
@@ -116585,7 +116529,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116585
116529
  createElementVNode("div", _hoisted_4$I, [
116586
116530
  createVNode(unref(GctIcon), { icon: "icon-bianji" })
116587
116531
  ]),
116588
- _cache[20] || (_cache[20] = createElementVNode("div", { class: "item-label" }, "编辑行", -1))
116532
+ _cache[16] || (_cache[16] = createElementVNode("div", { class: "item-label" }, "编辑行", -1))
116589
116533
  ])) : createCommentVNode("", true),
116590
116534
  __props.isLastRow ? (openBlock(), createElementBlock("div", {
116591
116535
  key: 1,
@@ -116595,7 +116539,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116595
116539
  createElementVNode("div", _hoisted_5$y, [
116596
116540
  createVNode(unref(GctIcon), { icon: "icon-saoyisao" })
116597
116541
  ]),
116598
- _cache[21] || (_cache[21] = createElementVNode("div", { class: "item-label" }, "条码扫描", -1))
116542
+ _cache[17] || (_cache[17] = createElementVNode("div", { class: "item-label" }, "条码扫描", -1))
116599
116543
  ])) : createCommentVNode("", true),
116600
116544
  __props.isLastRow ? (openBlock(), createElementBlock("div", {
116601
116545
  key: 2,
@@ -116605,7 +116549,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116605
116549
  createElementVNode("div", _hoisted_6$m, [
116606
116550
  createVNode(unref(GctIcon), { icon: "icon-a-bom11" })
116607
116551
  ]),
116608
- _cache[22] || (_cache[22] = createElementVNode("div", { class: "item-label" }, "BOM", -1))
116552
+ _cache[18] || (_cache[18] = createElementVNode("div", { class: "item-label" }, "BOM", -1))
116609
116553
  ])) : createCommentVNode("", true),
116610
116554
  __props.isLastRow ? (openBlock(), createElementBlock("div", {
116611
116555
  key: 3,
@@ -116615,11 +116559,11 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116615
116559
  createElementVNode("div", _hoisted_7$h, [
116616
116560
  createVNode(unref(GctIcon), { icon: "icon-tiaomajiexi" })
116617
116561
  ]),
116618
- _cache[23] || (_cache[23] = createElementVNode("div", { class: "item-label" }, "条码解析规则变更", -1))
116562
+ _cache[19] || (_cache[19] = createElementVNode("div", { class: "item-label" }, "条码解析规则变更", -1))
116619
116563
  ])) : createCommentVNode("", true)
116620
116564
  ])) : createCommentVNode("", true),
116621
116565
  subTableType.value.isWarehouseInventory ? (openBlock(), createElementBlock("div", _hoisted_8$e, [
116622
- _cache[27] || (_cache[27] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116566
+ _cache[23] || (_cache[23] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116623
116567
  createElementVNode("div", {
116624
116568
  class: "menu-item",
116625
116569
  onClick: _cache[4] || (_cache[4] = ($event) => handleWarehouseInventoryAction("scan"))
@@ -116627,7 +116571,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116627
116571
  createElementVNode("div", _hoisted_9$a, [
116628
116572
  createVNode(unref(GctIcon), { icon: "icon-saoyisao" })
116629
116573
  ]),
116630
- _cache[25] || (_cache[25] = createElementVNode("div", { class: "item-label" }, " 条码扫描 ", -1))
116574
+ _cache[21] || (_cache[21] = createElementVNode("div", { class: "item-label" }, " 条码扫描 ", -1))
116631
116575
  ]),
116632
116576
  createElementVNode("div", {
116633
116577
  class: "menu-item",
@@ -116636,89 +116580,47 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116636
116580
  createElementVNode("div", _hoisted_10$8, [
116637
116581
  createVNode(unref(GctIcon), { icon: "icon-tiaomajiexi" })
116638
116582
  ]),
116639
- _cache[26] || (_cache[26] = createElementVNode("div", { class: "item-label" }, " 条码解析规则变更 ", -1))
116583
+ _cache[22] || (_cache[22] = createElementVNode("div", { class: "item-label" }, " 条码解析规则变更 ", -1))
116640
116584
  ])
116641
116585
  ])) : createCommentVNode("", true),
116642
- subTableType.value.isEntrustSterilBatchList ? (openBlock(), createElementBlock("div", _hoisted_11$6, [
116643
- _cache[30] || (_cache[30] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116586
+ createElementVNode("div", _hoisted_11$6, [
116587
+ _cache[28] || (_cache[28] = createElementVNode("div", { class: "menu-title" }, "行编辑", -1)),
116644
116588
  createElementVNode("div", {
116645
116589
  class: "menu-item",
116646
- onClick: _cache[6] || (_cache[6] = ($event) => handleEntrustSterilBatchListAction("scan"))
116590
+ onClick: _cache[6] || (_cache[6] = ($event) => handleAction("insertRowAfter"))
116647
116591
  }, [
116648
116592
  createElementVNode("div", _hoisted_12$5, [
116649
- createVNode(unref(GctIcon), { icon: "icon-saoyisao" })
116650
- ]),
116651
- _cache[28] || (_cache[28] = createElementVNode("div", { class: "item-label" }, " 条码扫描 ", -1))
116652
- ]),
116653
- createElementVNode("div", {
116654
- class: "menu-item",
116655
- onClick: _cache[7] || (_cache[7] = ($event) => handleEntrustSterilBatchListAction("change-rule"))
116656
- }, [
116657
- createElementVNode("div", _hoisted_13$4, [
116658
- createVNode(unref(GctIcon), { icon: "icon-tiaomajiexi" })
116659
- ]),
116660
- _cache[29] || (_cache[29] = createElementVNode("div", { class: "item-label" }, " 条码解析规则变更 ", -1))
116661
- ])
116662
- ])) : createCommentVNode("", true),
116663
- subTableType.value.isPretreatmentList ? (openBlock(), createElementBlock("div", _hoisted_14$3, [
116664
- _cache[33] || (_cache[33] = createElementVNode("div", { class: "menu-title" }, "业务操作", -1)),
116665
- createElementVNode("div", {
116666
- class: "menu-item",
116667
- onClick: _cache[8] || (_cache[8] = ($event) => handlePretreatmentListAction("scan"))
116668
- }, [
116669
- createElementVNode("div", _hoisted_15$2, [
116670
- createVNode(unref(GctIcon), { icon: "icon-saoyisao" })
116671
- ]),
116672
- _cache[31] || (_cache[31] = createElementVNode("div", { class: "item-label" }, " 条码扫描 ", -1))
116673
- ]),
116674
- createElementVNode("div", {
116675
- class: "menu-item",
116676
- onClick: _cache[9] || (_cache[9] = ($event) => handlePretreatmentListAction("change-rule"))
116677
- }, [
116678
- createElementVNode("div", _hoisted_16$1, [
116679
- createVNode(unref(GctIcon), { icon: "icon-tiaomajiexi" })
116680
- ]),
116681
- _cache[32] || (_cache[32] = createElementVNode("div", { class: "item-label" }, " 条码解析规则变更 ", -1))
116682
- ])
116683
- ])) : createCommentVNode("", true),
116684
- createElementVNode("div", _hoisted_17, [
116685
- _cache[38] || (_cache[38] = createElementVNode("div", { class: "menu-title" }, "行编辑", -1)),
116686
- createElementVNode("div", {
116687
- class: "menu-item",
116688
- onClick: _cache[10] || (_cache[10] = ($event) => handleAction("insertRowAfter"))
116689
- }, [
116690
- createElementVNode("div", _hoisted_18, [
116691
116593
  createVNode(unref(GctIcon), { icon: "icon-tianjia" })
116692
116594
  ]),
116693
- _cache[34] || (_cache[34] = createElementVNode("div", { class: "item-label" }, " 加一行 ", -1))
116595
+ _cache[24] || (_cache[24] = createElementVNode("div", { class: "item-label" }, " 加一行 ", -1))
116694
116596
  ]),
116695
116597
  actionInfo.value.canCopy ? (openBlock(), createElementBlock("div", {
116696
116598
  key: 0,
116697
116599
  class: "menu-item",
116698
- onClick: _cache[11] || (_cache[11] = ($event) => handleAction("copyCurrentRow"))
116600
+ onClick: _cache[7] || (_cache[7] = ($event) => handleAction("copyCurrentRow"))
116699
116601
  }, [
116700
- createElementVNode("div", _hoisted_19, [
116602
+ createElementVNode("div", _hoisted_13$4, [
116701
116603
  createVNode(unref(GctIcon), { icon: "icon-fuzhihang" })
116702
116604
  ]),
116703
- _cache[35] || (_cache[35] = createElementVNode("div", { class: "item-label" }, " 复制行 ", -1))
116605
+ _cache[25] || (_cache[25] = createElementVNode("div", { class: "item-label" }, " 复制行 ", -1))
116704
116606
  ])) : createCommentVNode("", true),
116705
116607
  actionInfo.value.canInsertMulti ? (openBlock(), createElementBlock("div", {
116706
116608
  key: 1,
116707
116609
  class: "menu-item",
116708
- onClick: _cache[14] || (_cache[14] = ($event) => handleAction("insertRowBeforeMore"))
116610
+ onClick: _cache[10] || (_cache[10] = ($event) => handleAction("insertRowBeforeMore"))
116709
116611
  }, [
116710
- createElementVNode("div", _hoisted_20, [
116612
+ createElementVNode("div", _hoisted_14$3, [
116711
116613
  createVNode(unref(GctIcon), { icon: "icon-shangfangcharuhang" })
116712
116614
  ]),
116713
- createElementVNode("div", _hoisted_21, [
116714
- _cache[36] || (_cache[36] = createElementVNode("div", null, " 在上方插入行 ", -1)),
116615
+ createElementVNode("div", _hoisted_15$2, [
116616
+ _cache[26] || (_cache[26] = createElementVNode("div", null, " 在上方插入行 ", -1)),
116715
116617
  createVNode(unref(GctInputNumber), {
116716
116618
  modelValue: formState.upRowNum,
116717
- "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => formState.upRowNum = $event),
116619
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => formState.upRowNum = $event),
116718
116620
  min: 1,
116719
116621
  integer: "",
116720
116622
  style: { "width": "68px" },
116721
- onClick: _cache[13] || (_cache[13] = withModifiers(() => {
116623
+ onClick: _cache[9] || (_cache[9] = withModifiers(() => {
116722
116624
  }, ["stop"]))
116723
116625
  }, null, 8, ["modelValue"])
116724
116626
  ])
@@ -116726,40 +116628,40 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116726
116628
  actionInfo.value.canInsertMulti ? (openBlock(), createElementBlock("div", {
116727
116629
  key: 2,
116728
116630
  class: "menu-item",
116729
- onClick: _cache[17] || (_cache[17] = ($event) => handleAction("insertRowAfterMore"))
116631
+ onClick: _cache[13] || (_cache[13] = ($event) => handleAction("insertRowAfterMore"))
116730
116632
  }, [
116731
- createElementVNode("div", _hoisted_22, [
116633
+ createElementVNode("div", _hoisted_16$1, [
116732
116634
  createVNode(unref(GctIcon), { icon: "icon-xiafangcharuhang" })
116733
116635
  ]),
116734
- createElementVNode("div", _hoisted_23, [
116735
- _cache[37] || (_cache[37] = createElementVNode("div", null, " 在下方插入行 ", -1)),
116636
+ createElementVNode("div", _hoisted_17, [
116637
+ _cache[27] || (_cache[27] = createElementVNode("div", null, " 在下方插入行 ", -1)),
116736
116638
  createVNode(unref(GctInputNumber), {
116737
116639
  modelValue: formState.downRowNum,
116738
- "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => formState.downRowNum = $event),
116640
+ "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => formState.downRowNum = $event),
116739
116641
  min: 1,
116740
116642
  integer: "",
116741
116643
  style: { "width": "68px" },
116742
- onClick: _cache[16] || (_cache[16] = withModifiers(() => {
116644
+ onClick: _cache[12] || (_cache[12] = withModifiers(() => {
116743
116645
  }, ["stop"]))
116744
116646
  }, null, 8, ["modelValue"])
116745
116647
  ])
116746
116648
  ])) : createCommentVNode("", true)
116747
116649
  ]),
116748
- actionInfo.value.canDelete ? (openBlock(), createElementBlock("div", _hoisted_24, [
116650
+ actionInfo.value.canDelete ? (openBlock(), createElementBlock("div", _hoisted_18, [
116749
116651
  createElementVNode("div", {
116750
116652
  class: "menu-item",
116751
- onClick: _cache[18] || (_cache[18] = ($event) => handleAction("deleteRowCurrent"))
116653
+ onClick: _cache[14] || (_cache[14] = ($event) => handleAction("deleteRowCurrent"))
116752
116654
  }, [
116753
- createElementVNode("div", _hoisted_25, [
116655
+ createElementVNode("div", _hoisted_19, [
116754
116656
  createVNode(unref(GctIcon), { icon: "icon-shanchu1" })
116755
116657
  ]),
116756
- _cache[39] || (_cache[39] = createElementVNode("div", { class: "item-label" }, " 删除行 ", -1))
116658
+ _cache[29] || (_cache[29] = createElementVNode("div", { class: "item-label" }, " 删除行 ", -1))
116757
116659
  ])
116758
116660
  ])) : createCommentVNode("", true)
116759
116661
  ])
116760
116662
  ]),
116761
116663
  default: withCtx(() => [
116762
- createElementVNode("div", _hoisted_26, [
116664
+ createElementVNode("div", _hoisted_20, [
116763
116665
  createVNode(unref(GctIcon), {
116764
116666
  icon: "icon-gengduo1",
116765
116667
  color: "#fff"
@@ -116771,7 +116673,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116771
116673
  subTableType.value.isMaterialConsume && __props.isLastRow && actionInfo.value.canConfirm ? (openBlock(), createElementBlock("div", {
116772
116674
  key: 2,
116773
116675
  class: "confirm-btn",
116774
- onClick: _cache[19] || (_cache[19] = ($event) => handleMaterialConsumeAction("confirm"))
116676
+ onClick: _cache[15] || (_cache[15] = ($event) => handleMaterialConsumeAction("confirm"))
116775
116677
  }, [
116776
116678
  createVNode(unref(GctIcon), {
116777
116679
  icon: "icon-tijiao1",
@@ -116784,7 +116686,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116784
116686
  };
116785
116687
  }
116786
116688
  });
116787
- const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$2T, [["__scopeId", "data-v-527a94cf"]]);
116689
+ const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$2T, [["__scopeId", "data-v-ce0d6ea2"]]);
116788
116690
  const _sfc_main$2S = /* @__PURE__ */ defineComponent({
116789
116691
  __name: "index",
116790
116692
  props: {
@@ -117374,21 +117276,28 @@ const TABLE_VALIDATION_RULES = [
117374
117276
  invalid: (region) => !region.widgetMeta.props.barcode_parsing_rules_id_,
117375
117277
  code: "barcode-parsing-rules-required",
117376
117278
  message: "请给库存盘点表设置条码解析规则"
117377
- },
117378
- {
117379
- hasTable: (tbl) => tbl.hasRepeating && tbl.repeating.some((r) => r.layoutType === "entrust-steril-batch-list-table"),
117380
- getRegions: (tbl) => tbl.repeating.filter((r) => r.layoutType === "entrust-steril-batch-list-table"),
117381
- invalid: (region) => !region.widgetMeta.props.barcode_parsing_rules_id_,
117382
- code: "barcode-parsing-rules-required",
117383
- message: "请给委托灭菌生产批次表设置条码解析规则"
117384
- },
117385
- {
117386
- hasTable: (tbl) => tbl.hasRepeating && tbl.repeating.some((r) => r.layoutType === "pretreatment-list-table"),
117387
- getRegions: (tbl) => tbl.repeating.filter((r) => r.layoutType === "pretreatment-list-table"),
117388
- invalid: (region) => !region.widgetMeta.props.barcode_parsing_rules_id_,
117389
- code: "barcode-parsing-rules-required",
117390
- message: "请给预处理表设置条码解析规则"
117391
117279
  }
117280
+ // {
117281
+ // hasTable: (tbl: Wtbl) =>
117282
+ // tbl.hasRepeating &&
117283
+ // tbl.repeating.some((r) => r.layoutType === 'entrust-steril-batch-list-table'),
117284
+ // getRegions: (tbl: Wtbl) =>
117285
+ // tbl.repeating.filter((r) => r.layoutType === 'entrust-steril-batch-list-table'),
117286
+ // invalid: (region: Wtbl['repeating'][number]) =>
117287
+ // !(region.widgetMeta.props as WarehouseInventoryTableProps).barcode_parsing_rules_id_,
117288
+ // code: 'barcode-parsing-rules-required' as const,
117289
+ // message: '请给委托灭菌生产批次表设置条码解析规则',
117290
+ // },
117291
+ // {
117292
+ // hasTable: (tbl: Wtbl) =>
117293
+ // tbl.hasRepeating && tbl.repeating.some((r) => r.layoutType === 'pretreatment-list-table'),
117294
+ // getRegions: (tbl: Wtbl) =>
117295
+ // tbl.repeating.filter((r) => r.layoutType === 'pretreatment-list-table'),
117296
+ // invalid: (region: Wtbl['repeating'][number]) =>
117297
+ // !(region.widgetMeta.props as WarehouseInventoryTableProps).barcode_parsing_rules_id_,
117298
+ // code: 'barcode-parsing-rules-required' as const,
117299
+ // message: '请给预处理表设置条码解析规则',
117300
+ // },
117392
117301
  ];
117393
117302
  function validateDocDesigner(doc) {
117394
117303
  if (!doc?.model) {
@@ -124399,7 +124308,7 @@ const manifest$9 = {
124399
124308
  },
124400
124309
  computed: {
124401
124310
  onlyMainModelCanDefault: true,
124402
- onValueChangeRule: idOnValueChangeRule
124311
+ onValueChangeRule: [...hyperlinkAndIdOnValueChangeRules]
124403
124312
  }
124404
124313
  };
124405
124314
  const __vite_glob_0_63 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
@@ -128540,8 +128449,8 @@ const _sfc_main$1N = /* @__PURE__ */ defineComponent({
128540
128449
  const showQuickFill = computed(() => !NO_QUICK_FILL_TYPES.includes(layoutType.value));
128541
128450
  const showBarcodeParsingRules = computed(
128542
128451
  () => [
128543
- "pretreatment-list-table",
128544
- "entrust-steril-batch-list-table",
128452
+ // 'pretreatment-list-table',
128453
+ // 'entrust-steril-batch-list-table',
128545
128454
  "warehouse-inventory-table"
128546
128455
  ].includes(layoutType.value)
128547
128456
  );
@@ -128646,7 +128555,7 @@ const _sfc_main$1N = /* @__PURE__ */ defineComponent({
128646
128555
  };
128647
128556
  }
128648
128557
  });
128649
- const RepeatingSubTablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$1N, [["__scopeId", "data-v-afa04296"]]);
128558
+ const RepeatingSubTablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$1N, [["__scopeId", "data-v-b48fc893"]]);
128650
128559
  function createTablePanelSchema(schemaKey, render2, title) {
128651
128560
  const layoutType = schemaKey.replace(/\.basic$/, "");
128652
128561
  return {
@@ -132367,7 +132276,7 @@ function isModelAssociationField(field) {
132367
132276
  const manifestType = resolveFieldManifestType(field);
132368
132277
  return MODEL_ASSOCIATION_TYPES.has(storageType) || MODEL_ASSOCIATION_TYPES.has(manifestType);
132369
132278
  }
132370
- function matchAutofillTargetField(fromMeta, toMeta, options) {
132279
+ function matchAutofillTargetField(fromMeta, toMeta) {
132371
132280
  if (isModelAssociationField(fromMeta)) {
132372
132281
  return isModelAssociationField(toMeta) && fromMeta.bindInfo === toMeta.bindInfo;
132373
132282
  }
@@ -132379,9 +132288,6 @@ function matchAutofillTargetField(fromMeta, toMeta, options) {
132379
132288
  matched = false;
132380
132289
  }
132381
132290
  }
132382
- if (options?.isSubTable && !matched && isModelAssociationField(toMeta)) {
132383
- matched = true;
132384
- }
132385
132291
  return matched;
132386
132292
  }
132387
132293
  function encodeToFieldValue(meta) {
@@ -132452,8 +132358,7 @@ function filterToFieldTreeBySource(nodes, fromMeta) {
132452
132358
  return nodes.reduce((acc, node) => {
132453
132359
  const children = (node.children ?? []).filter((child) => {
132454
132360
  const field = child._targetMeta?.field;
132455
- const isSubTable = child._targetMeta?.subModel === 1;
132456
- return field ? matchAutofillTargetField(fromMeta, field, { isSubTable }) : false;
132361
+ return field ? matchAutofillTargetField(fromMeta, field) : false;
132457
132362
  });
132458
132363
  if (children.length) {
132459
132364
  acc.push({ ...node, children });
@@ -132614,9 +132519,7 @@ function resolveParamFieldTree(doc) {
132614
132519
  const mainModelKey = doc.mainModelKey;
132615
132520
  const mainModel = doc.fieldModelQuery.getModel(mainModelKey);
132616
132521
  const mainFields = doc.fieldModelQuery.getFieldList(mainModelKey).filter(
132617
- (field) => field.createType !== "SYSTEM" && [FIELD_TYPE.TEXT, FIELD_TYPE.DOUBLE, FIELD_TYPE.INTEGER, FIELD_TYPE.DECIMAL].includes(
132618
- field.type
132619
- )
132522
+ (field) => field.createType !== "SYSTEM" && [FIELD_TYPE.DOUBLE, FIELD_TYPE.INTEGER, FIELD_TYPE.DECIMAL].includes(field.type)
132620
132523
  );
132621
132524
  const nodes = [];
132622
132525
  if (mainFields.length) {
@@ -135383,23 +135286,56 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
135383
135286
  );
135384
135287
  return contexts.filter((ctx) => ctx.fields.length > 0);
135385
135288
  }
135386
- async function openFilterModal() {
135289
+ async function loadCurrentSubTableContext(subFieldKey) {
135387
135290
  const mainModelKey = docInst.value?.mainModelKey ?? modelKey.value;
135388
- const isSubTableSource = Boolean(props.subFieldKey);
135389
- const toModelKey = isSubTableSource ? mainModelKey : modelKey.value;
135390
- const [refRes, mainFieldList, toModelInfo] = await Promise.all([
135391
- loadFieldList(refModelKey.value),
135392
- loadFieldList(toModelKey),
135393
- loadModelInfo(toModelKey)
135291
+ const [subFieldList, subModelInfo, mainFieldList, mainModelInfo] = await Promise.all([
135292
+ loadFieldList(modelKey.value),
135293
+ loadModelInfo(modelKey.value),
135294
+ loadFieldList(mainModelKey),
135295
+ loadModelInfo(mainModelKey)
135394
135296
  ]);
135395
- const toSubTables = await loadSubTableContexts(mainFieldList || []);
135297
+ const subFieldMeta = (mainFieldList || []).find((field) => field.key === subFieldKey);
135298
+ return {
135299
+ toModelInfo: mainModelInfo,
135300
+ toSubTables: [
135301
+ {
135302
+ subFieldKey,
135303
+ subFieldName: subFieldMeta?.name ?? subModelInfo?.modelName ?? subFieldKey,
135304
+ subModelKey: modelKey.value,
135305
+ subModelName: subModelInfo?.modelName ?? subFieldMeta?.name ?? subFieldKey,
135306
+ fields: filterNonSystemFields(subFieldList || [])
135307
+ }
135308
+ ]
135309
+ };
135310
+ }
135311
+ async function openFilterModal() {
135312
+ const isSubTableSource = Boolean(props.subFieldKey);
135313
+ const refRes = await loadFieldList(refModelKey.value);
135314
+ let toFieldList = [];
135315
+ let toSubTables = [];
135316
+ let toModelInfo;
135317
+ if (isSubTableSource) {
135318
+ const subFieldKey = props.subFieldKey.replace(/^\$\./, "");
135319
+ const currentSub = await loadCurrentSubTableContext(subFieldKey);
135320
+ toModelInfo = currentSub.toModelInfo;
135321
+ toSubTables = currentSub.toSubTables;
135322
+ toFieldList = [];
135323
+ } else {
135324
+ const [mainFieldList, modelInfo] = await Promise.all([
135325
+ loadFieldList(modelKey.value),
135326
+ loadModelInfo(modelKey.value)
135327
+ ]);
135328
+ toModelInfo = modelInfo;
135329
+ toFieldList = filterNonSystemFields(mainFieldList || []);
135330
+ toSubTables = await loadSubTableContexts(mainFieldList || []);
135331
+ }
135396
135332
  GctModal.open({
135397
135333
  title: "添加规则",
135398
135334
  body: AutofillRulesModel,
135399
135335
  bodyProps: {
135400
135336
  currentField: props.currentField,
135401
135337
  refModelFieldList: filterNonSystemFields(refRes || []),
135402
- toFieldList: filterNonSystemFields(mainFieldList || []),
135338
+ toFieldList,
135403
135339
  toSubTables,
135404
135340
  toModelInfo,
135405
135341
  rules: _autofillRules.value
@@ -135440,7 +135376,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
135440
135376
  };
135441
135377
  }
135442
135378
  });
135443
- const RefAutofillEditor = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["__scopeId", "data-v-0f198b3d"]]);
135379
+ const RefAutofillEditor = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["__scopeId", "data-v-449fd707"]]);
135444
135380
  const ONLINE_FORM_TMPL_MODULE_TYPE = "online_form_module";
135445
135381
  function buildFormTmplRefId(item) {
135446
135382
  if (!item.id) return "";
@@ -21,7 +21,7 @@ export interface UpdateRowOption {
21
21
  * - [需求数量、已消耗数量] 始终只读
22
22
  * - [有效期、唯一标识、自定义字段] 始终可填(不做控制)
23
23
  * - 选择的物料类型是[查看物料]时 [批次、上料数量、工序] 只读
24
- * - 单行校验通过后(包括暂存后再次编辑)[物料、批次、上料数量、工序] 只读
24
+ * - 单行校验通过后(包括暂存后再次编辑)[物料、批次、上料数量、工序、需求数量单位、数量单位、转换后数量、转换数量单位ID、单位转化公式] 只读
25
25
  */
26
26
  export declare class MCDataUtil {
27
27
  /**
@@ -1,4 +1,10 @@
1
1
  import { PaperSize } from '../../../core/constants';
2
+ interface IPageSizeOptions {
3
+ width: number;
4
+ height: number;
5
+ direction?: 'portrait' | 'landscape';
6
+ }
7
+ export declare const updatePgSzElInfo: (pgSz: any, paperSize: PaperSize, options: IPageSizeOptions) => void;
2
8
  export declare class RuntimeJsonBuilder {
3
9
  private json;
4
10
  constructor(base: any);
@@ -6,13 +12,10 @@ export declare class RuntimeJsonBuilder {
6
12
  /**
7
13
  * 页面设置
8
14
  */
9
- setPageSize(paperSize: PaperSize, options: {
10
- width: number;
11
- height: number;
12
- direction?: 'portrait' | 'landscape';
13
- }): this;
15
+ setPageSize(paperSize: PaperSize, options: IPageSizeOptions): this;
14
16
  /**
15
17
  * 构建
16
18
  */
17
19
  build(): any;
18
20
  }
21
+ export {};
package/dist/word.css CHANGED
@@ -9124,20 +9124,20 @@ textarea[data-v-2de31883]::placeholder {
9124
9124
  .table-action .row-headers .row-header:last-child .row-add-btn[data-v-c40eef9f] .gct-icon.bottom {
9125
9125
  transform: translateY(-100%);
9126
9126
  }
9127
- .sub-table-action-container[data-v-527a94cf] {
9127
+ .sub-table-action-container[data-v-ce0d6ea2] {
9128
9128
  position: absolute;
9129
9129
  z-index: 999;
9130
9130
  }
9131
- .sub-table-action-bar[data-v-527a94cf],
9132
- .sub-table-action-popper[data-v-527a94cf] {
9131
+ .sub-table-action-bar[data-v-ce0d6ea2],
9132
+ .sub-table-action-popper[data-v-ce0d6ea2] {
9133
9133
  pointer-events: auto;
9134
9134
  user-select: none;
9135
9135
  }
9136
- .sub-table-action-bar[data-v-527a94cf] {
9136
+ .sub-table-action-bar[data-v-ce0d6ea2] {
9137
9137
  display: flex;
9138
9138
  }
9139
- .sub-table-action-bar .more-btn[data-v-527a94cf],
9140
- .sub-table-action-bar .confirm-btn[data-v-527a94cf] {
9139
+ .sub-table-action-bar .more-btn[data-v-ce0d6ea2],
9140
+ .sub-table-action-bar .confirm-btn[data-v-ce0d6ea2] {
9141
9141
  display: flex;
9142
9142
  justify-content: center;
9143
9143
  align-items: center;
@@ -9146,44 +9146,44 @@ textarea[data-v-2de31883]::placeholder {
9146
9146
  cursor: pointer;
9147
9147
  box-sizing: border-box;
9148
9148
  }
9149
- .sub-table-action-bar .more-btn[data-v-527a94cf] {
9149
+ .sub-table-action-bar .more-btn[data-v-ce0d6ea2] {
9150
9150
  width: 10px;
9151
9151
  background: #026ac8;
9152
9152
  border-radius: 0 4px 4px 0;
9153
9153
  }
9154
- .sub-table-action-bar .confirm-btn[data-v-527a94cf] {
9154
+ .sub-table-action-bar .confirm-btn[data-v-ce0d6ea2] {
9155
9155
  margin-left: 4px;
9156
9156
  border-radius: 4px;
9157
9157
  border: 1px solid #4ec262;
9158
9158
  }
9159
- .sub-table-action-popper[data-v-527a94cf] {
9159
+ .sub-table-action-popper[data-v-ce0d6ea2] {
9160
9160
  padding: 2px 8px;
9161
9161
  }
9162
- .sub-table-action-popper .action-menu[data-v-527a94cf] {
9162
+ .sub-table-action-popper .action-menu[data-v-ce0d6ea2] {
9163
9163
  padding: 4px 0;
9164
9164
  width: 220px;
9165
9165
  user-select: none;
9166
9166
  }
9167
- .sub-table-action-popper .action-menu + .action-menu[data-v-527a94cf] {
9167
+ .sub-table-action-popper .action-menu + .action-menu[data-v-ce0d6ea2] {
9168
9168
  margin-top: 4px;
9169
9169
  padding-top: 4px;
9170
9170
  border-top: 1px solid #efefef;
9171
9171
  }
9172
- .sub-table-action-popper .action-menu .menu-title[data-v-527a94cf] {
9172
+ .sub-table-action-popper .action-menu .menu-title[data-v-ce0d6ea2] {
9173
9173
  color: #bcbcbc;
9174
9174
  margin: 4px 0;
9175
9175
  }
9176
- .sub-table-action-popper .action-menu .menu-item[data-v-527a94cf] {
9176
+ .sub-table-action-popper .action-menu .menu-item[data-v-ce0d6ea2] {
9177
9177
  display: flex;
9178
9178
  align-items: center;
9179
9179
  padding: 8px 10px;
9180
9180
  border-radius: 4px;
9181
9181
  }
9182
- .sub-table-action-popper .action-menu .menu-item[data-v-527a94cf]:hover {
9182
+ .sub-table-action-popper .action-menu .menu-item[data-v-ce0d6ea2]:hover {
9183
9183
  cursor: pointer;
9184
9184
  background-color: #f2f5f8;
9185
9185
  }
9186
- .sub-table-action-popper .action-menu .menu-item .item-icon[data-v-527a94cf] {
9186
+ .sub-table-action-popper .action-menu .menu-item .item-icon[data-v-ce0d6ea2] {
9187
9187
  display: flex;
9188
9188
  align-items: center;
9189
9189
  justify-content: start;
@@ -9191,14 +9191,14 @@ textarea[data-v-2de31883]::placeholder {
9191
9191
  width: 20px;
9192
9192
  height: 20px;
9193
9193
  }
9194
- .sub-table-action-popper .action-menu .menu-item .item-icon.scale-large[data-v-527a94cf] {
9194
+ .sub-table-action-popper .action-menu .menu-item .item-icon.scale-large[data-v-ce0d6ea2] {
9195
9195
  transform: scale(1.5);
9196
9196
  }
9197
- .sub-table-action-popper .action-menu .menu-item .item-label[data-v-527a94cf] {
9197
+ .sub-table-action-popper .action-menu .menu-item .item-label[data-v-ce0d6ea2] {
9198
9198
  flex-grow: 1;
9199
9199
  margin-left: 8px;
9200
9200
  }
9201
- .sub-table-action-popper .action-menu .menu-item .item-label.flex-between-center[data-v-527a94cf] {
9201
+ .sub-table-action-popper .action-menu .menu-item .item-label.flex-between-center[data-v-ce0d6ea2] {
9202
9202
  display: flex;
9203
9203
  justify-content: space-between;
9204
9204
  align-items: center;
@@ -10675,22 +10675,22 @@ svg.portrait-icon[data-v-8bdb451e] {
10675
10675
  .sub-table-basic-info .delete-title[data-v-5a638f72]:hover {
10676
10676
  opacity: 0.7;
10677
10677
  }
10678
- .panel-repeating-sub-table[data-v-afa04296] {
10678
+ .panel-repeating-sub-table[data-v-b48fc893] {
10679
10679
  position: relative;
10680
10680
  }
10681
- .panel-repeating-sub-table .container[data-v-afa04296] {
10681
+ .panel-repeating-sub-table .container[data-v-b48fc893] {
10682
10682
  padding: 16px;
10683
10683
  }
10684
- .panel-repeating-sub-table .form-custom-label[data-v-afa04296] {
10684
+ .panel-repeating-sub-table .form-custom-label[data-v-b48fc893] {
10685
10685
  display: inline-flex;
10686
10686
  align-items: center;
10687
10687
  gap: 4px;
10688
10688
  }
10689
- .panel-repeating-sub-table .form-custom-label .icon[data-v-afa04296] {
10689
+ .panel-repeating-sub-table .form-custom-label .icon[data-v-b48fc893] {
10690
10690
  cursor: pointer;
10691
10691
  vertical-align: text-top;
10692
10692
  }
10693
- .panel-repeating-sub-table .content[data-v-afa04296] {
10693
+ .panel-repeating-sub-table .content[data-v-b48fc893] {
10694
10694
  display: flex;
10695
10695
  align-items: center;
10696
10696
  justify-content: flex-end;
@@ -12246,14 +12246,14 @@ svg.portrait-icon[data-v-8bdb451e] {
12246
12246
  line-height: 20px;
12247
12247
  margin-top: 4px;
12248
12248
  }
12249
- .form-item.default.ref-autofill-editor.is-content-hidden[data-v-0f198b3d] .form-item__label {
12249
+ .form-item.default.ref-autofill-editor.is-content-hidden[data-v-449fd707] .form-item__label {
12250
12250
  margin-bottom: 0 !important ;
12251
12251
  }
12252
- .ref-autofill-editor__extra[data-v-0f198b3d] {
12252
+ .ref-autofill-editor__extra[data-v-449fd707] {
12253
12253
  display: inline-flex;
12254
12254
  align-items: center;
12255
12255
  }
12256
- .data-filter-button[data-v-0f198b3d] {
12256
+ .data-filter-button[data-v-449fd707] {
12257
12257
  height: 32px;
12258
12258
  border: 1px solid #d9d9d9;
12259
12259
  color: #333;
@@ -12264,11 +12264,11 @@ svg.portrait-icon[data-v-8bdb451e] {
12264
12264
  cursor: pointer;
12265
12265
  box-sizing: border-box;
12266
12266
  }
12267
- .data-filter-button[data-v-0f198b3d]:hover {
12267
+ .data-filter-button[data-v-449fd707]:hover {
12268
12268
  border-color: #026ac8;
12269
12269
  color: #026ac8;
12270
12270
  }
12271
- .data-filter-button.primary[data-v-0f198b3d] {
12271
+ .data-filter-button.primary[data-v-449fd707] {
12272
12272
  border-color: #026ac8;
12273
12273
  background-color: #026ac8;
12274
12274
  color: #fff;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/word",
3
- "version": "0.1.63-beta.5",
3
+ "version": "0.1.63-beta.7",
4
4
  "description": "GCT 在线 word",
5
5
  "keywords": [
6
6
  "vue",