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.
Files changed (45) hide show
  1. package/api/core/index.ts +74 -74
  2. package/api/menu.ts +45 -45
  3. package/api/page.ts +114 -114
  4. package/api/sys.ts +12 -12
  5. package/components/add-address-page/add-address-page.vue +77 -77
  6. package/components/custom-date-picker/custom-date-picker.vue +106 -106
  7. package/components/custom-select-picker/custom-select-picker.vue +95 -95
  8. package/components/demo-block/demo-block.vue +63 -63
  9. package/components/detail-popup/detail-popup.vue +99 -99
  10. package/components/evaluation-page/evaluation-page.vue +196 -196
  11. package/components/fold-card/fold-card.vue +171 -171
  12. package/components/form-control/form-control.vue +661 -661
  13. package/components/global-message/global-message.vue +68 -68
  14. package/components/label-value/label-value.vue +144 -144
  15. package/components/list-top-buttons/list-top-buttons.vue +19 -19
  16. package/components/login-form/login-form.vue +126 -126
  17. package/components/mulselect-picker/mulselect-picker.vue +86 -86
  18. package/components/product-card/product-card.vue +201 -201
  19. package/components/search/search.vue +128 -128
  20. package/components/user-choose/user-choose.vue +1 -1
  21. package/components/wui-enume-select-control/wui-enume-select-control.vue +92 -92
  22. package/components/wui-list/wui-list.vue +235 -235
  23. package/components/wui-menus/wui-menus.vue +247 -247
  24. package/components/wui-menus1/components/navbar.vue +43 -43
  25. package/components/wui-menus1/wui-menus.vue +564 -564
  26. package/components/wui-notify-info/wui-notify-info.vue +280 -280
  27. package/components/wui-search-history-babbar/wui-search-history-babbar.vue +204 -204
  28. package/components/wui-select-list/wui-select-list.vue +310 -310
  29. package/components/wui-select-popup/wui-select-popup.vue +612 -612
  30. package/components/wui-system-settings/wui-system-settings.vue +144 -144
  31. package/components/wui-tabbar/wui-tabbar.vue +106 -106
  32. package/components/wui-tree-page/components/tree-item.vue +238 -238
  33. package/components/wui-user/wui-user.vue +202 -202
  34. package/composables/useCompanyFieldFilter.ts +91 -91
  35. package/composables/useEnumes.ts +2 -2
  36. package/composables/useMenus.ts +193 -193
  37. package/index.ts +83 -83
  38. package/package.json +1 -1
  39. package/static/iconfont/iconfont.css +63 -63
  40. package/store/language.ts +151 -151
  41. package/styles/dark-mode.css +523 -523
  42. package/styles/dark-mode.min.css +1 -1
  43. package/type.ts +2 -2
  44. package/utils/control-tree.ts +2 -2
  45. package/utils/control-type-supportor.ts +148 -148
@@ -1,193 +1,193 @@
1
- import { computed, ref } from 'vue'
2
- import { useRouter } from 'uni-mini-router'
3
- import { fastmenu, menu } from '../api/menu'
4
- import { useManualTheme } from '../composables/useManualTheme'
5
- import { useGlobalToast } from '../composables/useGlobalToast'
6
- import { RainbowColorGenerator } from '../utils/index'
7
- // 类型
8
- export interface Icon {
9
- id: string
10
- path: string
11
- }
12
- interface Props {
13
- icons: Icon[]
14
- load: () => void
15
- menuTopType: string
16
- }
17
- export interface MenuItem {
18
- id: string
19
- title: string
20
- icon: string
21
- color: string
22
- tip: string
23
- pageType: string
24
- children?: MenuItem[]
25
- }
26
- export function useMenus(props?: Props, pagingRef?: Ref<any>) {
27
- const router = useRouter()
28
- const toast = useGlobalToast()
29
- const { currentThemeColor } = useManualTheme()
30
- const colorGenerator = new RainbowColorGenerator()
31
- const menuList = ref<MenuItem[]>([])
32
- const title = ref('')
33
- const navTitle = ref('')
34
- const filtermenu = computed<MenuItem[]>(() => {
35
- let arr = []
36
- if (currentThemeColor.value.primary) {
37
- arr = filterHiddenTree(menuList.value, 'items', true)
38
- }
39
- return arr
40
- })
41
- const sheetShow = ref(false)
42
- const actions = ref([])
43
- // 点击菜单跳转页面
44
- function gotoPage(item: MenuItem) {
45
- // 跳转页面
46
- if (goto(item)) return
47
- // 打开动作面板
48
- openSheet(item)
49
- }
50
-
51
- // 点击动作面板跳转页面
52
- function sheetGotoPage(item: MenuItem) {
53
- // 跳转页面
54
- if (goto(item)) return
55
- // 打开动作面板
56
- openSheet(item, 300)
57
- }
58
-
59
- // 跳转页面
60
- function goto(item: MenuItem) {
61
- console.log(item.pageType)
62
- switch (item.pageType) {
63
- case '列表':
64
- console.log(item, 'item ')
65
- router.push(`/pages/list/index?sourceId=${item.id}&title=${item.title}`)
66
- return true
67
- case '树':
68
- router.push(`/pages/tree-page/index?sourceId=${item.id}&title=${item.title}`)
69
- return true
70
- case '报表':
71
- // uni.navigateTo({
72
- // url: `/pages/report-table/report-table?sourceId=${item.id}&title=${item.title}`,
73
- // })
74
- return true
75
-
76
- default:
77
- return false
78
- }
79
- }
80
-
81
- // 打开wd-action-sheet动作面板
82
- function openSheet(item: any, s = 0) {
83
- if (item.items) {
84
- title.value = item.title
85
- actions.value = item.items
86
- ? item.items.map((item: any) => {
87
- return {
88
- name: item.title,
89
- // color: '#00000073',
90
- ...item,
91
- }
92
- })
93
- : []
94
-
95
- // 设置二次打开的过渡时间
96
- const id = setTimeout(() => {
97
- sheetShow.value = true
98
- clearTimeout(id)
99
- }, s)
100
- }
101
- }
102
-
103
- /**
104
- * 根据 `disabled: true` 过滤树形数组(支持自定义子节点字段)
105
- * @param {Array} tree 原始树形数据
106
- * @param {string} [childKey] 子节点字段名
107
- * @param {boolean} [deepClone] 是否深拷贝原数据
108
- * @returns {Array} 过滤后的新树形数据
109
- */
110
- function filterHiddenTree(tree: any, childKey = 'children', deepClone = false) {
111
- // 深拷贝处理(可选)
112
- const clone = (data: any) => {
113
- if (!deepClone) return data
114
- return JSON.parse(JSON.stringify(data))
115
- }
116
-
117
- return clone(tree)
118
- .filter((node: any) => !node.disabled) // 过滤当前层隐藏节点
119
- .map((node: any) => {
120
- // 递归处理子节点
121
- if (Array.isArray(node[childKey])) {
122
- node[childKey] = filterHiddenTree(node[childKey], childKey, deepClone)
123
- }
124
- const icon = props?.icons.find((item: any) => {
125
- return item.id === node.id
126
- })
127
- const color = colorGenerator.getNextColor()
128
- return {
129
- ...node,
130
- iconPath: (icon as any)?.path,
131
- color,
132
- }
133
- })
134
- }
135
-
136
- // @query所绑定的方法不要自己调用!!需要刷新列表数据时,只需要调用this.$refs.paging.reload()即可
137
- function queryList() {
138
- // 此处请求仅为演示,请替换为自己项目中的请求
139
- menu()
140
- .then((res: any) => {
141
- // 将请求结果通过complete传给z-paging处理,同时也代表请求结束,这一行必须调用
142
- if (!res?.blocks?.length) {
143
- toast.warning('暂无权限,请重新登录或联系管理员')
144
- }
145
- navTitle.value = res?.programName || ''
146
- uni.setNavigationBarTitle({ title: res?.programName || '' }) // 设置标题
147
- pagingRef?.value.complete(res?.blocks || [])
148
- })
149
- .catch((res: any) => {
150
- console.log(res)
151
- // 如果请求失败写this.$refs.paging.complete(false),会自动展示错误页面
152
- // 注意,每次都需要在catch中写这句话很麻烦,z-paging提供了方案可以全局统一处理
153
- // 在底层的网络请求抛出异常时,写uni.$emit('z-paging-error-emit');即可
154
- pagingRef?.value.complete(false)
155
- })
156
- }
157
-
158
- // 快速访问菜单
159
- const sectionmenu = ref<MenuItem[]>([])
160
- const filersectiomenus = computed(() => {
161
- // 截取数组前4项
162
- return sectionmenu.value.slice(0, 4)
163
- })
164
-
165
- const getSectionMenu = async () => {
166
- try {
167
- const res = await fastmenu()
168
- if (res.fastMenu) {
169
- sectionmenu.value = res.fastMenu.QuickQueryBar || []
170
- } else {
171
- sectionmenu.value = []
172
- }
173
- } catch (error) {
174
- console.log(error)
175
- }
176
- }
177
-
178
- return {
179
- gotoPage,
180
- sheetGotoPage,
181
- filtermenu,
182
- sheetShow,
183
- actions,
184
- title,
185
- navTitle,
186
- queryList,
187
- menuList,
188
- currentThemeColor,
189
- getSectionMenu,
190
- filersectiomenus,
191
- sectionmenu,
192
- }
193
- }
1
+ import { computed, ref } from 'vue'
2
+ import { useRouter } from 'uni-mini-router'
3
+ import { fastmenu, menu } from '../api/menu'
4
+ import { useManualTheme } from '../composables/useManualTheme'
5
+ import { useGlobalToast } from '../composables/useGlobalToast'
6
+ import { RainbowColorGenerator } from '../utils/index'
7
+ // 类型
8
+ export interface Icon {
9
+ id: string
10
+ path: string
11
+ }
12
+ interface Props {
13
+ icons: Icon[]
14
+ load: () => void
15
+ menuTopType: string
16
+ }
17
+ export interface MenuItem {
18
+ id: string
19
+ title: string
20
+ icon: string
21
+ color: string
22
+ tip: string
23
+ pageType: string
24
+ children?: MenuItem[]
25
+ }
26
+ export function useMenus(props?: Props, pagingRef?: Ref<any>) {
27
+ const router = useRouter()
28
+ const toast = useGlobalToast()
29
+ const { currentThemeColor } = useManualTheme()
30
+ const colorGenerator = new RainbowColorGenerator()
31
+ const menuList = ref<MenuItem[]>([])
32
+ const title = ref('')
33
+ const navTitle = ref('')
34
+ const filtermenu = computed<MenuItem[]>(() => {
35
+ let arr = []
36
+ if (currentThemeColor.value.primary) {
37
+ arr = filterHiddenTree(menuList.value, 'items', true)
38
+ }
39
+ return arr
40
+ })
41
+ const sheetShow = ref(false)
42
+ const actions = ref([])
43
+ // 点击菜单跳转页面
44
+ function gotoPage(item: MenuItem) {
45
+ // 跳转页面
46
+ if (goto(item)) return
47
+ // 打开动作面板
48
+ openSheet(item)
49
+ }
50
+
51
+ // 点击动作面板跳转页面
52
+ function sheetGotoPage(item: MenuItem) {
53
+ // 跳转页面
54
+ if (goto(item)) return
55
+ // 打开动作面板
56
+ openSheet(item, 300)
57
+ }
58
+
59
+ // 跳转页面
60
+ function goto(item: MenuItem) {
61
+ console.log(item.pageType)
62
+ switch (item.pageType) {
63
+ case '列表':
64
+ console.log(item, 'item ')
65
+ router.push(`/pages/list/index?sourceId=${item.id}&title=${item.title}`)
66
+ return true
67
+ case '树':
68
+ router.push(`/pages/tree-page/index?sourceId=${item.id}&title=${item.title}`)
69
+ return true
70
+ case '报表':
71
+ // uni.navigateTo({
72
+ // url: `/pages/report-table/report-table?sourceId=${item.id}&title=${item.title}`,
73
+ // })
74
+ return true
75
+
76
+ default:
77
+ return false
78
+ }
79
+ }
80
+
81
+ // 打开wd-action-sheet动作面板
82
+ function openSheet(item: any, s = 0) {
83
+ if (item.items) {
84
+ title.value = item.title
85
+ actions.value = item.items
86
+ ? item.items.map((item: any) => {
87
+ return {
88
+ name: item.title,
89
+ // color: '#00000073',
90
+ ...item,
91
+ }
92
+ })
93
+ : []
94
+
95
+ // 设置二次打开的过渡时间
96
+ const id = setTimeout(() => {
97
+ sheetShow.value = true
98
+ clearTimeout(id)
99
+ }, s)
100
+ }
101
+ }
102
+
103
+ /**
104
+ * 根据 `disabled: true` 过滤树形数组(支持自定义子节点字段)
105
+ * @param {Array} tree 原始树形数据
106
+ * @param {string} [childKey] 子节点字段名
107
+ * @param {boolean} [deepClone] 是否深拷贝原数据
108
+ * @returns {Array} 过滤后的新树形数据
109
+ */
110
+ function filterHiddenTree(tree: any, childKey = 'children', deepClone = false) {
111
+ // 深拷贝处理(可选)
112
+ const clone = (data: any) => {
113
+ if (!deepClone) return data
114
+ return JSON.parse(JSON.stringify(data))
115
+ }
116
+
117
+ return clone(tree)
118
+ .filter((node: any) => !node.disabled) // 过滤当前层隐藏节点
119
+ .map((node: any) => {
120
+ // 递归处理子节点
121
+ if (Array.isArray(node[childKey])) {
122
+ node[childKey] = filterHiddenTree(node[childKey], childKey, deepClone)
123
+ }
124
+ const icon = props?.icons.find((item: any) => {
125
+ return item.id === node.id
126
+ })
127
+ const color = colorGenerator.getNextColor()
128
+ return {
129
+ ...node,
130
+ iconPath: (icon as any)?.path,
131
+ color,
132
+ }
133
+ })
134
+ }
135
+
136
+ // @query所绑定的方法不要自己调用!!需要刷新列表数据时,只需要调用this.$refs.paging.reload()即可
137
+ function queryList() {
138
+ // 此处请求仅为演示,请替换为自己项目中的请求
139
+ menu()
140
+ .then((res: any) => {
141
+ // 将请求结果通过complete传给z-paging处理,同时也代表请求结束,这一行必须调用
142
+ if (!res?.blocks?.length) {
143
+ toast.warning('暂无权限,请重新登录或联系管理员')
144
+ }
145
+ navTitle.value = res?.programName || ''
146
+ uni.setNavigationBarTitle({ title: res?.programName || '' }) // 设置标题
147
+ pagingRef?.value.complete(res?.blocks || [])
148
+ })
149
+ .catch((res: any) => {
150
+ console.log(res)
151
+ // 如果请求失败写this.$refs.paging.complete(false),会自动展示错误页面
152
+ // 注意,每次都需要在catch中写这句话很麻烦,z-paging提供了方案可以全局统一处理
153
+ // 在底层的网络请求抛出异常时,写uni.$emit('z-paging-error-emit');即可
154
+ pagingRef?.value.complete(false)
155
+ })
156
+ }
157
+
158
+ // 快速访问菜单
159
+ const sectionmenu = ref<MenuItem[]>([])
160
+ const filersectiomenus = computed(() => {
161
+ // 截取数组前4项
162
+ return sectionmenu.value.slice(0, 4)
163
+ })
164
+
165
+ const getSectionMenu = async () => {
166
+ try {
167
+ const res = await fastmenu()
168
+ if (res.fastMenu) {
169
+ sectionmenu.value = res.fastMenu.QuickQueryBar || []
170
+ } else {
171
+ sectionmenu.value = []
172
+ }
173
+ } catch (error) {
174
+ console.log(error)
175
+ }
176
+ }
177
+
178
+ return {
179
+ gotoPage,
180
+ sheetGotoPage,
181
+ filtermenu,
182
+ sheetShow,
183
+ actions,
184
+ title,
185
+ navTitle,
186
+ queryList,
187
+ menuList,
188
+ currentThemeColor,
189
+ getSectionMenu,
190
+ filersectiomenus,
191
+ sectionmenu,
192
+ }
193
+ }
package/index.ts CHANGED
@@ -1,83 +1,83 @@
1
- import type { App } from 'vue'
2
- // 暗黑模式样式 - 组件库入口加载(供打包后 app.use() 时生效)
3
- import './styles/dark-mode.scss'
4
-
5
- import WuiSystemSettings from './components/wui-system-settings/wui-system-settings.vue'
6
- import WuiMenus from './components/wui-menus/wui-menus.vue'
7
- import WuiMenus1 from './components/wui-menus1/wui-menus.vue'
8
- import Wuilogin from './components/wui-login/wui-login.vue'
9
- import Wuilogin1 from './components/wui-login1/wui-login.vue'
10
- import WuiDefault from './components/wui-default/wui-default.vue'
11
- import WuiTabbar from './components/wui-tabbar/wui-tabbar.vue'
12
- import { useLocale } from './composables/useLocale'
13
- import { useManualTheme } from './composables/useManualTheme'
14
- import { useGlobalLoading } from './composables/useGlobalLoading'
15
- import { useGlobalMessage } from './composables/useGlobalMessage'
16
- import { useGlobalToast } from './composables/useGlobalToast'
17
- import { useLanguageStore } from './store/language'
18
- import { useUser } from './composables/useUser'
19
- import { req } from './api/index'
20
- import { useTabbar } from './composables/useTabbar'
21
- import { persistPlugin } from './store/persist'
22
- import WuiList from './components/wui-list/wui-list.vue'
23
- import WuiselectList from './components/wui-select-list/wui-select-list.vue'
24
- import WuieditPage from './components/wui-edit-page/wui-edit-page.vue'
25
- import WuidetailsPage from './components/wui-details-page/wui-details-page.vue'
26
- import WuiUpdateComponent from './components/wui-update-component/wui-update-component.vue'
27
- import WuiScanBindingSensor from './components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue'
28
- import WuiUser from './components/wui-user/wui-user.vue'
29
- import WuiAutoUpdateComponent from './components/wui-auto-update-component/wui-auto-update-component.vue'
30
- import iData from './utils/idata-scan' // PAD扫描
31
- import wuiSearchHistoryBabbar from './components/wui-search-history-babbar/wui-search-history-babbar.vue'
32
- import wuienumeSelectControl from './components/wui-enume-select-control/wui-enume-select-control.vue'
33
- import './static/iconfont/iconfont.css'
34
- // 组件列表
35
- const coms: Array<{ name: string }> = [
36
- WuiSystemSettings,
37
- WuiMenus,
38
- Wuilogin,
39
- WuiDefault,
40
- WuiTabbar,
41
- WuiList,
42
- WuiselectList,
43
- WuieditPage,
44
- WuidetailsPage,
45
- WuiUpdateComponent,
46
- WuiScanBindingSensor,
47
- WuiUser,
48
- WuiAutoUpdateComponent,
49
- Wuilogin1,
50
- WuiMenus1,
51
- wuiSearchHistoryBabbar,
52
- wuienumeSelectControl,
53
- ]
54
-
55
- /**
56
- * 批量注册组件
57
- * @param app Vue 应用实例
58
- */
59
- function install(app: App): void {
60
- coms.forEach(component => {
61
- app.component(component.name, component)
62
- })
63
- }
64
-
65
- /**
66
- * 核心功能函数集合
67
- */
68
- export {
69
- useTabbar,
70
- useLocale,
71
- useManualTheme,
72
- req, // 请求封装
73
- useGlobalLoading,
74
- useGlobalMessage,
75
- useGlobalToast,
76
- useUser,
77
- persistPlugin,
78
- iData, // PAD扫描
79
- // nfc, // nfc读取
80
- useLanguageStore, // 语言
81
- }
82
-
83
- export default install
1
+ import type { App } from 'vue'
2
+ // 暗黑模式样式 - 组件库入口加载(供打包后 app.use() 时生效)
3
+ import './styles/dark-mode.scss'
4
+
5
+ import WuiSystemSettings from './components/wui-system-settings/wui-system-settings.vue'
6
+ import WuiMenus from './components/wui-menus/wui-menus.vue'
7
+ import WuiMenus1 from './components/wui-menus1/wui-menus.vue'
8
+ import Wuilogin from './components/wui-login/wui-login.vue'
9
+ import Wuilogin1 from './components/wui-login1/wui-login.vue'
10
+ import WuiDefault from './components/wui-default/wui-default.vue'
11
+ import WuiTabbar from './components/wui-tabbar/wui-tabbar.vue'
12
+ import { useLocale } from './composables/useLocale'
13
+ import { useManualTheme } from './composables/useManualTheme'
14
+ import { useGlobalLoading } from './composables/useGlobalLoading'
15
+ import { useGlobalMessage } from './composables/useGlobalMessage'
16
+ import { useGlobalToast } from './composables/useGlobalToast'
17
+ import { useLanguageStore } from './store/language'
18
+ import { useUser } from './composables/useUser'
19
+ import { req } from './api/index'
20
+ import { useTabbar } from './composables/useTabbar'
21
+ import { persistPlugin } from './store/persist'
22
+ import WuiList from './components/wui-list/wui-list.vue'
23
+ import WuiselectList from './components/wui-select-list/wui-select-list.vue'
24
+ import WuieditPage from './components/wui-edit-page/wui-edit-page.vue'
25
+ import WuidetailsPage from './components/wui-details-page/wui-details-page.vue'
26
+ import WuiUpdateComponent from './components/wui-update-component/wui-update-component.vue'
27
+ import WuiScanBindingSensor from './components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue'
28
+ import WuiUser from './components/wui-user/wui-user.vue'
29
+ import WuiAutoUpdateComponent from './components/wui-auto-update-component/wui-auto-update-component.vue'
30
+ import iData from './utils/idata-scan' // PAD扫描
31
+ import wuiSearchHistoryBabbar from './components/wui-search-history-babbar/wui-search-history-babbar.vue'
32
+ import wuienumeSelectControl from './components/wui-enume-select-control/wui-enume-select-control.vue'
33
+ import './static/iconfont/iconfont.css'
34
+ // 组件列表
35
+ const coms: Array<{ name: string }> = [
36
+ WuiSystemSettings,
37
+ WuiMenus,
38
+ Wuilogin,
39
+ WuiDefault,
40
+ WuiTabbar,
41
+ WuiList,
42
+ WuiselectList,
43
+ WuieditPage,
44
+ WuidetailsPage,
45
+ WuiUpdateComponent,
46
+ WuiScanBindingSensor,
47
+ WuiUser,
48
+ WuiAutoUpdateComponent,
49
+ Wuilogin1,
50
+ WuiMenus1,
51
+ wuiSearchHistoryBabbar,
52
+ wuienumeSelectControl,
53
+ ]
54
+
55
+ /**
56
+ * 批量注册组件
57
+ * @param app Vue 应用实例
58
+ */
59
+ function install(app: App): void {
60
+ coms.forEach(component => {
61
+ app.component(component.name, component)
62
+ })
63
+ }
64
+
65
+ /**
66
+ * 核心功能函数集合
67
+ */
68
+ export {
69
+ useTabbar,
70
+ useLocale,
71
+ useManualTheme,
72
+ req, // 请求封装
73
+ useGlobalLoading,
74
+ useGlobalMessage,
75
+ useGlobalToast,
76
+ useUser,
77
+ persistPlugin,
78
+ iData, // PAD扫描
79
+ // nfc, // nfc读取
80
+ useLanguageStore, // 语言
81
+ }
82
+
83
+ export default install
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wui-components-v2",
3
- "version": "1.1.69",
3
+ "version": "1.1.70",
4
4
  "description": "wui 组件库",
5
5
  "author": "wgxshh",
6
6
  "license": "MIT",