next-element-vue 0.3.7 → 0.3.9

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.js CHANGED
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * 作  者:huangteng
4
4
  * 邮  箱:htengweb@163.com
5
- * 当前版本:0.3.7 v
6
- * 发布日期:2024-09-21
5
+ * 当前版本:0.3.9 v
6
+ * 发布日期:2024-11-12
7
7
  * 地  址:https://www.npmjs.com/package/next-element-vue
8
8
  */
9
9
 
@@ -1977,15 +1977,18 @@ var Header$3 = defineComponent({
1977
1977
  return isHeaderBarColorGradual ? {
1978
1978
  background: `linear-gradient(to bottom , ${color}, ${getLightColor$3(color, .5)})`
1979
1979
  } : "";
1980
- }));
1981
- return createVNode("header", {
1980
+ })), __slots_header_tools = {};
1981
+ return slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
1982
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]()),
1983
+ createVNode("header", {
1982
1984
  class: _ns.b("header"),
1983
1985
  style: headerStyle.value
1984
1986
  }, [ createVNode(LogoView, null, null), createVNode("div", {
1985
1987
  class: _ns.bf("header", "right")
1986
- }, [ createVNode(HeaderTools, null, {
1987
- default: () => [ slots[slots_config_headerToolsPrefix]?.(), slots[slots_config_headerToolsSuffix]?.() ]
1988
- }) ]) ]);
1988
+ }, [ createVNode(HeaderTools, null, (s = __slots_header_tools, "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
1989
+ default: () => [ __slots_header_tools ]
1990
+ })) ]) ]);
1991
+ var s;
1989
1992
  }
1990
1993
  });
1991
1994
 
@@ -2824,21 +2827,29 @@ var defaults = defineComponent({
2824
2827
  render() {
2825
2828
  const slots = this.$slots, _config = inject("options", {}), _emit = inject("__emit__", {});
2826
2829
  slots.menu;
2830
+ const __slots_header_tools = {};
2831
+ slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
2832
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]());
2827
2833
  const isTabs = ref(!!slots.tabs);
2828
2834
  return void 0 === slots.tabs && _config.showTabs && (isTabs.value = !0), createVNode(ElContainer, {
2829
2835
  class: ns$j.b()
2830
2836
  }, {
2831
- default: () => [ createVNode(Sidebar$2, null, null), createVNode("div", {
2832
- class: [ ns$j.b("content") ]
2833
- }, [ createVNode(Header$3, null, null), _config.showTabs ? slots.tabs ? slots.tabs?.() : createVNode(NextTabs, {
2834
- tabs: _config.tabs,
2835
- activeTab: _config.activeTab,
2836
- onChange: (...arg) => _emit("tabsChange", ...arg),
2837
- onSelect: (...arg) => _emit("tabsSelect", ...arg),
2838
- onClose: (...arg) => _emit("tabsClose", ...arg)
2839
- }, null) : null, createVNode("main", {
2840
- class: [ ns$j.bf("main"), ns$j.is("layout-tabs", isTabs.value) ]
2841
- }, [ slots.default?.() ]) ]) ]
2837
+ default: () => {
2838
+ return [ createVNode(Sidebar$2, null, null), createVNode("div", {
2839
+ class: [ ns$j.b("content") ]
2840
+ }, [ createVNode(Header$3, null, (s = __slots_header_tools, "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
2841
+ default: () => [ __slots_header_tools ]
2842
+ })), _config.showTabs ? slots.tabs ? slots.tabs?.() : createVNode(NextTabs, {
2843
+ tabs: _config.tabs,
2844
+ activeTab: _config.activeTab,
2845
+ onChange: (...arg) => _emit("tabsChange", ...arg),
2846
+ onSelect: (...arg) => _emit("tabsSelect", ...arg),
2847
+ onClose: (...arg) => _emit("tabsClose", ...arg)
2848
+ }, null) : null, createVNode("main", {
2849
+ class: [ ns$j.bf("main"), ns$j.is("layout-tabs", isTabs.value) ]
2850
+ }, [ slots.default?.() ]) ]) ];
2851
+ var s;
2852
+ }
2842
2853
  });
2843
2854
  }
2844
2855
  });
@@ -2852,21 +2863,26 @@ var Header$2 = defineComponent({
2852
2863
  return isHeaderBarColorGradual ? {
2853
2864
  background: `linear-gradient(to bottom , ${color}, ${getLightColor$2(color, .5)})`
2854
2865
  } : "";
2855
- }));
2856
- return () => createVNode(Fragment, null, [ createVNode("header", {
2857
- class: _ns.b("header"),
2858
- style: headerStyle.value
2859
- }, [ createVNode(LogoView, null, null), createVNode("div", {
2860
- class: _ns.bf("header", "menu")
2861
- }, [ slots[slots_config_headerMenu] ? slots[slots_config_headerMenu]() : createVNode(NextMenu, {
2862
- menuTree: _config.menuTree,
2863
- router: _config.menuRouter,
2864
- mode: _config.menuMode
2865
- }, null) ]), createVNode("div", {
2866
- class: _ns.bf("header", "right")
2867
- }, [ createVNode(HeaderTools, null, {
2868
- default: () => [ slots[slots_config_headerToolsPrefix]?.(), slots[slots_config_headerToolsSuffix]?.() ]
2869
- }) ]) ]) ]);
2866
+ })), __slots_header_tools = {};
2867
+ slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
2868
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]());
2869
+ return () => {
2870
+ return createVNode(Fragment, null, [ createVNode("header", {
2871
+ class: _ns.b("header"),
2872
+ style: headerStyle.value
2873
+ }, [ createVNode(LogoView, null, null), createVNode("div", {
2874
+ class: _ns.bf("header", "menu")
2875
+ }, [ slots[slots_config_headerMenu] ? slots[slots_config_headerMenu]() : createVNode(NextMenu, {
2876
+ menuTree: _config.menuTree,
2877
+ router: _config.menuRouter,
2878
+ mode: _config.menuMode
2879
+ }, null) ]), createVNode("div", {
2880
+ class: _ns.bf("header", "right")
2881
+ }, [ createVNode(HeaderTools, null, (s = __slots_header_tools, "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
2882
+ default: () => [ __slots_header_tools ]
2883
+ })) ]) ]) ]);
2884
+ var s;
2885
+ };
2870
2886
  }
2871
2887
  });
2872
2888
 
@@ -2906,17 +2922,22 @@ var Header$1 = defineComponent({
2906
2922
  return isHeaderBarColorGradual ? {
2907
2923
  background: `linear-gradient(to bottom , ${color}, ${getLightColor$1(color, .5)})`
2908
2924
  } : "";
2909
- }));
2910
- return () => createVNode(Fragment, null, [ createVNode("header", {
2911
- class: _ns.b("header"),
2912
- style: headerStyle.value
2913
- }, [ createVNode(LogoView, null, null), createVNode("div", {
2914
- class: _ns.bf("header", "menu")
2915
- }, null), createVNode("div", {
2916
- class: _ns.bf("header", "right")
2917
- }, [ createVNode(HeaderTools, null, {
2918
- default: () => [ slots[slots_config_headerToolsPrefix]?.(), slots[slots_config_headerToolsSuffix]?.() ]
2919
- }) ]) ]) ]);
2925
+ })), __slots_header_tools = {};
2926
+ slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
2927
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]());
2928
+ return () => {
2929
+ return createVNode(Fragment, null, [ createVNode("header", {
2930
+ class: _ns.b("header"),
2931
+ style: headerStyle.value
2932
+ }, [ createVNode(LogoView, null, null), createVNode("div", {
2933
+ class: _ns.bf("header", "menu")
2934
+ }, null), createVNode("div", {
2935
+ class: _ns.bf("header", "right")
2936
+ }, [ createVNode(HeaderTools, null, (s = __slots_header_tools, "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
2937
+ default: () => [ __slots_header_tools ]
2938
+ })) ]) ]) ]);
2939
+ var s;
2940
+ };
2920
2941
  }
2921
2942
  }), Sidebar$1 = defineComponent({
2922
2943
  setup: () => ({
@@ -2976,17 +2997,22 @@ var Header = defineComponent({
2976
2997
  return isHeaderBarColorGradual ? {
2977
2998
  background: `linear-gradient(to bottom , ${color}, ${getLightColor(color, .5)})`
2978
2999
  } : "";
2979
- }));
2980
- return () => createVNode(Fragment, null, [ createVNode("header", {
2981
- class: _ns.b("header"),
2982
- style: headerStyle.value
2983
- }, [ createVNode(LogoView, null, null), createVNode("div", {
2984
- class: _ns.bf("header", "menu")
2985
- }, [ slots[slots_config_headerMenu]?.() ]), createVNode("div", {
2986
- class: _ns.bf("header", "right")
2987
- }, [ createVNode(HeaderTools, null, {
2988
- default: () => [ slots[slots_config_headerToolsPrefix]?.(), slots[slots_config_headerToolsSuffix]?.() ]
2989
- }) ]) ]) ]);
3000
+ })), __slots_header_tools = {};
3001
+ slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
3002
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]());
3003
+ return () => {
3004
+ return createVNode(Fragment, null, [ createVNode("header", {
3005
+ class: _ns.b("header"),
3006
+ style: headerStyle.value
3007
+ }, [ createVNode(LogoView, null, null), createVNode("div", {
3008
+ class: _ns.bf("header", "menu")
3009
+ }, [ slots[slots_config_headerMenu]?.() ]), createVNode("div", {
3010
+ class: _ns.bf("header", "right")
3011
+ }, [ createVNode(HeaderTools, null, (s = __slots_header_tools, "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
3012
+ default: () => [ __slots_header_tools ]
3013
+ })) ]) ]) ]);
3014
+ var s;
3015
+ };
2990
3016
  }
2991
3017
  }), Sidebar = defineComponent({
2992
3018
  setup: () => ({
@@ -3015,8 +3041,14 @@ var classic = defineComponent({
3015
3041
  render() {
3016
3042
  const slots = this.$slots, _config = inject("options", {}), _emit = inject("__emit__", {});
3017
3043
  slots.menu;
3044
+ const __slots_header_tools = {};
3045
+ slots[slots_config_headerToolsPrefix] && (__slots_header_tools[slots_config_headerToolsPrefix] = () => slots[slots_config_headerToolsPrefix]()),
3046
+ slots[slots_config_headerToolsSuffix] && (__slots_header_tools[slots_config_headerToolsSuffix] = () => slots[slots_config_headerToolsSuffix]());
3018
3047
  const isTabs = ref(!!slots.tabs);
3019
- return void 0 === slots.tabs && _config.showTabs && (isTabs.value = !0), createVNode(Fragment, null, [ createVNode(Header, null, null), createVNode("div", {
3048
+ return void 0 === slots.tabs && _config.showTabs && (isTabs.value = !0), createVNode(Fragment, null, [ createVNode(Header, null, (s = __slots_header_tools,
3049
+ "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? __slots_header_tools : {
3050
+ default: () => [ __slots_header_tools ]
3051
+ })), createVNode("div", {
3020
3052
  class: [ ns$g.b("content"), ns$g.is("layout-tabs", isTabs.value) ]
3021
3053
  }, [ createVNode(Sidebar, null, null), createVNode("div", {
3022
3054
  class: ns$g.b("container")
@@ -3029,6 +3061,7 @@ var classic = defineComponent({
3029
3061
  }, null) : null, createVNode("main", {
3030
3062
  class: [ ns$g.b("main") ]
3031
3063
  }, [ slots.default?.() ]) ]) ]) ]);
3064
+ var s;
3032
3065
  }
3033
3066
  });
3034
3067
 
@@ -4024,7 +4057,11 @@ var TableColumnOperations = defineComponent({
4024
4057
  const {operationsBtnPlain: operationsBtnPlain, operationsBtnText: operationsBtnText} = options;
4025
4058
  return operationsBtnText || operationsBtnPlain;
4026
4059
  })), renderContent = () => {
4027
- const btnText = options.operationsBtnText, btnPlain = options.operationsBtnPlain, btnSize = options.operationsBtnSize;
4060
+ const btnText = options.operationsBtnText, btnPlain = options.operationsBtnPlain, btnSize = options.operationsBtnSize, btnCfg = {
4061
+ text: btnText,
4062
+ plain: btnPlain,
4063
+ size: btnSize
4064
+ };
4028
4065
  return createVNode(ElTableColumn, {
4029
4066
  fixed: "right",
4030
4067
  label: t("next.table.operation"),
@@ -4032,10 +4069,9 @@ var TableColumnOperations = defineComponent({
4032
4069
  headerAlign: valueExist(options.operationsHeaderAlign, options.headerAlign),
4033
4070
  align: valueExist(options.operationsColumnAlign, options.cellAlign)
4034
4071
  }, {
4035
- default: scoped => createVNode(Fragment, null, [ slots["operation-column-prefix"]?.(scoped, {
4036
- text: btnText,
4037
- plain: btnPlain,
4038
- size: btnSize
4072
+ default: scoped => createVNode(Fragment, null, [ slots["operation-column-prefix"]?.({
4073
+ scoped: scoped,
4074
+ btn: btnCfg
4039
4075
  }), options.editBtn ? createVNode(ElTooltip, {
4040
4076
  enterable: !1,
4041
4077
  effect: "dark",
@@ -4115,10 +4151,9 @@ var TableColumnOperations = defineComponent({
4115
4151
  }),
4116
4152
  default: () => t("next.table.delete")
4117
4153
  }) ]
4118
- }) : null, slots["operation-column-suffix"]?.(scoped, {
4119
- text: btnText,
4120
- plain: btnPlain,
4121
- size: btnSize
4154
+ }) : null, slots["operation-column-suffix"]?.({
4155
+ scoped: scoped,
4156
+ btn: btnCfg
4122
4157
  }) ])
4123
4158
  });
4124
4159
  };
@@ -4866,9 +4901,9 @@ var Element$7 = defineComponent({
4866
4901
  return createVNode(ElInput, {
4867
4902
  modelValue: formParams[col.prop],
4868
4903
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4869
- clearable: !0,
4904
+ clearable: valueExist(col.clearable, !0),
4870
4905
  readonly: valueExist(col.readonly, !1),
4871
- disabled: col.disabled,
4906
+ disabled: valueExist(col.disabled, !1),
4872
4907
  placeholder: placeholder,
4873
4908
  onChange: event => col.onChange?.(event, col, formParams, formColumns)
4874
4909
  }, {
@@ -4884,7 +4919,7 @@ var Element$7 = defineComponent({
4884
4919
  modelValue: formParams[col.prop],
4885
4920
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4886
4921
  type: "password",
4887
- clearable: !0,
4922
+ clearable: valueExist(col.clearable, !0),
4888
4923
  "show-password": !0,
4889
4924
  readonly: valueExist(col.readonly, !1),
4890
4925
  disabled: col.disabled,
@@ -4902,7 +4937,7 @@ var Element$7 = defineComponent({
4902
4937
  return createVNode(ElInput, {
4903
4938
  modelValue: formParams[col.prop],
4904
4939
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4905
- clearable: !0,
4940
+ clearable: valueExist(col.clearable, !0),
4906
4941
  readonly: valueExist(col.readonly, !1),
4907
4942
  disabled: col.disabled,
4908
4943
  placeholder: placeholder,
@@ -4923,7 +4958,7 @@ var Element$7 = defineComponent({
4923
4958
  return createVNode(ElInput, {
4924
4959
  modelValue: formParams[col.prop],
4925
4960
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4926
- clearable: !0,
4961
+ clearable: valueExist(col.clearable, !0),
4927
4962
  readonly: valueExist(col.readonly, !1),
4928
4963
  disabled: col.disabled,
4929
4964
  placeholder: placeholder,
@@ -4947,7 +4982,7 @@ var Element$7 = defineComponent({
4947
4982
  modelValue: formParams[col.prop],
4948
4983
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4949
4984
  type: "textarea",
4950
- clearable: !0,
4985
+ clearable: valueExist(col.clearable, !0),
4951
4986
  readonly: valueExist(col.readonly, !1),
4952
4987
  disabled: col.disabled,
4953
4988
  placeholder: placeholder,
@@ -4965,8 +5000,9 @@ var Element$7 = defineComponent({
4965
5000
  modelValue: formParams[col.prop],
4966
5001
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
4967
5002
  placeholder: placeholder,
4968
- clearable: !0,
4969
- disabled: col.disabled,
5003
+ clearable: valueExist(col.clearable, !0),
5004
+ disabled: valueExist(col.disabled, !1),
5005
+ readonly: valueExist(col.readonly, !1),
4970
5006
  multiple: valueExist(col.multiple, !1),
4971
5007
  "collapse-tags-tooltip": !0,
4972
5008
  onChange: event => col.onChange?.(event, col, formParams, formColumns)
@@ -4987,8 +5023,10 @@ var Element$7 = defineComponent({
4987
5023
  start: "00:00",
4988
5024
  step: "00:30",
4989
5025
  end: "23:59",
4990
- editable: !1,
4991
- disabled: col.disabled,
5026
+ clearable: valueExist(col.clearable, !0),
5027
+ editable: valueExist(col.editable, !1),
5028
+ disabled: valueExist(col.disabled, !1),
5029
+ readonly: valueExist(col.readonly, !1),
4992
5030
  placeholder: placeholder,
4993
5031
  onChange: event => col.onChange?.(event, col, formParams, formColumns)
4994
5032
  }, {
@@ -4999,7 +5037,8 @@ var Element$7 = defineComponent({
4999
5037
  if ("radio" === col.type) return createVNode(ElRadioGroup, {
5000
5038
  modelValue: formParams[col.prop],
5001
5039
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
5002
- disabled: col.disabled,
5040
+ disabled: valueExist(col.disabled, !1),
5041
+ readonly: valueExist(col.readonly, !1),
5003
5042
  onChange: event => col.onChange?.(event, col, formParams, formColumns)
5004
5043
  }, {
5005
5044
  default: () => [ col.dicData && col.dicData.map((item => createVNode(ElRadio, {
@@ -5014,7 +5053,8 @@ var Element$7 = defineComponent({
5014
5053
  createVNode(ElCheckboxGroup, {
5015
5054
  modelValue: formParams[col.prop],
5016
5055
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
5017
- disabled: col.disabled,
5056
+ disabled: valueExist(col.disabled, !1),
5057
+ readonly: valueExist(col.readonly, !1),
5018
5058
  onChange: event => col.onChange?.(event, col, formParams, formColumns)
5019
5059
  }, {
5020
5060
  default: () => [ col.dicData && col.dicData.map((item => createVNode(ElCheckbox, {
@@ -5034,10 +5074,11 @@ var Element$7 = defineComponent({
5034
5074
  type: "date",
5035
5075
  valueFormat: col.format || "YYYY-MM-DD",
5036
5076
  format: col.format || "YYYY-MM-DD",
5037
- clearable: !0,
5077
+ clearable: valueExist(col.clearable, !0),
5038
5078
  disabledDate: col.disabledDate || _defaultDisabledDate,
5039
- disabled: col.disabled,
5040
- editable: col.editable
5079
+ editable: valueExist(col.editable, !1),
5080
+ disabled: valueExist(col.disabled, !1),
5081
+ readonly: valueExist(col.readonly, !1)
5041
5082
  }, null);
5042
5083
  }
5043
5084
  if ("datetime" === col.type) {
@@ -5049,10 +5090,11 @@ var Element$7 = defineComponent({
5049
5090
  type: "datetime",
5050
5091
  valueFormat: col.format || "YYYY-MM-DD HH:mm:ss",
5051
5092
  format: col.format || "YYYY-MM-DD HH:mm:ss",
5052
- clearable: !0,
5093
+ clearable: valueExist(col.clearable, !0),
5053
5094
  disabledDate: col.disabledDate || _defaultDisabledDate,
5054
- disabled: col.disabled,
5055
- editable: col.editable
5095
+ editable: valueExist(col.editable, !1),
5096
+ disabled: valueExist(col.disabled, !1),
5097
+ readonly: valueExist(col.readonly, !1)
5056
5098
  }, null);
5057
5099
  }
5058
5100
  if ("datetimerange" === col.type) {
@@ -5064,13 +5106,14 @@ var Element$7 = defineComponent({
5064
5106
  type: "datetimerange",
5065
5107
  valueFormat: col.format || "YYYY-MM-DD HH:mm:ss",
5066
5108
  format: col.format || "YYYY-MM-DD HH:mm:ss",
5067
- clearable: !0,
5068
5109
  "range-separator": t("next.date.rangeSeparator"),
5069
5110
  "start-placeholder": t("next.date.startPlaceholder"),
5070
5111
  "end-placeholder": t("next.date.endPlaceholder"),
5071
5112
  disabledDate: col.disabledDate || _defaultDisabledDate,
5072
- disabled: col.disabled,
5073
- editable: col.editable,
5113
+ clearable: valueExist(col.clearable, !0),
5114
+ editable: valueExist(col.editable, !1),
5115
+ disabled: valueExist(col.disabled, !1),
5116
+ readonly: valueExist(col.readonly, !1),
5074
5117
  shortcuts: col.shortcuts || _defaultShortcuts
5075
5118
  }, null);
5076
5119
  }
@@ -5088,7 +5131,7 @@ var Element$7 = defineComponent({
5088
5131
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
5089
5132
  formParams: formParams,
5090
5133
  column: col,
5091
- disabled: col.disabled,
5134
+ disabled: valueExist(col.disabled, !1),
5092
5135
  onSelect: rows => ((rows, col) => {
5093
5136
  rows && (col.tableSelectRows = rows);
5094
5137
  const {value: value} = col.tableSelectProps || {};
@@ -5097,15 +5140,15 @@ var Element$7 = defineComponent({
5097
5140
  }, null) : "uploadImage" === col.type ? createVNode(UploadImage, {
5098
5141
  modelValue: formParams[col.prop],
5099
5142
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
5100
- disabled: col.disabled,
5101
- multiple: col.multiple,
5143
+ disabled: valueExist(col.disabled, !1),
5144
+ multiple: valueExist(col.multiple, !1),
5102
5145
  limit: col.limit,
5103
5146
  onChange: (...arg) => col.onChange?.(...arg, col, formParams, formColumns),
5104
5147
  onExceed: (...arg) => col.onExceed?.(...arg, col, formParams, formColumns)
5105
5148
  }, null) : "treeSelect" === col.type ? createVNode(treeSelect, {
5106
5149
  modelValue: formParams[col.prop],
5107
5150
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
5108
- disabled: col.disabled,
5151
+ disabled: valueExist(col.disabled, !1),
5109
5152
  column: col,
5110
5153
  formParams: formParams
5111
5154
  }, null) : void 0;
@@ -5282,7 +5325,7 @@ var Element$6 = defineComponent({
5282
5325
  append: valueExist(col.formAppend, col.append, null),
5283
5326
  hide: valueExist(col.formHide, col.hide, !1),
5284
5327
  disabled: valueExist(col.formDisabled, col.disabled, !1),
5285
- clearable: valueExist(col.formClearable, col.clearable, !1),
5328
+ clearable: valueExist(col.formClearable, col.clearable, !0),
5286
5329
  readonly: valueExist(col.formReadonly, col.readonly, !1),
5287
5330
  tip: valueExist(col.formTip, col.tip, null),
5288
5331
  rules: valueExist(col.formRules, col.rules, null),
@@ -6604,12 +6647,14 @@ var DraggableRect = defineComponent({
6604
6647
  canvas.width = canvasWidth, scaleOffset.value && (ctx.save(), ctx.translate(scaleOffset.value.x, scaleOffset.value.y),
6605
6648
  ctx.scale(scaleOffset.value.scale, scaleOffset.value.scale)), ctx.clearRect(0, 0, canvasWidth, canvasHeight),
6606
6649
  ctx.drawImage(image, 0, 0, canvasWidth, canvasHeight);
6650
+ const scale = scaleOffset.value?.scale || 1, fontSize = 14 / scale, fontPadding = 6 / scale, lineWidth = 2 / scale;
6607
6651
  for (let i = 0; i < labels.length; i++) {
6608
6652
  const rect = labels[i], {startX: startX, startY: startY, rectWidth: rectWidth, rectHeight: rectHeight, type: type} = rect, color = colors$1[type % colors$1.length];
6609
- if (ctx.font = "bold 14px serif", ctx.textBaseline = "top", ctx.save(), ctx.strokeStyle = color,
6610
- ctx.strokeRect(startX, startY, rectWidth, rectHeight), isValueExist(rect.typeName) || isValueExist(rect.type)) {
6653
+ if (ctx.font = `bold ${fontSize}px serif`, ctx.textBaseline = "top", ctx.save(),
6654
+ ctx.strokeStyle = color, ctx.lineWidth = lineWidth, ctx.strokeRect(startX, startY, rectWidth, rectHeight),
6655
+ isValueExist(rect.typeName) || isValueExist(rect.type)) {
6611
6656
  const text = rect.typeName || rect.type;
6612
- ctx.fillStyle = color, ctx.fillText(text, startX + 6, startY + 6);
6657
+ ctx.fillStyle = color, ctx.fillText(text, startX + fontPadding, startY + fontPadding);
6613
6658
  }
6614
6659
  ctx.restore();
6615
6660
  }
@@ -6617,8 +6662,10 @@ var DraggableRect = defineComponent({
6617
6662
  return updateLabels(), {
6618
6663
  updateLabels: updateLabels,
6619
6664
  addDrawRect: (rect, color = "#f30635") => {
6620
- const {startX: startX, startY: startY, rectWidth: rectWidth, rectHeight: rectHeight} = rect;
6621
- ctx.save(), ctx.strokeStyle = color, ctx.strokeRect(startX, startY, rectWidth, rectHeight),
6665
+ const scale = scaleOffset.value?.scale || 1, {startX: startX, startY: startY, rectWidth: rectWidth, rectHeight: rectHeight} = rect;
6666
+ ctx.save();
6667
+ const lineWidth = 2 / scale;
6668
+ ctx.lineWidth = lineWidth, ctx.strokeStyle = color, ctx.strokeRect(startX, startY, rectWidth, rectHeight),
6622
6669
  ctx.restore();
6623
6670
  },
6624
6671
  hitCanvasLabel: (x, y) => {
@@ -7278,7 +7325,10 @@ var preview = defineComponent({
7278
7325
  }
7279
7326
  });
7280
7327
 
7281
- const NextLabelimg = withInstall(Element$1), NextLabelimgPreview = withInstall(preview), isPointInCircle = (mouseX, mouseY, circleX, circleY, radius) => Math.sqrt(Math.pow(mouseX - circleX, 2) + Math.pow(mouseY - circleY, 2)) < radius, vertexesUnique = vertexes => Array.from(new Set(vertexes.map((item => JSON.stringify(item))))).map((item => JSON.parse(item))), {hexToRgba: hexToRgba} = useChangeColor(), colors = [ "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc" ];
7328
+ const NextLabelimg = withInstall(Element$1), NextLabelimgPreview = withInstall(preview), isPointInCircle = (mouseX, mouseY, circleX, circleY, radius) => Math.sqrt(Math.pow(mouseX - circleX, 2) + Math.pow(mouseY - circleY, 2)) < radius, vertexesUnique = vertexes => Array.from(new Set(vertexes.map((item => JSON.stringify(item))))).map((item => JSON.parse(item))), vertexesToScale = (vertexes, scaleX, scaleY, isMultiply = !0) => vertexes?.length ? vertexes.map((item => ((vertex, scaleX, scaleY, isMultiply = !0) => {
7329
+ const [x, y] = vertex;
7330
+ return isMultiply ? [ x * scaleX, y * scaleY ] : [ x / scaleX, y / scaleY ];
7331
+ })(item, scaleX, scaleY, isMultiply))) : [], {hexToRgba: hexToRgba} = useChangeColor(), colors = [ "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc" ];
7282
7332
 
7283
7333
  class CreatePolygonVertexes {
7284
7334
  canvas;
@@ -7335,9 +7385,9 @@ class CreatePolygonVertexes {
7335
7385
  canvasMouseDblclick(e) {
7336
7386
  e.stopPropagation(), this.isDrawing && (this.canvas.style.cursor = "unset", this.mouseOffset.x = e.offsetX,
7337
7387
  this.mouseOffset.y = e.offsetY, this.vertexes.push([ e.offsetX, e.offsetY ]), this.vertexes = vertexesUnique(this.vertexes)),
7338
- this.notifyDestryedListerers(), this.destroyed();
7388
+ this.notifyDestryedListerers(), this.destroy();
7339
7389
  }
7340
- destroyed() {
7390
+ destroy() {
7341
7391
  this.isDrawing = !1, this.vertexes = [], this.vertexesObservers = [], this.destroyedObservers = () => {
7342
7392
  this.canvas.removeEventListener("click", this.canvasMouseClick);
7343
7393
  }, this.canvas.removeEventListener("mousemove", this.canvasMousemove), this.canvas.removeEventListener("dblclick", this.canvasMouseDblclick);
@@ -7357,11 +7407,22 @@ class EditPolygonPath {
7357
7407
  edgeCentreRadius;
7358
7408
  pointRecover;
7359
7409
  observers=[];
7410
+ editPolygonObserver;
7360
7411
  constructor(canvas, ctx) {
7361
7412
  this.canvas = canvas, this.ctx = ctx, this.vertexes = [], this.isEditing = !1, this.canClickEvent = !0,
7362
7413
  this.isMoveEditing = !1, this.pointVertexIndex = -1, this.pointCentreIndex = -1,
7363
7414
  this.vertexRadius = 8, this.edgeCentreRadius = 5, this.pointRecover = [];
7364
7415
  }
7416
+ notifyEditPolygonObserver() {
7417
+ this.editPolygonObserver?.(this.vertexes);
7418
+ }
7419
+ onEditPolygon(callback) {
7420
+ this.editPolygonObserver = callback;
7421
+ }
7422
+ getTransformPoint(x, y) {
7423
+ const transformMatrix = this.ctx.getTransform(), scaleX = parseFloat(transformMatrix.a.toFixed(1)), scaleY = parseFloat(transformMatrix.d.toFixed(1)), translateX = Math.ceil(transformMatrix.e), translateY = Math.ceil(transformMatrix.f);
7424
+ return [ Math.floor((x - translateX) / scaleX), Math.floor((y - translateY) / scaleY) ];
7425
+ }
7365
7426
  drawPolygonPath(vertexes, mouseX, mouseY) {
7366
7427
  const ctx = this.ctx;
7367
7428
  if (!vertexes.length) return;
@@ -7393,11 +7454,11 @@ class EditPolygonPath {
7393
7454
  this.drawPolygonEdgeCentre(vertexes));
7394
7455
  }
7395
7456
  pointInVertexes(x, y) {
7396
- const vertexes = this.vertexes;
7457
+ const [_x, _y] = this.getTransformPoint(x, y), vertexes = this.vertexes;
7397
7458
  let aimIndex = null;
7398
7459
  for (let i = 0; i < vertexes.length; i++) {
7399
7460
  const [vertex_x, vertex_y] = vertexes[i];
7400
- if (isPointInCircle(x, y, vertex_x, vertex_y, this.vertexRadius)) {
7461
+ if (isPointInCircle(_x, _y, vertex_x, vertex_y, this.vertexRadius)) {
7401
7462
  this.canvas.style.cursor = "pointer", aimIndex = i;
7402
7463
  break;
7403
7464
  }
@@ -7406,11 +7467,11 @@ class EditPolygonPath {
7406
7467
  return aimIndex;
7407
7468
  }
7408
7469
  pointInEdgeCentre(x, y) {
7409
- const vertexes = this.vertexes;
7470
+ const [_x, _y] = this.getTransformPoint(x, y), vertexes = this.vertexes;
7410
7471
  let aimIndex = null;
7411
7472
  for (let i = 0; i < vertexes.length; i++) {
7412
7473
  const start = vertexes[i % vertexes.length], end = vertexes[(i + 1) % vertexes.length], vertex_x = start[0] + (end[0] - start[0]) / 2, vertex_y = start[1] + (end[1] - start[1]) / 2;
7413
- if (isPointInCircle(x, y, vertex_x, vertex_y, this.edgeCentreRadius)) {
7474
+ if (isPointInCircle(_x, _y, vertex_x, vertex_y, this.edgeCentreRadius)) {
7414
7475
  this.canvas.style.cursor = "pointer", aimIndex = i;
7415
7476
  break;
7416
7477
  }
@@ -7419,9 +7480,9 @@ class EditPolygonPath {
7419
7480
  return aimIndex;
7420
7481
  }
7421
7482
  pointInVertexesOrEdgeCentre(x, y) {
7422
- const vertexes = this.vertexes;
7483
+ const [_x, _y] = this.getTransformPoint(x, y), vertexes = this.vertexes;
7423
7484
  for (let i = 0; i < vertexes.length; i++) {
7424
- const [vertex_x, vertex_y] = vertexes[i], isInVertex = isPointInCircle(x, y, vertex_x, vertex_y, this.vertexRadius), start = vertexes[i % vertexes.length], end = vertexes[(i + 1) % vertexes.length], edge_center_x = start[0] + (end[0] - start[0]) / 2, edge_center_y = start[1] + (end[1] - start[1]) / 2, isInEdgeCenter = isPointInCircle(x, y, edge_center_x, edge_center_y, this.edgeCentreRadius);
7485
+ const [vertex_x, vertex_y] = vertexes[i], isInVertex = isPointInCircle(_x, _y, vertex_x, vertex_y, this.vertexRadius), start = vertexes[i % vertexes.length], end = vertexes[(i + 1) % vertexes.length], edge_center_x = start[0] + (end[0] - start[0]) / 2, edge_center_y = start[1] + (end[1] - start[1]) / 2, isInEdgeCenter = isPointInCircle(_x, _y, edge_center_x, edge_center_y, this.edgeCentreRadius);
7425
7486
  if (isInVertex || isInEdgeCenter) {
7426
7487
  this.canvas.style.cursor = "pointer";
7427
7488
  break;
@@ -7466,7 +7527,7 @@ class EditPolygonPath {
7466
7527
  this.pointVertexIndex > -1 && this.vertexes.splice(this.pointVertexIndex, 1, [ x, y ]),
7467
7528
  this.pointCentreIndex > -1 && this.vertexes.splice(this.pointCentreIndex, 1, [ x, y ]),
7468
7529
  this.isMoveEditing = !1, this.pointVertexIndex = -1, this.pointCentreIndex = -1,
7469
- this.drawPolygon(this.vertexes), this.notifyObservers();
7530
+ this.drawPolygon(this.vertexes), this.notifyObservers(), this.notifyEditPolygonObserver();
7470
7531
  }
7471
7532
  canvasMouseClick(e) {
7472
7533
  e.stopPropagation();
@@ -7475,7 +7536,8 @@ class EditPolygonPath {
7475
7536
  const i = this.pointInVertexes(x, y);
7476
7537
  if (isValueExist(i)) {
7477
7538
  if (this.vertexes.length <= 3) return;
7478
- this.vertexes.splice(i, 1), this.drawPolygon(this.vertexes), this.notifyObservers();
7539
+ this.vertexes.splice(i, 1), this.drawPolygon(this.vertexes), this.notifyObservers(),
7540
+ this.notifyEditPolygonObserver();
7479
7541
  }
7480
7542
  }
7481
7543
  }
@@ -7486,7 +7548,7 @@ class EditPolygonPath {
7486
7548
  this.pointCentreIndex > -1 && this.vertexes.splice(this.pointCentreIndex, 1, [ x, y ]),
7487
7549
  this.notifyObservers());
7488
7550
  }
7489
- destroyed() {
7551
+ destroy() {
7490
7552
  this.vertexes = [], this.observers = [], this.isEditing = !1, this.canvas.removeEventListener("mousedown", this.canvasMousedown),
7491
7553
  this.canvas.removeEventListener("mouseup", this.canvasMouseup), this.canvas.removeEventListener("click", this.canvasMouseClick),
7492
7554
  this.canvas.removeEventListener("mousemove", this.canvasMousemove);
@@ -7499,26 +7561,32 @@ class CreateDrawCanvas {
7499
7561
  image;
7500
7562
  canvasWidth;
7501
7563
  canvasHeight;
7502
- paths;
7564
+ scaleOffset;
7565
+ labels;
7503
7566
  scaleX;
7504
7567
  scaleY;
7505
7568
  editDrawPolygon;
7506
7569
  createPolygonVertexes;
7507
7570
  editVertexes;
7508
7571
  editPolygonObservers=[];
7572
+ drawnPolygonObserver;
7509
7573
  constructor(options) {
7510
- const {canvas: canvas, ctx: ctx, image: image, canvasWidth: canvasWidth, canvasHeight: canvasHeight, paths: paths, scaleX: scaleX, scaleY: scaleY} = options;
7574
+ const {canvas: canvas, ctx: ctx, image: image, canvasWidth: canvasWidth, canvasHeight: canvasHeight, labels: labels, scaleX: scaleX, scaleY: scaleY, scaleOffset: scaleOffset} = options;
7511
7575
  this.canvas = canvas, this.ctx = ctx, this.image = image, this.canvasWidth = canvasWidth,
7512
- this.canvasHeight = canvasHeight, this.paths = paths || [], this.scaleX = scaleX || 1,
7513
- this.scaleY = scaleY || 1, this.editVertexes = [], this.render(), this.createPolygonVertexes = new CreatePolygonVertexes(canvas, ctx),
7514
- this.editDrawPolygon = new EditPolygonPath(canvas, ctx), this.createPolygonVertexes.vertexesChangeEventListener(((vertexes, mouseOffset) => {
7576
+ this.canvasHeight = canvasHeight, this.scaleOffset = scaleOffset, this.labels = labels || {},
7577
+ this.scaleX = scaleX || 1, this.scaleY = scaleY || 1, this.editVertexes = [], this.render(),
7578
+ this.createPolygonVertexes = new CreatePolygonVertexes(canvas, ctx), this.editDrawPolygon = new EditPolygonPath(canvas, ctx),
7579
+ this.createPolygonVertexes.vertexesChangeEventListener(((vertexes, mouseOffset) => {
7515
7580
  this.render(), this.editDrawPolygon.drawPolygon(vertexes, mouseOffset), this.editVertexes = vertexes,
7516
7581
  this.notifyObservers();
7517
7582
  })), this.createPolygonVertexes.onDestroyed((vertexes => {
7518
- this.render(), this.editDrawPolygon.drawPolygon(vertexes), this.editDrawPolygon.updatePolygon((vertexes => {
7583
+ this.editVertexes = vertexes, this.render(), this.editDrawPolygon.drawPolygon(vertexes),
7584
+ this.editDrawPolygon.updatePolygon((vertexes => {
7519
7585
  this.render(), this.editDrawPolygon.drawPolygon(vertexes), this.editVertexes = vertexes,
7520
7586
  this.notifyObservers();
7521
- }));
7587
+ })), this.editDrawPolygon.onEditPolygon((vertexes => {
7588
+ this.editVertexes = vertexes, this.notifyDrawnPolygonObservers();
7589
+ })), this.notifyDrawnPolygonObservers();
7522
7590
  }));
7523
7591
  }
7524
7592
  notifyObservers() {
@@ -7526,17 +7594,22 @@ class CreateDrawCanvas {
7526
7594
  listener(this.editVertexes);
7527
7595
  }));
7528
7596
  }
7597
+ notifyDrawnPolygonObservers() {
7598
+ this.drawnPolygonObserver?.(this.editVertexes);
7599
+ }
7529
7600
  updatePolygon(callback) {
7530
7601
  this.editPolygonObservers.push(callback);
7531
7602
  }
7532
- drawPolygons(paths) {
7533
- const ctx = this.ctx;
7534
- ctx.scale(this.scaleX, this.scaleY);
7535
- for (let i = 0; i < paths.length; i++) {
7536
- const path = paths[i].path;
7603
+ onDrawnPolygon(callback) {
7604
+ this.drawnPolygonObserver = callback;
7605
+ }
7606
+ drawPolygons(shapes) {
7607
+ const ctx = this.ctx, {scale: scale} = this.scaleOffset.value, scaleX = this.scaleX, scaleY = this.scaleY;
7608
+ for (let i = 0; i < shapes.length; i++) {
7609
+ const item = shapes[i], path = vertexesToScale(item.points, scaleX, scaleY);
7537
7610
  if (!path.length) return;
7538
7611
  const color = colors[i % colors.length];
7539
- ctx.beginPath(), ctx.lineWidth = 2, ctx.strokeStyle = color, ctx.fillStyle = hexToRgba(color, .2);
7612
+ ctx.beginPath(), ctx.lineWidth = 2 / scale, ctx.strokeStyle = color, ctx.fillStyle = hexToRgba(color, .2);
7540
7613
  const startX = path[0][0], startY = path[0][1];
7541
7614
  ctx.moveTo(startX, startY);
7542
7615
  for (let i = 1; i < path.length; i++) {
@@ -7546,15 +7619,18 @@ class CreateDrawCanvas {
7546
7619
  ctx.closePath(), ctx.stroke(), ctx.fill();
7547
7620
  }
7548
7621
  }
7549
- initCanvas=() => {
7622
+ drawCanvas=() => {
7550
7623
  this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight), this.ctx.drawImage(this.image, 0, 0, this.canvasWidth, this.canvasHeight),
7551
- this.ctx.save(), this.drawPolygons(this.paths), this.ctx.restore();
7624
+ this.ctx.save();
7625
+ const shapes = this.labels.shapes;
7626
+ shapes?.length && this.drawPolygons(shapes), this.ctx.restore();
7552
7627
  };
7553
7628
  render=() => {
7554
- this.initCanvas();
7629
+ this.canvas.width = this.canvasWidth, this.scaleOffset.value && (this.ctx.translate(this.scaleOffset.value.x, this.scaleOffset.value.y),
7630
+ this.ctx.scale(this.scaleOffset.value.scale, this.scaleOffset.value.scale)), this.drawCanvas();
7555
7631
  };
7556
- destroyed() {
7557
- this.paths = [], this.editDrawPolygon.destroyed(), this.createPolygonVertexes.destroyed();
7632
+ destroy() {
7633
+ this.labels = {}, this.editDrawPolygon.destroy(), this.createPolygonVertexes.destroy();
7558
7634
  }
7559
7635
  }
7560
7636
 
@@ -7573,9 +7649,9 @@ var CanvasContext = defineComponent({
7573
7649
  default: () => ({})
7574
7650
  }
7575
7651
  },
7576
- emits: [ "editPolygon" ],
7652
+ emits: [ "editPolygon", "changePolygon" ],
7577
7653
  setup(props, {emit: emit, expose: expose}) {
7578
- const ns = inject("ns", {}), mainBasaeRef = ref(), canvasMainRef = ref(), canvasBaseRef = ref(), drawCanvas = ref(), setContainerWidthHeight = (canvasWidth, canvasHeight) => {
7654
+ const ns = inject("ns", {}), scaleTranslateManager = inject("scaleTranslateManager", {}), mainBasaeRef = ref(), canvasMainRef = ref(), canvasBaseRef = ref(), drawCanvas = ref(), canvasDragZoom = ref(), setContainerWidthHeight = (canvasWidth, canvasHeight) => {
7579
7655
  canvasMainRef.value.style.width = canvasWidth + "px", canvasMainRef.value.style.height = canvasHeight + "px",
7580
7656
  canvasBaseRef.value.width = canvasWidth, canvasBaseRef.value.height = canvasHeight,
7581
7657
  canvasBaseRef.value.style.width = canvasWidth + "px", canvasBaseRef.value.style.height = canvasHeight + "px";
@@ -7585,7 +7661,7 @@ var CanvasContext = defineComponent({
7585
7661
  const image = new Image;
7586
7662
  image.src = rowInfo.imageSrc, loadingImage.value = !0, image.onload = () => {
7587
7663
  loadingImage.value = !1;
7588
- const {canvasWidth: canvasWidth, canvasHeight: canvasHeight, scaleFactor: scaleFactor, scaleX: scaleX, scaleY: scaleY} = (image => {
7664
+ const {canvasWidth: canvasWidth, canvasHeight: canvasHeight, scaleFactor: scaleFactor, scaleX: scaleX, scaleY: scaleY, originWidth: originWidth, originHeight: originHeight} = (image => {
7589
7665
  const clientWidth = mainBasaeRef.value?.elementInstance.clientWidth, clientHeight = mainBasaeRef.value?.elementInstance.clientHeight;
7590
7666
  let {width: width, height: height} = image, scaleFactor = 1;
7591
7667
  const aspect_ratio = width / height;
@@ -7605,7 +7681,9 @@ var CanvasContext = defineComponent({
7605
7681
  canvasHeight: canvasHeight,
7606
7682
  scaleFactor: scaleFactor,
7607
7683
  scaleX: Number(scaleX),
7608
- scaleY: Number(scaleY)
7684
+ scaleY: Number(scaleY),
7685
+ originWidth: image.width,
7686
+ originHeight: image.height
7609
7687
  };
7610
7688
  })(image);
7611
7689
  image.style.width = canvasWidth + "px", image.style.height = canvasHeight + "px",
@@ -7616,15 +7694,25 @@ var CanvasContext = defineComponent({
7616
7694
  canvasWidth: canvasWidth,
7617
7695
  canvasHeight: canvasHeight,
7618
7696
  scaleFactor: scaleFactor,
7619
- paths: rowInfo.labels,
7697
+ labels: rowInfo.labels,
7620
7698
  scaleX: scaleX,
7621
- scaleY: scaleY
7699
+ scaleY: scaleY,
7700
+ scaleOffset: scaleTranslateManager.scaleTranslate
7622
7701
  }), drawCanvas.value.updatePolygon((vertexes => {
7623
- emit("editPolygon", {
7702
+ emit("changePolygon", {
7624
7703
  vertexes: vertexes,
7625
7704
  canvasWidth: canvasWidth,
7626
7705
  canvasHeight: canvasHeight
7627
7706
  });
7707
+ })), drawCanvas.value.onDrawnPolygon((vertexes => {
7708
+ const new_vertexes = vertexesToScale(vertexes, scaleX, scaleY, !1);
7709
+ emit("editPolygon", {
7710
+ vertexes: new_vertexes,
7711
+ originWidth: originWidth,
7712
+ originHeight: originHeight
7713
+ });
7714
+ })), canvasDragZoom.value = new CanvasSceneDragZoom(canvasBaseRef.value), canvasDragZoom.value.changeZoom((scaleOffset => {
7715
+ scaleTranslateManager.onChangeScaleTranslate(scaleOffset), drawCanvas.value.render();
7628
7716
  }));
7629
7717
  }, image.onerror = () => {
7630
7718
  loadingImage.value = !1;
@@ -7645,6 +7733,8 @@ var CanvasContext = defineComponent({
7645
7733
  renderImageLabel(rowInfo);
7646
7734
  }
7647
7735
  }));
7736
+ })), onUnmounted((() => {
7737
+ drawCanvas.value.destroy(), canvasDragZoom.value.destroy();
7648
7738
  }));
7649
7739
  return expose({
7650
7740
  rerenderImage: () => {
@@ -7652,6 +7742,9 @@ var CanvasContext = defineComponent({
7652
7742
  const rowInfo = toRaw(props.rowInfo);
7653
7743
  renderImageLabel(rowInfo);
7654
7744
  }));
7745
+ },
7746
+ resetScaleOffset: () => {
7747
+ canvasDragZoom.value.reset();
7655
7748
  }
7656
7749
  }), () => createVNode(Fragment, null, [ createVNode(NextSpinLoading, {
7657
7750
  ref: mainBasaeRef,
@@ -7687,7 +7780,7 @@ var CanvasContext = defineComponent({
7687
7780
  },
7688
7781
  emits: [ "fullscreen", "save" ],
7689
7782
  setup(props, {emit: emit}) {
7690
- const _ns = inject("ns", {}), {t: t} = useLocale(), switchFillscreen = val => {
7783
+ const _ns = inject("ns", {}), scaleTranslateManager = inject("scaleTranslateManager", {}), scaleTranslate = scaleTranslateManager.scaleTranslate, {t: t} = useLocale(), switchFillscreen = val => {
7691
7784
  emit("fullscreen", val), document.body.style.overflow = val ? "hidden" : "auto";
7692
7785
  };
7693
7786
  return () => createVNode(Fragment, null, [ createVNode(Fragment, null, [ createVNode("ul", {
@@ -7768,7 +7861,28 @@ var CanvasContext = defineComponent({
7768
7861
  class: "label-text"
7769
7862
  }, [ t("next.labelme.deletePolyton") ]) ]) ]), createVNode("ul", {
7770
7863
  class: [ _ns.be("header", "tool") ]
7771
- }, [ props.imageLength ? createVNode("li", null, [ createVNode("span", null, [ createTextVNode("第 "), props.imageIndex + 1, createTextVNode(" 张") ]), createVNode("em", {
7864
+ }, [ createVNode("li", {
7865
+ class: "hover",
7866
+ onClick: () => scaleTranslateManager.onResetScaleTranslate()
7867
+ }, [ createVNode("svg", {
7868
+ t: "1725840994827",
7869
+ class: "icon",
7870
+ viewBox: "0 0 1024 1024",
7871
+ version: "1.1",
7872
+ xmlns: "http://www.w3.org/2000/svg",
7873
+ "p-id": "6051",
7874
+ width: "18",
7875
+ height: "18"
7876
+ }, [ createVNode("path", {
7877
+ d: "M322.794667 445.205333a34.133333 34.133333 0 0 1 2.218666 45.824l-2.218666 2.432a34.133333 34.133333 0 0 1-45.824 2.218667l-2.432-2.218667-149.333334-149.333333a34.133333 34.133333 0 0 1-2.218666-45.824l2.218666-2.432 149.333334-149.333333a34.133333 34.133333 0 0 1 50.474666 45.824l-2.218666 2.432-91.050667 91.050666L640 285.866667c160.234667 0 290.133333 129.898667 290.133333 290.133333 0 158.016-126.314667 286.506667-283.477333 290.048L640 866.133333H234.666667a34.133333 34.133333 0 0 1-3.114667-68.117333L234.666667 797.866667h405.333333c122.538667 0 221.866667-99.328 221.866667-221.866667 0-120.533333-96.106667-218.602667-215.850667-221.781333L640 354.133333l-408.256-0.021333 91.050667 91.093333z",
7878
+ "p-id": "6052"
7879
+ }, null) ]), createVNode("span", {
7880
+ style: "padding-left: 3px"
7881
+ }, [ t("next.labelimg.zoomRestore") ]) ]), createVNode("li", null, [ createVNode("span", null, [ createTextVNode("缩放比例") ]), createVNode("span", null, [ parseInt((100 * scaleTranslate.value.scale).toString()), createTextVNode("%") ]), createVNode("span", {
7882
+ style: "padding: 0 10px;"
7883
+ }, [ createTextVNode("偏移量") ]), createVNode("span", {
7884
+ style: "min-width: 120px; text-align: left;"
7885
+ }, [ createTextVNode("X: "), scaleTranslate.value.x, createTextVNode(", Y: "), scaleTranslate.value.y ]) ]), props.imageLength ? createVNode("li", null, [ createVNode("span", null, [ createTextVNode("第 "), props.imageIndex + 1, createTextVNode(" 张") ]), createVNode("em", {
7772
7886
  style: "padding: 0 5px;"
7773
7887
  }, [ createTextVNode("/") ]), createVNode("span", null, [ createTextVNode("共 "), props.imageLength, createTextVNode(" 张") ]) ]) : null, createVNode("li", {
7774
7888
  style: "margin-right: 30px;",
@@ -7862,7 +7976,7 @@ var Element = defineComponent({
7862
7976
  default: () => []
7863
7977
  }
7864
7978
  },
7865
- emits: [ "change", "save", "edit-polygon", "prev-click", "next-click" ],
7979
+ emits: [ "change", "save", "edit-polygon", "change-polygon", "prev-click", "next-click" ],
7866
7980
  setup(props, {emit: emit, slots: slots}) {
7867
7981
  const _config = deepClone(defaultConfig), _options = computed((() => {
7868
7982
  const cfg = unref(props.options);
@@ -7922,14 +8036,29 @@ var Element = defineComponent({
7922
8036
  isFullscreen.value = val, updateMainContentHeight(), nextTick((() => {
7923
8037
  canvasContextRef.value.rerenderImage();
7924
8038
  }));
7925
- }, onEditPlygonChange = plygon => {
7926
- currentNode.value.labels = plygon, emit("edit-polygon", plygon);
8039
+ }, onChangePolygon = node => {
8040
+ currentNode.value.labels = node, emit("change-polygon", node);
8041
+ }, onEditPlygon = node => {
8042
+ currentNode.value.labels = node, emit("edit-polygon", node);
7927
8043
  }, onToolHeaderSave = () => {
7928
8044
  onChangeActivateNode(activateNodeIndex.value) || ElMessage({
7929
8045
  type: "info",
7930
8046
  message: t("next.labelimg.labelNoUpdate")
7931
8047
  });
7932
- };
8048
+ }, scaleTranslate = ref({
8049
+ scale: 1,
8050
+ x: 0,
8051
+ y: 0
8052
+ });
8053
+ provide("scaleTranslateManager", {
8054
+ scaleTranslate: scaleTranslate,
8055
+ onChangeScaleTranslate: val => {
8056
+ scaleTranslate.value = val;
8057
+ },
8058
+ onResetScaleTranslate: () => {
8059
+ canvasContextRef.value.resetScaleOffset();
8060
+ }
8061
+ });
7933
8062
  return () => createVNode(Fragment, null, [ createVNode("div", {
7934
8063
  ref: layoutLabelRef,
7935
8064
  class: [ ns.b(), props.className, isFullscreen.value ? ns.b("fullscreen") : "" ],
@@ -7962,7 +8091,8 @@ var Element = defineComponent({
7962
8091
  }, [ createVNode(CanvasContext, {
7963
8092
  ref: canvasContextRef,
7964
8093
  rowInfo: currentNode.value,
7965
- onEditPolygon: onEditPlygonChange
8094
+ onEditPolygon: onEditPlygon,
8095
+ onChangePolygon: onChangePolygon
7966
8096
  }, null) ]) ]), createVNode("footer", {
7967
8097
  ref: footerRef,
7968
8098
  class: [ ns.b("footer") ]
@@ -8062,7 +8192,7 @@ const zoomDialog = app => {
8062
8192
  }));
8063
8193
  }
8064
8194
  });
8065
- }, version = "0.3.7", install = function(app) {
8195
+ }, version = "0.3.9", install = function(app) {
8066
8196
  Object.keys(components).forEach((key => {
8067
8197
  const component = components[key];
8068
8198
  app.component(component.name, component);
@@ -8072,7 +8202,7 @@ const zoomDialog = app => {
8072
8202
  };
8073
8203
 
8074
8204
  var index = {
8075
- version: "0.3.7",
8205
+ version: "0.3.9",
8076
8206
  install: install
8077
8207
  };
8078
8208