@uxda/appkit 1.2.72 → 4.0.0

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 (83) hide show
  1. package/.eslintrc.mjs +7 -7
  2. package/README.md +187 -187
  3. package/babel.config.js +12 -12
  4. package/dist/appkit.css +7 -501
  5. package/dist/index.js +58 -85
  6. package/package.json +78 -78
  7. package/project.config.json +15 -15
  8. package/project.tt.json +13 -13
  9. package/rollup.config.mjs +54 -54
  10. package/src/Appkit.ts +65 -65
  11. package/src/balance/api/endpoints.ts +126 -126
  12. package/src/balance/api/index.ts +82 -82
  13. package/src/balance/components/AccountView.vue +748 -748
  14. package/src/balance/components/BalanceCard.vue +209 -209
  15. package/src/balance/components/BalanceReminder.vue +85 -85
  16. package/src/balance/components/ConsumptionFilter.vue +218 -218
  17. package/src/balance/components/ConsumptionRules.vue +68 -68
  18. package/src/balance/components/DateFilter.vue +235 -235
  19. package/src/balance/components/SecondBalance.vue +71 -71
  20. package/src/balance/components/Tip.vue +45 -45
  21. package/src/balance/components/index.ts +9 -9
  22. package/src/balance/types.ts +90 -90
  23. package/src/components/dd-area/index.vue +225 -225
  24. package/src/components/dd-icon/doc.md +21 -21
  25. package/src/components/dd-icon/index.vue +23 -23
  26. package/src/components/dd-notice-bar/index.vue +78 -78
  27. package/src/components/dd-search/doc.md +34 -34
  28. package/src/components/dd-search/index.vue +168 -168
  29. package/src/components/dd-selector/index.vue +124 -124
  30. package/src/components/ocr-id/index.vue +114 -114
  31. package/src/components/ocr-id/types.d.ts +12 -12
  32. package/src/global.ts +6 -6
  33. package/src/index.ts +88 -88
  34. package/src/main.scss +1 -1
  35. package/src/notice/api/endpoints.ts +17 -17
  36. package/src/notice/api/index.ts +82 -82
  37. package/src/notice/components/LoginSetting.vue +112 -112
  38. package/src/notice/components/NoticeBanner.vue +243 -243
  39. package/src/notice/components/NoticeEntry.vue +99 -99
  40. package/src/notice/components/NoticeList.vue +278 -315
  41. package/src/notice/components/NoticePopup.vue +163 -161
  42. package/src/notice/components/index.ts +6 -6
  43. package/src/notice/components/useCommonList.ts +86 -86
  44. package/src/notice/components/useNotice.ts +35 -35
  45. package/src/notice/index.ts +1 -1
  46. package/src/notice/types.ts +25 -25
  47. package/src/payment/api/config.ts +7 -7
  48. package/src/payment/api/endpoints.ts +103 -103
  49. package/src/payment/api/index.ts +71 -71
  50. package/src/payment/components/AmountPicker.vue +93 -93
  51. package/src/payment/components/RechargeResult.vue +69 -69
  52. package/src/payment/components/RechargeView.vue +154 -154
  53. package/src/payment/components/RightsPicker.vue +105 -105
  54. package/src/payment/components/TradeView.vue +298 -298
  55. package/src/payment/components/UserAgreement.vue +141 -141
  56. package/src/payment/components/index.ts +22 -22
  57. package/src/payment/index.ts +5 -5
  58. package/src/payment/services/index.ts +16 -16
  59. package/src/payment/services/invoke-recharge.ts +25 -25
  60. package/src/payment/services/request-payment.ts +58 -58
  61. package/src/payment/types.ts +28 -28
  62. package/src/register/components/SelfRegistration.vue +227 -227
  63. package/src/register/components/index.ts +2 -2
  64. package/src/shared/components/AppDrawer.vue +58 -58
  65. package/src/shared/components/DeviceVersion.vue +67 -67
  66. package/src/shared/components/EmptyView.vue +33 -33
  67. package/src/shared/components/PageHeader.vue +79 -79
  68. package/src/shared/components/index.ts +5 -5
  69. package/src/shared/composables/index.ts +2 -2
  70. package/src/shared/composables/useSafeArea.ts +46 -46
  71. package/src/shared/composables/useTabbar.ts +24 -24
  72. package/src/shared/http/Http.ts +135 -135
  73. package/src/shared/http/index.ts +1 -1
  74. package/src/shared/http/types.ts +157 -157
  75. package/src/shared/index.ts +3 -3
  76. package/src/shared/weixin/payment.ts +38 -38
  77. package/src/styles/fonts.scss +2 -2
  78. package/src/styles/vars.scss +3 -3
  79. package/tsconfig.json +30 -30
  80. package/types/global.d.ts +21 -21
  81. package/types/vue.d.ts +10 -10
  82. package/dist/main.css +0 -3
  83. package/dist/styles.css +0 -1
@@ -1,78 +1,78 @@
1
- <script setup lang="ts">
2
- const props = defineProps<{
3
- text?: string
4
- style?: {} | string
5
- showClose?: boolean
6
- }>()
7
-
8
- const emit = defineEmits(['close', 'txtClick'])
9
- function close() {
10
- emit('close')
11
- }
12
- function txtClick() {
13
- emit('txtClick')
14
- }
15
- </script>
16
-
17
- <template>
18
- <div class="dd-notice-bar" :class="{ close: showClose }" :style="style">
19
- <div class="dd-notice-bar__txt" name="text" @click="txtClick">
20
- <span v-if="text">{{ text }}</span>
21
- <slot></slot>
22
- </div>
23
- <div v-if="showClose" class="dd-notice-bar__close" @click="close">
24
- <img
25
- src="https://cdn.ddjf.com/static/images/wechat-yunservice/close-icon.png"
26
- class="dd-notice-bar__close-img"
27
- />
28
- </div>
29
- </div>
30
- </template>
31
-
32
- <style lang="scss">
33
- .dd-notice-bar {
34
- position: fixed;
35
- top: 0;
36
- left: 0;
37
- z-index: 10;
38
- font-size: 13px;
39
- color: #ea5959;
40
- display: flex;
41
- align-items: center;
42
- justify-content: center;
43
- width: 100%;
44
- min-height: 30px;
45
- line-height: 18px;
46
- padding: 6px 18px;
47
- background: #ffe8d8;
48
- box-sizing: border-box;
49
- &__close {
50
- width: 22px;
51
- height: 22px;
52
- display: flex;
53
- margin-right: -6px;
54
- margin-left: 6px;
55
- justify-content: center;
56
- align-items: center;
57
- &-img {
58
- width: 10px;
59
- height: 10px;
60
- }
61
- }
62
- &.close {
63
- justify-content: space-between;
64
- color: #fb970c;
65
- background: #fff2d8;
66
- .dd-notice-bar__txt {
67
- text-align: left;
68
- }
69
- }
70
- &__txt {
71
- flex: 1;
72
- text-align: center;
73
- opacity: 0.8;
74
- display: flex;
75
- align-items: center;
76
- }
77
- }
78
- </style>
1
+ <script setup lang="ts">
2
+ const props = defineProps<{
3
+ text?: string
4
+ style?: {} | string
5
+ showClose?: boolean
6
+ }>()
7
+
8
+ const emit = defineEmits(['close', 'txtClick'])
9
+ function close() {
10
+ emit('close')
11
+ }
12
+ function txtClick() {
13
+ emit('txtClick')
14
+ }
15
+ </script>
16
+
17
+ <template>
18
+ <div class="dd-notice-bar" :class="{ close: showClose }" :style="style">
19
+ <div class="dd-notice-bar__txt" name="text" @click="txtClick">
20
+ <span v-if="text">{{ text }}</span>
21
+ <slot></slot>
22
+ </div>
23
+ <div v-if="showClose" class="dd-notice-bar__close" @click="close">
24
+ <img
25
+ src="https://cdn.ddjf.com/static/images/wechat-yunservice/close-icon.png"
26
+ class="dd-notice-bar__close-img"
27
+ />
28
+ </div>
29
+ </div>
30
+ </template>
31
+
32
+ <style lang="scss">
33
+ .dd-notice-bar {
34
+ position: fixed;
35
+ top: 0;
36
+ left: 0;
37
+ z-index: 10;
38
+ font-size: 13px;
39
+ color: #ea5959;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ width: 100%;
44
+ min-height: 30px;
45
+ line-height: 18px;
46
+ padding: 6px 18px;
47
+ background: #ffe8d8;
48
+ box-sizing: border-box;
49
+ &__close {
50
+ width: 22px;
51
+ height: 22px;
52
+ display: flex;
53
+ margin-right: -6px;
54
+ margin-left: 6px;
55
+ justify-content: center;
56
+ align-items: center;
57
+ &-img {
58
+ width: 10px;
59
+ height: 10px;
60
+ }
61
+ }
62
+ &.close {
63
+ justify-content: space-between;
64
+ color: #fb970c;
65
+ background: #fff2d8;
66
+ .dd-notice-bar__txt {
67
+ text-align: left;
68
+ }
69
+ }
70
+ &__txt {
71
+ flex: 1;
72
+ text-align: center;
73
+ opacity: 0.8;
74
+ display: flex;
75
+ align-items: center;
76
+ }
77
+ }
78
+ </style>
@@ -1,34 +1,34 @@
1
- # ddSearch 搜索框
2
-
3
- #
4
- ## 使用
5
-
6
- ``` javascript
7
- import ddSearch from '~/components/ddSearch/index.vue'
8
- ```
9
- ``` html
10
- <dd-search
11
- :bordered="false"
12
- :inNavbar="true"
13
- :value="searchStr"
14
- placeholder="输入客户姓名"
15
- @search="onSearch"
16
- @focus="onSearchFocus" />
17
- ```
18
-
19
- ## Prop
20
-
21
- | 字段 | 说明 | 类型 | 默认值 |
22
- |-----------|-------------|---------|----------|
23
- | disabled | 是否禁用 | boolean | false |
24
- | placeholder | 输入框placeholder | string | '请输入' |
25
- | value | 绑定值 | string | '' |
26
- | bordered | 是否显示底部边框 | boolean | true |
27
- | inNavbar | 是否在导航栏中 | boolean | false |
28
-
29
- ## Events
30
-
31
- | 事件名 | 说明 | 回调参数 |
32
- |----------|----------------|--------------------|
33
- | search | 点击搜索时 | value, 搜索参数 |
34
- | focus | 输入框focus | event |
1
+ # ddSearch 搜索框
2
+
3
+ #
4
+ ## 使用
5
+
6
+ ``` javascript
7
+ import ddSearch from '~/components/ddSearch/index.vue'
8
+ ```
9
+ ``` html
10
+ <dd-search
11
+ :bordered="false"
12
+ :inNavbar="true"
13
+ :value="searchStr"
14
+ placeholder="输入客户姓名"
15
+ @search="onSearch"
16
+ @focus="onSearchFocus" />
17
+ ```
18
+
19
+ ## Prop
20
+
21
+ | 字段 | 说明 | 类型 | 默认值 |
22
+ |-----------|-------------|---------|----------|
23
+ | disabled | 是否禁用 | boolean | false |
24
+ | placeholder | 输入框placeholder | string | '请输入' |
25
+ | value | 绑定值 | string | '' |
26
+ | bordered | 是否显示底部边框 | boolean | true |
27
+ | inNavbar | 是否在导航栏中 | boolean | false |
28
+
29
+ ## Events
30
+
31
+ | 事件名 | 说明 | 回调参数 |
32
+ |----------|----------------|--------------------|
33
+ | search | 点击搜索时 | value, 搜索参数 |
34
+ | focus | 输入框focus | event |
@@ -1,168 +1,168 @@
1
- <script setup lang="ts">
2
- import { computed, ref, watchPostEffect } from 'vue'
3
-
4
- interface SearchType {
5
- disabled?: boolean
6
- placeholder?: string
7
- value?: string
8
- bordered?: boolean
9
- inNavbar?: boolean
10
- focus?: boolean
11
- }
12
- const props = withDefaults(defineProps<SearchType>(), {
13
- disabled: false,
14
- placeholder: '',
15
- bordered: true,
16
- inNavbar: false,
17
- focus: true,
18
- })
19
-
20
- watchPostEffect(() => {
21
- key.value = props.value || ''
22
- })
23
-
24
- const emit = defineEmits(['search', 'focus', 'clear'])
25
-
26
- const ph = computed(() => {
27
- return props.placeholder || '请输入'
28
- })
29
-
30
- const key = ref('')
31
- const showClear = computed(() => {
32
- return !!key.value.trim()
33
- })
34
- function onClear() {
35
- key.value = ''
36
- emit('clear', '')
37
- }
38
- function onConfirm() {
39
- if (props.disabled) return
40
- // if (key.value.trim()) {
41
- key.value = key.value.trim()
42
- emit('search', key.value)
43
- // }
44
- }
45
- function onFoucs(e) {
46
- isFoucs.value = true
47
- emit('focus', e)
48
- }
49
- function onBlur() {
50
- isFoucs.value = false
51
- }
52
- const isFoucs = ref(props.focus)
53
- </script>
54
-
55
- <template>
56
- <div
57
- class="dd-search"
58
- :class="{
59
- disabled: props.disabled,
60
- bordered: props.bordered,
61
- inNavbar: props.inNavbar,
62
- focus: !props.disabled && isFoucs,
63
- }"
64
- >
65
- <div class="dd-search__form">
66
- <div class="dd-search__prefix">
67
- <image
68
- class="full-img"
69
- src="https://cdn.ddjf.com/static/images/wx-yunservice/search-icon.png"
70
- />
71
- </div>
72
- <div class="dd-search__control">
73
- <input
74
- class="dd-search__input"
75
- type="text"
76
- :disabled="props.disabled"
77
- :placeholder="ph"
78
- v-model="key"
79
- :focus="props.focus"
80
- placeholder-class="dd-search__placeholder"
81
- cursor-spacing="50"
82
- confirm-type="search"
83
- @confirm="onConfirm"
84
- @focus="onFoucs"
85
- @blur="onBlur"
86
- />
87
- </div>
88
- <div class="dd-search__suffix" v-show="showClear" @tap="onClear">
89
- <image
90
- class="full-img"
91
- src="https://cdn.ddjf.com/static/images/wx-yunservice/clear-icon.png"
92
- />
93
- </div>
94
- </div>
95
- <div v-if="!props.inNavbar" class="dd-search__btn" @click.stop="onConfirm">搜索</div>
96
- </div>
97
- </template>
98
-
99
- <style lang="scss">
100
- .dd-search {
101
- padding: 8px 12px;
102
- display: flex;
103
- align-items: center;
104
- background: #fefefe;
105
- &.bordered {
106
- border-bottom: 1px solid #ddd;
107
- }
108
- &.inNavbar {
109
- padding: 0;
110
- width: 235px;
111
- z-index: 10;
112
- position: absolute;
113
- left: 40px;
114
- background: transparent;
115
- .dd-search__form {
116
- background: #f1f3f5;
117
- border-color: transparent;
118
- }
119
- }
120
- &.focus {
121
- .dd-search__form {
122
- border-color: #017fff;
123
- }
124
- }
125
- &__placeholder {
126
- color: #b4b4b4;
127
- }
128
- &__form {
129
- flex: 1;
130
- box-sizing: border-box;
131
- height: 36px;
132
- border-radius: 5px;
133
- display: flex;
134
- align-items: center;
135
- padding: 0 10px;
136
- background-color: #f1f3f5;
137
- }
138
- &__control {
139
- font-size: 13px;
140
- flex: 1;
141
- }
142
- &__input {
143
- width: 100%;
144
- box-sizing: border-box;
145
- padding: 0 10px;
146
- caret-color: #017fff;
147
- }
148
- &__prefix,
149
- &__suffix {
150
- width: 15px !important;
151
- height: 15px !important;
152
- }
153
- &__btn {
154
- height: 33px;
155
- line-height: 33px;
156
- padding: 0 10px;
157
- font-size: 16px;
158
- color: #017fff;
159
- }
160
- &.disabled &__suffix {
161
- display: none;
162
- }
163
- &.disabled &__control {
164
- flex: 1;
165
- width: fit-content;
166
- }
167
- }
168
- </style>
1
+ <script setup lang="ts">
2
+ import { computed, ref, watchPostEffect } from 'vue'
3
+
4
+ interface SearchType {
5
+ disabled?: boolean
6
+ placeholder?: string
7
+ value?: string
8
+ bordered?: boolean
9
+ inNavbar?: boolean
10
+ focus?: boolean
11
+ }
12
+ const props = withDefaults(defineProps<SearchType>(), {
13
+ disabled: false,
14
+ placeholder: '',
15
+ bordered: true,
16
+ inNavbar: false,
17
+ focus: true,
18
+ })
19
+
20
+ watchPostEffect(() => {
21
+ key.value = props.value || ''
22
+ })
23
+
24
+ const emit = defineEmits(['search', 'focus', 'clear'])
25
+
26
+ const ph = computed(() => {
27
+ return props.placeholder || '请输入'
28
+ })
29
+
30
+ const key = ref('')
31
+ const showClear = computed(() => {
32
+ return !!key.value.trim()
33
+ })
34
+ function onClear() {
35
+ key.value = ''
36
+ emit('clear', '')
37
+ }
38
+ function onConfirm() {
39
+ if (props.disabled) return
40
+ // if (key.value.trim()) {
41
+ key.value = key.value.trim()
42
+ emit('search', key.value)
43
+ // }
44
+ }
45
+ function onFoucs(e) {
46
+ isFoucs.value = true
47
+ emit('focus', e)
48
+ }
49
+ function onBlur() {
50
+ isFoucs.value = false
51
+ }
52
+ const isFoucs = ref(props.focus)
53
+ </script>
54
+
55
+ <template>
56
+ <div
57
+ class="dd-search"
58
+ :class="{
59
+ disabled: props.disabled,
60
+ bordered: props.bordered,
61
+ inNavbar: props.inNavbar,
62
+ focus: !props.disabled && isFoucs,
63
+ }"
64
+ >
65
+ <div class="dd-search__form">
66
+ <div class="dd-search__prefix">
67
+ <image
68
+ class="full-img"
69
+ src="https://cdn.ddjf.com/static/images/wx-yunservice/search-icon.png"
70
+ />
71
+ </div>
72
+ <div class="dd-search__control">
73
+ <input
74
+ class="dd-search__input"
75
+ type="text"
76
+ :disabled="props.disabled"
77
+ :placeholder="ph"
78
+ v-model="key"
79
+ :focus="props.focus"
80
+ placeholder-class="dd-search__placeholder"
81
+ cursor-spacing="50"
82
+ confirm-type="search"
83
+ @confirm="onConfirm"
84
+ @focus="onFoucs"
85
+ @blur="onBlur"
86
+ />
87
+ </div>
88
+ <div class="dd-search__suffix" v-show="showClear" @tap="onClear">
89
+ <image
90
+ class="full-img"
91
+ src="https://cdn.ddjf.com/static/images/wx-yunservice/clear-icon.png"
92
+ />
93
+ </div>
94
+ </div>
95
+ <div v-if="!props.inNavbar" class="dd-search__btn" @click.stop="onConfirm">搜索</div>
96
+ </div>
97
+ </template>
98
+
99
+ <style lang="scss">
100
+ .dd-search {
101
+ padding: 8px 12px;
102
+ display: flex;
103
+ align-items: center;
104
+ background: #fefefe;
105
+ &.bordered {
106
+ border-bottom: 1px solid #ddd;
107
+ }
108
+ &.inNavbar {
109
+ padding: 0;
110
+ width: 235px;
111
+ z-index: 10;
112
+ position: absolute;
113
+ left: 40px;
114
+ background: transparent;
115
+ .dd-search__form {
116
+ background: #f1f3f5;
117
+ border-color: transparent;
118
+ }
119
+ }
120
+ &.focus {
121
+ .dd-search__form {
122
+ border-color: #017fff;
123
+ }
124
+ }
125
+ &__placeholder {
126
+ color: #b4b4b4;
127
+ }
128
+ &__form {
129
+ flex: 1;
130
+ box-sizing: border-box;
131
+ height: 36px;
132
+ border-radius: 5px;
133
+ display: flex;
134
+ align-items: center;
135
+ padding: 0 10px;
136
+ background-color: #f1f3f5;
137
+ }
138
+ &__control {
139
+ font-size: 13px;
140
+ flex: 1;
141
+ }
142
+ &__input {
143
+ width: 100%;
144
+ box-sizing: border-box;
145
+ padding: 0 10px;
146
+ caret-color: #017fff;
147
+ }
148
+ &__prefix,
149
+ &__suffix {
150
+ width: 15px !important;
151
+ height: 15px !important;
152
+ }
153
+ &__btn {
154
+ height: 33px;
155
+ line-height: 33px;
156
+ padding: 0 10px;
157
+ font-size: 16px;
158
+ color: #017fff;
159
+ }
160
+ &.disabled &__suffix {
161
+ display: none;
162
+ }
163
+ &.disabled &__control {
164
+ flex: 1;
165
+ width: fit-content;
166
+ }
167
+ }
168
+ </style>