@gct-paas/word 0.1.64 → 0.1.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -19240,7 +19240,7 @@ const _hoisted_1$2B = { class: "gct-time-container" };
19240
19240
  const _hoisted_2$1E = { class: "scrollbar-container" };
19241
19241
  const _hoisted_3$1i = ["onClick"];
19242
19242
  const _hoisted_4$Y = { class: "gct-time-footer" };
19243
- const _hoisted_5$M = { class: "gct-right-btns" };
19243
+ const _hoisted_5$N = { class: "gct-right-btns" };
19244
19244
  const _sfc_main$3T = /* @__PURE__ */ defineComponent({
19245
19245
  __name: "time",
19246
19246
  props: {
@@ -19432,7 +19432,7 @@ const _sfc_main$3T = /* @__PURE__ */ defineComponent({
19432
19432
  class: "gct-now-btn",
19433
19433
  onClick: nowDay
19434
19434
  }, "此刻"),
19435
- createElementVNode("div", _hoisted_5$M, [
19435
+ createElementVNode("div", _hoisted_5$N, [
19436
19436
  __props.showClearBtn && __props.modelValue ? (openBlock(), createBlock(unref(GctButton), {
19437
19437
  key: 0,
19438
19438
  class: "gct-sure-btn",
@@ -19468,9 +19468,9 @@ const _hoisted_1$2A = { class: "gct-dtp-panel-inner" };
19468
19468
  const _hoisted_2$1D = { class: "gct-dtp-date" };
19469
19469
  const _hoisted_3$1h = { class: "gct-dtp-header" };
19470
19470
  const _hoisted_4$X = { class: "text" };
19471
- const _hoisted_5$L = { class: "gct-dtp-head" };
19472
- const _hoisted_6$t = { class: "gct-dtp-rows-wrapper" };
19473
- const _hoisted_7$o = ["onClick"];
19471
+ const _hoisted_5$M = { class: "gct-dtp-head" };
19472
+ const _hoisted_6$u = { class: "gct-dtp-rows-wrapper" };
19473
+ const _hoisted_7$p = ["onClick"];
19474
19474
  const _hoisted_8$j = { class: "dtp-day-label" };
19475
19475
  const _hoisted_9$d = {
19476
19476
  key: 0,
@@ -19481,7 +19481,7 @@ const _hoisted_10$b = {
19481
19481
  class: "gct-dtp-time"
19482
19482
  };
19483
19483
  const _hoisted_11$8 = { class: "gct-dtp-time-header" };
19484
- const _hoisted_12$6 = { class: "gct-dtp-time-container" };
19484
+ const _hoisted_12$7 = { class: "gct-dtp-time-container" };
19485
19485
  const _sfc_main$3S = /* @__PURE__ */ defineComponent({
19486
19486
  __name: "calendar",
19487
19487
  props: {
@@ -19677,7 +19677,7 @@ const _sfc_main$3S = /* @__PURE__ */ defineComponent({
19677
19677
  onClick: withModifiers(nextMonth, ["stop"])
19678
19678
  })
19679
19679
  ]),
19680
- createElementVNode("div", _hoisted_5$L, [
19680
+ createElementVNode("div", _hoisted_5$M, [
19681
19681
  (openBlock(true), createElementBlock(Fragment, null, renderList(weekdayShort.value, (d) => {
19682
19682
  return openBlock(), createElementBlock("div", {
19683
19683
  class: "day head",
@@ -19685,7 +19685,7 @@ const _sfc_main$3S = /* @__PURE__ */ defineComponent({
19685
19685
  }, toDisplayString(d), 1);
19686
19686
  }), 128))
19687
19687
  ]),
19688
- createElementVNode("div", _hoisted_6$t, [
19688
+ createElementVNode("div", _hoisted_6$u, [
19689
19689
  createVNode(Transition, {
19690
19690
  name: transitionName.value,
19691
19691
  mode: "out-in"
@@ -19707,7 +19707,7 @@ const _sfc_main$3S = /* @__PURE__ */ defineComponent({
19707
19707
  onClick: ($event) => onSelectDay(day)
19708
19708
  }, [
19709
19709
  createElementVNode("div", _hoisted_8$j, toDisplayString(day.label), 1)
19710
- ], 10, _hoisted_7$o);
19710
+ ], 10, _hoisted_7$p);
19711
19711
  }), 128))
19712
19712
  ]);
19713
19713
  }), 128))
@@ -19732,7 +19732,7 @@ const _sfc_main$3S = /* @__PURE__ */ defineComponent({
19732
19732
  ]),
19733
19733
  showTimeLocal.value ? (openBlock(), createElementBlock("div", _hoisted_10$b, [
19734
19734
  createElementVNode("div", _hoisted_11$8, toDisplayString(timeValue.value), 1),
19735
- createElementVNode("div", _hoisted_12$6, [
19735
+ createElementVNode("div", _hoisted_12$7, [
19736
19736
  createVNode(GctTimer, {
19737
19737
  "model-value": timeValue.value,
19738
19738
  format: __props.timeFormat,
@@ -19881,9 +19881,9 @@ const _hoisted_3$1f = {
19881
19881
  class: "group-label"
19882
19882
  };
19883
19883
  const _hoisted_4$W = ["onClick"];
19884
- const _hoisted_5$K = { class: "option-label" };
19885
- const _hoisted_6$s = { class: "option-right" };
19886
- const _hoisted_7$n = {
19884
+ const _hoisted_5$L = { class: "option-label" };
19885
+ const _hoisted_6$t = { class: "option-right" };
19886
+ const _hoisted_7$o = {
19887
19887
  key: 1,
19888
19888
  class: "divider"
19889
19889
  };
@@ -20005,11 +20005,11 @@ const _sfc_main$3O = /* @__PURE__ */ defineComponent({
20005
20005
  createTextVNode(toDisplayString(item.tip || item.label), 1)
20006
20006
  ]),
20007
20007
  default: withCtx(() => [
20008
- createElementVNode("span", _hoisted_5$K, toDisplayString(item.label), 1)
20008
+ createElementVNode("span", _hoisted_5$L, toDisplayString(item.label), 1)
20009
20009
  ]),
20010
20010
  _: 2
20011
20011
  }, 1032, ["disabled"]),
20012
- createElementVNode("div", _hoisted_6$s, [
20012
+ createElementVNode("div", _hoisted_6$t, [
20013
20013
  withDirectives(createVNode(unref(GctIcon), {
20014
20014
  class: "edit-icon",
20015
20015
  icon: "icon-sheji-2",
@@ -20029,7 +20029,7 @@ const _sfc_main$3O = /* @__PURE__ */ defineComponent({
20029
20029
  ], 64))
20030
20030
  ], 10, _hoisted_4$W);
20031
20031
  }), 128)),
20032
- group2._showDivider !== false && groupIndex !== normalizedGroupOptions.value.length - 1 ? (openBlock(), createElementBlock("div", _hoisted_7$n)) : createCommentVNode("", true)
20032
+ group2._showDivider !== false && groupIndex !== normalizedGroupOptions.value.length - 1 ? (openBlock(), createElementBlock("div", _hoisted_7$o)) : createCommentVNode("", true)
20033
20033
  ], 64);
20034
20034
  }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(normalizedFlatOptions.value, (item) => {
20035
20035
  return openBlock(), createElementBlock("div", {
@@ -20331,12 +20331,12 @@ const _hoisted_1$2t = {
20331
20331
  const _hoisted_2$1x = ["src"];
20332
20332
  const _hoisted_3$1b = { class: "upload-img-mask" };
20333
20333
  const _hoisted_4$V = { class: "tip-text" };
20334
- const _hoisted_5$J = {
20334
+ const _hoisted_5$K = {
20335
20335
  key: 2,
20336
20336
  class: "upload-loading"
20337
20337
  };
20338
- const _hoisted_6$r = ["accept"];
20339
- const _hoisted_7$m = ["src"];
20338
+ const _hoisted_6$s = ["accept"];
20339
+ const _hoisted_7$n = ["src"];
20340
20340
  const _sfc_main$3J = /* @__PURE__ */ defineComponent({
20341
20341
  __name: "image-upload",
20342
20342
  props: {
@@ -20425,7 +20425,7 @@ const _sfc_main$3J = /* @__PURE__ */ defineComponent({
20425
20425
  createElementVNode("div", _hoisted_4$V, toDisplayString(__props.tip), 1)
20426
20426
  ])
20427
20427
  ])),
20428
- loading.value ? (openBlock(), createElementBlock("div", _hoisted_5$J, [..._cache[2] || (_cache[2] = [
20428
+ loading.value ? (openBlock(), createElementBlock("div", _hoisted_5$K, [..._cache[2] || (_cache[2] = [
20429
20429
  createElementVNode("i", { class: "iconfont icon-gongzuotai_gongshi" }, null, -1)
20430
20430
  ])])) : createCommentVNode("", true)
20431
20431
  ], 4),
@@ -20436,13 +20436,13 @@ const _sfc_main$3J = /* @__PURE__ */ defineComponent({
20436
20436
  class: "gct-upload-hidden-input",
20437
20437
  accept: __props.accept,
20438
20438
  onChange: handleChange
20439
- }, null, 40, _hoisted_6$r),
20439
+ }, null, 40, _hoisted_6$s),
20440
20440
  previewUrl.value ? (openBlock(), createElementBlock("div", {
20441
20441
  key: 0,
20442
20442
  class: "preview-mask",
20443
20443
  onClick: _cache[0] || (_cache[0] = ($event) => previewUrl.value = "")
20444
20444
  }, [
20445
- createElementVNode("img", { src: previewUrl.value }, null, 8, _hoisted_7$m)
20445
+ createElementVNode("img", { src: previewUrl.value }, null, 8, _hoisted_7$n)
20446
20446
  ])) : createCommentVNode("", true)
20447
20447
  ], 64);
20448
20448
  };
@@ -20462,12 +20462,12 @@ const _hoisted_4$U = {
20462
20462
  key: 2,
20463
20463
  class: "gct-input-count"
20464
20464
  };
20465
- const _hoisted_5$I = { key: 0 };
20466
- const _hoisted_6$q = {
20465
+ const _hoisted_5$J = { key: 0 };
20466
+ const _hoisted_6$r = {
20467
20467
  key: 3,
20468
20468
  class: "gct-input-suffix"
20469
20469
  };
20470
- const _hoisted_7$l = { class: "gct-input-suffix-text" };
20470
+ const _hoisted_7$m = { class: "gct-input-suffix-text" };
20471
20471
  const _sfc_main$3I = /* @__PURE__ */ defineComponent({
20472
20472
  __name: "input",
20473
20473
  props: {
@@ -20671,10 +20671,10 @@ const _sfc_main$3I = /* @__PURE__ */ defineComponent({
20671
20671
  ])) : createCommentVNode("", true),
20672
20672
  props.showCount ? (openBlock(), createElementBlock("span", _hoisted_4$U, [
20673
20673
  createTextVNode(toDisplayString(countValue.value), 1),
20674
- props.maxLength ? (openBlock(), createElementBlock("span", _hoisted_5$I, " / " + toDisplayString(props.maxLength), 1)) : createCommentVNode("", true)
20674
+ props.maxLength ? (openBlock(), createElementBlock("span", _hoisted_5$J, " / " + toDisplayString(props.maxLength), 1)) : createCommentVNode("", true)
20675
20675
  ])) : createCommentVNode("", true),
20676
- props.suffix ? (openBlock(), createElementBlock("span", _hoisted_6$q, [
20677
- createElementVNode("span", _hoisted_7$l, toDisplayString(__props.suffix), 1)
20676
+ props.suffix ? (openBlock(), createElementBlock("span", _hoisted_6$r, [
20677
+ createElementVNode("span", _hoisted_7$m, toDisplayString(__props.suffix), 1)
20678
20678
  ])) : createCommentVNode("", true)
20679
20679
  ], 2)
20680
20680
  ], 6);
@@ -23817,7 +23817,7 @@ const _hoisted_4$T = {
23817
23817
  key: 2,
23818
23818
  class: "gct-input-number-suffix"
23819
23819
  };
23820
- const _hoisted_5$H = { class: "gct-input-number-suffix-text" };
23820
+ const _hoisted_5$I = { class: "gct-input-number-suffix-text" };
23821
23821
  const _sfc_main$3H = /* @__PURE__ */ defineComponent({
23822
23822
  __name: "input-number",
23823
23823
  props: {
@@ -24080,7 +24080,7 @@ const _sfc_main$3H = /* @__PURE__ */ defineComponent({
24080
24080
  ], 2)
24081
24081
  ])) : createCommentVNode("", true),
24082
24082
  props.suffix ? (openBlock(), createElementBlock("span", _hoisted_4$T, [
24083
- createElementVNode("span", _hoisted_5$H, toDisplayString(__props.suffix), 1)
24083
+ createElementVNode("span", _hoisted_5$I, toDisplayString(__props.suffix), 1)
24084
24084
  ])) : createCommentVNode("", true)
24085
24085
  ], 2);
24086
24086
  };
@@ -25715,12 +25715,12 @@ const _hoisted_1$2i = { class: "popper-container" };
25715
25715
  const _hoisted_2$1q = { class: "group-name" };
25716
25716
  const _hoisted_3$14 = ["onClick"];
25717
25717
  const _hoisted_4$Q = ["onClick"];
25718
- const _hoisted_5$G = {
25718
+ const _hoisted_5$H = {
25719
25719
  key: 2,
25720
25720
  class: "empty"
25721
25721
  };
25722
- const _hoisted_6$p = ["title"];
25723
- const _hoisted_7$k = { class: "selection-tag-content" };
25722
+ const _hoisted_6$q = ["title"];
25723
+ const _hoisted_7$l = { class: "selection-tag-content" };
25724
25724
  const _hoisted_8$h = {
25725
25725
  key: 2,
25726
25726
  class: "placeholder"
@@ -25925,7 +25925,7 @@ const _sfc_main$3x = /* @__PURE__ */ defineComponent({
25925
25925
  ], 64))
25926
25926
  ], 10, _hoisted_4$Q);
25927
25927
  }), 128)),
25928
- !normalizedFlatOptions.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$G, " 暂无数据 ")) : createCommentVNode("", true)
25928
+ !normalizedFlatOptions.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$H, " 暂无数据 ")) : createCommentVNode("", true)
25929
25929
  ])
25930
25930
  ]),
25931
25931
  _: 3
@@ -25942,13 +25942,13 @@ const _sfc_main$3x = /* @__PURE__ */ defineComponent({
25942
25942
  key: 0,
25943
25943
  class: "select-selection-item",
25944
25944
  title: selectedOptions.value[0].label
25945
- }, toDisplayString(selectedOptions.value[0].label), 9, _hoisted_6$p)) : createCommentVNode("", true),
25945
+ }, toDisplayString(selectedOptions.value[0].label), 9, _hoisted_6$q)) : createCommentVNode("", true),
25946
25946
  __props.multiple ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(selectedOptions.value, (item, idx) => {
25947
25947
  return openBlock(), createElementBlock("span", {
25948
25948
  class: "select-selection-tag",
25949
25949
  key: item.value
25950
25950
  }, [
25951
- createElementVNode("span", _hoisted_7$k, toDisplayString(item.label), 1),
25951
+ createElementVNode("span", _hoisted_7$l, toDisplayString(item.label), 1),
25952
25952
  createVNode(unref(GctIcon), {
25953
25953
  class: "selection-tag-remove",
25954
25954
  icon: "icon-guanbi-Paddanchuang",
@@ -25993,12 +25993,17 @@ const _sfc_main$3x = /* @__PURE__ */ defineComponent({
25993
25993
  const GctSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3x, [["__scopeId", "data-v-24259f13"]]);
25994
25994
  const _hoisted_1$2h = ["value", "placeholder", "disabled"];
25995
25995
  const _hoisted_2$1p = {
25996
- key: 1,
25997
- class: "gct-ss-search-icon"
25996
+ key: 2,
25997
+ class: "gct-ss-suffix-icon"
25998
25998
  };
25999
- const _hoisted_3$13 = { class: "gct-ss-list" };
26000
- const _hoisted_4$P = ["onClick"];
26001
- const _hoisted_5$F = {
25999
+ const _hoisted_3$13 = {
26000
+ key: 3,
26001
+ class: "gct-ss-suffix-icon"
26002
+ };
26003
+ const _hoisted_4$P = { class: "gct-ss-list" };
26004
+ const _hoisted_5$G = ["onClick"];
26005
+ const _hoisted_6$p = { class: "gct-ss-option-label" };
26006
+ const _hoisted_7$k = {
26002
26007
  key: 0,
26003
26008
  class: "gct-ss-empty"
26004
26009
  };
@@ -26021,17 +26026,25 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26021
26026
  const inputRef = ref();
26022
26027
  const dropdownRef = ref();
26023
26028
  const isOpen = ref(false);
26029
+ const isHovered = ref(false);
26024
26030
  const keyword = ref("");
26025
26031
  const dropdownStyle = ref({});
26026
- const selectedOption = computed(
26027
- () => props.options.find((o) => o.value === props.modelValue)
26028
- );
26032
+ const selectedOption = computed(() => props.options.find((o) => o.value === props.modelValue));
26029
26033
  const selectedLabel = computed(() => selectedOption.value?.label ?? "");
26030
26034
  const inputDisplayValue = computed(() => isOpen.value ? keyword.value : "");
26035
+ const suffixIcon = computed(() => {
26036
+ if (props.allowClear && !props.disabled && !props.readonly && !isOpen.value && !!selectedLabel.value && isHovered.value) {
26037
+ return "clear";
26038
+ }
26039
+ if (isOpen.value) return "search";
26040
+ return "arrow";
26041
+ });
26031
26042
  const filteredOptions = computed(() => {
26032
26043
  if (!keyword.value.trim()) return props.options;
26033
26044
  const kw = keyword.value.trim().toLowerCase();
26034
- return props.options.filter((o) => String(o.label ?? "").toLowerCase().includes(kw));
26045
+ return props.options.filter(
26046
+ (o) => String(o.label ?? "").toLowerCase().includes(kw)
26047
+ );
26035
26048
  });
26036
26049
  function calcDropdownPosition() {
26037
26050
  if (!rootRef.value) return;
@@ -26084,6 +26097,7 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26084
26097
  emit("update:modelValue", void 0);
26085
26098
  emit("change", void 0);
26086
26099
  keyword.value = "";
26100
+ close();
26087
26101
  }
26088
26102
  function onClickOutside(e) {
26089
26103
  if (!isOpen.value) return;
@@ -26104,9 +26118,12 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26104
26118
  window.removeEventListener("resize", onScroll);
26105
26119
  window.removeEventListener("scroll", onScroll, true);
26106
26120
  });
26107
- watch(() => props.modelValue, () => {
26108
- keyword.value = "";
26109
- });
26121
+ watch(
26122
+ () => props.modelValue,
26123
+ () => {
26124
+ keyword.value = "";
26125
+ }
26126
+ );
26110
26127
  return (_ctx, _cache) => {
26111
26128
  return openBlock(), createElementBlock("div", {
26112
26129
  ref_key: "rootRef",
@@ -26115,8 +26132,18 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26115
26132
  }, [
26116
26133
  createElementVNode("div", {
26117
26134
  class: normalizeClass(["gct-ss-trigger", { open: isOpen.value, disabled: __props.disabled, readonly: __props.readonly }]),
26118
- onClick: onTriggerClick
26135
+ onClick: onTriggerClick,
26136
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),
26137
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false)
26119
26138
  }, [
26139
+ selectedOption.value?.icon && !isOpen.value ? (openBlock(), createBlock(unref(GctIcon), {
26140
+ key: 0,
26141
+ class: "gct-ss-trigger-icon",
26142
+ icon: selectedOption.value.icon,
26143
+ color: selectedOption.value.iconColor || "#026ac8",
26144
+ size: "16",
26145
+ version: selectedOption.value.iconVersion
26146
+ }, null, 8, ["icon", "color", "version"])) : createCommentVNode("", true),
26120
26147
  createElementVNode("input", {
26121
26148
  ref_key: "inputRef",
26122
26149
  ref: inputRef,
@@ -26132,9 +26159,11 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26132
26159
  withKeys(close, ["tab"])
26133
26160
  ]
26134
26161
  }, null, 42, _hoisted_1$2h),
26135
- __props.allowClear && selectedLabel.value && !__props.disabled && !__props.readonly ? (openBlock(), createElementBlock("span", {
26136
- key: 0,
26162
+ suffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
26163
+ key: 1,
26137
26164
  class: "gct-ss-clear",
26165
+ onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
26166
+ }, ["prevent"])),
26138
26167
  onClick: withModifiers(onClear, ["stop"])
26139
26168
  }, [
26140
26169
  createVNode(unref(GctIcon), {
@@ -26142,14 +26171,20 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26142
26171
  color: "rgba(0,0,0,0.25)",
26143
26172
  size: "14"
26144
26173
  })
26145
- ])) : (openBlock(), createElementBlock("span", _hoisted_2$1p, [
26174
+ ], 32)) : suffixIcon.value === "search" ? (openBlock(), createElementBlock("span", _hoisted_2$1p, [
26146
26175
  createVNode(unref(GctIcon), {
26147
26176
  icon: "icon-sousuo",
26148
26177
  color: "rgba(0, 0, 0, 0.45)",
26149
26178
  size: "14"
26150
26179
  })
26180
+ ])) : (openBlock(), createElementBlock("span", _hoisted_3$13, [
26181
+ createVNode(unref(GctIcon), {
26182
+ icon: "icon-arrow_zhankai",
26183
+ color: "#6b6b6b",
26184
+ version: "v2"
26185
+ })
26151
26186
  ]))
26152
- ], 2),
26187
+ ], 34),
26153
26188
  (openBlock(), createBlock(Teleport, { to: "body" }, [
26154
26189
  isOpen.value ? (openBlock(), createElementBlock("div", {
26155
26190
  key: 0,
@@ -26157,7 +26192,7 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26157
26192
  ref: dropdownRef,
26158
26193
  class: "gct-ss-dropdown",
26159
26194
  style: normalizeStyle(dropdownStyle.value),
26160
- onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
26195
+ onMousedown: _cache[3] || (_cache[3] = withModifiers(() => {
26161
26196
  }, ["prevent"]))
26162
26197
  }, [
26163
26198
  createVNode(unref(GctScrollbar), {
@@ -26165,15 +26200,25 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26165
26200
  "wrap-style": { maxHeight: "280px" }
26166
26201
  }, {
26167
26202
  default: withCtx(() => [
26168
- createElementVNode("div", _hoisted_3$13, [
26203
+ createElementVNode("div", _hoisted_4$P, [
26169
26204
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (item) => {
26170
26205
  return openBlock(), createElementBlock("div", {
26171
26206
  key: item.value,
26172
26207
  class: normalizeClass(["gct-ss-option", { selected: item.value === __props.modelValue, disabled: item.disabled }]),
26173
26208
  onClick: ($event) => onSelect(item)
26174
- }, toDisplayString(item.label), 11, _hoisted_4$P);
26209
+ }, [
26210
+ item.icon ? (openBlock(), createBlock(unref(GctIcon), {
26211
+ key: 0,
26212
+ class: "gct-ss-option-icon",
26213
+ icon: item.icon,
26214
+ color: item.iconColor || "#026ac8",
26215
+ size: "16",
26216
+ version: item.iconVersion
26217
+ }, null, 8, ["icon", "color", "version"])) : createCommentVNode("", true),
26218
+ createElementVNode("span", _hoisted_6$p, toDisplayString(item.label), 1)
26219
+ ], 10, _hoisted_5$G);
26175
26220
  }), 128)),
26176
- !filteredOptions.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$F, "暂无数据")) : createCommentVNode("", true)
26221
+ !filteredOptions.value.length ? (openBlock(), createElementBlock("div", _hoisted_7$k, "暂无数据")) : createCommentVNode("", true)
26177
26222
  ])
26178
26223
  ]),
26179
26224
  _: 1
@@ -26184,7 +26229,7 @@ const _sfc_main$3w = /* @__PURE__ */ defineComponent({
26184
26229
  };
26185
26230
  }
26186
26231
  });
26187
- const GctSearchableSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3w, [["__scopeId", "data-v-22a572ce"]]);
26232
+ const GctSearchableSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3w, [["__scopeId", "data-v-a62a8441"]]);
26188
26233
  const _hoisted_1$2g = ["disabled"];
26189
26234
  const _sfc_main$3v = /* @__PURE__ */ defineComponent({
26190
26235
  __name: "switch",
@@ -26238,7 +26283,7 @@ const _hoisted_3$12 = {
26238
26283
  class: "selection-col"
26239
26284
  };
26240
26285
  const _hoisted_4$O = ["onClick"];
26241
- const _hoisted_5$E = {
26286
+ const _hoisted_5$F = {
26242
26287
  key: 0,
26243
26288
  class: "selection-col"
26244
26289
  };
@@ -26362,7 +26407,7 @@ const _sfc_main$3u = /* @__PURE__ */ defineComponent({
26362
26407
  }),
26363
26408
  onClick: ($event) => _ctx.$emit("row-click", row)
26364
26409
  }, [
26365
- __props.selectable ? (openBlock(), createElementBlock("td", _hoisted_5$E, [
26410
+ __props.selectable ? (openBlock(), createElementBlock("td", _hoisted_5$F, [
26366
26411
  renderSlot(_ctx.$slots, "select", {
26367
26412
  row,
26368
26413
  checked: getIsSelected(row)
@@ -26506,7 +26551,7 @@ const _hoisted_2$1n = {
26506
26551
  };
26507
26552
  const _hoisted_3$11 = { class: "rdo-tree-select-node__title" };
26508
26553
  const _hoisted_4$N = { class: "rdo-tree-select-node__label" };
26509
- const _hoisted_5$D = {
26554
+ const _hoisted_5$E = {
26510
26555
  key: 0,
26511
26556
  class: "rdo-tree-select-node__tag"
26512
26557
  };
@@ -26566,7 +26611,7 @@ const _sfc_main$3r = /* @__PURE__ */ defineComponent({
26566
26611
  ], 2)) : (openBlock(), createElementBlock("span", _hoisted_2$1n)),
26567
26612
  createElementVNode("span", _hoisted_3$11, [
26568
26613
  createElementVNode("span", _hoisted_4$N, toDisplayString(__props.node.title), 1),
26569
- __props.node.isDefault && !hasChildren.value ? (openBlock(), createElementBlock("span", _hoisted_5$D, "默认")) : createCommentVNode("", true)
26614
+ __props.node.isDefault && !hasChildren.value ? (openBlock(), createElementBlock("span", _hoisted_5$E, "默认")) : createCommentVNode("", true)
26570
26615
  ])
26571
26616
  ], 6),
26572
26617
  hasChildren.value && expanded.value ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.node.children, (child) => {
@@ -27089,7 +27134,7 @@ const _hoisted_4$M = {
27089
27134
  key: 0,
27090
27135
  class: "rdo-tree-select__value-tag"
27091
27136
  };
27092
- const _hoisted_5$C = ["value", "placeholder", "disabled", "onKeydown"];
27137
+ const _hoisted_5$D = ["value", "placeholder", "disabled", "onKeydown"];
27093
27138
  const _hoisted_6$o = {
27094
27139
  key: 1,
27095
27140
  class: "rdo-tree-select__value"
@@ -27098,13 +27143,21 @@ const _hoisted_7$j = {
27098
27143
  key: 0,
27099
27144
  class: "rdo-tree-select__value-tag"
27100
27145
  };
27101
- const _hoisted_8$g = ["title"];
27102
- const _hoisted_9$b = { class: "rdo-tree-select__value-text" };
27103
- const _hoisted_10$9 = {
27146
+ const _hoisted_8$g = {
27147
+ key: 1,
27148
+ class: "rdo-tree-select__suffix-icon"
27149
+ };
27150
+ const _hoisted_9$b = {
27151
+ key: 2,
27152
+ class: "rdo-tree-select__suffix-icon"
27153
+ };
27154
+ const _hoisted_10$9 = ["title"];
27155
+ const _hoisted_11$7 = { class: "rdo-tree-select__value-text" };
27156
+ const _hoisted_12$6 = {
27104
27157
  key: 0,
27105
27158
  class: "rdo-tree-select__value-tag"
27106
27159
  };
27107
- const _hoisted_11$7 = {
27160
+ const _hoisted_13$5 = {
27108
27161
  key: 1,
27109
27162
  class: "rdo-tree-select__placeholder"
27110
27163
  };
@@ -27133,6 +27186,7 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27133
27186
  const dropdownRef = ref();
27134
27187
  const isOpen = ref(false);
27135
27188
  const isDropdownOpen = ref(false);
27189
+ const isHovered = ref(false);
27136
27190
  const dropdownStyle = ref({});
27137
27191
  const loading = ref(false);
27138
27192
  const expandedKeys = ref([]);
@@ -27155,10 +27209,19 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27155
27209
  });
27156
27210
  const innerValue = computed(() => props.modelValue || void 0);
27157
27211
  const selectedLabel = computed(() => selectedDisplay.value.text || "");
27158
- const showSearchClearIcon = computed(() => isOpen.value && !!keyword.value);
27159
- const showValueClearIcon = computed(
27160
- () => props.allowClear && !!selectedLabel.value && !props.disabled && !isOpen.value
27161
- );
27212
+ const searchableSuffixIcon = computed(() => {
27213
+ if (props.allowClear && !props.disabled && !isOpen.value && !!selectedLabel.value && isHovered.value) {
27214
+ return "clear";
27215
+ }
27216
+ if (isOpen.value) return "search";
27217
+ return "arrow";
27218
+ });
27219
+ const defaultSuffixIcon = computed(() => {
27220
+ if (props.allowClear && !props.disabled && !!innerValue.value && isHovered.value) {
27221
+ return "clear";
27222
+ }
27223
+ return "arrow";
27224
+ });
27162
27225
  const displayTreeData = computed(() => {
27163
27226
  if (!props.disabledParent) {
27164
27227
  return treeData.value.map((node) => ({ ...node, disabled: false }));
@@ -27273,14 +27336,6 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27273
27336
  keyword.value = "";
27274
27337
  activeKeyword.value = "";
27275
27338
  }
27276
- function toggleSearchPanel() {
27277
- if (props.disabled) return;
27278
- if (isOpen.value) {
27279
- closeSearch();
27280
- return;
27281
- }
27282
- void openSearch();
27283
- }
27284
27339
  function onSearchTriggerClick() {
27285
27340
  if (props.disabled) return;
27286
27341
  if (!isOpen.value) {
@@ -27291,20 +27346,9 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27291
27346
  keyword.value = e.target.value;
27292
27347
  debouncedSearch();
27293
27348
  }
27294
- async function clearSearchKeyword() {
27295
- debouncedSearch.cancel();
27296
- keyword.value = "";
27297
- activeKeyword.value = "";
27298
- await syncPanelData({ forceRefresh: true });
27299
- await nextTick();
27300
- inputRef.value?.focus();
27301
- }
27302
- function onClearIconClick() {
27303
- if (showSearchClearIcon.value) {
27304
- void clearSearchKeyword();
27305
- return;
27306
- }
27349
+ function onSearchClear() {
27307
27350
  clearValue();
27351
+ closeSearch();
27308
27352
  }
27309
27353
  function onClickOutside(e) {
27310
27354
  if (!isOpen.value) return;
@@ -27416,7 +27460,9 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27416
27460
  }, [
27417
27461
  createElementVNode("div", {
27418
27462
  class: normalizeClass(["rdo-tree-select__trigger rdo-tree-select__trigger--searchable", { open: isOpen.value }]),
27419
- onClick: onSearchTriggerClick
27463
+ onClick: onSearchTriggerClick,
27464
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),
27465
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false)
27420
27466
  }, [
27421
27467
  createElementVNode("div", {
27422
27468
  class: normalizeClass(["rdo-tree-select__field", { "is-open": isOpen.value }])
@@ -27439,7 +27485,7 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27439
27485
  withKeys(withModifiers(closeSearch, ["stop"]), ["esc"]),
27440
27486
  withKeys(closeSearch, ["tab"])
27441
27487
  ]
27442
- }, null, 42, _hoisted_5$C)
27488
+ }, null, 42, _hoisted_5$D)
27443
27489
  ])) : (openBlock(), createElementBlock("span", _hoisted_6$o, [
27444
27490
  createElementVNode("span", {
27445
27491
  class: normalizeClass(["rdo-tree-select__value-text", { "is-placeholder": !selectedLabel.value }])
@@ -27447,22 +27493,32 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27447
27493
  selectedDisplay.value.showDefaultTag ? (openBlock(), createElementBlock("span", _hoisted_7$j, "默认")) : createCommentVNode("", true)
27448
27494
  ]))
27449
27495
  ], 2),
27450
- showSearchClearIcon.value || showValueClearIcon.value ? (openBlock(), createBlock(unref(GctIcon), {
27496
+ searchableSuffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
27451
27497
  key: 0,
27452
- class: "rdo-tree-select__clear rdo-tree-select__clear--arrow",
27453
- icon: "icon-cuowu2",
27454
- color: "rgba(0, 0, 0, 0.25)",
27455
- size: "14",
27456
- onClick: withModifiers(onClearIconClick, ["stop"])
27457
- })) : createCommentVNode("", true),
27458
- createVNode(unref(GctIcon), {
27459
- class: normalizeClass(["rdo-tree-select__arrow", { active: isOpen.value }]),
27460
- icon: "icon-arrow_zhankai",
27461
- color: "#6b6b6b",
27462
- version: "v2",
27463
- onClick: withModifiers(toggleSearchPanel, ["stop"])
27464
- }, null, 8, ["class"])
27465
- ], 2),
27498
+ class: "rdo-tree-select__clear",
27499
+ onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
27500
+ }, ["prevent"])),
27501
+ onClick: withModifiers(onSearchClear, ["stop"])
27502
+ }, [
27503
+ createVNode(unref(GctIcon), {
27504
+ icon: "icon-cuowu2",
27505
+ color: "rgba(0, 0, 0, 0.25)",
27506
+ size: "14"
27507
+ })
27508
+ ], 32)) : searchableSuffixIcon.value === "search" ? (openBlock(), createElementBlock("span", _hoisted_8$g, [
27509
+ createVNode(unref(GctIcon), {
27510
+ icon: "icon-sousuo",
27511
+ color: "rgba(0, 0, 0, 0.45)",
27512
+ size: "14"
27513
+ })
27514
+ ])) : (openBlock(), createElementBlock("span", _hoisted_9$b, [
27515
+ createVNode(unref(GctIcon), {
27516
+ icon: "icon-arrow_zhankai",
27517
+ color: "#6b6b6b",
27518
+ version: "v2"
27519
+ })
27520
+ ]))
27521
+ ], 34),
27466
27522
  (openBlock(), createBlock(Teleport, { to: "body" }, [
27467
27523
  isOpen.value ? (openBlock(), createElementBlock("div", {
27468
27524
  key: 0,
@@ -27470,7 +27526,7 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27470
27526
  ref: searchDropdownRef,
27471
27527
  class: "rdo-tree-select__dropdown",
27472
27528
  style: normalizeStyle(dropdownStyle.value),
27473
- onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
27529
+ onMousedown: _cache[3] || (_cache[3] = withModifiers(() => {
27474
27530
  }, ["prevent"]))
27475
27531
  }, [
27476
27532
  createVNode(RdoTreeSelectPanel, {
@@ -27520,31 +27576,41 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27520
27576
  ]),
27521
27577
  default: withCtx(() => [
27522
27578
  createElementVNode("div", {
27523
- class: normalizeClass(["rdo-tree-select__trigger", { active: isDropdownOpen.value }])
27579
+ class: normalizeClass(["rdo-tree-select__trigger", { active: isDropdownOpen.value }]),
27580
+ onMouseenter: _cache[5] || (_cache[5] = ($event) => isHovered.value = true),
27581
+ onMouseleave: _cache[6] || (_cache[6] = ($event) => isHovered.value = false)
27524
27582
  }, [
27525
27583
  selectedDisplay.value.text ? (openBlock(), createElementBlock("span", {
27526
27584
  key: 0,
27527
27585
  class: "rdo-tree-select__value",
27528
27586
  title: selectedDisplay.value.text
27529
27587
  }, [
27530
- createElementVNode("span", _hoisted_9$b, toDisplayString(selectedDisplay.value.text), 1),
27531
- selectedDisplay.value.showDefaultTag ? (openBlock(), createElementBlock("span", _hoisted_10$9, "默认")) : createCommentVNode("", true)
27532
- ], 8, _hoisted_8$g)) : (openBlock(), createElementBlock("span", _hoisted_11$7, toDisplayString(__props.placeholder), 1)),
27533
- innerValue.value && __props.allowClear && !__props.disabled ? (openBlock(), createBlock(unref(GctIcon), {
27588
+ createElementVNode("span", _hoisted_11$7, toDisplayString(selectedDisplay.value.text), 1),
27589
+ selectedDisplay.value.showDefaultTag ? (openBlock(), createElementBlock("span", _hoisted_12$6, "默认")) : createCommentVNode("", true)
27590
+ ], 8, _hoisted_10$9)) : (openBlock(), createElementBlock("span", _hoisted_13$5, toDisplayString(__props.placeholder), 1)),
27591
+ defaultSuffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
27534
27592
  key: 2,
27535
- class: "rdo-tree-select__clear rdo-tree-select__clear--arrow",
27536
- icon: "icon-cuowu2",
27537
- color: "rgba(0, 0, 0, 0.25)",
27538
- size: "14",
27593
+ class: "rdo-tree-select__clear",
27594
+ onMousedown: _cache[4] || (_cache[4] = withModifiers(() => {
27595
+ }, ["prevent"])),
27539
27596
  onClick: withModifiers(clearValue, ["stop"])
27540
- })) : createCommentVNode("", true),
27541
- createVNode(unref(GctIcon), {
27542
- class: normalizeClass(["rdo-tree-select__arrow", { active: isDropdownOpen.value }]),
27543
- icon: "icon-arrow_zhankai",
27544
- color: "#6b6b6b",
27545
- version: "v2"
27546
- }, null, 8, ["class"])
27547
- ], 2)
27597
+ }, [
27598
+ createVNode(unref(GctIcon), {
27599
+ icon: "icon-cuowu2",
27600
+ color: "rgba(0, 0, 0, 0.25)",
27601
+ size: "14"
27602
+ })
27603
+ ], 32)) : (openBlock(), createElementBlock("span", {
27604
+ key: 3,
27605
+ class: normalizeClass(["rdo-tree-select__suffix-icon", { active: isDropdownOpen.value }])
27606
+ }, [
27607
+ createVNode(unref(GctIcon), {
27608
+ icon: "icon-arrow_zhankai",
27609
+ color: "#6b6b6b",
27610
+ version: "v2"
27611
+ })
27612
+ ], 2))
27613
+ ], 34)
27548
27614
  ]),
27549
27615
  _: 1
27550
27616
  }, 8, ["disabled"])
@@ -27552,7 +27618,7 @@ const _sfc_main$3p = /* @__PURE__ */ defineComponent({
27552
27618
  };
27553
27619
  }
27554
27620
  });
27555
- const GctRdoTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3p, [["__scopeId", "data-v-2653a273"]]);
27621
+ const GctRdoTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3p, [["__scopeId", "data-v-77e15b9b"]]);
27556
27622
  const _hoisted_1$2b = { class: "gct-datetime-picker" };
27557
27623
  const _hoisted_2$1k = {
27558
27624
  key: 0,
@@ -29368,7 +29434,7 @@ const _hoisted_1$2a = { class: "color-picker-container" };
29368
29434
  const _hoisted_2$1j = { class: "color-submenu-panel" };
29369
29435
  const _hoisted_3$Z = { class: "color-content-standard" };
29370
29436
  const _hoisted_4$L = { class: "items" };
29371
- const _hoisted_5$B = ["onClick"];
29437
+ const _hoisted_5$C = ["onClick"];
29372
29438
  const _sfc_main$3n = /* @__PURE__ */ defineComponent({
29373
29439
  __name: "ColorPicker",
29374
29440
  props: /* @__PURE__ */ mergeModels({
@@ -29429,7 +29495,7 @@ const _sfc_main$3n = /* @__PURE__ */ defineComponent({
29429
29495
  class: normalizeClass(["color-icon", { active: model.value === c2.color }]),
29430
29496
  style: normalizeStyle({ backgroundColor: c2.color }),
29431
29497
  onClick: ($event) => handleColorClick(c2.color)
29432
- }, null, 14, _hoisted_5$B)
29498
+ }, null, 14, _hoisted_5$C)
29433
29499
  ]),
29434
29500
  _: 2
29435
29501
  }, 1024);
@@ -84171,7 +84237,7 @@ async function applyAutofillOnSubTableRowInit(doc, subFieldKey, rowIndex, fetchS
84171
84237
  if (!bindings.length) return;
84172
84238
  const updates = await buildAutofillUpdatesFromBindings(doc, bindings, {
84173
84239
  rawData: doc.dataManager.getRawData(),
84174
- rowIndexes: [doc.dataManager.resolveSubtableVisibleIndex(`$.${subFieldKey}`, rowIndex)],
84240
+ rowIndexes: [rowIndex],
84175
84241
  fetchSource
84176
84242
  });
84177
84243
  if (Object.keys(updates).length) {
@@ -85085,31 +85151,13 @@ function countActiveSubtableRows(rows) {
85085
85151
  if (!Array.isArray(rows)) return 0;
85086
85152
  return rows.filter((row) => !row?.deleted_).length;
85087
85153
  }
85088
- function resolveSubtableStorageIndex(rows, visibleIndex) {
85089
- if (!Array.isArray(rows) || visibleIndex < 0) return visibleIndex;
85090
- let seen = -1;
85091
- for (let i = 0; i < rows.length; i++) {
85092
- if (!rows[i]?.deleted_) {
85093
- seen++;
85094
- if (seen === visibleIndex) return i;
85095
- }
85096
- }
85097
- return visibleIndex;
85098
- }
85099
- function resolveSubtableInsertIndex(rows, visibleIndex) {
85100
- if (!Array.isArray(rows)) return 0;
85101
- let seen = -1;
85102
- for (let i = 0; i < rows.length; i++) {
85103
- if (!rows[i]?.deleted_) {
85104
- seen++;
85105
- if (seen === visibleIndex) return i;
85106
- }
85107
- }
85108
- return rows.length;
85109
- }
85110
85154
  function buildRowGroupKey(row, fieldKeys, separator = "|") {
85111
85155
  return fieldKeys.map((key) => String(row[key] ?? "")).join(separator);
85112
85156
  }
85157
+ function activeRowIndexes(rows) {
85158
+ const count = countActiveSubtableRows(rows);
85159
+ return Array.from({ length: count }, (_2, index2) => index2);
85160
+ }
85113
85161
  function expandInitPathTemplates(templatePath, rawData) {
85114
85162
  const parsed = parseValuePath(templatePath);
85115
85163
  const hasCrossPlaceholder = templatePath.includes("[n_y]") || templatePath.includes("[n_x]");
@@ -85117,11 +85165,11 @@ function expandInitPathTemplates(templatePath, rawData) {
85117
85165
  if (hasCrossPlaceholder) {
85118
85166
  const yKey = parsed.parentFieldKey || "";
85119
85167
  const xKey = parsed.linkFieldKey || "";
85120
- const yRows = Array.isArray(get(rawData, yKey)) ? get(rawData, yKey).length : 0;
85121
- const xRows = Array.isArray(get(rawData, xKey)) ? get(rawData, xKey).length : 0;
85168
+ const yIndexes = activeRowIndexes(get(rawData, yKey));
85169
+ const xIndexes = activeRowIndexes(get(rawData, xKey));
85122
85170
  const paths = [];
85123
- for (let y2 = 0; y2 < yRows; y2++) {
85124
- for (let x2 = 0; x2 < xRows; x2++) {
85171
+ for (const y2 of yIndexes) {
85172
+ for (const x2 of xIndexes) {
85125
85173
  paths.push(replacePathIndexPlaceholders({ templatePath, y: y2, x: x2, n: y2 }));
85126
85174
  }
85127
85175
  }
@@ -85129,12 +85177,9 @@ function expandInitPathTemplates(templatePath, rawData) {
85129
85177
  }
85130
85178
  if (hasSinglePlaceholder) {
85131
85179
  const tableKey = parsed.parentFieldKey || "";
85132
- const rows = Array.isArray(get(rawData, tableKey)) ? get(rawData, tableKey).length : 0;
85133
- const paths = [];
85134
- for (let i = 0; i < rows; i++) {
85135
- paths.push(replacePathIndexPlaceholders({ templatePath, n: i, y: i, x: i }));
85136
- }
85137
- return paths;
85180
+ return activeRowIndexes(get(rawData, tableKey)).map(
85181
+ (i) => replacePathIndexPlaceholders({ templatePath, n: i, y: i, x: i })
85182
+ );
85138
85183
  }
85139
85184
  return [templatePath];
85140
85185
  }
@@ -85172,9 +85217,9 @@ function parseBusinessFieldChange(changedPath) {
85172
85217
  }
85173
85218
  function countSubTableDataRows(rawData, subFieldKey) {
85174
85219
  const existing = get(rawData, subFieldKey);
85175
- if (Array.isArray(existing)) return existing.length;
85220
+ if (Array.isArray(existing)) return countActiveSubtableRows(existing);
85176
85221
  if (existing && typeof existing === "object" && Array.isArray(existing.data)) {
85177
- return existing.data.length;
85222
+ return countActiveSubtableRows(existing.data);
85178
85223
  }
85179
85224
  return 0;
85180
85225
  }
@@ -85185,6 +85230,18 @@ function resolveSubTableRowCount(doc, subFieldKey, rawData) {
85185
85230
  }
85186
85231
  function resolveSubTableRowIndexes(doc, subFieldKey, rawData, rowIndexes) {
85187
85232
  if (rowIndexes?.length) return rowIndexes;
85233
+ const existing = get(rawData, subFieldKey);
85234
+ if (Array.isArray(existing) && existing.length > 0) {
85235
+ const count2 = countActiveSubtableRows(existing);
85236
+ return Array.from({ length: count2 }, (_2, index2) => index2);
85237
+ }
85238
+ if (existing && typeof existing === "object" && Array.isArray(existing.data)) {
85239
+ const data = existing.data;
85240
+ if (data.length > 0) {
85241
+ const count2 = countActiveSubtableRows(data);
85242
+ return Array.from({ length: count2 }, (_2, index2) => index2);
85243
+ }
85244
+ }
85188
85245
  const count = resolveSubTableRowCount(doc, subFieldKey, rawData);
85189
85246
  return Array.from({ length: count }, (_2, index2) => index2);
85190
85247
  }
@@ -85429,6 +85486,51 @@ class DataManager {
85429
85486
  this.doc?.eventManager?.eventBus.emit("field-runtime-config-changed", { path });
85430
85487
  }
85431
85488
  }
85489
+ getSubFieldConfigMap() {
85490
+ const key = "_subFieldConfig";
85491
+ const params = this.doc?.paramsConfig;
85492
+ const cfg = params?.[key];
85493
+ if (!cfg || typeof cfg !== "object") return void 0;
85494
+ return cfg;
85495
+ }
85496
+ /** 插行后同步 _subFieldConfig 下标 +1 */
85497
+ shiftSubFieldConfigAfterRowInsert(arrayPath, insertIndex) {
85498
+ const cfg = this.getSubFieldConfigMap();
85499
+ if (!cfg) return;
85500
+ const updates = {};
85501
+ const toDelete = [];
85502
+ for (const [path, value] of Object.entries(cfg)) {
85503
+ const parsed = this.parseSubtableFieldPath(path, arrayPath);
85504
+ if (!parsed) continue;
85505
+ const { rowIndex, suffix } = parsed;
85506
+ if (rowIndex >= insertIndex) {
85507
+ toDelete.push(path);
85508
+ updates[`${arrayPath}[${rowIndex + 1}]${suffix}`] = value;
85509
+ }
85510
+ }
85511
+ for (const path of toDelete) delete cfg[path];
85512
+ Object.assign(cfg, updates);
85513
+ }
85514
+ /** 硬删后同步 _subFieldConfig:删该行并对其后行 -1 */
85515
+ shiftSubFieldConfigAfterRowRemove(arrayPath, removeIndex) {
85516
+ const cfg = this.getSubFieldConfigMap();
85517
+ if (!cfg) return;
85518
+ const updates = {};
85519
+ const toDelete = [];
85520
+ for (const [path, value] of Object.entries(cfg)) {
85521
+ const parsed = this.parseSubtableFieldPath(path, arrayPath);
85522
+ if (!parsed) continue;
85523
+ const { rowIndex, suffix } = parsed;
85524
+ if (rowIndex === removeIndex) {
85525
+ toDelete.push(path);
85526
+ } else if (rowIndex > removeIndex) {
85527
+ toDelete.push(path);
85528
+ updates[`${arrayPath}[${rowIndex - 1}]${suffix}`] = value;
85529
+ }
85530
+ }
85531
+ for (const path of toDelete) delete cfg[path];
85532
+ Object.assign(cfg, updates);
85533
+ }
85432
85534
  parseSubtableFieldPath(fullPath, arrayPath) {
85433
85535
  const head = `${arrayPath}[`;
85434
85536
  if (!fullPath.startsWith(head)) return null;
@@ -85581,12 +85683,6 @@ class DataManager {
85581
85683
  }
85582
85684
  return maxIndex + 1;
85583
85685
  }
85584
- /** 版面可见行下标 → rawData 数组实际下标 */
85585
- resolveSubtableVisibleIndex(arrayPath, visibleIndex) {
85586
- const rows = this.getByPath(this.rawData, arrayPath);
85587
- if (!Array.isArray(rows)) return visibleIndex;
85588
- return resolveSubtableStorageIndex(rows, visibleIndex);
85589
- }
85590
85686
  assignField(target, fieldPath, value) {
85591
85687
  if (!fieldPath.includes(".") && !fieldPath.includes("[")) {
85592
85688
  target[fieldPath] = value;
@@ -86007,10 +86103,11 @@ class DataManager {
86007
86103
  arr = [{ ...DEFAULT_EMPTY_ITEM }];
86008
86104
  this.set(path, arr, "parent");
86009
86105
  }
86010
- const storageIndex = resolveSubtableInsertIndex(arr, index2);
86011
- if (storageIndex < 0 || storageIndex > arr.length) {
86106
+ const activeCount = countActiveSubtableRows(arr);
86107
+ if (index2 < 0 || index2 > activeCount) {
86012
86108
  throw new Error(`Index ${index2} out of bounds for array of length ${arr.length}`);
86013
86109
  }
86110
+ const storageIndex = index2;
86014
86111
  const oldValue = [...arr];
86015
86112
  const tableKey = path.replace(/^\$\./, "").replace(/\[(n|\d+)\]/g, "");
86016
86113
  const axisInfo = this.resolveAxisByTableKey(tableKey);
@@ -86026,6 +86123,7 @@ class DataManager {
86026
86123
  this.emit(path, arr, oldValue);
86027
86124
  this.shiftFieldRuntimeConfigAfterRowInsert(path, storageIndex);
86028
86125
  this.shiftDependencyGraphAfterRowInsert(path, storageIndex);
86126
+ this.shiftSubFieldConfigAfterRowInsert(path, storageIndex);
86029
86127
  return true;
86030
86128
  } catch (error) {
86031
86129
  console.error(`Failed to insert value at path "${path}":`, error);
@@ -86044,10 +86142,11 @@ class DataManager {
86044
86142
  if (!Array.isArray(arr)) {
86045
86143
  throw new Error(`Path "${path}" is not an array`);
86046
86144
  }
86047
- const storageIndex = resolveSubtableStorageIndex(arr, index2);
86048
- if (storageIndex < 0 || storageIndex >= arr.length) {
86145
+ const activeCount = countActiveSubtableRows(arr);
86146
+ if (index2 < 0 || index2 >= activeCount) {
86049
86147
  throw new Error(`Index ${index2} out of bounds for array of length ${arr.length}`);
86050
86148
  }
86149
+ const storageIndex = index2;
86051
86150
  const tableKey = path.replace(/^\$\./, "").replace(/\[(n|\d+)\]/g, "");
86052
86151
  const axisInfo = this.resolveAxisByTableKey(tableKey);
86053
86152
  const row = arr[storageIndex];
@@ -86057,15 +86156,21 @@ class DataManager {
86057
86156
  axis: axisInfo?.axis
86058
86157
  })) {
86059
86158
  const oldValue2 = this.deepClone(arr);
86060
- row.deleted_ = true;
86159
+ const [removedRow] = arr.splice(storageIndex, 1);
86160
+ removedRow.deleted_ = true;
86161
+ arr.push(removedRow);
86162
+ this.shiftFieldRuntimeConfigAfterRowRemove(path, storageIndex);
86163
+ this.shiftDependencyGraphAfterRowRemove(path, storageIndex);
86164
+ this.shiftSubFieldConfigAfterRowRemove(path, storageIndex);
86061
86165
  this.emit(path, arr, oldValue2);
86062
- return row;
86166
+ return removedRow;
86063
86167
  }
86064
86168
  const oldValue = [...arr];
86065
86169
  const removedValue = arr.splice(storageIndex, 1)[0];
86066
86170
  this.emit(path, arr, oldValue);
86067
86171
  this.shiftFieldRuntimeConfigAfterRowRemove(path, storageIndex);
86068
86172
  this.shiftDependencyGraphAfterRowRemove(path, storageIndex);
86173
+ this.shiftSubFieldConfigAfterRowRemove(path, storageIndex);
86069
86174
  if (axisInfo) {
86070
86175
  const uidField = axisInfo.axis === "y" ? "__gw_y_uid" : "__gw_x_uid";
86071
86176
  this.cleanupCrossByAxisUid(tableKey, axisInfo.axis, removedValue?.[uidField]);
@@ -87333,21 +87438,33 @@ class TableRuntimeContext {
87333
87438
  get arrayPath() {
87334
87439
  return `$.${this.subFieldKey}`;
87335
87440
  }
87336
- /** 指定行路径 $.subFieldKey[rowIndex] */
87441
+ /** 指定行路径 $.subFieldKey[rowIndex];rowIndex 为存储下标 */
87337
87442
  rowPath(rowIndex) {
87338
87443
  return `${this.arrayPath}[${rowIndex}]`;
87339
87444
  }
87340
- /** 读取指定行数据 */
87445
+ /** 读取指定行数据;rowIndex 为存储下标 */
87341
87446
  getRow(rowIndex) {
87342
87447
  return this.doc.dataManager.get(this.rowPath(rowIndex));
87343
87448
  }
87344
- /** 子表总行数,无数据默认返回 1 */
87449
+ /**
87450
+ * 子表存储行数(含软删),无数据默认返回 1
87451
+ */
87345
87452
  getRowCount() {
87346
87453
  const rows = this.doc.dataManager.getRawData()[this.subFieldKey];
87347
87454
  if (Array.isArray(rows) && rows.length > 0) return rows.length;
87348
87455
  return 1;
87349
87456
  }
87350
- /** 构建单行规则执行上下文 */
87457
+ /**
87458
+ * 未软删行的存储下标。无数据时返回 [0](与版面默认空行一致);
87459
+ * 仅剩软删行时返回 []。
87460
+ */
87461
+ getActiveRowIndexes() {
87462
+ const rows = this.doc.dataManager.getRawData()[this.subFieldKey];
87463
+ if (!Array.isArray(rows) || rows.length === 0) return [0];
87464
+ const count = countActiveSubtableRows(rows);
87465
+ return Array.from({ length: count }, (_2, index2) => index2);
87466
+ }
87467
+ /** 构建单行规则执行上下文;rowIndex 为存储下标 */
87351
87468
  buildRuleContext(rowIndex, changedFieldKey) {
87352
87469
  const rowPath = this.rowPath(rowIndex);
87353
87470
  const rowData = this.getRow(rowIndex) ?? {};
@@ -87361,9 +87478,12 @@ class TableRuntimeContext {
87361
87478
  paramsConfig: this.doc.paramsConfig ?? {}
87362
87479
  };
87363
87480
  }
87364
- /** 遍历子表数据行,支持指定单行或全量遍历,逐行注入 RuleContext */
87481
+ /**
87482
+ * 遍历子表数据行,支持指定单行或全量遍历,逐行注入 RuleContext。
87483
+ * rowIndex / 全量遍历均使用存储下标;全量时跳过 deleted_ 行。
87484
+ */
87365
87485
  eachRow(options, iteratee) {
87366
- const rowIndexes = options.rowIndex !== void 0 ? [options.rowIndex] : Array.from({ length: this.getRowCount() }, (_2, index2) => index2);
87486
+ const rowIndexes = options.rowIndex !== void 0 ? [options.rowIndex] : this.getActiveRowIndexes();
87367
87487
  for (const rowIndex of rowIndexes) {
87368
87488
  iteratee(this.buildRuleContext(rowIndex, options.changedFieldKey));
87369
87489
  }
@@ -88027,8 +88147,7 @@ class RemoteSyncEngine {
88027
88147
  const config = ctx.profile.remoteSync;
88028
88148
  const missingKeys = config?.resyncOnInitWhenMissing;
88029
88149
  if (!config || !missingKeys?.length) return;
88030
- const rowCount = ctx.getRowCount();
88031
- for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
88150
+ for (const rowIndex of ctx.getActiveRowIndexes()) {
88032
88151
  const row = ctx.getRow(rowIndex);
88033
88152
  if (!row) continue;
88034
88153
  if (config.requireAllOf?.some((key) => !isPresent(row[key]))) continue;
@@ -88210,11 +88329,10 @@ class RowRuntimeEngine {
88210
88329
  runRowHandler(ctx.profile.type, handler.handler, this.doc, ctx.subFieldKey, rowIndex);
88211
88330
  }
88212
88331
  }
88213
- /** 初始化时对所有行执行行初始化 */
88332
+ /** 初始化时对所有未软删行执行行初始化 */
88214
88333
  applyRowInitForAllRows(ctx) {
88215
88334
  if (!this.hasRowInit(ctx)) return;
88216
- const rowCount = ctx.getRowCount();
88217
- for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
88335
+ for (const rowIndex of ctx.getActiveRowIndexes()) {
88218
88336
  this.applyRowInit(ctx, rowIndex);
88219
88337
  }
88220
88338
  }
@@ -88897,7 +89015,14 @@ const profile$3 = {
88897
89015
  fieldType: "master_slave",
88898
89016
  refModelType: "MATERIAL_CONSUME"
88899
89017
  },
88900
- rowHandlers: [{ when: "onFieldChange", watch: ["qty_"], handler: "on-qty-change" }],
89018
+ rowHandlers: [{ when: "onFieldChange", watch: ["qty_", "product_id_", "material_no_"], handler: "on-qty-change" }],
89019
+ runtimeRules: [
89020
+ {
89021
+ when: "always",
89022
+ fields: ["qty_consumed_"],
89023
+ effect: { disabled: true }
89024
+ }
89025
+ ],
88901
89026
  theme: {
88902
89027
  color: "#4891B3",
88903
89028
  background: "rgba(72,145,179,0.2)",
@@ -89003,7 +89128,7 @@ const _hoisted_1$28 = { class: "material-consume-modal" };
89003
89128
  const _hoisted_2$1h = { class: "material-consume-table-scroll" };
89004
89129
  const _hoisted_3$X = { class: "material-consume-table" };
89005
89130
  const _hoisted_4$K = ["title"];
89006
- const _hoisted_5$A = { class: "qty-col" };
89131
+ const _hoisted_5$B = { class: "qty-col" };
89007
89132
  const _sfc_main$3l = /* @__PURE__ */ defineComponent({
89008
89133
  __name: "material-consume-modal",
89009
89134
  props: {
@@ -89026,7 +89151,7 @@ const _sfc_main$3l = /* @__PURE__ */ defineComponent({
89026
89151
  createElementVNode("td", {
89027
89152
  title: row.materialLabel
89028
89153
  }, toDisplayString(row.materialLabel), 9, _hoisted_4$K),
89029
- createElementVNode("td", _hoisted_5$A, toDisplayString(row.consumeQty), 1)
89154
+ createElementVNode("td", _hoisted_5$B, toDisplayString(row.consumeQty), 1)
89030
89155
  ]);
89031
89156
  }), 128))
89032
89157
  ])
@@ -99439,22 +99564,6 @@ class LayoutContext {
99439
99564
  this.paragraph?.addChild(run);
99440
99565
  this.layoutRun = run;
99441
99566
  }
99442
- /** 子表可见行下标 → rawData 存储下标(跳过 deleted_ 行) */
99443
- mapSubtableVisibleIndex(templatePath, visibleIndex, axis) {
99444
- if (visibleIndex === void 0) return void 0;
99445
- const parsed = parseValuePath(templatePath);
99446
- const dm = this.doc.dataManager;
99447
- if (axis === "n_y" && parsed.parentFieldPath) {
99448
- return dm.resolveSubtableVisibleIndex(parsed.parentFieldPath, visibleIndex);
99449
- }
99450
- if (axis === "n_x" && parsed.linkFieldPath) {
99451
- return dm.resolveSubtableVisibleIndex(parsed.linkFieldPath, visibleIndex);
99452
- }
99453
- if (parsed.isSubTable && parsed.parentFieldPath) {
99454
- return dm.resolveSubtableVisibleIndex(parsed.parentFieldPath, visibleIndex);
99455
- }
99456
- return visibleIndex;
99457
- }
99458
99567
  /**
99459
99568
  * 根据 dataIndex 替换 path 中的 [n] 为实际值
99460
99569
  * @param path 包含 [n] 的路径,如 "$.items[n].name"
@@ -99465,8 +99574,8 @@ class LayoutContext {
99465
99574
  const { type: type4, dataIndex, xDataIndex, yDataIndex, cellZone } = this.cell?.subRenderer || {};
99466
99575
  if (isLinkSubTableType(type4) && cellZone === "cross") {
99467
99576
  return replacePathIndexPlaceholders({
99468
- x: this.mapSubtableVisibleIndex(path, xDataIndex, "n_x"),
99469
- y: this.mapSubtableVisibleIndex(path, yDataIndex, "n_y"),
99577
+ x: xDataIndex,
99578
+ y: yDataIndex,
99470
99579
  templatePath: path
99471
99580
  });
99472
99581
  }
@@ -99476,10 +99585,6 @@ class LayoutContext {
99476
99585
  let n = dataIndex;
99477
99586
  if (isLinkSubTableType(type4)) {
99478
99587
  n = cellZone === "horizontal" ? yDataIndex : xDataIndex;
99479
- const axis = cellZone === "horizontal" ? "n_y" : "n_x";
99480
- n = this.mapSubtableVisibleIndex(path, n, axis);
99481
- } else {
99482
- n = this.mapSubtableVisibleIndex(path, n, "n");
99483
99588
  }
99484
99589
  if (n === void 0) return path;
99485
99590
  return replacePathIndexPlaceholder(n, path);
@@ -108450,6 +108555,9 @@ class BomEntriesValidator {
108450
108555
  * @param row 单行的数据
108451
108556
  */
108452
108557
  validateInBom(row) {
108558
+ if (this.mcPattern === MaterialConsumptionPatternEnum.RECORD) {
108559
+ return;
108560
+ }
108453
108561
  if (!row.product_id_) {
108454
108562
  throw new Error(
108455
108563
  "物料不能为空"
@@ -108578,9 +108686,7 @@ class BomEntriesValidator {
108578
108686
  * @return {*}
108579
108687
  */
108580
108688
  mergeRowInArr(row, arr) {
108581
- if (this.mcPattern !== MaterialConsumptionPatternEnum.RECORD) {
108582
- this.validateInBom(row);
108583
- }
108689
+ this.validateInBom(row);
108584
108690
  const newArr = cloneDeep(arr).filter((i) => i.product_id_);
108585
108691
  const util = this.findUtilByProductId(row.product_id_);
108586
108692
  const sameIndex = findLastIndex(newArr, (i) => {
@@ -108732,12 +108838,12 @@ class MCDataUtil {
108732
108838
  });
108733
108839
  }
108734
108840
  /**
108735
- * [需求数量、已消耗数量]一直禁用
108841
+ * 物料消耗模式 BOM 模式需要禁用[需求数量]
108736
108842
  * 参顶部[物料消耗表字段控制]
108737
108843
  * @param rowPath $.f_sub[n] n 必须为数字
108738
108844
  */
108739
- static disableQtyFields(dataManager, rowPath) {
108740
- const fields2 = ["qty_consumed_", "qty_required_"];
108845
+ static disableQtyRequired(dataManager, rowPath) {
108846
+ const fields2 = ["qty_required_"];
108741
108847
  this._updateDisablement({ dataManager, rowPath, fields: fields2, disabled: true });
108742
108848
  }
108743
108849
  /**
@@ -108775,6 +108881,7 @@ class MCDataUtil {
108775
108881
  const { dataManager, subFieldKey, rowIndex } = option;
108776
108882
  const rows = dataManager.getRawData()[subFieldKey] ?? [];
108777
108883
  const row = rows[rowIndex];
108884
+ if (!row) return;
108778
108885
  row.is_confirmed_ = isConfirmed;
108779
108886
  rows[rowIndex] = row;
108780
108887
  dataManager.set(subFieldKey, rows, "user");
@@ -108865,7 +108972,7 @@ class MaterialConsumeTableController {
108865
108972
  return this.tableDataRef.value.filter((i) => !i.deleted_);
108866
108973
  }
108867
108974
  /**
108868
- * 修改表格数据(保留打deleted_标签的数据)
108975
+ * 修改表格数据(保留软删行在后缀)
108869
108976
  */
108870
108977
  set actualTableData(value) {
108871
108978
  const deletedArr = this.tableDataRef.value.filter((i) => i.deleted_);
@@ -108979,9 +109086,9 @@ class MaterialConsumeTableController {
108979
109086
  qty_: data.qty,
108980
109087
  validate_: data.expiration,
108981
109088
  // 记录模式传null,后台就不校验了
108982
- bom_entries_bom: isRecordPattern ? null : this.actualBomEntries,
109089
+ bom_entries_: isRecordPattern ? null : this.actualBomEntries,
108983
109090
  operation_id_: this.tmplBomController.operationId
108984
- });
109091
+ }) || (isRecordPattern ? [{ productionIdentificationName: data.lot }] : null);
108985
109092
  if (!arr) {
108986
109093
  this.error(
108987
109094
  "扫描的物料不存在或不在bom中"
@@ -108990,7 +109097,7 @@ class MaterialConsumeTableController {
108990
109097
  return;
108991
109098
  }
108992
109099
  let materialData = arr[0];
108993
- if (arr.length > 1) {
109100
+ if (arr.length > 1 && !isRecordPattern) {
108994
109101
  const ids = this.actualTableData.map((i) => i.product_id_);
108995
109102
  const find = arr.find((j2) => ids.includes(j2.materialId));
108996
109103
  if (!find) {
@@ -109006,6 +109113,9 @@ class MaterialConsumeTableController {
109006
109113
  qty_: data.qty,
109007
109114
  is_confirmed_: false
109008
109115
  };
109116
+ if (isRecordPattern && !row.product_id_) {
109117
+ row._scanFallback = true;
109118
+ }
109009
109119
  if (this.scanRuleProps?.fillMapArr?.length) {
109010
109120
  const fillData = calcFillData(data, this.scanRuleProps.fillMapArr);
109011
109121
  console.log("fillData", fillData);
@@ -109018,14 +109128,14 @@ class MaterialConsumeTableController {
109018
109128
  try {
109019
109129
  const newArr = this.bomEntriesValidator.mergeRowInArr(row, this.actualTableData);
109020
109130
  await this.bomEntriesValidator.validateScanCanInsert(newArr);
109021
- this.tableDataRef.value = newArr;
109131
+ this.actualTableData = newArr;
109022
109132
  setTimeout(async () => {
109023
109133
  const row2 = this.actualTableData.find((i) => !i.is_confirmed_);
109024
109134
  const rowIndex = this.actualTableData.findIndex((i) => !i.is_confirmed_);
109025
109135
  const { doc, subFieldKey, subModelKey } = option;
109026
109136
  await doc.dataManager.whenEmitSettled();
109027
109137
  await hydrateSubtableRowLabels(doc, subFieldKey, [rowIndex]);
109028
- if (row2) {
109138
+ if (row2 && row2.product_id_) {
109029
109139
  this.confirm({ dataManager: doc.dataManager, subFieldKey, rowIndex }, subModelKey, doc);
109030
109140
  }
109031
109141
  });
@@ -109109,6 +109219,9 @@ class MaterialConsumeTableController {
109109
109219
  const { dataManager, rowIndex, subFieldKey } = option;
109110
109220
  const rows = dataManager.getRawData()[subFieldKey] ?? [];
109111
109221
  const row = rows[rowIndex];
109222
+ if (!row.product_id_) {
109223
+ throw new Error("物料不能为空");
109224
+ }
109112
109225
  this.validateExpiration(row);
109113
109226
  } else {
109114
109227
  await this.bomEntriesValidator.validate(this.actualTableData);
@@ -109226,15 +109339,15 @@ class MaterialConsumeTableController {
109226
109339
  * - 删除行
109227
109340
  */
109228
109341
  updateRowConsumed(doc) {
109229
- const modifySingleRow = (index2) => {
109230
- const row = this.actualTableData[index2];
109342
+ const modifySingleRow = (row, rowIndex) => {
109343
+ const fieldKey = `${this.subTableInfo.valuePath}[${rowIndex}].qty_consumed_`;
109231
109344
  if (!row.product_id_) {
109232
- row.qty_consumed_ = 0 + (Number(row.qty_) ?? 0);
109345
+ doc.dataManager.set(fieldKey, row.qty_ ? Number(row.qty_) : "", "user");
109233
109346
  return;
109234
109347
  }
109235
109348
  let total = 0;
109236
109349
  const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
109237
- const beforeArr = this.actualTableData.slice(0, index2 + 1);
109350
+ const beforeArr = this.actualTableData.slice(0, rowIndex + 1);
109238
109351
  if (util) {
109239
109352
  total += util.hasConsumed;
109240
109353
  console.log("total", total);
@@ -109242,14 +109355,13 @@ class MaterialConsumeTableController {
109242
109355
  filterGroupData.forEach((i) => {
109243
109356
  total += Number(i.qty_ || 0) ?? 0;
109244
109357
  });
109245
- const fieldKey = `${this.subTableInfo.valuePath}[${index2}].qty_consumed_`;
109246
109358
  doc.dataManager.set(fieldKey, total, "user");
109247
109359
  }
109248
109360
  };
109249
109361
  setTimeout(() => {
109250
- for (let index2 = 0; index2 < this.actualTableData.length; index2++) {
109251
- modifySingleRow(index2);
109252
- }
109362
+ this.actualTableData.forEach((row, rowIndex) => {
109363
+ modifySingleRow(row, rowIndex);
109364
+ });
109253
109365
  });
109254
109366
  }
109255
109367
  /**
@@ -109299,6 +109411,10 @@ class MaterialConsumeTableController {
109299
109411
  if (["product_id_", "material_no_"].includes(fieldKey)) {
109300
109412
  const rowPath = `${parentFieldPath}[${dataIndex}]`;
109301
109413
  if (fieldKey === "product_id_") {
109414
+ const row = doc.dataManager.get(rowPath);
109415
+ if (row._scanFallback) {
109416
+ return;
109417
+ }
109302
109418
  const product_id_ = changedData[`${rowPath}.product_id_`];
109303
109419
  const versionId = product_id_?.split(":").pop();
109304
109420
  if (versionId) {
@@ -109492,6 +109608,9 @@ const initMaterialConsumeTableConfig = (doc, subConfig, tmplBomC) => {
109492
109608
  ({ personal_bom_enabled_, entries_, table_key_ }) => {
109493
109609
  const tableController = tmplBomC?.findTableControllerByField(table_key_);
109494
109610
  const useBomMode = tableController?.mcPattern === MaterialConsumptionPatternEnum.BOM;
109611
+ const subFieldKey = table_key_.replace("$.", "");
109612
+ const rows = doc.dataManager.getRawData()[subFieldKey] || [];
109613
+ const activeCount = rows.filter((row) => !row?.deleted_).length;
109495
109614
  if (useBomMode) {
109496
109615
  const entries = personal_bom_enabled_ ? entries_ : tmplBomC.bomEntries;
109497
109616
  const includedIds = [];
@@ -109502,14 +109621,12 @@ const initMaterialConsumeTableConfig = (doc, subConfig, tmplBomC) => {
109502
109621
  });
109503
109622
  });
109504
109623
  subConfig[`${table_key_}[n].product_id_`] = { "id_.in": includedIds };
109624
+ repeat(activeCount || 1, (index2) => {
109625
+ MCDataUtil.disableQtyRequired(doc.dataManager, `${table_key_}[${index2}]`);
109626
+ });
109505
109627
  }
109506
- const subFieldKey = table_key_.replace("$.", "");
109507
- const rows = doc.dataManager.getRawData()[subFieldKey] || [];
109508
- const rowCount = rows.length;
109509
- repeat(rowCount || 1, (index2) => {
109510
- MCDataUtil.disableQtyFields(doc.dataManager, `${table_key_}[${index2}]`);
109511
- });
109512
109628
  rows.forEach((row, rowIndex) => {
109629
+ if (row?.deleted_) return;
109513
109630
  const rowPath = `${table_key_}[${rowIndex}]`;
109514
109631
  if (row.product_id_) {
109515
109632
  const versionId = row.product_id_.split(":").pop();
@@ -110128,7 +110245,8 @@ class InitLoadEngine {
110128
110245
  if (config.rowPatch) {
110129
110246
  rows = rows.map((row) => ({ ...row, ...config.rowPatch }));
110130
110247
  }
110131
- this.doc.dataManager.set(subFieldKey, rows, "hydrate");
110248
+ const deletedRows = this.readExistingRows(subFieldKey).filter((row) => row.deleted_);
110249
+ this.doc.dataManager.set(subFieldKey, [...rows, ...deletedRows], "hydrate");
110132
110250
  }
110133
110251
  isEnabled(config, regionProps) {
110134
110252
  if (config.enabled === true) return true;
@@ -110144,7 +110262,7 @@ class InitLoadEngine {
110144
110262
  * @returns true-跳过,false-不跳过
110145
110263
  */
110146
110264
  shouldSkip(subFieldKey, config) {
110147
- const existingRows = this.readExistingRows(subFieldKey);
110265
+ const existingRows = this.readExistingRows(subFieldKey).filter((row) => !row.deleted_);
110148
110266
  if (existingRows.length === 0) return false;
110149
110267
  if (config.skipWhenNonemptyRows && this.hasNonemptyRow(existingRows)) {
110150
110268
  return true;
@@ -115695,7 +115813,7 @@ const _hoisted_1$22 = { class: "col-headers" };
115695
115813
  const _hoisted_2$1f = ["onMouseenter"];
115696
115814
  const _hoisted_3$W = ["onClick"];
115697
115815
  const _hoisted_4$J = ["onMousedown"];
115698
- const _hoisted_5$z = { class: "row-headers" };
115816
+ const _hoisted_5$A = { class: "row-headers" };
115699
115817
  const _hoisted_6$n = ["onMouseenter"];
115700
115818
  const _hoisted_7$i = ["onClick"];
115701
115819
  const _hoisted_8$f = ["onMousedown"];
@@ -115989,7 +116107,7 @@ const _sfc_main$2X = /* @__PURE__ */ defineComponent({
115989
116107
  ]);
115990
116108
  }), 128))
115991
116109
  ]),
115992
- createElementVNode("div", _hoisted_5$z, [
116110
+ createElementVNode("div", _hoisted_5$A, [
115993
116111
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row, rowIndex) => {
115994
116112
  return openBlock(), createElementBlock("div", {
115995
116113
  key: row.id,
@@ -116287,7 +116405,7 @@ const _hoisted_3$V = {
116287
116405
  class: "action-menu"
116288
116406
  };
116289
116407
  const _hoisted_4$I = { class: "item-icon" };
116290
- const _hoisted_5$y = { class: "item-icon" };
116408
+ const _hoisted_5$z = { class: "item-icon" };
116291
116409
  const _hoisted_6$m = { class: "item-icon" };
116292
116410
  const _hoisted_7$h = { class: "item-icon scale-large" };
116293
116411
  const _hoisted_8$e = {
@@ -116347,18 +116465,15 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116347
116465
  };
116348
116466
  const getTableRows = (subFieldKey, visible) => {
116349
116467
  const rows = docInst.value.dataManager.getRawData()[subFieldKey] ?? [];
116350
- if (visible) {
116468
+ {
116351
116469
  return rows.filter((row) => !row.deleted_);
116352
116470
  }
116353
- return rows;
116354
116471
  };
116355
116472
  const checkTargetRowThen = (cb) => {
116356
116473
  const { dataManager } = docInst.value;
116357
- const { subFieldKey, index: index2 } = getCtx();
116358
- const allRows = getTableRows(subFieldKey);
116359
- if (!allRows[index2]) {
116360
- allRows.splice(index2, 0, {});
116361
- dataManager.set(subFieldKey, allRows, "user");
116474
+ const { path, index: index2 } = getCtx();
116475
+ if (!dataManager.get(`${path}[${index2}]`)) {
116476
+ dataManager.insertAt(path, index2, {});
116362
116477
  }
116363
116478
  setTimeout(cb);
116364
116479
  };
@@ -116383,7 +116498,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116383
116498
  });
116384
116499
  const actionInfo = computed(() => {
116385
116500
  const { subFieldKey, index: index2 } = getCtx();
116386
- const visibleRows = getTableRows(subFieldKey, true);
116501
+ const visibleRows = getTableRows(subFieldKey);
116387
116502
  const { isMaterialConsume, isWarehouseInventory, isWarehouseAllocate } = subTableType.value;
116388
116503
  const canCopy = !isWarehouseInventory && !isWarehouseAllocate;
116389
116504
  const canInsertMulti = !isMaterialConsume && !isWarehouseInventory && !isWarehouseAllocate;
@@ -116438,10 +116553,10 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116438
116553
  await changeWarehouseInventoryParseRule({ doc, subRenderer, subModelKey });
116439
116554
  }
116440
116555
  };
116441
- const getIsAddable = () => {
116556
+ const getIsIncreasable = () => {
116442
116557
  if (subTableType.value.isMaterialConsume) {
116443
116558
  const { subFieldKey } = getCtx();
116444
- const visibleRows = getTableRows(subFieldKey, true);
116559
+ const visibleRows = getTableRows(subFieldKey);
116445
116560
  const isAllConfirmed = visibleRows.length && visibleRows.every((row) => row.is_confirmed_);
116446
116561
  if (!isAllConfirmed) {
116447
116562
  GctMessage.error("同时只能有一条数据开启编辑状态");
@@ -116450,34 +116565,35 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116450
116565
  }
116451
116566
  return true;
116452
116567
  };
116453
- const handleAddRowAfter = (subFieldKey, rowIndex) => {
116568
+ const handleRowIncreased = (subFieldKey, rowIndex) => {
116454
116569
  if (subTableType.value.isMaterialConsume) {
116455
- MCDataUtil.disableQtyFields(props.doc.dataManager, `$.${subFieldKey}[${rowIndex}]`);
116570
+ mcTableCtrl.value?.updateRowConsumed(props.doc);
116571
+ if (mcTableCtrl.value?.mcPattern === MaterialConsumptionPatternEnum.BOM) {
116572
+ MCDataUtil.disableQtyRequired(props.doc.dataManager, `$.${subFieldKey}[${rowIndex}]`);
116573
+ }
116456
116574
  }
116457
116575
  new TableRuntime(props.doc).onRowInit(subFieldKey, rowIndex);
116458
116576
  };
116459
116577
  const insertRows = (index2, count = 1) => {
116460
- if (!getIsAddable()) return;
116578
+ if (!getIsIncreasable()) return;
116461
116579
  const { path, subFieldKey } = getCtx();
116462
116580
  props.doc.dataManager.insertAt(path, index2, ...Array.from({ length: count }, () => ({})));
116463
- handleAddRowAfter(subFieldKey, index2);
116464
- };
116465
- const removeRow = () => {
116466
- const { path, index: index2 } = getCtx();
116467
- props.doc.dataManager.removeAt(path, index2);
116468
- mcTableCtrl.value?.updateRowConsumed(props.doc);
116581
+ handleRowIncreased(subFieldKey, index2);
116469
116582
  };
116470
116583
  const copyRow = () => {
116471
- if (!getIsAddable()) return;
116584
+ if (!getIsIncreasable()) return;
116472
116585
  const { path, index: index2, subFieldKey } = getCtx();
116473
- const storageIndex = props.doc.dataManager.resolveSubtableVisibleIndex(path, index2);
116474
- let data = props.doc.dataManager.get(`${path}[${storageIndex}]`) || {};
116586
+ let data = props.doc.dataManager.get(`${path}[${index2}]`) || {};
116475
116587
  data = omit(data, "id_");
116476
116588
  if (subTableType.value.isMaterialConsume) {
116477
116589
  data = omit(data, "is_confirmed_");
116478
116590
  }
116479
116591
  props.doc.dataManager.insertAt(path, index2 + 1, data);
116480
- handleAddRowAfter(subFieldKey, index2 + 1);
116592
+ handleRowIncreased(subFieldKey, index2 + 1);
116593
+ };
116594
+ const removeRow = () => {
116595
+ const { path, index: index2 } = getCtx();
116596
+ props.doc.dataManager.removeAt(path, index2);
116481
116597
  mcTableCtrl.value?.updateRowConsumed(props.doc);
116482
116598
  };
116483
116599
  const actionHandlers = {
@@ -116547,7 +116663,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116547
116663
  class: "menu-item",
116548
116664
  onClick: _cache[1] || (_cache[1] = ($event) => handleMaterialConsumeAction("scan"))
116549
116665
  }, [
116550
- createElementVNode("div", _hoisted_5$y, [
116666
+ createElementVNode("div", _hoisted_5$z, [
116551
116667
  createVNode(unref(GctIcon), { icon: "icon-saoyisao" })
116552
116668
  ]),
116553
116669
  _cache[17] || (_cache[17] = createElementVNode("div", { class: "item-label" }, "条码扫描", -1))
@@ -116697,7 +116813,7 @@ const _sfc_main$2T = /* @__PURE__ */ defineComponent({
116697
116813
  };
116698
116814
  }
116699
116815
  });
116700
- const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$2T, [["__scopeId", "data-v-ce0d6ea2"]]);
116816
+ const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$2T, [["__scopeId", "data-v-923a27bd"]]);
116701
116817
  const _sfc_main$2S = /* @__PURE__ */ defineComponent({
116702
116818
  __name: "index",
116703
116819
  props: {
@@ -118636,7 +118752,7 @@ const _hoisted_1$1X = { class: "color-picker-container" };
118636
118752
  const _hoisted_2$19 = { class: "color-content-auto" };
118637
118753
  const _hoisted_3$S = { class: "color-content-theme" };
118638
118754
  const _hoisted_4$H = ["onClick"];
118639
- const _hoisted_5$x = { class: "color-content-standard" };
118755
+ const _hoisted_5$y = { class: "color-content-standard" };
118640
118756
  const _hoisted_6$l = { class: "items" };
118641
118757
  const _hoisted_7$g = ["onClick"];
118642
118758
  const _hoisted_8$d = { class: "color-content-used" };
@@ -118726,7 +118842,7 @@ const _sfc_main$2K = /* @__PURE__ */ defineComponent({
118726
118842
  ]);
118727
118843
  }), 128))
118728
118844
  ]),
118729
- createElementVNode("div", _hoisted_5$x, [
118845
+ createElementVNode("div", _hoisted_5$y, [
118730
118846
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "title" }, "标准色", -1)),
118731
118847
  createElementVNode("div", _hoisted_6$l, [
118732
118848
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(colorUtils).standard, (c2, idx) => {
@@ -119539,7 +119655,7 @@ const _hoisted_1$1R = { class: "items-container" };
119539
119655
  const _hoisted_2$17 = { class: "ribbon-tab-item" };
119540
119656
  const _hoisted_3$Q = { class: "ribbon-tab-item" };
119541
119657
  const _hoisted_4$G = { class: "ribbon-tab-item" };
119542
- const _hoisted_5$w = { class: "ribbon-tab-item" };
119658
+ const _hoisted_5$x = { class: "ribbon-tab-item" };
119543
119659
  const _sfc_main$2E = /* @__PURE__ */ defineComponent({
119544
119660
  __name: "word-tab",
119545
119661
  setup(__props) {
@@ -119734,7 +119850,7 @@ const _sfc_main$2E = /* @__PURE__ */ defineComponent({
119734
119850
  })
119735
119851
  ]),
119736
119852
  _cache[18] || (_cache[18] = createElementVNode("div", { class: "split-divider" }, null, -1)),
119737
- createElementVNode("div", _hoisted_5$w, [
119853
+ createElementVNode("div", _hoisted_5$x, [
119738
119854
  createVNode(ButtonIcon, {
119739
119855
  tooltip: "左对齐",
119740
119856
  iconExtraProps: { icon: "icon-zuoduiqi2" },
@@ -119822,7 +119938,7 @@ const _hoisted_1$1O = { class: "toolkit-item" };
119822
119938
  const _hoisted_2$15 = { class: "toolkit-popper-wrap" };
119823
119939
  const _hoisted_3$P = { class: "toolkit-popper-title" };
119824
119940
  const _hoisted_4$F = { class: "title" };
119825
- const _hoisted_5$v = { class: "label" };
119941
+ const _hoisted_5$w = { class: "label" };
119826
119942
  const _sfc_main$2B = /* @__PURE__ */ defineComponent({
119827
119943
  __name: "toolkit-item",
119828
119944
  props: {
@@ -119879,7 +119995,7 @@ const _sfc_main$2B = /* @__PURE__ */ defineComponent({
119879
119995
  name: __props.icon,
119880
119996
  size: 20
119881
119997
  }, null, 8, ["name"]),
119882
- createElementVNode("span", _hoisted_5$v, toDisplayString(__props.label), 1)
119998
+ createElementVNode("span", _hoisted_5$w, toDisplayString(__props.label), 1)
119883
119999
  ], 2)
119884
120000
  ]),
119885
120001
  _: 2
@@ -120067,7 +120183,7 @@ const _hoisted_1$1N = { class: "field-pallette" };
120067
120183
  const _hoisted_2$14 = { class: "pallette-search" };
120068
120184
  const _hoisted_3$O = { class: "pallette-main" };
120069
120185
  const _hoisted_4$E = { class: "main-title" };
120070
- const _hoisted_5$u = {
120186
+ const _hoisted_5$v = {
120071
120187
  key: 0,
120072
120188
  class: "main-list"
120073
120189
  };
@@ -120137,7 +120253,7 @@ const _sfc_main$2A = /* @__PURE__ */ defineComponent({
120137
120253
  ]),
120138
120254
  createElementVNode("div", _hoisted_3$O, [
120139
120255
  createElementVNode("div", _hoisted_4$E, toDisplayString(__props.modelName), 1),
120140
- filteredFields.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$u, [
120256
+ filteredFields.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$v, [
120141
120257
  createVNode(unref(GctScrollbar), null, {
120142
120258
  default: withCtx(() => [
120143
120259
  createElementVNode("div", _hoisted_6$k, [
@@ -120503,7 +120619,7 @@ const _hoisted_4$D = {
120503
120619
  key: 1,
120504
120620
  class: "title"
120505
120621
  };
120506
- const _hoisted_5$t = {
120622
+ const _hoisted_5$u = {
120507
120623
  key: 1,
120508
120624
  class: "empty"
120509
120625
  };
@@ -120555,7 +120671,7 @@ const _sfc_main$2w = /* @__PURE__ */ defineComponent({
120555
120671
  key: 0,
120556
120672
  widget: unref(widget),
120557
120673
  active: unref(active)
120558
- }, null, 8, ["widget", "active"])) : (openBlock(), createElementBlock("div", _hoisted_5$t, "请选择一个元素"))
120674
+ }, null, 8, ["widget", "active"])) : (openBlock(), createElementBlock("div", _hoisted_5$u, "请选择一个元素"))
120559
120675
  ]),
120560
120676
  _: 1
120561
120677
  })
@@ -121388,7 +121504,7 @@ const _hoisted_1$1H = { class: "validation-comment-item" };
121388
121504
  const _hoisted_2$10 = { class: "validation-comment-panel-container" };
121389
121505
  const _hoisted_3$K = { class: "comment-header" };
121390
121506
  const _hoisted_4$B = { class: "comment-messages" };
121391
- const _hoisted_5$s = { class: "message-item" };
121507
+ const _hoisted_5$t = { class: "message-item" };
121392
121508
  const _hoisted_6$j = { class: "field-name" };
121393
121509
  const _hoisted_7$e = { class: "error-text" };
121394
121510
  const _sfc_main$2o = /* @__PURE__ */ defineComponent({
@@ -121475,7 +121591,7 @@ const _sfc_main$2o = /* @__PURE__ */ defineComponent({
121475
121591
  ]),
121476
121592
  createElementVNode("div", _hoisted_4$B, [
121477
121593
  (openBlock(true), createElementBlock(Fragment, null, renderList(fieldErrorList.value, (item) => {
121478
- return openBlock(), createElementBlock("div", _hoisted_5$s, [
121594
+ return openBlock(), createElementBlock("div", _hoisted_5$t, [
121479
121595
  createElementVNode("div", _hoisted_6$j, toDisplayString(unref(fieldInfo)?.name) + ":", 1),
121480
121596
  createElementVNode("div", _hoisted_7$e, toDisplayString(item.message), 1)
121481
121597
  ]);
@@ -121576,7 +121692,7 @@ const _hoisted_1$1F = { class: "cl__item" };
121576
121692
  const _hoisted_2$$ = { class: "cl__item-panel-container" };
121577
121693
  const _hoisted_3$J = { class: "cl__hdr" };
121578
121694
  const _hoisted_4$A = { class: "cl__hdr-title" };
121579
- const _hoisted_5$r = {
121695
+ const _hoisted_5$s = {
121580
121696
  key: 0,
121581
121697
  class: "cl__hdr-flag"
121582
121698
  };
@@ -121691,7 +121807,7 @@ const _sfc_main$2m = /* @__PURE__ */ defineComponent({
121691
121807
  createElementVNode("article", _hoisted_2$$, [
121692
121808
  createElementVNode("header", _hoisted_3$J, [
121693
121809
  createElementVNode("div", _hoisted_4$A, toDisplayString(getHeaderLabel(__props.data.changeType)), 1),
121694
- __props.data.isCurrentChange ? (openBlock(), createElementBlock("div", _hoisted_5$r, "本次变更")) : createCommentVNode("", true)
121810
+ __props.data.isCurrentChange ? (openBlock(), createElementBlock("div", _hoisted_5$s, "本次变更")) : createCommentVNode("", true)
121695
121811
  ]),
121696
121812
  createElementVNode("div", _hoisted_6$i, [
121697
121813
  createVNode(unref(GctAvatar), {
@@ -122288,7 +122404,7 @@ const _hoisted_4$z = {
122288
122404
  key: 0,
122289
122405
  class: "right-container"
122290
122406
  };
122291
- const _hoisted_5$q = {
122407
+ const _hoisted_5$r = {
122292
122408
  key: 1,
122293
122409
  class: "design-footer"
122294
122410
  };
@@ -122382,7 +122498,7 @@ const _sfc_main$2i = /* @__PURE__ */ defineComponent({
122382
122498
  ])) : createCommentVNode("", true)
122383
122499
  ], 4)
122384
122500
  ]),
122385
- !isPreview.value ? (openBlock(), createElementBlock("footer", _hoisted_5$q, [
122501
+ !isPreview.value ? (openBlock(), createElementBlock("footer", _hoisted_5$r, [
122386
122502
  createElementVNode("div", null, [
122387
122503
  createElementVNode("span", _hoisted_6$h, " 布局刷新次数:" + toDisplayString(unref(docInfo).updateTick), 1),
122388
122504
  createElementVNode("span", _hoisted_7$c, " 模式:" + toDisplayString(unref(docInst)?.modeLabel), 1)
@@ -127273,7 +127389,7 @@ const _hoisted_3$G = {
127273
127389
  class: "head"
127274
127390
  };
127275
127391
  const _hoisted_4$x = { class: "title" };
127276
- const _hoisted_5$p = {
127392
+ const _hoisted_5$q = {
127277
127393
  key: 1,
127278
127394
  class: "link"
127279
127395
  };
@@ -127317,7 +127433,7 @@ const _sfc_main$1W = /* @__PURE__ */ defineComponent({
127317
127433
  onClick: withModifiers(($event) => _ctx.$emit("delete-thead", item), ["stop"])
127318
127434
  }, null, 8, ["onClick"])
127319
127435
  ])) : createCommentVNode("", true),
127320
- __props.type !== "table-header" && item?.thead ? (openBlock(), createElementBlock("div", _hoisted_5$p, [
127436
+ __props.type !== "table-header" && item?.thead ? (openBlock(), createElementBlock("div", _hoisted_5$q, [
127321
127437
  createVNode(unref(GctIcon), {
127322
127438
  class: "icon",
127323
127439
  icon: "icon-lianjie2",
@@ -127808,7 +127924,7 @@ const _hoisted_4$v = {
127808
127924
  key: 1,
127809
127925
  class: "error-text map-error"
127810
127926
  };
127811
- const _hoisted_5$o = { class: "qrcode-parse-modal__map" };
127927
+ const _hoisted_5$p = { class: "qrcode-parse-modal__map" };
127812
127928
  const _hoisted_6$f = {
127813
127929
  key: 0,
127814
127930
  class: "error-text"
@@ -127987,7 +128103,7 @@ const _sfc_main$1R = /* @__PURE__ */ defineComponent({
127987
128103
  ])) : createCommentVNode("", true),
127988
128104
  _cache[2] || (_cache[2] = createElementVNode("div", { class: "qrcode-parse-modal__subtitle" }, "字段映射", -1)),
127989
128105
  mapError.value ? (openBlock(), createElementBlock("div", _hoisted_4$v, toDisplayString(mapError.value), 1)) : createCommentVNode("", true),
127990
- createElementVNode("div", _hoisted_5$o, [
128106
+ createElementVNode("div", _hoisted_5$p, [
127991
128107
  (openBlock(true), createElementBlock(Fragment, null, renderList(formState.fillMapArr, (item, index2) => {
127992
128108
  return openBlock(), createElementBlock("div", {
127993
128109
  key: index2,
@@ -128451,7 +128567,7 @@ const _hoisted_1$1r = { class: "panel-repeating-sub-table" };
128451
128567
  const _hoisted_2$S = { class: "container" };
128452
128568
  const _hoisted_3$C = { class: "form-custom-label" };
128453
128569
  const _hoisted_4$u = { class: "content" };
128454
- const _hoisted_5$n = { class: "content" };
128570
+ const _hoisted_5$o = { class: "content" };
128455
128571
  const _sfc_main$1N = /* @__PURE__ */ defineComponent({
128456
128572
  __name: "RepeatingSubTablePanel",
128457
128573
  props: {
@@ -128561,7 +128677,7 @@ const _sfc_main$1N = /* @__PURE__ */ defineComponent({
128561
128677
  label: "库存自动加载"
128562
128678
  }, {
128563
128679
  default: withCtx(() => [
128564
- createElementVNode("div", _hoisted_5$n, [
128680
+ createElementVNode("div", _hoisted_5$o, [
128565
128681
  createVNode(unref(GctSwitch), {
128566
128682
  modelValue: unref(regionProps).autoLoadInventory,
128567
128683
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(regionProps).autoLoadInventory = $event),
@@ -128903,7 +129019,7 @@ const _hoisted_3$B = {
128903
129019
  class: "iconfont icon-drag mover"
128904
129020
  };
128905
129021
  const _hoisted_4$t = { class: "bom-entry-item-content ks-col" };
128906
- const _hoisted_5$m = { class: "bom-entry-item-content-item ell overflow-hidden" };
129022
+ const _hoisted_5$n = { class: "bom-entry-item-content-item ell overflow-hidden" };
128907
129023
  const _hoisted_6$e = ["title"];
128908
129024
  const _hoisted_7$9 = { class: "bom-entry-item-btns ml8px" };
128909
129025
  const _hoisted_8$8 = ["onClick"];
@@ -128999,7 +129115,7 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
128999
129115
  createElementVNode("div", _hoisted_2$Q, [
129000
129116
  !__props.disabled ? (openBlock(), createElementBlock("i", _hoisted_3$B)) : createCommentVNode("", true),
129001
129117
  createElementVNode("div", _hoisted_4$t, [
129002
- createElementVNode("div", _hoisted_5$m, [
129118
+ createElementVNode("div", _hoisted_5$n, [
129003
129119
  (openBlock(), createBlock(_sfc_main$1I, {
129004
129120
  key: element.product_id_,
129005
129121
  value: element.product_id_
@@ -129049,7 +129165,7 @@ const _hoisted_1$1m = { class: "panel-material-consume-table" };
129049
129165
  const _hoisted_2$P = { class: "container" };
129050
129166
  const _hoisted_3$A = { class: "content" };
129051
129167
  const _hoisted_4$s = { class: "entries-container" };
129052
- const _hoisted_5$l = { class: "content" };
129168
+ const _hoisted_5$m = { class: "content" };
129053
129169
  const _sfc_main$1G = /* @__PURE__ */ defineComponent({
129054
129170
  __name: "MaterialConsumeTablePanel",
129055
129171
  props: {
@@ -129153,7 +129269,7 @@ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
129153
129269
  createElementVNode("div", { class: "form-custom-label" }, " 按顺序投料 ", -1)
129154
129270
  ])]),
129155
129271
  default: withCtx(() => [
129156
- createElementVNode("div", _hoisted_5$l, [
129272
+ createElementVNode("div", _hoisted_5$m, [
129157
129273
  createVNode(unref(GctSwitch), {
129158
129274
  modelValue: unref(regionProps).sequence_loading_enabled_,
129159
129275
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(regionProps).sequence_loading_enabled_ = $event),
@@ -130543,7 +130659,7 @@ const _hoisted_1$1d = { class: "data-source-model-link-wrapper" };
130543
130659
  const _hoisted_2$I = { class: "model-link-container" };
130544
130660
  const _hoisted_3$w = { class: "model-link-content" };
130545
130661
  const _hoisted_4$p = { class: "model-link-item" };
130546
- const _hoisted_5$k = { class: "model-link-item" };
130662
+ const _hoisted_5$l = { class: "model-link-item" };
130547
130663
  const _sfc_main$1q = /* @__PURE__ */ defineComponent({
130548
130664
  __name: "data-source-model-link",
130549
130665
  props: {
@@ -130793,7 +130909,7 @@ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
130793
130909
  return openBlock(), createElementBlock(Fragment, {
130794
130910
  key: item.id
130795
130911
  }, [
130796
- createElementVNode("div", _hoisted_5$k, [
130912
+ createElementVNode("div", _hoisted_5$l, [
130797
130913
  createVNode(_sfc_main$1t, {
130798
130914
  class: "custom-select",
130799
130915
  placeholder: "请选择字段",
@@ -130971,7 +131087,7 @@ const _hoisted_1$1b = { class: "data-source-field-map-wrapper" };
130971
131087
  const _hoisted_2$G = { class: "field-map-container" };
130972
131088
  const _hoisted_3$u = { class: "field-map-content" };
130973
131089
  const _hoisted_4$o = { class: "field-map-item" };
130974
- const _hoisted_5$j = { class: "blank last" };
131090
+ const _hoisted_5$k = { class: "blank last" };
130975
131091
  const _hoisted_6$d = ["onClick"];
130976
131092
  const _sfc_main$1n = /* @__PURE__ */ defineComponent({
130977
131093
  __name: "data-source-field-map",
@@ -131185,7 +131301,7 @@ const _sfc_main$1n = /* @__PURE__ */ defineComponent({
131185
131301
  field.fieldLink = opt.fieldLink;
131186
131302
  }
131187
131303
  }, null, 8, ["joinModelType", "joinFormRefId", "joinModelKey", "filterFieldType", "selectCascaderValue", "onUpdate:selectCascaderValue", "selectFieldKey", "onUpdate:selectFieldKey", "onOnSelect"])),
131188
- createElementVNode("span", _hoisted_5$j, [
131304
+ createElementVNode("span", _hoisted_5$k, [
131189
131305
  createElementVNode("i", {
131190
131306
  class: "iconfont icon-shanchu",
131191
131307
  onClick: ($event) => removeFieldItem(field)
@@ -131209,7 +131325,7 @@ const _hoisted_1$1a = { class: "param-link-container" };
131209
131325
  const _hoisted_2$F = { class: "param-link-content" };
131210
131326
  const _hoisted_3$t = { class: "param-link-item" };
131211
131327
  const _hoisted_4$n = { class: "blank last" };
131212
- const _hoisted_5$i = ["onClick"];
131328
+ const _hoisted_5$j = ["onClick"];
131213
131329
  const _sfc_main$1m = /* @__PURE__ */ defineComponent({
131214
131330
  __name: "param-field-link",
131215
131331
  props: {
@@ -131354,7 +131470,7 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
131354
131470
  createElementVNode("i", {
131355
131471
  class: "iconfont icon-shanchu",
131356
131472
  onClick: ($event) => removeFieldItem(fieldItem)
131357
- }, null, 8, _hoisted_5$i)
131473
+ }, null, 8, _hoisted_5$j)
131358
131474
  ])
131359
131475
  ]);
131360
131476
  }), 128))
@@ -131373,7 +131489,7 @@ const _hoisted_1$19 = { class: "item-info" };
131373
131489
  const _hoisted_2$E = { class: "info-text" };
131374
131490
  const _hoisted_3$s = { class: "text-row" };
131375
131491
  const _hoisted_4$m = { class: "row-value" };
131376
- const _hoisted_5$h = { class: "text-row" };
131492
+ const _hoisted_5$i = { class: "text-row" };
131377
131493
  const _hoisted_6$c = { class: "row-value" };
131378
131494
  const _hoisted_7$8 = ["onClick"];
131379
131495
  const _sfc_main$1l = /* @__PURE__ */ defineComponent({
@@ -131454,7 +131570,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
131454
131570
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "row-label" }, "字段名称:", -1)),
131455
131571
  createElementVNode("span", _hoisted_4$m, toDisplayString(item.objectFieldName), 1)
131456
131572
  ]),
131457
- createElementVNode("div", _hoisted_5$h, [
131573
+ createElementVNode("div", _hoisted_5$i, [
131458
131574
  _cache[1] || (_cache[1] = createElementVNode("span", { class: "row-label" }, "字段类型:", -1)),
131459
131575
  createElementVNode("span", _hoisted_6$c, toDisplayString(getObjectFieldTypeName(item.objectField)), 1)
131460
131576
  ])
@@ -131501,7 +131617,7 @@ const _hoisted_1$18 = { class: "panel-data-init" };
131501
131617
  const _hoisted_2$D = { class: "collapse-inner param-area" };
131502
131618
  const _hoisted_3$r = { class: "collapse-inner data-source-area" };
131503
131619
  const _hoisted_4$l = { class: "collapse-inner" };
131504
- const _hoisted_5$g = { class: "collapse-inner data-load-area" };
131620
+ const _hoisted_5$h = { class: "collapse-inner data-load-area" };
131505
131621
  const _sfc_main$1k = /* @__PURE__ */ defineComponent({
131506
131622
  __name: "DataInitPanel",
131507
131623
  setup(__props) {
@@ -131777,7 +131893,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
131777
131893
  title: "数据加载"
131778
131894
  }, {
131779
131895
  default: withCtx(() => [
131780
- createElementVNode("div", _hoisted_5$g, [
131896
+ createElementVNode("div", _hoisted_5$h, [
131781
131897
  (openBlock(), createBlock(resolveDynamicComponent(dataLoadPanel.value)))
131782
131898
  ])
131783
131899
  ]),
@@ -131932,10 +132048,14 @@ function filterFieldTree(nodes, keyword) {
131932
132048
  const _hoisted_1$16 = ["value", "placeholder"];
131933
132049
  const _hoisted_2$B = {
131934
132050
  key: 2,
131935
- class: "field-tree-select__search-icon"
132051
+ class: "field-tree-select__suffix-icon"
131936
132052
  };
131937
- const _hoisted_3$p = { class: "field-tree-dropdown__list" };
131938
- const _hoisted_4$j = {
132053
+ const _hoisted_3$p = {
132054
+ key: 3,
132055
+ class: "field-tree-select__suffix-icon"
132056
+ };
132057
+ const _hoisted_4$j = { class: "field-tree-dropdown__list" };
132058
+ const _hoisted_5$g = {
131939
132059
  key: 0,
131940
132060
  class: "field-tree-dropdown__empty"
131941
132061
  };
@@ -131957,6 +132077,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
131957
132077
  const inputRef = ref();
131958
132078
  const dropdownRef = ref();
131959
132079
  const isOpen = ref(false);
132080
+ const isHovered = ref(false);
131960
132081
  const dropdownStyle = ref({});
131961
132082
  const { keyword, highlightName } = useHighlightSearch();
131962
132083
  const displayTree = computed(() => filterFieldTree(props.treeData, keyword.value));
@@ -131966,9 +132087,11 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
131966
132087
  );
131967
132088
  const selectedLabel = computed(() => selectedNode.value?.label ?? "");
131968
132089
  const inputDisplayValue = computed(() => isOpen.value ? keyword.value : "");
131969
- const showClearIcon = computed(
131970
- () => isOpen.value && (!!keyword.value.trim() || !!props.modelValue)
131971
- );
132090
+ const suffixIcon = computed(() => {
132091
+ if (!isOpen.value && !!props.modelValue && isHovered.value) return "clear";
132092
+ if (isOpen.value) return "search";
132093
+ return "arrow";
132094
+ });
131972
132095
  function calcDropdownPosition() {
131973
132096
  if (!rootRef.value) return;
131974
132097
  const rect = rootRef.value.getBoundingClientRect();
@@ -132012,15 +132135,10 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132012
132135
  calcDropdownPosition();
132013
132136
  }
132014
132137
  function onClear() {
132015
- if (keyword.value.trim()) {
132016
- keyword.value = "";
132017
- inputRef.value?.focus();
132018
- return;
132019
- }
132020
132138
  emit("update:modelValue", void 0);
132021
132139
  emit("change", void 0);
132022
132140
  keyword.value = "";
132023
- inputRef.value?.focus();
132141
+ close();
132024
132142
  }
132025
132143
  function onSelect(value, node) {
132026
132144
  emit("update:modelValue", value);
@@ -132062,7 +132180,9 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132062
132180
  }, [
132063
132181
  createElementVNode("div", {
132064
132182
  class: normalizeClass(["field-tree-select__trigger", { open: isOpen.value }]),
132065
- onClick: onTriggerClick
132183
+ onClick: onTriggerClick,
132184
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),
132185
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false)
132066
132186
  }, [
132067
132187
  selectedNode.value?.icon && !isOpen.value ? (openBlock(), createBlock(unref(GctIcon), {
132068
132188
  key: 0,
@@ -132086,9 +132206,11 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132086
132206
  withKeys(close, ["tab"])
132087
132207
  ]
132088
132208
  }, null, 42, _hoisted_1$16),
132089
- showClearIcon.value ? (openBlock(), createElementBlock("span", {
132209
+ suffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
132090
132210
  key: 1,
132091
132211
  class: "field-tree-select__clear",
132212
+ onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
132213
+ }, ["prevent"])),
132092
132214
  onClick: withModifiers(onClear, ["stop"])
132093
132215
  }, [
132094
132216
  createVNode(unref(GctIcon), {
@@ -132096,14 +132218,20 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132096
132218
  color: "rgba(0, 0, 0, 0.25)",
132097
132219
  size: "14"
132098
132220
  })
132099
- ])) : (openBlock(), createElementBlock("span", _hoisted_2$B, [
132221
+ ], 32)) : suffixIcon.value === "search" ? (openBlock(), createElementBlock("span", _hoisted_2$B, [
132100
132222
  createVNode(unref(GctIcon), {
132101
132223
  icon: "icon-sousuo",
132102
132224
  color: "rgba(0, 0, 0, 0.45)",
132103
132225
  size: "14"
132104
132226
  })
132227
+ ])) : (openBlock(), createElementBlock("span", _hoisted_3$p, [
132228
+ createVNode(unref(GctIcon), {
132229
+ icon: "icon-arrow_zhankai",
132230
+ color: "#6b6b6b",
132231
+ version: "v2"
132232
+ })
132105
132233
  ]))
132106
- ], 2),
132234
+ ], 34),
132107
132235
  (openBlock(), createBlock(Teleport, { to: "body" }, [
132108
132236
  isOpen.value ? (openBlock(), createElementBlock("div", {
132109
132237
  key: 0,
@@ -132111,7 +132239,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132111
132239
  ref: dropdownRef,
132112
132240
  class: "field-tree-dropdown",
132113
132241
  style: normalizeStyle(dropdownStyle.value),
132114
- onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {
132242
+ onMousedown: _cache[3] || (_cache[3] = withModifiers(() => {
132115
132243
  }, ["prevent"]))
132116
132244
  }, [
132117
132245
  createVNode(unref(GctScrollbar), {
@@ -132119,7 +132247,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132119
132247
  "wrap-style": { maxHeight: "280px" }
132120
132248
  }, {
132121
132249
  default: withCtx(() => [
132122
- createElementVNode("div", _hoisted_3$p, [
132250
+ createElementVNode("div", _hoisted_4$j, [
132123
132251
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayTree.value, (node) => {
132124
132252
  return openBlock(), createBlock(FieldTreeNode, {
132125
132253
  key: node.value,
@@ -132133,7 +132261,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132133
132261
  onSelect
132134
132262
  }, null, 8, ["node", "model-value", "force-expand", "default-expanded", "group-only-expand", "highlight-name"]);
132135
132263
  }), 128)),
132136
- !displayTree.value.length ? (openBlock(), createElementBlock("div", _hoisted_4$j, "暂无数据")) : createCommentVNode("", true)
132264
+ !displayTree.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$g, "暂无数据")) : createCommentVNode("", true)
132137
132265
  ])
132138
132266
  ]),
132139
132267
  _: 1
@@ -132144,7 +132272,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
132144
132272
  };
132145
132273
  }
132146
132274
  });
132147
- const FieldTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$1i, [["__scopeId", "data-v-bff7666a"]]);
132275
+ const FieldTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$1i, [["__scopeId", "data-v-60520932"]]);
132148
132276
  const SOURCE_UNIT_KEY = "sourceUnit";
132149
132277
  const TARGET_UNIT_KEY = "targetUnit";
132150
132278
  const EXPR_FIELD_TITLE = "规则表达式值";
@@ -135035,7 +135163,7 @@ const _hoisted_5$a = {
135035
135163
  };
135036
135164
  const _hoisted_6$8 = { class: "form-col" };
135037
135165
  const _hoisted_7$5 = {
135038
- key: 0,
135166
+ key: 2,
135039
135167
  class: "error-text"
135040
135168
  };
135041
135169
  const _hoisted_8$5 = ["onClick"];
@@ -135064,6 +135192,9 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135064
135192
  ]
135065
135193
  });
135066
135194
  const errors = ref({});
135195
+ const isFlatToFieldMode = computed(
135196
+ () => !props.toFieldList.length && props.toSubTables.length > 0
135197
+ );
135067
135198
  const fullToFieldTree = computed(
135068
135199
  () => buildToFieldTree(props.toModelInfo, props.toFieldList, props.toSubTables)
135069
135200
  );
@@ -135085,31 +135216,59 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135085
135216
  const fromMeta = resolveFromFieldMeta(fromField, props.refModelFieldList, props.currentField);
135086
135217
  return filterToFieldTreeBySource(fullToFieldTree.value, fromMeta);
135087
135218
  }
135219
+ function getToFieldFlatOptions(fromField) {
135220
+ return getToFieldTree(fromField).flatMap(
135221
+ (group2) => (group2.children ?? []).map((child) => ({
135222
+ label: child.label,
135223
+ value: child.value,
135224
+ icon: child.icon,
135225
+ iconVersion: child.iconVersion,
135226
+ iconColor: child.iconColor,
135227
+ _item: child._targetMeta
135228
+ }))
135229
+ );
135230
+ }
135088
135231
  function getToFieldValue(rule) {
135089
135232
  return encodeToFieldValueFromRule(rule);
135090
135233
  }
135091
- function onToFieldValueChange(rule, value) {
135092
- if (!value) {
135234
+ function applyToFieldMeta(rule, meta) {
135235
+ if (!meta) {
135093
135236
  rule.toField = void 0;
135094
135237
  rule.toModelKey = void 0;
135095
135238
  rule.toSubModel = void 0;
135096
135239
  rule.toSubFieldKey = void 0;
135240
+ return;
135241
+ }
135242
+ rule.toField = meta.fieldKey;
135243
+ rule.toModelKey = meta.modelKey;
135244
+ rule.toSubModel = meta.subModel;
135245
+ rule.toSubFieldKey = meta.subFieldKey;
135246
+ }
135247
+ function clearRuleError(rule, field) {
135248
+ if (!errors.value[rule.id]) return;
135249
+ delete errors.value[rule.id][field];
135250
+ if (!Object.keys(errors.value[rule.id]).length) {
135251
+ delete errors.value[rule.id];
135252
+ }
135253
+ }
135254
+ function onToFieldValueChange(rule, value) {
135255
+ if (!value) {
135256
+ applyToFieldMeta(rule);
135097
135257
  validateRule(rule);
135098
135258
  }
135099
135259
  }
135100
135260
  function onToFieldChange(rule, node) {
135101
- const meta = node?._targetMeta;
135102
- if (!meta) {
135103
- rule.toField = void 0;
135104
- rule.toModelKey = void 0;
135105
- rule.toSubModel = void 0;
135106
- rule.toSubFieldKey = void 0;
135107
- } else {
135108
- rule.toField = meta.fieldKey;
135109
- rule.toModelKey = meta.modelKey;
135110
- rule.toSubModel = meta.subModel;
135111
- rule.toSubFieldKey = meta.subFieldKey;
135261
+ applyToFieldMeta(rule, node?._targetMeta);
135262
+ validateRule(rule);
135263
+ }
135264
+ function onToFieldFlatChange(rule, value, item) {
135265
+ if (value == null || value === "") {
135266
+ applyToFieldMeta(rule);
135267
+ validateRule(rule);
135268
+ return;
135112
135269
  }
135270
+ const meta = item?._item ?? getToFieldFlatOptions(rule.fromField).find((opt) => opt.value === value)?._item;
135271
+ applyToFieldMeta(rule, meta);
135113
135272
  validateRule(rule);
135114
135273
  }
135115
135274
  const ruleDescriptor = {
@@ -135180,12 +135339,16 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135180
135339
  if (index2 > -1) formState.rules.splice(index2, 1);
135181
135340
  delete errors.value[rule.id];
135182
135341
  }
135183
- function onFromFieldChange(rule) {
135342
+ async function onFromFieldChange(rule) {
135343
+ const hadToFieldError = !!errors.value[rule.id]?.toField;
135184
135344
  rule.toField = void 0;
135185
135345
  rule.toModelKey = void 0;
135186
135346
  rule.toSubModel = void 0;
135187
135347
  rule.toSubFieldKey = void 0;
135188
- validateRule(rule);
135348
+ await validateRule(rule);
135349
+ if (!hadToFieldError) {
135350
+ clearRuleError(rule, "toField");
135351
+ }
135189
135352
  }
135190
135353
  const save = async () => {
135191
135354
  const ok = await validateForm();
@@ -135207,7 +135370,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135207
135370
  _cache[0] || (_cache[0] = createTextVNode(" 填充规则 ", -1))
135208
135371
  ]),
135209
135372
  createElementVNode("div", _hoisted_2$p, [
135210
- _cache[2] || (_cache[2] = createStaticVNode('<div class="header" data-v-6ff7df42><div class="header-title" data-v-6ff7df42>取值来源</div><div class="header-label" data-v-6ff7df42>值填充至</div><div class="header-title" data-v-6ff7df42>目标字段(当前表单模型字段)</div><div class="header-action" data-v-6ff7df42></div></div>', 1)),
135373
+ _cache[2] || (_cache[2] = createStaticVNode('<div class="header" data-v-c4dcc73a><div class="header-title" data-v-c4dcc73a>取值来源</div><div class="header-label" data-v-c4dcc73a>值填充至</div><div class="header-title" data-v-c4dcc73a>目标字段(当前表单模型字段)</div><div class="header-action" data-v-c4dcc73a></div></div>', 1)),
135211
135374
  createElementVNode("div", _hoisted_3$e, [
135212
135375
  (openBlock(true), createElementBlock(Fragment, null, renderList(formState.rules, (rule) => {
135213
135376
  return openBlock(), createElementBlock("div", {
@@ -135226,16 +135389,25 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135226
135389
  ]),
135227
135390
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "form-table-label" }, "值填充至", -1)),
135228
135391
  createElementVNode("div", _hoisted_6$8, [
135229
- createVNode(FieldTreeSelect, {
135392
+ isFlatToFieldMode.value ? (openBlock(), createBlock(unref(GctSearchableSelect), {
135393
+ key: 0,
135394
+ "model-value": getToFieldValue(rule),
135395
+ options: getToFieldFlatOptions(rule.fromField),
135396
+ allowClear: "",
135397
+ placeholder: "请选择字段",
135398
+ onChange: (v, item) => onToFieldFlatChange(rule, v, item)
135399
+ }, null, 8, ["model-value", "options", "onChange"])) : (openBlock(), createBlock(FieldTreeSelect, {
135400
+ key: 1,
135230
135401
  "model-value": getToFieldValue(rule),
135231
135402
  "tree-data": getToFieldTree(rule.fromField),
135232
135403
  "group-only-expand": "",
135233
135404
  "onUpdate:modelValue": (v) => onToFieldValueChange(rule, v),
135234
135405
  onChange: (_2, node) => onToFieldChange(rule, node)
135235
- }, null, 8, ["model-value", "tree-data", "onUpdate:modelValue", "onChange"]),
135406
+ }, null, 8, ["model-value", "tree-data", "onUpdate:modelValue", "onChange"])),
135236
135407
  getError(rule, "toField") ? (openBlock(), createElementBlock("div", _hoisted_7$5, toDisplayString(getError(rule, "toField")), 1)) : createCommentVNode("", true)
135237
135408
  ]),
135238
- createElementVNode("div", {
135409
+ formState.rules.length > 1 ? (openBlock(), createElementBlock("div", {
135410
+ key: 0,
135239
135411
  class: "action rule-item__remove",
135240
135412
  onClick: withModifiers(($event) => removeRule(rule), ["stop"])
135241
135413
  }, [
@@ -135243,7 +135415,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135243
135415
  icon: "icon-shanchu1",
135244
135416
  color: "#8B8B8B"
135245
135417
  })
135246
- ], 8, _hoisted_8$5)
135418
+ ], 8, _hoisted_8$5)) : createCommentVNode("", true)
135247
135419
  ]);
135248
135420
  }), 128))
135249
135421
  ])
@@ -135252,7 +135424,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
135252
135424
  };
135253
135425
  }
135254
135426
  });
135255
- const AutofillRulesModel = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-6ff7df42"]]);
135427
+ const AutofillRulesModel = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-c4dcc73a"]]);
135256
135428
  const _hoisted_1$P = { class: "ref-autofill-editor__extra" };
135257
135429
  const _sfc_main$V = /* @__PURE__ */ defineComponent({
135258
135430
  __name: "ref-autofill-editor",
@@ -140658,11 +140830,8 @@ function useTableDropdown(props, searchFilters) {
140658
140830
  const valuePath = fieldMeta.value?.valuePath;
140659
140831
  const subFieldConfig = getSubFieldConfig(docInst.value.paramsConfig);
140660
140832
  const extraParams = subFieldConfig.get(valuePath);
140661
- const dataIndex = props.widget?.dataSlotIndex?.dataIndex;
140662
- if (valuePath && isNumber(dataIndex)) {
140663
- const _valuePath = valuePath.replace("[n]", `[${dataIndex}]`);
140664
- const subParams = subFieldConfig.get(_valuePath);
140665
- Object.assign(extraParams, subParams);
140833
+ if (runtimeValuePath.value) {
140834
+ Object.assign(extraParams, subFieldConfig.get(runtimeValuePath.value));
140666
140835
  }
140667
140836
  const { queryData = {}, exp = "" } = buildQuery?.({
140668
140837
  keyword,