@ibiz-template/vue3-components 0.7.41-alpha.111 → 0.7.41-alpha.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/{index-BP7a4gcG.js → index-CkG9L_La.js} +4 -4
  2. package/dist/{index.es-Ur-QLCI4.js → index.es-BU8Fy5we.js} +1 -1
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/map-chart-nwkjjlMK.js +1 -0
  6. package/dist/map-chart-user-BqadFpkw.js +1 -0
  7. package/dist/{wang-editor-lUuJmqAh.js → wang-editor-9zdglekK.js} +1 -1
  8. package/dist/{xlsx-util-C1ySj_kQ.js → xlsx-util-DrUAhpzt.js} +1 -1
  9. package/es/common/map-chart/map-chart.mjs +2 -9
  10. package/es/common/map-chart-user/map-chart-user.mjs +3 -11
  11. package/es/control/calendar/calendar.mjs +17 -4
  12. package/es/control/calendar/components/calendar-user/calendar-user.mjs +4 -2
  13. package/es/control/calendar/components/calendar-user2/calendar-user2.mjs +4 -3
  14. package/es/control/drtab/drtab-control.util.mjs +1 -1
  15. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +1 -0
  16. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid2/repeater-grid2.mjs +1 -0
  17. package/es/control/grid/grid/grid-control.util.mjs +14 -1
  18. package/es/control/grid/grid/grid.mjs +5 -2
  19. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  20. package/es/control/map/map.mjs +33 -7
  21. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.css +1 -1
  22. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.mjs +2 -2
  23. package/es/editor/check-box-list/checkbox-list-editor.controller.mjs +11 -1
  24. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +9 -4
  25. package/es/editor/color-picker/ibiz-color-mpicker-default/ibiz-color-mpicker-default.mjs +5 -3
  26. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +2 -2
  27. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +2 -2
  28. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.mjs +2 -2
  29. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +2 -2
  30. package/es/editor/date-range-select/date-range-select-picker/date-range-select.mjs +18 -16
  31. package/es/editor/dropdown-list/dropdown-list-editor.controller.mjs +15 -5
  32. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +19 -4
  33. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.mjs +17 -1
  34. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +19 -4
  35. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.mjs +24 -7
  36. package/es/editor/list-box/list-box-editor.controller.mjs +11 -0
  37. package/es/editor/list-box/list-box-picker-editor.controller.mjs +11 -0
  38. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.mjs +7 -0
  39. package/es/editor/radio-button-list/radio-button-list.controller.mjs +11 -1
  40. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  41. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  42. package/es/web-app/adaptive-screen-width.mjs +5 -5
  43. package/lib/common/map-chart/map-chart.cjs +1 -8
  44. package/lib/common/map-chart-user/map-chart-user.cjs +2 -10
  45. package/lib/control/calendar/calendar.cjs +16 -3
  46. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +4 -2
  47. package/lib/control/calendar/components/calendar-user2/calendar-user2.cjs +4 -3
  48. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  49. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +1 -0
  50. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid2/repeater-grid2.cjs +1 -0
  51. package/lib/control/grid/grid/grid-control.util.cjs +14 -1
  52. package/lib/control/grid/grid/grid.cjs +5 -2
  53. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  54. package/lib/control/map/map.cjs +32 -6
  55. package/lib/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.cjs +2 -2
  56. package/lib/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.css +1 -1
  57. package/lib/editor/check-box-list/checkbox-list-editor.controller.cjs +11 -1
  58. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +9 -4
  59. package/lib/editor/color-picker/ibiz-color-mpicker-default/ibiz-color-mpicker-default.cjs +5 -3
  60. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +2 -2
  61. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +2 -2
  62. package/lib/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.cjs +2 -2
  63. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +2 -2
  64. package/lib/editor/date-range-select/date-range-select-picker/date-range-select.cjs +18 -16
  65. package/lib/editor/dropdown-list/dropdown-list-editor.controller.cjs +15 -5
  66. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +19 -4
  67. package/lib/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.cjs +17 -1
  68. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +19 -4
  69. package/lib/editor/list-box/ibiz-list-box/ibiz-list-box.cjs +24 -7
  70. package/lib/editor/list-box/list-box-editor.controller.cjs +11 -0
  71. package/lib/editor/list-box/list-box-picker-editor.controller.cjs +11 -0
  72. package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.cjs +7 -0
  73. package/lib/editor/radio-button-list/radio-button-list.controller.cjs +11 -1
  74. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  75. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  76. package/lib/web-app/adaptive-screen-width.cjs +5 -5
  77. package/package.json +7 -7
  78. package/src/common/map-chart/map-chart.tsx +3 -5
  79. package/src/common/map-chart-user/map-chart-user.tsx +3 -8
  80. package/src/control/calendar/calendar.tsx +27 -1
  81. package/src/control/calendar/components/calendar-user/calendar-user.tsx +8 -2
  82. package/src/control/calendar/components/calendar-user2/calendar-user2.tsx +7 -3
  83. package/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.tsx +1 -0
  84. package/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid2/repeater-grid2.tsx +1 -0
  85. package/src/control/grid/grid/grid-control.util.ts +20 -0
  86. package/src/control/grid/grid/grid.tsx +3 -0
  87. package/src/control/grid/grid-column/grid-field-column/grid-field-column.scss +3 -3
  88. package/src/control/map/map.tsx +44 -4
  89. package/src/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.scss +12 -1
  90. package/src/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.tsx +2 -1
  91. package/src/editor/check-box-list/checkbox-list-editor.controller.ts +11 -0
  92. package/src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx +28 -6
  93. package/src/editor/color-picker/ibiz-color-mpicker-default/ibiz-color-mpicker-default.tsx +10 -2
  94. package/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx +2 -1
  95. package/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx +2 -1
  96. package/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx +2 -1
  97. package/src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx +2 -5
  98. package/src/editor/date-range-select/date-range-select-picker/date-range-select.tsx +32 -15
  99. package/src/editor/dropdown-list/dropdown-list-editor.controller.ts +12 -2
  100. package/src/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.tsx +34 -4
  101. package/src/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.tsx +28 -1
  102. package/src/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.tsx +31 -4
  103. package/src/editor/list-box/ibiz-list-box/ibiz-list-box.tsx +45 -9
  104. package/src/editor/list-box/list-box-editor.controller.ts +11 -0
  105. package/src/editor/list-box/list-box-picker-editor.controller.ts +11 -0
  106. package/src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx +13 -0
  107. package/src/editor/radio-button-list/radio-button-list.controller.ts +11 -0
  108. package/src/panel-component/auth-userinfo/auth-userinfo.scss +1 -1
  109. package/src/web-app/adaptive-screen-width.ts +12 -6
  110. package/dist/map-chart-DbBbP4qh.js +0 -1
  111. package/dist/map-chart-user-CfTAGaU5.js +0 -1
  112. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.113_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.117_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  113. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.113_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.117_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -36,6 +36,7 @@ import './ibiz-list-box.scss';
36
36
  * @editorparams {name:allitems,parameterType:boolean,defaultvalue:false,description:列表框是否启用全部项}
37
37
  * @editorparams {name:itemstext,parameterType:string,defaultvalue:'全部',description:列表框全部项文本}
38
38
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
39
+ * @editorparams {name:autoselectfirstoption,parameterType:boolean,defaultvalue:false,description:编辑器无值时,自动选中第一个数据}
39
40
  * @ignoreprops autoFocus | overflowMode
40
41
  * @ignoreemits blur | focus | enter | infoTextChange
41
42
  */
@@ -124,9 +125,39 @@ export const IBizListBox = defineComponent({
124
125
 
125
126
  const editorType = editorModel.editorType;
126
127
 
128
+ // 值分隔符
129
+ const valueSeparator = codeList?.valueSeparator || ',';
130
+
127
131
  // 代码表数据(LISTBOX) or AC请求数据(LISTBOXPICKUP)
128
132
  const items = ref<readonly IData[]>([]);
129
133
 
134
+ /**
135
+ * @description 自动选择第一条数据
136
+ * @returns {*} {void}
137
+ */
138
+ const autoSelectFirstOption = (): void => {
139
+ const item = items.value[0];
140
+ if (!c.autoSelectFirstOption || props.value || !item) return;
141
+ let value: string | undefined | string[];
142
+ if (multiple) {
143
+ const selections = (c as ListBoxEditorController).allItems
144
+ ? items.value
145
+ .filter(
146
+ _item =>
147
+ _item.value !== (c as ListBoxEditorController).allItemsValue,
148
+ )
149
+ .map(_item => _item.value)
150
+ : [item.value];
151
+ value =
152
+ c.model.valueType === 'SIMPLES'
153
+ ? selections
154
+ : selections.join(valueSeparator);
155
+ } else {
156
+ value = item.value;
157
+ }
158
+ emit('change', value, undefined, true);
159
+ };
160
+
130
161
  // 更新列表框选项
131
162
  const loadListBoxItems = async () => {
132
163
  if (Object.is('LISTBOX', editorType)) {
@@ -134,9 +165,10 @@ export const IBizListBox = defineComponent({
134
165
  controller.loadCodeList(props.data).then(_codeList => {
135
166
  if (multiple) {
136
167
  items.value = controller.handleCodeListAllItems(_codeList);
137
- return;
168
+ } else {
169
+ items.value = _codeList;
138
170
  }
139
- items.value = _codeList;
171
+ autoSelectFirstOption();
140
172
  });
141
173
  } else if (Object.is('LISTBOXPICKUP', editorType)) {
142
174
  const controller = c as ListBoxPickerEditorController;
@@ -147,12 +179,22 @@ export const IBizListBox = defineComponent({
147
179
  value: item[controller.keyName],
148
180
  text: item[controller.textName],
149
181
  }));
182
+ autoSelectFirstOption();
150
183
  }
151
184
  }
152
185
  }
153
186
  };
154
187
 
155
- loadListBoxItems();
188
+ watch(
189
+ () => props.data,
190
+ () => {
191
+ loadListBoxItems();
192
+ },
193
+ {
194
+ immediate: true,
195
+ deep: true,
196
+ },
197
+ );
156
198
 
157
199
  const fn = (data: CodeListItem[] | undefined) => {
158
200
  if (data) {
@@ -185,12 +227,6 @@ export const IBizListBox = defineComponent({
185
227
  c.model.valueType,
186
228
  );
187
229
 
188
- // 值分隔符
189
- let valueSeparator = ',';
190
- if (codeList && codeList.valueSeparator) {
191
- valueSeparator = codeList.valueSeparator;
192
- }
193
-
194
230
  const { getSelection, getSelectionValue } = useCodeListSelection(
195
231
  Object.is('LISTBOX', editorType)
196
232
  ? (c as ListBoxEditorController).allItemsValue
@@ -16,11 +16,22 @@ export class ListBoxEditorController extends CodeListEditorController<IListBox>
16
16
  */
17
17
  codeList: IAppCodeList | undefined = undefined;
18
18
 
19
+ /**
20
+ * @description 自动选中第一个
21
+ * @memberof ListBoxEditorController
22
+ */
23
+ public autoSelectFirstOption = false;
24
+
19
25
  protected async onInit(): Promise<void> {
20
26
  super.onInit();
21
27
  if (this.model.appCodeListId) {
22
28
  const app = await ibiz.hub.getApp(this.context.srfappid);
23
29
  this.codeList = app.codeList.getCodeList(this.model.appCodeListId);
24
30
  }
31
+ if (this.editorParams?.autoselectfirstoption) {
32
+ this.autoSelectFirstOption = this.toBoolean(
33
+ this.editorParams.autoselectfirstoption,
34
+ );
35
+ }
25
36
  }
26
37
  }
@@ -48,8 +48,19 @@ export class ListBoxPickerEditorController extends EditorController<IListBoxPick
48
48
  */
49
49
  acItemProvider?: IAcItemProvider;
50
50
 
51
+ /**
52
+ * @description 自动选中第一个
53
+ * @memberof ListBoxPickerEditorController
54
+ */
55
+ public autoSelectFirstOption = false;
56
+
51
57
  protected async onInit(): Promise<void> {
52
58
  super.onInit();
59
+ if (this.editorParams?.autoselectfirstoption) {
60
+ this.autoSelectFirstOption = this.toBoolean(
61
+ this.editorParams.autoselectfirstoption,
62
+ );
63
+ }
53
64
  if (this.model.editorType === 'LISTBOXPICKUP') {
54
65
  if (this.model.appDEDataSetId) {
55
66
  this.interfaceName = this.model.appDEDataSetId;
@@ -25,6 +25,7 @@ import './ibiz-radio.scss';
25
25
  * @editorparams {name:isbtnroundcorner,parameterType:boolean,defaultvalue:false,description:设置按钮是否显示圆角}
26
26
  * @editorparams {name:itemwidth,parameterType:number,description:设置单选框列表的项宽度}
27
27
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
28
+ * @editorparams {name:autoselectfirstoption,parameterType:boolean,defaultvalue:false,description:编辑器无值时,自动选中第一个数据}
28
29
  * @ignoreprops autoFocus | overflowMode
29
30
  * @ignoreemits blur | focus | enter
30
31
  */
@@ -117,11 +118,23 @@ export const IBizRadio = defineComponent({
117
118
 
118
119
  // 代码表
119
120
  const items = ref<readonly IData[]>([]);
121
+
122
+ /**
123
+ * @description 自动选择第一条数据
124
+ * @returns {*} {void}
125
+ */
126
+ const autoSelectFirstOption = (): void => {
127
+ const item = items.value[0];
128
+ if (!c.autoSelectFirstOption || props.value || !item) return;
129
+ emit('change', item.value, undefined, true);
130
+ };
131
+
120
132
  watch(
121
133
  () => props.data,
122
134
  newVal => {
123
135
  c.loadCodeList(newVal).then(_codeList => {
124
136
  items.value = _codeList;
137
+ autoSelectFirstOption();
125
138
  });
126
139
  },
127
140
  {
@@ -16,6 +16,12 @@ export class RadioButtonListEditorController extends CodeListEditorController<IR
16
16
  */
17
17
  rowNumber: number | undefined = undefined;
18
18
 
19
+ /**
20
+ * @description 自动选中第一个
21
+ * @memberof RadioButtonListEditorController
22
+ */
23
+ public autoSelectFirstOption = false;
24
+
19
25
  protected async onInit(): Promise<void> {
20
26
  super.onInit();
21
27
  if (this.editorParams?.rowNumber) {
@@ -24,5 +30,10 @@ export class RadioButtonListEditorController extends CodeListEditorController<IR
24
30
  if (this.editorParams?.rownumber) {
25
31
  this.rowNumber = Number(this.editorParams.rownumber);
26
32
  }
33
+ if (this.editorParams?.autoselectfirstoption) {
34
+ this.autoSelectFirstOption = this.toBoolean(
35
+ this.editorParams.autoselectfirstoption,
36
+ );
37
+ }
27
38
  }
28
39
  }
@@ -63,7 +63,7 @@ $user-info-name: (
63
63
 
64
64
  @include when(collapse){
65
65
  .el-dropdown{
66
- padding: 0 getCssVar(user-info, collapse-padding);
66
+ padding: getCssVar(user-info, collapse-padding);
67
67
  }
68
68
  @include b(user-info-avatar) {
69
69
  max-width: getCssVar(user-info-avatar, max-width);
@@ -74,12 +74,12 @@ const fixContextMenuPosition = (el: HTMLElement) => {
74
74
  };
75
75
 
76
76
  /**
77
- * 修正 ibiz-form-item-container__popper 的 transform 定位,抵消 body zoom 造成的偏移。
77
+ * 修正 Popper 的 transform 定位,抵消 body zoom 造成的偏移。
78
78
  * 将 transform: translate(x, y) 或 translate3d(x, y, z) 中的数值按 scale 反向缩放,非 px 单位保持不变。
79
79
  * @param el
80
80
  * @returns
81
81
  */
82
- const fixFormItemContainerPopperTransform = (el: HTMLElement) => {
82
+ const fixPopperTransform = (el: HTMLElement) => {
83
83
  if (currentScale === 1) return;
84
84
  const transform = el.style.transform;
85
85
  if (!transform) return;
@@ -125,8 +125,11 @@ const startObservePoppers = () => {
125
125
  const el = node as HTMLElement;
126
126
  if (el.classList?.contains('el-popper')) {
127
127
  fixPopperInset(el);
128
- if (el.classList.contains('ibiz-form-item-container__popper')) {
129
- fixFormItemContainerPopperTransform(el);
128
+ if (
129
+ el.classList.contains('ibiz-form-item-container__popper') ||
130
+ el.classList.contains('ibiz-form-mdctrl-popper')
131
+ ) {
132
+ fixPopperTransform(el);
130
133
  }
131
134
  } else if (el.classList?.contains('mx-context-menu')) {
132
135
  fixContextMenuPosition(el);
@@ -139,8 +142,11 @@ const startObservePoppers = () => {
139
142
  const el = mutation.target as HTMLElement;
140
143
  if (el.classList?.contains('el-popper')) {
141
144
  fixPopperInset(el);
142
- if (el.classList.contains('ibiz-form-item-container__popper')) {
143
- fixFormItemContainerPopperTransform(el);
145
+ if (
146
+ el.classList.contains('ibiz-form-item-container__popper') ||
147
+ el.classList.contains('ibiz-form-mdctrl-popper')
148
+ ) {
149
+ fixPopperTransform(el);
144
150
  }
145
151
  } else if (el.classList?.contains('mx-context-menu')) {
146
152
  fixContextMenuPosition(el);
@@ -1 +0,0 @@
1
- System.register(["vue","ramda","@ibiz-template/vue3-util","@ibiz-template/runtime","echarts"],function(e){"use strict";var t,a,o,r,i,n,s,l,c,p,u,d,m;return{setters:[function(e){t=e.ref,a=e.onMounted,o=e.onUnmounted,r=e.defineComponent,i=e.createVNode,n=e.computed},function(e){s=e.mergeDeepWithKey,l=e.isNil},function(e){c=e.useNamespace,p=e.useSemanticNode},function(e){u=e.MapController},function(e){d=e.init,m=e.registerMap}],execute:function(){const f={strAreaCode:!1,visualMap:{text:[ibiz.i18n.t("component.mapChart.high"),ibiz.i18n.t("component.mapChart.low")],min:0,max:100,rangeColor:["#90d1e7","#fff600","#ff5200"]},areaColor:"#87cefa",areaBorderColor:"#FFF",hoverAreaColor:"#fbdb2f",pointSymbol:"pin",jsonBaseUrl:"".concat(ibiz.env.assetsUrl,"/json/map"),defaultAreaCode:1e5};function y(e,r,i,n){const s=new Map,l=t(""),c=t([]);let p;const u=t();let f;const y=async e=>{if(s.has(e))return;const t=await async function(e,t){return(await ibiz.net.axios({url:"".concat(e,"/").concat(t,".json")})).data}(r.value.jsonBaseUrl,e);s.set(e,(e=>{const t={cityNames:{},noChild:1===e.features.length};return e.features.forEach(e=>{const{adcode:a,name:o}=e.properties;t.cityNames[a]=o}),t})(t)),m(e,t)},h=()=>{if(l.value){const e=i(l.value);p.setOption(e),p.resize()}},v=async(t,a=!1)=>{if(!a){const a=r.value.strAreaCode?"".concat(t):Number(t);await e.onMapChange(a)}const o="".concat(t);s.has(o)||await y(o),l.value=o,c.value.push(o),h()},b=()=>{null==p||p.resize()};return a(()=>{p=d(u.value),window.addEventListener("resize",b),u.value&&ResizeObserver&&(f=new ResizeObserver(()=>{b()}),f.observe(u.value)),p.on("click",e=>{if("series"===e.componentType){if("scatter"===e.seriesType)return void n("pointClick",e.data);"map"===e.seriesType&&(e.data&&n("areaClick",e.data),e.name!==l.value&&v(e.name))}}),p.on("mouseover",function(e){if("series"===e.componentType&&"scatter"===e.seriesType){const t=e.dataIndex,a=p.getOption(),o=a.series[e.seriesIndex].data,r=a.series[e.seriesIndex].symbolSize;o[t].symbolSize=r+10,p.setOption(a)}}),p.on("mouseout",function(e){if("series"===e.componentType&&"scatter"===e.seriesType){const t=e.dataIndex,a=p.getOption();delete a.series[e.seriesIndex].data[t].symbolSize,p.setOption(a)}})}),o(()=>{window.removeEventListener("resize",b),null==f||f.disconnect()}),{chartRef:u,historyNames:c,currentName:l,changeMap:v,getCityName:e=>{const t=s.get(l.value);if(t)return t.cityNames[e]},goBack:()=>{if(c.value.length>1){c.value.pop();const e=c.value.pop();v(e)}},refresh:h}}const h=r({name:"IBizMapChart",props:{areaData:{type:Array},pointData:{type:Array},options:{type:Object,default:()=>({})},controller:{type:u,required:!0}},setup(e,{emit:t}){const o=c("map-chart"),{semanticClass:r,semanticStyle:i}=p(e.controller),u=n(()=>s((e,t,a)=>l(a)?t:a,f,e.options)),d=(t,a)=>"area"===a&&e.areaData?e.areaData.find(e=>e._id===t):"point"===a&&e.pointData?e.pointData.find(e=>e._id===t):void 0,{chartRef:m,historyNames:h,changeMap:v,getCityName:b,goBack:C}=y(e.controller,u,t=>{const{visualMap:a,pointSymbol:o,areaColor:r,hoverAreaColor:i,areaBorderColor:n}=u.value,s=e.areaData||[],l=e.pointData||[];return{geo:{map:t},tooltip:{trigger:"item",textStyle:{color:"#fff",fontSize:12},backgroundColor:"rgba(0, 0, 0, 0.47)",borderWidth:0,extraCssText:"backdrop-filter: blur(3px);"},visualMap:{min:a.min,max:a.max,text:a.text,realtime:!1,hoverLink:!1,inRange:{color:a.rangeColor}},series:[{type:"map",map:t,nameProperty:"adcodeStr",itemStyle:{areaColor:r,borderColor:n,borderWidth:2},emphasis:{itemStyle:{areaColor:i}},tooltip:{formatter:e=>{if(!e.data)return;const t=d(e.data._id,"area");return t?t._tooltip:void 0}},label:{show:!0,color:"#000000",fontSize:14,formatter:e=>b(e.name)},select:{disabled:!0},data:s.map(e=>({name:"".concat(e._areaCode),value:e._value,_id:e._id}))},{type:"scatter",coordinateSystem:"geo",symbol:o,symbolSize:20,visualMap:!1,itemStyle:{color:"#FF1D00"},label:{show:!0,color:"#000000",fontSize:14,textShadowBlur:0,formatter:e=>{const t=d(e.data._id,"point");return null==t?void 0:t._text},position:"left",offset:[10,-15]},tooltip:{formatter:e=>{const t=d(e.data._id,"point");return null==t?void 0:t._tooltip}},data:l.map(e=>({_id:e._id,symbol:e._symbol?"image://".concat(e._symbol):void 0,value:[Number(e._longitude),Number(e._latitude)],visualMap:!1}))}]}},(e,a)=>{switch(e){case"pointClick":t("pointClick",d(a._id,"point"));break;case"areaClick":t("areaClick",d(a._id,"area"))}});return a(()=>{v(u.value.defaultAreaCode,!0)}),{ns:o,chartRef:m,historyNames:h,semanticClass:r,semanticStyle:i,goBack:C}},render(){return i("div",{class:this.ns.b()},[i("div",{class:this.ns.e("chart"),ref:"chartRef"},null),this.historyNames.length>1&&i("div",{style:this.semanticStyle("goback"),class:[this.ns.e("goback"),this.semanticClass("goback")],onClick:()=>{this.goBack()}},[ibiz.i18n.t("app.return")])])}});e({IBizMapChart:h,default:h})}}});
@@ -1 +0,0 @@
1
- System.register(["vue","ramda","@ibiz-template/vue3-util","@ibiz-template/runtime","@ibiz-template/core","lodash-es","echarts"],function(e){"use strict";var t,a,o,r,n,s,l,i,c,u,d,m,p,v,f,b,h,y,C,g;return{setters:[function(e){t=e.ref,a=e.onMounted,o=e.onUnmounted,r=e.defineComponent,n=e.createVNode,s=e.resolveComponent,l=e.computed,i=e.onBeforeUnmount},function(e){c=e.mergeDeepLeft,u=e.mergeDeepWithKey,d=e.isNil},function(e){m=e.useNamespace,p=e.useSemanticNode},function(e){v=e.MapController,f=e.getAreaLevelByCode},function(e){b=e.listenJSEvent,h=e.NOOP},function(e){y=e.toNumber},function(e){C=e.init,g=e.registerMap}],execute:function(){const _={strAreaCode:!1,visualMap:{text:[ibiz.i18n.t("component.mapChart.high"),ibiz.i18n.t("component.mapChart.low")],min:0,max:100,rangeColor:["#90d1e7","#fff600","#ff5200"]},areaColor:"#87cefa",areaBorderColor:"#FFF",hoverAreaColor:"#fbdb2f",pointSymbol:"pin",jsonBaseUrl:"".concat(ibiz.env.assetsUrl,"/json/map"),defaultAreaCode:1e5,bottom:20,top:20},N=e=>{const t=[];return e._color&&t.push("color:".concat(e._color)),e._bgcolor&&t.push("background:".concat(e._bgcolor)),e._borderColor&&t.push("border-color:".concat(e._borderColor)),e._borderWidth&&t.push("border-width:".concat(e._borderWidth,"px")),e._borderWidth&&e._borderColor&&t.push("border-style:solid"),t.join(";")},z=(e,t,a=[],o=[])=>"area"===t?o.find(t=>t._id===e):"point"===t?a.find(t=>t._id===e):void 0,S=e=>{let t=e;const a=window.getComputedStyle(document.documentElement);return a&&(t=a.getPropertyValue(e)||t),t},x=e=>{const{pointSymbol:t}=e,a=m("map-chart-user"),o=S(a.cssVarName("color-danger")),r=S(a.cssVarName("font-size-header-4"));return{type:"scatter",coordinateSystem:"geo",symbol:t,symbolSize:Number(r.slice(0,2)),visualMap:!1,itemStyle:{color:o}}},w=(e,t)=>{const a={},o=m("map-chart-user"),r=S(o.cssVarName("color-text-1")),n=S(o.cssVarName("font-size-regular"));return a.label={show:!0,color:r,fontSize:Number(n.slice(0,2)),textShadowBlur:0,formatter:a=>{if(!a.data)return;const o=z(a.data._id,"point",e,t);return null==o?void 0:o._text},position:"left",offset:[10,-15]},a.tooltip={formatter:a=>{if(!a.data)return;const r=z(a.data._id,"point",e,t);if(!r)return;const{_deData:n}=r;let s=n.srfmajortext;r._value&&(s="".concat(n.srfmajortext,": ").concat(r._value)),r._tooltip&&(s=r._tooltip);const l=N(r);return'<div style="'.concat(l,'" class="').concat(r._className," ").concat(o.e("popper"),'">').concat(s,"</div>")},padding:0},a.data=e.map(e=>{let t;return e._symbol&&(t="image://".concat(e._symbol)),{_id:e._id,symbol:t,value:[Number(e._longitude),Number(e._latitude)],visualMap:!1}}),a},D=e=>{const{areaColor:t,areaBorderColor:a,hoverAreaColor:o}=e;return{type:"map",nameProperty:"adcodeStr",itemStyle:{areaColor:t,borderColor:a,borderWidth:2},emphasis:{itemStyle:{areaColor:o}}}},k=(e,t,a,o=[])=>{const r={},n=m("map-chart-user"),s=S(n.cssVarName("color-text-1")),l=S(n.cssVarName("font-size-regular"));return r.map=e,r.label={show:!0,color:s,fontSize:Number(l.slice(0,2)),formatter:e=>o.cityNames[e.name]},r.tooltip={formatter:e=>{if(!e.data)return;const o=z(e.data._id,"area",t,a);if(!o||!o._tooltip&&!o._value)return;const{_deData:r}=o;let s=r.srfmajortext;o._value&&(s="".concat(r.srfmajortext,": ").concat(o._value)),o._tooltip&&(s=o._tooltip);const l=N(o);return'<div style="'.concat(l,'" class="').concat(o._className," ").concat(n.e("popper"),'">').concat(s,"</div>")},padding:0},r.data=a.map(e=>({name:"".concat(e._areaCode),value:e._value,_id:e._id,deData:e})),r.select={disabled:!0},r};function M(e,r,n){const s=new Map,l=t(""),i=t([]),c=new Map,u=t(!1);let d;const m=t();let p;const v=async t=>{e.options=t,await e.evt.emit("onBeforeUpdate",{data:t}),d.setOption(t,!0)},f=async e=>{if(s.has(e))return;const t=await async function(e,t){return(await ibiz.net.axios({url:"".concat(e,"/").concat(t,".json")})).data}(r.value.jsonBaseUrl,e);s.set(e,(e=>{const t={cityNames:{},noChild:1===e.features.length};return e.features.forEach(e=>{const{adcode:a,name:o,level:r}=e.properties;t.cityNames[a]=o,c.set(a,r)}),t})(t)),g(e,t)},h=()=>s.get(l.value),_=()=>{if(l.value){const e=n(l.value);v(e),d.resize()}},N=async(t,a,o=!1)=>{const r="".concat(t);if(s.has(r)||await f(r),o){const t=c.get(y(a))||"";e.state.areaLevel=t}else await e.onMapChange(a);l.value=r,e.state.mapInfo=h(),i.value.push(r),_()},S=b(window,"resize",()=>{d&&d.resize()});return a(()=>{d=C(m.value),e.chart=d,m.value&&ResizeObserver&&(p=new ResizeObserver(()=>{null==d||d.resize()}),p.observe(m.value)),d.on("click",t=>{if("series"===t.componentType){if("scatter"===t.seriesType){if(!t.data)return;u.value=!0;const{pointData:a,areaData:o}=e.state,r=z(t.data._id,"point",a,o);return r&&e.onPointClick(r),void(u.value=!1)}if("map"===t.seriesType){u.value=!0;const a=r.value.strAreaCode?"".concat(t.name):Number(t.name),o=c.get(y(a))||"",{pointData:n,areaData:s,enabledDrillDown:i,mdctrlActiveMode:d}=e.state;if(t.data){const r=z(t.data._id,"area",n,s);r&&e.onAreaClick(r,a,o)}t.name!==l.value&&i&&2!==d&&(y(a)>y(e.state.areaCode)&&e.evt.emit("onDrillDown",{data:{areaCode:a}}),e.state.areaCode=a,e.state.areaLevel=o||"",N(t.name,a)),u.value=!1}}}),d.on("dblclick",t=>{const{enabledDrillDown:a,mdctrlActiveMode:o}=e.state;if("series"===t.componentType&&"map"===t.seriesType&&2===o&&a){u.value=!0;const a=r.value.strAreaCode?"".concat(t.name):Number(t.name),o=c.get(y(a))||"";y(a)>y(e.state.areaCode)&&e.evt.emit("onDrillDown",{data:{areaCode:a}}),e.state.areaCode=a,e.state.areaLevel=o,t.name!==l.value&&N(t.name,a),u.value=!1}}),d.on("mouseover",function(t){if(e.evt.emit("onMouseOver",{data:t}),"series"===t.componentType&&"scatter"===t.seriesType){const e=t.dataIndex,a=d.getOption(),o=a.series[t.seriesIndex].data,r=a.series[t.seriesIndex].symbolSize;o[e].symbolSize=r+10,v(a)}}),d.on("mouseout",function(t){if(e.evt.emit("onMouseOut",{data:t}),"series"===t.componentType&&"scatter"===t.seriesType){const e=t.dataIndex,a=d.getOption();delete a.series[t.seriesIndex].data[e].symbolSize,v(a)}})}),o(()=>{S(),null==p||p.disconnect()}),{chartRef:m,historyNames:i,currentName:l,processing:u,areaLevelMap:c,changeMap:N,getCityInfo:h,goBack:async()=>{if(i.value.length>1){i.value.pop();const t=i.value.pop(),a=r.value.strAreaCode?"".concat(t):Number(t),o=c.get(y(a))||"";e.state.areaCode=a,e.state.areaLevel=o,N(t,a)}},refresh:_}}const A=r({name:"IBizMapChartUser",props:{areaData:{type:Array},pointData:{type:Array},options:{type:Object,default:()=>({})},controller:{type:v,required:!0}},setup(e){const o=m("map-chart-user"),{semanticClass:r,semanticStyle:n}=p(e.controller),s=e.controller;let v=_;const C=t(),g=t(!1);if(s.controlParams.defaultopts){const e=JSON.parse(s.controlParams.defaultopts);v=c(e,v)}const N=l(()=>u((e,t,a)=>d(a)?t:a,v,e.options));let z=h;const{chartRef:A,historyNames:B,processing:F,areaLevelMap:L,changeMap:O,getCityInfo:U,goBack:V}=M(e.controller,N,t=>{const a=e.areaData||[],o=e.pointData||[],r=(()=>{const e=m("map-chart-user"),t=S(e.cssVarName("color-text-1")),a=S(e.cssVarName("font-size-regular")),o=S(e.cssVarName("color-bg-0"));return{trigger:"item",textStyle:{color:t,fontSize:Number(a.slice(0,2))},backgroundColor:o,borderWidth:0,extraCssText:"backdrop-filter: blur(3px);"}})(),n=(e=>{const{visualMap:t}=e;return{min:t.min,max:t.max,text:t.text,realtime:!1,hoverLink:!1,inRange:{color:t.rangeColor}}})(N.value),s=U(),l={...x(N.value),...w(o,a)},{top:i,bottom:c}=N.value;return{geo:{map:t,top:i,bottom:c},tooltip:r,visualMap:n,series:[{top:i,bottom:c,...D(N.value),...k(t,o,a,s)},l]}});a(()=>{const e=N.value.defaultAreaCode,t=s.state.strAreaCode?"".concat(e):Number(e);s.state.areaCode=t,s.state.areaLevel=f(t.toString()),O(e,t,!0),s.evt.on("onDrillDown",async e=>{if(!F.value){const{data:t}=e,a=t.areaCode,o=s.state.strAreaCode?"".concat(a):Number(a),r=L.get(y(o))||"";s.state.areaCode=o,s.state.areaLevel=r,await O(a,a)}}),s.evt.on("onBackClick",()=>{F.value||V()}),z=b(window,"resize",()=>{g.value&&(g.value=ibiz.fullscreenUtil.isFullScreen)})}),i(()=>{z!==h&&z()});return{c:s,ns:o,mapRef:C,isFull:g,chartRef:A,historyNames:B,semanticClass:r,semanticStyle:n,onBack:async()=>{F.value=!0,await s.evt.emit("onBackClick",void 0),V(),F.value=!1},toggleFullScreen:()=>{C.value&&(g.value?ibiz.fullscreenUtil.closeElementFullscreen():ibiz.fullscreenUtil.openElementFullscreen(C.value),g.value=!g.value)}}},render(){const{enabledFullScreen:e}=this.c.state;return n("div",{class:this.ns.b(),ref:"mapRef"},[e?n(s("el-button"),{type:"info",onClick:this.toggleFullScreen,style:this.semanticStyle("fullscreen"),class:[this.ns.e("fullscreen"),this.semanticClass("fullscreen")],title:this.isFull?ibiz.i18n.t("app.cancelFullscreen"):ibiz.i18n.t("app.fullscreen")},{default:()=>[n("ion-icon",{name:this.isFull?"contract-outline":"expand-outline"},null)]}):null,n("div",{class:this.ns.e("chart"),ref:"chartRef"},null),this.historyNames.length>1&&n("div",{style:this.semanticStyle("goback"),class:[this.ns.e("goback"),this.semanticClass("goback")],onClick:()=>{this.onBack()}},[ibiz.i18n.t("app.return")])])}});e({IBizMapChartUser:A,default:A})}}});