@tplc/business 0.4.176 → 0.4.178

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,49 @@
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.4.178](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.177...v0.4.178) (2025-07-31)
6
+
7
+
8
+ ### ✨ Features | 新功能
9
+
10
+ * list 支持调整样式 ([37bf166](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/37bf1660d5b2acc33ab794b6b0a4aa3a6e82fbb5))
11
+ * 支持及定位 ([1f014bd](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/1f014bdcd2ca74fe75fdb3833263fe64a77b6d5b))
12
+ * 新增map ([aef14fd](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/aef14fd48ed636fcef128a52873b87ad6637e59f))
13
+
14
+ ### [0.4.177](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.168...v0.4.177) (2025-07-30)
15
+
16
+
17
+ ### 🐛 Bug Fixes | Bug 修复
18
+
19
+ * banner full ([6bc8e4f](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/6bc8e4f141501268eb0de572e951a0d9ad8fb091))
20
+
21
+
22
+ ### 🚀 Chore | 构建/工程依赖/工具
23
+
24
+ * **release:** 0.1.95 ([83cf3f2](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/83cf3f2ed13b244a3f997e85822da41afd3c3066))
25
+ * **release:** 0.1.96 ([1e58cbc](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/1e58cbc43bf4787408cf722eea8a1831e64817fc))
26
+ * **release:** 0.1.97 ([406abf5](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/406abf54c2870c30488bb24d29e1a73423dd63a3))
27
+ * **release:** 0.4.169 ([d6dccb8](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/d6dccb88202fea89038d83b9d91bf1abf6aae8a0))
28
+ * **release:** 0.4.170 ([2de0597](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/2de05977311c992ab5258eb0cb905e83533f6c62))
29
+ * **release:** 0.4.171 ([9a071ae](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/9a071ae16fee11fdb21f2fe135bbc00879d2b126))
30
+ * **release:** 0.4.172 ([ee5553b](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/ee5553bf9a26da10cbdc35ae136cfbd8bfd380ca))
31
+ * **release:** 0.4.173 ([f176f38](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/f176f386bc3d0e82c237b3e0b5e153ae7eeb1912))
32
+ * **release:** 0.4.174 ([d32354c](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/d32354c038b760bb04918200d240f4c019ea8c2f))
33
+ * **release:** 0.4.175 ([199a3ec](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/199a3ecbe4cb1c95d076983b17dc60427530c6b3))
34
+ * **release:** 0.4.176 ([8b1fe92](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/8b1fe92ffe3c4c94991a709f112f12fda2ebe255))
35
+
36
+
37
+ ### ✨ Features | 新功能
38
+
39
+ * action custom path ([75fc5be](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/75fc5be17e8e7822e3fcf4dd15a73827abb7c743))
40
+ * banner block full ([5a312ce](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/5a312ce1b94d35a1aa166317a9288aa80655fc2d))
41
+ * 兼容点击 ([8b5912f](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/8b5912f9fde9b1265464aa19f4e9ef115a2a78ac))
42
+ * 新增banner配置 ([4474b66](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/4474b662aa34d157ac679ec48d962461b7e5657c))
43
+ * 新增配置 ([f61af5b](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/f61af5badafc10e9ed54c4bf8d944f7d841dc83e))
44
+ * 调整为全局背景banner ([382f67e](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/382f67ecd2e7a282158909a4a07e4c1c71b8fdcb))
45
+ * 调整字体大小 ([4665dae](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/4665dae2fedf1dc112179130da1b8c8393d6f677))
46
+ * 调整布局点击 ([5bcc28a](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/5bcc28a02ad983b6c0542b08f03b491713e6f1a9))
47
+
5
48
  ### [0.4.176](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.175...v0.4.176) (2025-07-27)
6
49
 
7
50
 
@@ -1,80 +1,93 @@
1
1
  <template>
2
2
  <view
3
- :class="{
4
- 'lcb-filter__border-top': showPlain ? false : border,
5
- 'lcb-filter__plain': showPlain,
6
- 'lcb-filter__view': !showPlain,
3
+ :style="{
4
+ '--lcb-filter-wrapper-bg-color': wrapperBgColor,
5
+ '--lcb-filter-wrapper-text-color': wrapperTextColor,
7
6
  }"
8
7
  class="w-100vw"
9
8
  >
10
- <FilterTabs
11
- v-model="filter[info?.filterTabs?.valueName]"
12
- v-bind="info?.filterTabs?.componentProps"
13
- v-if="info?.filterTabs"
14
- />
15
- <wd-drop-menu>
16
- <wd-drop-menu-item
17
- v-for="(item, index) in info?.filterComponent"
18
- :key="item.valueName"
19
- :title="titleObj[item.valueName] || item.filterName"
20
- icon="caret-down-small"
21
- icon-size="26rpx"
22
- :selected="getSelect(item, index)"
23
- :dot="getCount(item, index)"
24
- ref="dropMenu"
25
- @opened="handleOpened"
26
- @open="handleOpen"
27
- >
28
- <view class="lcb-filter__popup">
29
- <FilterSelect
30
- v-if="item.component === 'select'"
31
- v-bind="item.componentProps"
32
- v-model="filter[item.valueName]"
33
- :value-name="item.valueName"
34
- :sort-type="item.sortType"
35
- v-model:title="titleObj[item.valueName]"
36
- @submit="onSubmit(index)"
37
- />
38
- <TreeSelect
39
- v-else-if="item.component === 'treeSelect'"
40
- v-bind="item.componentProps"
41
- :value="filter[item.valueName]"
42
- :value-name="item.valueName"
43
- :sort-type="item.sortType"
44
- :filter-value="filter"
45
- v-model:keys="dynamicKeys[index]"
46
- @submit="onSubmit(index, $event)"
47
- />
48
- <ComponentGroup
49
- v-else-if="item.component === 'componentGroup'"
50
- v-bind="item.componentProps"
51
- :filter="filter"
52
- @submit="onSubmit(index, $event)"
53
- />
54
- </view>
55
- </wd-drop-menu-item>
56
- </wd-drop-menu>
57
9
  <view
58
- v-if="info?.filterTags || info.btnComponent"
59
- class="px-3 pb-2 box-border flex items-center"
60
10
  :class="{
61
- 'mt-2': showPlain,
11
+ 'lcb-filter__border-top': showPlain ? false : border,
12
+ 'lcb-filter__plain': showPlain,
13
+ 'lcb-filter__view': !showPlain,
14
+ 'lcb-filter__hidden-box-shadow': hiddenBoxShadow,
62
15
  }"
16
+ class="w-full"
63
17
  >
64
- <view class="flex gap-3.5 flex-1">
65
- <TagSelect
66
- v-for="tag in info.filterTags"
67
- :key="tag.valueName"
68
- size="small"
69
- v-bind="tag.componentProps"
70
- v-model="filter[tag.valueName]"
71
- :value-name="tag.valueName"
72
- :sort-type="tag.sortType"
73
- />
18
+ <FilterTabs
19
+ v-model="filter[info?.filterTabs?.valueName]"
20
+ v-bind="info?.filterTabs?.componentProps"
21
+ v-if="info?.filterTabs"
22
+ />
23
+ <wd-drop-menu>
24
+ <wd-drop-menu-item
25
+ v-for="(item, index) in info?.filterComponent"
26
+ :key="item.valueName"
27
+ :title="titleObj[item.valueName] || item.filterName"
28
+ icon="caret-down-small"
29
+ icon-size="26rpx"
30
+ :selected="getSelect(item, index)"
31
+ :dot="getCount(item, index)"
32
+ ref="dropMenu"
33
+ @opened="handleOpened"
34
+ @open="handleOpen"
35
+ >
36
+ <view class="lcb-filter__popup">
37
+ <FilterSelect
38
+ v-if="item.component === 'select'"
39
+ v-bind="item.componentProps"
40
+ v-model="filter[item.valueName]"
41
+ :value-name="item.valueName"
42
+ :sort-type="item.sortType"
43
+ v-model:title="titleObj[item.valueName]"
44
+ @submit="onSubmit(index)"
45
+ />
46
+ <TreeSelect
47
+ v-else-if="item.component === 'treeSelect'"
48
+ v-bind="item.componentProps"
49
+ :value="filter[item.valueName]"
50
+ :value-name="item.valueName"
51
+ :sort-type="item.sortType"
52
+ :filter-value="filter"
53
+ v-model:keys="dynamicKeys[index]"
54
+ @submit="onSubmit(index, $event)"
55
+ />
56
+ <ComponentGroup
57
+ v-else-if="item.component === 'componentGroup'"
58
+ v-bind="item.componentProps"
59
+ :filter="filter"
60
+ @submit="onSubmit(index, $event)"
61
+ />
62
+ </view>
63
+ </wd-drop-menu-item>
64
+ </wd-drop-menu>
65
+ <view
66
+ v-if="info?.filterTags || info.btnComponent"
67
+ class="px-3 pb-2 box-border flex items-center"
68
+ :class="{
69
+ 'mt-2': showPlain,
70
+ }"
71
+ >
72
+ <view class="flex gap-3.5 flex-1">
73
+ <TagSelect
74
+ v-for="tag in info.filterTags"
75
+ :key="tag.valueName"
76
+ size="small"
77
+ v-bind="tag.componentProps"
78
+ v-model="filter[tag.valueName]"
79
+ :value-name="tag.valueName"
80
+ :sort-type="tag.sortType"
81
+ :tag-select-bg-color="tagSelectBgColor"
82
+ :tag-select-text-color="tagSelectTextColor"
83
+ :tag-select-active-bg-color="tagSelectActiveBgColor"
84
+ :tag-select-active-text-color="tagSelectActiveTextColor"
85
+ />
86
+ </view>
87
+ <wd-button v-if="info?.btnComponent" custom-class="!h-60rpx opacity-primary">
88
+ {{ info?.btnComponent?.postRequest }}
89
+ </wd-button>
74
90
  </view>
75
- <wd-button v-if="info?.btnComponent" custom-class="!h-60rpx opacity-primary">
76
- {{ info?.btnComponent?.postRequest }}
77
- </wd-button>
78
91
  </view>
79
92
  </view>
80
93
  </template>
@@ -165,4 +178,15 @@ const handleOpen = () => {
165
178
  uni.$emit('drop-open')
166
179
  }
167
180
  </script>
168
- <style lang="scss" scoped></style>
181
+ <style lang="scss" scoped>
182
+ .lcb-filter__view {
183
+ background-color: var(--lcb-filter-wrapper-bg-color) !important;
184
+ &.lcb-filter__hidden-box-shadow {
185
+ box-shadow: none !important;
186
+ }
187
+ :deep(.wd-drop-menu__list) {
188
+ background-color: var(--lcb-filter-wrapper-bg-color) !important;
189
+ color: var(--lcb-filter-wrapper-text-color) !important;
190
+ }
191
+ }
192
+ </style>
@@ -1,5 +1,15 @@
1
1
  <template>
2
- <view v-for="item in options" :key="`${item.value}`" @click="onItemClick(item)">
2
+ <view
3
+ v-for="item in options"
4
+ :key="`${item.value}`"
5
+ @click="onItemClick(item)"
6
+ :style="{
7
+ '--lcb-tag-bg-color': tagSelectBgColor,
8
+ '--lcb-tag-text-color': tagSelectTextColor,
9
+ '--lcb-tag-active-bg-color': tagSelectActiveBgColor,
10
+ '--lcb-tag-active-text-color': tagSelectActiveTextColor,
11
+ }"
12
+ >
3
13
  <template v-if="item.custom">
4
14
  <view
5
15
  class="select-tag"
@@ -53,7 +63,12 @@ defineOptions({
53
63
  styleIsolation: 'shared',
54
64
  },
55
65
  })
56
- const props = defineProps<TagSelectProps>()
66
+ const props = withDefaults(defineProps<TagSelectProps>(), {
67
+ tagSelectBgColor: '#f5f5f7',
68
+ tagSelectTextColor: '#000000',
69
+ tagSelectActiveBgColor: 'var(--wot-color-theme)',
70
+ tagSelectActiveTextColor: '#ffffff',
71
+ })
57
72
  const model = defineModel<string | string[]>()
58
73
  const modelTitle = defineModel<string>('title')
59
74
  const showInput = ref(false)
@@ -143,7 +158,6 @@ const onInput = (item: Option, e) => {
143
158
  .select-tag {
144
159
  min-width: 150rpx;
145
160
  height: 56rpx;
146
- background: #f5f5f7;
147
161
  border-radius: 53rpx;
148
162
  font-size: 24rpx;
149
163
  line-height: 56rpx;
@@ -158,9 +172,11 @@ const onInput = (item: Option, e) => {
158
172
  align-items: center;
159
173
  flex-direction: column;
160
174
  margin-bottom: 16rpx;
161
- &-checked {
162
- background: $-color-theme;
163
- color: #ffffff;
175
+ background-color: var(--lcb-tag-bg-color);
176
+ color: var(--lcb-tag-text-color);
177
+ &.select-tag-checked {
178
+ background-color: var(--lcb-tag-active-bg-color);
179
+ color: var(--lcb-tag-active-text-color);
164
180
  }
165
181
  }
166
182
  </style>
@@ -13,6 +13,8 @@
13
13
  :titleObj="titleObj"
14
14
  :titleCount="titleCount"
15
15
  :sticky="sticky"
16
+ :wrapperBgColor="wrapperBgColor"
17
+ :wrapperTextColor="wrapperTextColor"
16
18
  />
17
19
  </wd-sticky>
18
20
  <FilterView
@@ -23,6 +25,8 @@
23
25
  :titleObj="titleObj"
24
26
  :titleCount="titleCount"
25
27
  :sticky="sticky"
28
+ :wrapperBgColor="wrapperBgColor"
29
+ :wrapperTextColor="wrapperTextColor"
26
30
  />
27
31
  </template>
28
32
 
@@ -94,6 +98,8 @@ const props = withDefaults(defineProps<LcbListProps>(), {
94
98
  imageWidth: 250,
95
99
  titleLineClamp: 2,
96
100
  gap: 16,
101
+ wrapperBgColor: '#ffffff',
102
+ wrapperTextColor: '#000000',
97
103
  // @ts-ignore
98
104
  pageListProps: () => ({
99
105
  productProps: {
@@ -29,6 +29,21 @@ export interface LcbListProps extends LcbBlockProps {
29
29
  itemContentPr?: number
30
30
  itemContentPb?: number
31
31
  itemContentPl?: number
32
+ wrapperBgColor?: string
33
+ wrapperTextColor?: string
34
+ hiddenBoxShadow?: boolean
35
+ tagSelectBgColor?: string
36
+ tagSelectTextColor?: string
37
+ tagSelectActiveBgColor?: string
38
+ tagSelectActiveTextColor?: string
39
+
40
+ /** 地图标签 */
41
+ mapTags?: {
42
+ label: string
43
+ value: string
44
+ }[]
45
+ mapTagMode?: 'single' | 'multiple'
46
+ mapConfigParams?: Record<string, any>
32
47
  }
33
48
  export interface Option {
34
49
  label: string
@@ -48,6 +63,10 @@ export interface FilterItemProps {
48
63
  options?: Option[]
49
64
  valueName: string
50
65
  sortType?: boolean
66
+ tagSelectBgColor?: string
67
+ tagSelectTextColor?: string
68
+ tagSelectActiveBgColor?: string
69
+ tagSelectActiveTextColor?: string
51
70
  }
52
71
 
53
72
  export type ListFormChooserValues = Record<string, Option[] | undefined>
@@ -9,7 +9,7 @@
9
9
  show-location
10
10
  show-compass
11
11
  show-scale
12
- :scale="14"
12
+ :scale="mapScale"
13
13
  class="w-full h-full"
14
14
  id="map"
15
15
  @regionchange="onRegionChange"
@@ -19,8 +19,26 @@
19
19
  src="./images/2.png"
20
20
  class="w-36rpx h-66rpx absolute left-0 top-0 m-auto bottom-0 right-0"
21
21
  />
22
-
23
- <view class="absolute bottom-0 left-0 p-3 box-border w-full h-fit" v-if="list[current]">
22
+ <!-- 重新定位到当前位置 -->
23
+ <view
24
+ class="absolute bottom-80 left-3 ox-border w-fit h-fit bg-white shadow-lg px-2 py-1 z-1 rounded-1 box-border text-2.5 text-center text-[var(--wot-color-theme)]"
25
+ @click="getCurrentLocation"
26
+ >
27
+ <wd-icon name="dingwei" class-prefix="lcb" />
28
+ <view class="mt-0.5 font-600">定位</view>
29
+ </view>
30
+ <view class="absolute top-3 right-2 flex flex-col gap-2">
31
+ <view
32
+ v-for="item in mapTags"
33
+ :key="item.value"
34
+ class="flex-center map-tag"
35
+ :class="{ 'map-tag-active': selectedTag.includes(item.value) }"
36
+ @click="onTagClick(item.value)"
37
+ >
38
+ {{ item.label }}
39
+ </view>
40
+ </view>
41
+ <view class="absolute bottom-0 left-0 py-3 px-4 box-border w-full h-fit" v-if="list[current]">
24
42
  <lcb-action-view v-bind="list[current].link">
25
43
  <lcb-product-item
26
44
  v-bind="{
@@ -40,17 +58,17 @@
40
58
  </lcb-action-view>
41
59
  <wd-icon
42
60
  class-prefix="lcb"
43
- size="28"
61
+ size="32"
44
62
  name="youbian"
45
- custom-class="icon right-0"
63
+ custom-class="icon right-1"
46
64
  @click="onCurrentChange(1)"
47
65
  v-if="list[current + 1]"
48
66
  />
49
67
  <wd-icon
50
68
  class-prefix="lcb"
51
- size="28"
69
+ size="32"
52
70
  name="zuobian"
53
- custom-class="icon left-0"
71
+ custom-class="icon left-1"
54
72
  @click="onCurrentChange(-1)"
55
73
  v-if="list[current - 1]"
56
74
  />
@@ -82,7 +100,9 @@ const attrs = useAttrs()
82
100
  const { proxy } = getCurrentInstance()!
83
101
  const mapContext = ref<UniApp.MapContext>()
84
102
  const { userLatLon, getLocation } = useLocation()
85
- const props = defineProps<LcbListProps & LcbListInfo>()
103
+ const props = withDefaults(defineProps<LcbListProps & LcbListInfo>(), {
104
+ mapTagMode: 'multiple',
105
+ })
86
106
  const themeColor = inject('theme-color', '#3875FF')
87
107
  const callout: MapMarker['callout'] = {
88
108
  content: '腾讯总部大楼',
@@ -96,21 +116,42 @@ const callout: MapMarker['callout'] = {
96
116
  bgColor: '#ffffff',
97
117
  color: themeColor,
98
118
  }
119
+ const selectedTag = ref<string[]>([])
99
120
  const info = reactive({
100
121
  covers: [] as MapMarker[],
101
122
  })
102
123
  const form = inject<Record<string, any>>(FORM_KEY, {})
103
124
  const current = ref(0)
104
125
  const list = ref<MapItem[]>([])
126
+ const mapScale = ref(14)
127
+ const isConfig = ref(false)
128
+
129
+ const onTagClick = (value: string) => {
130
+ if (props.mapTagMode === 'single') {
131
+ if (selectedTag.value.includes(value)) {
132
+ selectedTag.value = []
133
+ } else {
134
+ selectedTag.value = [value]
135
+ }
136
+ return
137
+ }
138
+ if (selectedTag.value.includes(value)) {
139
+ selectedTag.value = selectedTag.value.filter((item) => item !== value)
140
+ } else {
141
+ selectedTag.value = [...selectedTag.value, value]
142
+ }
143
+ }
105
144
 
106
145
  const getData = debounce(() => {
107
146
  mapContext.value?.getRegion({
108
147
  async success(res) {
109
- const { data = [] } = (await uni.$lcb.http.post('/productInfo/map', {
148
+ const { data = [] } = (await uni.$lcb.http.post('/productInfoMap/list', {
110
149
  ...props.baseParam,
111
150
  ...form?.value,
151
+ mapScale: mapScale.value,
112
152
  mapCornerLongitude: res.southwest.longitude,
113
153
  mapCornerLatitude: res.southwest.latitude,
154
+ productTypeList: selectedTag.value.length ? selectedTag.value : undefined,
114
155
  })) as {
115
156
  data: MapItem[]
116
157
  }
@@ -119,21 +160,54 @@ const getData = debounce(() => {
119
160
  },
120
161
  })
121
162
  }, 50)
163
+ watch(
164
+ () => selectedTag.value,
165
+ () => {
166
+ getData()
167
+ },
168
+ {
169
+ deep: true,
170
+ },
171
+ )
172
+
173
+ const getConfig = async () => {
174
+ isConfig.value = true
175
+ const {
176
+ data: { mapLatitude, mapLongitude, mapScale: scale },
177
+ } = await uni.$lcb.http.post<{
178
+ mapLatitude: number
179
+ mapLongitude: number
180
+ mapScale: number
181
+ }>('/productInfoMap/config', {
182
+ ...props.baseParam,
183
+ ...form?.value,
184
+ ...props.mapConfigParams,
185
+ })
186
+ form.value.userLatitude = mapLatitude
187
+ form.value.userLongitude = mapLongitude
188
+ mapScale.value = scale
189
+ }
122
190
 
123
191
  watch(
124
192
  () => userLatLon.value,
125
- (val) => {
126
- if (!val) return
193
+ async (val, old) => {
194
+ if (!val || JSON.stringify(val) === JSON.stringify(old)) return
127
195
  form.value.mapLatitude = val.latitude
128
196
  form.value.mapLongitude = val.longitude
129
197
  form.value.userLongitude = val.longitude
130
198
  form.value.userLatitude = val.latitude
199
+ if (!isConfig.value) {
200
+ getConfig()
201
+ }
131
202
  },
132
203
  {
133
204
  immediate: true,
134
205
  deep: true,
135
206
  },
136
207
  )
208
+ const getCurrentLocation = async () => {
209
+ getLocation(true)
210
+ }
137
211
  getLocation()
138
212
  const onRegionChange = (e: {
139
213
  type: string
@@ -148,6 +222,7 @@ const onRegionChange = (e: {
148
222
  if (e.type === 'end') {
149
223
  form.value.mapLatitude = e.detail.centerLocation.latitude
150
224
  form.value.mapLongitude = e.detail.centerLocation.longitude
225
+ mapScale.value = e.detail.scale
151
226
  }
152
227
  }
153
228
  const onCurrentChange = (p: number) => {
@@ -211,7 +286,7 @@ onMounted(() => {
211
286
  getData()
212
287
  })
213
288
  </script>
214
- <style lang="scss">
289
+ <style lang="scss" scoped>
215
290
  .icon {
216
291
  position: absolute;
217
292
  top: 0;
@@ -220,4 +295,19 @@ onMounted(() => {
220
295
  margin: auto;
221
296
  color: #666;
222
297
  }
298
+ .map-tag {
299
+ width: 140rpx;
300
+ text-align: center;
301
+ box-sizing: border-box;
302
+ border-radius: 30rpx;
303
+ padding: 12rpx 12rpx;
304
+ background-color: #fff;
305
+ box-shadow: 0 0 10rpx 0 rgba(0, 0, 0, 0.1);
306
+ font-size: 28rpx;
307
+ &.map-tag-active {
308
+ font-weight: 600;
309
+ background-color: var(--wot-color-theme);
310
+ color: #fff;
311
+ }
312
+ }
223
313
  </style>
@@ -1,5 +1,3 @@
1
- import { LcbActionViewProps } from '../lcb-action-view/types'
2
-
3
1
  export interface MapMarker {
4
2
  id: number
5
3
  name?: string
@@ -35,5 +33,5 @@ export interface MapItem {
35
33
  productName: string
36
34
  longitude: number
37
35
  productId: string
38
- link: LcbActionViewProps
36
+ link: any
39
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tplc/business",
3
- "version": "0.4.176",
3
+ "version": "0.4.178",
4
4
  "keywords": [
5
5
  "业务组件"
6
6
  ],
@@ -5,7 +5,15 @@ type __VLS_PublicProps = {
5
5
  title?: string
6
6
  } & typeof __VLS_typeProps
7
7
  declare const _default: import('vue').DefineComponent<
8
- __VLS_TypePropsToOption<__VLS_PublicProps>,
8
+ __VLS_WithDefaults<
9
+ __VLS_TypePropsToOption<__VLS_PublicProps>,
10
+ {
11
+ tagSelectBgColor: string
12
+ tagSelectTextColor: string
13
+ tagSelectActiveBgColor: string
14
+ tagSelectActiveTextColor: string
15
+ }
16
+ >,
9
17
  {},
10
18
  unknown,
11
19
  {},
@@ -18,14 +26,43 @@ declare const _default: import('vue').DefineComponent<
18
26
  },
19
27
  string,
20
28
  import('vue').PublicProps,
21
- Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_PublicProps>>> & {
29
+ Readonly<
30
+ import('vue').ExtractPropTypes<
31
+ __VLS_WithDefaults<
32
+ __VLS_TypePropsToOption<__VLS_PublicProps>,
33
+ {
34
+ tagSelectBgColor: string
35
+ tagSelectTextColor: string
36
+ tagSelectActiveBgColor: string
37
+ tagSelectActiveTextColor: string
38
+ }
39
+ >
40
+ >
41
+ > & {
22
42
  'onUpdate:modelValue'?: ((modelValue: string | string[]) => any) | undefined
23
43
  'onUpdate:title'?: ((title: string) => any) | undefined
24
44
  },
25
- {},
45
+ {
46
+ tagSelectBgColor: string
47
+ tagSelectTextColor: string
48
+ tagSelectActiveBgColor: string
49
+ tagSelectActiveTextColor: string
50
+ },
26
51
  {}
27
52
  >
28
53
  export default _default
54
+ type __VLS_WithDefaults<P, D> = {
55
+ [K in keyof Pick<P, keyof P>]: K extends keyof D
56
+ ? __VLS_Prettify<
57
+ P[K] & {
58
+ default: D[K]
59
+ }
60
+ >
61
+ : P[K]
62
+ }
63
+ type __VLS_Prettify<T> = {
64
+ [K in keyof T]: T[K]
65
+ } & {}
29
66
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
30
67
  type __VLS_TypePropsToOption<T> = {
31
68
  [K in keyof T]-?: {} extends Pick<T, K>
@@ -77,11 +77,24 @@ declare const __VLS_component: import('vue').DefineComponent<
77
77
  isSticky: boolean
78
78
  layoutType: 'vertical' | 'horizontal'
79
79
  itemWidth: number
80
+ tagSelectBgColor: string
81
+ tagSelectTextColor: string
82
+ tagSelectActiveBgColor: string
83
+ tagSelectActiveTextColor: string
80
84
  borderMode: 'full' | 'content'
81
85
  itemContentPt: number
82
86
  itemContentPr: number
83
87
  itemContentPb: number
84
88
  itemContentPl: number
89
+ wrapperBgColor: string
90
+ wrapperTextColor: string
91
+ hiddenBoxShadow: boolean
92
+ mapTags: {
93
+ label: string
94
+ value: string
95
+ }[]
96
+ mapTagMode: 'single' | 'multiple'
97
+ mapConfigParams: Record<string, any>
85
98
  },
86
99
  {}
87
100
  >
@@ -27,6 +27,20 @@ export interface LcbListProps extends LcbBlockProps {
27
27
  itemContentPr?: number
28
28
  itemContentPb?: number
29
29
  itemContentPl?: number
30
+ wrapperBgColor?: string
31
+ wrapperTextColor?: string
32
+ hiddenBoxShadow?: boolean
33
+ tagSelectBgColor?: string
34
+ tagSelectTextColor?: string
35
+ tagSelectActiveBgColor?: string
36
+ tagSelectActiveTextColor?: string
37
+ /** 地图标签 */
38
+ mapTags?: {
39
+ label: string
40
+ value: string
41
+ }[]
42
+ mapTagMode?: 'single' | 'multiple'
43
+ mapConfigParams?: Record<string, any>
30
44
  }
31
45
  export interface Option {
32
46
  label: string
@@ -45,5 +59,9 @@ export interface FilterItemProps {
45
59
  options?: Option[]
46
60
  valueName: string
47
61
  sortType?: boolean
62
+ tagSelectBgColor?: string
63
+ tagSelectTextColor?: string
64
+ tagSelectActiveBgColor?: string
65
+ tagSelectActiveTextColor?: string
48
66
  }
49
67
  export type ListFormChooserValues = Record<string, Option[] | undefined>
@@ -1,7 +1,12 @@
1
1
  import { LcbListProps } from '@tplc/business/components/lcb-list/types'
2
2
  import { LcbListInfo } from '@tplc/business/components/lcb-list/api'
3
3
  declare const _default: import('vue').DefineComponent<
4
- __VLS_TypePropsToOption<LcbListProps & LcbListInfo>,
4
+ __VLS_WithDefaults<
5
+ __VLS_TypePropsToOption<LcbListProps & LcbListInfo>,
6
+ {
7
+ mapTagMode: string
8
+ }
9
+ >,
5
10
  {},
6
11
  unknown,
7
12
  {},
@@ -11,11 +16,34 @@ declare const _default: import('vue').DefineComponent<
11
16
  {},
12
17
  string,
13
18
  import('vue').PublicProps,
14
- Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<LcbListProps & LcbListInfo>>>,
15
- {},
19
+ Readonly<
20
+ import('vue').ExtractPropTypes<
21
+ __VLS_WithDefaults<
22
+ __VLS_TypePropsToOption<LcbListProps & LcbListInfo>,
23
+ {
24
+ mapTagMode: string
25
+ }
26
+ >
27
+ >
28
+ >,
29
+ {
30
+ mapTagMode: 'single' | 'multiple'
31
+ },
16
32
  {}
17
33
  >
18
34
  export default _default
35
+ type __VLS_WithDefaults<P, D> = {
36
+ [K in keyof Pick<P, keyof P>]: K extends keyof D
37
+ ? __VLS_Prettify<
38
+ P[K] & {
39
+ default: D[K]
40
+ }
41
+ >
42
+ : P[K]
43
+ }
44
+ type __VLS_Prettify<T> = {
45
+ [K in keyof T]: T[K]
46
+ } & {}
19
47
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
20
48
  type __VLS_TypePropsToOption<T> = {
21
49
  [K in keyof T]-?: {} extends Pick<T, K>
@@ -1,4 +1,3 @@
1
- import { LcbActionViewProps } from '../lcb-action-view/types'
2
1
  export interface MapMarker {
3
2
  id: number
4
3
  name?: string
@@ -33,5 +32,5 @@ export interface MapItem {
33
32
  productName: string
34
33
  longitude: number
35
34
  productId: string
36
- link: LcbActionViewProps
35
+ link: any
37
36
  }
@@ -180,10 +180,10 @@ declare const _default: import('vue').DefineComponent<
180
180
  width: string | number
181
181
  height: string | number
182
182
  showScrollbar: boolean
183
- columnCount: string | number
184
- columnGap: string | number
185
183
  idKey: string
186
184
  addTime: number
185
+ columnCount: string | number
186
+ columnGap: string | number
187
187
  leftGap: string | number
188
188
  rightGap: string | number
189
189
  },