wui-components-v2 1.1.68 → 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 (47) 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/action-popup/action-popup.vue +46 -17
  6. package/components/add-address-page/add-address-page.vue +77 -77
  7. package/components/custom-date-picker/custom-date-picker.vue +106 -106
  8. package/components/custom-select-picker/custom-select-picker.vue +95 -95
  9. package/components/demo-block/demo-block.vue +63 -63
  10. package/components/detail-popup/detail-popup.vue +99 -99
  11. package/components/evaluation-page/evaluation-page.vue +196 -192
  12. package/components/fold-card/fold-card.vue +171 -171
  13. package/components/form-control/form-control.vue +661 -661
  14. package/components/global-message/global-message.vue +68 -68
  15. package/components/label-value/label-value.vue +144 -144
  16. package/components/list-top-buttons/list-top-buttons.vue +19 -19
  17. package/components/login-form/login-form.vue +126 -126
  18. package/components/mulselect-picker/mulselect-picker.vue +86 -86
  19. package/components/product-card/product-card.vue +201 -201
  20. package/components/search/search.vue +128 -128
  21. package/components/user-choose/user-choose.vue +1 -1
  22. package/components/wui-enume-select-control/wui-enume-select-control.vue +92 -92
  23. package/components/wui-list/wui-list.vue +235 -235
  24. package/components/wui-menus/wui-menus.vue +247 -247
  25. package/components/wui-menus1/components/navbar.vue +43 -43
  26. package/components/wui-menus1/wui-menus.vue +564 -564
  27. package/components/wui-notify-info/wui-notify-info.vue +280 -280
  28. package/components/wui-search-history-babbar/wui-search-history-babbar.vue +204 -204
  29. package/components/wui-select-list/wui-select-list.vue +310 -310
  30. package/components/wui-select-popup/wui-select-popup.vue +612 -612
  31. package/components/wui-system-settings/wui-system-settings.vue +144 -144
  32. package/components/wui-tabbar/wui-tabbar.vue +106 -106
  33. package/components/wui-tree-page/components/tree-item.vue +238 -238
  34. package/components/wui-user/wui-user.vue +202 -197
  35. package/composables/useCompanyFieldFilter.ts +91 -91
  36. package/composables/useEnumes.ts +2 -2
  37. package/composables/useMenus.ts +193 -193
  38. package/index.ts +83 -83
  39. package/package.json +1 -1
  40. package/static/iconfont/iconfont.css +63 -63
  41. package/store/language.ts +151 -151
  42. package/styles/dark-mode.css +523 -485
  43. package/styles/dark-mode.min.css +1 -1
  44. package/styles/dark-mode.scss +28 -0
  45. package/type.ts +2 -2
  46. package/utils/control-tree.ts +2 -2
  47. package/utils/control-type-supportor.ts +148 -148
package/api/core/index.ts CHANGED
@@ -1,74 +1,74 @@
1
- /**
2
- * 封装uni.request为Promise形式
3
- * @param {object} options 请求配置
4
- * @param {string} options.url 请求地址
5
- * @param {string} [options.method] 请求方法
6
- * @param {object} [options.data] 请求数据
7
- * @param {object} [options.header] 请求头
8
- * @param {number} [options.timeout] 超时时间(毫秒)
9
- * @returns {Promise} 返回Promise对象
10
- */
11
- interface RequestOptions {
12
- url: string
13
- method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT'
14
- data?: any
15
- header?: any
16
- timeout?: number
17
- }
18
-
19
- function request(options: RequestOptions): Promise<any> {
20
- const baseUrl = uni.getStorageSync('BASE_URL') || '/'
21
- const hydrocarbonProgramToken = uni.getStorageSync('HYDROCARBON_PROGRAM_TOKEN') || ''
22
- const token = uni.getStorageSync('TOKEN') || uni.getStorageSync('token') || ''
23
- const hydrocarbonClient = uni.getStorageSync('HYDROCARBON_CLIENT') || ''
24
- const applicationToken = uni.getStorageSync('HYDROCARBON_APPLICATION_TOKEN') || ''
25
- return new Promise((resolve, reject) => {
26
- // 设置默认值
27
- const defaultOptions = {
28
- method: 'GET' as const,
29
- data: {},
30
- header: {
31
- 'content-type': 'application/x-www-form-urlencoded',
32
- 'hydrocarbon-program-token': hydrocarbonProgramToken, // 项目code
33
- 'hydrocarbon-token': token, // 登录token
34
- 'hydrocarbon-client': hydrocarbonClient, // 端类型
35
- 'hydrocarbon-application-token': applicationToken,
36
- // #ifdef APP-PLUS
37
- 'hydrocarbon-app-version': '1.0.0',
38
- // #endif
39
- ...options.header,
40
- },
41
- timeout: options.timeout || 60000,
42
- }
43
-
44
- // 合并配置
45
- const requestOptions = {
46
- ...defaultOptions,
47
- ...options,
48
- url: baseUrl + options.url,
49
- }
50
-
51
- uni.request({
52
- ...requestOptions,
53
- success: (res: any) => {
54
- // 可以根据实际业务需求调整这里的判断条件
55
- if (res.statusCode >= 200 && res.statusCode < 300) {
56
- if (res.data.status === 'error') {
57
- uni.showToast({ title: res.data.message, icon: 'none' })
58
- uni.removeStorageSync('token')
59
- reject(res)
60
- return
61
- }
62
- resolve(res.data)
63
- } else {
64
- reject(res)
65
- }
66
- },
67
- fail: (err: any) => {
68
- reject(err)
69
- },
70
- })
71
- })
72
- }
73
-
74
- export default request
1
+ /**
2
+ * 封装uni.request为Promise形式
3
+ * @param {object} options 请求配置
4
+ * @param {string} options.url 请求地址
5
+ * @param {string} [options.method] 请求方法
6
+ * @param {object} [options.data] 请求数据
7
+ * @param {object} [options.header] 请求头
8
+ * @param {number} [options.timeout] 超时时间(毫秒)
9
+ * @returns {Promise} 返回Promise对象
10
+ */
11
+ interface RequestOptions {
12
+ url: string
13
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT'
14
+ data?: any
15
+ header?: any
16
+ timeout?: number
17
+ }
18
+
19
+ function request(options: RequestOptions): Promise<any> {
20
+ const baseUrl = uni.getStorageSync('BASE_URL') || '/'
21
+ const hydrocarbonProgramToken = uni.getStorageSync('HYDROCARBON_PROGRAM_TOKEN') || ''
22
+ const token = uni.getStorageSync('TOKEN') || uni.getStorageSync('token') || ''
23
+ const hydrocarbonClient = uni.getStorageSync('HYDROCARBON_CLIENT') || ''
24
+ const applicationToken = uni.getStorageSync('HYDROCARBON_APPLICATION_TOKEN') || ''
25
+ return new Promise((resolve, reject) => {
26
+ // 设置默认值
27
+ const defaultOptions = {
28
+ method: 'GET' as const,
29
+ data: {},
30
+ header: {
31
+ 'content-type': 'application/x-www-form-urlencoded',
32
+ 'hydrocarbon-program-token': hydrocarbonProgramToken, // 项目code
33
+ 'hydrocarbon-token': token, // 登录token
34
+ 'hydrocarbon-client': hydrocarbonClient, // 端类型
35
+ 'hydrocarbon-application-token': applicationToken,
36
+ // #ifdef APP-PLUS
37
+ 'hydrocarbon-app-version': '1.0.0',
38
+ // #endif
39
+ ...options.header,
40
+ },
41
+ timeout: options.timeout || 60000,
42
+ }
43
+
44
+ // 合并配置
45
+ const requestOptions = {
46
+ ...defaultOptions,
47
+ ...options,
48
+ url: baseUrl + options.url,
49
+ }
50
+
51
+ uni.request({
52
+ ...requestOptions,
53
+ success: (res: any) => {
54
+ // 可以根据实际业务需求调整这里的判断条件
55
+ if (res.statusCode >= 200 && res.statusCode < 300) {
56
+ if (res.data.status === 'error') {
57
+ uni.showToast({ title: res.data.message, icon: 'none' })
58
+ uni.removeStorageSync('token')
59
+ reject(res)
60
+ return
61
+ }
62
+ resolve(res.data)
63
+ } else {
64
+ reject(res)
65
+ }
66
+ },
67
+ fail: (err: any) => {
68
+ reject(err)
69
+ },
70
+ })
71
+ })
72
+ }
73
+
74
+ export default request
package/api/menu.ts CHANGED
@@ -1,45 +1,45 @@
1
- import req from './core/index'
2
- // 获取菜单
3
- export function menu() {
4
- return req({
5
- url: `/v3/menu/blocks?l2MenuId=&blockId=`,
6
- })
7
- }
8
-
9
- // fastmenu 请求缓存
10
- let fastmenuPromise: Promise<any> | null = null
11
- let fastmenuCacheTime = 0
12
- const CACHE_DURATION = 3000 // 缓存有效期 5 秒
13
-
14
- // 获取配置菜单(带请求防抖和缓存)
15
- export function fastmenu() {
16
- const now = Date.now()
17
-
18
- // 如果请求正在进行中,返回同一个 Promise
19
- if (fastmenuPromise) {
20
- return fastmenuPromise
21
- }
22
-
23
- // 如果缓存还在有效期内,重新发起请求但仍然共享 Promise
24
- // (如果需要真正的缓存数据,可以在这里添加数据缓存逻辑)
25
-
26
- fastmenuPromise = req({
27
- url: `/v3/menu/fast-menu`,
28
- }).finally(() => {
29
- // 请求完成后,清除 Promise 引用(保持缓存时间窗口)
30
- setTimeout(() => {
31
- fastmenuPromise = null
32
- fastmenuCacheTime = 0
33
- }, CACHE_DURATION)
34
- })
35
-
36
- fastmenuCacheTime = now
37
- return fastmenuPromise
38
- }
39
-
40
- // 菜单内容统计
41
- export function menuCount(sourceId: string) {
42
- return req({
43
- url: `/v3/ltmpl/data/count?sourceId=${sourceId}`,
44
- })
45
- }
1
+ import req from './core/index'
2
+ // 获取菜单
3
+ export function menu() {
4
+ return req({
5
+ url: `/v3/menu/blocks?l2MenuId=&blockId=`,
6
+ })
7
+ }
8
+
9
+ // fastmenu 请求缓存
10
+ let fastmenuPromise: Promise<any> | null = null
11
+ let fastmenuCacheTime = 0
12
+ const CACHE_DURATION = 3000 // 缓存有效期 5 秒
13
+
14
+ // 获取配置菜单(带请求防抖和缓存)
15
+ export function fastmenu() {
16
+ const now = Date.now()
17
+
18
+ // 如果请求正在进行中,返回同一个 Promise
19
+ if (fastmenuPromise) {
20
+ return fastmenuPromise
21
+ }
22
+
23
+ // 如果缓存还在有效期内,重新发起请求但仍然共享 Promise
24
+ // (如果需要真正的缓存数据,可以在这里添加数据缓存逻辑)
25
+
26
+ fastmenuPromise = req({
27
+ url: `/v3/menu/fast-menu`,
28
+ }).finally(() => {
29
+ // 请求完成后,清除 Promise 引用(保持缓存时间窗口)
30
+ setTimeout(() => {
31
+ fastmenuPromise = null
32
+ fastmenuCacheTime = 0
33
+ }, CACHE_DURATION)
34
+ })
35
+
36
+ fastmenuCacheTime = now
37
+ return fastmenuPromise
38
+ }
39
+
40
+ // 菜单内容统计
41
+ export function menuCount(sourceId: string) {
42
+ return req({
43
+ url: `/v3/ltmpl/data/count?sourceId=${sourceId}`,
44
+ })
45
+ }
package/api/page.ts CHANGED
@@ -1,114 +1,114 @@
1
- import type { PageData } from '../type'
2
- import req from './core/index'
3
-
4
- interface PageConfig {
5
- configName: string
6
- ltmplConfig: any
7
- sourceId: string
8
- sourceName: string
9
- }
10
- // 列表页面配置
11
- export async function pageConfig(sourceId: string): Promise<PageConfig> {
12
- const res = await req({url: `/v3/ltmpl/config?sourceId=${sourceId}`})||{}
13
- const {ltmplConfig={}}=res
14
- const {extDisplayConfig={}}=ltmplConfig
15
- return { //配置结构调整
16
- ...res,
17
- ltmplConfig:{
18
- ...ltmplConfig,
19
- ...extDisplayConfig
20
- }
21
- }
22
- }
23
-
24
- // 获取列表页面数据key
25
- export function pageKey(sourceId: string, mainCode: string = '', query: string = '') {
26
- return req({
27
- url: `/v3/ltmpl/query/key?sourceId=${sourceId}&mainCode=${mainCode}&menuId=${sourceId}&${query}`,
28
- })
29
- }
30
-
31
- // 获取列表页面数据
32
- export function listData(queryKey: string, pageNo: number, pageSize: number): Promise<PageData> {
33
- return req({
34
- url: `/v3/ltmpl/query/data?queryKey=${queryKey}&pageNo=${pageNo}&pageSize=${pageSize}`,
35
- })
36
- }
37
-
38
- // 获取新增面配置
39
- export function addPageConfig(sourceId: string) {
40
- return req({
41
- url: `/v3/add-dtmpl/config?sourceId=${sourceId}`,
42
- })
43
- }
44
- // 获取编辑页面配置
45
- export function editPageConfig(sourceId: string, mianCode: string) {
46
- return req({
47
- url: `/v3/dtmpl/config?sourceId=${sourceId}&code=${mianCode}`,
48
- })
49
- }
50
-
51
- //
52
- // 新增/编辑页面提交保存
53
- export function editPageDataSave(sourceId: string, id: string = '', data: any, mainCode: string = '', actionId: string = '') {
54
- return req({
55
- url: `/v3/dtmpl/data`,
56
- method: 'POST',
57
- data: {
58
- sourceId,
59
- mainCode,
60
- actionId,
61
- 唯一编码: id,
62
- ...data,
63
- },
64
- })
65
- }
66
- // 获取枚举
67
- export function enums(mstrucIds: string) {
68
- return req({
69
- url: `/v3/enum`,
70
- method: 'POST',
71
- data: mstrucIds,
72
- })
73
- }
74
- // 获取勾选数据
75
- export function selectDatas(sourceId: string, codes: string) {
76
- return req({
77
- url: `/v3/field-group/data/selected?sourceId=${sourceId}&${codes}`,
78
- })
79
- }
80
-
81
- // 详情页面详细配置
82
- export function detailPageConfig(sourceId: string) {
83
- return req({
84
- url: `/v3/view-dtmpl/config?sourceId=${sourceId}`,
85
- })
86
- }
87
-
88
- // 详情页面数据
89
- export function detailPageData(sourceId: string, code: string) {
90
- return req({
91
- url: `/v3/view-dtmpl/data?sourceId=${sourceId}&code=${code}`,
92
- })
93
- }
94
-
95
- // action 按钮提交数据
96
- export function actionDataSave(sourceId: string, codes: string = '', data: any) {
97
- return req({
98
- url: `/v3/action`,
99
- method: 'POST',
100
- data: {
101
- sourceId,
102
- codes,
103
- ...data,
104
- },
105
- })
106
- }
107
-
108
- // 删除
109
- export function deleteData(sourceId: string, code: string) {
110
- return req({
111
- url: `/v3/ltmpl/data?sourceId=${sourceId}&codes=${code}`,
112
- method: 'DELETE',
113
- })
114
- }
1
+ import type { PageData } from '../type'
2
+ import req from './core/index'
3
+
4
+ interface PageConfig {
5
+ configName: string
6
+ ltmplConfig: any
7
+ sourceId: string
8
+ sourceName: string
9
+ }
10
+ // 列表页面配置
11
+ export async function pageConfig(sourceId: string): Promise<PageConfig> {
12
+ const res = await req({url: `/v3/ltmpl/config?sourceId=${sourceId}`})||{}
13
+ const {ltmplConfig={}}=res
14
+ const {extDisplayConfig={}}=ltmplConfig
15
+ return { //配置结构调整
16
+ ...res,
17
+ ltmplConfig:{
18
+ ...ltmplConfig,
19
+ ...extDisplayConfig
20
+ }
21
+ }
22
+ }
23
+
24
+ // 获取列表页面数据key
25
+ export function pageKey(sourceId: string, mainCode: string = '', query: string = '') {
26
+ return req({
27
+ url: `/v3/ltmpl/query/key?sourceId=${sourceId}&mainCode=${mainCode}&menuId=${sourceId}&${query}`,
28
+ })
29
+ }
30
+
31
+ // 获取列表页面数据
32
+ export function listData(queryKey: string, pageNo: number, pageSize: number): Promise<PageData> {
33
+ return req({
34
+ url: `/v3/ltmpl/query/data?queryKey=${queryKey}&pageNo=${pageNo}&pageSize=${pageSize}`,
35
+ })
36
+ }
37
+
38
+ // 获取新增面配置
39
+ export function addPageConfig(sourceId: string) {
40
+ return req({
41
+ url: `/v3/add-dtmpl/config?sourceId=${sourceId}`,
42
+ })
43
+ }
44
+ // 获取编辑页面配置
45
+ export function editPageConfig(sourceId: string, mianCode: string) {
46
+ return req({
47
+ url: `/v3/dtmpl/config?sourceId=${sourceId}&code=${mianCode}`,
48
+ })
49
+ }
50
+
51
+ //
52
+ // 新增/编辑页面提交保存
53
+ export function editPageDataSave(sourceId: string, id: string = '', data: any, mainCode: string = '', actionId: string = '') {
54
+ return req({
55
+ url: `/v3/dtmpl/data`,
56
+ method: 'POST',
57
+ data: {
58
+ sourceId,
59
+ mainCode,
60
+ actionId,
61
+ 唯一编码: id,
62
+ ...data,
63
+ },
64
+ })
65
+ }
66
+ // 获取枚举
67
+ export function enums(mstrucIds: string) {
68
+ return req({
69
+ url: `/v3/enum`,
70
+ method: 'POST',
71
+ data: mstrucIds,
72
+ })
73
+ }
74
+ // 获取勾选数据
75
+ export function selectDatas(sourceId: string, codes: string) {
76
+ return req({
77
+ url: `/v3/field-group/data/selected?sourceId=${sourceId}&${codes}`,
78
+ })
79
+ }
80
+
81
+ // 详情页面详细配置
82
+ export function detailPageConfig(sourceId: string) {
83
+ return req({
84
+ url: `/v3/view-dtmpl/config?sourceId=${sourceId}`,
85
+ })
86
+ }
87
+
88
+ // 详情页面数据
89
+ export function detailPageData(sourceId: string, code: string) {
90
+ return req({
91
+ url: `/v3/view-dtmpl/data?sourceId=${sourceId}&code=${code}`,
92
+ })
93
+ }
94
+
95
+ // action 按钮提交数据
96
+ export function actionDataSave(sourceId: string, codes: string = '', data: any) {
97
+ return req({
98
+ url: `/v3/action`,
99
+ method: 'POST',
100
+ data: {
101
+ sourceId,
102
+ codes,
103
+ ...data,
104
+ },
105
+ })
106
+ }
107
+
108
+ // 删除
109
+ export function deleteData(sourceId: string, code: string) {
110
+ return req({
111
+ url: `/v3/ltmpl/data?sourceId=${sourceId}&codes=${code}`,
112
+ method: 'DELETE',
113
+ })
114
+ }
package/api/sys.ts CHANGED
@@ -1,12 +1,12 @@
1
- import req from './core/index'
2
- // 获取语言包
3
- export function language(language: string): Promise<any> {
4
- return req({
5
- url: `/v3/multilingual?language=${language}`,
6
- })
7
- }
8
- export function getThemeConfig(): Promise<any> {
9
- return req({
10
- url: `/v3/theme-config`,
11
- })
12
- }
1
+ import req from './core/index'
2
+ // 获取语言包
3
+ export function language(language: string): Promise<any> {
4
+ return req({
5
+ url: `/v3/multilingual?language=${language}`,
6
+ })
7
+ }
8
+ export function getThemeConfig(): Promise<any> {
9
+ return req({
10
+ url: `/v3/theme-config`,
11
+ })
12
+ }
@@ -8,15 +8,15 @@ import { useGlobalToast } from '../../composables/useGlobalToast'
8
8
  defineOptions({
9
9
  name: 'ActionPopup',
10
10
  })
11
- const props = defineProps<
12
- {
13
- fieldGroup?: Groups
14
- show: boolean
15
- code: string
16
- zpaging: any
17
- enumColumn?: Enums
18
- }
19
- >()
11
+ const props = defineProps<{
12
+ fieldGroup?: Groups
13
+ show: boolean
14
+ code: string
15
+ zpaging: any
16
+ enumColumn?: Enums
17
+ /** 提交成功后跳转的自定义页面路径,不传则默认刷新 */
18
+ successUrl?: string
19
+ }>()
20
20
  const emits = defineEmits(['update:show'])
21
21
  const btnLoading = ref(false)
22
22
  const toast = useGlobalToast()
@@ -59,10 +59,14 @@ async function action() {
59
59
  await actionDataSave(props.fieldGroup?.id || '', props.code, formatFileData(data))
60
60
  btnLoading.value = false
61
61
  show.value = false
62
- props.zpaging.reload()
63
62
  toast.success({ msg: '操作成功!' })
64
- }
65
- catch (error: any) {
63
+ // 如果传了 successUrl,跳转到自定义页面;否则默认刷新
64
+ if (props.successUrl) {
65
+ uni.navigateTo({ url: props.successUrl })
66
+ } else {
67
+ props.zpaging.reload()
68
+ }
69
+ } catch (error: any) {
66
70
  btnLoading.value = false
67
71
  toast.error(error)
68
72
  }
@@ -70,14 +74,39 @@ async function action() {
70
74
  </script>
71
75
 
72
76
  <template>
73
- <wd-popup v-model="show" position="bottom" closable :z-index="999999" @close="() => { show = false }">
74
- <view class="h-50vh w-100vw">
77
+ <wd-popup
78
+ v-model="show"
79
+ position="bottom"
80
+ closable
81
+ :z-index="999999"
82
+ @close="
83
+ () => {
84
+ show = false
85
+ }
86
+ "
87
+ >
88
+ <view class="h-50vh w-100vw bg-white dark:bg-[var(--wot-dark-background)]">
75
89
  <view class="h-44px bg-white dark:bg-[var(--wot-dark-background)]" />
76
90
  <view class="w-[calc(100%-44px)] overflow-auto bg-white dark:bg-[var(--wot-dark-background)]">
77
- <formControl v-if="props.fieldGroup" ref="formControlRef" :field-group="props.fieldGroup" :enum-column="enumColumn" />
91
+ <formControl
92
+ v-if="props.fieldGroup"
93
+ ref="formControlRef"
94
+ :field-group="props.fieldGroup"
95
+ :enum-column="enumColumn"
96
+ />
78
97
  <view class="h-44px bg-white dark:bg-[var(--wot-dark-background)]" />
79
- <view class="fixed bottom-0 left-0 right-0 box-border w-100% flex p-2 bg-white dark:bg-[var(--wot-dark-background)]">
80
- <wd-button :loading="btnLoading" custom-class="flex-1" @click="() => { action() }">
98
+ <view
99
+ class="fixed bottom-0 left-0 right-0 box-border w-100% flex p-2 bg-white dark:bg-[var(--wot-dark-background)]"
100
+ >
101
+ <wd-button
102
+ :loading="btnLoading"
103
+ custom-class="flex-1"
104
+ @click="
105
+ () => {
106
+ action()
107
+ }
108
+ "
109
+ >
81
110
  提交
82
111
  </wd-button>
83
112
  </view>