wui-components-v2 1.1.70 → 1.1.72

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 (82) 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/form-control/form-control.vue +9 -1
  14. package/components/global-loading/GlobalLoading.md +366 -366
  15. package/components/global-loading/global-loading.vue +55 -55
  16. package/components/global-message/GlobalMessage.md +570 -570
  17. package/components/global-toast/GlobalToast.md +261 -261
  18. package/components/global-toast/global-toast.vue +56 -56
  19. package/components/label-value/open-value-more.vue +56 -56
  20. package/components/loading/loading.vue +5 -5
  21. package/components/login-form-box/login-form-box.vue +65 -65
  22. package/components/phone-login-form/phone-login-form.vue +204 -204
  23. package/components/privacy-popup/privacy-popup.vue +191 -191
  24. package/components/scan-input/scan-input.vue +406 -406
  25. package/components/select-col-picker/select-col-picker.vue +168 -168
  26. package/components/tab-search/tab-search.vue +73 -73
  27. package/components/tree-select/components/TreeNode.vue +200 -200
  28. package/components/tree-select/components/index.vue +471 -471
  29. package/components/tree-select/components/tree-select.vue +56 -56
  30. package/components/tree-select/index.vue +93 -93
  31. package/components/user-choose/user-choose.vue +169 -151
  32. package/components/video-play/video-play.vue +56 -56
  33. package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
  34. package/components/wui-default/wui-default.vue +49 -49
  35. package/components/wui-details-page/wui-details-page.vue +147 -147
  36. package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
  37. package/components/wui-edit-page/wui-edit-page.vue +793 -793
  38. package/components/wui-login/wui-login.vue +43 -43
  39. package/components/wui-login1/wui-login.vue +41 -41
  40. package/components/wui-menus/wui-menus-top.vue +137 -137
  41. package/components/wui-menus/wui-menus-top1.vue +8 -8
  42. package/components/wui-menus1/components/banner-carousel.vue +320 -320
  43. package/components/wui-menus1/components/quick-panel.vue +55 -55
  44. package/components/wui-menus1/components/search-bar.vue +49 -49
  45. package/components/wui-menus1/components/section-menus.vue +208 -208
  46. package/components/wui-menus1/wui-menus-top.vue +718 -718
  47. package/components/wui-menus1/wui-menus-top1.vue +398 -398
  48. package/components/wui-notify-info/notify-handle.vue +53 -53
  49. package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
  50. package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
  51. package/components/wui-select-list/wui-select-list.vue +1 -9
  52. package/components/wui-select-popup/wui-select-popup.vue +1 -0
  53. package/components/wui-tree-page/wui-tree-page.vue +297 -297
  54. package/components/wui-update-component/wui-update-component.vue +221 -221
  55. package/composables/types/theme.ts +65 -65
  56. package/composables/types/user.ts +5 -5
  57. package/composables/useColorGenerator.ts +221 -221
  58. package/composables/useCompanyFieldFilter.ts +26 -24
  59. package/composables/useEnumes.ts +43 -43
  60. package/composables/useEventBus.ts +37 -37
  61. package/composables/useGlobalLoading.ts +47 -47
  62. package/composables/useGlobalMessage.ts +53 -53
  63. package/composables/useGlobalToast.ts +63 -63
  64. package/composables/useLocale.ts +54 -54
  65. package/composables/useManualTheme.ts +179 -179
  66. package/composables/useSectionMenus.ts +120 -120
  67. package/composables/useTabbar.ts +50 -50
  68. package/composables/useTheme.ts +74 -74
  69. package/composables/useUser.ts +24 -24
  70. package/index.d.ts +90 -90
  71. package/package.json +24 -24
  72. package/store/manualThemeStore.ts +143 -143
  73. package/store/persist.ts +41 -41
  74. package/store/themeStore.ts +74 -74
  75. package/store/userStore.ts +22 -22
  76. package/styles/dark-mode.scss +498 -498
  77. package/type.ts +154 -154
  78. package/utils/control-tree.ts +353 -353
  79. package/utils/eventBus.ts +36 -36
  80. package/utils/idata-scan.ts +99 -99
  81. package/utils/index.ts +979 -979
  82. 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>
@@ -97,9 +97,9 @@ function toggleCollapse(contentId: string) {
97
97
  )
98
98
  }}
99
99
  </view>
100
- <slot name="addressInfo" />
100
+ <!-- <slot name="addressInfo" />s -->
101
101
  </view>
102
- <slot name="detailAddress" />
102
+ <!-- <slot name="detailAddress" /> -->
103
103
  </view>
104
104
  </view>
105
105
  <view