@tplc/business 0.4.83 → 0.4.85
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 +27 -0
- package/components/lcb-product/lcb-product.vue +19 -12
- package/components/lcb-product-item/components/ItemValue.vue +5 -4
- package/components/lcb-product-item/lcb-product-item.vue +22 -49
- package/package.json +1 -1
- package/types/components/lcb-product-item/lcb-product-item.vue.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
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.85](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.84...v0.4.85) (2025-04-30)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ✨ Features | 新功能
|
|
9
|
+
|
|
10
|
+
* version ([013ff3f](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/013ff3f0118badd815876911e0e8faa11236b076))
|
|
11
|
+
|
|
12
|
+
### [0.4.84](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.82...v0.4.84) (2025-04-30)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### 🚀 Chore | 构建/工程依赖/工具
|
|
16
|
+
|
|
17
|
+
* **release:** 0.4.83 ([ae16ad2](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/ae16ad2141431e101ec52b3c63d902eb0f26cd68))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### 🐛 Bug Fixes | Bug 修复
|
|
21
|
+
|
|
22
|
+
* 修改商品展示 ([8d3ef34](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/8d3ef34a8693fa3a5a3c89fd99c2ac3aa8ac195f))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### ✨ Features | 新功能
|
|
26
|
+
|
|
27
|
+
* horizontal 支持gap ([8d5d3c8](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/8d5d3c8732b1adb6dc9afd2e5c51836a58573c8b))
|
|
28
|
+
* 价格居中 ([91dd0e9](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/91dd0e96048f3a26f9c990e04dc07ce5c08377c9))
|
|
29
|
+
* 支持分享 ([841c723](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/841c72301546c1e5ad4fe4010e53b7fbef79ffa3))
|
|
30
|
+
* 调整布局 ([4a95740](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/4a957408f27e2555c1078994cca20712e7be7003))
|
|
31
|
+
|
|
5
32
|
### [0.4.83](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.79...v0.4.83) (2025-04-29)
|
|
6
33
|
|
|
7
34
|
|
|
@@ -147,7 +147,7 @@ defineExpose({
|
|
|
147
147
|
shadowSize: blockShadowSize,
|
|
148
148
|
blurSize: blockBlurSize,
|
|
149
149
|
}"
|
|
150
|
-
:custom-class="`${listType == 'horizontal' ? 'h-fit overflow-x-auto whitespace-nowrap flex items-stretch w-full' : ''}`"
|
|
150
|
+
:custom-class="`${listType == 'horizontal' ? '!gap-0 h-fit overflow-x-auto whitespace-nowrap flex items-stretch w-full' : ''}`"
|
|
151
151
|
>
|
|
152
152
|
<!-- 单列 -->
|
|
153
153
|
<view
|
|
@@ -239,9 +239,14 @@ defineExpose({
|
|
|
239
239
|
width: itemWidth ? `${itemWidth}rpx` : '100%',
|
|
240
240
|
}"
|
|
241
241
|
>
|
|
242
|
-
<u-waterfall :addTime="0" :modelValue="renderList" ref="uWaterfallRef">
|
|
242
|
+
<u-waterfall :addTime="0" :modelValue="renderList" ref="uWaterfallRef" custom-class="!gap-20">
|
|
243
243
|
<template #left="{ leftList: list }">
|
|
244
|
-
<view
|
|
244
|
+
<view
|
|
245
|
+
class="flex flex-col gap-3"
|
|
246
|
+
:style="{
|
|
247
|
+
marginRight: `${gap / 2}rpx`,
|
|
248
|
+
}"
|
|
249
|
+
>
|
|
245
250
|
<lcb-action-view
|
|
246
251
|
v-for="(item, index) in list"
|
|
247
252
|
:key="`${item?.productId}:${index}`"
|
|
@@ -262,7 +267,6 @@ defineExpose({
|
|
|
262
267
|
<lcb-product-item
|
|
263
268
|
v-bind="{ ...item, ...$props, ...attrs }"
|
|
264
269
|
layoutType="vertical"
|
|
265
|
-
tag-overflow-wrap
|
|
266
270
|
v-else
|
|
267
271
|
>
|
|
268
272
|
<template #coverImg="{ value }">
|
|
@@ -286,7 +290,12 @@ defineExpose({
|
|
|
286
290
|
</view>
|
|
287
291
|
</template>
|
|
288
292
|
<template #right="{ rightList: list }">
|
|
289
|
-
<view
|
|
293
|
+
<view
|
|
294
|
+
class="flex flex-col gap-3"
|
|
295
|
+
:style="{
|
|
296
|
+
marginLeft: `${gap / 2}rpx`,
|
|
297
|
+
}"
|
|
298
|
+
>
|
|
290
299
|
<lcb-action-view
|
|
291
300
|
v-for="(item, index) in list"
|
|
292
301
|
:key="`${item?.productId}:${index}`"
|
|
@@ -307,7 +316,6 @@ defineExpose({
|
|
|
307
316
|
v-else
|
|
308
317
|
v-bind="{ ...item, ...$props, ...attrs }"
|
|
309
318
|
layoutType="vertical"
|
|
310
|
-
tag-overflow-wrap
|
|
311
319
|
>
|
|
312
320
|
<template #coverImg="{ value }">
|
|
313
321
|
<wd-img
|
|
@@ -331,7 +339,7 @@ defineExpose({
|
|
|
331
339
|
</template>
|
|
332
340
|
</u-waterfall>
|
|
333
341
|
</view>
|
|
334
|
-
|
|
342
|
+
<!-- 单列滚动 -->
|
|
335
343
|
<template v-else-if="listType == 'horizontal'">
|
|
336
344
|
<lcb-action-view
|
|
337
345
|
v-for="(item, index) in renderList"
|
|
@@ -343,7 +351,7 @@ defineExpose({
|
|
|
343
351
|
<view
|
|
344
352
|
:style="{
|
|
345
353
|
width: `${itemWidth}rpx`,
|
|
346
|
-
marginLeft: index === 0 ? 0 :
|
|
354
|
+
marginLeft: index === 0 ? 0 : `${gap}rpx`,
|
|
347
355
|
}"
|
|
348
356
|
class="h-full"
|
|
349
357
|
>
|
|
@@ -378,10 +386,9 @@ defineExpose({
|
|
|
378
386
|
|
|
379
387
|
<style lang="scss" scoped>
|
|
380
388
|
.lcb-product-waterfall {
|
|
381
|
-
:deep(.u-waterfall) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
389
|
+
// :deep(.u-waterfall) {
|
|
390
|
+
// gap: 12px;
|
|
391
|
+
// }
|
|
385
392
|
:deep(.u-column) {
|
|
386
393
|
overflow: initial;
|
|
387
394
|
width: 0;
|
|
@@ -176,6 +176,7 @@ const coverImgWidth = computed(() => {
|
|
|
176
176
|
className,
|
|
177
177
|
'inline text-[32rpx] font-bold',
|
|
178
178
|
`line-clamp-${itemProps.titleLineClamp}`,
|
|
179
|
+
'whitespace-pre-wrap',
|
|
179
180
|
]"
|
|
180
181
|
:style="style"
|
|
181
182
|
:value="value"
|
|
@@ -216,7 +217,7 @@ const coverImgWidth = computed(() => {
|
|
|
216
217
|
</view>
|
|
217
218
|
</slot>
|
|
218
219
|
<slot :value="value" v-else-if="prop === 'titleIcon'" name="titleIcon">
|
|
219
|
-
<view :class="className" :style="style" class="inline-flex ml-1 align-text-top">
|
|
220
|
+
<view :class="className" :style="style" class="inline-flex ml-1 align-text-top items-center">
|
|
220
221
|
<wd-img :src="itemProps.titleIcon" width="12px" height="12px" />
|
|
221
222
|
</view>
|
|
222
223
|
</slot>
|
|
@@ -320,7 +321,7 @@ const coverImgWidth = computed(() => {
|
|
|
320
321
|
:value="value"
|
|
321
322
|
class="text-price font-bold text-27rpx"
|
|
322
323
|
>
|
|
323
|
-
|
|
324
|
+
{{ value }}
|
|
324
325
|
</view>
|
|
325
326
|
</slot>
|
|
326
327
|
|
|
@@ -339,8 +340,8 @@ const coverImgWidth = computed(() => {
|
|
|
339
340
|
|
|
340
341
|
<!-- 价格后缀 -->
|
|
341
342
|
<slot :value="value" v-else-if="prop === 'priceSuffix'" name="priceSuffix">
|
|
342
|
-
<view :class="className" :style="style" class="text-22rpx">
|
|
343
|
-
|
|
343
|
+
<view :class="className" :style="style" class="text-22rpx leading-normal">
|
|
344
|
+
{{ value }}
|
|
344
345
|
</view>
|
|
345
346
|
</slot>
|
|
346
347
|
|
|
@@ -144,12 +144,12 @@ const itemStyle = computed(() => {
|
|
|
144
144
|
<ItemValue prop="productName">
|
|
145
145
|
<!-- <template #productName="{ value }"><slot name="productName" :value="value" /></template> -->
|
|
146
146
|
</ItemValue>
|
|
147
|
-
<ItemValue prop="titleIcon">
|
|
148
|
-
<!-- <template #titleIcon="{ value }"><slot name="titleIcon" :value="value" /></template> -->
|
|
149
|
-
</ItemValue>
|
|
150
147
|
<ItemValue prop="level">
|
|
151
148
|
<!-- <template #level="{ value }"><slot name="level" :value="value" /></template> -->
|
|
152
149
|
</ItemValue>
|
|
150
|
+
<ItemValue prop="titleIcon">
|
|
151
|
+
<!-- <template #titleIcon="{ value }"><slot name="titleIcon" :value="value" /></template> -->
|
|
152
|
+
</ItemValue>
|
|
153
153
|
</view>
|
|
154
154
|
|
|
155
155
|
<view class="flex gap-1 items-center">
|
|
@@ -222,18 +222,11 @@ const itemStyle = computed(() => {
|
|
|
222
222
|
</template>
|
|
223
223
|
</view>
|
|
224
224
|
<view class="flex gap-[4rpx] items-end" v-if="priceVisible && isNumber(price)">
|
|
225
|
-
<
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
</template>
|
|
231
|
-
<template #priceSuffix="{ value }">
|
|
232
|
-
<slot name="priceSuffix" :value="value" />
|
|
233
|
-
</template>
|
|
234
|
-
</ItemValue>
|
|
235
|
-
<ItemValue :prop="propName" v-else />
|
|
236
|
-
</template>
|
|
225
|
+
<ItemValue prop="priceUnit" />
|
|
226
|
+
<view class="flex items-center justify-center gap-0.5">
|
|
227
|
+
<ItemValue prop="price" />
|
|
228
|
+
<ItemValue prop="priceSuffix" />
|
|
229
|
+
</view>
|
|
237
230
|
</view>
|
|
238
231
|
</view>
|
|
239
232
|
<ItemValue prop="priceTips">
|
|
@@ -283,16 +276,17 @@ const itemStyle = computed(() => {
|
|
|
283
276
|
<view class="p-2 flex flex-col flex-1 text-26rpx overflow-hidden relative">
|
|
284
277
|
<slot name="contentSection" />
|
|
285
278
|
<view class="flex flex-col gap-[5px] overflow-hidden">
|
|
286
|
-
<view
|
|
279
|
+
<view>
|
|
287
280
|
<ItemValue prop="productName">
|
|
288
281
|
<!-- <template #productName="{ value }"><slot name="productName" :value="value" /></template> -->
|
|
289
282
|
</ItemValue>
|
|
290
|
-
|
|
291
|
-
<!-- <template #titleIcon="{ value }"><slot name="titleIcon" :value="value" /></template> -->
|
|
292
|
-
</ItemValue>
|
|
283
|
+
|
|
293
284
|
<ItemValue prop="level">
|
|
294
285
|
<!-- <template #level="{ value }"><slot name="level" :value="value" /></template> -->
|
|
295
286
|
</ItemValue>
|
|
287
|
+
<ItemValue prop="titleIcon">
|
|
288
|
+
<!-- <template #titleIcon="{ value }"><slot name="titleIcon" :value="value" /></template> -->
|
|
289
|
+
</ItemValue>
|
|
296
290
|
</view>
|
|
297
291
|
|
|
298
292
|
<view class="flex gap-1 items-center">
|
|
@@ -344,37 +338,16 @@ const itemStyle = computed(() => {
|
|
|
344
338
|
class="flex gap-[2rpx] items-end line-through"
|
|
345
339
|
v-if="scribePriceVisible && isNumber(scribePrice)"
|
|
346
340
|
>
|
|
347
|
-
<
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
>
|
|
351
|
-
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
352
|
-
<template #scribePrice="{ value }">
|
|
353
|
-
<slot name="scribePrice" :value="value" />
|
|
354
|
-
</template>
|
|
355
|
-
<template #scribePriceUnit="{ value }">
|
|
356
|
-
<slot name="scribePriceUnit" :value="value" />
|
|
357
|
-
</template>
|
|
358
|
-
<template #scribePriceSuffix="{ value }">
|
|
359
|
-
<slot name="scribePriceSuffix" :value="value" />
|
|
360
|
-
</template>
|
|
361
|
-
</ItemValue>
|
|
362
|
-
<ItemValue :prop="propName" v-else />
|
|
363
|
-
</template>
|
|
341
|
+
<ItemValue prop="scribePriceUnit" />
|
|
342
|
+
<ItemValue prop="scribePrice" />
|
|
343
|
+
<ItemValue prop="scribePriceSuffix" />
|
|
364
344
|
</view>
|
|
365
|
-
<view class="flex gap-
|
|
366
|
-
<
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
</template>
|
|
372
|
-
<template #priceSuffix="{ value }">
|
|
373
|
-
<slot name="priceSuffix" :value="value" />
|
|
374
|
-
</template>
|
|
375
|
-
</ItemValue>
|
|
376
|
-
<ItemValue :prop="propName" v-else />
|
|
377
|
-
</template>
|
|
345
|
+
<view class="flex gap-0.5 items-end" v-if="priceVisible && isNumber(price)">
|
|
346
|
+
<ItemValue prop="priceUnit" />
|
|
347
|
+
<view class="flex items-center justify-center gap-0.5">
|
|
348
|
+
<ItemValue prop="price" />
|
|
349
|
+
<ItemValue prop="priceSuffix" />
|
|
350
|
+
</view>
|
|
378
351
|
</view>
|
|
379
352
|
</view>
|
|
380
353
|
<ItemValue prop="priceTips">
|
package/package.json
CHANGED
|
@@ -175,9 +175,9 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
175
175
|
borderRadius: number
|
|
176
176
|
titleLineClamp: number
|
|
177
177
|
layoutType: 'vertical' | 'horizontal'
|
|
178
|
-
tagOverflowWrap: boolean
|
|
179
178
|
priceUnit: any
|
|
180
179
|
scribePriceUnit: any
|
|
180
|
+
tagOverflowWrap: boolean
|
|
181
181
|
tagType: import('@tplc/wot/components/wd-tag/types').TagType
|
|
182
182
|
tagPlain: boolean
|
|
183
183
|
tagMark: boolean
|