@tplc/business 0.1.12 → 0.1.13
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 +29 -0
- package/components/lcb-image/Image/index.vue +2 -1
- package/components/lcb-list/components/FilterList/index.vue +7 -3
- package/components/lcb-list/lcb-list.vue +13 -2
- package/components/lcb-list/types.ts +0 -13
- package/components/lcb-product/lcb-product.vue +41 -2
- package/components/lcb-product-item/components/ItemValue.vue +90 -6
- package/components/lcb-product-item/lcb-product-item.vue +210 -76
- package/components/lcb-product-item/types.ts +15 -14
- package/package.json +1 -1
- package/types/components/lcb-list/lcb-list.vue.d.ts +1 -1
- package/types/components/lcb-list/types.d.ts +0 -1
- package/types/components/lcb-product-item/components/ItemValue.vue.d.ts +2 -0
- package/types/components/lcb-product-item/lcb-product-item.vue.d.ts +40 -0
- package/types/components/lcb-product-item/types.d.ts +14 -13
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
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.1.13](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.1.6...v0.1.13) (2024-10-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### 🚀 Chore | 构建/工程依赖/工具
|
|
9
|
+
|
|
10
|
+
* **release:** 0.1.10 ([732f746](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/732f746ecc268186d3357b882c40e4ee0a227250))
|
|
11
|
+
* **release:** 0.1.11 ([0ff8ceb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/0ff8ceb8c63810597998d2660a87ccc8007f7196))
|
|
12
|
+
* **release:** 0.1.12 ([cb45e26](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/cb45e26560dbc7de5691950e480b3f070d3dafa5))
|
|
13
|
+
* **release:** 0.1.7 ([69fbf39](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/69fbf39f9e9f1c7b2daf25aa81d7e508a530fa2b))
|
|
14
|
+
* **release:** 0.1.8 ([0cd2b98](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/0cd2b98488ea39de407df1badedf2554f94190f1))
|
|
15
|
+
* **release:** 0.1.9 ([b1dd896](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/b1dd896c4acc76bfc370b39c7d0a24eb729182eb))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### 🐛 Bug Fixes | Bug 修复
|
|
19
|
+
|
|
20
|
+
* 修改图片尺寸 ([1d4dd25](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/1d4dd25e5065401562cd75560507bc23953967e8))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### ✨ Features | 新功能
|
|
24
|
+
|
|
25
|
+
* lcb-list 相关 slot 适应小程序调整 ([aff0850](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/aff085079e4918761191a7a00f7c48a5fb2c599d))
|
|
26
|
+
* nav 颜色调整 ([1f7bba0](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/1f7bba00c2386a85a5bfe3b3973ad160c87efd78))
|
|
27
|
+
* version update ([3e0904a](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/3e0904a72675d2c262ec4efd388c08a1f4a5375a))
|
|
28
|
+
* 上传图片 ([5ae5dcb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/5ae5dcbb018ce5c9bbc53290eb0e3e082985d887))
|
|
29
|
+
* 优化 lcb-product-item 插槽与属性 ([29d00e4](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/29d00e49adf8c47ea223f92b400eac74385f8ee0))
|
|
30
|
+
* 新增dynamic-data ([d43b20f](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/d43b20f5f334ae6ac5b46294b5caf7903bc4a820))
|
|
31
|
+
* 类型调整 ([206b930](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/206b93056631e72531cd39617a3c6e7ad5529723))
|
|
32
|
+
* 调整usertop ui ([13daab3](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/13daab39ecd02d313cf9c9c61fa8ab79ba10198f))
|
|
33
|
+
|
|
5
34
|
### [0.1.12](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.1.6...v0.1.12) (2024-10-28)
|
|
6
35
|
|
|
7
36
|
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
:src="item.url"
|
|
18
18
|
:enable-preview="enablePreview"
|
|
19
19
|
mode="widthFix"
|
|
20
|
-
|
|
20
|
+
height="auto"
|
|
21
|
+
:custom-class="`${styleGroup == 3 ? 'overflow-hidden' : 'overflow-hidden block'}`"
|
|
21
22
|
:style="{
|
|
22
23
|
borderRadius: transformValueUnit(imageRadius),
|
|
23
24
|
display: 'block',
|
|
@@ -37,13 +37,16 @@ const normalizeDataList = computed(() => {
|
|
|
37
37
|
const imgArr = formatJson(item.coverImg, [])
|
|
38
38
|
const tags = formatJson(item.tags, [])
|
|
39
39
|
return {
|
|
40
|
-
...item,
|
|
41
40
|
image: imgArr?.[1] || imgArr?.[0],
|
|
42
41
|
title: item?.productName,
|
|
43
|
-
|
|
42
|
+
// subTitle: item?.poiName,
|
|
43
|
+
location: item?.address,
|
|
44
44
|
price: item?.price,
|
|
45
|
-
location: item?.cityAreaName,
|
|
46
45
|
priceSuffix: item?.behindUnit,
|
|
46
|
+
// originPrice: item?.price,
|
|
47
|
+
// originPriceSuffix: item?.behindUnit,
|
|
48
|
+
...item,
|
|
49
|
+
tags,
|
|
47
50
|
}
|
|
48
51
|
})
|
|
49
52
|
// console.log('list', list)
|
|
@@ -77,6 +80,7 @@ watch(
|
|
|
77
80
|
)
|
|
78
81
|
const queryList = async (page: number, limit: number) => {
|
|
79
82
|
try {
|
|
83
|
+
// const { data } = mockData
|
|
80
84
|
const { data } = await uni.$lcb.http.post(props.url, {
|
|
81
85
|
...props.baseParam,
|
|
82
86
|
...props.filter,
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
|
|
91
91
|
<script setup lang="ts">
|
|
92
92
|
import { computed, inject, Ref, ref, watch, useAttrs } from 'vue'
|
|
93
|
-
import { LcbListProps
|
|
93
|
+
import { LcbListProps } from './types'
|
|
94
94
|
import { FilterComponent, getFilterDetail, LcbFilterResult } from './api'
|
|
95
95
|
import FilterSelect from './components/FilterSelect/index.vue'
|
|
96
96
|
import TreeSelect from './components/TreeSelect/index.vue'
|
|
@@ -113,7 +113,18 @@ defineOptions({
|
|
|
113
113
|
})
|
|
114
114
|
const form = inject<Ref<Record<string, any>>>(FORM_KEY)
|
|
115
115
|
const dropMenu = ref()
|
|
116
|
-
const props = withDefaults(defineProps<LcbListProps>(),
|
|
116
|
+
const props = withDefaults(defineProps<LcbListProps>(), {
|
|
117
|
+
pageFilterType: 'hotelTravelFilter',
|
|
118
|
+
border: true,
|
|
119
|
+
styleMode: 'default',
|
|
120
|
+
listType: 'list',
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
pageListProps: () => ({
|
|
123
|
+
productProps: {
|
|
124
|
+
// listType: 'list',
|
|
125
|
+
},
|
|
126
|
+
}),
|
|
127
|
+
} as LcbListProps as any)
|
|
117
128
|
const info = ref<LcbFilterResult>()
|
|
118
129
|
const filter = ref<Record<string, any>>({})
|
|
119
130
|
const titleObj = ref<Record<string, any>>({})
|
|
@@ -24,16 +24,3 @@ export interface FilterItemProps {
|
|
|
24
24
|
options?: Option[]
|
|
25
25
|
test?: 1
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
export const defaultLcbListProps: LcbListProps = {
|
|
29
|
-
pageFilterType: 'hotelTravelFilter',
|
|
30
|
-
border: true,
|
|
31
|
-
styleMode: 'default',
|
|
32
|
-
listType: 'list',
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
pageListProps: () => ({
|
|
35
|
-
productProps: {
|
|
36
|
-
// listType: 'list',
|
|
37
|
-
},
|
|
38
|
-
}),
|
|
39
|
-
}
|
|
@@ -31,7 +31,33 @@ defineSlots<{
|
|
|
31
31
|
<lcb-product-item
|
|
32
32
|
v-bind="{ ...item, ...attrs }"
|
|
33
33
|
:imageStyle="{ width: `${imageWidthPercent}%` }"
|
|
34
|
-
|
|
34
|
+
>
|
|
35
|
+
<!-- <template #itemTopSection>
|
|
36
|
+
<view class="min-w-10 min-h-10 bg-red-500/50"></view>
|
|
37
|
+
</template>
|
|
38
|
+
<template #itemBottomSection>
|
|
39
|
+
<view class="min-w-10 min-h-10 bg-yellow-500/50"></view>
|
|
40
|
+
</template>
|
|
41
|
+
<template #itemLeftSection>
|
|
42
|
+
<view class="min-w-10 min-h-10 bg-blue-500/50"></view>
|
|
43
|
+
</template>
|
|
44
|
+
<template #itemRightSection>
|
|
45
|
+
<view class="min-w-10 min-h-10 bg-green-500/50"></view>
|
|
46
|
+
</template> -->
|
|
47
|
+
|
|
48
|
+
<!-- <template #imageSection>
|
|
49
|
+
<view class="min-w-5 min-h-5 bg-yellow-400 right-1 top-1 absolute z-10"></view>
|
|
50
|
+
</template>
|
|
51
|
+
|
|
52
|
+
<template #itemSection>
|
|
53
|
+
<view class="min-w-10 min-h-10 bg-blue-500/50 right-0 top-0 absolute z-10"></view>
|
|
54
|
+
</template>
|
|
55
|
+
<template #contentSection>
|
|
56
|
+
<view
|
|
57
|
+
class="min-w-15 min-h-15 bg-gray-500/20 right-10 top-10 absolute z-10 rounded-full"
|
|
58
|
+
></view>
|
|
59
|
+
</template> -->
|
|
60
|
+
</lcb-product-item>
|
|
35
61
|
</slot>
|
|
36
62
|
</view>
|
|
37
63
|
</view>
|
|
@@ -46,7 +72,20 @@ defineSlots<{
|
|
|
46
72
|
layoutType="vertical"
|
|
47
73
|
className="!h-full"
|
|
48
74
|
:imageStyle="{ height: `${imageHeightPercent}%` }"
|
|
49
|
-
|
|
75
|
+
>
|
|
76
|
+
<!-- <template #itemTopSection>
|
|
77
|
+
<view class="min-w-10 min-h-10 bg-red-500/50"></view>
|
|
78
|
+
</template>
|
|
79
|
+
<template #itemBottomSection>
|
|
80
|
+
<view class="min-w-10 min-h-10 bg-yellow-500/50"></view>
|
|
81
|
+
</template>
|
|
82
|
+
<template #itemLeftSection>
|
|
83
|
+
<view class="min-w-10 min-h-10 bg-blue-500/50"></view>
|
|
84
|
+
</template>
|
|
85
|
+
<template #itemRightSection>
|
|
86
|
+
<view class="min-w-10 min-h-10 bg-green-500/50"></view>
|
|
87
|
+
</template> -->
|
|
88
|
+
</lcb-product-item>
|
|
50
89
|
</slot>
|
|
51
90
|
</view>
|
|
52
91
|
</view>
|
|
@@ -4,7 +4,7 @@ import { isArray } from '@tplc/wot/components/common/util'
|
|
|
4
4
|
|
|
5
5
|
// const attrs = useAttrs()
|
|
6
6
|
|
|
7
|
-
const itemProps = inject('lcb-product-item-props')
|
|
7
|
+
const itemProps: any = inject('lcb-product-item-props')
|
|
8
8
|
|
|
9
9
|
const props = withDefaults(
|
|
10
10
|
defineProps<{
|
|
@@ -23,6 +23,7 @@ defineSlots<{
|
|
|
23
23
|
priceSuffix(props: { value: any }): any
|
|
24
24
|
originPrice(props: { value: any }): any
|
|
25
25
|
originPriceUnit(props: { value: any }): any
|
|
26
|
+
originPriceSuffix(props: { value: any }): any
|
|
26
27
|
tags(props: { value: any }): any
|
|
27
28
|
location(props: { value: any }): any
|
|
28
29
|
distance(props: { value: any }): any
|
|
@@ -50,12 +51,37 @@ const value = computed(() => {
|
|
|
50
51
|
<slot :value="value" v-if="prop === 'image'" name="image">
|
|
51
52
|
<view :value="value" :class="className" :style="style">
|
|
52
53
|
<image :src="value" class="w-full h-full" mode="aspectFill" />
|
|
54
|
+
<slot></slot>
|
|
53
55
|
</view>
|
|
54
56
|
</slot>
|
|
55
57
|
|
|
56
58
|
<!-- 标题 -->
|
|
57
59
|
<slot :value="value" v-if="prop === 'title'" name="title">
|
|
58
|
-
<view
|
|
60
|
+
<view
|
|
61
|
+
:class="[
|
|
62
|
+
className,
|
|
63
|
+
'text-ellipsis',
|
|
64
|
+
{
|
|
65
|
+
'line-clamp-1': itemProps?.titleLineClamp === 1,
|
|
66
|
+
'line-clamp-2': itemProps?.titleLineClamp === 2,
|
|
67
|
+
'line-clamp-3': itemProps?.titleLineClamp === 3,
|
|
68
|
+
},
|
|
69
|
+
]"
|
|
70
|
+
:style="style"
|
|
71
|
+
:value="value"
|
|
72
|
+
>
|
|
73
|
+
<view>{{ value }}</view>
|
|
74
|
+
</view>
|
|
75
|
+
</slot>
|
|
76
|
+
|
|
77
|
+
<!-- 副标题 -->
|
|
78
|
+
<slot :value="value" v-if="prop === 'subTitle'" name="subTitle">
|
|
79
|
+
<view
|
|
80
|
+
:class="className"
|
|
81
|
+
:style="style"
|
|
82
|
+
:value="value"
|
|
83
|
+
class="text-22rpx text-gray-500 text-ellipsis line-clamp-1"
|
|
84
|
+
>
|
|
59
85
|
<view>{{ value }}</view>
|
|
60
86
|
</view>
|
|
61
87
|
</slot>
|
|
@@ -69,21 +95,48 @@ const value = computed(() => {
|
|
|
69
95
|
class="text-gray-500 text-22rpx flex gap-3rpx items-center"
|
|
70
96
|
>
|
|
71
97
|
<wd-icon name="location" size="32rpx"></wd-icon>
|
|
72
|
-
<view>{{ value }}</view>
|
|
98
|
+
<view class="text-ellipsis line-clamp-1">{{ value }}</view>
|
|
99
|
+
</view>
|
|
100
|
+
</slot>
|
|
101
|
+
|
|
102
|
+
<!-- 距离 -->
|
|
103
|
+
<slot :value="value" v-if="prop === 'distance'" name="distance">
|
|
104
|
+
<view
|
|
105
|
+
:class="className"
|
|
106
|
+
:style="style"
|
|
107
|
+
:value="value"
|
|
108
|
+
class="text-gray-500 text-22rpx flex gap-3rpx items-center"
|
|
109
|
+
>
|
|
110
|
+
<wd-icon name="location" size="32rpx"></wd-icon>
|
|
111
|
+
<view class="text-ellipsis line-clamp-1">
|
|
112
|
+
距您{{ value }}{{ itemProps?.distanceUnit ?? 'km' }}
|
|
113
|
+
</view>
|
|
73
114
|
</view>
|
|
74
115
|
</slot>
|
|
75
116
|
|
|
76
117
|
<!-- 标签 -->
|
|
77
118
|
<slot :value="value" v-if="prop === 'tags'" name="tags">
|
|
78
|
-
<view
|
|
119
|
+
<view
|
|
120
|
+
:class="[
|
|
121
|
+
'flex gap-1',
|
|
122
|
+
{
|
|
123
|
+
'whitespace-nowrap overflow-auto': !itemProps?.tagOverflowWrap,
|
|
124
|
+
'flex-wrap': itemProps?.tagOverflowWrap,
|
|
125
|
+
},
|
|
126
|
+
]"
|
|
127
|
+
>
|
|
79
128
|
<wd-tag
|
|
80
129
|
v-for="tag in value"
|
|
81
130
|
:key="tag"
|
|
82
131
|
class="!text-20rpx"
|
|
83
132
|
:class="className"
|
|
84
133
|
:style="style"
|
|
85
|
-
|
|
86
|
-
|
|
134
|
+
:color="itemProps?.tagContentColor"
|
|
135
|
+
:bg-color="itemProps?.tagBgColor"
|
|
136
|
+
:plain="itemProps?.tagPlain ?? true"
|
|
137
|
+
:mark="itemProps?.tagMark ?? false"
|
|
138
|
+
:round="itemProps?.tagRound ?? false"
|
|
139
|
+
:type="itemProps?.tagType ?? 'primary'"
|
|
87
140
|
>
|
|
88
141
|
{{ tag }}
|
|
89
142
|
</wd-tag>
|
|
@@ -120,5 +173,36 @@ const value = computed(() => {
|
|
|
120
173
|
<view>{{ value }}</view>
|
|
121
174
|
</view>
|
|
122
175
|
</slot>
|
|
176
|
+
|
|
177
|
+
<!-- 原始价格单位 -->
|
|
178
|
+
<slot :value="value" v-if="prop === 'originPriceUnit'" name="originPriceUnit">
|
|
179
|
+
<view
|
|
180
|
+
:class="className"
|
|
181
|
+
:style="style"
|
|
182
|
+
:value="value"
|
|
183
|
+
class="text-gray-500 font-bold text-19rpx"
|
|
184
|
+
>
|
|
185
|
+
<view>{{ value }}</view>
|
|
186
|
+
</view>
|
|
187
|
+
</slot>
|
|
188
|
+
|
|
189
|
+
<!-- 原始价格 -->
|
|
190
|
+
<slot :value="value" v-if="prop === 'originPrice'" name="originPrice">
|
|
191
|
+
<view
|
|
192
|
+
:class="className"
|
|
193
|
+
:style="style"
|
|
194
|
+
:value="value"
|
|
195
|
+
class="text-gray-500 font-bold text-20rpx"
|
|
196
|
+
>
|
|
197
|
+
<view>{{ value }}</view>
|
|
198
|
+
</view>
|
|
199
|
+
</slot>
|
|
200
|
+
|
|
201
|
+
<!-- 原始价格后缀 -->
|
|
202
|
+
<slot :value="value" v-if="prop === 'originPriceSuffix'" name="originPriceSuffix">
|
|
203
|
+
<view :class="className" :style="style" :value="value" class="text-gray-500 text-20rpx">
|
|
204
|
+
<view>{{ value }}</view>
|
|
205
|
+
</view>
|
|
206
|
+
</slot>
|
|
123
207
|
</template>
|
|
124
208
|
</template>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, provide, useAttrs } from 'vue'
|
|
3
|
-
import {
|
|
3
|
+
import { LcbProductItemProps } from './types'
|
|
4
4
|
import ItemValue from './components/ItemValue.vue'
|
|
5
5
|
|
|
6
|
+
const isNumber = (value: any) => typeof value === 'number'
|
|
7
|
+
|
|
6
8
|
defineOptions({
|
|
7
9
|
name: 'LcbProductItem',
|
|
8
10
|
options: {
|
|
@@ -14,19 +16,28 @@ defineOptions({
|
|
|
14
16
|
|
|
15
17
|
const props = withDefaults(defineProps<LcbProductItemProps>(), {
|
|
16
18
|
layoutType: 'horizontal',
|
|
19
|
+
titleLineClamp: 1,
|
|
20
|
+
tagOverflowWrap: false,
|
|
21
|
+
tagType: 'primary',
|
|
22
|
+
tagPlain: true,
|
|
23
|
+
tagMark: false,
|
|
24
|
+
tagRound: false,
|
|
25
|
+
distanceUnit: 'km',
|
|
26
|
+
|
|
17
27
|
priceUnit: '¥',
|
|
18
28
|
originPriceUnit: '¥',
|
|
19
29
|
imageVisible: true,
|
|
20
30
|
titleVisible: true,
|
|
21
|
-
subTitleVisible:
|
|
31
|
+
subTitleVisible: false,
|
|
22
32
|
priceVisible: true,
|
|
23
33
|
priceUnitVisible: true,
|
|
24
34
|
priceSuffixVisible: true,
|
|
25
35
|
originPriceVisible: true,
|
|
26
36
|
originPriceUnitVisible: true,
|
|
37
|
+
originPriceSuffixVisible: true,
|
|
27
38
|
tagsVisible: true,
|
|
28
39
|
locationVisible: true,
|
|
29
|
-
distanceVisible:
|
|
40
|
+
distanceVisible: false,
|
|
30
41
|
})
|
|
31
42
|
const attrs = useAttrs()
|
|
32
43
|
|
|
@@ -41,9 +52,18 @@ defineSlots<{
|
|
|
41
52
|
priceSuffix(props: { value: any }): any
|
|
42
53
|
originPrice(props: { value: any }): any
|
|
43
54
|
originPriceUnit(props: { value: any }): any
|
|
55
|
+
originPriceSuffix(props: { value: any }): any
|
|
44
56
|
tags(props: { value: any }): any
|
|
45
57
|
location(props: { value: any }): any
|
|
46
58
|
distance(props: { value: any }): any
|
|
59
|
+
|
|
60
|
+
itemSection(): any
|
|
61
|
+
itemTopSection(): any
|
|
62
|
+
itemBottomSection(): any
|
|
63
|
+
itemLeftSection(): any
|
|
64
|
+
itemRightSection(): any
|
|
65
|
+
imageSection(): any
|
|
66
|
+
contentSection(): any
|
|
47
67
|
}>()
|
|
48
68
|
|
|
49
69
|
// console.log('attrs', attrs)
|
|
@@ -51,46 +71,43 @@ defineSlots<{
|
|
|
51
71
|
|
|
52
72
|
<template>
|
|
53
73
|
<!-- 横向布局 -->
|
|
54
|
-
<view
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<view class="flex flex-col gap-2 overflow-hidden">
|
|
71
|
-
<template v-for="propName in ['title', 'location', 'tags']" :key="propName">
|
|
72
|
-
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
73
|
-
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
74
|
-
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
75
|
-
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
76
|
-
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
77
|
-
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
78
|
-
<template #priceSuffix="{ value }"><slot name="priceSuffix" :value="value" /></template>
|
|
79
|
-
<template #originPrice="{ value }"><slot name="originPrice" :value="value" /></template>
|
|
80
|
-
<template #originPriceUnit="{ value }">
|
|
81
|
-
<slot name="originPriceUnit" :value="value" />
|
|
82
|
-
</template>
|
|
83
|
-
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
84
|
-
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
85
|
-
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
86
|
-
</ItemValue>
|
|
87
|
-
<ItemValue :prop="propName" v-else />
|
|
74
|
+
<view
|
|
75
|
+
v-if="layoutType === 'horizontal'"
|
|
76
|
+
:class="className"
|
|
77
|
+
class="flex flex-col gap-1 px-2 py-3 bg-white relative"
|
|
78
|
+
>
|
|
79
|
+
<slot name="itemSection" />
|
|
80
|
+
<slot name="itemTopSection" />
|
|
81
|
+
<view class="flex gap-2">
|
|
82
|
+
<slot name="itemLeftSection" />
|
|
83
|
+
<ItemValue
|
|
84
|
+
v-if="!!$slots?.['image']"
|
|
85
|
+
prop="image"
|
|
86
|
+
className="w-1/3 h-220rpx bg-gray-100 rounded-sm overflow-hidden relative"
|
|
87
|
+
>
|
|
88
|
+
<template #default>
|
|
89
|
+
<slot name="imageSection" />
|
|
88
90
|
</template>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
<template #image="{ value }">
|
|
92
|
+
<slot name="image" :value="value" />
|
|
93
|
+
</template>
|
|
94
|
+
</ItemValue>
|
|
95
|
+
<ItemValue
|
|
96
|
+
v-else
|
|
97
|
+
prop="image"
|
|
98
|
+
className="w-1/3 h-220rpx bg-gray-100 rounded-sm overflow-hidden relative"
|
|
99
|
+
>
|
|
100
|
+
<template #default>
|
|
101
|
+
<slot name="imageSection" />
|
|
102
|
+
</template>
|
|
103
|
+
</ItemValue>
|
|
104
|
+
<view class="flex flex-col flex-1 gap-2 justify-between text-26rpx overflow-hidden relative">
|
|
105
|
+
<slot name="contentSection" />
|
|
106
|
+
<view class="flex flex-col gap-2 overflow-hidden">
|
|
107
|
+
<template
|
|
108
|
+
v-for="propName in ['title', 'subTitle', 'location', 'distance', 'tags']"
|
|
109
|
+
:key="propName"
|
|
110
|
+
>
|
|
94
111
|
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
95
112
|
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
96
113
|
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
@@ -113,46 +130,101 @@ defineSlots<{
|
|
|
113
130
|
<ItemValue :prop="propName" v-else />
|
|
114
131
|
</template>
|
|
115
132
|
</view>
|
|
133
|
+
|
|
134
|
+
<view class="flex gap-2">
|
|
135
|
+
<view class="flex gap-[4rpx] items-end" v-if="priceVisible && isNumber(price)">
|
|
136
|
+
<template v-for="propName in ['priceUnit', 'price', 'priceSuffix']" :key="propName">
|
|
137
|
+
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
138
|
+
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
139
|
+
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
140
|
+
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
141
|
+
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
142
|
+
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
143
|
+
<template #priceSuffix="{ value }">
|
|
144
|
+
<slot name="priceSuffix" :value="value" />
|
|
145
|
+
</template>
|
|
146
|
+
<template #originPrice="{ value }">
|
|
147
|
+
<slot name="originPrice" :value="value" />
|
|
148
|
+
</template>
|
|
149
|
+
<template #originPriceUnit="{ value }">
|
|
150
|
+
<slot name="originPriceUnit" :value="value" />
|
|
151
|
+
</template>
|
|
152
|
+
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
153
|
+
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
154
|
+
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
155
|
+
</ItemValue>
|
|
156
|
+
<ItemValue :prop="propName" v-else />
|
|
157
|
+
</template>
|
|
158
|
+
</view>
|
|
159
|
+
<view
|
|
160
|
+
class="flex gap-[2rpx] items-end line-through"
|
|
161
|
+
v-if="originPriceVisible && isNumber(originPrice)"
|
|
162
|
+
>
|
|
163
|
+
<template
|
|
164
|
+
v-for="propName in ['originPriceUnit', 'originPrice', 'originPriceSuffix']"
|
|
165
|
+
:key="propName"
|
|
166
|
+
>
|
|
167
|
+
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
168
|
+
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
169
|
+
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
170
|
+
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
171
|
+
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
172
|
+
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
173
|
+
<template #priceSuffix="{ value }">
|
|
174
|
+
<slot name="priceSuffix" :value="value" />
|
|
175
|
+
</template>
|
|
176
|
+
<template #originPrice="{ value }">
|
|
177
|
+
<slot name="originPrice" :value="value" />
|
|
178
|
+
</template>
|
|
179
|
+
<template #originPriceUnit="{ value }">
|
|
180
|
+
<slot name="originPriceUnit" :value="value" />
|
|
181
|
+
</template>
|
|
182
|
+
<template #originPriceSuffix="{ value }">
|
|
183
|
+
<slot name="originPriceSuffix" :value="value" />
|
|
184
|
+
</template>
|
|
185
|
+
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
186
|
+
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
187
|
+
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
188
|
+
</ItemValue>
|
|
189
|
+
<ItemValue :prop="propName" v-else />
|
|
190
|
+
</template>
|
|
191
|
+
</view>
|
|
192
|
+
</view>
|
|
116
193
|
</view>
|
|
194
|
+
<slot name="itemRightSection" />
|
|
117
195
|
</view>
|
|
196
|
+
<slot name="itemBottomSection" />
|
|
118
197
|
</view>
|
|
119
198
|
|
|
120
199
|
<!-- 竖向布局 -->
|
|
121
|
-
<view v-if="layoutType === 'vertical'"
|
|
122
|
-
<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
:class="'p-2'"
|
|
130
|
-
class="flex flex-col flex-1 gap-2 justify-between text-26rpx overflow-hidden"
|
|
131
|
-
>
|
|
132
|
-
<view class="flex flex-col gap-2 overflow-hidden">
|
|
133
|
-
<template v-for="propName in ['title', 'location', 'tags']" :key="propName">
|
|
134
|
-
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
135
|
-
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
136
|
-
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
137
|
-
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
138
|
-
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
139
|
-
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
140
|
-
<template #priceSuffix="{ value }"><slot name="priceSuffix" :value="value" /></template>
|
|
141
|
-
<template #originPrice="{ value }"><slot name="originPrice" :value="value" /></template>
|
|
142
|
-
<template #originPriceUnit="{ value }">
|
|
143
|
-
<slot name="originPriceUnit" :value="value" />
|
|
144
|
-
</template>
|
|
145
|
-
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
146
|
-
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
147
|
-
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
148
|
-
</ItemValue>
|
|
149
|
-
<ItemValue :prop="propName" v-else />
|
|
200
|
+
<view v-if="layoutType === 'vertical'" class="flex bg-white relative" :class="className">
|
|
201
|
+
<slot name="itemSection" />
|
|
202
|
+
<slot name="itemLeftSection" />
|
|
203
|
+
<view class="flex-1 flex flex-col w-full overflow-hidden">
|
|
204
|
+
<slot name="itemTopSection" />
|
|
205
|
+
<ItemValue v-if="!!$slots?.['image']" prop="image" className="overflow-hidden relative">
|
|
206
|
+
<template #default>
|
|
207
|
+
<slot name="imageSection" />
|
|
150
208
|
</template>
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
<template #image="{ value }">
|
|
210
|
+
<slot name="image" :value="value" />
|
|
211
|
+
</template>
|
|
212
|
+
</ItemValue>
|
|
213
|
+
<ItemValue v-else prop="image" className="overflow-hidden relative">
|
|
214
|
+
<template #default>
|
|
215
|
+
<slot name="imageSection" />
|
|
216
|
+
</template>
|
|
217
|
+
</ItemValue>
|
|
218
|
+
<view
|
|
219
|
+
:class="'p-2'"
|
|
220
|
+
class="flex flex-col flex-1 gap-2 justify-between text-26rpx overflow-hidden relative"
|
|
221
|
+
>
|
|
222
|
+
<slot name="contentSection" />
|
|
223
|
+
<view class="flex flex-col gap-2 overflow-hidden">
|
|
224
|
+
<template
|
|
225
|
+
v-for="propName in ['title', 'subTitle', 'location', 'distance', 'tags']"
|
|
226
|
+
:key="propName"
|
|
227
|
+
>
|
|
156
228
|
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
157
229
|
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
158
230
|
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
@@ -175,8 +247,70 @@ defineSlots<{
|
|
|
175
247
|
<ItemValue :prop="propName" v-else />
|
|
176
248
|
</template>
|
|
177
249
|
</view>
|
|
250
|
+
|
|
251
|
+
<view class="flex gap-2">
|
|
252
|
+
<view class="flex gap-[4rpx] items-end" v-if="priceVisible && isNumber(price)">
|
|
253
|
+
<template v-for="propName in ['priceUnit', 'price', 'priceSuffix']" :key="propName">
|
|
254
|
+
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
255
|
+
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
256
|
+
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
257
|
+
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
258
|
+
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
259
|
+
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
260
|
+
<template #priceSuffix="{ value }">
|
|
261
|
+
<slot name="priceSuffix" :value="value" />
|
|
262
|
+
</template>
|
|
263
|
+
<template #originPrice="{ value }">
|
|
264
|
+
<slot name="originPrice" :value="value" />
|
|
265
|
+
</template>
|
|
266
|
+
<template #originPriceUnit="{ value }">
|
|
267
|
+
<slot name="originPriceUnit" :value="value" />
|
|
268
|
+
</template>
|
|
269
|
+
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
270
|
+
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
271
|
+
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
272
|
+
</ItemValue>
|
|
273
|
+
<ItemValue :prop="propName" v-else />
|
|
274
|
+
</template>
|
|
275
|
+
</view>
|
|
276
|
+
<view
|
|
277
|
+
class="flex gap-[2rpx] items-end line-through"
|
|
278
|
+
v-if="originPriceVisible && isNumber(originPrice)"
|
|
279
|
+
>
|
|
280
|
+
<template
|
|
281
|
+
v-for="propName in ['originPriceUnit', 'originPrice', 'originPriceSuffix']"
|
|
282
|
+
:key="propName"
|
|
283
|
+
>
|
|
284
|
+
<ItemValue :prop="propName" v-if="!!$slots?.[propName]">
|
|
285
|
+
<template #image="{ value }"><slot name="image" :value="value" /></template>
|
|
286
|
+
<template #title="{ value }"><slot name="title" :value="value" /></template>
|
|
287
|
+
<template #subTitle="{ value }"><slot name="subTitle" :value="value" /></template>
|
|
288
|
+
<template #price="{ value }"><slot name="price" :value="value" /></template>
|
|
289
|
+
<template #priceUnit="{ value }"><slot name="priceUnit" :value="value" /></template>
|
|
290
|
+
<template #priceSuffix="{ value }">
|
|
291
|
+
<slot name="priceSuffix" :value="value" />
|
|
292
|
+
</template>
|
|
293
|
+
<template #originPrice="{ value }">
|
|
294
|
+
<slot name="originPrice" :value="value" />
|
|
295
|
+
</template>
|
|
296
|
+
<template #originPriceUnit="{ value }">
|
|
297
|
+
<slot name="originPriceUnit" :value="value" />
|
|
298
|
+
</template>
|
|
299
|
+
<template #originPriceSuffix="{ value }">
|
|
300
|
+
<slot name="originPriceSuffix" :value="value" />
|
|
301
|
+
</template>
|
|
302
|
+
<template #tags="{ value }"><slot name="tags" :value="value" /></template>
|
|
303
|
+
<template #location="{ value }"><slot name="location" :value="value" /></template>
|
|
304
|
+
<template #distance="{ value }"><slot name="distance" :value="value" /></template>
|
|
305
|
+
</ItemValue>
|
|
306
|
+
<ItemValue :prop="propName" v-else />
|
|
307
|
+
</template>
|
|
308
|
+
</view>
|
|
309
|
+
</view>
|
|
178
310
|
</view>
|
|
311
|
+
<slot name="itemBottomSection" />
|
|
179
312
|
</view>
|
|
313
|
+
<slot name="itemRightSection" />
|
|
180
314
|
</view>
|
|
181
315
|
</template>
|
|
182
316
|
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import { CSSProperties } from 'vue'
|
|
2
|
-
|
|
3
|
-
export const lcbProductItemContentTypes = [
|
|
4
|
-
'image',
|
|
5
|
-
'title',
|
|
6
|
-
'subTitle',
|
|
7
|
-
'price',
|
|
8
|
-
'priceUnit',
|
|
9
|
-
'priceSuffix',
|
|
10
|
-
'originPrice',
|
|
11
|
-
'originPriceUnit',
|
|
12
|
-
'tags',
|
|
13
|
-
'location',
|
|
14
|
-
'distance',
|
|
15
|
-
] as const
|
|
2
|
+
import { TagType } from '@tplc/wot/components/wd-tag/types'
|
|
16
3
|
|
|
17
4
|
export interface LcbProductItemProps {
|
|
18
5
|
// Define the component's prop types here
|
|
19
6
|
className?: string
|
|
20
7
|
layoutType?: 'vertical' | 'horizontal'
|
|
8
|
+
titleLineClamp?: number
|
|
9
|
+
tagOverflowWrap?: boolean
|
|
10
|
+
tagType?: TagType
|
|
11
|
+
tagContentColor?: string
|
|
12
|
+
tagBgColor?: string
|
|
13
|
+
tagPlain?: boolean
|
|
14
|
+
tagMark?: boolean
|
|
15
|
+
tagRound?: boolean
|
|
16
|
+
distanceUnit?: string
|
|
17
|
+
|
|
21
18
|
image?: any
|
|
22
19
|
title?: any
|
|
23
20
|
subTitle?: any
|
|
@@ -26,6 +23,7 @@ export interface LcbProductItemProps {
|
|
|
26
23
|
priceSuffix?: any
|
|
27
24
|
originPrice?: any
|
|
28
25
|
originPriceUnit?: any
|
|
26
|
+
originPriceSuffix?: any
|
|
29
27
|
tags?: any
|
|
30
28
|
location?: any
|
|
31
29
|
distance?: any
|
|
@@ -38,6 +36,7 @@ export interface LcbProductItemProps {
|
|
|
38
36
|
priceSuffixVisible?: boolean
|
|
39
37
|
originPriceVisible?: boolean
|
|
40
38
|
originPriceUnitVisible?: boolean
|
|
39
|
+
originPriceSuffixVisible?: boolean
|
|
41
40
|
tagsVisible?: boolean
|
|
42
41
|
locationVisible?: boolean
|
|
43
42
|
distanceVisible?: boolean
|
|
@@ -50,6 +49,7 @@ export interface LcbProductItemProps {
|
|
|
50
49
|
priceSuffixClass?: string
|
|
51
50
|
originPriceClass?: string
|
|
52
51
|
originPriceUnitClass?: string
|
|
52
|
+
originPriceSuffixClass?: string
|
|
53
53
|
tagsClass?: string
|
|
54
54
|
tagsWrapperClass?: string
|
|
55
55
|
locationClass?: string
|
|
@@ -63,6 +63,7 @@ export interface LcbProductItemProps {
|
|
|
63
63
|
priceSuffixStyle?: CSSProperties
|
|
64
64
|
originPriceStyle?: CSSProperties
|
|
65
65
|
originPriceUnitStyle?: CSSProperties
|
|
66
|
+
originPriceSuffixStyle?: CSSProperties
|
|
66
67
|
tagsStyle?: CSSProperties
|
|
67
68
|
tagsWrapperStyle?: CSSProperties
|
|
68
69
|
locationStyle?: CSSProperties
|
package/package.json
CHANGED
|
@@ -24,9 +24,9 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
24
24
|
{
|
|
25
25
|
listType: 'horizontal' | 'list' | 'grid' | 'waterfall'
|
|
26
26
|
pageFilterType: string
|
|
27
|
+
pageListProps: import('./components/FilterList/type').PageListProps
|
|
27
28
|
border: boolean
|
|
28
29
|
styleMode: 'default' | 'plain'
|
|
29
|
-
pageListProps: import('./components/FilterList/type').PageListProps
|
|
30
30
|
},
|
|
31
31
|
{}
|
|
32
32
|
>
|
|
@@ -7,6 +7,7 @@ declare function __VLS_template(): Readonly<{
|
|
|
7
7
|
priceSuffix(props: { value: any }): any
|
|
8
8
|
originPrice(props: { value: any }): any
|
|
9
9
|
originPriceUnit(props: { value: any }): any
|
|
10
|
+
originPriceSuffix(props: { value: any }): any
|
|
10
11
|
tags(props: { value: any }): any
|
|
11
12
|
location(props: { value: any }): any
|
|
12
13
|
distance(props: { value: any }): any
|
|
@@ -19,6 +20,7 @@ declare function __VLS_template(): Readonly<{
|
|
|
19
20
|
priceSuffix(props: { value: any }): any
|
|
20
21
|
originPrice(props: { value: any }): any
|
|
21
22
|
originPriceUnit(props: { value: any }): any
|
|
23
|
+
originPriceSuffix(props: { value: any }): any
|
|
22
24
|
tags(props: { value: any }): any
|
|
23
25
|
location(props: { value: any }): any
|
|
24
26
|
distance(props: { value: any }): any
|
|
@@ -8,9 +8,17 @@ declare function __VLS_template(): Readonly<{
|
|
|
8
8
|
priceSuffix(props: { value: any }): any
|
|
9
9
|
originPrice(props: { value: any }): any
|
|
10
10
|
originPriceUnit(props: { value: any }): any
|
|
11
|
+
originPriceSuffix(props: { value: any }): any
|
|
11
12
|
tags(props: { value: any }): any
|
|
12
13
|
location(props: { value: any }): any
|
|
13
14
|
distance(props: { value: any }): any
|
|
15
|
+
itemSection(): any
|
|
16
|
+
itemTopSection(): any
|
|
17
|
+
itemBottomSection(): any
|
|
18
|
+
itemLeftSection(): any
|
|
19
|
+
itemRightSection(): any
|
|
20
|
+
imageSection(): any
|
|
21
|
+
contentSection(): any
|
|
14
22
|
}> & {
|
|
15
23
|
image(props: { value: any }): any
|
|
16
24
|
title(props: { value: any }): any
|
|
@@ -20,15 +28,30 @@ declare function __VLS_template(): Readonly<{
|
|
|
20
28
|
priceSuffix(props: { value: any }): any
|
|
21
29
|
originPrice(props: { value: any }): any
|
|
22
30
|
originPriceUnit(props: { value: any }): any
|
|
31
|
+
originPriceSuffix(props: { value: any }): any
|
|
23
32
|
tags(props: { value: any }): any
|
|
24
33
|
location(props: { value: any }): any
|
|
25
34
|
distance(props: { value: any }): any
|
|
35
|
+
itemSection(): any
|
|
36
|
+
itemTopSection(): any
|
|
37
|
+
itemBottomSection(): any
|
|
38
|
+
itemLeftSection(): any
|
|
39
|
+
itemRightSection(): any
|
|
40
|
+
imageSection(): any
|
|
41
|
+
contentSection(): any
|
|
26
42
|
}
|
|
27
43
|
declare const __VLS_component: import('vue').DefineComponent<
|
|
28
44
|
__VLS_WithDefaults<
|
|
29
45
|
__VLS_TypePropsToOption<LcbProductItemProps>,
|
|
30
46
|
{
|
|
31
47
|
layoutType: string
|
|
48
|
+
titleLineClamp: number
|
|
49
|
+
tagOverflowWrap: boolean
|
|
50
|
+
tagType: string
|
|
51
|
+
tagPlain: boolean
|
|
52
|
+
tagMark: boolean
|
|
53
|
+
tagRound: boolean
|
|
54
|
+
distanceUnit: string
|
|
32
55
|
priceUnit: string
|
|
33
56
|
originPriceUnit: string
|
|
34
57
|
imageVisible: boolean
|
|
@@ -39,6 +62,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
39
62
|
priceSuffixVisible: boolean
|
|
40
63
|
originPriceVisible: boolean
|
|
41
64
|
originPriceUnitVisible: boolean
|
|
65
|
+
originPriceSuffixVisible: boolean
|
|
42
66
|
tagsVisible: boolean
|
|
43
67
|
locationVisible: boolean
|
|
44
68
|
distanceVisible: boolean
|
|
@@ -59,6 +83,13 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
59
83
|
__VLS_TypePropsToOption<LcbProductItemProps>,
|
|
60
84
|
{
|
|
61
85
|
layoutType: string
|
|
86
|
+
titleLineClamp: number
|
|
87
|
+
tagOverflowWrap: boolean
|
|
88
|
+
tagType: string
|
|
89
|
+
tagPlain: boolean
|
|
90
|
+
tagMark: boolean
|
|
91
|
+
tagRound: boolean
|
|
92
|
+
distanceUnit: string
|
|
62
93
|
priceUnit: string
|
|
63
94
|
originPriceUnit: string
|
|
64
95
|
imageVisible: boolean
|
|
@@ -69,6 +100,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
69
100
|
priceSuffixVisible: boolean
|
|
70
101
|
originPriceVisible: boolean
|
|
71
102
|
originPriceUnitVisible: boolean
|
|
103
|
+
originPriceSuffixVisible: boolean
|
|
72
104
|
tagsVisible: boolean
|
|
73
105
|
locationVisible: boolean
|
|
74
106
|
distanceVisible: boolean
|
|
@@ -80,6 +112,13 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
80
112
|
layoutType: 'vertical' | 'horizontal'
|
|
81
113
|
priceUnit: any
|
|
82
114
|
originPriceUnit: any
|
|
115
|
+
titleLineClamp: number
|
|
116
|
+
tagOverflowWrap: boolean
|
|
117
|
+
tagType: import('@tplc/wot/components/wd-tag/types').TagType
|
|
118
|
+
tagPlain: boolean
|
|
119
|
+
tagMark: boolean
|
|
120
|
+
tagRound: boolean
|
|
121
|
+
distanceUnit: string
|
|
83
122
|
imageVisible: boolean
|
|
84
123
|
titleVisible: boolean
|
|
85
124
|
subTitleVisible: boolean
|
|
@@ -88,6 +127,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
88
127
|
priceSuffixVisible: boolean
|
|
89
128
|
originPriceVisible: boolean
|
|
90
129
|
originPriceUnitVisible: boolean
|
|
130
|
+
originPriceSuffixVisible: boolean
|
|
91
131
|
tagsVisible: boolean
|
|
92
132
|
locationVisible: boolean
|
|
93
133
|
distanceVisible: boolean
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { CSSProperties } from 'vue'
|
|
2
|
-
|
|
3
|
-
'image',
|
|
4
|
-
'title',
|
|
5
|
-
'subTitle',
|
|
6
|
-
'price',
|
|
7
|
-
'priceUnit',
|
|
8
|
-
'priceSuffix',
|
|
9
|
-
'originPrice',
|
|
10
|
-
'originPriceUnit',
|
|
11
|
-
'tags',
|
|
12
|
-
'location',
|
|
13
|
-
'distance',
|
|
14
|
-
]
|
|
2
|
+
import { TagType } from '@tplc/wot/components/wd-tag/types'
|
|
15
3
|
export interface LcbProductItemProps {
|
|
16
4
|
className?: string
|
|
17
5
|
layoutType?: 'vertical' | 'horizontal'
|
|
6
|
+
titleLineClamp?: number
|
|
7
|
+
tagOverflowWrap?: boolean
|
|
8
|
+
tagType?: TagType
|
|
9
|
+
tagContentColor?: string
|
|
10
|
+
tagBgColor?: string
|
|
11
|
+
tagPlain?: boolean
|
|
12
|
+
tagMark?: boolean
|
|
13
|
+
tagRound?: boolean
|
|
14
|
+
distanceUnit?: string
|
|
18
15
|
image?: any
|
|
19
16
|
title?: any
|
|
20
17
|
subTitle?: any
|
|
@@ -23,6 +20,7 @@ export interface LcbProductItemProps {
|
|
|
23
20
|
priceSuffix?: any
|
|
24
21
|
originPrice?: any
|
|
25
22
|
originPriceUnit?: any
|
|
23
|
+
originPriceSuffix?: any
|
|
26
24
|
tags?: any
|
|
27
25
|
location?: any
|
|
28
26
|
distance?: any
|
|
@@ -34,6 +32,7 @@ export interface LcbProductItemProps {
|
|
|
34
32
|
priceSuffixVisible?: boolean
|
|
35
33
|
originPriceVisible?: boolean
|
|
36
34
|
originPriceUnitVisible?: boolean
|
|
35
|
+
originPriceSuffixVisible?: boolean
|
|
37
36
|
tagsVisible?: boolean
|
|
38
37
|
locationVisible?: boolean
|
|
39
38
|
distanceVisible?: boolean
|
|
@@ -45,6 +44,7 @@ export interface LcbProductItemProps {
|
|
|
45
44
|
priceSuffixClass?: string
|
|
46
45
|
originPriceClass?: string
|
|
47
46
|
originPriceUnitClass?: string
|
|
47
|
+
originPriceSuffixClass?: string
|
|
48
48
|
tagsClass?: string
|
|
49
49
|
tagsWrapperClass?: string
|
|
50
50
|
locationClass?: string
|
|
@@ -57,6 +57,7 @@ export interface LcbProductItemProps {
|
|
|
57
57
|
priceSuffixStyle?: CSSProperties
|
|
58
58
|
originPriceStyle?: CSSProperties
|
|
59
59
|
originPriceUnitStyle?: CSSProperties
|
|
60
|
+
originPriceSuffixStyle?: CSSProperties
|
|
60
61
|
tagsStyle?: CSSProperties
|
|
61
62
|
tagsWrapperStyle?: CSSProperties
|
|
62
63
|
locationStyle?: CSSProperties
|