vue2-client 1.14.84 → 1.14.86

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 (134) hide show
  1. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +0 -1
  2. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +2 -4
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/XFormTable/XFormTable.vue +7 -0
  5. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +20 -7
  6. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +10 -1
  7. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +0 -3
  8. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  9. package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
  10. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
  11. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  12. package/src/base-client/components/layout/XPageView/RenderRow.vue +57 -31
  13. package/src/base-client/components/layout/XPageView/XErrorView.vue +14 -3
  14. package/src/base-client/components/layout/XPageView/XPageView.vue +138 -71
  15. package/src/base-client/components/layout/XPageView/index.js +1 -3
  16. package/src/base-client/components/layout/XPageView/index.md +65 -26
  17. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +90 -0
  18. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +13 -1
  19. package/src/pages/XPageViewExample/index.vue +41 -8
  20. package/src/pages/addressSelect/addressDemo.vue +24 -24
  21. package/src/pages/addressSelect/index.vue +6 -12
  22. package/src/router/async/router.map.js +4 -2
  23. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  24. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  25. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  26. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  27. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  28. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  29. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  30. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  31. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  32. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  33. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  34. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  35. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  36. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  37. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  38. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  39. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  40. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  41. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  42. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  43. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  44. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  45. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  65. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  66. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  67. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  68. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  69. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  70. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  71. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  72. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  73. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  74. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  75. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  76. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  77. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  78. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  79. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  80. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  81. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  82. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  83. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  84. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  85. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  86. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  87. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  88. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  89. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  90. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  91. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  92. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  93. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  94. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  95. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  96. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  97. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  98. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  99. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  100. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  101. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  102. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  103. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  104. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  105. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  106. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  107. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  108. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  109. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  110. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  111. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  112. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  113. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  114. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  115. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  116. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +0 -222
  117. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +0 -183
  118. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +0 -183
  119. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +0 -183
  120. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +0 -206
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +0 -209
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +0 -242
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +0 -242
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +0 -242
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +0 -251
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +0 -251
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +0 -250
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +0 -250
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +0 -250
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +0 -250
  131. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  132. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  133. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  134. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
@@ -1,524 +0,0 @@
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>