@tplc/business 0.3.73 → 0.3.75

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,27 @@
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.3.75](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.73...v0.3.75) (2025-03-10)
6
+
7
+
8
+ ### 🚀 Chore | 构建/工程依赖/工具
9
+
10
+ * **release:** 0.3.73 ([67f4357](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/67f435737746cd78ebd35097a9871f4272fd451d))
11
+ * **release:** 0.3.74 ([980976a](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/980976aa06262c1f21f84558ea64eb9b4306212c))
12
+
13
+
14
+ ### ✨ Features | 新功能
15
+
16
+ * 新增search ([437606d](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/437606d1cb6d7fdacb9a4d7622c7e57ce02cb358))
17
+ * 新增物流 ([b5403b4](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/b5403b46bcd9b05dac85900fa7d0a50aa1071d20))
18
+
19
+ ### [0.3.74](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.73...v0.3.74) (2025-03-09)
20
+
21
+
22
+ ### ✨ Features | 新功能
23
+
24
+ * 新增search ([437606d](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/437606d1cb6d7fdacb9a4d7622c7e57ce02cb358))
25
+
5
26
  ### [0.3.73](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.69...v0.3.73) (2025-03-08)
6
27
 
7
28
 
@@ -26,7 +26,7 @@
26
26
  ]"
27
27
  >
28
28
  <lcb-action-view
29
- v-for="item in items"
29
+ v-for="(item, index) in items"
30
30
  :key="item.title"
31
31
  v-bind="item.link"
32
32
  @click="onItemClick(item)"
@@ -38,7 +38,7 @@
38
38
  backgroundColor: itemBgColor,
39
39
  borderRadius: transformValueUnit(itemRadius),
40
40
  padding: `${transformValueUnit(itemVerticalPadding)} ${transformValueUnit(itemHorizontalPadding)}`,
41
- flexDirection: itemFlexMode,
41
+ flexDirection: styleGroup === 3 ? 'row' : itemFlexMode,
42
42
  gap: transformValueUnit(iconTextMargin),
43
43
  boxShadow:
44
44
  itemShadowColor && itemShadowSize
@@ -46,6 +46,9 @@
46
46
  : '',
47
47
  marginRight: styleGroup === 1 ? transformValueUnit(itemGap) : 0,
48
48
  }"
49
+ :class="{
50
+ divider: divider && index !== (items || []).length - 1 && styleGroup === 3,
51
+ }"
49
52
  >
50
53
  <view class="overflow-hidden">
51
54
  <wd-icon
@@ -76,7 +79,12 @@
76
79
  >
77
80
  {{ item[titleKey] }}
78
81
  </view>
79
- <wd-icon v-if="styleGroup === 3" name="chevron-right" size="22"></wd-icon>
82
+ <wd-icon
83
+ v-if="styleGroup === 3"
84
+ name="chevron-right"
85
+ :size="transformValueUnit(arrowSize)"
86
+ :color="arrowColor"
87
+ ></wd-icon>
80
88
  </view>
81
89
  </lcb-action-view>
82
90
  </view>
@@ -116,6 +124,9 @@ withDefaults(defineProps<LcbImgNavProps>(), {
116
124
  itemGap: 24,
117
125
  titleBottom: 40,
118
126
  textFontWeight: 400,
127
+ divider: true,
128
+ arrowSize: 44,
129
+ arrowColor: '#212121',
119
130
  })
120
131
  </script>
121
132
 
@@ -150,4 +161,8 @@ withDefaults(defineProps<LcbImgNavProps>(), {
150
161
  letter-spacing: 0;
151
162
  white-space: nowrap;
152
163
  }
164
+
165
+ .divider {
166
+ border-bottom: 1px solid #e5e5e5;
167
+ }
153
168
  </style>
@@ -24,6 +24,12 @@ export interface LcbImgNavProps extends LcbBlockProps {
24
24
  iconTextMargin?: number
25
25
  textFontWeight?: number
26
26
 
27
+ divider?: boolean
28
+ /** 箭头颜色 */
29
+ arrowColor?: string
30
+ /** 箭头大小 */
31
+ arrowSize?: number
32
+
27
33
  // 是否显示标题
28
34
  showTitle?: boolean
29
35
  title?: string
@@ -11,6 +11,7 @@
11
11
  </lcb-action-view>
12
12
  <view class="absolute">
13
13
  <wd-message-box />
14
+ <OrderDetLogistic v-model="logistic.show" :data="logistic.data" />
14
15
  </view>
15
16
  </template>
16
17
 
@@ -18,7 +19,13 @@
18
19
  import type { ButtonProps } from '@tplc/wot/components/wd-button/types'
19
20
  import type { IPageBtn, LcbOperationActionsProps } from './types'
20
21
  import { useMessage } from '@tplc/wot'
22
+ import OrderDetLogistic from './components/OrderDetLogistic/index.vue'
23
+ import { reactive } from 'vue'
21
24
  const message = useMessage()
25
+ const logistic = reactive({
26
+ show: false,
27
+ data: {},
28
+ })
22
29
  defineOptions({
23
30
  name: 'LcbOperationActionsBtn',
24
31
  options: {
@@ -83,6 +90,14 @@ async function link({ item }: { item: IPageBtn }) {
83
90
  })
84
91
  },
85
92
  })
93
+ // 显示物流弹窗
94
+ } else if (item.buttonKey === 'showLogisticPop') {
95
+ const { data: logisticInfo } = await uni.$lcb.http.post<any>(item.requestUrl, {
96
+ ...item.requestParam,
97
+ })
98
+ console.log(logisticInfo)
99
+ logistic.data = logisticInfo
100
+ logistic.show = true
86
101
  } else {
87
102
  emits('cancel')
88
103
  }
@@ -0,0 +1,137 @@
1
+ <script setup lang="ts">
2
+ import { useTranslate } from '@tplc/wot'
3
+
4
+ interface LogisticData {
5
+ postageName?: string
6
+ externalPostageNo?: string
7
+ flowInfoList?: Array<{
8
+ statusName: string
9
+ time: string
10
+ context: string
11
+ }>
12
+ receiveName?: string
13
+ receivePhone?: string
14
+ provinceCityAreaName?: string
15
+ address?: string
16
+ }
17
+
18
+ interface Props {
19
+ data?: LogisticData
20
+ }
21
+ const { translate } = useTranslate()
22
+ const model = defineModel<boolean>({ required: true })
23
+ defineProps<Props>()
24
+
25
+ const handleCopy = (text?: string) => {
26
+ if (text) {
27
+ uni.setClipboardData({
28
+ data: text,
29
+ })
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <template>
35
+ <wd-popup
36
+ v-model="model"
37
+ position="bottom"
38
+ custom-class="!rounded-t-20rpx"
39
+ closable
40
+ @close="model = false"
41
+ >
42
+ <view class="popup-view">
43
+ <view class="title">
44
+ {{ translate('物流信息') }}
45
+ </view>
46
+ <view class="p-3 box-border">
47
+ <view class="flex items-center text-3.5">
48
+ <text class="font-500 mr-3">{{ data?.postageName }}</text>
49
+ <text class="flex-1">{{ data?.externalPostageNo }}</text>
50
+ <wd-button size="small" plain @click="handleCopy(data?.externalPostageNo)">
51
+ {{ translate('复制') }}
52
+ </wd-button>
53
+ </view>
54
+ <scroll-view scroll-y class="max-h-50vh overflow-y-auto mt-3">
55
+ <view
56
+ v-for="(item, idx) in data?.flowInfoList"
57
+ :key="idx"
58
+ class="relative p-3 !pt-0 box-border"
59
+ >
60
+ <view
61
+ :class="[
62
+ 'line absolute left-0 top-3.5 h-[calc(100%-24rpx)]',
63
+ idx === (data?.flowInfoList?.length || 0) - 1 ? 'hidden' : '',
64
+ ]"
65
+ />
66
+ <view :class="['dot absolute', idx < 1 ? 'bg-primary' : '']" />
67
+ <view class="flex text-3">
68
+ <text class="font-500 mr-3">{{ item.statusName }}</text>
69
+ <text>{{ item.time }}</text>
70
+ </view>
71
+ <view class="mt-2 text-2.5 text-[#7b7b7b]">
72
+ <text>{{ item.context }}</text>
73
+ </view>
74
+ </view>
75
+ </scroll-view>
76
+ </view>
77
+ <view class="flex items-center bg-white py-3 box-border mx-3 border-top">
78
+ <wd-icon name="location" custom-class="mr-30rpx" />
79
+ <view class="flex-1 truncate">
80
+ <view class="flex items-center text-3">
81
+ <text class="font-500 mr-3">{{ data?.receiveName }}</text>
82
+ <text class="opacity-40">{{ data?.receivePhone }}</text>
83
+ </view>
84
+ <view class="mt-1 opacity-40 truncate text-2.5">
85
+ <text class="truncate">{{ data?.provinceCityAreaName }} {{ data?.address }}</text>
86
+ </view>
87
+ </view>
88
+ </view>
89
+ </view>
90
+ </wd-popup>
91
+ </template>
92
+
93
+ <style scoped lang="scss">
94
+ .icon-address {
95
+ width: 40rpx;
96
+ height: 40rpx;
97
+ }
98
+
99
+ .line {
100
+ width: 2rpx;
101
+ background-color: #ececec;
102
+ margin-left: 5rpx;
103
+ }
104
+
105
+ .top-first {
106
+ top: 50rpx;
107
+ }
108
+
109
+ .h-last {
110
+ height: 18rpx;
111
+ }
112
+
113
+ .dot {
114
+ width: 10rpx;
115
+ height: 10rpx;
116
+ background-color: #ececec;
117
+ left: 1rpx;
118
+ top: 12rpx;
119
+ border-radius: 10rpx;
120
+ z-index: 1;
121
+ }
122
+
123
+ .popup-view {
124
+ .title {
125
+ position: relative;
126
+ font-size: 32rpx;
127
+ font-weight: 500;
128
+ line-height: 96rpx;
129
+ text-align: center;
130
+ border-radius: 20rpx;
131
+ box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(243, 245, 249, 0.94);
132
+ }
133
+ }
134
+ .border-top {
135
+ border-top: 1rpx solid #ececec;
136
+ }
137
+ </style>
@@ -6,7 +6,7 @@
6
6
  borderWidth: `${borderWidth}px`,
7
7
  }"
8
8
  >
9
- <lcb-action-view>
9
+ <lcb-action-view v-bind="link">
10
10
  <view
11
11
  class="flex items-center"
12
12
  :style="{
@@ -43,7 +43,7 @@
43
43
  alignSelf: moreVerticalAlign,
44
44
  }"
45
45
  >
46
- 更多
46
+ {{ moreText }}
47
47
  <wd-icon name="xiangyou" classPrefix="lcb" :size="transformValueUnit(moreFontSize)" />
48
48
  </view>
49
49
  </lcb-action-view>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tplc/business",
3
- "version": "0.3.73",
3
+ "version": "0.3.75",
4
4
  "keywords": [
5
5
  "业务组件"
6
6
  ],
@@ -18,6 +18,9 @@ declare const _default: import('vue').DefineComponent<
18
18
  itemGap: number
19
19
  titleBottom: number
20
20
  textFontWeight: number
21
+ divider: boolean
22
+ arrowSize: number
23
+ arrowColor: string
21
24
  }
22
25
  >,
23
26
  {},
@@ -51,6 +54,9 @@ declare const _default: import('vue').DefineComponent<
51
54
  itemGap: number
52
55
  titleBottom: number
53
56
  textFontWeight: number
57
+ divider: boolean
58
+ arrowSize: number
59
+ arrowColor: string
54
60
  }
55
61
  >
56
62
  >
@@ -67,6 +73,9 @@ declare const _default: import('vue').DefineComponent<
67
73
  iconRadius: number
68
74
  iconTextMargin: number
69
75
  textFontWeight: number
76
+ divider: boolean
77
+ arrowColor: string
78
+ arrowSize: number
70
79
  textSize: number
71
80
  urlKey: string
72
81
  titleKey: string
@@ -22,6 +22,11 @@ export interface LcbImgNavProps extends LcbBlockProps {
22
22
  /** 文字与图标距离 */
23
23
  iconTextMargin?: number
24
24
  textFontWeight?: number
25
+ divider?: boolean
26
+ /** 箭头颜色 */
27
+ arrowColor?: string
28
+ /** 箭头大小 */
29
+ arrowSize?: number
25
30
  showTitle?: boolean
26
31
  title?: string
27
32
  fontWeight?: number
@@ -0,0 +1,51 @@
1
+ interface LogisticData {
2
+ postageName?: string
3
+ externalPostageNo?: string
4
+ flowInfoList?: Array<{
5
+ statusName: string
6
+ time: string
7
+ context: string
8
+ }>
9
+ receiveName?: string
10
+ receivePhone?: string
11
+ provinceCityAreaName?: string
12
+ address?: string
13
+ }
14
+ interface Props {
15
+ data?: LogisticData
16
+ }
17
+ declare let __VLS_typeProps: Props
18
+ type __VLS_PublicProps = {
19
+ modelValue: boolean
20
+ } & typeof __VLS_typeProps
21
+ declare const _default: import('vue').DefineComponent<
22
+ __VLS_TypePropsToOption<__VLS_PublicProps>,
23
+ {},
24
+ unknown,
25
+ {},
26
+ {},
27
+ import('vue').ComponentOptionsMixin,
28
+ import('vue').ComponentOptionsMixin,
29
+ {
30
+ 'update:modelValue': (modelValue: boolean) => void
31
+ },
32
+ string,
33
+ import('vue').PublicProps,
34
+ Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_PublicProps>>> & {
35
+ 'onUpdate:modelValue'?: ((modelValue: boolean) => any) | undefined
36
+ },
37
+ {},
38
+ {}
39
+ >
40
+ export default _default
41
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
42
+ type __VLS_TypePropsToOption<T> = {
43
+ [K in keyof T]-?: {} extends Pick<T, K>
44
+ ? {
45
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>
46
+ }
47
+ : {
48
+ type: import('vue').PropType<T[K]>
49
+ required: true
50
+ }
51
+ }