cnhis-design-vue 3.1.14-beta.11.1 → 3.1.14-beta.13

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 (146) hide show
  1. package/es/_virtual/plugin-vue_export-helper.js +9 -0
  2. package/es/packages/big-table/index.js +1 -2
  3. package/es/packages/big-table/src/BigTable.js +5 -3
  4. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +8 -11
  5. package/es/packages/big-table/src/components/NoData.js +73 -3
  6. package/es/packages/big-table/src/components/edit-form/edit-separate.js +89 -3
  7. package/es/packages/big-table/src/components/input-button.js +34 -3
  8. package/es/packages/big-table/src/components/separate.js +29 -3
  9. package/es/packages/big-table/src/hooks/useEdit.js +2 -3
  10. package/es/packages/bpmn-workflow/index.js +1 -2
  11. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +253 -3
  12. package/es/packages/button-print/index.js +1 -2
  13. package/es/packages/button-print/src/ButtonPrint.js +5 -3
  14. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +6 -7
  15. package/es/packages/button-print/src/components/IdentityVerification.js +129 -3
  16. package/es/packages/chunk-upload/index.js +1 -1
  17. package/es/packages/chunk-upload/src/chunk-upload-new.js +474 -3
  18. package/es/packages/chunk-upload/src/vod-chunk-upload/index.js +2 -3
  19. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.js +328 -3
  20. package/es/packages/chunk-upload/src/vod-upload-modal.js +3 -4
  21. package/es/packages/drag-layout/index.js +1 -2
  22. package/es/packages/drag-layout/src/DragFormLeftItem.js +123 -3
  23. package/es/packages/drag-layout/src/DragFormRightItem.js +268 -3
  24. package/es/packages/drag-layout/src/DragLayout.js +658 -3
  25. package/es/packages/fabric-chart/index.js +1 -2
  26. package/es/packages/fabric-chart/src/FabricChart.js +316 -3
  27. package/es/packages/fabric-chart/src/components/PopupTip.js +33 -3
  28. package/es/packages/field-set/index.js +1 -2
  29. package/es/packages/field-set/src/FieldSet.js +346 -3
  30. package/es/packages/form-render/index.d.ts +0 -1
  31. package/es/packages/form-render/index.js +2 -3
  32. package/es/packages/form-render/src/FormRender.js +188 -3
  33. package/es/packages/form-render/src/FormRender.vue.d.ts +0 -1
  34. package/es/packages/form-render/src/components/renderer/combination.js +2 -3
  35. package/es/packages/form-table/index.js +1 -2
  36. package/es/packages/form-table/src/FormTable.js +475 -3
  37. package/es/packages/form-table/src/components/index.js +28 -42
  38. package/es/packages/form-table/src/components/table-age.js +232 -3
  39. package/es/packages/form-table/src/components/table-date-picker.js +176 -3
  40. package/es/packages/form-table/src/components/table-digital.js +138 -3
  41. package/es/packages/form-table/src/components/table-input-password.js +138 -3
  42. package/es/packages/form-table/src/components/table-input.js +124 -3
  43. package/es/packages/form-table/src/components/table-month-picker.js +100 -3
  44. package/es/packages/form-table/src/components/table-search-more.js +5 -3
  45. package/es/packages/form-table/src/components/table-search-more.vue_vue_type_script_setup_true_lang.js +2 -2
  46. package/es/packages/form-table/src/components/table-search.js +5 -3
  47. package/es/packages/form-table/src/components/table-search.vue_vue_type_script_setup_true_lang.js +2 -2
  48. package/es/packages/form-table/src/components/table-select-multiple.js +161 -3
  49. package/es/packages/form-table/src/components/table-select.js +156 -3
  50. package/es/packages/form-table/src/components/table-textarea.js +154 -3
  51. package/es/packages/form-table/src/components/table-time-picker.js +146 -3
  52. package/es/packages/form-table/src/components/table-tree-select.js +282 -3
  53. package/es/packages/form-table/src/components/text-over-tooltip.js +63 -3
  54. package/es/packages/info-header/index.js +1 -2
  55. package/es/packages/info-header/src/HiddenContent.js +65 -3
  56. package/es/packages/info-header/src/InfoEllipsis.js +42 -3
  57. package/es/packages/info-header/src/InfoHeader.js +229 -3
  58. package/es/packages/map/index.js +1 -2
  59. package/es/packages/map/src/Map.js +337 -3
  60. package/es/packages/scale-view/index.js +1 -2
  61. package/es/packages/scale-view/src/ScaleView.js +418 -3
  62. package/es/packages/scale-view/src/components/AnswerParse.js +79 -3
  63. package/es/packages/scale-view/src/components/EvaluateCountdown.js +108 -3
  64. package/es/packages/scale-view/src/components/EvaluatePage.js +140 -3
  65. package/es/packages/scale-view/src/components/LoadingCom.js +17 -5
  66. package/es/packages/scale-view/src/components/NoData.js +73 -3
  67. package/es/packages/scale-view/src/components/formitem/r-cascader.js +3 -3
  68. package/es/packages/scale-view/src/components/formitem/r-select.js +3 -3
  69. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.js +78 -3
  70. package/es/packages/select-label/index.js +3 -5
  71. package/es/packages/select-label/src/LabelFormContent.js +441 -3
  72. package/es/packages/select-label/src/SelectLabel.js +5 -3
  73. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.js +5 -21
  74. package/es/packages/select-label/src/components/label-classify.js +128 -3
  75. package/es/packages/select-person/index.js +1 -2
  76. package/es/packages/select-person/src/SearchTree.js +5 -3
  77. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +2 -2
  78. package/es/packages/select-person/src/SelectPerson.js +5 -3
  79. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +4 -5
  80. package/es/packages/shortcut-provider/index.js +1 -2
  81. package/es/packages/shortcut-provider/src/ShortcutProvider.js +33 -3
  82. package/es/packages/shortcut-setter/index.js +1 -2
  83. package/es/packages/shortcut-setter/src/ShortcutSetter.js +38 -3
  84. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +126 -3
  85. package/es/packages/steps-wheel/index.js +1 -2
  86. package/es/packages/steps-wheel/src/StepsWheel.js +264 -3
  87. package/es/packages/time-line/index.js +1 -2
  88. package/es/packages/time-line/src/TimeLine.js +69 -3
  89. package/es/src/components/SelectPage/SelectPage.js +62 -3
  90. package/es/src/components/SelectPage/index.js +2 -3
  91. package/es/src/components/SvgIcon/SvgIcon.js +35 -3
  92. package/es/src/components/SvgIcon/index.js +2 -3
  93. package/es/src/components/TextOverTooltip/TextOverTooltip.js +75 -3
  94. package/es/src/components/TextOverTooltip/index.js +2 -3
  95. package/es/src/components/player-vod/index.js +13 -3
  96. package/package.json +153 -153
  97. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  98. package/es/packages/big-table/src/components/edit-form/edit-separate.vue_vue_type_script_setup_true_lang.js +0 -89
  99. package/es/packages/big-table/src/components/input-button.vue_vue_type_script_setup_true_lang.js +0 -33
  100. package/es/packages/big-table/src/components/separate.vue_vue_type_script_setup_true_lang.js +0 -28
  101. package/es/packages/bpmn-workflow/src/BpmnWorkflow.vue_vue_type_script_setup_true_lang.js +0 -252
  102. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.js +0 -128
  103. package/es/packages/chunk-upload/src/chunk-upload-new.vue_vue_type_script_setup_true_lang.js +0 -473
  104. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue_vue_type_script_setup_true_lang.js +0 -327
  105. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.js +0 -122
  106. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.js +0 -267
  107. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.js +0 -659
  108. package/es/packages/fabric-chart/src/FabricChart.vue_vue_type_script_setup_true_lang.js +0 -316
  109. package/es/packages/fabric-chart/src/components/PopupTip.vue_vue_type_script_setup_true_lang.js +0 -32
  110. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.js +0 -345
  111. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.js +0 -187
  112. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.js +0 -474
  113. package/es/packages/form-table/src/components/table-age.vue_vue_type_script_setup_true_lang.js +0 -232
  114. package/es/packages/form-table/src/components/table-date-picker.vue_vue_type_script_setup_true_lang.js +0 -175
  115. package/es/packages/form-table/src/components/table-digital.vue_vue_type_script_setup_true_lang.js +0 -138
  116. package/es/packages/form-table/src/components/table-input-password.vue_vue_type_script_setup_true_lang.js +0 -138
  117. package/es/packages/form-table/src/components/table-input.vue_vue_type_script_setup_true_lang.js +0 -124
  118. package/es/packages/form-table/src/components/table-month-picker.vue_vue_type_script_setup_true_lang.js +0 -99
  119. package/es/packages/form-table/src/components/table-select-multiple.vue_vue_type_script_setup_true_lang.js +0 -160
  120. package/es/packages/form-table/src/components/table-select.vue_vue_type_script_setup_true_lang.js +0 -155
  121. package/es/packages/form-table/src/components/table-textarea.vue_vue_type_script_setup_true_lang.js +0 -153
  122. package/es/packages/form-table/src/components/table-time-picker.vue_vue_type_script_setup_true_lang.js +0 -145
  123. package/es/packages/form-table/src/components/table-tree-select.vue_vue_type_script_setup_true_lang.js +0 -281
  124. package/es/packages/form-table/src/components/text-over-tooltip.vue_vue_type_script_setup_true_lang.js +0 -62
  125. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.js +0 -64
  126. package/es/packages/info-header/src/InfoEllipsis.vue_vue_type_script_setup_true_lang.js +0 -41
  127. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.js +0 -229
  128. package/es/packages/map/src/Map.vue_vue_type_script_setup_true_lang.js +0 -336
  129. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.js +0 -422
  130. package/es/packages/scale-view/src/components/AnswerParse.vue_vue_type_script_setup_true_lang.js +0 -78
  131. package/es/packages/scale-view/src/components/EvaluateCountdown.vue_vue_type_script_setup_true_lang.js +0 -107
  132. package/es/packages/scale-view/src/components/EvaluatePage.vue_vue_type_script_setup_true_lang.js +0 -139
  133. package/es/packages/scale-view/src/components/LoadingCom.vue_vue_type_template_id_413329b0_lang.js +0 -16
  134. package/es/packages/scale-view/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  135. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -77
  136. package/es/packages/select-label/src/LabelFormContent.vue_vue_type_script_setup_true_lang.js +0 -441
  137. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.js +0 -127
  138. package/es/packages/shortcut-provider/src/ShortcutProvider.vue_vue_type_script_setup_true_lang.js +0 -32
  139. package/es/packages/shortcut-setter/src/ShortcutSetter.vue_vue_type_script_setup_true_lang.js +0 -38
  140. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue_vue_type_script_setup_true_lang.js +0 -125
  141. package/es/packages/steps-wheel/src/StepsWheel.vue_vue_type_script_setup_true_lang.js +0 -263
  142. package/es/packages/time-line/src/TimeLine.vue_vue_type_script_setup_true_lang.js +0 -68
  143. package/es/src/components/SelectPage/SelectPage.vue_vue_type_script_setup_true_lang.js +0 -61
  144. package/es/src/components/SvgIcon/SvgIcon.vue_vue_type_script_setup_true_lang.js +0 -34
  145. package/es/src/components/TextOverTooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -74
  146. package/es/src/components/player-vod/index.vue_vue_type_script_setup_true_lang.js +0 -12
@@ -1,229 +0,0 @@
1
- import { defineComponent, ref, nextTick, onMounted, watch, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, renderSlot, createCommentVNode, Fragment, toDisplayString, renderList, withDirectives, createBlock, unref, withCtx, createTextVNode, vShow, createVNode } from 'vue';
2
- import { NTag, NDescriptions, NDescriptionsItem } from 'naive-ui';
3
- import { useThrottleFn, useEventListener } from '@vueuse/core';
4
- import SlotRender from '../../../src/components/SlotRender';
5
- import InfoEllipsis from '../../../packages/info-header/src/InfoEllipsis.vue';
6
- import './HiddenContent.js';
7
- import script$1 from './HiddenContent.vue_vue_type_script_setup_true_lang.js';
8
-
9
- const _hoisted_1 = { class: "c-info-header__operation" };
10
- const _hoisted_2 = {
11
- key: 0,
12
- class: "c-info-header__divider"
13
- };
14
- const _hoisted_3 = { class: "c-info-header__patient" };
15
- const _hoisted_4 = { class: "c-info-header__patientHeader" };
16
- const _hoisted_5 = {
17
- key: 0,
18
- class: "c-info-header__patientHeader--name"
19
- };
20
- const _hoisted_6 = {
21
- key: 1,
22
- class: "c-info-header__patientHeader--sex"
23
- };
24
- const _hoisted_7 = {
25
- key: 2,
26
- class: "c-info-header__patientHeader--age"
27
- };
28
- const _hoisted_8 = { class: "c-info-header__setting" };
29
- const _hoisted_9 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-bianji" }, null, -1);
30
- const _hoisted_10 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-setting" }, null, -1);
31
- const _hoisted_11 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-double_down" }, null, -1);
32
- var script = /* @__PURE__ */ defineComponent({
33
- __name: "InfoHeader",
34
- props: {
35
- compact: { type: Boolean, required: true },
36
- separator: { type: String, default: ":" },
37
- patientInfo: { type: Object, default: () => ({}) },
38
- infoList: { type: Array, required: true },
39
- labelField: { type: String, default: "label" },
40
- valueField: { type: String, default: "value" },
41
- minColumnWidth: { type: [String, Number], default: 240 },
42
- rowHeight: { type: [String, Number], default: 32 }
43
- },
44
- emits: [
45
- "openPatientInfo",
46
- "fieldSet",
47
- "update:compact"
48
- ],
49
- setup(__props, { expose, emit }) {
50
- const props = __props;
51
- function toggleCompact() {
52
- emit("update:compact", !props.compact);
53
- }
54
- function openPatientInfo() {
55
- emit("openPatientInfo");
56
- }
57
- function fieldSet() {
58
- emit("fieldSet");
59
- }
60
- function getTagColor(type) {
61
- return {
62
- color: type === "warning" ? "#fcc200" : "rgba(45, 122, 255, 0.1)",
63
- textColor: type === "warning" ? "#ffffff" : "#2563F4"
64
- };
65
- }
66
- function getDescriptionItemStyle({ bold = true, contentStyle = {} } = {}) {
67
- return { fontWeight: bold ? 700 : 500, ...contentStyle };
68
- }
69
- function getEllipsisStyle(index, { bold = true, contentStyle = {} } = {}) {
70
- const width = descriptionWidthList.value[index] + "px";
71
- return { width, maxWidth: width, fontWeight: bold ? 700 : 500, ...contentStyle };
72
- }
73
- function needHidden(item) {
74
- return ["\u7535\u8BDD", "\u8EAB\u4EFD\u8BC1"].some((key) => {
75
- var _a, _b;
76
- return (_b = (_a = item[props.labelField]) == null ? void 0 : _a.includes) == null ? void 0 : _b.call(_a, key);
77
- });
78
- }
79
- const infoRef = ref();
80
- const columnNum = ref(3);
81
- const maxColumnWidth = ref(0);
82
- const descriptionWidthList = ref([]);
83
- const updateColumn = useThrottleFn(async function() {
84
- await nextTick();
85
- const infoWrapper = infoRef.value;
86
- if (!infoWrapper)
87
- return;
88
- const { clientWidth } = infoWrapper;
89
- columnNum.value = Math.floor(clientWidth / +props.minColumnWidth);
90
- maxColumnWidth.value = Math.floor(clientWidth / columnNum.value);
91
- await nextTick();
92
- const labels = infoWrapper.querySelectorAll(".n-descriptions-table-content__label");
93
- if (!labels)
94
- return;
95
- descriptionWidthList.value = Array.from(labels).map((label) => {
96
- return maxColumnWidth.value - label.clientWidth - 20;
97
- });
98
- }, 100, true, false);
99
- onMounted(updateColumn);
100
- watch([() => props.minColumnWidth, () => props.infoList], updateColumn, {
101
- flush: "post",
102
- deep: true
103
- });
104
- expose({
105
- update: updateColumn
106
- });
107
- useEventListener(window, "resize", updateColumn);
108
- return (_ctx, _cache) => {
109
- return openBlock(), createElementBlock("div", {
110
- class: normalizeClass(["c-info-header", { "is-compact": __props.compact }]),
111
- style: normalizeStyle({ "--row-height": __props.rowHeight, "--column-width": maxColumnWidth.value })
112
- }, [
113
- createElementVNode("section", _hoisted_1, [
114
- renderSlot(_ctx.$slots, "operation")
115
- ]),
116
- _ctx.$slots.operation ? (openBlock(), createElementBlock("div", _hoisted_2)) : createCommentVNode("v-if", true),
117
- createElementVNode("section", _hoisted_3, [
118
- renderSlot(_ctx.$slots, "patientModule"),
119
- !_ctx.$slots.avatarModule ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
120
- renderSlot(_ctx.$slots, "avatar"),
121
- createElementVNode("section", null, [
122
- createElementVNode("header", _hoisted_4, [
123
- __props.patientInfo.name ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.patientInfo.name), 1)) : createCommentVNode("v-if", true),
124
- __props.patientInfo.sex ? (openBlock(), createElementBlock("div", _hoisted_6, "/ " + toDisplayString(__props.patientInfo.sex), 1)) : createCommentVNode("v-if", true),
125
- __props.patientInfo.age ? (openBlock(), createElementBlock("div", _hoisted_7, " / " + toDisplayString(__props.patientInfo.age) + toDisplayString(__props.patientInfo.ageUnit || "\u5C81"), 1)) : createCommentVNode("v-if", true),
126
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.patientInfo.tagList || [], (tag) => {
127
- return withDirectives((openBlock(), createBlock(unref(NTag), {
128
- key: tag.content,
129
- size: "medium",
130
- bordered: false,
131
- color: getTagColor(tag.type || "warning")
132
- }, {
133
- default: withCtx(() => [
134
- createTextVNode(toDisplayString(tag.content), 1)
135
- ]),
136
- _: 2
137
- }, 1032, ["color"])), [
138
- [vShow, tag.content]
139
- ]);
140
- }), 128))
141
- ]),
142
- renderSlot(_ctx.$slots, "avatarInfo")
143
- ])
144
- ], 64)) : createCommentVNode("v-if", true)
145
- ]),
146
- createElementVNode("section", {
147
- class: "c-info-header__info",
148
- style: normalizeStyle({ "--row-num": __props.compact ? 1 : 2 }),
149
- ref_key: "infoRef",
150
- ref: infoRef
151
- }, [
152
- renderSlot(_ctx.$slots, "info", {}, () => [
153
- createVNode(unref(NDescriptions), {
154
- "label-align": "right",
155
- style: { width: "100%" },
156
- "label-placement": "left",
157
- separator: ":",
158
- column: columnNum.value
159
- }, {
160
- default: withCtx(() => [
161
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.infoList, (item, index) => {
162
- return openBlock(), createBlock(unref(NDescriptionsItem), {
163
- key: item[__props.labelField],
164
- label: item[__props.labelField]
165
- }, {
166
- default: withCtx(() => [
167
- item.slot ? (openBlock(), createBlock(unref(SlotRender), {
168
- key: 0,
169
- renderer: item.slot,
170
- "root-slots": _ctx.$slots,
171
- item,
172
- style: normalizeStyle(getDescriptionItemStyle(item)),
173
- width: descriptionWidthList.value[index]
174
- }, null, 8, ["renderer", "root-slots", "item", "style", "width"])) : needHidden(item) ? (openBlock(), createBlock(script$1, {
175
- key: 1,
176
- content: item[__props.valueField],
177
- tip: item.tip,
178
- "content-style": getDescriptionItemStyle(item),
179
- width: descriptionWidthList.value[index]
180
- }, null, 8, ["content", "tip", "content-style", "width"])) : (openBlock(), createBlock(InfoEllipsis, {
181
- key: 2,
182
- "content-style": getEllipsisStyle(index, item),
183
- content: item[__props.valueField],
184
- tip: item.tip
185
- }, null, 8, ["content-style", "content", "tip"]))
186
- ]),
187
- _: 2
188
- }, 1032, ["label"]);
189
- }), 128))
190
- ]),
191
- _: 1
192
- }, 8, ["column"])
193
- ])
194
- ], 4),
195
- createElementVNode("section", _hoisted_8, [
196
- renderSlot(_ctx.$slots, "setting"),
197
- !_ctx.$slots.setting ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
198
- createElementVNode("div", {
199
- class: "c-info-header__settingIcon",
200
- onClick: openPatientInfo
201
- }, [
202
- renderSlot(_ctx.$slots, "patientInfoIcon", {}, () => [
203
- _hoisted_9
204
- ])
205
- ]),
206
- createElementVNode("div", {
207
- class: "c-info-header__settingIcon",
208
- onClick: fieldSet
209
- }, [
210
- renderSlot(_ctx.$slots, "fieldSetIcon", {}, () => [
211
- _hoisted_10
212
- ])
213
- ]),
214
- createElementVNode("div", {
215
- class: "c-info-header__settingIcon",
216
- onClick: toggleCompact
217
- }, [
218
- renderSlot(_ctx.$slots, "compactIcon", {}, () => [
219
- _hoisted_11
220
- ])
221
- ])
222
- ], 64)) : createCommentVNode("v-if", true)
223
- ])
224
- ], 6);
225
- };
226
- }
227
- });
228
-
229
- export { script as default };
@@ -1,336 +0,0 @@
1
- import { defineComponent, reactive, computed, onMounted, openBlock, createElementBlock, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Fragment, renderList, createCommentVNode } from 'vue';
2
- import { useMessage, NInput, NButton } from 'naive-ui';
3
-
4
- const _hoisted_1 = { class: "c-map" };
5
- const _hoisted_2 = { class: "search-container" };
6
- const _hoisted_3 = { class: "map-input-search" };
7
- const _hoisted_4 = { class: "input-addon" };
8
- const _hoisted_5 = /* @__PURE__ */ createTextVNode("\u68C0\u7D22");
9
- const _hoisted_6 = /* @__PURE__ */ createElementVNode("div", { id: "map-core" }, null, -1);
10
- const _hoisted_7 = {
11
- key: 0,
12
- class: "address-list"
13
- };
14
- const _hoisted_8 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
15
- const _hoisted_9 = ["onClick"];
16
- const _hoisted_10 = { class: "title" };
17
- var script = /* @__PURE__ */ defineComponent({
18
- __name: "Map",
19
- props: {
20
- locationProp: { type: String, default: "" },
21
- ak: {
22
- type: String,
23
- default: "KP3BZ-OAC3W-PY6RY-OJ6DV-JYKN3-H6F72"
24
- }
25
- },
26
- emits: ["selectLocation"],
27
- setup(__props, { emit }) {
28
- const props = __props;
29
- const state = reactive({
30
- qq: null,
31
- searchKey: "",
32
- centrePoint: {},
33
- location: { lng: "", lat: "" },
34
- localObj: {},
35
- map: null,
36
- ac: null,
37
- addressList: [],
38
- markers: [],
39
- timeout: null,
40
- searchService: null,
41
- geocoder: {}
42
- });
43
- const defAdress = computed(() => {
44
- var _a, _b;
45
- return (_b = (_a = state.addressList) == null ? void 0 : _a[0]) == null ? void 0 : _b.name;
46
- });
47
- const calculateLocationProp = computed(() => {
48
- return props.locationProp && JSON.parse(props.locationProp) || null;
49
- });
50
- const message = useMessage();
51
- const showPosition = (r) => {
52
- if (r && r.module == "geolocation") {
53
- state.location.lng = r.lng;
54
- state.location.lat = r.lat;
55
- let qq = state.qq;
56
- const new_opint = new qq.maps.LatLng(r.lat, r.lng);
57
- handleGeocoder({ latLng: new_opint });
58
- hdnelSetMapcenter({ lat: r.lat, lng: r.lng });
59
- } else {
60
- console.log("\u7528\u6237\u4E0D\u5141\u8BB8\u83B7\u53D6\u5730\u7406\u4F4D\u7F6E");
61
- state.location.lng = 113.275;
62
- state.location.lat = 23.117;
63
- }
64
- };
65
- const getLocation = () => {
66
- const qq = state.qq;
67
- const geolocation = new qq.maps.Geolocation(props.ak, "qqmap");
68
- const options = { timeout: 9e3 };
69
- const showErr = function(err) {
70
- console.log(err);
71
- };
72
- geolocation.getLocation(showPosition, showErr, options);
73
- };
74
- const hdnelSetMapcenter = (location) => {
75
- const qq = state.qq;
76
- var new_opint = new qq.maps.LatLng(location.lat, location.lng);
77
- state.centrePoint = new_opint;
78
- state.map.panTo(new_opint);
79
- const mk = new qq.maps.Marker({
80
- position: new_opint,
81
- map: state.map
82
- });
83
- state.markers.push(mk);
84
- };
85
- const initSearch = () => {
86
- const qq = state.qq;
87
- state.searchService = new qq.maps.SearchService({
88
- complete: function(results) {
89
- var pois = results.detail.pois || [];
90
- var latlngBounds = new qq.maps.LatLngBounds();
91
- if (results.type === "CITY_LIST") {
92
- state.searchService.setLocation(results.detail.cities[0].cityName);
93
- state.searchService.search(state.searchKey);
94
- return;
95
- }
96
- state.addressList = pois || [];
97
- handleClearOverLays();
98
- if (results.type === "POI_LIST") {
99
- for (var i = 0, l = pois.length; i < l; i++) {
100
- var poi = pois[i];
101
- latlngBounds.extend(poi.latLng);
102
- (function(n) {
103
- var marker = new qq.maps.Marker({
104
- map: state.map
105
- });
106
- marker.setPosition(pois[n].latLng);
107
- marker.setTitle(i + 1);
108
- state.markers.push(marker);
109
- })(i);
110
- }
111
- }
112
- state.map.fitBounds(latlngBounds);
113
- },
114
- error: function(e) {
115
- console.log(e);
116
- if (e === "NO_RESULTS") {
117
- message.warning("\u67E5\u65E0\u7ED3\u679C\uFF01");
118
- return;
119
- }
120
- message.warning("\u5730\u5740\u68C0\u7D22\u5148\u8F93\u5165\u57CE\u5E02\u540D\u79F0");
121
- },
122
- autoExtend: true
123
- });
124
- };
125
- const clearOverlays = (overlays) => {
126
- var overlay;
127
- while (overlay = overlays.pop()) {
128
- overlay.setMap(null);
129
- }
130
- };
131
- const handleClearOverLays = () => {
132
- if (state.markers && state.markers.length) {
133
- clearOverlays(state.markers);
134
- }
135
- state.markers = [];
136
- };
137
- const handleGeocoder = (config = {}) => {
138
- const qq = state.qq;
139
- const latLng = config.latLng;
140
- const geocoder = new qq.maps.Geocoder();
141
- geocoder.setComplete((result) => {
142
- if (result.type === "GEO_INFO") {
143
- var latlngBounds = new qq.maps.LatLngBounds();
144
- var nearPois = result.detail.nearPois || [];
145
- handleClearOverLays();
146
- state.addressList = nearPois || [];
147
- for (let index = 0; index < nearPois.length; index++) {
148
- const pois = nearPois[index];
149
- var marker = new qq.maps.Marker({
150
- map: state.map
151
- });
152
- marker.setPosition(pois.latLng);
153
- marker.setTitle(index + 1);
154
- state.markers.push(marker);
155
- latlngBounds.extend(pois.latLng);
156
- }
157
- state.map.fitBounds(latlngBounds);
158
- }
159
- var location = result.detail.location || {};
160
- hdnelSetMapcenter(location);
161
- });
162
- geocoder.setError(function() {
163
- alert("\u51FA\u9519\u4E86\uFF0C\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u7ECF\u7EAC\u5EA6\uFF01\uFF01\uFF01");
164
- });
165
- geocoder.getAddress(latLng);
166
- };
167
- const init = () => {
168
- const qq = state.qq;
169
- qq.maps.event.addDomListener(state.map, "click", function(event) {
170
- handleGeocoder({ latLng: event.latLng });
171
- });
172
- };
173
- const searchKeyword = () => {
174
- let value = state.searchKey;
175
- if (!value)
176
- return;
177
- if (state.markers && state.markers.length) {
178
- clearOverlays(state.markers);
179
- }
180
- state.searchService.setLocation("");
181
- state.searchService.setPageCapacity(50);
182
- state.searchService.search(value);
183
- };
184
- const selectLocation = (item, tag) => {
185
- const qq = state.qq;
186
- const { name, address, latLng } = item;
187
- const { lat, lng } = latLng;
188
- const geocoder = new qq.maps.Geocoder();
189
- geocoder.setComplete(function(result) {
190
- if (result.type === "GEO_INFO") {
191
- const {
192
- addressComponents: { province, city, district, country }
193
- } = result.detail;
194
- const emitData = JSON.stringify({
195
- name,
196
- address,
197
- province,
198
- city,
199
- district,
200
- country,
201
- lat,
202
- lng
203
- });
204
- emit("selectLocation", {
205
- locationProp: emitData,
206
- isInit: false
207
- });
208
- }
209
- });
210
- geocoder.setError(function() {
211
- alert("\u51FA\u9519\u4E86\uFF0C\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u7ECF\u7EAC\u5EA6\uFF01\uFF01\uFF01");
212
- });
213
- geocoder.getAddress(latLng);
214
- };
215
- const setMap = (qq) => {
216
- var myLatlng = new qq.maps.LatLng(39.916527, 116.397128);
217
- var myOptions = {
218
- zoom: 12,
219
- center: myLatlng,
220
- mapTypeId: qq.maps.MapTypeId.ROADMAP
221
- };
222
- state.map = new qq.maps.Map(document.getElementById("map-core"), myOptions);
223
- const { lat, lng, address } = calculateLocationProp.value || {};
224
- if (lat && lng) {
225
- const new_opint = new qq.maps.LatLng(lat, lng);
226
- handleGeocoder({ latLng: new_opint });
227
- } else if (address) {
228
- setTimeout(() => {
229
- searchKeyword();
230
- }, 300);
231
- } else {
232
- getLocation();
233
- }
234
- init();
235
- };
236
- const initMap = (qq) => {
237
- state.qq = qq;
238
- setTimeout(() => {
239
- setMap(qq);
240
- initSearch();
241
- }, 0);
242
- };
243
- const getMapScript = () => {
244
- var _a, _b;
245
- let _win = window;
246
- if (!_win.qq) {
247
- const ak = props.ak || ((_b = (_a = _win._qq) == null ? void 0 : _a.call(_win)) == null ? void 0 : _b.ak);
248
- _win.qq = {};
249
- _win.qq._preloader = new Promise((resolve) => {
250
- _win._initBaiduMap = function() {
251
- resolve(_win.qq);
252
- _win.document.body.removeChild($script);
253
- _win.qq._preloader = null;
254
- _win._initBaiduMap = null;
255
- };
256
- const $script = document.createElement("script");
257
- window.document.body.appendChild($script);
258
- $script.src = `https://map.qq.com/api/js?v=2.exp&key=${ak}&callback=_initBaiduMap`;
259
- const $script1 = document.createElement("script");
260
- window.document.body.appendChild($script1);
261
- $script1.src = `https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js`;
262
- });
263
- return _win.qq._preloader;
264
- } else if (!_win.qq._preloader) {
265
- return Promise.resolve(_win.qq);
266
- } else {
267
- return _win.qq._preloader;
268
- }
269
- };
270
- const reset = () => {
271
- getMapScript().then(initMap);
272
- };
273
- onMounted(() => {
274
- setTimeout(() => {
275
- reset();
276
- }, 200);
277
- });
278
- return (_ctx, _cache) => {
279
- return openBlock(), createElementBlock("div", _hoisted_1, [
280
- createElementVNode("div", _hoisted_2, [
281
- createElementVNode("div", _hoisted_3, [
282
- createVNode(unref(NInput), {
283
- value: state.searchKey,
284
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => state.searchKey = $event),
285
- placeholder: "\u8BF7\u8F93\u5165\u5730\u5740",
286
- "enter-button": "\u68C0\u7D22"
287
- }, null, 8, ["value"]),
288
- createElementVNode("span", _hoisted_4, [
289
- createVNode(unref(NButton), {
290
- type: "primary",
291
- size: "small",
292
- onClick: searchKeyword
293
- }, {
294
- default: withCtx(() => [
295
- _hoisted_5
296
- ]),
297
- _: 1
298
- })
299
- ])
300
- ])
301
- ]),
302
- _hoisted_6,
303
- state.addressList && state.addressList.length ? (openBlock(), createElementBlock("ul", _hoisted_7, [
304
- createElementVNode("li", null, [
305
- createTextVNode(" \u5730\u5740:" + toDisplayString(unref(defAdress)) + " ", 1),
306
- createVNode(unref(NButton), {
307
- type: "primary",
308
- size: "small",
309
- onClick: _cache[1] || (_cache[1] = ($event) => selectLocation(state.addressList[0]))
310
- }, {
311
- default: withCtx(() => [
312
- _hoisted_8
313
- ]),
314
- _: 1
315
- })
316
- ]),
317
- (openBlock(true), createElementBlock(Fragment, null, renderList(state.addressList, (item, index) => {
318
- return openBlock(), createElementBlock("li", {
319
- class: "address-item",
320
- key: index
321
- }, [
322
- createElementVNode("div", {
323
- onClick: ($event) => selectLocation(item)
324
- }, [
325
- createElementVNode("div", _hoisted_10, toDisplayString(item.name), 1),
326
- createElementVNode("span", null, toDisplayString(item.address), 1)
327
- ], 8, _hoisted_9)
328
- ]);
329
- }), 128))
330
- ])) : createCommentVNode("v-if", true)
331
- ]);
332
- };
333
- }
334
- });
335
-
336
- export { script as default };