wui-components-v2 1.1.69 → 1.1.70
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/api/core/index.ts +74 -74
- package/api/menu.ts +45 -45
- package/api/page.ts +114 -114
- package/api/sys.ts +12 -12
- package/components/add-address-page/add-address-page.vue +77 -77
- package/components/custom-date-picker/custom-date-picker.vue +106 -106
- package/components/custom-select-picker/custom-select-picker.vue +95 -95
- package/components/demo-block/demo-block.vue +63 -63
- package/components/detail-popup/detail-popup.vue +99 -99
- package/components/evaluation-page/evaluation-page.vue +196 -196
- package/components/fold-card/fold-card.vue +171 -171
- package/components/form-control/form-control.vue +661 -661
- package/components/global-message/global-message.vue +68 -68
- package/components/label-value/label-value.vue +144 -144
- package/components/list-top-buttons/list-top-buttons.vue +19 -19
- package/components/login-form/login-form.vue +126 -126
- package/components/mulselect-picker/mulselect-picker.vue +86 -86
- package/components/product-card/product-card.vue +201 -201
- package/components/search/search.vue +128 -128
- package/components/user-choose/user-choose.vue +1 -1
- package/components/wui-enume-select-control/wui-enume-select-control.vue +92 -92
- package/components/wui-list/wui-list.vue +235 -235
- package/components/wui-menus/wui-menus.vue +247 -247
- package/components/wui-menus1/components/navbar.vue +43 -43
- package/components/wui-menus1/wui-menus.vue +564 -564
- package/components/wui-notify-info/wui-notify-info.vue +280 -280
- package/components/wui-search-history-babbar/wui-search-history-babbar.vue +204 -204
- package/components/wui-select-list/wui-select-list.vue +310 -310
- package/components/wui-select-popup/wui-select-popup.vue +612 -612
- package/components/wui-system-settings/wui-system-settings.vue +144 -144
- package/components/wui-tabbar/wui-tabbar.vue +106 -106
- package/components/wui-tree-page/components/tree-item.vue +238 -238
- package/components/wui-user/wui-user.vue +202 -202
- package/composables/useCompanyFieldFilter.ts +91 -91
- package/composables/useEnumes.ts +2 -2
- package/composables/useMenus.ts +193 -193
- package/index.ts +83 -83
- package/package.json +1 -1
- package/static/iconfont/iconfont.css +63 -63
- package/store/language.ts +151 -151
- package/styles/dark-mode.css +523 -523
- package/styles/dark-mode.min.css +1 -1
- package/type.ts +2 -2
- package/utils/control-tree.ts +2 -2
- package/utils/control-type-supportor.ts +148 -148
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { computed, defineOptions, defineProps, ref } from 'vue'
|
|
3
|
-
import type { Columns, Entities, Enums, FoldCardModel, Groups } from '../../type'
|
|
4
|
-
import { formatItemData } from '../../utils'
|
|
5
|
-
import LabelValue from '../label-value/label-value.vue'
|
|
6
|
-
import { useManualTheme } from '../../composables/useManualTheme'
|
|
7
|
-
|
|
8
|
-
defineOptions({
|
|
9
|
-
name: 'FoldCard',
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
const props = defineProps<{
|
|
13
|
-
columns: Columns[]
|
|
14
|
-
collapseNum?: number
|
|
15
|
-
primaryColumn?: Columns
|
|
16
|
-
secondColumn?: Columns
|
|
17
|
-
labelColumn?: Columns
|
|
18
|
-
data: Entities
|
|
19
|
-
model: FoldCardModel
|
|
20
|
-
sourceId: string
|
|
21
|
-
groups: Groups
|
|
22
|
-
enumColumn?: Enums
|
|
23
|
-
index: number
|
|
24
|
-
}>()
|
|
25
|
-
const contentRef = ref<any>()
|
|
26
|
-
const { currentThemeColor } = useManualTheme()
|
|
27
|
-
// 展示内容
|
|
28
|
-
const exhibitData = computed(() => {
|
|
29
|
-
const { collapseNum } = props
|
|
30
|
-
const num = collapseNum || 2
|
|
31
|
-
const columns = props.columns.length >= num ? props.columns.slice(0, num) : props.columns
|
|
32
|
-
return columns.filter(item => item.title !== '操作')
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
// 是否展示折叠按钮
|
|
36
|
-
const showCollapse = computed(() => {
|
|
37
|
-
const { collapseNum } = props
|
|
38
|
-
const num = collapseNum || 2
|
|
39
|
-
return props.columns.length > num
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
// 折叠内容
|
|
43
|
-
const collapseData = ref<Columns[]>([])
|
|
44
|
-
|
|
45
|
-
// 标签字段
|
|
46
|
-
const labelColumns = computed(() => {
|
|
47
|
-
if (props.labelColumn && props.enumColumn) {
|
|
48
|
-
return props.enumColumn[props.labelColumn.mstrucId]
|
|
49
|
-
} else {
|
|
50
|
-
return []
|
|
51
|
-
}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
// 折叠图标
|
|
55
|
-
const collapseIcon = ref('arrow-down')
|
|
56
|
-
// 切换折叠内容
|
|
57
|
-
function toggleCollapse(contentId: string) {
|
|
58
|
-
console.log(contentId)
|
|
59
|
-
if (collapseIcon.value === 'arrow-down') {
|
|
60
|
-
const { collapseNum } = props
|
|
61
|
-
const num = collapseNum || 2
|
|
62
|
-
const columns = props.columns.length >= num ? props.columns.slice(num) : []
|
|
63
|
-
collapseData.value = columns.filter(item => item.title !== '操作')
|
|
64
|
-
// 展开
|
|
65
|
-
// content.classList.remove('max-h-0')
|
|
66
|
-
// content.classList.add('max-h-[500px]')
|
|
67
|
-
collapseIcon.value = 'arrow-up'
|
|
68
|
-
} else {
|
|
69
|
-
collapseData.value = []
|
|
70
|
-
// 折叠
|
|
71
|
-
// content?.classList.add('max-h-0')
|
|
72
|
-
// content?.classList.remove('max-h-[500px]')
|
|
73
|
-
collapseIcon.value = 'arrow-down'
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
</script>
|
|
77
|
-
|
|
78
|
-
<template>
|
|
79
|
-
<!-- 订单卡片容器 -->
|
|
80
|
-
<view class="mx-auto max-w-md space-y-4">
|
|
81
|
-
<!-- 订单卡片2 -->
|
|
82
|
-
<view class="ma-2 overflow-hidden rounded-xl bg-white shadow-sm dark:bg-[var(--wot-dark-background2)]">
|
|
83
|
-
<!-- 订单头部 -->
|
|
84
|
-
<view v-if="props.primaryColumn" class="flex items-center justify-between border-b border-gray-100 p-4">
|
|
85
|
-
<view class="flex items-center gap-4 text-base text-gray-800 font-medium dark:text-white">
|
|
86
|
-
<view class="flex items-center gap-1">
|
|
87
|
-
<slot name="select" />
|
|
88
|
-
<view class="mr-1 h-4 w-1 rounded-2xl" :style="{ backgroundColor: currentThemeColor.primary }" />
|
|
89
|
-
</view>
|
|
90
|
-
<view>
|
|
91
|
-
<view class="flex items-center gap-2">
|
|
92
|
-
<view class="overflow-hidden text-ellipsis font-700">
|
|
93
|
-
{{
|
|
94
|
-
formatItemData(
|
|
95
|
-
data.fieldMap[props.primaryColumn.sourceId],
|
|
96
|
-
props.primaryColumn.extControlType || props.primaryColumn.controlType
|
|
97
|
-
)
|
|
98
|
-
}}
|
|
99
|
-
</view>
|
|
100
|
-
<slot name="addressInfo" />
|
|
101
|
-
</view>
|
|
102
|
-
<slot name="detailAddress" />
|
|
103
|
-
</view>
|
|
104
|
-
</view>
|
|
105
|
-
<view
|
|
106
|
-
v-if="props.labelColumn"
|
|
107
|
-
class="whitespace-nowrap rounded px-1 py-1 text-sm text-white font-700"
|
|
108
|
-
:style="{
|
|
109
|
-
color: labelColumns?.find(
|
|
110
|
-
item => props.labelColumn && item.value === data.fieldMap[props.labelColumn.sourceId]
|
|
111
|
-
)?.css?.color,
|
|
112
|
-
}"
|
|
113
|
-
>
|
|
114
|
-
{{
|
|
115
|
-
formatItemData(
|
|
116
|
-
data.fieldMap[props.labelColumn.sourceId],
|
|
117
|
-
props.labelColumn.extControlType || props.labelColumn.controlType
|
|
118
|
-
)
|
|
119
|
-
}}
|
|
120
|
-
</view>
|
|
121
|
-
</view>
|
|
122
|
-
|
|
123
|
-
<!-- 订单内容 -->
|
|
124
|
-
<view v-if="props.model === 'complex'" class="p-4 pt-0">
|
|
125
|
-
<!-- 商品列表 -->
|
|
126
|
-
<view class="mb-3">
|
|
127
|
-
<!-- 订单信息 -->
|
|
128
|
-
<view class="text-sm space-y-3">
|
|
129
|
-
<LabelValue :exhibit-data="exhibitData" :data="data" :index="index" />
|
|
130
|
-
|
|
131
|
-
<!-- 可折叠内容 -->
|
|
132
|
-
<view :id="`${data.code}`" ref="contentRef">
|
|
133
|
-
<view class="space-y-3">
|
|
134
|
-
<LabelValue :exhibit-data="collapseData" :data="data" :index="index" />
|
|
135
|
-
</view>
|
|
136
|
-
</view>
|
|
137
|
-
</view>
|
|
138
|
-
</view>
|
|
139
|
-
|
|
140
|
-
<!-- 订单底部 -->
|
|
141
|
-
<view class="flex items-center justify-between border-t border-gray-100">
|
|
142
|
-
<!-- 折叠按钮 -->
|
|
143
|
-
<view>
|
|
144
|
-
<wd-icon
|
|
145
|
-
v-if="showCollapse"
|
|
146
|
-
id="toggle-btn-2"
|
|
147
|
-
name="down"
|
|
148
|
-
size="24px"
|
|
149
|
-
:icon="collapseIcon"
|
|
150
|
-
class="mr-auto flex items-center px-3 py-2 text-sm text-[#6b7280] !py-1"
|
|
151
|
-
@click.stop="toggleCollapse(data.code)"
|
|
152
|
-
/>
|
|
153
|
-
</view>
|
|
154
|
-
|
|
155
|
-
<view class="flex items-center gap-1">
|
|
156
|
-
<slot name="buttons" />
|
|
157
|
-
</view>
|
|
158
|
-
</view>
|
|
159
|
-
</view>
|
|
160
|
-
</view>
|
|
161
|
-
</view>
|
|
162
|
-
</template>
|
|
163
|
-
|
|
164
|
-
<style>
|
|
165
|
-
:deep(.wd-collapse-item__body) {
|
|
166
|
-
background-color: #f9f9f9 !important;
|
|
167
|
-
}
|
|
168
|
-
:deep(.wot-theme-dark .wd-collapse-item__body) {
|
|
169
|
-
background-color: #1b1b1e !important;
|
|
170
|
-
}
|
|
171
|
-
</style>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { computed, defineOptions, defineProps, ref } from 'vue'
|
|
3
|
+
import type { Columns, Entities, Enums, FoldCardModel, Groups } from '../../type'
|
|
4
|
+
import { formatItemData } from '../../utils'
|
|
5
|
+
import LabelValue from '../label-value/label-value.vue'
|
|
6
|
+
import { useManualTheme } from '../../composables/useManualTheme'
|
|
7
|
+
|
|
8
|
+
defineOptions({
|
|
9
|
+
name: 'FoldCard',
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
const props = defineProps<{
|
|
13
|
+
columns: Columns[]
|
|
14
|
+
collapseNum?: number
|
|
15
|
+
primaryColumn?: Columns
|
|
16
|
+
secondColumn?: Columns
|
|
17
|
+
labelColumn?: Columns
|
|
18
|
+
data: Entities
|
|
19
|
+
model: FoldCardModel
|
|
20
|
+
sourceId: string
|
|
21
|
+
groups: Groups
|
|
22
|
+
enumColumn?: Enums
|
|
23
|
+
index: number
|
|
24
|
+
}>()
|
|
25
|
+
const contentRef = ref<any>()
|
|
26
|
+
const { currentThemeColor } = useManualTheme()
|
|
27
|
+
// 展示内容
|
|
28
|
+
const exhibitData = computed(() => {
|
|
29
|
+
const { collapseNum } = props
|
|
30
|
+
const num = collapseNum || 2
|
|
31
|
+
const columns = props.columns.length >= num ? props.columns.slice(0, num) : props.columns
|
|
32
|
+
return columns.filter(item => item.title !== '操作')
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
// 是否展示折叠按钮
|
|
36
|
+
const showCollapse = computed(() => {
|
|
37
|
+
const { collapseNum } = props
|
|
38
|
+
const num = collapseNum || 2
|
|
39
|
+
return props.columns.length > num
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
// 折叠内容
|
|
43
|
+
const collapseData = ref<Columns[]>([])
|
|
44
|
+
|
|
45
|
+
// 标签字段
|
|
46
|
+
const labelColumns = computed(() => {
|
|
47
|
+
if (props.labelColumn && props.enumColumn) {
|
|
48
|
+
return props.enumColumn[props.labelColumn.mstrucId]
|
|
49
|
+
} else {
|
|
50
|
+
return []
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// 折叠图标
|
|
55
|
+
const collapseIcon = ref('arrow-down')
|
|
56
|
+
// 切换折叠内容
|
|
57
|
+
function toggleCollapse(contentId: string) {
|
|
58
|
+
console.log(contentId)
|
|
59
|
+
if (collapseIcon.value === 'arrow-down') {
|
|
60
|
+
const { collapseNum } = props
|
|
61
|
+
const num = collapseNum || 2
|
|
62
|
+
const columns = props.columns.length >= num ? props.columns.slice(num) : []
|
|
63
|
+
collapseData.value = columns.filter(item => item.title !== '操作')
|
|
64
|
+
// 展开
|
|
65
|
+
// content.classList.remove('max-h-0')
|
|
66
|
+
// content.classList.add('max-h-[500px]')
|
|
67
|
+
collapseIcon.value = 'arrow-up'
|
|
68
|
+
} else {
|
|
69
|
+
collapseData.value = []
|
|
70
|
+
// 折叠
|
|
71
|
+
// content?.classList.add('max-h-0')
|
|
72
|
+
// content?.classList.remove('max-h-[500px]')
|
|
73
|
+
collapseIcon.value = 'arrow-down'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
</script>
|
|
77
|
+
|
|
78
|
+
<template>
|
|
79
|
+
<!-- 订单卡片容器 -->
|
|
80
|
+
<view class="mx-auto max-w-md space-y-4">
|
|
81
|
+
<!-- 订单卡片2 -->
|
|
82
|
+
<view class="ma-2 overflow-hidden rounded-xl bg-white shadow-sm dark:bg-[var(--wot-dark-background2)]">
|
|
83
|
+
<!-- 订单头部 -->
|
|
84
|
+
<view v-if="props.primaryColumn" class="flex items-center justify-between border-b border-gray-100 p-4">
|
|
85
|
+
<view class="flex items-center gap-4 text-base text-gray-800 font-medium dark:text-white">
|
|
86
|
+
<view class="flex items-center gap-1">
|
|
87
|
+
<slot name="select" />
|
|
88
|
+
<view class="mr-1 h-4 w-1 rounded-2xl" :style="{ backgroundColor: currentThemeColor.primary }" />
|
|
89
|
+
</view>
|
|
90
|
+
<view>
|
|
91
|
+
<view class="flex items-center gap-2">
|
|
92
|
+
<view class="overflow-hidden text-ellipsis font-700">
|
|
93
|
+
{{
|
|
94
|
+
formatItemData(
|
|
95
|
+
data.fieldMap[props.primaryColumn.sourceId],
|
|
96
|
+
props.primaryColumn.extControlType || props.primaryColumn.controlType
|
|
97
|
+
)
|
|
98
|
+
}}
|
|
99
|
+
</view>
|
|
100
|
+
<slot name="addressInfo" />
|
|
101
|
+
</view>
|
|
102
|
+
<slot name="detailAddress" />
|
|
103
|
+
</view>
|
|
104
|
+
</view>
|
|
105
|
+
<view
|
|
106
|
+
v-if="props.labelColumn"
|
|
107
|
+
class="whitespace-nowrap rounded px-1 py-1 text-sm text-white font-700"
|
|
108
|
+
:style="{
|
|
109
|
+
color: labelColumns?.find(
|
|
110
|
+
item => props.labelColumn && item.value === data.fieldMap[props.labelColumn.sourceId]
|
|
111
|
+
)?.css?.color,
|
|
112
|
+
}"
|
|
113
|
+
>
|
|
114
|
+
{{
|
|
115
|
+
formatItemData(
|
|
116
|
+
data.fieldMap[props.labelColumn.sourceId],
|
|
117
|
+
props.labelColumn.extControlType || props.labelColumn.controlType
|
|
118
|
+
)
|
|
119
|
+
}}
|
|
120
|
+
</view>
|
|
121
|
+
</view>
|
|
122
|
+
|
|
123
|
+
<!-- 订单内容 -->
|
|
124
|
+
<view v-if="props.model === 'complex'" class="p-4 pt-0">
|
|
125
|
+
<!-- 商品列表 -->
|
|
126
|
+
<view class="mb-3">
|
|
127
|
+
<!-- 订单信息 -->
|
|
128
|
+
<view class="text-sm space-y-3">
|
|
129
|
+
<LabelValue :exhibit-data="exhibitData" :data="data" :index="index" />
|
|
130
|
+
|
|
131
|
+
<!-- 可折叠内容 -->
|
|
132
|
+
<view :id="`${data.code}`" ref="contentRef">
|
|
133
|
+
<view class="space-y-3">
|
|
134
|
+
<LabelValue :exhibit-data="collapseData" :data="data" :index="index" />
|
|
135
|
+
</view>
|
|
136
|
+
</view>
|
|
137
|
+
</view>
|
|
138
|
+
</view>
|
|
139
|
+
|
|
140
|
+
<!-- 订单底部 -->
|
|
141
|
+
<view class="flex items-center justify-between border-t border-gray-100">
|
|
142
|
+
<!-- 折叠按钮 -->
|
|
143
|
+
<view>
|
|
144
|
+
<wd-icon
|
|
145
|
+
v-if="showCollapse"
|
|
146
|
+
id="toggle-btn-2"
|
|
147
|
+
name="down"
|
|
148
|
+
size="24px"
|
|
149
|
+
:icon="collapseIcon"
|
|
150
|
+
class="mr-auto flex items-center px-3 py-2 text-sm text-[#6b7280] !py-1"
|
|
151
|
+
@click.stop="toggleCollapse(data.code)"
|
|
152
|
+
/>
|
|
153
|
+
</view>
|
|
154
|
+
|
|
155
|
+
<view class="flex items-center gap-1">
|
|
156
|
+
<slot name="buttons" />
|
|
157
|
+
</view>
|
|
158
|
+
</view>
|
|
159
|
+
</view>
|
|
160
|
+
</view>
|
|
161
|
+
</view>
|
|
162
|
+
</template>
|
|
163
|
+
|
|
164
|
+
<style>
|
|
165
|
+
:deep(.wd-collapse-item__body) {
|
|
166
|
+
background-color: #f9f9f9 !important;
|
|
167
|
+
}
|
|
168
|
+
:deep(.wot-theme-dark .wd-collapse-item__body) {
|
|
169
|
+
background-color: #1b1b1e !important;
|
|
170
|
+
}
|
|
171
|
+
</style>
|