@tplc/business 0.0.27 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/components/lcb-area-picker/api/index.ts +45 -0
  3. package/components/lcb-area-picker/lcb-area-picker.vue +77 -0
  4. package/components/lcb-area-picker/types.ts +3 -0
  5. package/components/lcb-banner-block/lcb-banner-block.vue +2 -2
  6. package/components/lcb-calendar/lcb-calendar.vue +3 -3
  7. package/components/lcb-calendar-search/lcb-calendar-search.vue +5 -2
  8. package/components/lcb-city-select/api/index.ts +15 -1
  9. package/components/lcb-city-select/components/lcb-city-letter/index.vue +171 -0
  10. package/components/lcb-city-select/components/lcb-city-list/index.vue +127 -0
  11. package/components/lcb-city-select/components/lcb-city-list/types.ts +6 -0
  12. package/components/lcb-city-select/images/hot.png +0 -0
  13. package/components/lcb-city-select/lcb-city-select.vue +95 -118
  14. package/components/lcb-dynamic-data/lcb-dynamic-data.vue +25 -0
  15. package/components/lcb-dynamic-data/types.ts +7 -0
  16. package/components/lcb-home-search/lcb-home-search.vue +16 -7
  17. package/components/lcb-img-nav/lcb-img-nav.vue +70 -30
  18. package/components/lcb-img-nav/types.ts +3 -3
  19. package/components/{lcb-filter → lcb-list}/api.ts +7 -2
  20. package/components/lcb-list/components/FilterList/index.vue +78 -0
  21. package/components/lcb-list/components/FilterList/type.ts +9 -0
  22. package/components/{lcb-filter → lcb-list}/components/FilterSlider/index.vue +2 -1
  23. package/components/{lcb-filter → lcb-list}/index.scss +3 -0
  24. package/components/{lcb-filter/lcb-filter.vue → lcb-list/lcb-list.vue} +66 -50
  25. package/components/{lcb-filter → lcb-list}/types.ts +5 -1
  26. package/components/lcb-nav/lcb-nav.vue +8 -13
  27. package/components/lcb-notice/Item/index.vue +1 -1
  28. package/components/lcb-product/lcb-product.vue +7 -7
  29. package/components/lcb-product/types.ts +3 -3
  30. package/components/lcb-product-item/lcb-product-item.vue +24 -12
  31. package/components/lcb-user-order/lcb-user-order.vue +44 -23
  32. package/components/lcb-user-top/lcb-user-top.vue +77 -48
  33. package/global.d.ts +3 -1
  34. package/iconfonts/index.css +1 -175
  35. package/package.json +5 -2
  36. package/types/components/lcb-area-picker/api/index.d.ts +38 -0
  37. package/types/components/lcb-area-picker/lcb-area-picker.vue.d.ts +67 -0
  38. package/types/components/lcb-area-picker/types.d.ts +1 -0
  39. package/types/components/lcb-calendar-search/lcb-calendar-search.vue.d.ts +1 -1
  40. package/types/components/lcb-city-select/api/index.d.ts +14 -1
  41. package/types/components/lcb-city-select/components/lcb-city-letter/index.vue.d.ts +53 -0
  42. package/types/components/{lcb-filter/lcb-filter.vue.d.ts → lcb-city-select/components/lcb-city-list/index.vue.d.ts} +9 -18
  43. package/types/components/lcb-city-select/components/lcb-city-list/types.d.ts +5 -0
  44. package/types/components/lcb-city-select/lcb-city-select.vue.d.ts +13 -4
  45. package/types/components/lcb-dynamic-data/lcb-dynamic-data.vue.d.ts +44 -0
  46. package/types/components/lcb-dynamic-data/types.d.ts +7 -0
  47. package/types/components/lcb-home-search/lcb-home-search.vue.d.ts +1 -1
  48. package/types/components/lcb-image/lcb-image.vue.d.ts +1 -1
  49. package/types/components/lcb-img-nav/types.d.ts +2 -2
  50. package/types/components/{lcb-filter → lcb-list}/api.d.ts +5 -0
  51. package/types/components/lcb-list/components/FilterList/index.vue.d.ts +28 -0
  52. package/types/components/lcb-list/components/FilterList/type.d.ts +9 -0
  53. package/types/components/lcb-list/lcb-list.vue.d.ts +71 -0
  54. package/types/components/{lcb-filter → lcb-list}/types.d.ts +4 -1
  55. /package/components/{lcb-filter → lcb-list}/components/ActionView/index.vue +0 -0
  56. /package/components/{lcb-filter → lcb-list}/components/ComponentGroup/index.vue +0 -0
  57. /package/components/{lcb-filter → lcb-list}/components/ComponentGroup/type.ts +0 -0
  58. /package/components/{lcb-filter → lcb-list}/components/FilterSelect/index.vue +0 -0
  59. /package/components/{lcb-filter → lcb-list}/components/FilterSelect/type.ts +0 -0
  60. /package/components/{lcb-filter → lcb-list}/components/FilterSlider/types.ts +0 -0
  61. /package/components/{lcb-filter → lcb-list}/components/SelectTagView/index.vue +0 -0
  62. /package/components/{lcb-filter → lcb-list}/components/TagSelect/index.vue +0 -0
  63. /package/components/{lcb-filter → lcb-list}/components/TagSelect/type.ts +0 -0
  64. /package/components/{lcb-filter → lcb-list}/components/TreeSelect/index.vue +0 -0
  65. /package/components/{lcb-filter → lcb-list}/components/TreeSelect/type.ts +0 -0
  66. /package/components/{lcb-filter → lcb-list}/hooks/useSelect.ts +0 -0
  67. /package/types/components/{lcb-filter → lcb-list}/components/ActionView/index.vue.d.ts +0 -0
  68. /package/types/components/{lcb-filter → lcb-list}/components/ComponentGroup/index.vue.d.ts +0 -0
  69. /package/types/components/{lcb-filter → lcb-list}/components/ComponentGroup/type.d.ts +0 -0
  70. /package/types/components/{lcb-filter → lcb-list}/components/FilterSelect/index.vue.d.ts +0 -0
  71. /package/types/components/{lcb-filter → lcb-list}/components/FilterSelect/type.d.ts +0 -0
  72. /package/types/components/{lcb-filter → lcb-list}/components/FilterSlider/index.vue.d.ts +0 -0
  73. /package/types/components/{lcb-filter → lcb-list}/components/FilterSlider/types.d.ts +0 -0
  74. /package/types/components/{lcb-filter → lcb-list}/components/SelectTagView/index.vue.d.ts +0 -0
  75. /package/types/components/{lcb-filter → lcb-list}/components/TagSelect/index.vue.d.ts +0 -0
  76. /package/types/components/{lcb-filter → lcb-list}/components/TagSelect/type.d.ts +0 -0
  77. /package/types/components/{lcb-filter → lcb-list}/components/TreeSelect/index.vue.d.ts +0 -0
  78. /package/types/components/{lcb-filter → lcb-list}/components/TreeSelect/type.d.ts +0 -0
  79. /package/types/components/{lcb-filter → lcb-list}/hooks/useSelect.d.ts +0 -0
@@ -1,71 +1,81 @@
1
1
  <template>
2
2
  <view v-if="info">
3
- <wd-drop-menu>
4
- <wd-drop-menu-item
5
- v-for="(item, index) in info?.filterComponent"
6
- :key="item.valueName"
7
- :title="titleObj[item.valueName] || item.fitlerName"
8
- icon="caret-down-small"
9
- icon-size="26px"
10
- :selected="getSelect(item)"
11
- ref="dropMenu"
12
- @opened="handleOpened"
3
+ <view style="z-index: 1; position: sticky; top: 0">
4
+ <view
5
+ :class="{
6
+ 'lcb-filter__border-top': border,
7
+ }"
13
8
  >
14
- <view class="lcb-filter__popup">
15
- <FilterSelect
16
- v-if="item.component === 'select'"
17
- v-bind="item.componentProps"
18
- v-model="filter[item.valueName]"
19
- v-model:title="titleObj[item.valueName]"
20
- @submit="onSubmit(index)"
21
- />
22
- <TreeSelect
23
- v-else-if="item.component === 'treeSelect'"
24
- v-bind="item.componentProps"
25
- v-model="filter[item.valueName]"
26
- v-model:title="titleObj[item.valueName]"
27
- @submit="onSubmit(index)"
28
- />
29
- <ComponentGroup
30
- v-else-if="item.component === 'componentGroup'"
31
- v-bind="item.componentProps"
32
- :filter="filter"
33
- @submit="onSubmit(index, $event)"
34
- />
9
+ <wd-drop-menu>
10
+ <wd-drop-menu-item
11
+ v-for="(item, index) in info?.filterComponent"
12
+ :key="item.valueName"
13
+ :title="titleObj[item.valueName] || item.fitlerName"
14
+ icon="caret-down-small"
15
+ icon-size="26px"
16
+ :selected="getSelect(item)"
17
+ ref="dropMenu"
18
+ @opened="handleOpened"
19
+ >
20
+ <view class="lcb-filter__popup">
21
+ <FilterSelect
22
+ v-if="item.component === 'select'"
23
+ v-bind="item.componentProps"
24
+ v-model="filter[item.valueName]"
25
+ v-model:title="titleObj[item.valueName]"
26
+ @submit="onSubmit(index)"
27
+ />
28
+ <TreeSelect
29
+ v-else-if="item.component === 'treeSelect'"
30
+ v-bind="item.componentProps"
31
+ v-model="filter[item.valueName]"
32
+ v-model:title="titleObj[item.valueName]"
33
+ @submit="onSubmit(index)"
34
+ />
35
+ <ComponentGroup
36
+ v-else-if="item.component === 'componentGroup'"
37
+ v-bind="item.componentProps"
38
+ :filter="filter"
39
+ @submit="onSubmit(index, $event)"
40
+ />
41
+ </view>
42
+ </wd-drop-menu-item>
43
+ </wd-drop-menu>
44
+ <view
45
+ v-if="info?.filterTags || info.btnComponent"
46
+ class="bg-white px-3 pb-2 box-border flex items-center"
47
+ >
48
+ <view class="flex gap-3.5 flex-1">
49
+ <TagSelect
50
+ v-if="info.filterTags"
51
+ size="small"
52
+ v-bind="info.filterTags.componentProps"
53
+ v-model="filter[info.filterTags.valueName]"
54
+ />
55
+ </view>
56
+ <wd-button v-if="info.btnComponent" custom-class="!h-60rpx opacity-primary">
57
+ {{ info.btnComponent?.postRequest }}
58
+ </wd-button>
35
59
  </view>
36
- </wd-drop-menu-item>
37
- </wd-drop-menu>
38
- <view
39
- v-if="info?.filterTags || info.btnComponent"
40
- class="bg-white px-3 pb-2 box-border flex items-center"
41
- >
42
- <view class="flex gap-3.5 flex-1">
43
- <TagSelect
44
- v-if="info.filterTags"
45
- size="small"
46
- v-bind="info.filterTags.componentProps"
47
- v-model="filter[info.filterTags.valueName]"
48
- />
49
60
  </view>
50
- <wd-button v-if="info.btnComponent" custom-class="!h-60rpx opacity-primary">
51
- {{ info.btnComponent?.postRequest }}
52
- </wd-button>
53
61
  </view>
62
+ <FilterList v-bind="{ ...info.listInfo, ...pageListProps, filter }" />
54
63
  </view>
55
64
  </template>
56
65
 
57
66
  <script setup lang="ts">
58
67
  import { inject, Ref, ref, watch } from 'vue'
59
- import { LcbFilterProps } from './types'
68
+ import { LcbListProps } from './types'
60
69
  import { FilterComponent, getFilterDetail, LcbFilterResult } from './api'
61
70
  import FilterSelect from './components/FilterSelect/index.vue'
62
71
  import TreeSelect from './components/TreeSelect/index.vue'
63
72
  import ComponentGroup from './components/ComponentGroup/index.vue'
64
73
  import TagSelect from './components/TagSelect/index.vue'
74
+ import FilterList from './components/FilterList/index.vue'
65
75
  import './index.scss'
66
76
  import { FORM_KEY } from '../../constants'
67
77
  defineOptions({
68
- name: 'LcbFilter',
78
+ name: 'LcbList',
69
79
  options: {
70
80
  addGlobalClass: true,
71
81
  virtualHost: true,
@@ -74,8 +84,14 @@ defineOptions({
74
84
  })
75
85
  const form = inject<Ref<Record<string, any>>>(FORM_KEY)
76
86
  const dropMenu = ref()
77
- const props = withDefaults(defineProps<LcbFilterProps>(), {
87
+ const props = withDefaults(defineProps<LcbListProps>(), {
78
88
  pageFilterType: 'hotelTravelFilter',
89
+ border: true,
90
+ pageListProps: () => ({
91
+ productProps: {
92
+ styleGroup: 1,
93
+ },
94
+ }),
79
95
  })
80
96
  const info = ref<LcbFilterResult>()
81
97
  const filter = ref<Record<string, any>>({})
@@ -1,5 +1,9 @@
1
- export interface LcbFilterProps {
1
+ import { PageListProps } from './components/FilterList/type'
2
+
3
+ export interface LcbListProps {
2
4
  pageFilterType?: string
5
+ pageListProps?: PageListProps
6
+ border?: boolean
3
7
  }
4
8
  export interface Option {
5
9
  label: string
@@ -42,7 +42,7 @@
42
42
  :class="[capsuleList.length === 1 ? 'px-2' : 'px-2.5']"
43
43
  >
44
44
  <wd-icon
45
- class-prefix="iconfont"
45
+ class-prefix="lcb"
46
46
  :name="iconMap[item.action]"
47
47
  size="36rpx"
48
48
  :color="contentColor"
@@ -50,12 +50,7 @@
50
50
  </view>
51
51
  </view>
52
52
  <template v-else-if="back">
53
- <wd-icon
54
- class-prefix="iconfont"
55
- name="dingdanliebiao"
56
- @click="toBack"
57
- :color="contentColor"
58
- />
53
+ <wd-icon class-prefix="lcb" name="zuo_left" @click="toBack" :color="contentColor" />
59
54
  </template>
60
55
  <view class="ml-2" v-if="titleLocation === 'left'">
61
56
  <Search
@@ -103,12 +98,12 @@ defineOptions({
103
98
  })
104
99
  const { statusBarHeight } = uni.getSystemInfoSync()
105
100
  const iconMap = {
106
- back: 'dingdanliebiao',
107
- search: 'a-xingzhuang23kaobei',
108
- scanCode: 'a-xingzhuang106',
109
- translate: 'a-xingzhuang22',
110
- setting: 'shezhi',
111
- home: 'tingshi',
101
+ back: 'zuo_left',
102
+ search: 'sousuo_search',
103
+ scanCode: 'gengduo_more-app',
104
+ translate: 'fanyi_translate',
105
+ setting: 'peizhi_config',
106
+ home: 'shouye_home1',
112
107
  }
113
108
  const scrollTop = ref(0)
114
109
  const props = withDefaults(defineProps<NavProps>(), {
@@ -12,7 +12,7 @@
12
12
  />
13
13
  <view v-if="iconType === 0" class="mr-12rpx">
14
14
  <wd-icon
15
- class-prefix="iconfont"
15
+ class-prefix="lcb"
16
16
  v-bind="{
17
17
  name: item?.icon || '',
18
18
  size: transformValueUnit(40),
@@ -1,9 +1,11 @@
1
1
  <template>
2
2
  <lcb-block v-bind="$props">
3
- <view v-if="styleGroup != 2" v-for="(item, index) in items" :key="index">
4
- <!-- <view>{{ JSON.stringify(item) }}</view> -->
5
- <lcb-product-item :styleProps="styleProps" :idx="index" v-bind="item" />
6
- </view>
3
+ <template v-if="styleGroup !== 2">
4
+ <view v-for="(item, index) in items" :key="index">
5
+ <!-- <view>{{ JSON.stringify(item) }}</view> -->
6
+ <lcb-product-item :styleProps="styleProps" :idx="index" v-bind="item" />
7
+ </view>
8
+ </template>
7
9
  <scroll-view v-if="styleGroup == 2" scroll-x class="w-full whitespace-nowrap">
8
10
  <view class="flex shrink-0">
9
11
  <view v-for="(item, index) in items" :key="index">
@@ -15,9 +17,8 @@
15
17
  </template>
16
18
 
17
19
  <script setup lang="ts">
18
- import { computed } from 'vue';
20
+ import { computed } from 'vue'
19
21
  import { LcbProductProps } from './types'
20
- import { transformValueUnit } from '../../utils/transform'
21
22
  defineOptions({
22
23
  name: 'LcbProduct',
23
24
  options: {
@@ -41,7 +42,6 @@ const styleProps = computed(() => {
41
42
  showCollection: props.showCollection,
42
43
  }
43
44
  })
44
-
45
45
  </script>
46
46
 
47
47
  <style lang="scss" scoped></style>
@@ -1,10 +1,10 @@
1
1
  export interface LcbProductProps {
2
2
  // Define the component's prop types here
3
- styleGroup?: 1 | 2 | 3 | 4 //1列表 2 左右滑动 3一行两个 4瀑布流
3
+ styleGroup?: 1 | 2 | 3 | 4 // 1列表 2 左右滑动 3一行两个 4瀑布流
4
4
  items?: Record<string, any>
5
5
  marginHorizontal?: number
6
- productStyle?: 'image' | 'flat' | 'card' | 'border' //图片, 扁平, 卡片, 描边
7
- productTitle?: 0 | 1 | 2 //0默认 1 1行 2 2行
6
+ productStyle?: 'image' | 'flat' | 'card' | 'border' // 图片, 扁平, 卡片, 描边
7
+ productTitle?: 0 | 1 | 2 // 0默认 1 1行 2 2行
8
8
  showTags?: boolean
9
9
  showPrice?: boolean
10
10
  showScribePrice?: boolean
@@ -1,17 +1,26 @@
1
1
  <template>
2
- <view :style="{
3
- paddingTop: `${transformValueUnit(15)}`,
4
- paddingBottom: `${transformValueUnit(15)}`,
5
- paddingLeft: styleProps?.styleGroup != 1 && idx > 0 ? transformValueUnit(15) : 0,
6
- width: styleProps?.styleGroup != 1 ? transformValueUnit(picWidth) : 'auto',
7
- // paddingHorizontal: styleProps?.styleGroup == 1 ? null : 15,
8
- }">
2
+ <view
3
+ :style="{
4
+ paddingTop: `${transformValueUnit(15)}`,
5
+ paddingBottom: `${transformValueUnit(15)}`,
6
+ paddingLeft: styleProps?.styleGroup != 1 && idx > 0 ? transformValueUnit(15) : 0,
7
+ width: styleProps?.styleGroup != 1 ? transformValueUnit(picWidth) : 'auto',
8
+ // paddingHorizontal: styleProps?.styleGroup == 1 ? null : 15,
9
+ }"
10
+ >
9
11
  <view :class="`${styleProps?.styleGroup == 1 ? 'flex' : ''}`">
10
- <wd-img :src="realImg" :width="transformValueUnit(picWidth)" :height="transformValueUnit(picHeight)" />
11
- <view v-if="styleProps?.productStyle != 'image'"
12
- :class="`${styleProps?.styleGroup == 1 ? 'flex-1 pl-20rpx' : 'pt-20rpx'} pb-20rpx${styleProps?.productTitle == 1 ? ' ellipsis ' : ''}`">
12
+ <wd-img
13
+ :src="realImg"
14
+ :width="transformValueUnit(picWidth)"
15
+ :height="transformValueUnit(picHeight)"
16
+ />
17
+ <view
18
+ v-if="styleProps?.productStyle != 'image'"
19
+ :class="`${styleProps?.styleGroup == 1 ? 'flex-1 pl-20rpx' : 'pt-20rpx'} pb-20rpx${styleProps?.productTitle == 1 ? ' ellipsis ' : ''}`"
20
+ >
13
21
  <view
14
- :class="`${styleProps?.productTitle == 1 ? 'ellipsis' : styleProps?.productTitle == 2 ? 'mulEllipsis' : 'wordBreak'} text-32rpx color-#333`">
22
+ :class="`${styleProps?.productTitle == 1 ? 'ellipsis' : styleProps?.productTitle == 2 ? 'mulEllipsis' : 'wordBreak'} text-32rpx color-#333`"
23
+ >
15
24
  {{ productName }}
16
25
  </view>
17
26
  <lcb-tags v-if="!!styleProps?.showTags" :mode="2" :tagRadius="3" :items="tags" />
@@ -19,7 +28,10 @@
19
28
  <view class="flex items-center mt-15rpx">
20
29
  <view v-if="!!styleProps?.showPrice" class="text-30rpx color-red">¥</view>
21
30
  <view v-if="!!styleProps?.showPrice" class="text-32rpx color-red">{{ price }}</view>
22
- <view v-if="!!styleProps?.showScribePrice" class="line-through text-22rpx color-#999 ml-10rpx pt-5rpx">
31
+ <view
32
+ v-if="!!styleProps?.showScribePrice"
33
+ class="line-through text-22rpx color-#999 ml-10rpx pt-5rpx"
34
+ >
23
35
  ¥{{ scribePrice }}
24
36
  </view>
25
37
  </view>
@@ -1,31 +1,52 @@
1
1
  <template>
2
2
  <lcb-block v-bind="$props" customClass="flex flex-justify-between">
3
- <view class="flex flex-col flex-justify-center items-center" @click="onClick(item)" v-for="item in iconList"
4
- :key="item.id">
5
- <view class="position-relative" :style="{
6
- height: transformValueUnit(iconSize),
7
- width: transformValueUnit(iconSize),
8
- }" @click="onClick">
9
- <view v-if="item.iconType === 0">
10
- <wd-icon class-prefix="iconfont" v-bind="{
11
- name: item.iconName || '',
12
- size: transformValueUnit(iconSize),
13
- color: iconColor,
14
- }" />
15
- </view>
16
- <view v-if="item.iconType === 1" class="bg-no-repeat bg-contain" :style="{
3
+ <view
4
+ class="flex flex-col flex-justify-center items-center"
5
+ @click="onClick(item)"
6
+ v-for="item in iconList"
7
+ :key="item.id"
8
+ >
9
+ <view
10
+ class="position-relative"
11
+ :style="{
17
12
  height: transformValueUnit(iconSize),
18
13
  width: transformValueUnit(iconSize),
19
- color: iconColor,
20
- backgroundImage: `url('${item.iconUpload}')`,
21
- }" />
22
- <view v-if="item.id < 5" class="pos-absolute bg-#f23d3d pos-top-0 pos-right-0 w-8px h-8px rounded-4px" />
14
+ }"
15
+ @click="onClick"
16
+ >
17
+ <view v-if="item.iconType === 0">
18
+ <wd-icon
19
+ class-prefix="lcb"
20
+ v-bind="{
21
+ name: item.iconName || '',
22
+ size: transformValueUnit(iconSize),
23
+ color: iconColor,
24
+ }"
25
+ />
26
+ </view>
27
+ <view
28
+ v-if="item.iconType === 1"
29
+ class="bg-no-repeat bg-contain"
30
+ :style="{
31
+ height: transformValueUnit(iconSize),
32
+ width: transformValueUnit(iconSize),
33
+ color: iconColor,
34
+ backgroundImage: `url('${item.iconUpload}')`,
35
+ }"
36
+ />
37
+ <view
38
+ v-if="item.id < 5"
39
+ class="pos-absolute bg-#f23d3d pos-top-0 pos-right-0 w-8px h-8px rounded-4px"
40
+ />
23
41
  </view>
24
- <view class="flex flex-justify-between text-center" :style="{
25
- color: textColor,
26
- fontSize: transformValueUnit(textSize),
27
- marginTop: transformValueUnit((textSize || 0) / 3),
28
- }">
42
+ <view
43
+ class="flex flex-justify-between text-center"
44
+ :style="{
45
+ color: textColor,
46
+ fontSize: transformValueUnit(textSize),
47
+ marginTop: transformValueUnit((textSize || 0) / 3),
48
+ }"
49
+ >
29
50
  {{ item.iconTitle }}
30
51
  </view>
31
52
  </view>
@@ -1,69 +1,98 @@
1
1
  <template>
2
- <lcb-block v-bind="{
3
- paddingTop,
4
- paddingBottom,
5
- paddingHorizontal,
6
- backgroundColor: bgStyle === 1 ? backgroundColor : '',
7
- backgroundImage: bgStyle === 2 ? backgroundImage : '',
8
- }">
9
- <view class="anyTopGap" :style="{
10
- paddingTop: padTop,
11
- }" />
2
+ <lcb-block
3
+ v-bind="{
4
+ paddingTop,
5
+ paddingBottom,
6
+ paddingHorizontal,
7
+ backgroundColor: bgStyle === 1 ? backgroundColor : '',
8
+ backgroundImage: bgStyle === 2 ? backgroundImage : '',
9
+ }"
10
+ >
11
+ <view
12
+ class="anyTopGap"
13
+ :style="{
14
+ paddingTop: padTop,
15
+ }"
16
+ />
12
17
  <view class="flex flex-items-center">
13
- <wd-img v-if="!!photoUrl" v-bind="{
14
- width: transformValueUnit(photoSize),
15
- height: transformValueUnit(photoSize),
16
- round: photoRound,
17
- src: photoUrl,
18
- }" class="mr-20rpx" />
19
- <view v-if="!photoUrl" :style="{
20
- width: transformValueUnit(photoSize),
21
- height: transformValueUnit(photoSize),
22
- borderRadius: photoRound ? '50%' : '',
23
- }" class="bg-#eee userPlace mr-40rpx">
18
+ <wd-img
19
+ v-if="!!photoUrl"
20
+ v-bind="{
21
+ width: transformValueUnit(photoSize),
22
+ height: transformValueUnit(photoSize),
23
+ round: photoRound,
24
+ src: photoUrl,
25
+ }"
26
+ class="mr-20rpx"
27
+ />
28
+ <view
29
+ v-if="!photoUrl"
30
+ :style="{
31
+ width: transformValueUnit(photoSize),
32
+ height: transformValueUnit(photoSize),
33
+ borderRadius: photoRound ? '50%' : '',
34
+ }"
35
+ class="bg-#eee userPlace mr-40rpx"
36
+ >
24
37
  <!-- flex justify-center items-center overflow-hidden relative -->
25
38
  <!-- <wd-icon name="user" :size="transformValueUnit(photoSize * 0.9)" color="#ddd" class="absolute photoIcon"></wd-icon> -->
26
39
  </view>
27
40
  <view class="flex-1">
28
- <view class="font-bold" :style="{
29
- fontSize: transformValueUnit(textSize),
30
- color: textColor,
31
- }">
41
+ <view
42
+ class="font-bold"
43
+ :style="{
44
+ fontSize: transformValueUnit(textSize),
45
+ color: textColor,
46
+ }"
47
+ >
32
48
  授权登录
33
49
  </view>
34
50
  <view class="flex" v-if="editBtn == true">
35
- <view class="flex flex-content-center flex-items-center mt-5px border-style-solid" :style="{
36
- color: textColor,
37
- borderWidth: editBorder ? transformValueUnit(1) : 0,
38
- borderColor: textColor,
39
- padding: editBorder ? `2px ${editSize / 2.5}px 2px ${editSize / 2.5}px` : '',
40
- borderRadius: transformValueUnit(30),
41
- fontSize: transformValueUnit(editSize),
42
- }">
51
+ <view
52
+ class="flex flex-content-center flex-items-center mt-5px border-style-solid"
53
+ :style="{
54
+ color: textColor,
55
+ borderWidth: editBorder ? transformValueUnit(1) : 0,
56
+ borderColor: textColor,
57
+ padding: editBorder ? `2px ${editSize / 2.5}px 2px ${editSize / 2.5}px` : '',
58
+ borderRadius: transformValueUnit(30),
59
+ fontSize: transformValueUnit(editSize),
60
+ }"
61
+ >
43
62
  <view>{{ editText }}</view>
44
63
  </view>
45
64
  </view>
46
65
  </view>
47
- <div v-if="moreIcon == true && iconType === 1" class="overflow-hidden bg-no-repeat bg-contain" :style="{
48
- height: transformValueUnit(textSize),
49
- width: transformValueUnit(textSize),
50
- color: textColor,
51
- backgroundImage: `url('${iconUpload}')`,
52
- }" />
53
- <view v-if="moreIcon == true && iconType === 0">
54
- <wd-icon class-prefix="iconfont" v-bind="{
55
- name: iconName,
56
- size: transformValueUnit(textSize),
66
+ <div
67
+ v-if="moreIcon == true && iconType === 1"
68
+ class="overflow-hidden bg-no-repeat bg-contain"
69
+ :style="{
70
+ height: transformValueUnit(textSize),
71
+ width: transformValueUnit(textSize),
57
72
  color: textColor,
58
- }" />
73
+ backgroundImage: `url('${iconUpload}')`,
74
+ }"
75
+ />
76
+ <view v-if="moreIcon == true && iconType === 0">
77
+ <wd-icon
78
+ class-prefix="lcb"
79
+ v-bind="{
80
+ name: iconName,
81
+ size: transformValueUnit(textSize),
82
+ color: textColor,
83
+ }"
84
+ />
59
85
  </view>
60
86
  </view>
61
- <view v-if="valuesCard == true || coupons == true || presales == true || memberPoints == true"
62
- class="flex flex-justify-between text-center" :style="{
87
+ <view
88
+ v-if="valuesCard == true || coupons == true || presales == true || memberPoints == true"
89
+ class="flex flex-justify-between text-center"
90
+ :style="{
63
91
  color: textColor,
64
92
  marginTop: transformValueUnit(numsMarginTop),
65
93
  padding: `0 ${transformValueUnit(numsPadLR || 0)}`,
66
- }">
94
+ }"
95
+ >
67
96
  <Nums v-if="valuesCard == true" v-bind="$props" title="储值卡" />
68
97
  <Nums v-if="coupons == true" v-bind="$props" title="优惠券" />
69
98
  <Nums v-if="presales == true" v-bind="$props" title="预售券" />
@@ -89,7 +118,7 @@ import { LcbUserTopProps } from './types'
89
118
  import { transformValueUnit } from '../../utils/transform'
90
119
  import Nums from './Nums/index.vue'
91
120
  import { styleText } from 'util'
92
- import { computed } from 'vue';
121
+ import { computed } from 'vue'
93
122
  import { addUnit } from '@tplc/wot/components/common/util'
94
123
  const { statusBarHeight } = uni.getSystemInfoSync()
95
124
  defineOptions({
package/global.d.ts CHANGED
@@ -2,18 +2,20 @@ declare module 'vue' {
2
2
  // Helper for Volar
3
3
  export interface GlobalComponents {
4
4
  'lcb-action-view': (typeof import('./types/components/lcb-action-view/lcb-action-view.vue'))['default']
5
+ 'lcb-area-picker': (typeof import('./types/components/lcb-area-picker/lcb-area-picker.vue'))['default']
5
6
  'lcb-banner': (typeof import('./types/components/lcb-banner/lcb-banner.vue'))['default']
6
7
  'lcb-banner-block': (typeof import('./types/components/lcb-banner-block/lcb-banner-block.vue'))['default']
7
8
  'lcb-block': (typeof import('./types/components/lcb-block/lcb-block.vue'))['default']
8
9
  'lcb-calendar': (typeof import('./types/components/lcb-calendar/lcb-calendar.vue'))['default']
9
10
  'lcb-calendar-search': (typeof import('./types/components/lcb-calendar-search/lcb-calendar-search.vue'))['default']
10
11
  'lcb-city-select': (typeof import('./types/components/lcb-city-select/lcb-city-select.vue'))['default']
11
- 'lcb-filter': (typeof import('./types/components/lcb-filter/lcb-filter.vue'))['default']
12
+ 'lcb-dynamic-data': (typeof import('./types/components/lcb-dynamic-data/lcb-dynamic-data.vue'))['default']
12
13
  'lcb-gap': (typeof import('./types/components/lcb-gap/lcb-gap.vue'))['default']
13
14
  'lcb-grid': (typeof import('./types/components/lcb-grid/lcb-grid.vue'))['default']
14
15
  'lcb-home-search': (typeof import('./types/components/lcb-home-search/lcb-home-search.vue'))['default']
15
16
  'lcb-image': (typeof import('./types/components/lcb-image/lcb-image.vue'))['default']
16
17
  'lcb-img-nav': (typeof import('./types/components/lcb-img-nav/lcb-img-nav.vue'))['default']
18
+ 'lcb-list': (typeof import('./types/components/lcb-list/lcb-list.vue'))['default']
17
19
  'lcb-nav': (typeof import('./types/components/lcb-nav/lcb-nav.vue'))['default']
18
20
  'lcb-notice': (typeof import('./types/components/lcb-notice/lcb-notice.vue'))['default']
19
21
  'lcb-product': (typeof import('./types/components/lcb-product/lcb-product.vue'))['default']