vue2-client 1.15.102 → 1.15.103

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 (183) hide show
  1. package/.history/public/his/editor/editor_20250606134713.html +51 -0
  2. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +509 -0
  3. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +524 -0
  4. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +524 -0
  5. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +524 -0
  6. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +207 -0
  7. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +211 -0
  8. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +212 -0
  9. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +212 -0
  10. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +1320 -0
  11. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +1332 -0
  12. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +1331 -0
  13. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +1331 -0
  14. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +1331 -0
  15. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +1339 -0
  16. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +731 -0
  17. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +748 -0
  18. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +748 -0
  19. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +1071 -0
  20. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +1078 -0
  21. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +1077 -0
  22. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +1077 -0
  23. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +1077 -0
  24. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +442 -0
  25. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +442 -0
  26. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +442 -0
  27. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +475 -0
  28. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +475 -0
  29. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +475 -0
  30. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +477 -0
  31. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +477 -0
  32. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +477 -0
  33. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +473 -0
  34. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +473 -0
  35. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +473 -0
  36. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +473 -0
  37. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +473 -0
  38. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +473 -0
  39. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +473 -0
  40. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +473 -0
  41. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +473 -0
  42. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +473 -0
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +474 -0
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +474 -0
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +474 -0
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +472 -0
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +472 -0
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +472 -0
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +472 -0
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +472 -0
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +472 -0
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +501 -0
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +501 -0
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +501 -0
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +504 -0
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +504 -0
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +504 -0
  58. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +131 -0
  59. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +160 -0
  60. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +160 -0
  61. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +160 -0
  62. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +158 -0
  63. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +173 -0
  64. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +222 -0
  65. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +229 -0
  66. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +229 -0
  67. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +229 -0
  68. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +241 -0
  69. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +241 -0
  70. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +241 -0
  71. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +245 -0
  72. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +245 -0
  73. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +245 -0
  74. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +255 -0
  75. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +255 -0
  76. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +255 -0
  77. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +270 -0
  78. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +270 -0
  79. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +270 -0
  80. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +270 -0
  81. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +294 -0
  82. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +294 -0
  83. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +294 -0
  84. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +303 -0
  85. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +303 -0
  86. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +303 -0
  87. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +288 -0
  88. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +288 -0
  89. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +288 -0
  90. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +317 -0
  91. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +306 -0
  92. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +306 -0
  93. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +306 -0
  94. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +495 -0
  95. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +495 -0
  96. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +494 -0
  97. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +494 -0
  98. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +494 -0
  99. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +495 -0
  100. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +495 -0
  101. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +492 -0
  102. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +492 -0
  103. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +485 -0
  104. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +485 -0
  105. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +488 -0
  106. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134604.vue +263 -0
  107. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134615.vue +302 -0
  108. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134621.vue +301 -0
  109. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134634.vue +311 -0
  110. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134644.vue +330 -0
  111. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134653.vue +330 -0
  112. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134836.vue +330 -0
  113. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135247.vue +330 -0
  114. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135303.vue +354 -0
  115. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135316.vue +363 -0
  116. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135323.vue +363 -0
  117. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135334.vue +366 -0
  118. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135342.vue +364 -0
  119. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135349.vue +364 -0
  120. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135351.vue +346 -0
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135354.vue +346 -0
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135401.vue +346 -0
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135406.vue +346 -0
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135424.vue +346 -0
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807143043.vue +254 -0
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155506.vue +329 -0
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155535.vue +330 -0
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155543.vue +330 -0
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155926.vue +304 -0
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155928.vue +304 -0
  131. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172548.vue +298 -0
  132. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172609.vue +298 -0
  133. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172623.vue +298 -0
  134. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172631.vue +298 -0
  135. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172701.vue +298 -0
  136. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172704.vue +298 -0
  137. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175937.vue +290 -0
  138. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175942.vue +290 -0
  139. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180210.vue +290 -0
  140. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180424.vue +290 -0
  141. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180448.vue +290 -0
  142. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180915.vue +262 -0
  143. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180917.vue +262 -0
  144. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101106.vue +283 -0
  145. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101112.vue +289 -0
  146. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101118.vue +289 -0
  147. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101129.vue +294 -0
  148. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101137.vue +318 -0
  149. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101145.vue +320 -0
  150. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101154.vue +320 -0
  151. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101211.vue +320 -0
  152. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101236.vue +320 -0
  153. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101239.vue +320 -0
  154. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103845.vue +142 -0
  155. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103852.vue +142 -0
  156. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103857.vue +142 -0
  157. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103859.vue +142 -0
  158. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103907.vue +142 -0
  159. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103910.vue +142 -0
  160. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103911.vue +142 -0
  161. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103913.vue +142 -0
  162. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103916.vue +142 -0
  163. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103931.vue +142 -0
  164. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145127.vue +85 -0
  165. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145136.vue +81 -0
  166. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145142.vue +81 -0
  167. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145145.vue +81 -0
  168. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145148.vue +81 -0
  169. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145151.vue +81 -0
  170. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145155.vue +81 -0
  171. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +213 -0
  172. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +6 -0
  173. package/package.json +1 -1
  174. package/src/base-client/components/TreeList/TreeList.vue +91 -0
  175. package/src/base-client/components/TreeList/TreeNode.vue +81 -0
  176. package/src/base-client/components/common/XCardSet/XTiltle.vue +191 -0
  177. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +51 -2
  178. package/src/base-client/components/his/XHisEditor/dome.vue +144 -0
  179. package/src/base-client/components/his/XList/XList.vue +1 -1
  180. package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +145 -40
  181. package/src/base-client/components/his/XShiftSchedule/dome.vue +3 -3
  182. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  183. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
@@ -0,0 +1,524 @@
1
+ <template>
2
+ <div id="addressSearchCombobox" style="padding: 4px 0;">
3
+ <div style="display: flex; width: 100%;">
4
+ <a-input-group style="flex: 1; display: flex;padding-top: 1px;" compact>
5
+ <a-input
6
+ v-model="addressInput"
7
+ :read-only="readOnly || !this.addressObj.address"
8
+ @change="change"
9
+ style="flex: 1; min-width: 0;"
10
+ placeholder="请选择地址信息"/>
11
+ <a-button
12
+ v-if="attr?.inputOnAfterName && attr?.inputOnAfterFunc"
13
+ style="min-width: 4rem; max-width: 6rem;"
14
+ type="primary"
15
+ @click="emitFunc(attr?.inputOnAfterFunc, addressInput)">
16
+ {{ attr?.inputOnAfterName }}
17
+ </a-button>
18
+ </a-input-group>
19
+ <a-button
20
+ style="flex-shrink: 0; margin-left: 0.2rem;"
21
+ :type="attr?.inputOnAfterName ? 'primary' : ''"
22
+ @click="visible = true">
23
+ <IcMapIcon/>
24
+ 定位
25
+ </a-button>
26
+ </div>
27
+ <a-modal
28
+ v-model="visible"
29
+ title="地址选择"
30
+ @ok="selected"
31
+ :zIndex="m_index"
32
+ :destroyOnClose="true"
33
+ width="70%"
34
+ >
35
+ <div class="certain-category-search-wrapper">
36
+ <a-auto-complete
37
+ style="right: 0px;width: 90%;z-index:2;margin-top:2%;"
38
+ :disabled="!mapAutocomplete"
39
+ class="certain-category-search"
40
+ dropdown-class-name="certain-category-search-dropdown"
41
+ option-label-prop="value"
42
+ placeholder="输入地址关键字搜索"
43
+ @search="fetchFunction"
44
+ @select="onSelect"
45
+ >
46
+ <a-spin v-if="searching" slot="notFoundContent" size="small"/>
47
+ <template slot="dataSource">
48
+ <a-select-opt-group v-for="group in option" :key="group.title">
49
+ <span
50
+ slot="label">
51
+ <a-icon type="bank"/> {{ group.title }}
52
+ </span>
53
+ <a-select-option
54
+ v-for="address in group.children"
55
+ :key="address.address+'['+address.label+']'+' <' + address.value + '>'"
56
+ >
57
+ <p class="addressName">
58
+ <a-icon type="environment"/>
59
+ <span v-html="highLight(address.label, address.word)"></span></p>
60
+ <p v-if="address.address !== '[]'" class="addressRemark">
61
+ {{ address.address }}
62
+ </p>
63
+ </a-select-option>
64
+ </a-select-opt-group>
65
+ </template>
66
+ <a-input>
67
+ <a-icon slot="suffix" class="certain-category-icon" type="search"/>
68
+ </a-input>
69
+ </a-auto-complete>
70
+ </div>
71
+ <div id="addressSearchCombobox_map"/>
72
+ <a-descriptions
73
+ bordered
74
+ class="asc_descriptions"
75
+ :column="{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 1, xs: 1 }"
76
+ >
77
+ <a-descriptions-item label="坐标" span="2"><span>{{ addressObj.lng_lat }}</span></a-descriptions-item>
78
+ <a-descriptions-item label="地址" span="2" v-if="attr.type != 'coordinateSearch'"><span>{{ addressObj.address }}</span></a-descriptions-item>
79
+ </a-descriptions>
80
+ </a-modal>
81
+ </div>
82
+ </template>
83
+ <script>
84
+
85
+ import { GetGDMap } from '@vue2-client/utils/map-utils'
86
+ import { debounce } from 'ant-design-vue/lib/vc-table/src/utils'
87
+ import { mapState } from 'vuex'
88
+ import { runLogic } from '@vue2-client/services/api/common'
89
+ import IcMapIcon from '@vue2-client/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue'
90
+
91
+ export default {
92
+ name: 'AddressSearchCombobox',
93
+ components: { IcMapIcon },
94
+ data () {
95
+ // 检索去抖
96
+ this.fetchFunction = debounce(this.fetchFunction, 300)
97
+ return {
98
+ // 地址搜索联想
99
+ mapAutocomplete: undefined,
100
+ // 检索结果
101
+ option: [],
102
+ // 最后检索版本
103
+ lastFetchId: 0,
104
+ // 检索中
105
+ searching: false,
106
+ addressObj: {
107
+ lng_lat: '',
108
+ address: '',
109
+ },
110
+ visible: false,
111
+ map: null,
112
+ m_index: 1002,
113
+ positionPicker: null,
114
+ addressInput: this.searchResult,
115
+ // 选择地址返回的行政区域
116
+ divisions: {},
117
+ // 生成地址串中省市区街道信息禁止修改
118
+ readOnlyDivisions: false,
119
+ // cur 位置
120
+ curPosition: [108.878703, 34.223701],
121
+ searchFlag: false,
122
+ }
123
+ },
124
+ computed: {
125
+ ...mapState('setting', ['isMobile', 'gaode_key', 'gaode_secret_key'])
126
+ },
127
+ props: {
128
+ attr: {
129
+ type: Object,
130
+ default: () => {
131
+ }
132
+ },
133
+ emitFunc: {
134
+ type: Function,
135
+ default: () => {
136
+ }
137
+ },
138
+ searchResult: {
139
+ type: String,
140
+ default: undefined
141
+ },
142
+ // 返回数据格式
143
+ searchResultType: {
144
+ type: String,
145
+ default: 'Default'
146
+ // default: 'Array'
147
+ // default: 'Object'
148
+ },
149
+ // Object 返回格式时 可以自定义key
150
+ resultKeys: {
151
+ type: Object,
152
+ default: () => {
153
+ return { address: 'address', coords: 'coords' }
154
+ }
155
+ },
156
+ readOnly: {
157
+ type: Boolean,
158
+ default: false
159
+ },
160
+ // 省市区是否可以修改
161
+ divisionsChange: {
162
+ type: Boolean,
163
+ default: false
164
+ },
165
+ },
166
+ created () {
167
+ },
168
+ mounted () {
169
+ },
170
+ methods: {
171
+ change (value) {
172
+ if (this.readOnlyDivisions && !this.divisionsChange) {
173
+ // 如果省市区街道信息禁止修改
174
+ if (this.addressInput.includes('省') && this.addressInput.includes('市') && this.divisions.str && !this.addressInput.startsWith(this.divisions.str)) {
175
+ this.addressInput = this.addressObj.address
176
+ this.$message.info('省市区街道信息请从选择新地址以变更')
177
+ return
178
+ }
179
+ }
180
+ debounce(() => {
181
+ this.selected(null, this.addressInput)
182
+ }, 200)()
183
+ },
184
+ initMap (aMap) {
185
+ this.map = new (aMap).Map('addressSearchCombobox_map', { // 设置地图容器id
186
+ resizeEnable: true, // 是否监控地图容器尺寸变化
187
+ zoom: 10, // 初始化地图层级
188
+ })
189
+ this.geocoder = new (aMap).Geocoder({
190
+ radius: 500 // 范围,默认:500
191
+ })
192
+ this.map.addControl(new (aMap).ToolBar()) // 初始化工具插件
193
+
194
+ // 等待地图加载完成
195
+ this.map.on('complete', () => {
196
+ // 获取地图中心点
197
+ const center = this.map.getCenter()
198
+
199
+ // 创建标记对象 - 使用默认样式
200
+ this.marker = new (aMap).Marker({
201
+ position: [center.lng, center.lat], // 使用地图中心点作为初始位置
202
+ map: this.map // 直接在地图创建时添加标记
203
+ })
204
+
205
+ // 获取中心点地址信息
206
+ this.geocoder.getAddress(center, (status, result) => {
207
+ if (status === 'complete' && result.info === 'OK') {
208
+ const addressComponent = result.regeocode.addressComponent
209
+ this.divisions.province = addressComponent.province
210
+ this.divisions.city = addressComponent.city
211
+ this.divisions.district = addressComponent.district
212
+ this.divisions.township = addressComponent.township
213
+ this.divisions.towncode = addressComponent.towncode
214
+ this.divisions.street = addressComponent.street
215
+
216
+ // 获取小区信息
217
+ if (result.regeocode.aois && result.regeocode.aois.length) {
218
+ this.divisions.area = result.regeocode.aois[0].name
219
+ } else if (result.regeocode.pois && result.regeocode.pois.length) {
220
+ this.divisions.area = result.regeocode.pois[0].name
221
+ }
222
+
223
+ this.divisions.str = `${addressComponent.province}${addressComponent.city}${addressComponent.district}${addressComponent.township}`
224
+
225
+ if (this.divisions.str && result.regeocode.formattedAddress.startsWith(this.divisions.str)) {
226
+ this.readOnlyDivisions = true
227
+ }
228
+
229
+ this.addressObj.address = result.regeocode.formattedAddress
230
+ this.addressObj.lng_lat = `${center.lng},${center.lat}`
231
+ }
232
+ })
233
+ })
234
+
235
+ // 添加地图点击事件
236
+ this.map.on('click', (e) => {
237
+ const lnglat = e.lnglat
238
+ this.curPosition = lnglat
239
+
240
+ // 更新标记位置
241
+ this.marker.setPosition([lnglat.lng, lnglat.lat])
242
+
243
+ // 将地图中心移动到点击位置
244
+ this.map.setCenter([lnglat.lng, lnglat.lat])
245
+
246
+ // 获取点击位置的地址信息
247
+ this.geocoder.getAddress(lnglat, (status, result) => {
248
+ if (status === 'complete' && result.info === 'OK') {
249
+ const addressComponent = result.regeocode.addressComponent
250
+ this.divisions.province = addressComponent.province
251
+ this.divisions.city = addressComponent.city
252
+ this.divisions.district = addressComponent.district
253
+ this.divisions.township = addressComponent.township
254
+ this.divisions.towncode = addressComponent.towncode
255
+ this.divisions.street = addressComponent.street
256
+
257
+ // 获取小区信息
258
+ if (result.regeocode.aois && result.regeocode.aois.length) {
259
+ this.divisions.area = result.regeocode.aois[0].name
260
+ } else if (result.regeocode.pois && result.regeocode.pois.length) {
261
+ this.divisions.area = result.regeocode.pois[0].name
262
+ }
263
+
264
+ this.divisions.str = `${addressComponent.province}${addressComponent.city}${addressComponent.district}${addressComponent.township}`
265
+
266
+ if (this.divisions.str && result.regeocode.formattedAddress.startsWith(this.divisions.str)) {
267
+ this.readOnlyDivisions = true
268
+ }
269
+
270
+ if (!this.searchFlag) {
271
+ this.addressObj.address = result.regeocode.formattedAddress
272
+ this.addressObj.lng_lat = `${lnglat.lng},${lnglat.lat}`
273
+ } else {
274
+ this.searchFlag = false
275
+ }
276
+ }
277
+ })
278
+ })
279
+ },
280
+ onSelect (value) {
281
+ // 选中地址后不触发更新坐标
282
+ this.searchFlag = true
283
+ const addressRegex = /^(.+?)\[/ // 匹配地址部分
284
+ const labelRegex = /\[(.+?)\]/ // 匹配标签部分
285
+ const coordinatesRegex = /<(.+?)>/ // 匹配坐标部分
286
+
287
+ const addressMatch = value.match(addressRegex)
288
+ const labelMatch = value.match(labelRegex)
289
+ const coordinatesMatch = value.match(coordinatesRegex)
290
+
291
+ this.addressObj.address = addressMatch ? addressMatch[1].trim() : null
292
+ const label = labelMatch ? labelMatch[1].trim() : null
293
+ this.addressObj.address = this.addressObj.address != null ? this.mergeAddressAndLabel(this.addressObj.address, label) : labelMatch[1].trim()
294
+ this.addressObj.lng_lat = coordinatesMatch ? coordinatesMatch[1] : ''
295
+
296
+ // 更新地图中心和标记位置
297
+ const [lng, lat] = this.addressObj.lng_lat.split(',')
298
+ this.map.setCenter([lng, lat])
299
+ this.marker.setPosition([lng, lat])
300
+ },
301
+ mergeAddressAndLabel (address, label = '') {
302
+ // 从地址的末尾开始匹配标签的开头部分
303
+ for (let i = 0; i < label.length; i++) {
304
+ const substring = label.substring(0, i + 1)
305
+ if (address.endsWith(substring)) {
306
+ // 找到最大匹配部分,拼接不重复的部分
307
+ return address + label.substring(i + 1)
308
+ }
309
+ }
310
+ // 如果没有重复部分,直接拼接
311
+ return address + label
312
+ },
313
+ selected (_value, _addstr) {
314
+ let result
315
+ if (this.searchResultType !== 'Default') {
316
+ if (this.searchResultType === 'Array') {
317
+ // 如果是坐标搜索,只返回坐标
318
+ if (this.attr.type === 'coordinateSearch') {
319
+ result = [this.addressObj.lng_lat]
320
+ } else {
321
+ result = [_addstr || this.addressObj.address, this.addressObj.lng_lat]
322
+ }
323
+ } else {
324
+ result = {}
325
+ // 如果是坐标搜索,只返回坐标
326
+ if (this.attr.type === 'coordinateSearch') {
327
+ result[this.resultKeys.coords] = this.addressObj.lng_lat
328
+ } else {
329
+ result[this.resultKeys.address] = _addstr || this.addressObj.address
330
+ result[this.resultKeys.coords] = this.addressObj.lng_lat
331
+ }
332
+ }
333
+ }
334
+ this.visible = false
335
+ this.$emit('onSelect', JSON.stringify(result))
336
+ // 如果传递了地址 是为了更新上级 不做省市区检验处理
337
+ if (!_addstr) {
338
+ // 如果是坐标搜索,输入框显示坐标
339
+ if (this.attr.type === 'coordinateSearch') {
340
+ this.addressInput = this.addressObj.lng_lat
341
+ } else {
342
+ this.addressInput = this.addressObj.address
343
+ }
344
+ this.$emit('onDivisionsChange', Object.assign({}, result, { divisions: this.divisions, vm: this }))
345
+ }
346
+ },
347
+ // 懒加载检索方法
348
+ fetchFunction (value) {
349
+ if (value && this.mapAutocomplete) {
350
+ this.searching = true
351
+ this.lastFetchId += 1
352
+ const fetchId = this.lastFetchId
353
+ this.mapAutocomplete.search(value, (status, result) => {
354
+ if (fetchId !== this.lastFetchId) {
355
+ return
356
+ }
357
+ if (status === 'complete') {
358
+ this.option = []
359
+ const addressMap = {}
360
+ const addressDisMap = {}
361
+ result.tips.forEach((res) => {
362
+ if (res.location) {
363
+ if (!Object.prototype.hasOwnProperty.call(addressMap, res.district)) {
364
+ addressMap[res.district] = []
365
+ }
366
+ const msgData = {
367
+ label: res.name,
368
+ value: res.location.lng + ',' + res.location.lat,
369
+ address: res.address + '',
370
+ word: value
371
+ }
372
+ const p1 = [this.curPosition.lng, this.curPosition.lat]
373
+ const p2 = [res.location.lng, res.location.lat]
374
+ // 判断与当前位置的距离
375
+ let dis = 0
376
+ try {
377
+ // eslint-disable-next-line
378
+ dis = AMap.GeometryUtil.distance(p1, p2)
379
+ } catch (e) {
380
+ console.log(e)
381
+ }
382
+ addressDisMap[res.district] = {}
383
+ addressDisMap[res.district].dis = dis
384
+ addressMap[res.district].push(msgData)
385
+ }
386
+ })
387
+ for (const key of Object.keys(addressMap)) {
388
+ this.option.push({
389
+ title: key,
390
+ dis: addressDisMap[key].dis,
391
+ children: addressMap[key]
392
+ })
393
+ }
394
+ // 根据 dis 排序
395
+ this.option.sort((a, b) => {
396
+ return a.dis - b.dis
397
+ })
398
+ }
399
+ this.searching = false
400
+ })
401
+ }
402
+ },
403
+ // 获取数据
404
+ getData (value, callback) {
405
+ if (value !== '') {
406
+ const logicName = this.attr.keyName
407
+ const logic = logicName.substring(6)
408
+ runLogic(logic, value, 'af-system').then(res => {
409
+ callback(res)
410
+ })
411
+ }
412
+ },
413
+ // 关键字高亮
414
+ highLight (value, word) {
415
+ // 如果标题中包含,关键字就替换一下
416
+ if (value.includes(word)) {
417
+ value = value.replace(word,
418
+ // 这里是替换成html格式的数据,最好再加一个样式权重,保险一点
419
+ '<span style="color:red!important;">' + word + '</span>'
420
+ )
421
+ return value
422
+ // eslint-disable-next-line brace-style
423
+ }
424
+ // 不包含的话还用这个
425
+ else {
426
+ return value
427
+ }
428
+ }
429
+ },
430
+ watch: {
431
+ 'visible' (val) {
432
+ if (val) {
433
+ this.$nextTick(() => {
434
+ GetGDMap(this.gaode_secret_key, this.gaode_key).then(aMap => {
435
+ this.initMap(aMap)
436
+ this.mapAutocomplete = new (aMap).AutoComplete({
437
+ city: '全国',
438
+ dragEnable: true,
439
+ animateEnable: false
440
+ })
441
+ })
442
+ })
443
+ }
444
+ }
445
+ }
446
+ }
447
+ </script>
448
+
449
+ <style lang="less" scoped>
450
+ #addressSearchCombobox_map {
451
+ margin: 1% 0;
452
+ width: 100%;
453
+ height: 50vh;
454
+ text-align: center
455
+ }
456
+
457
+ .address_btn_logo {
458
+ width: 1rem;
459
+ margin-right: 0.5rem
460
+ }
461
+
462
+ .asc_descriptions .ant-descriptions-item-content {
463
+ width: 80%;
464
+ }
465
+
466
+ .certain-category-search-wrapper {
467
+ margin-bottom: -4rem;
468
+ text-align: center;
469
+ }
470
+
471
+ #addressSearchCombobox {
472
+
473
+ .certain-category-search-dropdown .ant-select-dropdown-menu-item-group-title {
474
+ color: #666;
475
+ font-weight: bold;
476
+ font-size: 14px;
477
+ }
478
+
479
+ .certain-category-search-dropdown .ant-select-dropdown-menu-item-group {
480
+ border-bottom: 1px solid #f6f6f6;
481
+ }
482
+
483
+ .certain-category-search-dropdown .ant-select-dropdown-menu-item {
484
+ padding-left: 16px;
485
+ }
486
+
487
+ .certain-category-search-dropdown .ant-select-dropdown-menu-item.show-all {
488
+ text-align: center;
489
+ cursor: default;
490
+ }
491
+
492
+ .certain-category-search-dropdown .ant-select-dropdown-menu {
493
+ max-height: 300px;
494
+ }
495
+
496
+ .certain-category-search-wrapper .certain-search-item-count {
497
+ position: absolute;
498
+ color: #999;
499
+ right: 16px;
500
+ }
501
+
502
+ .certain-category-search-wrapper .certain-category-search.ant-select-focused,
503
+ .certain-category-icon {
504
+ color: #108ee9;
505
+ }
506
+
507
+ .certain-category-search-wrapper .certain-category-icon {
508
+ color: #6e6e6e;
509
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
510
+ font-size: 16px;
511
+ }
512
+
513
+ .addressName {
514
+ margin-bottom: 0;
515
+ font-size: 14px;
516
+ font-weight: bold;
517
+ }
518
+
519
+ .addressRemark {
520
+ margin-bottom: 0;
521
+ font-size: 12px;
522
+ }
523
+ }
524
+ </style>