@tplc/business 0.2.39 → 0.2.41

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.2.41](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.2.40...v0.2.41) (2024-12-28)
6
+
7
+
8
+ ### ✨ Features | 新功能
9
+
10
+ * add map list ([f22a31b](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/f22a31b5dd263d036e1c36ac979ce7a93d4f9d18))
11
+ * map color ([59b79eb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/59b79eb7720de13f338b5d485408d1827618bd4f))
12
+ * map link ([f64b14f](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/f64b14f9889077f846dfedc3cc8899427f894307))
13
+ * map 支持过滤 ([fd5c4fb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/fd5c4fbcc0d48afa5e9947664b5fd7e0682068b8))
14
+
15
+ ### [0.2.40](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.2.38...v0.2.40) (2024-12-27)
16
+
17
+
18
+ ### 🚀 Chore | 构建/工程依赖/工具
19
+
20
+ * **release:** 0.2.39 ([188053e](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/188053edc4e98d208740c6a364aba343fa146f18))
21
+
22
+
23
+ ### ✨ Features | 新功能
24
+
25
+ * 支持头像昵称 ([a1061f0](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/a1061f0646637c797cdd2f5d9dbadd0862256398))
26
+ * 新增测试waterfall ([34b352d](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/34b352dffc3fcc852a658e34ac673bd5d1c77a4d))
27
+ * 更新product ([3fb575b](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/3fb575b7be9ec92b10c3cd36d19ee9593999bb4a))
28
+
5
29
  ### [0.2.39](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.1.46...v0.2.39) (2024-12-27)
6
30
 
7
31
 
@@ -26,14 +26,9 @@
26
26
  <view class="text-#999999">{{ placeholder }}</view>
27
27
  </view>
28
28
  </view>
29
- <wd-icon
30
- name="dianwei"
31
- class-prefix="lcb"
32
- size="36rpx"
33
- color="#333"
34
- custom-class="ml-4"
35
- @click="toMap"
36
- />
29
+ <lcb-action-view v-bind="link" v-if="link">
30
+ <wd-icon :name="icon" class-prefix="lcb" size="36rpx" color="#333" custom-class="ml-4" />
31
+ </lcb-action-view>
37
32
  </lcb-block>
38
33
  </template>
39
34
 
@@ -84,9 +79,6 @@ watch(
84
79
  },
85
80
  )
86
81
  getLocation()
87
- const toMap = () => {
88
- uni.$lcb.navigateTo(`/pages/map/index?form=${JSON.stringify(form?.value)}`)
89
- }
90
82
  </script>
91
83
 
92
84
  <style lang="scss" scoped>
@@ -1,6 +1,9 @@
1
+ import { LcbActionViewProps } from '../lcb-action-view/types'
1
2
  import { LcbBlockProps } from '../lcb-block/types'
2
3
 
3
4
  export interface LcbCalendarSearchProps extends LcbBlockProps {
4
5
  // Define the component's prop types here
5
6
  placeholder?: string
7
+ link?: LcbActionViewProps
8
+ icon?: string
6
9
  }
@@ -2,7 +2,7 @@ import { FilterTabsProps } from './components/FilterTabs/type'
2
2
  import { Option } from './types'
3
3
  export interface LcbListInfo {
4
4
  url: string
5
- baseParam: Record<string, unknown>
5
+ baseParam?: Record<string, unknown>
6
6
  }
7
7
  export interface LcbFilterResult {
8
8
  btnComponent: BtnComponent
@@ -18,7 +18,7 @@
18
18
  import { inject, Ref, ref, watch, watchEffect } from 'vue'
19
19
  import useZPaging from 'z-paging/components/z-paging/js/hooks/useZPaging'
20
20
  import { FORM_KEY } from '../../../../constants'
21
- import { formatJson, getPageOptions } from '../../../../utils/utils'
21
+ import { getPageOptions } from '../../../../utils/utils'
22
22
  import { LcbFilterListProps } from './type'
23
23
  import useAutoHeight from '../../../../hooks/useAutoHeight'
24
24
 
@@ -40,33 +40,7 @@ const modelValue = defineModel<unknown[]>({
40
40
  default: [],
41
41
  })
42
42
  watchEffect(() => {
43
- const list = dataList.value?.map?.((item: any) => {
44
- return item
45
- // // 以下假数据无效
46
- // // const imgArr = formatJson(item.coverImg, [])
47
- // // const tags = formatJson(item.tags, [])
48
- // // eslint-disable-next-line no-unreachable
49
- // return {
50
- // title: item?.productName,
51
- // addressIntro: item?.address,
52
- // price: item?.price,
53
- // priceSuffix: item?.behindUnit,
54
- // subTitle: '专用通道接送8分钟到候机楼',
55
- // score: 4.7,
56
- // scoreTips: '很好',
57
- // level: 4,
58
- // // imgCornerIcon: 'test',
59
- // // imgBottomIcon: 'test',
60
- // titleIcon: 'I',
61
- // userInteractionInfo: '2991点评 · 8039收藏',
62
- // orderTips: '18分钟前有人预定',
63
- // priceTips: '白银贵宾价 | 十亿豪补 | 2项优惠',
64
- // ...item,
65
- // // coverImg: imgArr?.[1] || imgArr?.[0],
66
- // // tags,
67
- // }
68
- })
69
- modelValue.value = list
43
+ modelValue.value = dataList.value
70
44
  })
71
45
 
72
46
  watch(
@@ -45,6 +45,7 @@
45
45
  <lcb-product v-bind="{ ...attrs, form }" :listType="listType" :items="items" v-else />
46
46
  </template>
47
47
  </FilterList>
48
+ <lcb-map v-else-if="mode === 'map'" v-bind="{ ...info.listInfo, ...attrs }" />
48
49
  </template>
49
50
  </template>
50
51
 
@@ -116,10 +117,6 @@ watch(
116
117
  immediate: true,
117
118
  },
118
119
  )
119
- defineSlots<{
120
- list(props: { items: any }): any
121
- item(props: { item: any }): any
122
- }>()
123
120
  </script>
124
121
 
125
122
  <style lang="scss" scoped>
@@ -1,25 +1,48 @@
1
1
  <template>
2
- <view class="flex-col flex h-full w-full">
2
+ <view id="pagingTop"></view>
3
+ <view class="flex-col flex w-full" :style="{ height }" v-if="height">
3
4
  <view class="flex-1 h-0 relative">
4
5
  <map
5
- style="width: 100%; height: 100%"
6
- :latitude="form.latitude"
7
- :longitude="form.longitude"
6
+ :latitude="form.mapLatitude"
7
+ :longitude="form.mapLongitude"
8
8
  :markers="info.covers"
9
9
  show-location
10
10
  show-compass
11
11
  show-scale
12
+ class="w-full h-full"
12
13
  @regionchange="onRegionChange"
13
- @markertap="onMarkerTap"
14
+ @callouttap="onCalloutTap"
14
15
  />
15
16
  <image
16
17
  src="./images/2.png"
17
- class="w-36rpx h-66rpx absolute z-1 left-0 top-0 m-auto bottom-0 right-0"
18
+ class="w-36rpx h-66rpx absolute left-0 top-0 m-auto bottom-0 right-0"
18
19
  />
19
- <view class="absolute bottom-0 left-0 p-3 w-full box-border" v-if="data?.[current]">
20
- <view class="card w-full !p-0">
21
- <lcb-product-item :item="data?.[current]" />
22
- </view>
20
+
21
+ <view class="absolute bottom-0 left-0 p-3 box-border w-full h-fit" v-if="list[current]">
22
+ <lcb-action-view v-bind="list[current].link">
23
+ <lcb-product-item
24
+ v-bind="{
25
+ ...list[current],
26
+ ...attrs,
27
+ }"
28
+ />
29
+ </lcb-action-view>
30
+ <wd-icon
31
+ class-prefix="lcb"
32
+ size="28"
33
+ name="youbian"
34
+ custom-class="icon right-0"
35
+ @click="onCurrentChange(1)"
36
+ v-if="list[current + 1]"
37
+ />
38
+ <wd-icon
39
+ class-prefix="lcb"
40
+ size="28"
41
+ name="zuobian"
42
+ custom-class="icon left-0"
43
+ @click="onCurrentChange(-1)"
44
+ v-if="list[current - 1]"
45
+ />
23
46
  </view>
24
47
  </view>
25
48
  </view>
@@ -27,33 +50,12 @@
27
50
 
28
51
  <script lang="ts" setup>
29
52
  import { FORM_KEY } from '@tplc/business/constants'
30
- import { getJsonStrFirstUrl } from '../../utils/transform'
31
- import { reactive, inject, ref } from 'vue'
32
- import { LcbMapProps } from './types'
33
- export interface MapMarker {
34
- id: number
35
- name?: string
36
- longitude: number
37
- latitude: number
38
- iconPath: string
39
- width: number
40
- height: number
41
- poiId: string
42
- anchor?: {
43
- x: number
44
- y: number
45
- }
46
- callout?: {
47
- content: string
48
- color: string
49
- fontSize: number
50
- borderRadius: number
51
- bgColor: string
52
- padding: number
53
- display: 'ALWAYS' | 'BYCLICK'
54
- }
55
- zIndex?: number
56
- }
53
+ import { reactive, inject, ref, useAttrs, watch } from 'vue'
54
+ import { LcbListInfo } from '../lcb-list/api'
55
+ import { getPageOptions } from '../../utils/utils'
56
+ import { MapItem, MapMarker } from './types'
57
+ import useAutoHeight from '../../hooks/useAutoHeight'
58
+ const height = useAutoHeight()
57
59
  defineOptions({
58
60
  name: 'LcbMap',
59
61
  options: {
@@ -62,7 +64,8 @@ defineOptions({
62
64
  styleIsolation: 'shared',
63
65
  },
64
66
  })
65
- defineProps<LcbMapProps>()
67
+ const attrs = useAttrs()
68
+ const props = defineProps<LcbListInfo>()
66
69
  const scaleRadius: Record<string, number> = {
67
70
  3: 1_000_000,
68
71
  4: 500_000,
@@ -83,27 +86,48 @@ const scaleRadius: Record<string, number> = {
83
86
  19: 10,
84
87
  20: 5,
85
88
  }
89
+ const themeColor = inject('theme-color', '#3875FF')
90
+ const callout: MapMarker['callout'] = {
91
+ content: '腾讯总部大楼',
92
+ padding: 4,
93
+ display: 'ALWAYS',
94
+ fontSize: 14,
95
+ textAlign: 'center',
96
+ borderRadius: 4,
97
+
98
+ borderWidth: 1,
99
+ borderColor: themeColor,
100
+ bgColor: '#ffffff',
101
+ color: themeColor,
102
+ }
86
103
  const info = reactive({
87
104
  covers: [] as MapMarker[],
88
105
  })
89
106
  const form = inject<Record<string, any>>(FORM_KEY, {})
90
107
  const current = ref(0)
91
- const data = ref<any[]>([])
108
+ const list = ref<MapItem[]>([])
109
+
92
110
  const getData = async () => {
93
- const { data: list } = await uni.$lcb.http.post<any[]>('/productInfo/map', form.value)
94
- data.value = list
95
- getCurrentData(list[0], list.slice(1, list.length))
111
+ // || props.url
112
+ const { data } = (await uni.$lcb.http.post('/productInfo/map', {
113
+ ...props.baseParam,
114
+ ...form?.value,
115
+ ...getPageOptions(),
116
+ })) as {
117
+ data: MapItem[]
118
+ }
119
+ list.value = data
120
+ getCurrentData(data)
96
121
  }
97
-
98
122
  const getLocation = () => {
99
123
  uni.getLocation({
100
124
  type: 'gcj02',
101
125
  success: (res) => {
126
+ form.value.mapViewRadius = scaleRadius[16]
102
127
  form.value.userLongitude = res.longitude
103
128
  form.value.userLatitude = res.latitude
104
129
  form.value.mapLatitude = res.latitude
105
130
  form.value.mapLongitude = res.longitude
106
- getData()
107
131
  },
108
132
  fail: () => {
109
133
  uni.showToast({
@@ -132,72 +156,70 @@ const onRegionChange = (e: {
132
156
  getData()
133
157
  }
134
158
  }
135
- const onMarkerTap = (e: { markerId: number }) => {
136
- const marker = info.covers.find((item) => item?.id === e.markerId)
137
- if (marker) {
138
- const item = data.value?.find((item) => item?.poiId === marker.poiId)
139
- const firstMarker = info.covers[0]!
140
- getCurrentData(item, [
141
- {
142
- ...firstMarker,
143
- id: e.markerId,
144
- iconPath: './images/4.png',
145
- width: 26,
146
- height: 26,
147
- },
148
- ...info.covers.filter((item) => ![1, 2, e.markerId].includes(item.id)),
149
- ])
159
+ const onCurrentChange = (p: number) => {
160
+ onCalloutTap({
161
+ detail: {
162
+ markerId: current.value + p,
163
+ },
164
+ })
165
+ }
166
+ const onCalloutTap = (e: { detail: { markerId: number } }) => {
167
+ const pre = info.covers[e.detail.markerId].callout
168
+ const old = info.covers[current.value].callout
169
+ info.covers[e.detail.markerId].callout = {
170
+ ...pre,
171
+ borderColor: themeColor,
172
+ bgColor: themeColor,
173
+ color: '#fff',
174
+ }
175
+ info.covers[current.value].callout = {
176
+ ...old,
177
+ borderColor: '#eeeeee',
178
+ bgColor: '#ffffff',
179
+ color: themeColor,
150
180
  }
181
+ current.value = e.detail.markerId
151
182
  }
152
- const getCurrentData = (item: any, list: MapMarker[]) => {
153
- uni.downloadFile({
154
- url:
155
- getJsonStrFirstUrl(item.coverImg) +
156
- '?x-oss-process=image/resize,m_fixed,w_64,h_64/circle,r_100/format,png',
157
- success: (res) => {
158
- info.covers = [
159
- {
160
- id: 1,
161
- iconPath: './images/3.png',
162
- width: 42,
163
- height: 49,
164
- anchor: {
165
- x: 0.5,
166
- y: 0.78,
167
- },
168
- poiId: item.poiId,
169
- latitude: item.latitude,
170
- longitude: item.longitude,
171
- },
172
- {
173
- zIndex: 2,
174
- iconPath: res.tempFilePath,
175
- width: 34,
176
- height: 34,
177
- id: 2,
178
- poiId: item.poiId,
179
- latitude: item.latitude,
180
- longitude: item.longitude,
181
- },
182
- ...list.map((item: any, index: number) => ({
183
- id: index + 3,
184
- iconPath: './images/4.png',
185
- width: 26,
186
- height: 26,
187
- poiId: item.poiId,
188
- latitude: item.latitude,
189
- longitude: item.longitude,
190
- })),
191
- ]
192
- console.log(item.poiId, data.value)
193
- current.value = data.value?.findIndex?.(({ poiId }) => item.poiId === poiId) || -1
194
- },
183
+ const getCurrentData = (markers: MapItem[]) => {
184
+ info.covers = markers.map((current, index: number) => {
185
+ const isCurrent = index === 0
186
+ return {
187
+ id: index,
188
+ iconPath: 'https://lycs.eluying.com/default/1319653665276882944/20241226142012/饭店竖图.png',
189
+ width: 1,
190
+ height: 1,
191
+ poiId: current.productId,
192
+ latitude: current.latitude,
193
+ longitude: current.longitude,
194
+ alpha: 0,
195
+ callout: {
196
+ ...callout,
197
+ content: current.mapPriceTips,
198
+ borderColor: isCurrent ? themeColor : '#eeeeee',
199
+ bgColor: isCurrent ? themeColor : '#ffffff',
200
+ color: isCurrent ? '#ffffff' : themeColor,
201
+ },
202
+ }
195
203
  })
204
+ current.value = 0
196
205
  }
206
+ watch(
207
+ () => form.value,
208
+ () => {
209
+ getData()
210
+ },
211
+ {
212
+ deep: true,
213
+ },
214
+ )
197
215
  </script>
198
-
199
- <style>
200
- page {
201
- background-color: #f7f7f7;
216
+ <style lang="scss">
217
+ .icon {
218
+ position: absolute;
219
+ top: 0;
220
+ height: fit-content;
221
+ bottom: 0;
222
+ margin: auto;
223
+ color: #666;
202
224
  }
203
225
  </style>
@@ -1,3 +1,38 @@
1
- export interface LcbMapProps {
2
- // Define the component's prop types here
1
+ import { LcbActionViewProps } from '../lcb-action-view/types'
2
+
3
+ export interface MapMarker {
4
+ id: number
5
+ name?: string
6
+ longitude: number
7
+ latitude: number
8
+ iconPath: string
9
+ width: number
10
+ height: number
11
+ poiId: string
12
+ anchor?: {
13
+ x: number
14
+ y: number
15
+ }
16
+ alpha?: number
17
+
18
+ callout: {
19
+ textAlign: string
20
+ borderWidth: number
21
+ borderColor: string
22
+ content: string
23
+ color: string
24
+ fontSize: number
25
+ borderRadius: number
26
+ bgColor: string
27
+ padding: number
28
+ display: 'ALWAYS' | 'BYCLICK'
29
+ }
30
+ zIndex?: number
31
+ }
32
+ export interface MapItem {
33
+ mapPriceTips: string
34
+ latitude: number
35
+ longitude: number
36
+ productId: string
37
+ link: LcbActionViewProps
3
38
  }
@@ -86,14 +86,26 @@ const value = computed(() => {
86
86
  <!-- 图片 -->
87
87
  <slot :value="value" v-if="prop === 'coverImg'" name="coverImg">
88
88
  <view :class="`relative ${className}`" :style="style">
89
- <image :src="value" class="w-full h-full" mode="aspectFill" />
89
+ <wd-img :src="value" mode="aspectFill" width="100%" height="100%" />
90
90
  <!-- imgBottomIcon -->
91
91
  <view class="absolute bottom-0 left-0 w-full z-1" v-if="itemProps.imgBottomIcon">
92
- <image :src="itemProps.imgBottomIcon" class="w-full h-auto block" mode="widthFix" />
92
+ <wd-img
93
+ :src="itemProps.imgBottomIcon"
94
+ custom-class="block"
95
+ mode="widthFix"
96
+ width="100%"
97
+ height="auto"
98
+ />
93
99
  </view>
94
100
  <!-- imgCornerIcon -->
95
101
  <view class="absolute top-0 left-0 h-8 z-1" v-if="itemProps.imgCornerIcon">
96
- <image :src="itemProps.imgCornerIcon" class="w-auto h-full block" mode="heightFix" />
102
+ <wd-img
103
+ :src="itemProps.imgCornerIcon"
104
+ width="auto"
105
+ height="100%"
106
+ custom-class="block"
107
+ mode="heightFix"
108
+ />
97
109
  </view>
98
110
  <slot></slot>
99
111
  </view>
@@ -1,9 +1,9 @@
1
1
  @font-face {
2
2
  font-family: 'lcb'; /* Project id 4710234 */
3
3
  src:
4
- url('//at.alicdn.com/t/c/font_4710234_2ayg4b3nknw.woff2?t=1733320036132') format('woff2'),
5
- url('//at.alicdn.com/t/c/font_4710234_2ayg4b3nknw.woff?t=1733320036132') format('woff'),
6
- url('//at.alicdn.com/t/c/font_4710234_2ayg4b3nknw.ttf?t=1733320036132') format('truetype');
4
+ url('//at.alicdn.com/t/c/font_4710234_0cmn6exn7ocb.woff2?t=1735307783373') format('woff2'),
5
+ url('//at.alicdn.com/t/c/font_4710234_0cmn6exn7ocb.woff?t=1735307783373') format('woff'),
6
+ url('//at.alicdn.com/t/c/font_4710234_0cmn6exn7ocb.ttf?t=1735307783373') format('truetype');
7
7
  }
8
8
 
9
9
  .lcb {
@@ -14,6 +14,106 @@
14
14
  -moz-osx-font-smoothing: grayscale;
15
15
  }
16
16
 
17
+ .lcb-ditu:before {
18
+ content: '\e6a8';
19
+ }
20
+
21
+ .lcb-ruzhu:before {
22
+ content: '\e6a0';
23
+ }
24
+
25
+ .lcb-xihu:before {
26
+ content: '\e6a1';
27
+ }
28
+
29
+ .lcb-qipai:before {
30
+ content: '\e6a2';
31
+ }
32
+
33
+ .lcb-huwei:before {
34
+ content: '\e6a3';
35
+ }
36
+
37
+ .lcb-dayin:before {
38
+ content: '\e6a4';
39
+ }
40
+
41
+ .lcb-jiatingtaofang:before {
42
+ content: '\e6a5';
43
+ }
44
+
45
+ .lcb-jiageyouhui:before {
46
+ content: '\e6a6';
47
+ }
48
+
49
+ .lcb-bingxiang:before {
50
+ content: '\e6a7';
51
+ }
52
+
53
+ .lcb-you1:before {
54
+ content: '\e69d';
55
+ }
56
+
57
+ .lcb-wifi1:before {
58
+ content: '\e69e';
59
+ }
60
+
61
+ .lcb-qianbao:before {
62
+ content: '\e69f';
63
+ }
64
+
65
+ .lcb-xuanzhong1:before {
66
+ content: '\e691';
67
+ }
68
+
69
+ .lcb-Frame:before {
70
+ content: '\e692';
71
+ }
72
+
73
+ .lcb-songxi:before {
74
+ content: '\e693';
75
+ }
76
+
77
+ .lcb-yule:before {
78
+ content: '\e694';
79
+ }
80
+
81
+ .lcb-jianshen:before {
82
+ content: '\e695';
83
+ }
84
+
85
+ .lcb-qiantai:before {
86
+ content: '\e696';
87
+ }
88
+
89
+ .lcb-qiche:before {
90
+ content: '\e697';
91
+ }
92
+
93
+ .lcb-xingji:before {
94
+ content: '\e698';
95
+ }
96
+
97
+ .lcb-hanglijicun:before {
98
+ content: '\e699';
99
+ }
100
+
101
+ .lcb-huiyi:before {
102
+ content: '\e69a';
103
+ }
104
+
105
+ .lcb-fapiao:before {
106
+ content: '\e69b';
107
+ }
108
+
109
+ .lcb-jinzhi:before {
110
+ content: '\e69c';
111
+ }
112
+
113
+ .lcb-wifi:before {
114
+ content: '\e690';
115
+ }
116
+
17
117
  .lcb-shoucanghou:before {
18
118
  content: '\e68f';
19
119
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tplc/business",
3
- "version": "0.2.39",
3
+ "version": "0.2.41",
4
4
  "keywords": [
5
5
  "业务组件"
6
6
  ],
@@ -32,6 +32,7 @@ declare const _default: import('vue').DefineComponent<
32
32
  >
33
33
  >,
34
34
  {
35
+ icon: string
35
36
  radius: number
36
37
  placeholder: string
37
38
  paddingHorizontal: number
@@ -1,4 +1,7 @@
1
+ import { LcbActionViewProps } from '../lcb-action-view/types'
1
2
  import { LcbBlockProps } from '../lcb-block/types'
2
3
  export interface LcbCalendarSearchProps extends LcbBlockProps {
3
4
  placeholder?: string
5
+ link?: LcbActionViewProps
6
+ icon?: string
4
7
  }
@@ -2,7 +2,7 @@ import { FilterTabsProps } from './components/FilterTabs/type'
2
2
  import { Option } from './types'
3
3
  export interface LcbListInfo {
4
4
  url: string
5
- baseParam: Record<string, unknown>
5
+ baseParam?: Record<string, unknown>
6
6
  }
7
7
  export interface LcbFilterResult {
8
8
  btnComponent: BtnComponent
@@ -1,11 +1,8 @@
1
1
  import { LcbListProps } from './types'
2
2
  import './index.scss'
3
- declare function __VLS_template(): Readonly<{
4
- list(props: { items: any }): any
5
- item(props: { item: any }): any
6
- }> & {
7
- list(props: { items: any }): any
8
- item(props: { item: any }): any
3
+ declare function __VLS_template(): {
4
+ list?(_: { items: never[] }): any
5
+ item?(_: { item: any }): any
9
6
  }
10
7
  declare const __VLS_component: import('vue').DefineComponent<
11
8
  __VLS_WithDefaults<__VLS_TypePropsToOption<LcbListProps>, any>,
@@ -1,33 +1,6 @@
1
- export interface MapMarker {
2
- id: number
3
- name?: string
4
- longitude: number
5
- latitude: number
6
- iconPath: string
7
- width: number
8
- height: number
9
- poiId: string
10
- anchor?: {
11
- x: number
12
- y: number
13
- }
14
- callout?: {
15
- content: string
16
- color: string
17
- fontSize: number
18
- borderRadius: number
19
- bgColor: string
20
- padding: number
21
- display: 'ALWAYS' | 'BYCLICK'
22
- }
23
- zIndex?: number
24
- }
1
+ import { LcbListInfo } from '../lcb-list/api'
25
2
  declare const _default: import('vue').DefineComponent<
26
- Readonly<
27
- import('vue').ComponentPropsOptions<{
28
- [x: string]: unknown
29
- }>
30
- >,
3
+ __VLS_TypePropsToOption<LcbListInfo>,
31
4
  {},
32
5
  unknown,
33
6
  {},
@@ -37,20 +10,19 @@ declare const _default: import('vue').DefineComponent<
37
10
  {},
38
11
  string,
39
12
  import('vue').PublicProps,
40
- | readonly string[]
41
- | Readonly<
42
- import('vue').ExtractPropTypes<
43
- Readonly<
44
- import('vue').ComponentObjectPropsOptions<{
45
- [x: string]: unknown
46
- }>
47
- >
48
- >
49
- >,
50
- | {
51
- readonly [x: number]: string
52
- }
53
- | {},
13
+ Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<LcbListInfo>>>,
14
+ {},
54
15
  {}
55
16
  >
56
17
  export default _default
18
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
19
+ type __VLS_TypePropsToOption<T> = {
20
+ [K in keyof T]-?: {} extends Pick<T, K>
21
+ ? {
22
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>
23
+ }
24
+ : {
25
+ type: import('vue').PropType<T[K]>
26
+ required: true
27
+ }
28
+ }
@@ -1 +1,36 @@
1
- export interface LcbMapProps {}
1
+ import { LcbActionViewProps } from '../lcb-action-view/types'
2
+ export interface MapMarker {
3
+ id: number
4
+ name?: string
5
+ longitude: number
6
+ latitude: number
7
+ iconPath: string
8
+ width: number
9
+ height: number
10
+ poiId: string
11
+ anchor?: {
12
+ x: number
13
+ y: number
14
+ }
15
+ alpha?: number
16
+ callout: {
17
+ textAlign: string
18
+ borderWidth: number
19
+ borderColor: string
20
+ content: string
21
+ color: string
22
+ fontSize: number
23
+ borderRadius: number
24
+ bgColor: string
25
+ padding: number
26
+ display: 'ALWAYS' | 'BYCLICK'
27
+ }
28
+ zIndex?: number
29
+ }
30
+ export interface MapItem {
31
+ mapPriceTips: string
32
+ latitude: number
33
+ longitude: number
34
+ productId: string
35
+ link: LcbActionViewProps
36
+ }
Binary file
Binary file
Binary file