wui-components-v2 1.1.70 → 1.1.71

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/api/feishu.ts +20 -20
  2. package/api/index.ts +4 -4
  3. package/api/login.ts +51 -51
  4. package/api/tree.ts +28 -28
  5. package/components/action-popup/action-popup.vue +116 -116
  6. package/components/add-address-list/add-address-list.vue +187 -187
  7. package/components/add-address-page/config.ts +297 -297
  8. package/components/audio-play/audio-play.vue +220 -220
  9. package/components/batch-upload-file/batch-upload-file.vue +75 -75
  10. package/components/card-botom-buttons/card-botom-buttons.vue +279 -279
  11. package/components/demo-card/demo-card.vue +44 -44
  12. package/components/fold-card/fold-card.vue +2 -2
  13. package/components/global-loading/GlobalLoading.md +366 -366
  14. package/components/global-loading/global-loading.vue +55 -55
  15. package/components/global-message/GlobalMessage.md +570 -570
  16. package/components/global-toast/GlobalToast.md +261 -261
  17. package/components/global-toast/global-toast.vue +56 -56
  18. package/components/label-value/open-value-more.vue +56 -56
  19. package/components/loading/loading.vue +5 -5
  20. package/components/login-form-box/login-form-box.vue +65 -65
  21. package/components/phone-login-form/phone-login-form.vue +204 -204
  22. package/components/privacy-popup/privacy-popup.vue +191 -191
  23. package/components/scan-input/scan-input.vue +406 -406
  24. package/components/select-col-picker/select-col-picker.vue +168 -168
  25. package/components/tab-search/tab-search.vue +73 -73
  26. package/components/tree-select/components/TreeNode.vue +200 -200
  27. package/components/tree-select/components/index.vue +471 -471
  28. package/components/tree-select/components/tree-select.vue +56 -56
  29. package/components/tree-select/index.vue +93 -93
  30. package/components/user-choose/user-choose.vue +169 -151
  31. package/components/video-play/video-play.vue +56 -56
  32. package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
  33. package/components/wui-default/wui-default.vue +49 -49
  34. package/components/wui-details-page/wui-details-page.vue +147 -147
  35. package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
  36. package/components/wui-edit-page/wui-edit-page.vue +793 -793
  37. package/components/wui-login/wui-login.vue +43 -43
  38. package/components/wui-login1/wui-login.vue +41 -41
  39. package/components/wui-menus/wui-menus-top.vue +137 -137
  40. package/components/wui-menus/wui-menus-top1.vue +8 -8
  41. package/components/wui-menus1/components/banner-carousel.vue +320 -320
  42. package/components/wui-menus1/components/quick-panel.vue +55 -55
  43. package/components/wui-menus1/components/search-bar.vue +49 -49
  44. package/components/wui-menus1/components/section-menus.vue +208 -208
  45. package/components/wui-menus1/wui-menus-top.vue +718 -718
  46. package/components/wui-menus1/wui-menus-top1.vue +398 -398
  47. package/components/wui-notify-info/notify-handle.vue +53 -53
  48. package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
  49. package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
  50. package/components/wui-select-popup/wui-select-popup.vue +1 -0
  51. package/components/wui-tree-page/wui-tree-page.vue +297 -297
  52. package/components/wui-update-component/wui-update-component.vue +221 -221
  53. package/composables/types/theme.ts +65 -65
  54. package/composables/types/user.ts +5 -5
  55. package/composables/useColorGenerator.ts +221 -221
  56. package/composables/useEnumes.ts +43 -43
  57. package/composables/useEventBus.ts +37 -37
  58. package/composables/useGlobalLoading.ts +47 -47
  59. package/composables/useGlobalMessage.ts +53 -53
  60. package/composables/useGlobalToast.ts +63 -63
  61. package/composables/useLocale.ts +54 -54
  62. package/composables/useManualTheme.ts +179 -179
  63. package/composables/useSectionMenus.ts +120 -120
  64. package/composables/useTabbar.ts +50 -50
  65. package/composables/useTheme.ts +74 -74
  66. package/composables/useUser.ts +24 -24
  67. package/index.d.ts +90 -90
  68. package/package.json +24 -24
  69. package/store/manualThemeStore.ts +143 -143
  70. package/store/persist.ts +41 -41
  71. package/store/themeStore.ts +74 -74
  72. package/store/userStore.ts +22 -22
  73. package/styles/dark-mode.scss +498 -498
  74. package/type.ts +154 -154
  75. package/utils/control-tree.ts +353 -353
  76. package/utils/eventBus.ts +36 -36
  77. package/utils/idata-scan.ts +99 -99
  78. package/utils/index.ts +979 -979
  79. package/utils/rsaEncrypt.ts +10 -10
@@ -1,279 +1,279 @@
1
- <script setup lang="ts">
2
- import { computed, defineOptions, defineProps, ref } from 'vue'
3
- import { useRouter } from 'uni-mini-router'
4
- import { onLoad } from '@dcloudio/uni-app'
5
- import type { ClassEditConfigs, Columns, Entities, Enums, Fields, Groups, rowActions } from '../../type'
6
- import ActionPopup from '../action-popup/action-popup.vue'
7
- import { actionDataSave, deleteData } from '../../api/page'
8
- import { useGlobalToast } from '../../composables/useGlobalToast'
9
- import { useGlobalMessage } from '../../composables/useGlobalMessage'
10
- import { comparator } from '../../utils/index'
11
- import ControlTypeSupportor from '../../utils/control-type-supportor'
12
- import { formatItemData } from '../../utils'
13
-
14
- defineOptions({
15
- name: 'CardBotomButtons',
16
- })
17
- const props = defineProps<{
18
- item: Groups
19
- sourceId: string
20
- code: string
21
- pageType?: string
22
- data: Entities
23
- rowActions?: rowActions[]
24
- actions?: rowActions[]
25
- ractions?: rowActions[]
26
- zpaging?: any
27
- enumColumn?: Enums
28
- addEvent?: string
29
- primaryColumn: Columns
30
- detailButtonHandle?: (data: Entities) => void
31
- }>()
32
- const toast = useGlobalToast()
33
- const message = useGlobalMessage()
34
- const pageType = ref('')
35
- onLoad((option: any) => {
36
- pageType.value = option.type || ''
37
- })
38
- const router = useRouter()
39
-
40
- // rowActions按钮
41
- const anctions = computed(() => {
42
- const rowActions = props.rowActions || []
43
- return [...rowActions.filter(isShowAction)]
44
- })
45
-
46
- // raction按钮
47
- const ractions = computed(() => {
48
- const ractions = props.ractions || []
49
- return [...ractions.filter(isShowAction)]
50
- })
51
-
52
- // actions按钮
53
- const actions = computed(() => {
54
- const actions = props.actions || []
55
- return [...actions.filter(isShowAction)]
56
- })
57
-
58
- // 跳转编辑页面
59
- function edit() {
60
- if (props.item.classEditConfigs && props.item.classEditConfigs.length > 0) {
61
- const sourceData = props.item.classEditConfigs.find((item: ClassEditConfigs) => {
62
- return item.preposes[0].transDefaultValue.includes(props.data.fieldMap[item.preposes[0].sourceId])
63
- })
64
- router.push(
65
- `/pages/edit-page/index?sourceId=${sourceData?.id || props.sourceId}&id=${props.code}&title=${props.item.title}&pageType=${props.pageType}&addEvent=${props.addEvent}`
66
- )
67
- } else {
68
- router.push(
69
- `/pages/edit-page/index?sourceId=${props.sourceId}&id=${props.code}&title=${props.item.title}&pageType=${props.pageType}&addEvent=${props.addEvent}`
70
- )
71
- }
72
- }
73
-
74
- const actionItem = ref<Groups>()
75
- const actionItemShow = ref(false) // rowActions输入弹框开关
76
- const showMoreButn = ref(false) // 更多按钮开关
77
- // 打开rowActions弹框
78
- async function action(subitem: rowActions) {
79
- console.log(subitem, 2222222222222222)
80
- if (subitem.writes.length) {
81
- actionItem.value = {
82
- ...props.item,
83
- fields: subitem.writes,
84
- id: subitem.id,
85
- }
86
- actionItemShow.value = true
87
- } else {
88
- try {
89
- await actionDataSave(subitem.id, props.code, {})
90
- props.zpaging.reload()
91
- toast.success({ msg: '操作成功!' })
92
- } catch (error: any) {
93
- toast.error(error)
94
- console.log(error)
95
- }
96
- }
97
- }
98
-
99
- // 跳转raction页面
100
- function raction(subitem: rowActions) {
101
- router.push(
102
- `/pages/list/index?sourceId=${subitem.id}&mainCode=${props.code}&title=${subitem.title}&pageType=${props.pageType}`
103
- )
104
- }
105
-
106
- // 跳转详情页面
107
- function detail() {
108
- if (props.detailButtonHandle) {
109
- props.detailButtonHandle(props.data)
110
- return
111
- }
112
- router.push(`/pages/details-page/index?sourceId=${props.sourceId}&id=${props.code}&title=${props.item.title}`)
113
- }
114
-
115
- // 判断按钮是否满足条件显示
116
- function isShowAction(item: rowActions) {
117
- if (item.preposes.length > 0) {
118
- return item.preposes.every((prepose: Fields) => {
119
- // 判断字段值是否满足要求
120
- return comparator(prepose.comparator || 'equal', props.data.fieldMap[prepose.sourceId], prepose.defaultValue)
121
- })
122
- }
123
- return true
124
- }
125
-
126
- function isControlType(item: Columns): string {
127
- return ControlTypeSupportor.getControlType(
128
- { ...item, hidden: false, disabled: false, defaultValue: '', transDefaultValue: '', required: false },
129
- props.data.fieldMap[item.sourceId]
130
- )
131
- }
132
-
133
- // 删除
134
- function del() {
135
- message.confirm({
136
- msg: `确定要删除${formatItemData(props.data.fieldMap[props.primaryColumn.sourceId], isControlType(props.primaryColumn)) || '这条记录'}吗?`,
137
- title: '提示',
138
- beforeConfirm: async ({ resolve }) => {
139
- try {
140
- const res = await deleteData(props.sourceId, props.code)
141
- if (res.status === 'success') {
142
- props.zpaging.reload()
143
- toast.success({ msg: '删除成功!' })
144
- }
145
- message.close()
146
- } catch (error) {
147
- console.log(error)
148
- } finally {
149
- resolve(true)
150
- }
151
- },
152
- })
153
- }
154
-
155
- // 更多按钮数据
156
- interface Morebutns extends Omit<rowActions, ''> {
157
- actionType: string
158
- name: string
159
- }
160
- const morebutns = computed(() => {
161
- let buts: Morebutns[] = []
162
- if (props.rowActions) {
163
- buts = anctions.value.map(item => {
164
- return {
165
- actionType: 'rowActions',
166
- name: item.title,
167
- ...item,
168
- }
169
- })
170
- }
171
- if (props.ractions) {
172
- buts = buts.concat(
173
- ractions.value.map(item => {
174
- return {
175
- actionType: 'ractions',
176
- name: item.title,
177
- ...item,
178
- }
179
- })
180
- )
181
- }
182
- if (props.actions) {
183
- buts = buts.concat(
184
- actions.value.map(item => {
185
- return {
186
- actionType: 'rowActions',
187
- name: item.title,
188
- ...item,
189
- }
190
- })
191
- )
192
- }
193
- return buts
194
- })
195
-
196
- // 关闭更多按钮
197
- function closeMoreButn() {
198
- showMoreButn.value = false
199
- }
200
-
201
- // 点击更多按钮
202
- function select({ item }: { item: any }) {
203
- if (item.title.includes('评价') && item.actionType === 'rowActions') {
204
- return action(item)
205
- }
206
- message.confirm({
207
- msg: `确定${item.title}操作吗?`,
208
- title: '提示',
209
- success: () => {
210
- if (item.actionType === 'ractions') {
211
- raction(item)
212
- }
213
- if (item.actionType === 'rowActions') {
214
- action(item)
215
- }
216
- },
217
- })
218
- }
219
- console.log(props, '3333333333333')
220
- </script>
221
-
222
- <template>
223
- <view class="flex items-center gap-1">
224
- <!-- <view v-if="props.rowActions" class="flex gap-1">
225
- <wd-button v-for="subitem in anctions" :key="subitem.id" plain size="small" @click="action(subitem)">
226
- {{ subitem.title }}
227
- </wd-button>
228
- </view>
229
- <view v-if="props.ractions" class="flex gap-1">
230
- <wd-button v-for="subitem in ractions" :key="subitem.id" plain size="small" @click="raction(subitem)">
231
- {{ subitem.title }}
232
- </wd-button>
233
- </view> -->
234
- <view>
235
- <wd-button
236
- v-if="morebutns.length > 3"
237
- size="small"
238
- type="info"
239
- @click="
240
- () => {
241
- showMoreButn = true
242
- }
243
- "
244
- >
245
- 更多
246
- </wd-button>
247
- <view v-else class="flex gap-2 flex-wrap">
248
- <wd-button
249
- v-for="subitem in morebutns"
250
- :key="subitem.id"
251
- plain
252
- size="small"
253
- @click="
254
- () => {
255
- select({ item: subitem })
256
- }
257
- "
258
- >
259
- {{ subitem.title }}
260
- </wd-button>
261
- </view>
262
- </view>
263
-
264
- <wd-button v-if="props.item.buttons.includes('dtmplEdit')" size="small" @click="edit()">编辑</wd-button>
265
- <wd-button v-if="props.item.buttons.includes('detail')" size="small" type="info" @click="detail()">详情</wd-button>
266
- <wd-button v-if="props.item.buttons.includes('singleDelete')" size="small" type="danger" @click="del()">
267
- 删除
268
- </wd-button>
269
- <ActionPopup
270
- v-model:show="actionItemShow"
271
- :enum-column="props.enumColumn"
272
- :zpaging="props.zpaging"
273
- :field-group="actionItem"
274
- :code="props.code"
275
- />
276
- <!-- 更多按钮 -->
277
- <wd-action-sheet v-model="showMoreButn" :actions="morebutns" @close="closeMoreButn" @select="select" />
278
- </view>
279
- </template>
1
+ <script setup lang="ts">
2
+ import { computed, defineOptions, defineProps, ref } from 'vue'
3
+ import { useRouter } from 'uni-mini-router'
4
+ import { onLoad } from '@dcloudio/uni-app'
5
+ import type { ClassEditConfigs, Columns, Entities, Enums, Fields, Groups, rowActions } from '../../type'
6
+ import ActionPopup from '../action-popup/action-popup.vue'
7
+ import { actionDataSave, deleteData } from '../../api/page'
8
+ import { useGlobalToast } from '../../composables/useGlobalToast'
9
+ import { useGlobalMessage } from '../../composables/useGlobalMessage'
10
+ import { comparator } from '../../utils/index'
11
+ import ControlTypeSupportor from '../../utils/control-type-supportor'
12
+ import { formatItemData } from '../../utils'
13
+
14
+ defineOptions({
15
+ name: 'CardBotomButtons',
16
+ })
17
+ const props = defineProps<{
18
+ item: Groups
19
+ sourceId: string
20
+ code: string
21
+ pageType?: string
22
+ data: Entities
23
+ rowActions?: rowActions[]
24
+ actions?: rowActions[]
25
+ ractions?: rowActions[]
26
+ zpaging?: any
27
+ enumColumn?: Enums
28
+ addEvent?: string
29
+ primaryColumn: Columns
30
+ detailButtonHandle?: (data: Entities) => void
31
+ }>()
32
+ const toast = useGlobalToast()
33
+ const message = useGlobalMessage()
34
+ const pageType = ref('')
35
+ onLoad((option: any) => {
36
+ pageType.value = option.type || ''
37
+ })
38
+ const router = useRouter()
39
+
40
+ // rowActions按钮
41
+ const anctions = computed(() => {
42
+ const rowActions = props.rowActions || []
43
+ return [...rowActions.filter(isShowAction)]
44
+ })
45
+
46
+ // raction按钮
47
+ const ractions = computed(() => {
48
+ const ractions = props.ractions || []
49
+ return [...ractions.filter(isShowAction)]
50
+ })
51
+
52
+ // actions按钮
53
+ const actions = computed(() => {
54
+ const actions = props.actions || []
55
+ return [...actions.filter(isShowAction)]
56
+ })
57
+
58
+ // 跳转编辑页面
59
+ function edit() {
60
+ if (props.item.classEditConfigs && props.item.classEditConfigs.length > 0) {
61
+ const sourceData = props.item.classEditConfigs.find((item: ClassEditConfigs) => {
62
+ return item.preposes[0].transDefaultValue.includes(props.data.fieldMap[item.preposes[0].sourceId])
63
+ })
64
+ router.push(
65
+ `/pages/edit-page/index?sourceId=${sourceData?.id || props.sourceId}&id=${props.code}&title=${props.item.title}&pageType=${props.pageType}&addEvent=${props.addEvent}`
66
+ )
67
+ } else {
68
+ router.push(
69
+ `/pages/edit-page/index?sourceId=${props.sourceId}&id=${props.code}&title=${props.item.title}&pageType=${props.pageType}&addEvent=${props.addEvent}`
70
+ )
71
+ }
72
+ }
73
+
74
+ const actionItem = ref<Groups>()
75
+ const actionItemShow = ref(false) // rowActions输入弹框开关
76
+ const showMoreButn = ref(false) // 更多按钮开关
77
+ // 打开rowActions弹框
78
+ async function action(subitem: rowActions) {
79
+ console.log(subitem, 2222222222222222)
80
+ if (subitem.writes.length) {
81
+ actionItem.value = {
82
+ ...props.item,
83
+ fields: subitem.writes,
84
+ id: subitem.id,
85
+ }
86
+ actionItemShow.value = true
87
+ } else {
88
+ try {
89
+ await actionDataSave(subitem.id, props.code, {})
90
+ props.zpaging.reload()
91
+ toast.success({ msg: '操作成功!' })
92
+ } catch (error: any) {
93
+ toast.error(error)
94
+ console.log(error)
95
+ }
96
+ }
97
+ }
98
+
99
+ // 跳转raction页面
100
+ function raction(subitem: rowActions) {
101
+ router.push(
102
+ `/pages/list/index?sourceId=${subitem.id}&mainCode=${props.code}&title=${subitem.title}&pageType=${props.pageType}`
103
+ )
104
+ }
105
+
106
+ // 跳转详情页面
107
+ function detail() {
108
+ if (props.detailButtonHandle) {
109
+ props.detailButtonHandle(props.data)
110
+ return
111
+ }
112
+ router.push(`/pages/details-page/index?sourceId=${props.sourceId}&id=${props.code}&title=${props.item.title}`)
113
+ }
114
+
115
+ // 判断按钮是否满足条件显示
116
+ function isShowAction(item: rowActions) {
117
+ if (item.preposes.length > 0) {
118
+ return item.preposes.every((prepose: Fields) => {
119
+ // 判断字段值是否满足要求
120
+ return comparator(prepose.comparator || 'equal', props.data.fieldMap[prepose.sourceId], prepose.defaultValue)
121
+ })
122
+ }
123
+ return true
124
+ }
125
+
126
+ function isControlType(item: Columns): string {
127
+ return ControlTypeSupportor.getControlType(
128
+ { ...item, hidden: false, disabled: false, defaultValue: '', transDefaultValue: '', required: false },
129
+ props.data.fieldMap[item.sourceId]
130
+ )
131
+ }
132
+
133
+ // 删除
134
+ function del() {
135
+ message.confirm({
136
+ msg: `确定要删除${formatItemData(props.data.fieldMap[props.primaryColumn.sourceId], isControlType(props.primaryColumn)) || '这条记录'}吗?`,
137
+ title: '提示',
138
+ beforeConfirm: async ({ resolve }) => {
139
+ try {
140
+ const res = await deleteData(props.sourceId, props.code)
141
+ if (res.status === 'success') {
142
+ props.zpaging.reload()
143
+ toast.success({ msg: '删除成功!' })
144
+ }
145
+ message.close()
146
+ } catch (error) {
147
+ console.log(error)
148
+ } finally {
149
+ resolve(true)
150
+ }
151
+ },
152
+ })
153
+ }
154
+
155
+ // 更多按钮数据
156
+ interface Morebutns extends Omit<rowActions, ''> {
157
+ actionType: string
158
+ name: string
159
+ }
160
+ const morebutns = computed(() => {
161
+ let buts: Morebutns[] = []
162
+ if (props.rowActions) {
163
+ buts = anctions.value.map(item => {
164
+ return {
165
+ actionType: 'rowActions',
166
+ name: item.title,
167
+ ...item,
168
+ }
169
+ })
170
+ }
171
+ if (props.ractions) {
172
+ buts = buts.concat(
173
+ ractions.value.map(item => {
174
+ return {
175
+ actionType: 'ractions',
176
+ name: item.title,
177
+ ...item,
178
+ }
179
+ })
180
+ )
181
+ }
182
+ if (props.actions) {
183
+ buts = buts.concat(
184
+ actions.value.map(item => {
185
+ return {
186
+ actionType: 'rowActions',
187
+ name: item.title,
188
+ ...item,
189
+ }
190
+ })
191
+ )
192
+ }
193
+ return buts
194
+ })
195
+
196
+ // 关闭更多按钮
197
+ function closeMoreButn() {
198
+ showMoreButn.value = false
199
+ }
200
+
201
+ // 点击更多按钮
202
+ function select({ item }: { item: any }) {
203
+ if (item.title.includes('评价') && item.actionType === 'rowActions') {
204
+ return action(item)
205
+ }
206
+ message.confirm({
207
+ msg: `确定${item.title}操作吗?`,
208
+ title: '提示',
209
+ success: () => {
210
+ if (item.actionType === 'ractions') {
211
+ raction(item)
212
+ }
213
+ if (item.actionType === 'rowActions') {
214
+ action(item)
215
+ }
216
+ },
217
+ })
218
+ }
219
+ console.log(props, '3333333333333')
220
+ </script>
221
+
222
+ <template>
223
+ <view class="flex items-center gap-1">
224
+ <!-- <view v-if="props.rowActions" class="flex gap-1">
225
+ <wd-button v-for="subitem in anctions" :key="subitem.id" plain size="small" @click="action(subitem)">
226
+ {{ subitem.title }}
227
+ </wd-button>
228
+ </view>
229
+ <view v-if="props.ractions" class="flex gap-1">
230
+ <wd-button v-for="subitem in ractions" :key="subitem.id" plain size="small" @click="raction(subitem)">
231
+ {{ subitem.title }}
232
+ </wd-button>
233
+ </view> -->
234
+ <view>
235
+ <wd-button
236
+ v-if="morebutns.length > 3"
237
+ size="small"
238
+ type="info"
239
+ @click="
240
+ () => {
241
+ showMoreButn = true
242
+ }
243
+ "
244
+ >
245
+ 更多
246
+ </wd-button>
247
+ <view v-else class="flex gap-2 flex-wrap">
248
+ <wd-button
249
+ v-for="subitem in morebutns"
250
+ :key="subitem.id"
251
+ plain
252
+ size="small"
253
+ @click="
254
+ () => {
255
+ select({ item: subitem })
256
+ }
257
+ "
258
+ >
259
+ {{ subitem.title }}
260
+ </wd-button>
261
+ </view>
262
+ </view>
263
+
264
+ <wd-button v-if="props.item.buttons.includes('dtmplEdit')" size="small" @click="edit()">编辑</wd-button>
265
+ <wd-button v-if="props.item.buttons.includes('detail')" size="small" type="info" @click="detail()">详情</wd-button>
266
+ <wd-button v-if="props.item.buttons.includes('singleDelete')" size="small" type="danger" @click="del()">
267
+ 删除
268
+ </wd-button>
269
+ <ActionPopup
270
+ v-model:show="actionItemShow"
271
+ :enum-column="props.enumColumn"
272
+ :zpaging="props.zpaging"
273
+ :field-group="actionItem"
274
+ :code="props.code"
275
+ />
276
+ <!-- 更多按钮 -->
277
+ <wd-action-sheet v-model="showMoreButn" :actions="morebutns" @close="closeMoreButn" @select="select" />
278
+ </view>
279
+ </template>
@@ -1,44 +1,44 @@
1
- <script lang="ts" setup>
2
- import { defineOptions, defineProps } from 'vue'
3
- import { useManualTheme } from '../../composables/useManualTheme'
4
-
5
- defineOptions({
6
- name: 'DemoCard',
7
- })
8
-
9
- const props = defineProps({
10
- // 标题
11
- title: {
12
- type: String,
13
- default: '',
14
- },
15
-
16
- })
17
-
18
- const {
19
- primary,
20
- } = useManualTheme()
21
- </script>
22
-
23
- <template>
24
- <wd-card>
25
- <template #title>
26
- <view class="flex items-center gap-2">
27
- <view class="h-3.5 w-1 rounded-2xl" :style="{ backgroundColor: primary }" />
28
- <text class="font-bold">
29
- {{ props.title }}
30
- </text>
31
- </view>
32
- </template>
33
- <slot name="content" />
34
- <template #footer>
35
- <slot name="footer" />
36
- </template>
37
- </wd-card>
38
- </template>
39
-
40
- <style lang="scss" scoped>
41
- :deep(.wd-card__footer){
42
- padding-top: 0 !important;
43
- }
44
- </style>
1
+ <script lang="ts" setup>
2
+ import { defineOptions, defineProps } from 'vue'
3
+ import { useManualTheme } from '../../composables/useManualTheme'
4
+
5
+ defineOptions({
6
+ name: 'DemoCard',
7
+ })
8
+
9
+ const props = defineProps({
10
+ // 标题
11
+ title: {
12
+ type: String,
13
+ default: '',
14
+ },
15
+
16
+ })
17
+
18
+ const {
19
+ primary,
20
+ } = useManualTheme()
21
+ </script>
22
+
23
+ <template>
24
+ <wd-card>
25
+ <template #title>
26
+ <view class="flex items-center gap-2">
27
+ <view class="h-3.5 w-1 rounded-2xl" :style="{ backgroundColor: primary }" />
28
+ <text class="font-bold">
29
+ {{ props.title }}
30
+ </text>
31
+ </view>
32
+ </template>
33
+ <slot name="content" />
34
+ <template #footer>
35
+ <slot name="footer" />
36
+ </template>
37
+ </wd-card>
38
+ </template>
39
+
40
+ <style lang="scss" scoped>
41
+ :deep(.wd-card__footer){
42
+ padding-top: 0 !important;
43
+ }
44
+ </style>
@@ -73,6 +73,7 @@ function toggleCollapse(contentId: string) {
73
73
  collapseIcon.value = 'arrow-down'
74
74
  }
75
75
  }
76
+ console.log(props, 'props')
76
77
  </script>
77
78
 
78
79
  <template>
@@ -97,9 +98,8 @@ function toggleCollapse(contentId: string) {
97
98
  )
98
99
  }}
99
100
  </view>
100
- <slot name="addressInfo" />
101
101
  </view>
102
- <slot name="detailAddress" />
102
+ <!-- <slot name="detailAddress" /> -->
103
103
  </view>
104
104
  </view>
105
105
  <view