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,168 +1,168 @@
1
- <script setup lang="ts">
2
- import { computed, defineEmits, defineOptions, defineProps, reactive, ref } from 'vue'
3
- import { onLoad } from '@dcloudio/uni-app'
4
- import { treeConfigApi, treeDataApi, treeNodeDataApi } from '../../api/tree'
5
- import { pageConfig } from '../../api/page'
6
-
7
- defineOptions({
8
- name: 'SelectColPicker',
9
- })
10
- const props = defineProps<Props>()
11
-
12
- const emits = defineEmits<{
13
- (e: 'update:modelValue', value: string[]): void
14
- }>()
15
-
16
- // 定义 props 类型
17
- interface Props {
18
- sourceId: string
19
- label?: string
20
- labelWidth: string
21
- prop: string
22
- readonly: boolean
23
- clearable: boolean
24
- placeholder: string
25
- modelValue: Array<string>
26
- }
27
-
28
- const dataValue = computed(() => {
29
- return props.modelValue
30
- })
31
- const sourceId = ref('')
32
- const columns = ref<any[]>([])
33
- const treeConfigs = reactive({
34
- branchRatmplId: '',
35
- branchTitle: '',
36
- id: '',
37
- rootGtmplId: '',
38
- primaryColumnId1: '',
39
- primaryColumnId2: '',
40
- leafRatmplId: '',
41
- })
42
-
43
- // 获取配置1
44
- async function treeConfig1() {
45
- try {
46
- const res = await treeConfigApi(sourceId.value)
47
- console.log(res)
48
- treeConfigs.branchRatmplId = res.ttmplConfig.branchRatmplId
49
- treeConfigs.branchTitle = res.ttmplConfig.branchTitle
50
- treeConfigs.id = res.ttmplConfig.id
51
- treeConfigs.rootGtmplId = res.ttmplConfig.rootGtmplId
52
- treeConfigs.leafRatmplId = res.ttmplConfig.leafRatmplId
53
- treeConfig2(treeConfigs.branchRatmplId, treeConfigs.leafRatmplId)
54
- }
55
- catch (error) {
56
- console.log('error:', error)
57
- // TODO handle the exception
58
- }
59
- }
60
-
61
- onLoad((option: any) => {
62
- sourceId.value = props.sourceId || option.sourceId
63
- treeConfig1()
64
- })
65
-
66
- // 获取配置2
67
- async function treeConfig2(branchRatmplId: string, leafRatmplId: string) {
68
- try {
69
- const res1 = await pageConfig(branchRatmplId)
70
- const res2 = await pageConfig(leafRatmplId)
71
- treeConfigs.primaryColumnId1 = res1.ltmplConfig.primaryColumn.sourceId
72
- treeConfigs.primaryColumnId2 = res2.ltmplConfig.primaryColumn.sourceId
73
- getTreeData()
74
- }
75
- catch (error) {
76
- console.log('error:', error)
77
- // TODO handle the exception
78
- }
79
- }
80
-
81
- // 获取数据
82
- async function getTreeData() {
83
- try {
84
- const res = await treeDataApi(treeConfigs.id)
85
- console.log('res.entities:', res)
86
- columns.value = [res.entities.map((item: any) => {
87
- return {
88
- value: item.code,
89
- label: item.fieldMap[treeConfigs.primaryColumnId1],
90
- }
91
- })]
92
- }
93
- catch (error) {
94
- console.log('error:', error)
95
- // TODO handle the exception
96
- }
97
- }
98
-
99
- async function columnChange({ selectedItem, resolve, finish }: any) {
100
- try {
101
- const res2 = treeNodeDataApi(treeConfigs.leafRatmplId, selectedItem.value)
102
- const res1 = treeNodeDataApi(treeConfigs.branchRatmplId, selectedItem.value)
103
- const res3 = await Promise.all([res1, res2])
104
- console.log('res3:', res3)
105
- if (res3[0].entities.length || res3[1].entities.length) {
106
- resolve(
107
- [
108
- ...res3[0].entities.map((item: any) => {
109
- return {
110
- value: item.code,
111
- label: item.fieldMap[treeConfigs.primaryColumnId1],
112
- }
113
- }),
114
- ...res3[1].entities.map((item: any) => {
115
- return {
116
- value: item.code,
117
- label: item.fieldMap[treeConfigs.primaryColumnId2],
118
- }
119
- }),
120
- ],
121
- )
122
- }
123
- else {
124
- finish()
125
- }
126
- }
127
- catch (error) {
128
- console.log('error:', error)
129
- finish(false)
130
- // TODO handle the exception
131
- }
132
- }
133
-
134
- function handleConfirm(selectedItems: any) {
135
- console.log(selectedItems)
136
- emits('update:modelValue', [selectedItems[selectedItems.length - 1]])
137
- }
138
- // 格式化方法
139
- function displayFormat(selectedItems: Record<string, any>[]) {
140
- return selectedItems[selectedItems.length - 1]?.label
141
- }
142
- </script>
143
-
144
- <template>
145
- <view>
146
- <wd-col-picker
147
- :use-default-slot="true"
148
- :model-value="dataValue"
149
- :columns="columns"
150
- :column-change="columnChange"
151
- :display-format="displayFormat"
152
- :style="{ pointerEvents: props.readonly ? '' : 'none' }"
153
- @confirm="handleConfirm"
154
- >
155
- <wd-input
156
-
157
- type="text"
158
- model-value=""
159
- :prop="props.prop"
160
- :placeholder="props.placeholder"
161
- :label-width="props.labelWidth"
162
- :label="props.label"
163
- :readonly="true"
164
- :clearable="false"
165
- />
166
- </wd-col-picker>
167
- </view>
168
- </template>
1
+ <script setup lang="ts">
2
+ import { computed, defineEmits, defineOptions, defineProps, reactive, ref } from 'vue'
3
+ import { onLoad } from '@dcloudio/uni-app'
4
+ import { treeConfigApi, treeDataApi, treeNodeDataApi } from '../../api/tree'
5
+ import { pageConfig } from '../../api/page'
6
+
7
+ defineOptions({
8
+ name: 'SelectColPicker',
9
+ })
10
+ const props = defineProps<Props>()
11
+
12
+ const emits = defineEmits<{
13
+ (e: 'update:modelValue', value: string[]): void
14
+ }>()
15
+
16
+ // 定义 props 类型
17
+ interface Props {
18
+ sourceId: string
19
+ label?: string
20
+ labelWidth: string
21
+ prop: string
22
+ readonly: boolean
23
+ clearable: boolean
24
+ placeholder: string
25
+ modelValue: Array<string>
26
+ }
27
+
28
+ const dataValue = computed(() => {
29
+ return props.modelValue
30
+ })
31
+ const sourceId = ref('')
32
+ const columns = ref<any[]>([])
33
+ const treeConfigs = reactive({
34
+ branchRatmplId: '',
35
+ branchTitle: '',
36
+ id: '',
37
+ rootGtmplId: '',
38
+ primaryColumnId1: '',
39
+ primaryColumnId2: '',
40
+ leafRatmplId: '',
41
+ })
42
+
43
+ // 获取配置1
44
+ async function treeConfig1() {
45
+ try {
46
+ const res = await treeConfigApi(sourceId.value)
47
+ console.log(res)
48
+ treeConfigs.branchRatmplId = res.ttmplConfig.branchRatmplId
49
+ treeConfigs.branchTitle = res.ttmplConfig.branchTitle
50
+ treeConfigs.id = res.ttmplConfig.id
51
+ treeConfigs.rootGtmplId = res.ttmplConfig.rootGtmplId
52
+ treeConfigs.leafRatmplId = res.ttmplConfig.leafRatmplId
53
+ treeConfig2(treeConfigs.branchRatmplId, treeConfigs.leafRatmplId)
54
+ }
55
+ catch (error) {
56
+ console.log('error:', error)
57
+ // TODO handle the exception
58
+ }
59
+ }
60
+
61
+ onLoad((option: any) => {
62
+ sourceId.value = props.sourceId || option.sourceId
63
+ treeConfig1()
64
+ })
65
+
66
+ // 获取配置2
67
+ async function treeConfig2(branchRatmplId: string, leafRatmplId: string) {
68
+ try {
69
+ const res1 = await pageConfig(branchRatmplId)
70
+ const res2 = await pageConfig(leafRatmplId)
71
+ treeConfigs.primaryColumnId1 = res1.ltmplConfig.primaryColumn.sourceId
72
+ treeConfigs.primaryColumnId2 = res2.ltmplConfig.primaryColumn.sourceId
73
+ getTreeData()
74
+ }
75
+ catch (error) {
76
+ console.log('error:', error)
77
+ // TODO handle the exception
78
+ }
79
+ }
80
+
81
+ // 获取数据
82
+ async function getTreeData() {
83
+ try {
84
+ const res = await treeDataApi(treeConfigs.id)
85
+ console.log('res.entities:', res)
86
+ columns.value = [res.entities.map((item: any) => {
87
+ return {
88
+ value: item.code,
89
+ label: item.fieldMap[treeConfigs.primaryColumnId1],
90
+ }
91
+ })]
92
+ }
93
+ catch (error) {
94
+ console.log('error:', error)
95
+ // TODO handle the exception
96
+ }
97
+ }
98
+
99
+ async function columnChange({ selectedItem, resolve, finish }: any) {
100
+ try {
101
+ const res2 = treeNodeDataApi(treeConfigs.leafRatmplId, selectedItem.value)
102
+ const res1 = treeNodeDataApi(treeConfigs.branchRatmplId, selectedItem.value)
103
+ const res3 = await Promise.all([res1, res2])
104
+ console.log('res3:', res3)
105
+ if (res3[0].entities.length || res3[1].entities.length) {
106
+ resolve(
107
+ [
108
+ ...res3[0].entities.map((item: any) => {
109
+ return {
110
+ value: item.code,
111
+ label: item.fieldMap[treeConfigs.primaryColumnId1],
112
+ }
113
+ }),
114
+ ...res3[1].entities.map((item: any) => {
115
+ return {
116
+ value: item.code,
117
+ label: item.fieldMap[treeConfigs.primaryColumnId2],
118
+ }
119
+ }),
120
+ ],
121
+ )
122
+ }
123
+ else {
124
+ finish()
125
+ }
126
+ }
127
+ catch (error) {
128
+ console.log('error:', error)
129
+ finish(false)
130
+ // TODO handle the exception
131
+ }
132
+ }
133
+
134
+ function handleConfirm(selectedItems: any) {
135
+ console.log(selectedItems)
136
+ emits('update:modelValue', [selectedItems[selectedItems.length - 1]])
137
+ }
138
+ // 格式化方法
139
+ function displayFormat(selectedItems: Record<string, any>[]) {
140
+ return selectedItems[selectedItems.length - 1]?.label
141
+ }
142
+ </script>
143
+
144
+ <template>
145
+ <view>
146
+ <wd-col-picker
147
+ :use-default-slot="true"
148
+ :model-value="dataValue"
149
+ :columns="columns"
150
+ :column-change="columnChange"
151
+ :display-format="displayFormat"
152
+ :style="{ pointerEvents: props.readonly ? '' : 'none' }"
153
+ @confirm="handleConfirm"
154
+ >
155
+ <wd-input
156
+
157
+ type="text"
158
+ model-value=""
159
+ :prop="props.prop"
160
+ :placeholder="props.placeholder"
161
+ :label-width="props.labelWidth"
162
+ :label="props.label"
163
+ :readonly="true"
164
+ :clearable="false"
165
+ />
166
+ </wd-col-picker>
167
+ </view>
168
+ </template>
@@ -1,73 +1,73 @@
1
- <script setup lang="ts">
2
- import { computed, defineEmits, defineOptions, defineProps, ref } from 'vue'
3
- import type { EnumItem, Enums, Split2TabCriterias } from '../../type'
4
-
5
- defineOptions({
6
- name: 'TabSearch',
7
- })
8
-
9
- const props = defineProps<{
10
- split2TabCriterias: Split2TabCriterias[]
11
- enums: Enums
12
- }>()
13
-
14
- const emit = defineEmits(['click'])
15
-
16
- interface TabData {
17
- name: string
18
- value: string
19
- sourceId: string
20
- }
21
- // 提取枚举值
22
- function enumColumn() {
23
- if (!props.split2TabCriterias)
24
- return []
25
- return props.split2TabCriterias.reduce<TabData[]>((acc, cur) => {
26
- const data = props.enums[cur.mstrucId]?.map((item: EnumItem) => {
27
- return { name: item.title, value: item.title, sourceId: cur.sourceId }
28
- }) || []
29
- acc = [...acc, ...data] // 更新累加器
30
- return acc // 显式返回累加器
31
- }, [])
32
- }
33
- // 提取特殊值
34
- function specialColumn() {
35
- if (!props.split2TabCriterias)
36
- return []
37
- const data = []
38
- for (let i = 0; i < props.split2TabCriterias.length; i++) {
39
- const element = props.split2TabCriterias[i]
40
- if (element.extControlType === 'single-checkbox') {
41
- data.push({ name: element.title, value: '1', sourceId: element.sourceId })
42
- }
43
- }
44
- return data
45
- }
46
- const tabs = computed(() => {
47
- const data1 = enumColumn()
48
- const data2 = specialColumn()
49
- return [{ name: '全部', value: '', sourceId: '' }, ...data1, ...data2]
50
- })
51
-
52
- const tab = ref<string>('')
53
-
54
- // click事件:点击标题
55
- function click(event: { index: number, name: string }) {
56
- const data = tabs.value.find(item => item.value === event.name)
57
- console.log(data, event)
58
- if (event.name) {
59
- emit('click', `c_${data?.sourceId}=${event.name}`)
60
- }
61
- else {
62
- emit('click', '')
63
- }
64
- }
65
- </script>
66
-
67
- <template>
68
- <wd-tabs v-model="tab" animated slidable="always" @click="click">
69
- <block v-for="item in tabs" :key="item.sourceId">
70
- <wd-tab :title="item.name" :name="item.value" />
71
- </block>
72
- </wd-tabs>
73
- </template>
1
+ <script setup lang="ts">
2
+ import { computed, defineEmits, defineOptions, defineProps, ref } from 'vue'
3
+ import type { EnumItem, Enums, Split2TabCriterias } from '../../type'
4
+
5
+ defineOptions({
6
+ name: 'TabSearch',
7
+ })
8
+
9
+ const props = defineProps<{
10
+ split2TabCriterias: Split2TabCriterias[]
11
+ enums: Enums
12
+ }>()
13
+
14
+ const emit = defineEmits(['click'])
15
+
16
+ interface TabData {
17
+ name: string
18
+ value: string
19
+ sourceId: string
20
+ }
21
+ // 提取枚举值
22
+ function enumColumn() {
23
+ if (!props.split2TabCriterias)
24
+ return []
25
+ return props.split2TabCriterias.reduce<TabData[]>((acc, cur) => {
26
+ const data = props.enums[cur.mstrucId]?.map((item: EnumItem) => {
27
+ return { name: item.title, value: item.title, sourceId: cur.sourceId }
28
+ }) || []
29
+ acc = [...acc, ...data] // 更新累加器
30
+ return acc // 显式返回累加器
31
+ }, [])
32
+ }
33
+ // 提取特殊值
34
+ function specialColumn() {
35
+ if (!props.split2TabCriterias)
36
+ return []
37
+ const data = []
38
+ for (let i = 0; i < props.split2TabCriterias.length; i++) {
39
+ const element = props.split2TabCriterias[i]
40
+ if (element.extControlType === 'single-checkbox') {
41
+ data.push({ name: element.title, value: '1', sourceId: element.sourceId })
42
+ }
43
+ }
44
+ return data
45
+ }
46
+ const tabs = computed(() => {
47
+ const data1 = enumColumn()
48
+ const data2 = specialColumn()
49
+ return [{ name: '全部', value: '', sourceId: '' }, ...data1, ...data2]
50
+ })
51
+
52
+ const tab = ref<string>('')
53
+
54
+ // click事件:点击标题
55
+ function click(event: { index: number, name: string }) {
56
+ const data = tabs.value.find(item => item.value === event.name)
57
+ console.log(data, event)
58
+ if (event.name) {
59
+ emit('click', `c_${data?.sourceId}=${event.name}`)
60
+ }
61
+ else {
62
+ emit('click', '')
63
+ }
64
+ }
65
+ </script>
66
+
67
+ <template>
68
+ <wd-tabs v-model="tab" animated slidable="always" @click="click">
69
+ <block v-for="item in tabs" :key="item.sourceId">
70
+ <wd-tab :title="item.name" :name="item.value" />
71
+ </block>
72
+ </wd-tabs>
73
+ </template>