wui-components-v2 1.1.69 → 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.
- package/api/core/index.ts +74 -74
- package/api/feishu.ts +20 -20
- package/api/index.ts +4 -4
- package/api/login.ts +51 -51
- package/api/menu.ts +45 -45
- package/api/page.ts +114 -114
- package/api/sys.ts +12 -12
- package/api/tree.ts +28 -28
- package/components/action-popup/action-popup.vue +116 -116
- package/components/add-address-list/add-address-list.vue +187 -187
- package/components/add-address-page/add-address-page.vue +77 -77
- package/components/add-address-page/config.ts +297 -297
- package/components/audio-play/audio-play.vue +220 -220
- package/components/batch-upload-file/batch-upload-file.vue +75 -75
- package/components/card-botom-buttons/card-botom-buttons.vue +279 -279
- 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/demo-card/demo-card.vue +44 -44
- 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-loading/GlobalLoading.md +366 -366
- package/components/global-loading/global-loading.vue +55 -55
- package/components/global-message/GlobalMessage.md +570 -570
- package/components/global-message/global-message.vue +68 -68
- package/components/global-toast/GlobalToast.md +261 -261
- package/components/global-toast/global-toast.vue +56 -56
- package/components/label-value/label-value.vue +144 -144
- package/components/label-value/open-value-more.vue +56 -56
- package/components/list-top-buttons/list-top-buttons.vue +19 -19
- package/components/loading/loading.vue +5 -5
- package/components/login-form/login-form.vue +126 -126
- package/components/login-form-box/login-form-box.vue +65 -65
- package/components/mulselect-picker/mulselect-picker.vue +86 -86
- package/components/phone-login-form/phone-login-form.vue +204 -204
- package/components/privacy-popup/privacy-popup.vue +191 -191
- package/components/product-card/product-card.vue +201 -201
- package/components/scan-input/scan-input.vue +406 -406
- package/components/search/search.vue +128 -128
- package/components/select-col-picker/select-col-picker.vue +168 -168
- package/components/tab-search/tab-search.vue +73 -73
- package/components/tree-select/components/TreeNode.vue +200 -200
- package/components/tree-select/components/index.vue +471 -471
- package/components/tree-select/components/tree-select.vue +56 -56
- package/components/tree-select/index.vue +93 -93
- package/components/user-choose/user-choose.vue +169 -151
- package/components/video-play/video-play.vue +56 -56
- package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
- package/components/wui-default/wui-default.vue +49 -49
- package/components/wui-details-page/wui-details-page.vue +147 -147
- package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
- package/components/wui-edit-page/wui-edit-page.vue +793 -793
- 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-login/wui-login.vue +43 -43
- package/components/wui-login1/wui-login.vue +41 -41
- package/components/wui-menus/wui-menus-top.vue +137 -137
- package/components/wui-menus/wui-menus-top1.vue +8 -8
- package/components/wui-menus/wui-menus.vue +247 -247
- package/components/wui-menus1/components/banner-carousel.vue +320 -320
- package/components/wui-menus1/components/navbar.vue +43 -43
- package/components/wui-menus1/components/quick-panel.vue +55 -55
- package/components/wui-menus1/components/search-bar.vue +49 -49
- package/components/wui-menus1/components/section-menus.vue +208 -208
- package/components/wui-menus1/wui-menus-top.vue +718 -718
- package/components/wui-menus1/wui-menus-top1.vue +398 -398
- package/components/wui-menus1/wui-menus.vue +564 -564
- package/components/wui-notify-info/notify-handle.vue +53 -53
- package/components/wui-notify-info/wui-notify-info.vue +280 -280
- package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
- package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
- 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 +613 -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-tree-page/wui-tree-page.vue +297 -297
- package/components/wui-update-component/wui-update-component.vue +221 -221
- package/components/wui-user/wui-user.vue +202 -202
- package/composables/types/theme.ts +65 -65
- package/composables/types/user.ts +5 -5
- package/composables/useColorGenerator.ts +221 -221
- package/composables/useCompanyFieldFilter.ts +91 -91
- package/composables/useEnumes.ts +43 -43
- package/composables/useEventBus.ts +37 -37
- package/composables/useGlobalLoading.ts +47 -47
- package/composables/useGlobalMessage.ts +53 -53
- package/composables/useGlobalToast.ts +63 -63
- package/composables/useLocale.ts +54 -54
- package/composables/useManualTheme.ts +179 -179
- package/composables/useMenus.ts +193 -193
- package/composables/useSectionMenus.ts +120 -120
- package/composables/useTabbar.ts +50 -50
- package/composables/useTheme.ts +74 -74
- package/composables/useUser.ts +24 -24
- package/index.d.ts +90 -90
- package/index.ts +83 -83
- package/package.json +24 -24
- package/static/iconfont/iconfont.css +63 -63
- package/store/language.ts +151 -151
- package/store/manualThemeStore.ts +143 -143
- package/store/persist.ts +41 -41
- package/store/themeStore.ts +74 -74
- package/store/userStore.ts +22 -22
- package/styles/dark-mode.css +523 -523
- package/styles/dark-mode.min.css +1 -1
- package/styles/dark-mode.scss +498 -498
- package/type.ts +154 -154
- package/utils/control-tree.ts +353 -353
- package/utils/control-type-supportor.ts +148 -148
- package/utils/eventBus.ts +36 -36
- package/utils/idata-scan.ts +99 -99
- package/utils/index.ts +979 -979
- package/utils/rsaEncrypt.ts +10 -10
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { ref, watch } from 'vue'
|
|
3
|
-
import { onShow } from '@dcloudio/uni-app'
|
|
4
|
-
|
|
5
|
-
defineOptions({
|
|
6
|
-
name: 'WuiScanBindingSensor',
|
|
7
|
-
})
|
|
8
|
-
// 传感器编号
|
|
9
|
-
const code = ref('')
|
|
10
|
-
onShow(() => {
|
|
11
|
-
code.value = uni.getStorageSync('sensorCode')
|
|
12
|
-
})
|
|
13
|
-
watch(code, (value) => {
|
|
14
|
-
uni.setStorageSync('sensorCode', value)
|
|
15
|
-
})
|
|
16
|
-
// 扫码
|
|
17
|
-
function scan() {
|
|
18
|
-
uni.scanCode({
|
|
19
|
-
fail: () => {
|
|
20
|
-
uni.showToast({
|
|
21
|
-
title: '扫码失败',
|
|
22
|
-
icon: 'error',
|
|
23
|
-
})
|
|
24
|
-
},
|
|
25
|
-
success: (e) => {
|
|
26
|
-
if (!e.result) {
|
|
27
|
-
return uni.showToast({
|
|
28
|
-
title: '扫码结果为空',
|
|
29
|
-
icon: 'error',
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
// 判断扫码结果与当前保存的传感器编号是否一致
|
|
33
|
-
if (e.result !== uni.getStorageSync('sensorCode')) {
|
|
34
|
-
uni.showToast({
|
|
35
|
-
title: '更新设备成功',
|
|
36
|
-
})
|
|
37
|
-
}
|
|
38
|
-
code.value = e.result // 扫码结果
|
|
39
|
-
uni.setStorageSync('sensorCode', e.result)
|
|
40
|
-
enter()
|
|
41
|
-
},
|
|
42
|
-
})
|
|
43
|
-
}
|
|
44
|
-
function enter() {
|
|
45
|
-
uni.navigateBack()
|
|
46
|
-
}
|
|
47
|
-
</script>
|
|
48
|
-
|
|
49
|
-
<template>
|
|
50
|
-
<view class="bindBox">
|
|
51
|
-
<view class="iconBox">
|
|
52
|
-
<wd-icon name="scan" size="150rpx" @click="scan" />
|
|
53
|
-
</view>
|
|
54
|
-
<wd-input v-model="code" placeholder="请输入传感器编号" />
|
|
55
|
-
<wd-button @click="enter">
|
|
56
|
-
确认
|
|
57
|
-
</wd-button>
|
|
58
|
-
</view>
|
|
59
|
-
</template>
|
|
60
|
-
|
|
61
|
-
<style lang="scss" scoped>
|
|
62
|
-
.bindBox {
|
|
63
|
-
background-color: #fff;
|
|
64
|
-
display: flex;
|
|
65
|
-
flex-direction: column;
|
|
66
|
-
gap: 20rpx;
|
|
67
|
-
justify-content: center;
|
|
68
|
-
padding: 32rpx;
|
|
69
|
-
|
|
70
|
-
.iconBox {
|
|
71
|
-
display: flex;
|
|
72
|
-
justify-content: center;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
</style>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, watch } from 'vue'
|
|
3
|
+
import { onShow } from '@dcloudio/uni-app'
|
|
4
|
+
|
|
5
|
+
defineOptions({
|
|
6
|
+
name: 'WuiScanBindingSensor',
|
|
7
|
+
})
|
|
8
|
+
// 传感器编号
|
|
9
|
+
const code = ref('')
|
|
10
|
+
onShow(() => {
|
|
11
|
+
code.value = uni.getStorageSync('sensorCode')
|
|
12
|
+
})
|
|
13
|
+
watch(code, (value) => {
|
|
14
|
+
uni.setStorageSync('sensorCode', value)
|
|
15
|
+
})
|
|
16
|
+
// 扫码
|
|
17
|
+
function scan() {
|
|
18
|
+
uni.scanCode({
|
|
19
|
+
fail: () => {
|
|
20
|
+
uni.showToast({
|
|
21
|
+
title: '扫码失败',
|
|
22
|
+
icon: 'error',
|
|
23
|
+
})
|
|
24
|
+
},
|
|
25
|
+
success: (e) => {
|
|
26
|
+
if (!e.result) {
|
|
27
|
+
return uni.showToast({
|
|
28
|
+
title: '扫码结果为空',
|
|
29
|
+
icon: 'error',
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
// 判断扫码结果与当前保存的传感器编号是否一致
|
|
33
|
+
if (e.result !== uni.getStorageSync('sensorCode')) {
|
|
34
|
+
uni.showToast({
|
|
35
|
+
title: '更新设备成功',
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
code.value = e.result // 扫码结果
|
|
39
|
+
uni.setStorageSync('sensorCode', e.result)
|
|
40
|
+
enter()
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
function enter() {
|
|
45
|
+
uni.navigateBack()
|
|
46
|
+
}
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<template>
|
|
50
|
+
<view class="bindBox">
|
|
51
|
+
<view class="iconBox">
|
|
52
|
+
<wd-icon name="scan" size="150rpx" @click="scan" />
|
|
53
|
+
</view>
|
|
54
|
+
<wd-input v-model="code" placeholder="请输入传感器编号" />
|
|
55
|
+
<wd-button @click="enter">
|
|
56
|
+
确认
|
|
57
|
+
</wd-button>
|
|
58
|
+
</view>
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
<style lang="scss" scoped>
|
|
62
|
+
.bindBox {
|
|
63
|
+
background-color: #fff;
|
|
64
|
+
display: flex;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
gap: 20rpx;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
padding: 32rpx;
|
|
69
|
+
|
|
70
|
+
.iconBox {
|
|
71
|
+
display: flex;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
</style>
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
const props = defineProps<{
|
|
3
|
-
modelValue: string[]
|
|
4
|
-
}>()
|
|
5
|
-
|
|
6
|
-
const emit = defineEmits<{
|
|
7
|
-
(e: 'update:modelValue', value: string[]): void
|
|
8
|
-
(e: 'select', value: string): void
|
|
9
|
-
}>()
|
|
10
|
-
|
|
11
|
-
const MAX_HISTORY = 5
|
|
12
|
-
|
|
13
|
-
function addToHistory(keyword: string) {
|
|
14
|
-
if (!keyword.trim())
|
|
15
|
-
return
|
|
16
|
-
const current = [...props.modelValue]
|
|
17
|
-
const index = current.indexOf(keyword)
|
|
18
|
-
if (index > -1) {
|
|
19
|
-
current.splice(index, 1)
|
|
20
|
-
}
|
|
21
|
-
current.unshift(keyword)
|
|
22
|
-
if (current.length > MAX_HISTORY) {
|
|
23
|
-
current.pop()
|
|
24
|
-
}
|
|
25
|
-
emit('update:modelValue', current)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function removeFromHistory(keyword: string) {
|
|
29
|
-
const current = props.modelValue.filter(k => k !== keyword)
|
|
30
|
-
emit('update:modelValue', current)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function clearHistory() {
|
|
34
|
-
emit('update:modelValue', [])
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
defineExpose({ addToHistory })
|
|
38
|
-
</script>
|
|
39
|
-
|
|
40
|
-
<template>
|
|
41
|
-
<view v-if="modelValue.length > 0" class="mt-4">
|
|
42
|
-
<view class="mb-3 flex items-center justify-between">
|
|
43
|
-
<view class="flex items-center gap-2">
|
|
44
|
-
<!-- <ClockIcon class="h-4 w-4 text-slate-400" /> -->
|
|
45
|
-
<view class="text-sm text-slate-600 font-medium">
|
|
46
|
-
搜索历史
|
|
47
|
-
</view>
|
|
48
|
-
</view>
|
|
49
|
-
<view
|
|
50
|
-
class="cursor-pointer text-xs text-slate-400 transition-colors hover:text-indigo-500"
|
|
51
|
-
@click="clearHistory"
|
|
52
|
-
>
|
|
53
|
-
清空
|
|
54
|
-
</view>
|
|
55
|
-
</view>
|
|
56
|
-
<view class="flex flex-wrap gap-2">
|
|
57
|
-
<view
|
|
58
|
-
v-for="keyword in modelValue"
|
|
59
|
-
:key="keyword"
|
|
60
|
-
class="group flex cursor-pointer items-center gap-1.5 rounded-full bg-white px-3 py-1.5 text-sm text-slate-600 shadow-sm transition-all duration-200 hover:text-indigo-500 hover:shadow-md"
|
|
61
|
-
@click="emit('select', keyword)"
|
|
62
|
-
>
|
|
63
|
-
<!-- <MagnifyingGlassCircleIcon class="h-3.5 w-3.5" /> -->
|
|
64
|
-
<view>{{ keyword }}</view>
|
|
65
|
-
<wd-icon name="close-normal" size="16px" class="flex items-center" @click.stop="removeFromHistory(keyword)" />
|
|
66
|
-
<!-- <wd-icon name="close-bold" size="22px" @click.stop="removeFromHistory(keyword)" ></wd-icon> -->
|
|
67
|
-
</view>
|
|
68
|
-
</view>
|
|
69
|
-
</view>
|
|
70
|
-
</template>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
const props = defineProps<{
|
|
3
|
+
modelValue: string[]
|
|
4
|
+
}>()
|
|
5
|
+
|
|
6
|
+
const emit = defineEmits<{
|
|
7
|
+
(e: 'update:modelValue', value: string[]): void
|
|
8
|
+
(e: 'select', value: string): void
|
|
9
|
+
}>()
|
|
10
|
+
|
|
11
|
+
const MAX_HISTORY = 5
|
|
12
|
+
|
|
13
|
+
function addToHistory(keyword: string) {
|
|
14
|
+
if (!keyword.trim())
|
|
15
|
+
return
|
|
16
|
+
const current = [...props.modelValue]
|
|
17
|
+
const index = current.indexOf(keyword)
|
|
18
|
+
if (index > -1) {
|
|
19
|
+
current.splice(index, 1)
|
|
20
|
+
}
|
|
21
|
+
current.unshift(keyword)
|
|
22
|
+
if (current.length > MAX_HISTORY) {
|
|
23
|
+
current.pop()
|
|
24
|
+
}
|
|
25
|
+
emit('update:modelValue', current)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function removeFromHistory(keyword: string) {
|
|
29
|
+
const current = props.modelValue.filter(k => k !== keyword)
|
|
30
|
+
emit('update:modelValue', current)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function clearHistory() {
|
|
34
|
+
emit('update:modelValue', [])
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
defineExpose({ addToHistory })
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<view v-if="modelValue.length > 0" class="mt-4">
|
|
42
|
+
<view class="mb-3 flex items-center justify-between">
|
|
43
|
+
<view class="flex items-center gap-2">
|
|
44
|
+
<!-- <ClockIcon class="h-4 w-4 text-slate-400" /> -->
|
|
45
|
+
<view class="text-sm text-slate-600 font-medium">
|
|
46
|
+
搜索历史
|
|
47
|
+
</view>
|
|
48
|
+
</view>
|
|
49
|
+
<view
|
|
50
|
+
class="cursor-pointer text-xs text-slate-400 transition-colors hover:text-indigo-500"
|
|
51
|
+
@click="clearHistory"
|
|
52
|
+
>
|
|
53
|
+
清空
|
|
54
|
+
</view>
|
|
55
|
+
</view>
|
|
56
|
+
<view class="flex flex-wrap gap-2">
|
|
57
|
+
<view
|
|
58
|
+
v-for="keyword in modelValue"
|
|
59
|
+
:key="keyword"
|
|
60
|
+
class="group flex cursor-pointer items-center gap-1.5 rounded-full bg-white px-3 py-1.5 text-sm text-slate-600 shadow-sm transition-all duration-200 hover:text-indigo-500 hover:shadow-md"
|
|
61
|
+
@click="emit('select', keyword)"
|
|
62
|
+
>
|
|
63
|
+
<!-- <MagnifyingGlassCircleIcon class="h-3.5 w-3.5" /> -->
|
|
64
|
+
<view>{{ keyword }}</view>
|
|
65
|
+
<wd-icon name="close-normal" size="16px" class="flex items-center" @click.stop="removeFromHistory(keyword)" />
|
|
66
|
+
<!-- <wd-icon name="close-bold" size="22px" @click.stop="removeFromHistory(keyword)" ></wd-icon> -->
|
|
67
|
+
</view>
|
|
68
|
+
</view>
|
|
69
|
+
</view>
|
|
70
|
+
</template>
|