cnhis-design-vue 3.1.14-beta.11.2 → 3.1.14-beta.14

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 (150) 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/big-table/style/index.css +133 -0
  11. package/es/packages/bpmn-workflow/index.js +1 -2
  12. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +253 -3
  13. package/es/packages/button-print/index.js +1 -2
  14. package/es/packages/button-print/src/ButtonPrint.js +5 -3
  15. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +6 -7
  16. package/es/packages/button-print/src/components/IdentityVerification.js +129 -3
  17. package/es/packages/chunk-upload/index.js +1 -1
  18. package/es/packages/chunk-upload/src/chunk-upload-new.js +474 -3
  19. package/es/packages/chunk-upload/src/vod-chunk-upload/index.js +2 -3
  20. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.js +328 -3
  21. package/es/packages/chunk-upload/src/vod-upload-modal.js +3 -4
  22. package/es/packages/drag-layout/index.js +1 -2
  23. package/es/packages/drag-layout/src/DragFormLeftItem.js +123 -3
  24. package/es/packages/drag-layout/src/DragFormRightItem.js +268 -3
  25. package/es/packages/drag-layout/src/DragLayout.js +658 -3
  26. package/es/packages/fabric-chart/index.js +1 -2
  27. package/es/packages/fabric-chart/src/FabricChart.js +315 -3
  28. package/es/packages/fabric-chart/src/components/PopupTip.js +33 -3
  29. package/es/packages/fabric-chart/src/hooks/useLeft.js +15 -4
  30. package/es/packages/field-set/index.js +1 -2
  31. package/es/packages/field-set/src/FieldSet.js +346 -3
  32. package/es/packages/form-render/index.d.ts +0 -1
  33. package/es/packages/form-render/index.js +2 -3
  34. package/es/packages/form-render/src/FormRender.js +188 -3
  35. package/es/packages/form-render/src/FormRender.vue.d.ts +0 -1
  36. package/es/packages/form-render/src/components/renderer/combination.js +2 -3
  37. package/es/packages/form-table/index.js +1 -2
  38. package/es/packages/form-table/src/FormTable.js +475 -3
  39. package/es/packages/form-table/src/components/index.js +28 -42
  40. package/es/packages/form-table/src/components/table-age.js +232 -3
  41. package/es/packages/form-table/src/components/table-date-picker.js +176 -3
  42. package/es/packages/form-table/src/components/table-digital.js +138 -3
  43. package/es/packages/form-table/src/components/table-input-password.js +138 -3
  44. package/es/packages/form-table/src/components/table-input.js +124 -3
  45. package/es/packages/form-table/src/components/table-month-picker.js +100 -3
  46. package/es/packages/form-table/src/components/table-search-more.js +5 -3
  47. package/es/packages/form-table/src/components/table-search-more.vue_vue_type_script_setup_true_lang.js +2 -2
  48. package/es/packages/form-table/src/components/table-search.js +5 -3
  49. package/es/packages/form-table/src/components/table-search.vue_vue_type_script_setup_true_lang.js +2 -2
  50. package/es/packages/form-table/src/components/table-select-multiple.js +161 -3
  51. package/es/packages/form-table/src/components/table-select.js +156 -3
  52. package/es/packages/form-table/src/components/table-textarea.js +154 -3
  53. package/es/packages/form-table/src/components/table-time-picker.js +146 -3
  54. package/es/packages/form-table/src/components/table-tree-select.js +282 -3
  55. package/es/packages/form-table/src/components/text-over-tooltip.js +63 -3
  56. package/es/packages/index.css +133 -0
  57. package/es/packages/info-header/index.js +1 -2
  58. package/es/packages/info-header/src/HiddenContent.js +65 -3
  59. package/es/packages/info-header/src/InfoEllipsis.js +42 -3
  60. package/es/packages/info-header/src/InfoHeader.js +229 -3
  61. package/es/packages/map/index.js +1 -2
  62. package/es/packages/map/src/Map.js +337 -3
  63. package/es/packages/scale-view/index.js +1 -2
  64. package/es/packages/scale-view/src/ScaleView.js +418 -3
  65. package/es/packages/scale-view/src/components/AnswerParse.js +79 -3
  66. package/es/packages/scale-view/src/components/EvaluateCountdown.js +108 -3
  67. package/es/packages/scale-view/src/components/EvaluatePage.js +140 -3
  68. package/es/packages/scale-view/src/components/LoadingCom.js +17 -5
  69. package/es/packages/scale-view/src/components/NoData.js +73 -3
  70. package/es/packages/scale-view/src/components/formitem/r-cascader.js +3 -3
  71. package/es/packages/scale-view/src/components/formitem/r-select.js +3 -3
  72. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.js +78 -3
  73. package/es/packages/select-label/index.js +3 -5
  74. package/es/packages/select-label/src/LabelFormContent.js +441 -3
  75. package/es/packages/select-label/src/SelectLabel.js +5 -3
  76. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.js +5 -21
  77. package/es/packages/select-label/src/components/label-classify.js +128 -3
  78. package/es/packages/select-person/index.js +1 -2
  79. package/es/packages/select-person/src/SearchTree.js +5 -3
  80. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +2 -2
  81. package/es/packages/select-person/src/SelectPerson.js +5 -3
  82. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +4 -5
  83. package/es/packages/shortcut-provider/index.js +1 -2
  84. package/es/packages/shortcut-provider/src/ShortcutProvider.js +33 -3
  85. package/es/packages/shortcut-setter/index.js +1 -2
  86. package/es/packages/shortcut-setter/src/ShortcutSetter.js +38 -3
  87. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +126 -3
  88. package/es/packages/steps-wheel/index.js +1 -2
  89. package/es/packages/steps-wheel/src/StepsWheel.js +264 -3
  90. package/es/packages/time-line/index.js +1 -2
  91. package/es/packages/time-line/src/TimeLine.js +69 -3
  92. package/es/src/components/SelectPage/SelectPage.js +62 -3
  93. package/es/src/components/SelectPage/index.js +2 -3
  94. package/es/src/components/SvgIcon/SvgIcon.js +35 -3
  95. package/es/src/components/SvgIcon/index.js +2 -3
  96. package/es/src/components/TextOverTooltip/TextOverTooltip.js +75 -3
  97. package/es/src/components/TextOverTooltip/index.js +2 -3
  98. package/es/src/components/player-vod/index.js +13 -3
  99. package/global.d.ts +8 -8
  100. package/package.json +153 -153
  101. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  102. package/es/packages/big-table/src/components/edit-form/edit-separate.vue_vue_type_script_setup_true_lang.js +0 -89
  103. package/es/packages/big-table/src/components/input-button.vue_vue_type_script_setup_true_lang.js +0 -33
  104. package/es/packages/big-table/src/components/separate.vue_vue_type_script_setup_true_lang.js +0 -28
  105. package/es/packages/bpmn-workflow/src/BpmnWorkflow.vue_vue_type_script_setup_true_lang.js +0 -252
  106. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.js +0 -128
  107. package/es/packages/chunk-upload/src/chunk-upload-new.vue_vue_type_script_setup_true_lang.js +0 -473
  108. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue_vue_type_script_setup_true_lang.js +0 -327
  109. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.js +0 -122
  110. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.js +0 -267
  111. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.js +0 -659
  112. package/es/packages/fabric-chart/src/FabricChart.vue_vue_type_script_setup_true_lang.js +0 -316
  113. package/es/packages/fabric-chart/src/components/PopupTip.vue_vue_type_script_setup_true_lang.js +0 -32
  114. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.js +0 -345
  115. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.js +0 -187
  116. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.js +0 -474
  117. package/es/packages/form-table/src/components/table-age.vue_vue_type_script_setup_true_lang.js +0 -232
  118. package/es/packages/form-table/src/components/table-date-picker.vue_vue_type_script_setup_true_lang.js +0 -175
  119. package/es/packages/form-table/src/components/table-digital.vue_vue_type_script_setup_true_lang.js +0 -138
  120. package/es/packages/form-table/src/components/table-input-password.vue_vue_type_script_setup_true_lang.js +0 -138
  121. package/es/packages/form-table/src/components/table-input.vue_vue_type_script_setup_true_lang.js +0 -124
  122. package/es/packages/form-table/src/components/table-month-picker.vue_vue_type_script_setup_true_lang.js +0 -99
  123. package/es/packages/form-table/src/components/table-select-multiple.vue_vue_type_script_setup_true_lang.js +0 -160
  124. package/es/packages/form-table/src/components/table-select.vue_vue_type_script_setup_true_lang.js +0 -155
  125. package/es/packages/form-table/src/components/table-textarea.vue_vue_type_script_setup_true_lang.js +0 -153
  126. package/es/packages/form-table/src/components/table-time-picker.vue_vue_type_script_setup_true_lang.js +0 -145
  127. package/es/packages/form-table/src/components/table-tree-select.vue_vue_type_script_setup_true_lang.js +0 -281
  128. package/es/packages/form-table/src/components/text-over-tooltip.vue_vue_type_script_setup_true_lang.js +0 -62
  129. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.js +0 -65
  130. package/es/packages/info-header/src/InfoEllipsis.vue_vue_type_script_setup_true_lang.js +0 -41
  131. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.js +0 -230
  132. package/es/packages/map/src/Map.vue_vue_type_script_setup_true_lang.js +0 -336
  133. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.js +0 -422
  134. package/es/packages/scale-view/src/components/AnswerParse.vue_vue_type_script_setup_true_lang.js +0 -78
  135. package/es/packages/scale-view/src/components/EvaluateCountdown.vue_vue_type_script_setup_true_lang.js +0 -107
  136. package/es/packages/scale-view/src/components/EvaluatePage.vue_vue_type_script_setup_true_lang.js +0 -139
  137. package/es/packages/scale-view/src/components/LoadingCom.vue_vue_type_template_id_413329b0_lang.js +0 -16
  138. package/es/packages/scale-view/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  139. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -77
  140. package/es/packages/select-label/src/LabelFormContent.vue_vue_type_script_setup_true_lang.js +0 -441
  141. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.js +0 -127
  142. package/es/packages/shortcut-provider/src/ShortcutProvider.vue_vue_type_script_setup_true_lang.js +0 -32
  143. package/es/packages/shortcut-setter/src/ShortcutSetter.vue_vue_type_script_setup_true_lang.js +0 -38
  144. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue_vue_type_script_setup_true_lang.js +0 -125
  145. package/es/packages/steps-wheel/src/StepsWheel.vue_vue_type_script_setup_true_lang.js +0 -263
  146. package/es/packages/time-line/src/TimeLine.vue_vue_type_script_setup_true_lang.js +0 -68
  147. package/es/src/components/SelectPage/SelectPage.vue_vue_type_script_setup_true_lang.js +0 -61
  148. package/es/src/components/SvgIcon/SvgIcon.vue_vue_type_script_setup_true_lang.js +0 -34
  149. package/es/src/components/TextOverTooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -74
  150. package/es/src/components/player-vod/index.vue_vue_type_script_setup_true_lang.js +0 -12
@@ -1,230 +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.js';
6
- import './HiddenContent.js';
7
- import script$1 from './HiddenContent.vue_vue_type_script_setup_true_lang.js';
8
- import script$2 from './InfoEllipsis.vue_vue_type_script_setup_true_lang.js';
9
-
10
- const _hoisted_1 = { class: "c-info-header__operation" };
11
- const _hoisted_2 = {
12
- key: 0,
13
- class: "c-info-header__divider"
14
- };
15
- const _hoisted_3 = { class: "c-info-header__patient" };
16
- const _hoisted_4 = { class: "c-info-header__patientHeader" };
17
- const _hoisted_5 = {
18
- key: 0,
19
- class: "c-info-header__patientHeader--name"
20
- };
21
- const _hoisted_6 = {
22
- key: 1,
23
- class: "c-info-header__patientHeader--sex"
24
- };
25
- const _hoisted_7 = {
26
- key: 2,
27
- class: "c-info-header__patientHeader--age"
28
- };
29
- const _hoisted_8 = { class: "c-info-header__setting" };
30
- const _hoisted_9 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-bianji" }, null, -1);
31
- const _hoisted_10 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-setting" }, null, -1);
32
- const _hoisted_11 = /* @__PURE__ */ createElementVNode("i", { class: "iconfont icon-double_down" }, null, -1);
33
- var script = /* @__PURE__ */ defineComponent({
34
- __name: "InfoHeader",
35
- props: {
36
- compact: { type: Boolean, required: true },
37
- separator: { type: String, default: ":" },
38
- patientInfo: { type: Object, default: () => ({}) },
39
- infoList: { type: Array, required: true },
40
- labelField: { type: String, default: "label" },
41
- valueField: { type: String, default: "value" },
42
- minColumnWidth: { type: [String, Number], default: 240 },
43
- rowHeight: { type: [String, Number], default: 32 }
44
- },
45
- emits: [
46
- "openPatientInfo",
47
- "fieldSet",
48
- "update:compact"
49
- ],
50
- setup(__props, { expose, emit }) {
51
- const props = __props;
52
- function toggleCompact() {
53
- emit("update:compact", !props.compact);
54
- }
55
- function openPatientInfo() {
56
- emit("openPatientInfo");
57
- }
58
- function fieldSet() {
59
- emit("fieldSet");
60
- }
61
- function getTagColor(type) {
62
- return {
63
- color: type === "warning" ? "#fcc200" : "rgba(45, 122, 255, 0.1)",
64
- textColor: type === "warning" ? "#ffffff" : "#2563F4"
65
- };
66
- }
67
- function getDescriptionItemStyle({ bold = true, contentStyle = {} } = {}) {
68
- return { fontWeight: bold ? 700 : 500, ...contentStyle };
69
- }
70
- function getEllipsisStyle(index, { bold = true, contentStyle = {} } = {}) {
71
- const width = descriptionWidthList.value[index] + "px";
72
- return { width, maxWidth: width, fontWeight: bold ? 700 : 500, ...contentStyle };
73
- }
74
- function needHidden(item) {
75
- return ["\u7535\u8BDD", "\u8EAB\u4EFD\u8BC1"].some((key) => {
76
- var _a, _b;
77
- return (_b = (_a = item[props.labelField]) == null ? void 0 : _a.includes) == null ? void 0 : _b.call(_a, key);
78
- });
79
- }
80
- const infoRef = ref();
81
- const columnNum = ref(3);
82
- const maxColumnWidth = ref(0);
83
- const descriptionWidthList = ref([]);
84
- const updateColumn = useThrottleFn(async function() {
85
- await nextTick();
86
- const infoWrapper = infoRef.value;
87
- if (!infoWrapper)
88
- return;
89
- const { clientWidth } = infoWrapper;
90
- columnNum.value = Math.floor(clientWidth / +props.minColumnWidth);
91
- maxColumnWidth.value = Math.floor(clientWidth / columnNum.value);
92
- await nextTick();
93
- const labels = infoWrapper.querySelectorAll(".n-descriptions-table-content__label");
94
- if (!labels)
95
- return;
96
- descriptionWidthList.value = Array.from(labels).map((label) => {
97
- return maxColumnWidth.value - label.clientWidth - 20;
98
- });
99
- }, 100, true, false);
100
- onMounted(updateColumn);
101
- watch([() => props.minColumnWidth, () => props.infoList], updateColumn, {
102
- flush: "post",
103
- deep: true
104
- });
105
- expose({
106
- update: updateColumn
107
- });
108
- useEventListener(window, "resize", updateColumn);
109
- return (_ctx, _cache) => {
110
- return openBlock(), createElementBlock("div", {
111
- class: normalizeClass(["c-info-header", { "is-compact": __props.compact }]),
112
- style: normalizeStyle({ "--row-height": __props.rowHeight, "--column-width": maxColumnWidth.value })
113
- }, [
114
- createElementVNode("section", _hoisted_1, [
115
- renderSlot(_ctx.$slots, "operation")
116
- ]),
117
- _ctx.$slots.operation ? (openBlock(), createElementBlock("div", _hoisted_2)) : createCommentVNode("v-if", true),
118
- createElementVNode("section", _hoisted_3, [
119
- renderSlot(_ctx.$slots, "patientModule"),
120
- !_ctx.$slots.avatarModule ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
121
- renderSlot(_ctx.$slots, "avatar"),
122
- createElementVNode("section", null, [
123
- createElementVNode("header", _hoisted_4, [
124
- __props.patientInfo.name ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.patientInfo.name), 1)) : createCommentVNode("v-if", true),
125
- __props.patientInfo.sex ? (openBlock(), createElementBlock("div", _hoisted_6, "/ " + toDisplayString(__props.patientInfo.sex), 1)) : createCommentVNode("v-if", true),
126
- __props.patientInfo.age ? (openBlock(), createElementBlock("div", _hoisted_7, " / " + toDisplayString(__props.patientInfo.age) + toDisplayString(__props.patientInfo.ageUnit || "\u5C81"), 1)) : createCommentVNode("v-if", true),
127
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.patientInfo.tagList || [], (tag) => {
128
- return withDirectives((openBlock(), createBlock(unref(NTag), {
129
- key: tag.content,
130
- size: "medium",
131
- bordered: false,
132
- color: getTagColor(tag.type || "warning")
133
- }, {
134
- default: withCtx(() => [
135
- createTextVNode(toDisplayString(tag.content), 1)
136
- ]),
137
- _: 2
138
- }, 1032, ["color"])), [
139
- [vShow, tag.content]
140
- ]);
141
- }), 128))
142
- ]),
143
- renderSlot(_ctx.$slots, "avatarInfo")
144
- ])
145
- ], 64)) : createCommentVNode("v-if", true)
146
- ]),
147
- createElementVNode("section", {
148
- class: "c-info-header__info",
149
- style: normalizeStyle({ "--row-num": __props.compact ? 1 : 2 }),
150
- ref_key: "infoRef",
151
- ref: infoRef
152
- }, [
153
- renderSlot(_ctx.$slots, "info", {}, () => [
154
- createVNode(unref(NDescriptions), {
155
- "label-align": "right",
156
- style: { width: "100%" },
157
- "label-placement": "left",
158
- separator: ":",
159
- column: columnNum.value
160
- }, {
161
- default: withCtx(() => [
162
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.infoList, (item, index) => {
163
- return openBlock(), createBlock(unref(NDescriptionsItem), {
164
- key: item[__props.labelField],
165
- label: item[__props.labelField]
166
- }, {
167
- default: withCtx(() => [
168
- item.slot ? (openBlock(), createBlock(unref(SlotRender), {
169
- key: 0,
170
- renderer: item.slot,
171
- "root-slots": _ctx.$slots,
172
- item,
173
- style: normalizeStyle(getDescriptionItemStyle(item)),
174
- width: descriptionWidthList.value[index]
175
- }, null, 8, ["renderer", "root-slots", "item", "style", "width"])) : needHidden(item) ? (openBlock(), createBlock(script$1, {
176
- key: 1,
177
- content: item[__props.valueField],
178
- tip: item.tip,
179
- "content-style": getDescriptionItemStyle(item),
180
- width: descriptionWidthList.value[index]
181
- }, null, 8, ["content", "tip", "content-style", "width"])) : (openBlock(), createBlock(script$2, {
182
- key: 2,
183
- "content-style": getEllipsisStyle(index, item),
184
- content: item[__props.valueField],
185
- tip: item.tip
186
- }, null, 8, ["content-style", "content", "tip"]))
187
- ]),
188
- _: 2
189
- }, 1032, ["label"]);
190
- }), 128))
191
- ]),
192
- _: 1
193
- }, 8, ["column"])
194
- ])
195
- ], 4),
196
- createElementVNode("section", _hoisted_8, [
197
- renderSlot(_ctx.$slots, "setting"),
198
- !_ctx.$slots.setting ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
199
- createElementVNode("div", {
200
- class: "c-info-header__settingIcon",
201
- onClick: openPatientInfo
202
- }, [
203
- renderSlot(_ctx.$slots, "patientInfoIcon", {}, () => [
204
- _hoisted_9
205
- ])
206
- ]),
207
- createElementVNode("div", {
208
- class: "c-info-header__settingIcon",
209
- onClick: fieldSet
210
- }, [
211
- renderSlot(_ctx.$slots, "fieldSetIcon", {}, () => [
212
- _hoisted_10
213
- ])
214
- ]),
215
- createElementVNode("div", {
216
- class: "c-info-header__settingIcon",
217
- onClick: toggleCompact
218
- }, [
219
- renderSlot(_ctx.$slots, "compactIcon", {}, () => [
220
- _hoisted_11
221
- ])
222
- ])
223
- ], 64)) : createCommentVNode("v-if", true)
224
- ])
225
- ], 6);
226
- };
227
- }
228
- });
229
-
230
- 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 };