@uxda/appkit 4.2.82 → 4.2.84

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 (127) 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 +41 -3
  5. package/dist/index.js +994 -535
  6. package/package.json +81 -81
  7. package/project.config.json +15 -15
  8. package/project.tt.json +13 -13
  9. package/rollup.config.mjs +77 -77
  10. package/src/Appkit.ts +67 -67
  11. package/src/balance/api/endpoints.ts +133 -133
  12. package/src/balance/api/index.ts +112 -106
  13. package/src/balance/components/AccountView.vue +773 -773
  14. package/src/balance/components/BalanceCard.vue +210 -210
  15. package/src/balance/components/BalanceReminder.vue +84 -84
  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 +259 -259
  19. package/src/balance/components/DateRange.vue +111 -111
  20. package/src/balance/components/ListFilter.vue +62 -62
  21. package/src/balance/components/ListFilterPicker.vue +191 -191
  22. package/src/balance/components/PromoterCard.vue +310 -310
  23. package/src/balance/components/SecondBalance.vue +77 -77
  24. package/src/balance/components/Tip.vue +45 -45
  25. package/src/balance/components/index.ts +8 -8
  26. package/src/balance/types.ts +99 -99
  27. package/src/components/bt-cropper/index.vue +730 -730
  28. package/src/components/bt-cropper/utils/calcCropper.js +42 -42
  29. package/src/components/bt-cropper/utils/calcImagePosition.js +23 -23
  30. package/src/components/bt-cropper/utils/calcImageSize.js +37 -37
  31. package/src/components/bt-cropper/utils/calcPointDistance.js +12 -12
  32. package/src/components/bt-cropper/utils/calcRightAndBottom.js +7 -7
  33. package/src/components/bt-cropper/utils/ratio.js +3 -3
  34. package/src/components/bt-cropper/utils/tools.js +25 -25
  35. package/src/components/dd-area/index.vue +225 -225
  36. package/src/components/dd-icon/doc.md +21 -21
  37. package/src/components/dd-icon/index.vue +23 -23
  38. package/src/components/dd-notice-bar/index.vue +78 -78
  39. package/src/components/dd-search/doc.md +34 -34
  40. package/src/components/dd-search/index.vue +168 -168
  41. package/src/components/dd-selector/index.vue +124 -124
  42. package/src/components/dd-skeleton/doc.md +19 -19
  43. package/src/components/dd-skeleton/index.vue +36 -36
  44. package/src/global.ts +6 -6
  45. package/src/index.ts +93 -93
  46. package/src/main.scss +1 -1
  47. package/src/notice/api/endpoints.ts +54 -17
  48. package/src/notice/api/index.ts +115 -106
  49. package/src/notice/components/NoticeBanner.vue +247 -247
  50. package/src/notice/components/NoticeEntry.vue +99 -99
  51. package/src/notice/components/NoticeList.vue +311 -311
  52. package/src/notice/components/NoticeList2.vue +243 -0
  53. package/src/notice/components/NoticePopup.vue +163 -163
  54. package/src/notice/components/index.ts +6 -5
  55. package/src/notice/components/useCommonList.ts +86 -86
  56. package/src/notice/components/useNotice.ts +35 -35
  57. package/src/notice/index.ts +1 -1
  58. package/src/notice/types.ts +25 -25
  59. package/src/payment/api/config.ts +7 -7
  60. package/src/payment/api/endpoints.ts +95 -95
  61. package/src/payment/api/index.ts +101 -101
  62. package/src/payment/components/AmountPicker.vue +90 -90
  63. package/src/payment/components/RechargeResult.vue +69 -69
  64. package/src/payment/components/RechargeView.vue +190 -190
  65. package/src/payment/components/RightsPicker.vue +105 -105
  66. package/src/payment/components/TradeView.vue +363 -363
  67. package/src/payment/components/UserAgreement.vue +234 -234
  68. package/src/payment/components/index.ts +22 -22
  69. package/src/payment/index.ts +5 -5
  70. package/src/payment/services/index.ts +16 -16
  71. package/src/payment/services/invoke-recharge.ts +25 -25
  72. package/src/payment/services/request-payment.ts +130 -130
  73. package/src/payment/types.ts +32 -32
  74. package/src/register/components/SelfRegistration.vue +233 -233
  75. package/src/register/components/index.ts +2 -2
  76. package/src/scenarios/components/SharePoster.vue +364 -364
  77. package/src/scenarios/components/index.ts +2 -2
  78. package/src/scenarios/components/poster-paste.vue +93 -93
  79. package/src/scenarios/components/share-poster.md +273 -273
  80. package/src/shared/components/AppDrawer.vue +53 -53
  81. package/src/shared/components/AppVerify.vue +128 -128
  82. package/src/shared/components/DeviceVersion.vue +78 -78
  83. package/src/shared/components/EmptyView.vue +33 -33
  84. package/src/shared/components/OcrBusinessLicense.vue +137 -137
  85. package/src/shared/components/OcrIcon.vue +229 -229
  86. package/src/shared/components/PageHeader.vue +84 -84
  87. package/src/shared/components/index.ts +8 -8
  88. package/src/shared/composables/index.ts +9 -9
  89. package/src/shared/composables/useAmount.ts +46 -46
  90. package/src/shared/composables/useCountdown.ts +46 -46
  91. package/src/shared/composables/useCrypto.ts +76 -76
  92. package/src/shared/composables/useDeviceEnv.ts +11 -11
  93. package/src/shared/composables/useDragBox.ts +97 -97
  94. package/src/shared/composables/useEncode.ts +43 -43
  95. package/src/shared/composables/useLogger.ts +131 -131
  96. package/src/shared/composables/useSafeArea.ts +46 -46
  97. package/src/shared/composables/useTabbar.ts +24 -24
  98. package/src/shared/composables/useUpload.ts +61 -61
  99. package/src/shared/composables/useValidator.ts +32 -32
  100. package/src/shared/composables/useWxAuth.ts +48 -48
  101. package/src/shared/http/Http.ts +148 -146
  102. package/src/shared/http/index.ts +1 -1
  103. package/src/shared/http/types.ts +163 -160
  104. package/src/shared/index.ts +8 -8
  105. package/src/shared/weixin/index.ts +9 -9
  106. package/src/shared/weixin/jssdk.ts +103 -103
  107. package/src/shared/weixin/payment.ts +38 -38
  108. package/src/styles/vars.scss +3 -3
  109. package/src/user/api/endpoints.ts +17 -17
  110. package/src/user/api/index.ts +117 -111
  111. package/src/user/components/LoginSetting.vue +114 -114
  112. package/src/user/components/UserAuth.vue +220 -220
  113. package/src/user/components/UserBinding.vue +277 -277
  114. package/src/user/components/UserBindingSuccess.vue +80 -80
  115. package/src/user/components/UserEntry.vue +139 -139
  116. package/src/user/components/UserFeedback.vue +427 -427
  117. package/src/user/components/UserFeedbackEntry.vue +175 -175
  118. package/src/user/components/UserHeadCrop.vue +65 -65
  119. package/src/user/components/UserInfo.vue +708 -708
  120. package/src/user/components/UserResourceEmpty.vue +75 -75
  121. package/src/user/components/index.ts +23 -23
  122. package/src/user/index.ts +1 -1
  123. package/src/utils/utils.ts +28 -28
  124. package/tsconfig.json +30 -30
  125. package/types/global.d.ts +22 -22
  126. package/types/vue.d.ts +10 -10
  127. /package/dist/assets/{asset-DcH8Kg-2 → asset-3B_CoPto} +0 -0
@@ -1,192 +1,192 @@
1
- <template>
2
- <div class="list-filter-picker">
3
- <div class="list-filter-picker-title">
4
- 选择筛选项
5
- </div>
6
- <div class="list-filter-picker-content">
7
- <template v-for="(item, index) in filterSections" :key="index">
8
- <div class="title">{{ item.label }}</div>
9
- <div class="info">
10
- <div v-for="(it, i) in item.data" @click="() => onFilterSectionClick(item.name, it.value)"
11
- :class="getItemClass(item.name, it.value)" class="info-item" :key="i">
12
- {{ typeof it === 'string' ? it : it.label }}
13
- </div>
14
- </div>
15
- </template>
16
- </div>
17
- <div class="list-filter-picker-btn spa-between">
18
- <div class="btn" @click="reset">重置</div>
19
- <div class="btn confirm" @click="onOkClick">确定</div>
20
- </div>
21
- <div class="list-filter-picker-bottom"></div>
22
- </div>
23
- </template>
24
-
25
- <script lang="ts" setup>
26
- import { reactive, ref } from 'vue'
27
- import { endpoints, useHttp } from '../api'
28
- import { UniData, UniDataItem } from '@uxda/nutshell/taro'
29
-
30
- const $http = useHttp()
31
-
32
- type ListFilterPickerModel = Record<string, string[]>
33
-
34
- interface ListFilterPickerProps {
35
- modelValue: ListFilterPickerModel
36
- }
37
-
38
- const props =
39
- defineProps<ListFilterPickerProps>()
40
-
41
- const emit = defineEmits(['complete'])
42
-
43
- const result = ref<ListFilterPickerModel>(props.modelValue)
44
-
45
- type FilterSecion = {
46
- label: string,
47
- name: string,
48
- data: UniDataItem[]
49
- }
50
-
51
- /**
52
- * 筛选项目里面所有按钮
53
- */
54
- const filterSections = ref<FilterSecion[]>([
55
- {
56
- label: '明细类型',
57
- name: 'type',
58
- data: [
59
- {
60
- label: '全部',
61
- value: ''
62
- },
63
- {
64
- label: '提现',
65
- value: 'withdrawal'
66
- },
67
- {
68
- label: '收益',
69
- value: 'income'
70
- },
71
- {
72
- label: '兑换',
73
- value: 'exchange'
74
- },
75
- {
76
- label: '返佣',
77
- value: 'rebate'
78
- }
79
- ]
80
- },
81
- ])
82
-
83
- const getItemClass = (name: string, value: string) => result.value[name]?.includes(value) ? ['current'] : ['']
84
-
85
- const onFilterSectionClick = (index: string, value: string) => {
86
- result.value[index] = [value]
87
- }
88
-
89
- const reset = () => {
90
- result.value = {}
91
- }
92
-
93
- const onOkClick = () => {
94
- emit('complete', result)
95
- }
96
- </script>
97
- <style lang="scss">
98
- .list-filter-picker {
99
- display: flex;
100
- flex-direction: column;
101
- width: 100%;
102
-
103
- &-title {
104
- position: relative;
105
- height: 44px;
106
- font-size: 17px;
107
- color: #353535;
108
- background: #f5f5f5;
109
- text-align: center;
110
- }
111
-
112
- &-content {
113
- flex: 1;
114
- margin: 15px;
115
- overflow-y: scroll;
116
- color: #353535;
117
- font-size: 13px;
118
-
119
- .title {
120
- opacity: 0.6;
121
- line-height: 18px;
122
- }
123
-
124
- .info {
125
- display: grid;
126
- grid-template-columns: 1fr 1fr 1fr;
127
- grid-gap: 10px;
128
- margin: 10px 0;
129
-
130
- &-item {
131
- height: 30px;
132
- line-height: 30px;
133
- border: 1px solid #ccc;
134
- border-radius: 6px;
135
- text-align: center;
136
- }
137
-
138
- .current {
139
- border-radius: 5px;
140
- border: 1px solid rgba(1, 127, 255, 0.5);
141
- background: #E6F2FF;
142
- }
143
- }
144
- }
145
-
146
- &-btn {
147
- margin: 0 15px;
148
- display: flex;
149
- justify-content: space-between;
150
- align-items: center;
151
-
152
- .btn {
153
- flex: 1;
154
- height: 40px;
155
- line-height: 40px;
156
- text-align: center;
157
- border: 1px solid #ccc;
158
- color: #666;
159
- font-size: 16px;
160
- border-radius: 6px;
161
- }
162
-
163
- .confirm {
164
- margin-left: 11px;
165
- color: #fff;
166
- border: none;
167
- background: #017fff;
168
- }
169
- }
170
-
171
- &-bottom {
172
- height: 32px;
173
- background: #fff;
174
- }
175
-
176
- .icon {
177
- display: block;
178
- width: 20px;
179
- height: 20px;
180
- background-size: 40px;
181
- background-repeat: no-repeat;
182
- background-position: center center;
183
-
184
- &.icon-x {
185
- position: absolute;
186
- right: 10px;
187
- top: 11px;
188
- background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4wMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MSA0MUgxVjFINDFWNDFaIiBmaWxsPSIjRDhEOEQ4IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4wMSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIzLjM1NjEgMjAuOTk5OUwzMy45NjM3IDMxLjYwNzJDMzQuNjE0NiAzMi4yNTgxIDM0LjYxNDYgMzMuMzEzNCAzMy45NjM3IDMzLjk2NDJDMzMuMzQyNSAzNC41ODU1IDMyLjM1MjcgMzQuNjEzOCAzMS42OTc5IDM0LjA0ODlMMjAuOTk5NCAyMy4zNTY2TDEwLjM5MzUgMzMuOTY0MkM5Ljc0MjY1IDM0LjYxNTEgOC42ODczOCAzNC42MTUxIDguMDM2NSAzMy45NjQyQzcuNDE1MTkgMzMuMzQyOSA3LjM4Njk3IDMyLjM1MzIgNy45NTE3OSAzMS42OTg0TDE4LjY0MjggMjAuOTk5OUw4LjAzNjUgMTAuMzk0QzcuMzg1NjMgOS43NDMxNCA3LjM4NTYzIDguNjg3ODcgOC4wMzY1IDguMDM2OTlDOC42NTc3OSA3LjQxNTY4IDkuNjQ3NTQgNy4zODc0NiAxMC4zMDIzIDcuOTUyMjdMMjAuOTk5NCAxOC42NDMzTDMxLjYwNjcgOC4wMzY5OUMzMi4yNTc2IDcuMzg2MTIgMzMuMzEyOSA3LjM4NjEyIDMzLjk2MzcgOC4wMzY5OUMzNC41ODUgOC42NTgyOCAzNC42MTMzIDkuNjQ4MDMgMzQuMDQ4NSAxMC4zMDI4TDIzLjM1NjEgMjAuOTk5OVoiIGZpbGw9IiMxNzFBMUQiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjAxIi8+Cjwvc3ZnPgo=")
189
- }
190
- }
191
- }
1
+ <template>
2
+ <div class="list-filter-picker">
3
+ <div class="list-filter-picker-title">
4
+ 选择筛选项
5
+ </div>
6
+ <div class="list-filter-picker-content">
7
+ <template v-for="(item, index) in filterSections" :key="index">
8
+ <div class="title">{{ item.label }}</div>
9
+ <div class="info">
10
+ <div v-for="(it, i) in item.data" @click="() => onFilterSectionClick(item.name, it.value)"
11
+ :class="getItemClass(item.name, it.value)" class="info-item" :key="i">
12
+ {{ typeof it === 'string' ? it : it.label }}
13
+ </div>
14
+ </div>
15
+ </template>
16
+ </div>
17
+ <div class="list-filter-picker-btn spa-between">
18
+ <div class="btn" @click="reset">重置</div>
19
+ <div class="btn confirm" @click="onOkClick">确定</div>
20
+ </div>
21
+ <div class="list-filter-picker-bottom"></div>
22
+ </div>
23
+ </template>
24
+
25
+ <script lang="ts" setup>
26
+ import { reactive, ref } from 'vue'
27
+ import { endpoints, useHttp } from '../api'
28
+ import { UniData, UniDataItem } from '@uxda/nutshell/taro'
29
+
30
+ const $http = useHttp()
31
+
32
+ type ListFilterPickerModel = Record<string, string[]>
33
+
34
+ interface ListFilterPickerProps {
35
+ modelValue: ListFilterPickerModel
36
+ }
37
+
38
+ const props =
39
+ defineProps<ListFilterPickerProps>()
40
+
41
+ const emit = defineEmits(['complete'])
42
+
43
+ const result = ref<ListFilterPickerModel>(props.modelValue)
44
+
45
+ type FilterSecion = {
46
+ label: string,
47
+ name: string,
48
+ data: UniDataItem[]
49
+ }
50
+
51
+ /**
52
+ * 筛选项目里面所有按钮
53
+ */
54
+ const filterSections = ref<FilterSecion[]>([
55
+ {
56
+ label: '明细类型',
57
+ name: 'type',
58
+ data: [
59
+ {
60
+ label: '全部',
61
+ value: ''
62
+ },
63
+ {
64
+ label: '提现',
65
+ value: 'withdrawal'
66
+ },
67
+ {
68
+ label: '收益',
69
+ value: 'income'
70
+ },
71
+ {
72
+ label: '兑换',
73
+ value: 'exchange'
74
+ },
75
+ {
76
+ label: '返佣',
77
+ value: 'rebate'
78
+ }
79
+ ]
80
+ },
81
+ ])
82
+
83
+ const getItemClass = (name: string, value: string) => result.value[name]?.includes(value) ? ['current'] : ['']
84
+
85
+ const onFilterSectionClick = (index: string, value: string) => {
86
+ result.value[index] = [value]
87
+ }
88
+
89
+ const reset = () => {
90
+ result.value = {}
91
+ }
92
+
93
+ const onOkClick = () => {
94
+ emit('complete', result)
95
+ }
96
+ </script>
97
+ <style lang="scss">
98
+ .list-filter-picker {
99
+ display: flex;
100
+ flex-direction: column;
101
+ width: 100%;
102
+
103
+ &-title {
104
+ position: relative;
105
+ height: 44px;
106
+ font-size: 17px;
107
+ color: #353535;
108
+ background: #f5f5f5;
109
+ text-align: center;
110
+ }
111
+
112
+ &-content {
113
+ flex: 1;
114
+ margin: 15px;
115
+ overflow-y: scroll;
116
+ color: #353535;
117
+ font-size: 13px;
118
+
119
+ .title {
120
+ opacity: 0.6;
121
+ line-height: 18px;
122
+ }
123
+
124
+ .info {
125
+ display: grid;
126
+ grid-template-columns: 1fr 1fr 1fr;
127
+ grid-gap: 10px;
128
+ margin: 10px 0;
129
+
130
+ &-item {
131
+ height: 30px;
132
+ line-height: 30px;
133
+ border: 1px solid #ccc;
134
+ border-radius: 6px;
135
+ text-align: center;
136
+ }
137
+
138
+ .current {
139
+ border-radius: 5px;
140
+ border: 1px solid rgba(1, 127, 255, 0.5);
141
+ background: #E6F2FF;
142
+ }
143
+ }
144
+ }
145
+
146
+ &-btn {
147
+ margin: 0 15px;
148
+ display: flex;
149
+ justify-content: space-between;
150
+ align-items: center;
151
+
152
+ .btn {
153
+ flex: 1;
154
+ height: 40px;
155
+ line-height: 40px;
156
+ text-align: center;
157
+ border: 1px solid #ccc;
158
+ color: #666;
159
+ font-size: 16px;
160
+ border-radius: 6px;
161
+ }
162
+
163
+ .confirm {
164
+ margin-left: 11px;
165
+ color: #fff;
166
+ border: none;
167
+ background: #017fff;
168
+ }
169
+ }
170
+
171
+ &-bottom {
172
+ height: 32px;
173
+ background: #fff;
174
+ }
175
+
176
+ .icon {
177
+ display: block;
178
+ width: 20px;
179
+ height: 20px;
180
+ background-size: 40px;
181
+ background-repeat: no-repeat;
182
+ background-position: center center;
183
+
184
+ &.icon-x {
185
+ position: absolute;
186
+ right: 10px;
187
+ top: 11px;
188
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4wMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MSA0MUgxVjFINDFWNDFaIiBmaWxsPSIjRDhEOEQ4IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4wMSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIzLjM1NjEgMjAuOTk5OUwzMy45NjM3IDMxLjYwNzJDMzQuNjE0NiAzMi4yNTgxIDM0LjYxNDYgMzMuMzEzNCAzMy45NjM3IDMzLjk2NDJDMzMuMzQyNSAzNC41ODU1IDMyLjM1MjcgMzQuNjEzOCAzMS42OTc5IDM0LjA0ODlMMjAuOTk5NCAyMy4zNTY2TDEwLjM5MzUgMzMuOTY0MkM5Ljc0MjY1IDM0LjYxNTEgOC42ODczOCAzNC42MTUxIDguMDM2NSAzMy45NjQyQzcuNDE1MTkgMzMuMzQyOSA3LjM4Njk3IDMyLjM1MzIgNy45NTE3OSAzMS42OTg0TDE4LjY0MjggMjAuOTk5OUw4LjAzNjUgMTAuMzk0QzcuMzg1NjMgOS43NDMxNCA3LjM4NTYzIDguNjg3ODcgOC4wMzY1IDguMDM2OTlDOC42NTc3OSA3LjQxNTY4IDkuNjQ3NTQgNy4zODc0NiAxMC4zMDIzIDcuOTUyMjdMMjAuOTk5NCAxOC42NDMzTDMxLjYwNjcgOC4wMzY5OUMzMi4yNTc2IDcuMzg2MTIgMzMuMzEyOSA3LjM4NjEyIDMzLjk2MzcgOC4wMzY5OUMzNC41ODUgOC42NTgyOCAzNC42MTMzIDkuNjQ4MDMgMzQuMDQ4NSAxMC4zMDI4TDIzLjM1NjEgMjAuOTk5OVoiIGZpbGw9IiMxNzFBMUQiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjAxIi8+Cjwvc3ZnPgo=")
189
+ }
190
+ }
191
+ }
192
192
  </style>