@gct-paas/word 0.2.3 → 0.2.5-beta.0

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
@@ -1,5 +1,5 @@
1
- /*! @gct-paas/word v0.2.3 */
2
- import { Fragment, Suspense, Teleport, Transition, TransitionGroup, cloneVNode, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, toValue, unref, useAttrs, useCssVars, useModel, useSlots, vModelRadio, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
1
+ /*! @gct-paas/word v0.2.5-beta.0 */
2
+ import { Fragment, Suspense, Teleport, Transition, TransitionGroup, cloneVNode, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, toValue, unref, useAttrs, useCssVars, useModel, useSlots, vModelRadio, vModelSelect, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
3
3
  import Rt, { PopperWrapper } from "floating-vue";
4
4
  import VueKonva from "vue-konva";
5
5
  import { HttpUtil, api } from "@gct-paas/api";
@@ -937,7 +937,7 @@ var init_time = __esmMin((() => {
937
937
  }));
938
938
  //#endregion
939
939
  //#region src/base/calendar/src/calendar.vue?vue&type=script&setup=true&name=calendar&lang.ts
940
- var _hoisted_1$187, _hoisted_2$119, _hoisted_3$89, _hoisted_4$65, _hoisted_5$53, _hoisted_6$37, _hoisted_7$30, _hoisted_8$23, _hoisted_9$16, _hoisted_10$14, _hoisted_11$11, _hoisted_12$9, calendar_vue_vue_type_script_setup_true_name_calendar_lang_default;
940
+ var _hoisted_1$187, _hoisted_2$119, _hoisted_3$89, _hoisted_4$65, _hoisted_5$53, _hoisted_6$37, _hoisted_7$30, _hoisted_8$23, _hoisted_9$16, _hoisted_10$14, _hoisted_11$12, _hoisted_12$10, calendar_vue_vue_type_script_setup_true_name_calendar_lang_default;
941
941
  var init_calendar_vue_vue_type_script_setup_true_name_calendar_lang = __esmMin((() => {
942
942
  init_base$2();
943
943
  init_time();
@@ -958,8 +958,8 @@ var init_calendar_vue_vue_type_script_setup_true_name_calendar_lang = __esmMin((
958
958
  key: 0,
959
959
  class: "gct-dtp-time"
960
960
  };
961
- _hoisted_11$11 = { class: "gct-dtp-time-header" };
962
- _hoisted_12$9 = { class: "gct-dtp-time-container" };
961
+ _hoisted_11$12 = { class: "gct-dtp-time-header" };
962
+ _hoisted_12$10 = { class: "gct-dtp-time-container" };
963
963
  calendar_vue_vue_type_script_setup_true_name_calendar_lang_default = /*@__PURE__*/ defineComponent({
964
964
  __name: "calendar",
965
965
  props: {
@@ -1153,7 +1153,7 @@ var init_calendar_vue_vue_type_script_setup_true_name_calendar_lang = __esmMin((
1153
1153
  default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" 清除 ", -1)])]),
1154
1154
  _: 1
1155
1155
  }, 8, ["disabled"])])) : createCommentVNode("", true)
1156
- ]), showTimeLocal.value ? (openBlock(), createElementBlock("div", _hoisted_10$14, [createElementVNode("div", _hoisted_11$11, toDisplayString(timeValue.value), 1), createElementVNode("div", _hoisted_12$9, [createVNode(time_default, {
1156
+ ]), showTimeLocal.value ? (openBlock(), createElementBlock("div", _hoisted_10$14, [createElementVNode("div", _hoisted_11$12, toDisplayString(timeValue.value), 1), createElementVNode("div", _hoisted_12$10, [createVNode(time_default, {
1157
1157
  "model-value": timeValue.value,
1158
1158
  format: __props.timeFormat,
1159
1159
  disabledTime,
@@ -2689,7 +2689,8 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2689
2689
  default: false
2690
2690
  },
2691
2691
  emptyValue: {},
2692
- roundingMode: { default: 1 }
2692
+ roundingMode: { default: 1 },
2693
+ maxlength: {}
2693
2694
  },
2694
2695
  emits: [
2695
2696
  "update:modelValue",
@@ -2705,6 +2706,13 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2705
2706
  const inputValue = ref("");
2706
2707
  /** 是否是整数模式 */
2707
2708
  const isInteger = computed(() => props.integer === true);
2709
+ /** maxlength 只统计数字位,符号和小数点不占位 */
2710
+ function countLength(value) {
2711
+ return value.replace(/[+\-.]/g, "").length;
2712
+ }
2713
+ function isWithinMaxlength(value) {
2714
+ return props.maxlength === void 0 || countLength(value) <= props.maxlength;
2715
+ }
2708
2716
  /** 控制按钮禁用态 */
2709
2717
  function normalizeLimit(val) {
2710
2718
  return val === Infinity || val === -Infinity ? void 0 : val;
@@ -2798,8 +2806,20 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2798
2806
  const handleFocus = () => {
2799
2807
  isFocused.value = true;
2800
2808
  };
2809
+ const handleBeforeInput = (e) => {
2810
+ if (props.maxlength === void 0 || !e.data || e.isComposing) return;
2811
+ const input = e.target;
2812
+ const start = input.selectionStart ?? input.value.length;
2813
+ const end = input.selectionEnd ?? start;
2814
+ if (!isWithinMaxlength(input.value.slice(0, start) + e.data + input.value.slice(end))) e.preventDefault();
2815
+ };
2801
2816
  const handleInput = (e) => {
2802
- const val = e.target.value;
2817
+ const input = e.target;
2818
+ const val = input.value;
2819
+ if (!isWithinMaxlength(val) && countLength(val) >= countLength(inputValue.value)) {
2820
+ input.value = inputValue.value;
2821
+ return;
2822
+ }
2803
2823
  inputValue.value = val;
2804
2824
  if (!props.emitOnInput) return;
2805
2825
  if (!val) {
@@ -2849,39 +2869,37 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2849
2869
  const focus = () => {
2850
2870
  if (inputRef.value) inputRef.value.focus();
2851
2871
  };
2852
- const stepBy = (direction) => {
2853
- if (props.disabled) return;
2872
+ const getStepResult = (direction) => {
2854
2873
  const raw = inputValue.value;
2855
- const clamped = clampValue((parseInput(raw) ?? new BigNumber(0)).plus(new BigNumber(props.step).multipliedBy(direction)));
2874
+ const base = parseInput(raw) ?? new BigNumber(0);
2875
+ const clamped = clampValue(base.plus(new BigNumber(props.step).multipliedBy(direction)));
2856
2876
  let digits;
2857
2877
  if (props.integer) digits = 0;
2858
2878
  else if (props.precision !== void 0) digits = props.precision;
2859
2879
  else digits = countDecimals(raw);
2860
2880
  const rounded = digits !== void 0 ? clamped.decimalPlaces(digits, getRoundMode()) : clamped;
2861
- const display = digits !== void 0 ? rounded.toFixed(digits) : rounded.toString();
2862
- const returnValue = props.returnString ? display : rounded.toNumber();
2881
+ return {
2882
+ base,
2883
+ rounded,
2884
+ display: digits !== void 0 ? rounded.toFixed(digits) : rounded.toString()
2885
+ };
2886
+ };
2887
+ const canStep = (direction, result = getStepResult(direction)) => {
2888
+ if (props.disabled || !isWithinMaxlength(result.display)) return false;
2889
+ return direction === 1 ? result.rounded.isGreaterThan(result.base) : result.rounded.isLessThan(result.base);
2890
+ };
2891
+ const stepBy = (direction) => {
2892
+ const result = getStepResult(direction);
2893
+ if (!canStep(direction, result)) return;
2894
+ const returnValue = props.returnString ? result.display : result.rounded.toNumber();
2863
2895
  emit("update:modelValue", returnValue);
2864
2896
  emit("change", returnValue);
2865
2897
  nextTick(() => {
2866
- inputValue.value = display;
2898
+ inputValue.value = result.display;
2867
2899
  });
2868
2900
  };
2869
- const canStepUp = computed(() => {
2870
- if (props.disabled) return false;
2871
- const max = normalizeLimit(props.max);
2872
- if (max === void 0) return true;
2873
- const parsed = parseInput(inputValue.value);
2874
- if (!parsed) return true;
2875
- return parsed.isLessThan(max);
2876
- });
2877
- const canStepDown = computed(() => {
2878
- if (props.disabled) return false;
2879
- const min = normalizeLimit(props.min);
2880
- if (min === void 0) return true;
2881
- const parsed = parseInput(inputValue.value);
2882
- if (!parsed) return true;
2883
- return parsed.isGreaterThan(min);
2884
- });
2901
+ const canStepUp = computed(() => canStep(1));
2902
+ const canStepDown = computed(() => canStep(-1));
2885
2903
  return (_ctx, _cache) => {
2886
2904
  return openBlock(), createElementBlock("div", { class: normalizeClass(["gct-input-number", { disabled: __props.disabled }]) }, [
2887
2905
  createElementVNode("input", {
@@ -2894,6 +2912,7 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2894
2912
  disabled: __props.disabled,
2895
2913
  placeholder: __props.placeholder,
2896
2914
  onFocus: handleFocus,
2915
+ onBeforeinput: handleBeforeInput,
2897
2916
  onInput: handleInput,
2898
2917
  onBlur: handleBlur
2899
2918
  }, null, 40, _hoisted_1$178),
@@ -2928,17 +2947,17 @@ var init_input_number_vue_vue_type_script_setup_true_lang = __esmMin((() => {
2928
2947
  });
2929
2948
  }));
2930
2949
  //#endregion
2931
- //#region src/base/input/src/input-number.vue?vue&type=style&index=0&scoped=f73214b8&lang.less
2932
- var init_input_number_vue_vue_type_style_index_0_scoped_f73214b8_lang = __esmMin((() => {}));
2950
+ //#region src/base/input/src/input-number.vue?vue&type=style&index=0&scoped=603efadc&lang.less
2951
+ var init_input_number_vue_vue_type_style_index_0_scoped_603efadc_lang = __esmMin((() => {}));
2933
2952
  //#endregion
2934
2953
  //#region src/base/input/src/input-number.vue
2935
2954
  var input_number_default;
2936
2955
  var init_input_number = __esmMin((() => {
2937
2956
  init_input_number_vue_vue_type_script_setup_true_lang();
2938
2957
  init_input_number_vue_vue_type_script_setup_true_lang();
2939
- init_input_number_vue_vue_type_style_index_0_scoped_f73214b8_lang();
2958
+ init_input_number_vue_vue_type_style_index_0_scoped_603efadc_lang();
2940
2959
  init__plugin_vue_export_helper();
2941
- input_number_default = /*#__PURE__*/ _plugin_vue_export_helper_default(input_number_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f73214b8"]]);
2960
+ input_number_default = /*#__PURE__*/ _plugin_vue_export_helper_default(input_number_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-603efadc"]]);
2942
2961
  }));
2943
2962
  //#endregion
2944
2963
  //#region src/base/input/src/text-area.vue?vue&type=script&setup=true&lang.ts
@@ -5116,7 +5135,7 @@ var init_segment_slider = __esmMin((() => {
5116
5135
  }));
5117
5136
  //#endregion
5118
5137
  //#region src/base/select/src/basic-select.vue?vue&type=script&setup=true&name=dropdown-basic-select&lang.ts
5119
- var _hoisted_1$168, _hoisted_2$105, _hoisted_3$75, _hoisted_4$59, _hoisted_5$48, _hoisted_6$33, _hoisted_7$26, _hoisted_8$21, _hoisted_9$14, _hoisted_10$12, _hoisted_11$10, _hoisted_12$8, basic_select_vue_vue_type_script_setup_true_name_dropdown_basic_select_lang_default;
5138
+ var _hoisted_1$168, _hoisted_2$105, _hoisted_3$75, _hoisted_4$59, _hoisted_5$48, _hoisted_6$33, _hoisted_7$26, _hoisted_8$21, _hoisted_9$14, _hoisted_10$12, _hoisted_11$11, _hoisted_12$9, basic_select_vue_vue_type_script_setup_true_name_dropdown_basic_select_lang_default;
5120
5139
  var init_basic_select_vue_vue_type_script_setup_true_name_dropdown_basic_select_lang = __esmMin((() => {
5121
5140
  init_base$2();
5122
5141
  _hoisted_1$168 = { class: "popper-container" };
@@ -5139,8 +5158,8 @@ var init_basic_select_vue_vue_type_script_setup_true_name_dropdown_basic_select_
5139
5158
  "aria-hidden": "true"
5140
5159
  };
5141
5160
  _hoisted_10$12 = { class: "selection-tag-content" };
5142
- _hoisted_11$10 = ["placeholder", "onKeydown"];
5143
- _hoisted_12$8 = {
5161
+ _hoisted_11$11 = ["placeholder", "onKeydown"];
5162
+ _hoisted_12$9 = {
5144
5163
  key: 3,
5145
5164
  class: "placeholder"
5146
5165
  };
@@ -5530,8 +5549,8 @@ var init_basic_select_vue_vue_type_script_setup_true_name_dropdown_basic_select_
5530
5549
  onClick: [handleInputFocus, _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"]))],
5531
5550
  onKeydown: withKeys(withModifiers(handleCreateTag, ["prevent"]), ["enter"]),
5532
5551
  onBlur: handleCreateTag
5533
- }, null, 40, _hoisted_11$10)), [[vModelText, inputValue.value]]) : createCommentVNode("", true),
5534
- !selectedOptions.value.length && !__props.allowCreate && !__props.searchable && !inputValue.value ? (openBlock(), createElementBlock("div", _hoisted_12$8, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true),
5552
+ }, null, 40, _hoisted_11$11)), [[vModelText, inputValue.value]]) : createCommentVNode("", true),
5553
+ !selectedOptions.value.length && !__props.allowCreate && !__props.searchable && !inputValue.value ? (openBlock(), createElementBlock("div", _hoisted_12$9, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true),
5535
5554
  !__props.multiple && __props.allowClear && selectedOptions.value.length && !__props.disabled ? (openBlock(), createBlock(unref(icon_default), {
5536
5555
  key: 4,
5537
5556
  class: "clear-icon",
@@ -6997,7 +7016,7 @@ var init_use_rdo_tree_options = __esmMin((() => {
6997
7016
  }));
6998
7017
  //#endregion
6999
7018
  //#region src/base/rdo-tree-select/src/rdo-tree-select.vue?vue&type=script&setup=true&name=gct-rdo-tree-select&lang.ts
7000
- var _hoisted_1$161, _hoisted_2$101, _hoisted_3$71, _hoisted_4$55, _hoisted_5$44, _hoisted_6$31, _hoisted_7$24, _hoisted_8$19, _hoisted_9$12, _hoisted_10$11, _hoisted_11$9, _hoisted_12$7, _hoisted_13$6, rdo_tree_select_vue_vue_type_script_setup_true_name_gct_rdo_tree_select_lang_default;
7019
+ var _hoisted_1$161, _hoisted_2$101, _hoisted_3$71, _hoisted_4$55, _hoisted_5$44, _hoisted_6$31, _hoisted_7$24, _hoisted_8$19, _hoisted_9$12, _hoisted_10$11, _hoisted_11$10, _hoisted_12$8, _hoisted_13$7, rdo_tree_select_vue_vue_type_script_setup_true_name_gct_rdo_tree_select_lang_default;
7001
7020
  var init_rdo_tree_select_vue_vue_type_script_setup_true_name_gct_rdo_tree_select_lang = __esmMin((() => {
7002
7021
  init_dropdown();
7003
7022
  init_icon();
@@ -7041,12 +7060,12 @@ var init_rdo_tree_select_vue_vue_type_script_setup_true_name_gct_rdo_tree_select
7041
7060
  class: "rdo-tree-select__suffix-icon"
7042
7061
  };
7043
7062
  _hoisted_10$11 = ["title"];
7044
- _hoisted_11$9 = { class: "rdo-tree-select__value-text" };
7045
- _hoisted_12$7 = {
7063
+ _hoisted_11$10 = { class: "rdo-tree-select__value-text" };
7064
+ _hoisted_12$8 = {
7046
7065
  key: 0,
7047
7066
  class: "rdo-tree-select__value-tag"
7048
7067
  };
7049
- _hoisted_13$6 = {
7068
+ _hoisted_13$7 = {
7050
7069
  key: 1,
7051
7070
  class: "rdo-tree-select__placeholder"
7052
7071
  };
@@ -7439,7 +7458,7 @@ var init_rdo_tree_select_vue_vue_type_script_setup_true_name_gct_rdo_tree_select
7439
7458
  key: 0,
7440
7459
  class: "rdo-tree-select__value",
7441
7460
  title: selectedDisplay.value.text
7442
- }, [createElementVNode("span", _hoisted_11$9, toDisplayString(selectedDisplay.value.text), 1), selectedDisplay.value.showDefaultTag ? (openBlock(), createElementBlock("span", _hoisted_12$7, "默认")) : createCommentVNode("", true)], 8, _hoisted_10$11)) : (openBlock(), createElementBlock("span", _hoisted_13$6, toDisplayString(__props.placeholder), 1)), defaultSuffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
7461
+ }, [createElementVNode("span", _hoisted_11$10, toDisplayString(selectedDisplay.value.text), 1), selectedDisplay.value.showDefaultTag ? (openBlock(), createElementBlock("span", _hoisted_12$8, "默认")) : createCommentVNode("", true)], 8, _hoisted_10$11)) : (openBlock(), createElementBlock("span", _hoisted_13$7, toDisplayString(__props.placeholder), 1)), defaultSuffixIcon.value === "clear" ? (openBlock(), createElementBlock("span", {
7443
7462
  key: 2,
7444
7463
  class: "rdo-tree-select__clear",
7445
7464
  onMousedown: _cache[4] || (_cache[4] = withModifiers(() => {}, ["prevent"])),
@@ -106814,6 +106833,7 @@ var init_types$4 = __esmMin((() => {
106814
106833
  RequiredQtyCalcRule = /* @__PURE__ */ function(RequiredQtyCalcRule) {
106815
106834
  RequiredQtyCalcRule["LotQty"] = "lotQty";
106816
106835
  RequiredQtyCalcRule["ProductQty"] = "productQty";
106836
+ RequiredQtyCalcRule["Custom"] = "custom";
106817
106837
  return RequiredQtyCalcRule;
106818
106838
  }({});
106819
106839
  }));
@@ -124101,8 +124121,9 @@ function filterRulesByTrigger(rules, trigger) {
124101
124121
  return ruleTrigger === trigger;
124102
124122
  });
124103
124123
  }
124104
- var buildError, createRule, compareByOp, compareOpMessage, isDateTimeWidget, toUnixTimestamp, requiredRule, minLengthRule, maxLengthRule, regexRule, minNumberRule, maxNumberRule, minNumberFormulaRule, maxNumberFormulaRule, minTimeRule, maxTimeRule, minTimeFormulaRule, maxTimeFormulaRule, assembleRules, createValidatorContext;
124124
+ var buildError, createRule, compareByOp, compareOpMessage, isDateTimeWidget, toUnixTimestamp, requiredRule, minLengthRule, maxLengthRule, numericFieldTypes, countNumericDigits, defaultNumberLengthRule, regexRule, minNumberRule, maxNumberRule, minNumberFormulaRule, maxNumberFormulaRule, minTimeRule, maxTimeRule, minTimeFormulaRule, maxTimeFormulaRule, assembleRules, createValidatorContext;
124105
124125
  var init_createValidateFactory = __esmMin((() => {
124126
+ init_field_type();
124106
124127
  init_core$1();
124107
124128
  init_enum();
124108
124129
  init_core();
@@ -124162,11 +124183,30 @@ var init_createValidateFactory = __esmMin((() => {
124162
124183
  }, buildError(ctx.validatorInfo, `字段长度不能小于${ctx.minLength}!`));
124163
124184
  };
124164
124185
  maxLengthRule = (ctx) => {
124165
- if (isNil(ctx.maxLength)) return null;
124166
- return createRule((_rule, value, _callback, _source, _options) => {
124186
+ const useDefaultTextMaxLength = isNil(ctx.maxLength) && ctx.fieldType === FIELD_TYPE.TEXT;
124187
+ const maxLength = useDefaultTextMaxLength ? 1024 : ctx.maxLength;
124188
+ if (isNil(maxLength)) return null;
124189
+ const message = useDefaultTextMaxLength ? "最大1024位" : `字段长度不能大于${maxLength}!`;
124190
+ return createRule((_rule, value) => {
124167
124191
  if (isEmptyValue$1(value)) return true;
124168
- return String(value).length <= ctx.maxLength;
124169
- }, buildError(ctx.validatorInfo, `字段长度不能大于${ctx.maxLength}!`));
124192
+ return String(value).length <= maxLength;
124193
+ }, buildError(ctx.validatorInfo, message));
124194
+ };
124195
+ numericFieldTypes = /* @__PURE__ */ new Set([
124196
+ FIELD_TYPE.INTEGER,
124197
+ FIELD_TYPE.LONG,
124198
+ FIELD_TYPE.DOUBLE,
124199
+ FIELD_TYPE.DECIMAL
124200
+ ]);
124201
+ countNumericDigits = (value) => {
124202
+ const raw = String(value);
124203
+ return ((/e/i.test(raw) ? new BigNumber(raw).toFixed() : raw).match(/\d/g) ?? []).length;
124204
+ };
124205
+ defaultNumberLengthRule = (ctx) => {
124206
+ const noValidate = RangeValidateModeTypeConst.No_Validate;
124207
+ if (!(!ctx.enableRangeValidate || (ctx.maxValidateMode ?? noValidate) === noValidate || (ctx.minValidateMode ?? noValidate) === noValidate) || !ctx.fieldType || !numericFieldTypes.has(ctx.fieldType)) return null;
124208
+ debugger;
124209
+ return createRule((_rule, value) => isEmptyValue$1(value) || countNumericDigits(value) <= 15, buildError(ctx.validatorInfo, "最大15位数字"));
124170
124210
  };
124171
124211
  regexRule = (ctx) => {
124172
124212
  if (!ctx.regex) return null;
@@ -124328,6 +124368,7 @@ var init_createValidateFactory = __esmMin((() => {
124328
124368
  requiredRule(ctx),
124329
124369
  minLengthRule(ctx),
124330
124370
  maxLengthRule(ctx),
124371
+ defaultNumberLengthRule(ctx),
124331
124372
  regexRule(ctx),
124332
124373
  minNumberRule(ctx),
124333
124374
  maxNumberRule(ctx),
@@ -125520,13 +125561,14 @@ var init_bom_validator$1 = __esmMin((() => {
125520
125561
  get total() {
125521
125562
  return this.materialNoNum * this.bomEntry.qty_required_;
125522
125563
  }
125523
- constructor(bomEntry, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode) {
125564
+ constructor(bomEntry, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode, isCustomRequiredQty = false) {
125524
125565
  _defineProperty(this, "bomEntry", void 0);
125525
125566
  _defineProperty(this, "enableSequenceLoading", void 0);
125526
125567
  _defineProperty(this, "getMaterialNoNum", void 0);
125527
125568
  _defineProperty(this, "historyData", void 0);
125528
125569
  _defineProperty(this, "mainMaterialNo", void 0);
125529
125570
  _defineProperty(this, "noBomMode", void 0);
125571
+ _defineProperty(this, "isCustomRequiredQty", void 0);
125530
125572
  _defineProperty(
125531
125573
  this,
125532
125574
  /** 该明细使用到的产品的id集合 */
@@ -125551,6 +125593,7 @@ var init_bom_validator$1 = __esmMin((() => {
125551
125593
  this.historyData = historyData;
125552
125594
  this.mainMaterialNo = mainMaterialNo;
125553
125595
  this.noBomMode = noBomMode;
125596
+ this.isCustomRequiredQty = isCustomRequiredQty;
125554
125597
  this.productIds.push(this.bomEntry.product_id_);
125555
125598
  this.productCodes[this.bomEntry.product_id_] = this.bomEntry.product_code_;
125556
125599
  if (this.bomEntry.substitute_material_enabled_ && this.bomEntry.substitute_material_entries_) this.bomEntry.substitute_material_entries_.forEach((i) => {
@@ -125573,7 +125616,7 @@ var init_bom_validator$1 = __esmMin((() => {
125573
125616
  * @return {*}
125574
125617
  */
125575
125618
  filterGroupData(arr) {
125576
- return arr.filter((i) => this.productIds.includes(i.product_id_));
125619
+ return arr.filter((i) => this.isRowInGroup(i) && i.product_id_);
125577
125620
  }
125578
125621
  /** 行是否属于本 BOM 组(优先 bom_entry_id_,避免跨组 product_id_ 误判) */
125579
125622
  isRowInGroup(row) {
@@ -125732,8 +125775,15 @@ var init_bom_validator$1 = __esmMin((() => {
125732
125775
  async validateGroupQty(arr, sequential = this.enableSequenceLoading, groupNo) {
125733
125776
  const entry = this.bomEntry;
125734
125777
  if (!entry.qty_validation_enabled_ || entry.type_ === "view") return;
125778
+ const groupData = this.filterGroupData(arr);
125735
125779
  const loaded = this.calcQtyConsumed(arr);
125736
- const required = this.remainingNum;
125780
+ let required = this.remainingNum;
125781
+ if (this.isCustomRequiredQty) {
125782
+ var _groupData$;
125783
+ const currentQty = (_groupData$ = groupData[0]) === null || _groupData$ === void 0 ? void 0 : _groupData$.qty_required_;
125784
+ if (typeof currentQty !== "number" || !Number.isFinite(currentQty) || currentQty <= 0) throw new Error(groupNo != null && groupNo > 0 ? `序号${groupNo},需求数量必须大于 0` : "需求数量必须大于 0");
125785
+ required = currentQty - this.hasConsumed;
125786
+ }
125737
125787
  const diff = loaded - required;
125738
125788
  const rule = entry.qty_validation_rule_;
125739
125789
  const fail = (msg) => {
@@ -125795,13 +125845,14 @@ var init_bom_validator$1 = __esmMin((() => {
125795
125845
  }
125796
125846
  };
125797
125847
  BomEntriesValidator = class {
125798
- constructor(entries, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode) {
125848
+ constructor(entries, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode, isCustomRequiredQty = false) {
125799
125849
  _defineProperty(this, "entries", void 0);
125800
125850
  _defineProperty(this, "enableSequenceLoading", void 0);
125801
125851
  _defineProperty(this, "getMaterialNoNum", void 0);
125802
125852
  _defineProperty(this, "historyData", void 0);
125803
125853
  _defineProperty(this, "mainMaterialNo", void 0);
125804
125854
  _defineProperty(this, "noBomMode", void 0);
125855
+ _defineProperty(this, "isCustomRequiredQty", void 0);
125805
125856
  _defineProperty(this, "bomEntryValidators", void 0);
125806
125857
  this.entries = entries;
125807
125858
  this.enableSequenceLoading = enableSequenceLoading;
@@ -125809,7 +125860,8 @@ var init_bom_validator$1 = __esmMin((() => {
125809
125860
  this.historyData = historyData;
125810
125861
  this.mainMaterialNo = mainMaterialNo;
125811
125862
  this.noBomMode = noBomMode;
125812
- this.bomEntryValidators = entries.map((i) => new BomEntryValidator(i, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode));
125863
+ this.isCustomRequiredQty = isCustomRequiredQty;
125864
+ this.bomEntryValidators = entries.map((i) => new BomEntryValidator(i, enableSequenceLoading, getMaterialNoNum, historyData, mainMaterialNo, noBomMode, isCustomRequiredQty));
125813
125865
  }
125814
125866
  /** 当前批次/生产数量 */
125815
125867
  get materialNoNum() {
@@ -125900,11 +125952,12 @@ var init_bom_validator$1 = __esmMin((() => {
125900
125952
  * 行 → BOM 明细在 bomEntryValidators 中的下标,找不到返回 -1
125901
125953
  */
125902
125954
  resolveEntryIndex(row) {
125955
+ if (row.bom_entry_id_) return this.bomEntryValidators.findIndex((v) => v.bomEntry.id_ === row.bom_entry_id_);
125903
125956
  if (row.product_id_) {
125904
125957
  const i = this.bomEntryValidators.findIndex((v) => v.productIds.includes(row.product_id_));
125905
125958
  if (i >= 0) return i;
125906
125959
  }
125907
- return row.bom_entry_id_ ? this.bomEntryValidators.findIndex((v) => v.bomEntry.id_ === row.bom_entry_id_) : -1;
125960
+ return -1;
125908
125961
  }
125909
125962
  /**
125910
125963
  * 行所属组在序号列中的 groupOrderIndex(0-based;-1 未绑 BOM 组)
@@ -126981,6 +127034,7 @@ var init_material_consume_table_controller = __esmMin((() => {
126981
127034
  /** 批次数量或生产数量 */
126982
127035
  get materialNoNum() {
126983
127036
  const { required_qty_calc_rule_, product_qty_field_ } = this.tmplBom;
127037
+ if (required_qty_calc_rule_ === RequiredQtyCalcRule.Custom) return;
126984
127038
  if (required_qty_calc_rule_ === RequiredQtyCalcRule.ProductQty) return product_qty_field_ ? this.mainFormState.value[product_qty_field_] : 0;
126985
127039
  return this.tmplBomController.materialNoNum;
126986
127040
  }
@@ -127112,7 +127166,37 @@ var init_material_consume_table_controller = __esmMin((() => {
127112
127166
  this.initScanRule(this.tmplBom.barcode_parsing_rules_id_);
127113
127167
  this.scanParamType = this.tmplBom.scan_param_type_;
127114
127168
  markRaw(this);
127115
- this.bomEntriesValidator = new BomEntriesValidator(this.actualBomEntries, this.enableSequenceLoading, () => this.materialNoNum, this.tmplBomController.historyData, this.tmplBomController.materialNo, this.mcPattern === MaterialConsumptionPatternEnum.RECORD && !this.tmplBom.personal_bom_enabled_);
127169
+ this.bomEntriesValidator = new BomEntriesValidator(this.actualBomEntries, this.enableSequenceLoading, () => this.materialNoNum, this.tmplBomController.historyData, this.tmplBomController.materialNo, this.mcPattern === MaterialConsumptionPatternEnum.RECORD && !this.tmplBom.personal_bom_enabled_, this.tmplBom.required_qty_calc_rule_ === RequiredQtyCalcRule.Custom);
127170
+ }
127171
+ get isCustomRequiredQty() {
127172
+ return this.tmplBom.required_qty_calc_rule_ === RequiredQtyCalcRule.Custom;
127173
+ }
127174
+ getBomGroupForRow(row) {
127175
+ const validators = this.bomEntriesValidator.bomEntryValidators;
127176
+ if (row.bom_entry_id_) return validators.find((util) => util.bomEntry.id_ === row.bom_entry_id_);
127177
+ return row.product_id_ ? this.bomEntriesValidator.findUtilByProductId(row.product_id_) : void 0;
127178
+ }
127179
+ getMatchingBomGroupForRow(row) {
127180
+ const current = this.getBomGroupForRow(row);
127181
+ if (!row.product_id_ || (current === null || current === void 0 ? void 0 : current.productIds.includes(row.product_id_))) return current;
127182
+ return this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127183
+ }
127184
+ /** 自定义规则的需求数量在同一 BOM 组内保持一致。 */
127185
+ getCustomGroupRequiredQty(row) {
127186
+ var _this$actualTableData;
127187
+ const util = this.getBomGroupForRow(row);
127188
+ if (!util) return row.qty_required_;
127189
+ return (_this$actualTableData = this.actualTableData.find((item) => util.isRowInGroup(item) && item.qty_required_ != null)) === null || _this$actualTableData === void 0 ? void 0 : _this$actualTableData.qty_required_;
127190
+ }
127191
+ syncCustomGroupRequiredQty(row, qty, doc) {
127192
+ if (!this.isCustomRequiredQty) return;
127193
+ const util = this.getBomGroupForRow(row);
127194
+ if (!util) return;
127195
+ const updates = {};
127196
+ this.tableDataRef.value.forEach((item, index) => {
127197
+ if (util.isRowInGroup(item) && item.qty_required_ !== qty) updates[`${this.subTableInfo.valuePath}[${index}].qty_required_`] = qty;
127198
+ });
127199
+ doc.dataManager.setMultiple(updates, "user");
127116
127200
  }
127117
127201
  /** 错误信息 */
127118
127202
  error(message) {
@@ -127145,13 +127229,16 @@ var init_material_consume_table_controller = __esmMin((() => {
127145
127229
  * 根据bom明细构造子表数据(初始化时)
127146
127230
  */
127147
127231
  calcFormState() {
127148
- if (this.tmplBom.bom_init_enabled_) return this.actualBomEntries.map((i) => {
127149
- return {
127150
- product_id_: i.product_id_,
127151
- qty_required_: i.qty_required_ * this.materialNoNum,
127152
- bom_entry_id_: i.id_
127153
- };
127154
- });
127232
+ if (this.tmplBom.bom_init_enabled_) {
127233
+ const materialNoNum = this.materialNoNum;
127234
+ return this.actualBomEntries.map((i) => {
127235
+ return {
127236
+ product_id_: i.product_id_,
127237
+ ...materialNoNum === void 0 ? {} : { qty_required_: i.qty_required_ * materialNoNum },
127238
+ bom_entry_id_: i.id_
127239
+ };
127240
+ });
127241
+ }
127155
127242
  }
127156
127243
  /**
127157
127244
  * 未填报时初始化消耗表行数据
@@ -127193,7 +127280,7 @@ var init_material_consume_table_controller = __esmMin((() => {
127193
127280
  "sort_num_",
127194
127281
  "qty_consumed_total_"
127195
127282
  ];
127196
- if (!(this.mcPattern === MaterialConsumptionPatternEnum.RECORD && !this.tmplBom.personal_bom_enabled_)) disabledKeys.push("qty_required_");
127283
+ if (!(this.mcPattern === MaterialConsumptionPatternEnum.RECORD && (!this.tmplBom.personal_bom_enabled_ || this.isCustomRequiredQty))) disabledKeys.push("qty_required_");
127197
127284
  if (row.product_id_) {
127198
127285
  const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127199
127286
  if ((util === null || util === void 0 ? void 0 : util.bomEntry.type_) === "view") disabledKeys.push("material_no_", "qty_");
@@ -127262,8 +127349,8 @@ var init_material_consume_table_controller = __esmMin((() => {
127262
127349
  * @return {*}
127263
127350
  */
127264
127351
  isFirstBlankRow() {
127265
- var _this$actualTableData;
127266
- return this.actualTableData.length === 1 && !((_this$actualTableData = this.actualTableData[0]) === null || _this$actualTableData === void 0 ? void 0 : _this$actualTableData.product_id_);
127352
+ var _this$actualTableData2;
127353
+ return this.actualTableData.length === 1 && !((_this$actualTableData2 = this.actualTableData[0]) === null || _this$actualTableData2 === void 0 ? void 0 : _this$actualTableData2.product_id_);
127267
127354
  }
127268
127355
  /**
127269
127356
  * 是否有正在编辑的组。
@@ -127333,8 +127420,17 @@ var init_material_consume_table_controller = __esmMin((() => {
127333
127420
  Object.assign(row, transformedData);
127334
127421
  this.setDefaultValue(row, doc);
127335
127422
  try {
127423
+ var _this$actualTableData3;
127336
127424
  const plan = await this.bomEntriesValidator.validateScanCanInsert(row, this.actualTableData);
127337
- this.tableDataRef.value = await applyScanFillPlan(this.actualTableData, row, plan, { validateCurrentGroupForSwitch: (table, current) => this.bomEntriesValidator.validateCurrentGroupForSwitch(table, current) });
127425
+ const existingRequiredQty = this.isCustomRequiredQty && plan ? (_this$actualTableData3 = this.actualTableData.find((item) => plan.target.isRowInGroup(item) && item.qty_required_ != null)) === null || _this$actualTableData3 === void 0 ? void 0 : _this$actualTableData3.qty_required_ : void 0;
127426
+ const nextTable = await applyScanFillPlan(this.actualTableData, row, plan, { validateCurrentGroupForSwitch: (table, current) => this.bomEntriesValidator.validateCurrentGroupForSwitch(table, current) });
127427
+ if (this.isCustomRequiredQty && plan) {
127428
+ const requiredQty = existingRequiredQty ?? row.qty_required_;
127429
+ nextTable.forEach((item) => {
127430
+ if (plan.target.isRowInGroup(item)) item.qty_required_ = requiredQty;
127431
+ });
127432
+ }
127433
+ this.tableDataRef.value = nextTable;
127338
127434
  this.updateDerivedQtyFields(doc);
127339
127435
  } catch (e) {
127340
127436
  console.error(e);
@@ -127401,7 +127497,26 @@ var init_material_consume_table_controller = __esmMin((() => {
127401
127497
  row.deleted_
127402
127498
  ]));
127403
127499
  let derivedQtyInputSnapshot = getDerivedQtyInputSnapshot();
127500
+ const getRequiredQtySnapshot = () => this.tableDataRef.value.map((row) => ({
127501
+ rowKey: row["front_row_key_"] ?? row.id_,
127502
+ productId: row.product_id_,
127503
+ bomEntryId: row.bom_entry_id_,
127504
+ qty: row.qty_required_
127505
+ }));
127506
+ let requiredQtySnapshot = getRequiredQtySnapshot();
127404
127507
  this.setupDataUnsubscribe = opts.doc.dataManager.subscribe(opts.subTableInfo.valuePath, () => {
127508
+ if (this.isCustomRequiredQty) {
127509
+ const nextRequiredQtySnapshot = getRequiredQtySnapshot();
127510
+ const changedRows = nextRequiredQtySnapshot.flatMap((item, index) => {
127511
+ const previous = requiredQtySnapshot[index];
127512
+ return previous && previous.rowKey === item.rowKey && previous.productId === item.productId && previous.bomEntryId === item.bomEntryId && previous.qty !== item.qty ? [index] : [];
127513
+ });
127514
+ requiredQtySnapshot = nextRequiredQtySnapshot;
127515
+ if (changedRows.length === 1) {
127516
+ const row = this.tableDataRef.value[changedRows[0]];
127517
+ if (row) this.syncCustomGroupRequiredQty(row, row.qty_required_, opts.doc);
127518
+ }
127519
+ }
127405
127520
  const nextSnapshot = getDerivedQtyInputSnapshot();
127406
127521
  if (nextSnapshot === derivedQtyInputSnapshot) return;
127407
127522
  derivedQtyInputSnapshot = nextSnapshot;
@@ -127443,6 +127558,7 @@ var init_material_consume_table_controller = __esmMin((() => {
127443
127558
  * 按当前 materialNoNum 回写各行 qty_required_(校验侧 total 已通过 getter 实时读取)
127444
127559
  */
127445
127560
  syncQtyRequiredFromBom(doc) {
127561
+ if (this.tmplBom.required_qty_calc_rule_ === RequiredQtyCalcRule.Custom) return;
127446
127562
  this.tableDataRef.value.forEach((row, index) => {
127447
127563
  if (row.deleted_) return;
127448
127564
  if (!row.product_id_) return;
@@ -127700,6 +127816,7 @@ var init_material_consume_table_controller = __esmMin((() => {
127700
127816
  const insertedRow = (_dataManager$getRawDa4 = dataManager.getRawData()[subFieldKey]) === null || _dataManager$getRawDa4 === void 0 ? void 0 : _dataManager$getRawDa4[insertIndex];
127701
127817
  if (insertedRow) {
127702
127818
  this.setDefaultValue(insertedRow, doc);
127819
+ if (this.isCustomRequiredQty) insertedRow.qty_required_ = void 0;
127703
127820
  dataManager.set(`$.${subFieldKey}[${insertIndex}]`, insertedRow, "user");
127704
127821
  }
127705
127822
  this.updateDerivedQtyFields(doc);
@@ -127716,7 +127833,8 @@ var init_material_consume_table_controller = __esmMin((() => {
127716
127833
  const newRow = {
127717
127834
  is_confirmed_: false,
127718
127835
  expiration_date_: "",
127719
- ...currentRow.bom_entry_id_ ? { bom_entry_id_: currentRow.bom_entry_id_ } : {}
127836
+ ...this.getBomGroupForRow(currentRow) ? { bom_entry_id_: this.getBomGroupForRow(currentRow).bomEntry.id_ } : {},
127837
+ ...this.isCustomRequiredQty ? { qty_required_: this.getCustomGroupRequiredQty(currentRow) } : {}
127720
127838
  };
127721
127839
  ensureFrontRowKey(newRow);
127722
127840
  const insertIndex = rowIndex + 1;
@@ -127747,6 +127865,7 @@ var init_material_consume_table_controller = __esmMin((() => {
127747
127865
  ensureFrontRowKey(row);
127748
127866
  this.setDefaultValue(row, doc);
127749
127867
  row.bom_entry_id_ = void 0;
127868
+ if (this.isCustomRequiredQty) row.qty_required_ = void 0;
127750
127869
  row.qty_consumed_total_ = void 0;
127751
127870
  dataManager.set(`$.${subFieldKey}[${rowIndex}]`, row, "user");
127752
127871
  MCDataUtil.updateConfirmableFieldsDisablement({
@@ -127814,9 +127933,9 @@ var init_material_consume_table_controller = __esmMin((() => {
127814
127933
  setDefaultValue(row, doc) {
127815
127934
  if (!row.routing_operation_id_) row.routing_operation_id_ = this.tmplBomController.operationId;
127816
127935
  if (row.product_id_) {
127817
- const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127936
+ const util = this.isCustomRequiredQty ? this.getMatchingBomGroupForRow(row) : this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127818
127937
  if (util) {
127819
- row.qty_required_ = util.total;
127938
+ if (this.tmplBom.required_qty_calc_rule_ !== RequiredQtyCalcRule.Custom) row.qty_required_ = util.total;
127820
127939
  row.qty_consumed_ = util.hasConsumed;
127821
127940
  row.bom_entry_id_ = util.bomEntry.id_;
127822
127941
  }
@@ -127827,9 +127946,9 @@ var init_material_consume_table_controller = __esmMin((() => {
127827
127946
  const value = {};
127828
127947
  if (!row.routing_operation_id_) value.routing_operation_id_ = this.tmplBomController.operationId;
127829
127948
  if (row.product_id_) {
127830
- const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127949
+ const util = this.isCustomRequiredQty ? this.getMatchingBomGroupForRow(row) : this.bomEntriesValidator.findUtilByProductId(row.product_id_);
127831
127950
  if (util) {
127832
- value.qty_required_ = util.total;
127951
+ if (this.tmplBom.required_qty_calc_rule_ !== RequiredQtyCalcRule.Custom) value.qty_required_ = util.total;
127833
127952
  value.qty_consumed_ = util.hasConsumed;
127834
127953
  value.bom_entry_id_ = util.bomEntry.id_;
127835
127954
  }
@@ -127889,9 +128008,9 @@ var init_material_consume_table_controller = __esmMin((() => {
127889
128008
  if (!materialNo) return;
127890
128009
  try {
127891
128010
  await this.validateReinspectionDate({
127892
- product_id_: selectedOption.product_id_ ?? row.product_id_,
128011
+ product_id_: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.product_id_) ?? row.product_id_,
127893
128012
  material_no_: materialNo,
127894
- material_no_id_: selectedOption.id_
128013
+ material_no_id_: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.id_
127895
128014
  });
127896
128015
  } catch (e) {
127897
128016
  doc.dataManager.setMultiple({
@@ -127902,10 +128021,17 @@ var init_material_consume_table_controller = __esmMin((() => {
127902
128021
  this.error(e.message);
127903
128022
  return;
127904
128023
  }
127905
- doc.dataManager.setMultiple({ [`${rowPath}.product_id_`]: selectedOption.product_id_ }, "user");
128024
+ if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.product_id_) doc.dataManager.setMultiple({ [`${rowPath}.product_id_`]: selectedOption.product_id_ }, "user");
127906
128025
  }
127907
128026
  const rowData = doc.dataManager.getRawData()[parentFieldKey][dataIndex];
127908
128027
  const value = this.getDefaultValue(rowData);
128028
+ if (this.isCustomRequiredQty) {
128029
+ var _this$actualTableData4;
128030
+ const nextGroupId = value.bom_entry_id_ ?? rowData.bom_entry_id_;
128031
+ const group = this.bomEntriesValidator.bomEntryValidators.find((util) => util.bomEntry.id_ === nextGroupId);
128032
+ const otherRequiredQty = group ? (_this$actualTableData4 = this.actualTableData.find((item) => item !== rowData && group.isRowInGroup(item) && item.qty_required_ != null)) === null || _this$actualTableData4 === void 0 ? void 0 : _this$actualTableData4.qty_required_ : void 0;
128033
+ value.qty_required_ = nextGroupId === rowData.bom_entry_id_ ? otherRequiredQty ?? rowData.qty_required_ : otherRequiredQty;
128034
+ }
127909
128035
  const wordValue = Object.entries(value).reduce((data, [key, value]) => {
127910
128036
  data[`${rowPath}.${key}`] = value;
127911
128037
  return data;
@@ -128683,6 +128809,7 @@ function buildWidgetValidationPayload(doc, widget, mode = "change") {
128683
128809
  const modelInfo = doc.fieldModelQuery.getModel(modelKey);
128684
128810
  const ctx = createValidatorContext(doc, {
128685
128811
  ...widgetProps,
128812
+ fieldType: fieldInfo === null || fieldInfo === void 0 ? void 0 : fieldInfo.type,
128686
128813
  showRequired: widgetState.required,
128687
128814
  validatorInfo: {
128688
128815
  modelId: widget.modelRef.id,
@@ -138484,7 +138611,7 @@ var init_attachment_file_popover = __esmMin((() => {
138484
138611
  }));
138485
138612
  //#endregion
138486
138613
  //#region src/runtime/renderer/field-preview/image-preview-popover.vue?vue&type=script&setup=true&name=image-preview-popover&lang.ts
138487
- var _hoisted_1$155, _hoisted_2$96, _hoisted_3$66, _hoisted_4$51, _hoisted_5$40, _hoisted_6$29, _hoisted_7$22, _hoisted_8$18, _hoisted_9$11, _hoisted_10$10, _hoisted_11$8, _hoisted_12$6, _hoisted_13$5, MIN_SCALE, MAX_SCALE, SCALE_STEP, image_preview_popover_vue_vue_type_script_setup_true_name_image_preview_popover_lang_default;
138614
+ var _hoisted_1$155, _hoisted_2$96, _hoisted_3$66, _hoisted_4$51, _hoisted_5$40, _hoisted_6$29, _hoisted_7$22, _hoisted_8$18, _hoisted_9$11, _hoisted_10$10, _hoisted_11$9, _hoisted_12$7, _hoisted_13$6, MIN_SCALE, MAX_SCALE, SCALE_STEP, image_preview_popover_vue_vue_type_script_setup_true_name_image_preview_popover_lang_default;
138488
138615
  var init_image_preview_popover_vue_vue_type_script_setup_true_name_image_preview_popover_lang = __esmMin((() => {
138489
138616
  init_base$2();
138490
138617
  init_asset_helper_util();
@@ -138504,9 +138631,9 @@ var init_image_preview_popover_vue_vue_type_script_setup_true_name_image_preview
138504
138631
  _hoisted_8$18 = { class: "toolbar-right" };
138505
138632
  _hoisted_9$11 = { class: "toolbar-actions" };
138506
138633
  _hoisted_10$10 = ["disabled"];
138507
- _hoisted_11$8 = ["disabled"];
138508
- _hoisted_12$6 = { class: "lightbox-stage" };
138509
- _hoisted_13$5 = ["src"];
138634
+ _hoisted_11$9 = ["disabled"];
138635
+ _hoisted_12$7 = { class: "lightbox-stage" };
138636
+ _hoisted_13$6 = ["src"];
138510
138637
  MIN_SCALE = .2;
138511
138638
  MAX_SCALE = 3;
138512
138639
  SCALE_STEP = .25;
@@ -138719,7 +138846,7 @@ var init_image_preview_popover_vue_vue_type_script_setup_true_name_image_preview
138719
138846
  icon: "icon-fangda_zoom-in",
138720
138847
  size: "18",
138721
138848
  color: canZoomIn.value ? "#fff" : "rgba(255,255,255,0.35)"
138722
- }, null, 8, ["color"])], 10, _hoisted_11$8)
138849
+ }, null, 8, ["color"])], 10, _hoisted_11$9)
138723
138850
  ]), createElementVNode("button", {
138724
138851
  type: "button",
138725
138852
  class: "toolbar-close",
@@ -138741,13 +138868,13 @@ var init_image_preview_popover_vue_vue_type_script_setup_true_name_image_preview
138741
138868
  size: "20",
138742
138869
  color: "#fff"
138743
138870
  })])) : createCommentVNode("", true),
138744
- createElementVNode("div", _hoisted_12$6, [createElementVNode("img", {
138871
+ createElementVNode("div", _hoisted_12$7, [createElementVNode("img", {
138745
138872
  class: "lightbox-image",
138746
138873
  src: currentSrc.value,
138747
138874
  alt: "",
138748
138875
  style: normalizeStyle(imageStyle.value),
138749
138876
  onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"]))
138750
- }, null, 12, _hoisted_13$5)]),
138877
+ }, null, 12, _hoisted_13$6)]),
138751
138878
  __props.images.length > 1 ? (openBlock(), createElementBlock("button", {
138752
138879
  key: 1,
138753
138880
  type: "button",
@@ -140425,7 +140552,7 @@ var init_pagination_control = __esmMin((() => {
140425
140552
  }));
140426
140553
  //#endregion
140427
140554
  //#region src/runtime/renderer/dropdowns/components/tables/table-option-dropdown.vue?vue&type=script&setup=true&lang.ts
140428
- var _hoisted_1$147, _hoisted_2$91, _hoisted_3$61, _hoisted_4$47, _hoisted_5$36, _hoisted_6$26, _hoisted_7$20, _hoisted_8$16, _hoisted_9$10, _hoisted_10$9, _hoisted_11$7, table_option_dropdown_vue_vue_type_script_setup_true_lang_default;
140555
+ var _hoisted_1$147, _hoisted_2$91, _hoisted_3$61, _hoisted_4$47, _hoisted_5$36, _hoisted_6$26, _hoisted_7$20, _hoisted_8$16, _hoisted_9$10, _hoisted_10$9, _hoisted_11$8, table_option_dropdown_vue_vue_type_script_setup_true_lang_default;
140429
140556
  var init_table_option_dropdown_vue_vue_type_script_setup_true_lang = __esmMin((() => {
140430
140557
  init_base$2();
140431
140558
  init_device_type_select();
@@ -140457,7 +140584,7 @@ var init_table_option_dropdown_vue_vue_type_script_setup_true_lang = __esmMin(((
140457
140584
  key: 1,
140458
140585
  class: "options-loading"
140459
140586
  };
140460
- _hoisted_11$7 = {
140587
+ _hoisted_11$8 = {
140461
140588
  key: 2,
140462
140589
  class: "options-footer"
140463
140590
  };
@@ -140589,7 +140716,7 @@ var init_table_option_dropdown_vue_vue_type_script_setup_true_lang = __esmMin(((
140589
140716
  ])]),
140590
140717
  _: 1
140591
140718
  }, 8, ["wrap-style"]),
140592
- hasValue.value ? (openBlock(), createElementBlock("div", _hoisted_11$7, [createElementVNode("div", {
140719
+ hasValue.value ? (openBlock(), createElementBlock("div", _hoisted_11$8, [createElementVNode("div", {
140593
140720
  class: "btn-center",
140594
140721
  onClick: handleClear
140595
140722
  }, "清除")])) : createCommentVNode("", true)
@@ -142094,7 +142221,7 @@ var init_rdo_table_dropdown = __esmMin((() => {
142094
142221
  }));
142095
142222
  //#endregion
142096
142223
  //#region src/runtime/renderer/dialogs/upload-file/base-upload-file.vue?vue&type=script&setup=true&name=base-upload-image&lang.ts
142097
- var _hoisted_1$143, _hoisted_2$87, _hoisted_3$58, _hoisted_4$44, _hoisted_5$34, _hoisted_6$25, _hoisted_7$19, _hoisted_8$15, _hoisted_9$9, _hoisted_10$8, _hoisted_11$6, _hoisted_12$5, _hoisted_13$4, _hoisted_14$4, base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_lang_default;
142224
+ var _hoisted_1$143, _hoisted_2$87, _hoisted_3$58, _hoisted_4$44, _hoisted_5$34, _hoisted_6$25, _hoisted_7$19, _hoisted_8$15, _hoisted_9$9, _hoisted_10$8, _hoisted_11$7, _hoisted_12$6, _hoisted_13$5, _hoisted_14$5, base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_lang_default;
142098
142225
  var init_base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_lang = __esmMin((() => {
142099
142226
  init_base$2();
142100
142227
  init_core$1();
@@ -142122,16 +142249,16 @@ var init_base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_
142122
142249
  _hoisted_8$15 = ["src"];
142123
142250
  _hoisted_9$9 = { class: "meta" };
142124
142251
  _hoisted_10$8 = ["onClick"];
142125
- _hoisted_11$6 = { class: "file-size" };
142126
- _hoisted_12$5 = {
142252
+ _hoisted_11$7 = { class: "file-size" };
142253
+ _hoisted_12$6 = {
142127
142254
  key: 0,
142128
142255
  class: "progress"
142129
142256
  };
142130
- _hoisted_13$4 = {
142257
+ _hoisted_13$5 = {
142131
142258
  key: 1,
142132
142259
  class: "status"
142133
142260
  };
142134
- _hoisted_14$4 = ["onClick"];
142261
+ _hoisted_14$5 = ["onClick"];
142135
142262
  base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_lang_default = /*@__PURE__*/ defineComponent({
142136
142263
  __name: "base-upload-file",
142137
142264
  props: {
@@ -142339,12 +142466,12 @@ var init_base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_
142339
142466
  }, null, 8, _hoisted_8$15), createElementVNode("div", _hoisted_9$9, [createElementVNode("span", {
142340
142467
  class: "file-name clickable",
142341
142468
  onClick: ($event) => item.status === "done" && downloadFile(item)
142342
- }, toDisplayString(item.name), 9, _hoisted_10$8), createElementVNode("span", _hoisted_11$6, toDisplayString(unref(formatSize)(item.size)), 1)])]),
142343
- item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_12$5, [createElementVNode("div", {
142469
+ }, toDisplayString(item.name), 9, _hoisted_10$8), createElementVNode("span", _hoisted_11$7, toDisplayString(unref(formatSize)(item.size)), 1)])]),
142470
+ item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_12$6, [createElementVNode("div", {
142344
142471
  class: "progress-inner",
142345
142472
  style: normalizeStyle({ width: item.progress + "%" })
142346
142473
  }, null, 4)])) : createCommentVNode("", true),
142347
- item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_13$4, " 上传失败 ")) : createCommentVNode("", true),
142474
+ item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_13$5, " 上传失败 ")) : createCommentVNode("", true),
142348
142475
  createElementVNode("div", {
142349
142476
  class: "delete",
142350
142477
  onClick: withModifiers(($event) => deleteFile(item.id), ["stop"])
@@ -142353,7 +142480,7 @@ var init_base_upload_file_vue_vue_type_script_setup_true_name_base_upload_image_
142353
142480
  size: "12",
142354
142481
  version: "v2",
142355
142482
  color: "#fff"
142356
- })], 8, _hoisted_14$4)
142483
+ })], 8, _hoisted_14$5)
142357
142484
  ]);
142358
142485
  }), 128))])) : createCommentVNode("", true)]),
142359
142486
  _: 1
@@ -142454,30 +142581,70 @@ var init_upload_file_dialog = __esmMin((() => {
142454
142581
  upload_file_dialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(upload_file_dialog_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-29236c88"]]);
142455
142582
  }));
142456
142583
  //#endregion
142584
+ //#region src/runtime/renderer/dialogs/upload-image/icons/spin.svg
142585
+ var spin_default;
142586
+ var init_spin = __esmMin((() => {
142587
+ spin_default = "data:image/svg+xml,%3csvg%20width='22'%20height='22'%20viewBox='0%200%2022%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='3'%20cy='11'%20r='3'%20fill='%23026AC8'/%3e%3ccircle%20opacity='0.4'%20cx='19'%20cy='11'%20r='3'%20fill='%23026AC8'/%3e%3ccircle%20opacity='0.7'%20cx='11'%20cy='3'%20r='3'%20fill='%23026AC8'/%3e%3ccircle%20opacity='0.7'%20cx='11'%20cy='19'%20r='3'%20fill='%23026AC8'/%3e%3c/svg%3e";
142588
+ }));
142589
+ //#endregion
142590
+ //#region src/runtime/renderer/dialogs/upload-image/icons/pic_camera.svg
142591
+ var pic_camera_default;
142592
+ var init_pic_camera = __esmMin((() => {
142593
+ pic_camera_default = "data:image/svg+xml,%3csvg%20width='36'%20height='44'%20viewBox='0%200%2036%2044'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='18'%20cy='18'%20r='18'%20fill='%23B6BBC5'/%3e%3cpath%20d='M28.4124%2041.0518C29.1299%2042.3842%2028.165%2043.9999%2026.6517%2044H9.34892C7.83561%2044%206.86982%2042.3842%207.5872%2041.0518L10.5784%2035.4951C12.8585%2036.4636%2015.3668%2037%2018.0003%2037C20.6332%2037%2023.1405%2036.4632%2025.4202%2035.4951L28.4124%2041.0518Z'%20fill='%23CFD3DA'/%3e%3ccircle%20cx='18'%20cy='18'%20r='8'%20fill='white'/%3e%3ccircle%20cx='18'%20cy='6'%20r='2'%20fill='white'/%3e%3ccircle%20cx='18'%20cy='18'%20r='5'%20fill='%232C3344'/%3e%3c/svg%3e";
142594
+ }));
142595
+ //#endregion
142596
+ //#region src/runtime/renderer/dialogs/upload-image/icons/pic_upload.svg
142597
+ var pic_upload_default;
142598
+ var init_pic_upload = __esmMin((() => {
142599
+ pic_upload_default = "data:image/svg+xml,%3csvg%20width='48'%20height='36'%20viewBox='0%200%2048%2036'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.10156%204.10156C3.03527%204.39038%203%204.69107%203%205V27C3%2029.2091%204.79086%2031%207%2031H37C37.3087%2031%2037.6089%2030.9636%2037.8975%2030.8975C37.49%2032.6743%2035.9005%2034%2034%2034H4C1.79086%2034%201.12747e-07%2032.2091%200%2030V8C0%206.09979%201.32507%204.5093%203.10156%204.10156Z'%20fill='%23DDDFE6'/%3e%3crect%20x='4'%20width='38'%20height='30'%20rx='3'%20fill='%23CBCFD6'/%3e%3ccircle%20cx='12.5'%20cy='8.5'%20r='2.5'%20fill='white'/%3e%3cpath%20d='M15.468%2014.8909L10.1212%2022.421C9.65099%2023.0832%2010.1244%2024%2010.9365%2024H34.873C35.7195%2024%2036.1831%2023.0139%2035.6431%2022.3621L26.9835%2011.9087C26.5894%2011.4329%2025.8625%2011.4248%2025.4578%2011.8916L20.0833%2018.0909L17.016%2014.7893C16.5844%2014.3247%2015.8351%2014.374%2015.468%2014.8909Z'%20fill='white'/%3e%3ccircle%20cx='37'%20cy='25'%20r='11'%20fill='%232C3344'/%3e%3cmask%20id='mask0_1869_6291'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='31'%20y='19'%20width='12'%20height='12'%3e%3cpath%20d='M43%2019H31V31H43V19Z'%20fill='%23333333'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1869_6291)'%3e%3cpath%20d='M40%2024.5L37%2021.5L34%2024.5'%20stroke='white'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M37%2028.5V21.5'%20stroke='white'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e";
142600
+ }));
142601
+ //#endregion
142457
142602
  //#region src/runtime/renderer/dialogs/upload-image/base-upload-image.vue?vue&type=script&setup=true&name=base-upload-image&lang.ts
142458
- var _hoisted_1$141, _hoisted_2$86, _hoisted_3$57, _hoisted_4$43, _hoisted_5$33, _hoisted_6$24, _hoisted_7$18, _hoisted_8$14, _hoisted_9$8, _hoisted_10$7, base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang_default;
142603
+ var _hoisted_1$141, _hoisted_2$86, _hoisted_3$57, _hoisted_4$43, _hoisted_5$33, _hoisted_6$24, _hoisted_7$18, _hoisted_8$14, _hoisted_9$8, _hoisted_10$7, _hoisted_11$6, _hoisted_12$5, _hoisted_13$4, _hoisted_14$4, _hoisted_15$4, _hoisted_16$4, _hoisted_17$3, _hoisted_18$2, _hoisted_19$1, _hoisted_20$1, _hoisted_21$1, base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang_default;
142459
142604
  var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang = __esmMin((() => {
142460
142605
  init_base$2();
142461
142606
  init_core$1();
142462
- init_ServiceUtil();
142463
142607
  init_asset_helper_util();
142464
142608
  init_form_value();
142609
+ init_spin();
142610
+ init_pic_camera();
142611
+ init_pic_upload();
142465
142612
  _hoisted_1$141 = { class: "word-base-upload-modal" };
142466
142613
  _hoisted_2$86 = { class: "upload-dragger" };
142467
- _hoisted_3$57 = ["multiple", "accept"];
142468
- _hoisted_4$43 = { class: "upload-content" };
142469
- _hoisted_5$33 = { class: "icon" };
142614
+ _hoisted_3$57 = {
142615
+ key: 0,
142616
+ class: "entry-row"
142617
+ };
142618
+ _hoisted_4$43 = { class: "camera-entry" };
142619
+ _hoisted_5$33 = ["src"];
142470
142620
  _hoisted_6$24 = {
142621
+ key: 1,
142622
+ class: "camera-loading"
142623
+ };
142624
+ _hoisted_7$18 = ["src"];
142625
+ _hoisted_8$14 = {
142626
+ key: 2,
142627
+ class: "camera-controls"
142628
+ };
142629
+ _hoisted_9$8 = ["disabled"];
142630
+ _hoisted_10$7 = { value: "" };
142631
+ _hoisted_11$6 = ["value"];
142632
+ _hoisted_12$5 = ["disabled"];
142633
+ _hoisted_13$4 = ["multiple", "accept"];
142634
+ _hoisted_14$4 = { class: "upload-content" };
142635
+ _hoisted_15$4 = { class: "icon" };
142636
+ _hoisted_16$4 = ["src"];
142637
+ _hoisted_17$3 = {
142471
142638
  key: 0,
142472
142639
  class: "img-box"
142473
142640
  };
142474
- _hoisted_7$18 = {
142641
+ _hoisted_18$2 = {
142475
142642
  key: 0,
142476
142643
  class: "progress"
142477
142644
  };
142478
- _hoisted_8$14 = ["src", "onClick"];
142479
- _hoisted_9$8 = ["onClick"];
142480
- _hoisted_10$7 = ["src"];
142645
+ _hoisted_19$1 = ["src", "onClick"];
142646
+ _hoisted_20$1 = ["onClick"];
142647
+ _hoisted_21$1 = ["src"];
142481
142648
  base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang_default = /*@__PURE__*/ defineComponent({
142482
142649
  __name: "base-upload-image",
142483
142650
  props: {
@@ -142495,6 +142662,13 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142495
142662
  const dragover = ref(false);
142496
142663
  const fileList = ref(initFileList());
142497
142664
  const previewUrl = ref("");
142665
+ const videoRef = ref();
142666
+ const cameraState = ref("idle");
142667
+ const cameraDevices = ref([]);
142668
+ const selectedCameraId = ref("");
142669
+ const capturing = ref(false);
142670
+ let cameraStream;
142671
+ let cameraRequestId = 0;
142498
142672
  function initFileList() {
142499
142673
  return getValue$1(props.modelValue, true).map((url) => ({
142500
142674
  id: uuid(),
@@ -142520,6 +142694,94 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142520
142694
  const fileAccept = computed(() => {
142521
142695
  return acceptList.value + "" || ".gct,image/*";
142522
142696
  });
142697
+ function stopCamera() {
142698
+ cameraRequestId += 1;
142699
+ cameraStream === null || cameraStream === void 0 || cameraStream.getTracks().forEach((track) => track.stop());
142700
+ cameraStream = void 0;
142701
+ if (videoRef.value) videoRef.value.srcObject = null;
142702
+ cameraState.value = "idle";
142703
+ }
142704
+ async function startCamera(deviceId) {
142705
+ var _navigator$mediaDevic;
142706
+ if (!showUpload.value || cameraState.value === "loading") return;
142707
+ stopCamera();
142708
+ const requestId = cameraRequestId;
142709
+ cameraState.value = "loading";
142710
+ if (!((_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getUserMedia)) {
142711
+ cameraState.value = "error";
142712
+ GctMessage.warning("当前环境不支持摄像头,请使用图片上传");
142713
+ return;
142714
+ }
142715
+ try {
142716
+ var _stream$getVideoTrack;
142717
+ const stream = await navigator.mediaDevices.getUserMedia({
142718
+ audio: false,
142719
+ video: deviceId ? { deviceId: { exact: deviceId } } : true
142720
+ });
142721
+ if (requestId !== cameraRequestId || !showUpload.value) {
142722
+ stream.getTracks().forEach((track) => track.stop());
142723
+ return;
142724
+ }
142725
+ cameraStream = stream;
142726
+ await nextTick();
142727
+ if (!videoRef.value) throw new Error("摄像头预览不可用");
142728
+ videoRef.value.srcObject = stream;
142729
+ await videoRef.value.play();
142730
+ if (requestId !== cameraRequestId) return;
142731
+ const devices = await navigator.mediaDevices.enumerateDevices();
142732
+ if (requestId !== cameraRequestId) return;
142733
+ cameraDevices.value = devices.filter((device) => device.kind === "videoinput");
142734
+ selectedCameraId.value = ((_stream$getVideoTrack = stream.getVideoTracks()[0]) === null || _stream$getVideoTrack === void 0 ? void 0 : _stream$getVideoTrack.getSettings().deviceId) || deviceId || "";
142735
+ cameraState.value = "active";
142736
+ } catch {
142737
+ if (requestId !== cameraRequestId) return;
142738
+ stopCamera();
142739
+ cameraState.value = "error";
142740
+ GctMessage.warning("摄像头启动失败,请检查设备和权限");
142741
+ }
142742
+ }
142743
+ function switchCamera() {
142744
+ startCamera(selectedCameraId.value || void 0);
142745
+ }
142746
+ async function captureImage() {
142747
+ const video = videoRef.value;
142748
+ if (!showUpload.value || cameraState.value !== "active" || capturing.value || !(video === null || video === void 0 ? void 0 : video.videoWidth)) return;
142749
+ const supportsPng = acceptList.value.includes(".png");
142750
+ const supportsJpeg = acceptList.value.includes(".jpg") || acceptList.value.includes(".jpeg");
142751
+ if (!supportsPng && !supportsJpeg) {
142752
+ GctMessage.warning("当前图片格式配置不支持摄像头截图");
142753
+ return;
142754
+ }
142755
+ capturing.value = true;
142756
+ const requestId = cameraRequestId;
142757
+ try {
142758
+ var _canvas$getContext;
142759
+ const canvas = document.createElement("canvas");
142760
+ canvas.width = video.videoWidth;
142761
+ canvas.height = video.videoHeight;
142762
+ (_canvas$getContext = canvas.getContext("2d")) === null || _canvas$getContext === void 0 || _canvas$getContext.drawImage(video, 0, 0, canvas.width, canvas.height);
142763
+ const mimeType = supportsPng ? "image/png" : "image/jpeg";
142764
+ const blob = await new Promise((resolve) => canvas.toBlob(resolve, mimeType, .92));
142765
+ if (!blob) throw new Error("截图失败");
142766
+ const extension = supportsPng ? "png" : acceptList.value.includes(".jpg") ? "jpg" : "jpeg";
142767
+ const file = new File([blob], `camera-${Date.now()}.${extension}`, { type: mimeType });
142768
+ if (requestId !== cameraRequestId || !showUpload.value) return;
142769
+ await AssetHelper.beforeUploadFun(file, {
142770
+ maxSize: props.maxSize || 5,
142771
+ acceptList: acceptList.value
142772
+ });
142773
+ if (requestId !== cameraRequestId || !showUpload.value) return;
142774
+ if (addFiles([file])) GctMessage.success("截图成功");
142775
+ } catch (error) {
142776
+ if (typeof error === "string") GctMessage.warning(error);
142777
+ else GctMessage.error("截图失败,请重试");
142778
+ } finally {
142779
+ capturing.value = false;
142780
+ }
142781
+ }
142782
+ watch(showUpload, (visible) => {
142783
+ if (!visible) stopCamera();
142784
+ });
142523
142785
  function onDrop(e) {
142524
142786
  var _e$dataTransfer;
142525
142787
  dragover.value = false;
@@ -142587,8 +142849,11 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142587
142849
  }
142588
142850
  }
142589
142851
  function addFiles(files) {
142590
- if (!showUpload.value) return;
142591
- files.forEach((file) => {
142852
+ if (!showUpload.value || !files.length) return false;
142853
+ const remaining = isNil(props.maxCount) ? files.length : Math.max(0, props.maxCount - fileList.value.length);
142854
+ const accepted = files.slice(0, remaining);
142855
+ if (accepted.length < files.length) GctMessage.warning(`最多上传 ${props.maxCount} 张图片`);
142856
+ accepted.forEach((file) => {
142592
142857
  const item = reactive({
142593
142858
  id: uuid(),
142594
142859
  name: file.name,
@@ -142600,6 +142865,7 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142600
142865
  fileList.value.push(item);
142601
142866
  uploadFile(file, item);
142602
142867
  });
142868
+ return accepted.length > 0;
142603
142869
  }
142604
142870
  function deleteFile(id) {
142605
142871
  const item = fileList.value.find((i) => i.id === id);
@@ -142621,6 +142887,7 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142621
142887
  return fileList.value.some((i) => i.status === "uploading");
142622
142888
  }
142623
142889
  function cancelUploading() {
142890
+ stopCamera();
142624
142891
  fileList.value.forEach((item) => {
142625
142892
  if (item.status === "uploading" && item.controller) {
142626
142893
  item.controller.abort();
@@ -142628,19 +142895,61 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142628
142895
  }
142629
142896
  });
142630
142897
  }
142898
+ onBeforeUnmount(() => {
142899
+ stopCamera();
142900
+ fileList.value.forEach((item) => {
142901
+ var _item$preview;
142902
+ if ((_item$preview = item.preview) === null || _item$preview === void 0 ? void 0 : _item$preview.startsWith("blob:")) URL.revokeObjectURL(item.preview);
142903
+ });
142904
+ });
142631
142905
  __expose({
142632
142906
  hasUploading,
142633
142907
  cancelUploading
142634
142908
  });
142635
142909
  return (_ctx, _cache) => {
142636
142910
  return openBlock(), createElementBlock("div", _hoisted_1$141, [createElementVNode("div", _hoisted_2$86, [
142637
- createElementVNode("div", {
142638
- class: normalizeClass(["upload", {
142639
- dragover: dragover.value,
142640
- "is-disabled": !showUpload.value
142641
- }]),
142642
- onDragover: _cache[0] || (_cache[0] = withModifiers(($event) => showUpload.value && (dragover.value = true), ["prevent"])),
142643
- onDragleave: _cache[1] || (_cache[1] = ($event) => dragover.value = false),
142911
+ showUpload.value ? (openBlock(), createElementBlock("div", _hoisted_3$57, [createElementVNode("div", _hoisted_4$43, [
142912
+ cameraState.value === "idle" || cameraState.value === "error" ? (openBlock(), createElementBlock("button", {
142913
+ key: 0,
142914
+ class: "camera-start",
142915
+ type: "button",
142916
+ onClick: _cache[0] || (_cache[0] = ($event) => startCamera())
142917
+ }, [createElementVNode("img", {
142918
+ src: unref(pic_camera_default),
142919
+ alt: "",
142920
+ class: "img-svg"
142921
+ }, null, 8, _hoisted_5$33), createElementVNode("span", null, toDisplayString(cameraState.value === "error" ? "摄像头启动失败,点击重试" : "点击启动摄像头截图上传"), 1)])) : cameraState.value === "loading" ? (openBlock(), createElementBlock("div", _hoisted_6$24, [createElementVNode("img", {
142922
+ src: unref(spin_default),
142923
+ alt: ""
142924
+ }, null, 8, _hoisted_7$18), _cache[5] || (_cache[5] = createElementVNode("span", null, "摄像头启动中...", -1))])) : createCommentVNode("", true),
142925
+ withDirectives(createElementVNode("video", {
142926
+ ref_key: "videoRef",
142927
+ ref: videoRef,
142928
+ class: "camera-video",
142929
+ autoplay: "",
142930
+ muted: "",
142931
+ playsinline: ""
142932
+ }, null, 512), [[vShow, cameraState.value === "active"]]),
142933
+ cameraState.value === "loading" || cameraState.value === "active" ? (openBlock(), createElementBlock("div", _hoisted_8$14, [withDirectives(createElementVNode("select", {
142934
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => selectedCameraId.value = $event),
142935
+ disabled: cameraState.value !== "active",
142936
+ "aria-label": "选择摄像头",
142937
+ onChange: switchCamera
142938
+ }, [createElementVNode("option", _hoisted_10$7, toDisplayString(cameraState.value === "loading" ? "请选择摄像头" : "当前摄像头"), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(cameraDevices.value, (device, index) => {
142939
+ return openBlock(), createElementBlock("option", {
142940
+ key: device.deviceId,
142941
+ value: device.deviceId
142942
+ }, toDisplayString(device.label || `摄像头 ${index + 1}`), 9, _hoisted_11$6);
142943
+ }), 128))], 40, _hoisted_9$8), [[vModelSelect, selectedCameraId.value]]), createElementVNode("button", {
142944
+ type: "button",
142945
+ class: "capture-button",
142946
+ disabled: cameraState.value !== "active" || capturing.value,
142947
+ onClick: captureImage
142948
+ }, "截图", 8, _hoisted_12$5)])) : createCommentVNode("", true)
142949
+ ]), createElementVNode("div", {
142950
+ class: normalizeClass(["upload", { dragover: dragover.value }]),
142951
+ onDragover: _cache[2] || (_cache[2] = withModifiers(($event) => dragover.value = true, ["prevent"])),
142952
+ onDragleave: _cache[3] || (_cache[3] = ($event) => dragover.value = false),
142644
142953
  onDrop: withModifiers(onDrop, ["prevent"]),
142645
142954
  onClick: chooseFile
142646
142955
  }, [createElementVNode("input", {
@@ -142651,18 +142960,18 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142651
142960
  class: "input",
142652
142961
  accept: fileAccept.value,
142653
142962
  onChange: onSelect
142654
- }, null, 40, _hoisted_3$57), createElementVNode("div", _hoisted_4$43, [createElementVNode("div", _hoisted_5$33, [createVNode(unref(icon_default), {
142655
- icon: "icon-tupian2",
142656
- size: "56",
142657
- color: "#026ac8"
142658
- })]), _cache[3] || (_cache[3] = createElementVNode("div", { class: "text" }, "点击或将图片拖拽到这里上传", -1))])], 34),
142963
+ }, null, 40, _hoisted_13$4), createElementVNode("div", _hoisted_14$4, [createElementVNode("div", _hoisted_15$4, [createElementVNode("img", {
142964
+ src: unref(pic_upload_default),
142965
+ alt: "",
142966
+ class: "img-svg"
142967
+ }, null, 8, _hoisted_16$4)]), _cache[6] || (_cache[6] = createElementVNode("div", { class: "text" }, "点击或将图片拖拽到这里上传", -1))])], 34)])) : createCommentVNode("", true),
142659
142968
  createVNode(unref(scrollbar_default), { class: "scrollbar" }, {
142660
- default: withCtx(() => [fileList.value.length ? (openBlock(), createElementBlock("div", _hoisted_6$24, [(openBlock(true), createElementBlock(Fragment, null, renderList(fileList.value, (item) => {
142969
+ default: withCtx(() => [fileList.value.length ? (openBlock(), createElementBlock("div", _hoisted_17$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(fileList.value, (item) => {
142661
142970
  return openBlock(), createElementBlock("div", {
142662
142971
  class: "img-item",
142663
142972
  key: item.id
142664
142973
  }, [
142665
- item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_7$18, [createElementVNode("div", {
142974
+ item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_18$2, [createElementVNode("div", {
142666
142975
  class: "progress-inner",
142667
142976
  style: normalizeStyle({ width: item.progress + "%" })
142668
142977
  }, null, 4)])) : createCommentVNode("", true),
@@ -142670,7 +142979,7 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142670
142979
  class: "img",
142671
142980
  src: unref(AssetHelper).resolveUrl(item.url) || item.preview,
142672
142981
  onClick: ($event) => preview(item)
142673
- }, null, 8, _hoisted_8$14),
142982
+ }, null, 8, _hoisted_19$1),
142674
142983
  createElementVNode("div", {
142675
142984
  class: "delete",
142676
142985
  onClick: withModifiers(($event) => deleteFile(item.id), ["stop"])
@@ -142679,33 +142988,33 @@ var init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image
142679
142988
  size: "12",
142680
142989
  version: "v2",
142681
142990
  color: "#fff"
142682
- })], 8, _hoisted_9$8)
142991
+ })], 8, _hoisted_20$1)
142683
142992
  ]);
142684
142993
  }), 128))])) : createCommentVNode("", true)]),
142685
142994
  _: 1
142686
142995
  }),
142687
142996
  previewUrl.value ? (openBlock(), createElementBlock("div", {
142688
- key: 0,
142997
+ key: 1,
142689
142998
  class: "preview-mask",
142690
- onClick: _cache[2] || (_cache[2] = ($event) => previewUrl.value = "")
142691
- }, [createElementVNode("img", { src: previewUrl.value }, null, 8, _hoisted_10$7)])) : createCommentVNode("", true)
142999
+ onClick: _cache[4] || (_cache[4] = ($event) => previewUrl.value = "")
143000
+ }, [createElementVNode("img", { src: previewUrl.value }, null, 8, _hoisted_21$1)])) : createCommentVNode("", true)
142692
143001
  ])]);
142693
143002
  };
142694
143003
  }
142695
143004
  });
142696
143005
  }));
142697
143006
  //#endregion
142698
- //#region src/runtime/renderer/dialogs/upload-image/base-upload-image.vue?vue&type=style&index=0&scoped=c88c950f&lang.less
142699
- var init_base_upload_image_vue_vue_type_style_index_0_scoped_c88c950f_lang = __esmMin((() => {}));
143007
+ //#region src/runtime/renderer/dialogs/upload-image/base-upload-image.vue?vue&type=style&index=0&scoped=2627cd25&lang.less
143008
+ var init_base_upload_image_vue_vue_type_style_index_0_scoped_2627cd25_lang = __esmMin((() => {}));
142700
143009
  //#endregion
142701
143010
  //#region src/runtime/renderer/dialogs/upload-image/base-upload-image.vue
142702
143011
  var base_upload_image_default;
142703
143012
  var init_base_upload_image = __esmMin((() => {
142704
143013
  init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang();
142705
143014
  init_base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang();
142706
- init_base_upload_image_vue_vue_type_style_index_0_scoped_c88c950f_lang();
143015
+ init_base_upload_image_vue_vue_type_style_index_0_scoped_2627cd25_lang();
142707
143016
  init__plugin_vue_export_helper();
142708
- base_upload_image_default = /*#__PURE__*/ _plugin_vue_export_helper_default(base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang_default, [["__scopeId", "data-v-c88c950f"]]);
143017
+ base_upload_image_default = /*#__PURE__*/ _plugin_vue_export_helper_default(base_upload_image_vue_vue_type_script_setup_true_name_base_upload_image_lang_default, [["__scopeId", "data-v-2627cd25"]]);
142709
143018
  }));
142710
143019
  //#endregion
142711
143020
  //#region src/runtime/renderer/dialogs/upload-image/upload-image-dialog.vue?vue&type=script&setup=true&lang.ts
@@ -144807,9 +145116,10 @@ var init_overlay_render_vue_vue_type_script_setup_true_lang = __esmMin((() => {
144807
145116
  if (actionConfig.value.actionType === "dialog") {
144808
145117
  var _props$doc$deviceConf;
144809
145118
  const isSignature = widgetType.value === "fw:signature";
145119
+ const isImage = widgetType.value === "fw:image";
144810
145120
  openDialog({
144811
145121
  title: isSignature ? "签名" : "操作",
144812
- width: isSignature ? 640 : void 0,
145122
+ width: isSignature || isImage ? 640 : void 0,
144813
145123
  extraProps: isSignature ? { defaultLoginAccount: (_props$doc$deviceConf = props.doc.deviceConfig) === null || _props$doc$deviceConf === void 0 ? void 0 : _props$doc$deviceConf.defaultLoginAccount } : void 0
144814
145124
  });
144815
145125
  }
@@ -145192,8 +145502,8 @@ var init_overlay_render_vue_vue_type_script_setup_true_lang = __esmMin((() => {
145192
145502
  //#region src/runtime/canvas/__common__/widget-container/overlay-render.vue?vue&type=style&index=0&lang.less
145193
145503
  var init_overlay_render_vue_vue_type_style_index_0_lang = __esmMin((() => {}));
145194
145504
  //#endregion
145195
- //#region src/runtime/canvas/__common__/widget-container/overlay-render.vue?vue&type=style&index=1&scoped=7b8fc726&lang.less
145196
- var init_overlay_render_vue_vue_type_style_index_1_scoped_7b8fc726_lang = __esmMin((() => {}));
145505
+ //#region src/runtime/canvas/__common__/widget-container/overlay-render.vue?vue&type=style&index=1&scoped=9aa3952a&lang.less
145506
+ var init_overlay_render_vue_vue_type_style_index_1_scoped_9aa3952a_lang = __esmMin((() => {}));
145197
145507
  //#endregion
145198
145508
  //#region src/runtime/canvas/__common__/widget-container/overlay-render.vue
145199
145509
  var overlay_render_default;
@@ -145201,9 +145511,9 @@ var init_overlay_render = __esmMin((() => {
145201
145511
  init_overlay_render_vue_vue_type_script_setup_true_lang();
145202
145512
  init_overlay_render_vue_vue_type_script_setup_true_lang();
145203
145513
  init_overlay_render_vue_vue_type_style_index_0_lang();
145204
- init_overlay_render_vue_vue_type_style_index_1_scoped_7b8fc726_lang();
145514
+ init_overlay_render_vue_vue_type_style_index_1_scoped_9aa3952a_lang();
145205
145515
  init__plugin_vue_export_helper();
145206
- overlay_render_default = /*#__PURE__*/ _plugin_vue_export_helper_default(overlay_render_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-7b8fc726"]]);
145516
+ overlay_render_default = /*#__PURE__*/ _plugin_vue_export_helper_default(overlay_render_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9aa3952a"]]);
145207
145517
  }));
145208
145518
  //#endregion
145209
145519
  //#region src/utils/composables/useHoverDelay.ts
@@ -163646,6 +163956,9 @@ var parse_rule_add_btn_vue_vue_type_script_setup_true_name_parse_rule_add_btn_la
163646
163956
  const designCtx = useDesignSuiteContext();
163647
163957
  const props = __props;
163648
163958
  const emit = __emit;
163959
+ const isEmptyRule = computed(() => {
163960
+ return !props.modelValue || Object.keys(props.modelValue).length === 0;
163961
+ });
163649
163962
  const handleClick = async () => {
163650
163963
  const subFieldOptions = designCtx.runtime.getFieldList(props.subModelKey).map(({ key, name }) => ({
163651
163964
  label: name,
@@ -163662,21 +163975,21 @@ var parse_rule_add_btn_vue_vue_type_script_setup_true_name_parse_rule_add_btn_la
163662
163975
  return (_ctx, _cache) => {
163663
163976
  return openBlock(), createBlock(unref(button_default), {
163664
163977
  full: "",
163665
- plain: "",
163978
+ plain: isEmptyRule.value,
163666
163979
  type: "primary",
163667
163980
  class: "add-button",
163668
163981
  onClick: handleClick
163669
163982
  }, {
163670
- default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" 添加条码解析 ", -1)])]),
163983
+ default: withCtx(() => [createTextVNode(toDisplayString(!isEmptyRule.value ? "编辑" : "添加") + "规则 ", 1)]),
163671
163984
  _: 1
163672
- });
163985
+ }, 8, ["plain"]);
163673
163986
  };
163674
163987
  }
163675
163988
  });
163676
163989
  //#endregion
163677
163990
  //#region src/suites/edhr/panel-schema/material-consume-table/parse-rule-add-btn.vue
163678
163991
  init__plugin_vue_export_helper();
163679
- var parse_rule_add_btn_default = /*#__PURE__*/ _plugin_vue_export_helper_default(parse_rule_add_btn_vue_vue_type_script_setup_true_name_parse_rule_add_btn_lang_default, [["__scopeId", "data-v-87746878"]]);
163992
+ var parse_rule_add_btn_default = /*#__PURE__*/ _plugin_vue_export_helper_default(parse_rule_add_btn_vue_vue_type_script_setup_true_name_parse_rule_add_btn_lang_default, [["__scopeId", "data-v-b895c55a"]]);
163680
163993
  //#endregion
163681
163994
  //#region src/suites/edhr/panel-schema/material-consume-table/parse-rule-editor.vue
163682
163995
  var parse_rule_editor_default = /* @__PURE__ */ defineComponent({
@@ -163965,13 +164278,6 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
163965
164278
  label: "唯一码",
163966
164279
  value: ScanParamType.UniqueCode
163967
164280
  }];
163968
- const qtyCalcOptions = [{
163969
- label: "按接收数量计算上料数量",
163970
- value: RequiredQtyCalcRule.LotQty
163971
- }, {
163972
- label: "按表单生产数量计算上料数量",
163973
- value: RequiredQtyCalcRule.ProductQty
163974
- }];
163975
164281
  const patternOptions = [{
163976
164282
  label: "BOM 模式",
163977
164283
  value: MaterialConsumptionPatternEnum.BOM
@@ -163981,6 +164287,21 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
163981
164287
  }];
163982
164288
  const props = __props;
163983
164289
  const isBomGranted = ref(false);
164290
+ const qtyCalcOptions = computed(() => {
164291
+ var _regionProps$value;
164292
+ const arr = [{
164293
+ label: "按接收数量计算上料数量",
164294
+ value: RequiredQtyCalcRule.LotQty
164295
+ }, {
164296
+ label: "按表单生产数量计算上料数量",
164297
+ value: RequiredQtyCalcRule.ProductQty
164298
+ }];
164299
+ if (((_regionProps$value = regionProps.value) === null || _regionProps$value === void 0 ? void 0 : _regionProps$value.material_consumption_pattern_) === MaterialConsumptionPatternEnum.RECORD) arr.push({
164300
+ label: "自定义",
164301
+ value: RequiredQtyCalcRule.Custom
164302
+ });
164303
+ return arr;
164304
+ });
163984
164305
  const regionRef = computed(() => props.widget.findRegionById(props.active.context.regionId));
163985
164306
  const qtyCalcFieldOptions = computed(() => {
163986
164307
  return fields.value.filter((field) => resolveFieldManifestType(field) === FIELD_TYPE.PRODUCTION_QTY).map((field) => ({
@@ -163999,6 +164320,10 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
163999
164320
  active: props.active,
164000
164321
  regionType: "material-consume-table"
164001
164322
  });
164323
+ const onPatternChange = (value) => {
164324
+ var _regionProps$value2;
164325
+ if (value === MaterialConsumptionPatternEnum.BOM && ((_regionProps$value2 = regionProps.value) === null || _regionProps$value2 === void 0 ? void 0 : _regionProps$value2.required_qty_calc_rule_) === RequiredQtyCalcRule.Custom) regionProps.value.required_qty_calc_rule_ = RequiredQtyCalcRule.LotQty;
164326
+ };
164002
164327
  onMounted(async () => {
164003
164328
  isBomGranted.value = await queryIsBomGranted();
164004
164329
  if (regionProps.value) {
@@ -164083,7 +164408,8 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
164083
164408
  default: withCtx(() => [createVNode(unref(basic_select_default), {
164084
164409
  modelValue: unref(regionProps).material_consumption_pattern_,
164085
164410
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => unref(regionProps).material_consumption_pattern_ = $event),
164086
- options: patternOptions
164411
+ options: patternOptions,
164412
+ onChange: onPatternChange
164087
164413
  }, null, 8, ["modelValue"])]),
164088
164414
  _: 1
164089
164415
  })) : createCommentVNode("", true),
@@ -164125,8 +164451,8 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
164125
164451
  default: withCtx(() => [createVNode(unref(basic_select_default), {
164126
164452
  modelValue: unref(regionProps).required_qty_calc_rule_,
164127
164453
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => unref(regionProps).required_qty_calc_rule_ = $event),
164128
- options: qtyCalcOptions
164129
- }, null, 8, ["modelValue"]), unref(regionProps).required_qty_calc_rule_ === unref(RequiredQtyCalcRule).ProductQty ? (openBlock(), createBlock(unref(basic_select_default), {
164454
+ options: qtyCalcOptions.value
164455
+ }, null, 8, ["modelValue", "options"]), unref(regionProps).required_qty_calc_rule_ === unref(RequiredQtyCalcRule).ProductQty ? (openBlock(), createBlock(unref(basic_select_default), {
164130
164456
  key: 0,
164131
164457
  modelValue: unref(regionProps).product_qty_field_,
164132
164458
  "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => unref(regionProps).product_qty_field_ = $event),
@@ -164147,7 +164473,7 @@ var MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default = /*@_
164147
164473
  init__plugin_vue_export_helper();
164148
164474
  //#endregion
164149
164475
  //#region src/suites/edhr/panel-schema/material-consume-table/material-consume-table.basic.ts
164150
- var schema$14 = createTablePanelSchema("material-consume-table.basic", /* @__PURE__ */ _plugin_vue_export_helper_default(MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-10fcc011"]]));
164476
+ var schema$14 = createTablePanelSchema("material-consume-table.basic", /* @__PURE__ */ _plugin_vue_export_helper_default(MaterialConsumeTablePanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8d666ddd"]]));
164151
164477
  //#endregion
164152
164478
  //#region src/suites/edhr/panel-schema/_shared/BoundedSubTablePanel.vue?vue&type=script&setup=true&lang.ts
164153
164479
  init_table$1();
@@ -171786,6 +172112,55 @@ var date_format_editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
171786
172112
  init__plugin_vue_export_helper();
171787
172113
  var date_format_editor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(date_format_editor_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e38920d1"]]);
171788
172114
  //#endregion
172115
+ //#region src/suites/shared/panel/config/editor/default-date-editor/default-date-editor.vue?vue&type=script&setup=true&lang.ts
172116
+ init_base$2();
172117
+ init__register_();
172118
+ //#endregion
172119
+ //#region src/suites/shared/panel/config/editor/default-date-editor/default-date-editor.vue
172120
+ var default_date_editor_default = /* @__PURE__ */ defineComponent({
172121
+ __name: "default-date-editor",
172122
+ props: {
172123
+ fieldType: {},
172124
+ modelValue: { type: Boolean }
172125
+ },
172126
+ emits: ["update:modelValue"],
172127
+ setup(__props, { emit: __emit }) {
172128
+ const props = __props;
172129
+ const emit = __emit;
172130
+ const designCtx = useDesignSuiteContext();
172131
+ const value = computed({
172132
+ get: () => props.modelValue ? 1 : 0,
172133
+ set: (value) => emit("update:modelValue", value === 1)
172134
+ });
172135
+ const defaultOptions = computed(() => {
172136
+ var _designCtx$getFieldMa;
172137
+ const component = (_designCtx$getFieldMa = designCtx.getFieldManifest(props.fieldType)) === null || _designCtx$getFieldMa === void 0 ? void 0 : _designCtx$getFieldMa.component;
172138
+ return [{
172139
+ label: "无",
172140
+ value: 0
172141
+ }, {
172142
+ label: `系统${(component === null || component === void 0 ? void 0 : component.includes("date-time")) ? "日期时间" : (component === null || component === void 0 ? void 0 : component.includes("time")) ? "时间" : "日期"}`,
172143
+ value: 1
172144
+ }];
172145
+ });
172146
+ return (_ctx, _cache) => {
172147
+ return openBlock(), createBlock(unref(form_item_default), {
172148
+ label: "默认值",
172149
+ inline: false
172150
+ }, {
172151
+ default: withCtx(() => [createVNode(unref(basic_select_default), {
172152
+ modelValue: value.value,
172153
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
172154
+ size: "small",
172155
+ placeholder: "请选择",
172156
+ options: defaultOptions.value
172157
+ }, null, 8, ["modelValue", "options"])]),
172158
+ _: 1
172159
+ });
172160
+ };
172161
+ }
172162
+ });
172163
+ //#endregion
171789
172164
  //#region src/suites/shared/panel/config/editor/date-range-editor/RangeSection.vue?vue&type=script&setup=true&lang.ts
171790
172165
  init_base$2();
171791
172166
  init_field_type();
@@ -172110,7 +172485,6 @@ init__plugin_vue_export_helper();
172110
172485
  var date_range_editor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(date_range_editor_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5857f359"]]);
172111
172486
  //#endregion
172112
172487
  //#region src/suites/edhr/panel-config/field/datetime/field-datetime-config.vue?vue&type=script&setup=true&lang.ts
172113
- init_base$2();
172114
172488
  init_field_type();
172115
172489
  init_enum();
172116
172490
  var _hoisted_1$38 = { class: "panel-field-datetime-config" };
@@ -172211,22 +172585,12 @@ var field_datetime_config_vue_vue_type_script_setup_true_lang_default = /*@__PUR
172211
172585
  "format-template",
172212
172586
  "custom-format"
172213
172587
  ])) : createCommentVNode("", true),
172214
- showDefaultValueCheckbox.value ? (openBlock(), createBlock(unref(form_item_default), {
172588
+ showDefaultValueCheckbox.value ? (openBlock(), createBlock(default_date_editor_default, {
172215
172589
  key: 1,
172216
- label: "默认值",
172217
- inline: false
172218
- }, {
172219
- default: withCtx(() => [createVNode(unref(checkbox_default), {
172220
- value: true,
172221
- size: "small",
172222
- "model-value": formState.value.defaultSysDate,
172223
- "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => formState.value.defaultSysDate = $event)
172224
- }, {
172225
- default: withCtx(() => [..._cache[22] || (_cache[22] = [createTextVNode("默认系统日期", -1)])]),
172226
- _: 1
172227
- }, 8, ["model-value"])]),
172228
- _: 1
172229
- })) : createCommentVNode("", true),
172590
+ fieldType: fieldType.value,
172591
+ modelValue: formState.value.defaultSysDate,
172592
+ "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => formState.value.defaultSysDate = $event)
172593
+ }, null, 8, ["fieldType", "modelValue"])) : createCommentVNode("", true),
172230
172594
  showDateRangeEditor.value ? (openBlock(), createBlock(date_range_editor_default, {
172231
172595
  key: 2,
172232
172596
  fieldType: fieldType.value,
@@ -172274,7 +172638,7 @@ var field_datetime_config_vue_vue_type_script_setup_true_lang_default = /*@__PUR
172274
172638
  //#region src/suites/edhr/panel-config/field/datetime/field-datetime-config.vue
172275
172639
  var field_datetime_config_exports = /* @__PURE__ */ __exportAll({ default: () => field_datetime_config_default });
172276
172640
  init__plugin_vue_export_helper();
172277
- var field_datetime_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_datetime_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-eb5be611"]]);
172641
+ var field_datetime_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_datetime_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1ba946bc"]]);
172278
172642
  //#endregion
172279
172643
  //#region src/suites/edhr/panel-config/field/e-sop-version/field-e-sop-version-config.vue?vue&type=script&setup=true&lang.ts
172280
172644
  init_api$1();
@@ -173219,6 +173583,7 @@ var RangeSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
173219
173583
  bound: {},
173220
173584
  placeholder: {},
173221
173585
  precision: {},
173586
+ maxlength: {},
173222
173587
  limit: {}
173223
173588
  },
173224
173589
  emits: [
@@ -173324,13 +173689,15 @@ var RangeSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
173324
173689
  max: __props.limit.upper,
173325
173690
  precision: __props.precision,
173326
173691
  controls: false,
173327
- placeholder: __props.placeholder
173692
+ placeholder: __props.placeholder,
173693
+ maxlength: __props.maxlength
173328
173694
  }, null, 8, [
173329
173695
  "modelValue",
173330
173696
  "min",
173331
173697
  "max",
173332
173698
  "precision",
173333
- "placeholder"
173699
+ "placeholder",
173700
+ "maxlength"
173334
173701
  ])])])) : createCommentVNode("", true),
173335
173702
  _mode.value === unref(Variable) ? (openBlock(), createBlock(field_formula_module_default, {
173336
173703
  key: 1,
@@ -173355,7 +173722,7 @@ var RangeSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
173355
173722
  //#endregion
173356
173723
  //#region src/suites/shared/panel/config/editor/number-range-editor/RangeSection.vue
173357
173724
  init__plugin_vue_export_helper();
173358
- var RangeSection_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RangeSection_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a5594bf1"]]);
173725
+ var RangeSection_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RangeSection_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d5d68de5"]]);
173359
173726
  //#endregion
173360
173727
  //#region src/suites/shared/panel/config/editor/number-range-editor/number-range-editor.vue?vue&type=script&setup=true&lang.ts
173361
173728
  init_base$2();
@@ -173471,6 +173838,7 @@ var number_range_editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
173471
173838
  "onUpdate:compareOp": _cache[5] || (_cache[5] = ($event) => _maxCompareOp.value = $event),
173472
173839
  limit: maxLimit.value,
173473
173840
  precision: __props.precision,
173841
+ maxlength: 15,
173474
173842
  placeholder: "请输入上限数值"
173475
173843
  }, null, 8, [
173476
173844
  "mode",
@@ -173495,6 +173863,7 @@ var number_range_editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
173495
173863
  "onUpdate:compareOp": _cache[10] || (_cache[10] = ($event) => _minCompareOp.value = $event),
173496
173864
  limit: minLimit.value,
173497
173865
  precision: __props.precision,
173866
+ maxlength: 15,
173498
173867
  placeholder: "请输入下限数值"
173499
173868
  }, null, 8, [
173500
173869
  "mode",
@@ -173511,7 +173880,7 @@ var number_range_editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
173511
173880
  //#endregion
173512
173881
  //#region src/suites/shared/panel/config/editor/number-range-editor/number-range-editor.vue
173513
173882
  init__plugin_vue_export_helper();
173514
- var number_range_editor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(number_range_editor_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-280d07fa"]]);
173883
+ var number_range_editor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(number_range_editor_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-dab4f091"]]);
173515
173884
  //#endregion
173516
173885
  //#region src/suites/edhr/panel-config/field/number/field-number-config.vue?vue&type=script&setup=true&lang.ts
173517
173886
  init_field_type();
@@ -173574,7 +173943,8 @@ var field_number_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
173574
173943
  const params = {
173575
173944
  precision: fieldDigits.value,
173576
173945
  placeholder: "请输入",
173577
- roundingMode: fieldRulesForRounding.value
173946
+ roundingMode: fieldRulesForRounding.value,
173947
+ maxlength: 15
173578
173948
  };
173579
173949
  if (formState.value.enableRangeValidate) {
173580
173950
  if (formState.value.maxValidateMode === RangeValidateModeTypeConst.Fixed_Number) Object.assign(params, { max: formState.value.maxValue });
@@ -173703,7 +174073,7 @@ var field_number_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
173703
174073
  //#region src/suites/edhr/panel-config/field/number/field-number-config.vue
173704
174074
  var field_number_config_exports = /* @__PURE__ */ __exportAll({ default: () => field_number_config_default });
173705
174075
  init__plugin_vue_export_helper();
173706
- var field_number_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_number_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-77c78e3e"]]);
174076
+ var field_number_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_number_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2181bdb5"]]);
173707
174077
  //#endregion
173708
174078
  //#region src/suites/edhr/panel-config/field/org/field-org-config.vue?vue&type=script&setup=true&lang.ts
173709
174079
  init_enum();
@@ -174947,6 +175317,7 @@ var regex_editor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(regex
174947
175317
  //#endregion
174948
175318
  //#region src/suites/edhr/panel-config/field/text/field-text-config.vue?vue&type=script&setup=true&lang.ts
174949
175319
  init_enum();
175320
+ init_field_type();
174950
175321
  var _hoisted_1$16 = { class: "panel-field-text-config" };
174951
175322
  var field_text_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
174952
175323
  __name: "field-text-config",
@@ -174965,9 +175336,9 @@ var field_text_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
174965
175336
  };
174966
175337
  const defaultValueInputProps = computed(() => ({
174967
175338
  placeholder: "请输入",
174968
- maxLength: formState.value.maxLength ?? 32,
175339
+ maxLength: formState.value.maxLength || 1024,
174969
175340
  allowClear: true,
174970
- showCount: true
175341
+ showCount: false
174971
175342
  }));
174972
175343
  const defaultValueError = computed(() => {
174973
175344
  const value = formState.value.defaultValue;
@@ -174980,6 +175351,7 @@ var field_text_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
174980
175351
  return "";
174981
175352
  });
174982
175353
  return (_ctx, _cache) => {
175354
+ var _props$fieldInfo;
174983
175355
  return openBlock(), createElementBlock("div", _hoisted_1$16, [
174984
175356
  createVNode(FormSelectEditor_default, {
174985
175357
  label: "空值符",
@@ -175037,8 +175409,16 @@ var field_text_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
175037
175409
  "min-length": formState.value.minLength,
175038
175410
  "onUpdate:minLength": _cache[7] || (_cache[7] = ($event) => formState.value.minLength = $event),
175039
175411
  "max-length": formState.value.maxLength,
175040
- "onUpdate:maxLength": _cache[8] || (_cache[8] = ($event) => formState.value.maxLength = $event)
175041
- }, null, 8, ["min-length", "max-length"]),
175412
+ "onUpdate:maxLength": _cache[8] || (_cache[8] = ($event) => formState.value.maxLength = $event),
175413
+ limit: ((_props$fieldInfo = __props.fieldInfo) === null || _props$fieldInfo === void 0 ? void 0 : _props$fieldInfo.type) === unref(FIELD_TYPE).LONG_TEXT ? void 0 : {
175414
+ lower: 0,
175415
+ upper: 1024
175416
+ }
175417
+ }, null, 8, [
175418
+ "min-length",
175419
+ "max-length",
175420
+ "limit"
175421
+ ]),
175042
175422
  createVNode(regex_editor_default, {
175043
175423
  regex: formState.value.regex,
175044
175424
  "onUpdate:regex": _cache[9] || (_cache[9] = ($event) => formState.value.regex = $event),
@@ -175053,7 +175433,7 @@ var field_text_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
175053
175433
  //#region src/suites/edhr/panel-config/field/text/field-text-config.vue
175054
175434
  var field_text_config_exports = /* @__PURE__ */ __exportAll({ default: () => field_text_config_default });
175055
175435
  init__plugin_vue_export_helper();
175056
- var field_text_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_text_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-af8de84d"]]);
175436
+ var field_text_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_text_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d0b52eab"]]);
175057
175437
  //#endregion
175058
175438
  //#region src/suites/shared/panel/config/editor/assoc-filter-editor/utils.ts
175059
175439
  init_field_type();
@@ -175434,22 +175814,12 @@ var field_trace_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
175434
175814
  "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formState.value.placeholder = $event),
175435
175815
  inputProps
175436
175816
  }, null, 8, ["modelValue"]),
175437
- showDefaultValueCheckbox.value ? (openBlock(), createBlock(unref(form_item_default), {
175817
+ showDefaultValueCheckbox.value ? (openBlock(), createBlock(default_date_editor_default, {
175438
175818
  key: 1,
175439
- label: "默认值",
175440
- inline: false
175441
- }, {
175442
- default: withCtx(() => [createVNode(unref(checkbox_default), {
175443
- "model-value": formState.value.defaultSysDate,
175444
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formState.value.defaultSysDate = $event),
175445
- value: true,
175446
- size: "small"
175447
- }, {
175448
- default: withCtx(() => [..._cache[37] || (_cache[37] = [createTextVNode(" 默认系统日期 ", -1)])]),
175449
- _: 1
175450
- }, 8, ["model-value"])]),
175451
- _: 1
175452
- })) : createCommentVNode("", true),
175819
+ fieldType: fieldType.value,
175820
+ modelValue: formState.value.defaultSysDate,
175821
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formState.value.defaultSysDate = $event)
175822
+ }, null, 8, ["fieldType", "modelValue"])) : createCommentVNode("", true),
175453
175823
  showMaterialNoEditors.value ? (openBlock(), createBlock(limit_length_editor_default, {
175454
175824
  key: 2,
175455
175825
  "min-length": formState.value.minLength,
@@ -175532,10 +175902,10 @@ var field_trace_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
175532
175902
  disabled: ""
175533
175903
  }, {
175534
175904
  default: withCtx(() => [createVNode(unref(radio_default), { value: 0 }, {
175535
- default: withCtx(() => [..._cache[38] || (_cache[38] = [createTextVNode("唯一标识", -1)])]),
175905
+ default: withCtx(() => [..._cache[37] || (_cache[37] = [createTextVNode("唯一标识", -1)])]),
175536
175906
  _: 1
175537
175907
  }), createVNode(unref(radio_default), { value: 1 }, {
175538
- default: withCtx(() => [..._cache[39] || (_cache[39] = [createTextVNode("链接标识", -1)])]),
175908
+ default: withCtx(() => [..._cache[38] || (_cache[38] = [createTextVNode("链接标识", -1)])]),
175539
175909
  _: 1
175540
175910
  })]),
175541
175911
  _: 1
@@ -175626,7 +175996,7 @@ var field_trace_config_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
175626
175996
  //#region src/suites/edhr/panel-config/field/trace/field-trace-config.vue
175627
175997
  var field_trace_config_exports = /* @__PURE__ */ __exportAll({ default: () => field_trace_config_default });
175628
175998
  init__plugin_vue_export_helper();
175629
- var field_trace_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_trace_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-53a31bd4"]]);
175999
+ var field_trace_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_trace_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fc7163dc"]]);
175630
176000
  //#endregion
175631
176001
  //#region src/suites/edhr/panel-config/field/user/field-user-config.vue?vue&type=script&setup=true&lang.ts
175632
176002
  init_enum();