@uxda/appkit 4.3.28 → 4.3.30
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.
- package/.cursor/skills/appkit-build-update-component-rules/SKILL.md +54 -49
- package/.cursor/skills/appkit-sync-component-rules/SKILL.md +60 -0
- package/.eslintrc.mjs +7 -7
- package/Appkit/347/273/204/344/273/266/344/275/277/347/224/250/350/247/204/345/210/231.md +2002 -1786
- package/PROJECT_DOCS.md +142 -142
- package/README.md +194 -194
- package/babel.config.js +12 -12
- package/dist/appkit.css +112 -3
- package/dist/index.js +155 -28
- package/package.json +82 -82
- package/project.config.json +15 -15
- package/project.tt.json +13 -13
- package/rollup.config.mjs +81 -81
- package/src/Appkit.ts +72 -72
- package/src/balance/api/endpoints.ts +133 -133
- package/src/balance/api/index.ts +118 -118
- package/src/balance/components/AccountView.vue +770 -770
- package/src/balance/components/BalanceCard.vue +210 -210
- package/src/balance/components/BalanceReminder.vue +84 -84
- package/src/balance/components/ConsumptionFilter.vue +218 -218
- package/src/balance/components/ConsumptionRules.vue +68 -68
- package/src/balance/components/DateFilter.vue +259 -259
- package/src/balance/components/DateRange.vue +111 -111
- package/src/balance/components/ListFilter.vue +62 -62
- package/src/balance/components/ListFilterPicker.vue +191 -191
- package/src/balance/components/PromoterCard.vue +308 -308
- package/src/balance/components/SecondBalance.vue +77 -77
- package/src/balance/components/Tip.vue +45 -45
- package/src/balance/components/index.ts +8 -8
- package/src/balance/types.ts +99 -99
- package/src/components/bt-cropper/index.vue +730 -730
- package/src/components/bt-cropper/utils/calcCropper.js +42 -42
- package/src/components/bt-cropper/utils/calcImagePosition.js +23 -23
- package/src/components/bt-cropper/utils/calcImageSize.js +37 -37
- package/src/components/bt-cropper/utils/calcPointDistance.js +12 -12
- package/src/components/bt-cropper/utils/calcRightAndBottom.js +7 -7
- package/src/components/bt-cropper/utils/ratio.js +3 -3
- package/src/components/bt-cropper/utils/tools.js +25 -25
- package/src/components/dd-area/index.vue +225 -225
- package/src/components/dd-icon/doc.md +21 -21
- package/src/components/dd-icon/index.vue +23 -23
- package/src/components/dd-notice-bar/index.vue +78 -78
- package/src/components/dd-search/doc.md +34 -34
- package/src/components/dd-search/index.vue +168 -168
- package/src/components/dd-selector/index.vue +124 -124
- package/src/components/dd-skeleton/doc.md +19 -19
- package/src/components/dd-skeleton/index.vue +36 -36
- package/src/global.ts +6 -6
- package/src/index.ts +101 -101
- package/src/main.scss +1 -1
- package/src/notice/api/endpoints.ts +54 -54
- package/src/notice/api/index.ts +121 -121
- package/src/notice/components/NoticeBanner.vue +247 -247
- package/src/notice/components/NoticeEntry.vue +99 -99
- package/src/notice/components/NoticeList.vue +311 -311
- package/src/notice/components/NoticeList2.vue +401 -401
- package/src/notice/components/NoticePopup.vue +163 -163
- package/src/notice/components/index.ts +6 -6
- package/src/notice/components/useCommonList.ts +87 -87
- package/src/notice/components/useNotice.ts +35 -35
- package/src/notice/index.ts +1 -1
- package/src/notice/types.ts +25 -25
- package/src/payment/api/config.ts +7 -7
- package/src/payment/api/endpoints.ts +112 -112
- package/src/payment/api/index.ts +108 -108
- package/src/payment/components/AmountPicker.vue +77 -68
- package/src/payment/components/RechargeResult.vue +68 -68
- package/src/payment/components/RechargeView.vue +414 -227
- package/src/payment/components/RightsPicker.vue +105 -105
- package/src/payment/components/TradeView.vue +616 -616
- package/src/payment/components/UserAgreement.vue +234 -234
- package/src/payment/components/index.ts +22 -22
- package/src/payment/components/recharge-amount.spec.ts +51 -0
- package/src/payment/components/recharge-amount.ts +63 -0
- package/src/payment/index.ts +5 -5
- package/src/payment/services/index.ts +16 -16
- package/src/payment/services/invoke-recharge.ts +25 -25
- package/src/payment/services/request-payment.ts +136 -136
- package/src/payment/types.ts +34 -34
- package/src/register/components/SelfRegistration.vue +233 -233
- package/src/register/components/index.ts +2 -2
- package/src/scenarios/components/SharePoster.vue +364 -364
- package/src/scenarios/components/index.ts +2 -2
- package/src/scenarios/components/poster-paste.vue +93 -93
- package/src/scenarios/components/share-poster.md +273 -273
- package/src/shared/components/AppDrawer.vue +53 -53
- package/src/shared/components/AppVerify.vue +137 -137
- package/src/shared/components/DeviceVersion.vue +78 -78
- package/src/shared/components/EmptyView.vue +33 -33
- package/src/shared/components/OcrBank.vue +202 -202
- package/src/shared/components/OcrBusinessLicense.vue +120 -120
- package/src/shared/components/OcrIcon.vue +267 -267
- package/src/shared/components/OcrInvoice.vue +323 -323
- package/src/shared/components/OfficeDocx.vue +33 -33
- package/src/shared/components/OfficePdf.vue +35 -35
- package/src/shared/components/PageHeader.vue +84 -84
- package/src/shared/components/index.ts +12 -12
- package/src/shared/composables/index.ts +10 -10
- package/src/shared/composables/useAmount.ts +46 -46
- package/src/shared/composables/useCompress.ts +64 -64
- package/src/shared/composables/useCountdown.ts +46 -46
- package/src/shared/composables/useCrypto.ts +76 -76
- package/src/shared/composables/useDeviceEnv.ts +61 -61
- package/src/shared/composables/useDragBox.ts +97 -97
- package/src/shared/composables/useEncode.ts +43 -43
- package/src/shared/composables/useLogger.ts +149 -149
- package/src/shared/composables/useSafeArea.ts +46 -46
- package/src/shared/composables/useTabbar.ts +24 -24
- package/src/shared/composables/useUpload.ts +106 -106
- package/src/shared/composables/useValidator.ts +32 -32
- package/src/shared/composables/useWxAuth.ts +49 -49
- package/src/shared/http/Http.ts +149 -149
- package/src/shared/http/index.ts +1 -1
- package/src/shared/http/types.ts +163 -163
- package/src/shared/index.ts +9 -9
- package/src/shared/tracking/directives/index.ts +40 -40
- package/src/shared/tracking/examples/page-tracking-template.vue +27 -27
- package/src/shared/weixin/index.ts +9 -9
- package/src/shared/weixin/jssdk.ts +104 -104
- package/src/shared/weixin/payment.ts +38 -38
- package/src/styles/vars.scss +3 -3
- package/src/user/api/endpoints.ts +17 -17
- package/src/user/api/index.ts +123 -123
- package/src/user/components/LoginSetting.vue +114 -114
- package/src/user/components/UserAuth.vue +218 -218
- package/src/user/components/UserBinding.vue +277 -277
- package/src/user/components/UserBindingSuccess.vue +80 -80
- package/src/user/components/UserEntry.vue +139 -139
- package/src/user/components/UserFeedback.vue +428 -428
- package/src/user/components/UserFeedbackEntry.vue +175 -175
- package/src/user/components/UserHeadCrop.vue +65 -65
- package/src/user/components/UserInfo.vue +711 -711
- package/src/user/components/UserResourceEmpty.vue +75 -75
- package/src/user/components/index.ts +23 -23
- package/src/user/index.ts +1 -1
- package/src/utils/utils.ts +33 -33
- package/tsconfig.json +30 -30
- package/types/global.d.ts +23 -23
- package/types/vue.d.ts +10 -10
- package/dist/assets/asset-3B_CoPto +0 -1
- package/dist/assets/asset-DcH8Kg-2 +0 -1
package/babel.config.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
// babel-preset-taro 更多选项和默认值:
|
|
2
|
-
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
|
|
3
|
-
module.exports = {
|
|
4
|
-
presets: [
|
|
5
|
-
['taro', {
|
|
6
|
-
framework: 'vue3',
|
|
7
|
-
ts: true
|
|
8
|
-
}]
|
|
9
|
-
],
|
|
10
|
-
plugins: [
|
|
11
|
-
],
|
|
12
|
-
}
|
|
1
|
+
// babel-preset-taro 更多选项和默认值:
|
|
2
|
+
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
|
|
3
|
+
module.exports = {
|
|
4
|
+
presets: [
|
|
5
|
+
['taro', {
|
|
6
|
+
framework: 'vue3',
|
|
7
|
+
ts: true
|
|
8
|
+
}]
|
|
9
|
+
],
|
|
10
|
+
plugins: [
|
|
11
|
+
],
|
|
12
|
+
}
|
package/dist/appkit.css
CHANGED
|
@@ -12,6 +12,15 @@
|
|
|
12
12
|
.amount-picker .tile.selected .nut-grid-item__content {
|
|
13
13
|
background: linear-gradient(#FFF7E3, #FEFDE6) padding-box, linear-gradient(to bottom, #efd082, #ffb877) border-box;
|
|
14
14
|
}
|
|
15
|
+
.amount-picker .tile.custom h4.token-line {
|
|
16
|
+
background-image: none;
|
|
17
|
+
padding-left: 0;
|
|
18
|
+
color: #353535;
|
|
19
|
+
font-size: 14px;
|
|
20
|
+
}
|
|
21
|
+
.amount-picker .tile.custom h5 {
|
|
22
|
+
color: #353535;
|
|
23
|
+
}
|
|
15
24
|
.amount-picker h4.token-line {
|
|
16
25
|
background-image: url("https://cdn.ddjf.com/static/images/appkit/yundou.png");
|
|
17
26
|
background-size: 20px;
|
|
@@ -247,6 +256,106 @@
|
|
|
247
256
|
.recharge-view .flex-grow {
|
|
248
257
|
flex-grow: 1;
|
|
249
258
|
}
|
|
259
|
+
.recharge-view .custom-amount-panel {
|
|
260
|
+
box-sizing: border-box;
|
|
261
|
+
display: block;
|
|
262
|
+
overflow: hidden;
|
|
263
|
+
margin: 8px 12px 12px;
|
|
264
|
+
padding: 12px;
|
|
265
|
+
background-color: rgba(255, 244, 223, 0.3);
|
|
266
|
+
border-radius: 5px;
|
|
267
|
+
border: 1px solid #fd6701;
|
|
268
|
+
}
|
|
269
|
+
.recharge-view .custom-amount-title,
|
|
270
|
+
.recharge-view .custom-amount-input,
|
|
271
|
+
.recharge-view .custom-amount-tip {
|
|
272
|
+
background: transparent;
|
|
273
|
+
}
|
|
274
|
+
.recharge-view .custom-amount-title {
|
|
275
|
+
display: flex;
|
|
276
|
+
align-items: center;
|
|
277
|
+
justify-content: space-between;
|
|
278
|
+
color: #262626;
|
|
279
|
+
font-size: 15px;
|
|
280
|
+
font-weight: 600;
|
|
281
|
+
line-height: 22px;
|
|
282
|
+
}
|
|
283
|
+
.recharge-view .custom-amount-tag {
|
|
284
|
+
color: #fd6701;
|
|
285
|
+
background: rgb(255, 244, 223);
|
|
286
|
+
border-radius: 12px;
|
|
287
|
+
padding: 3px 8px;
|
|
288
|
+
font-size: 10px;
|
|
289
|
+
font-weight: 600;
|
|
290
|
+
line-height: 14px;
|
|
291
|
+
}
|
|
292
|
+
.recharge-view .custom-amount-input {
|
|
293
|
+
display: flex;
|
|
294
|
+
align-items: center;
|
|
295
|
+
min-height: 50px;
|
|
296
|
+
margin-top: 8px;
|
|
297
|
+
padding: 0;
|
|
298
|
+
border: 0;
|
|
299
|
+
background: transparent;
|
|
300
|
+
}
|
|
301
|
+
.recharge-view .custom-amount-input .currency {
|
|
302
|
+
flex: none;
|
|
303
|
+
margin-right: 10px;
|
|
304
|
+
color: #9a9a9a;
|
|
305
|
+
font-size: 26px;
|
|
306
|
+
font-weight: 600;
|
|
307
|
+
line-height: 36px;
|
|
308
|
+
}
|
|
309
|
+
.recharge-view .custom-amount-control {
|
|
310
|
+
flex: 1;
|
|
311
|
+
min-width: 0;
|
|
312
|
+
height: 42px;
|
|
313
|
+
padding: 0;
|
|
314
|
+
border: 0;
|
|
315
|
+
outline: none;
|
|
316
|
+
background: transparent;
|
|
317
|
+
color: #353535;
|
|
318
|
+
caret-color: #fd6701;
|
|
319
|
+
font-size: 28px;
|
|
320
|
+
font-weight: 700;
|
|
321
|
+
line-height: 42px;
|
|
322
|
+
}
|
|
323
|
+
.recharge-view .custom-amount-control:focus, .recharge-view .custom-amount-control:focus-visible {
|
|
324
|
+
border: 0;
|
|
325
|
+
outline: none;
|
|
326
|
+
box-shadow: none;
|
|
327
|
+
}
|
|
328
|
+
.recharge-view .custom-amount-control::placeholder, .recharge-view .custom-amount-control::-webkit-input-placeholder {
|
|
329
|
+
color: #b8b8b8;
|
|
330
|
+
font-size: 26px;
|
|
331
|
+
font-weight: 700;
|
|
332
|
+
}
|
|
333
|
+
.recharge-view .custom-amount-placeholder {
|
|
334
|
+
color: #b8b8b8;
|
|
335
|
+
font-size: 26px;
|
|
336
|
+
font-weight: 700;
|
|
337
|
+
line-height: 42px;
|
|
338
|
+
}
|
|
339
|
+
.recharge-view .custom-amount-tip {
|
|
340
|
+
display: flex;
|
|
341
|
+
align-items: center;
|
|
342
|
+
gap: 6px;
|
|
343
|
+
margin-top: 10px;
|
|
344
|
+
color: #a5a5a5;
|
|
345
|
+
font-size: 10px;
|
|
346
|
+
line-height: 15px;
|
|
347
|
+
}
|
|
348
|
+
.recharge-view .custom-amount-tip-icon {
|
|
349
|
+
flex: none;
|
|
350
|
+
width: 12px;
|
|
351
|
+
height: 12px;
|
|
352
|
+
border: 1px solid #b8b8b8;
|
|
353
|
+
border-radius: 50%;
|
|
354
|
+
color: #9a9a9a;
|
|
355
|
+
font-size: 9px;
|
|
356
|
+
line-height: 12px;
|
|
357
|
+
text-align: center;
|
|
358
|
+
}
|
|
250
359
|
.recharge-view .amount-footer {
|
|
251
360
|
position: fixed;
|
|
252
361
|
bottom: 0;
|
|
@@ -514,9 +623,9 @@
|
|
|
514
623
|
color: #353535;
|
|
515
624
|
background: linear-gradient(90deg, #ffebc1 0%, #ffb875 100%);
|
|
516
625
|
}
|
|
517
|
-
page {
|
|
518
|
-
--text-color: #333;
|
|
519
|
-
--text-color-dark-mode: #eee;
|
|
626
|
+
page {
|
|
627
|
+
--text-color: #333;
|
|
628
|
+
--text-color-dark-mode: #eee;
|
|
520
629
|
}
|
|
521
630
|
.account-card .card {
|
|
522
631
|
background: linear-gradient(90deg, #EEF1FA 0%, #E4E6F3 100%);
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Grid, GridItem, Popup, ActionSheet, Checkbox, Button, Dialog, DatePicker, Form, FormItem, RadioGroup, Radio, Ellipsis, Skeleton, Cell, Input, Steps, Step } from '@nutui/nutui-taro';
|
|
2
2
|
import '@nutui/nutui-taro/dist/packages/button/style/css';
|
|
3
3
|
import '@nutui/nutui-taro/dist/packages/checkbox/style/css';
|
|
4
|
-
import { defineComponent,
|
|
4
|
+
import { defineComponent, createBlock, openBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createTextVNode, ref, computed, onUnmounted, resolveDirective, createCommentVNode, withDirectives, renderSlot, createVNode, normalizeStyle, unref, reactive, isRef, onMounted, createStaticVNode, watch, vShow, mergeModels, useModel, resolveComponent, vModelText, watchPostEffect, withModifiers } from 'vue';
|
|
5
5
|
import '@nutui/nutui-taro/dist/packages/grid/style/css';
|
|
6
6
|
import '@nutui/nutui-taro/dist/packages/griditem/style/css';
|
|
7
7
|
import Taro, { showModal, getSystemInfoSync, getMenuButtonBoundingClientRect, request as request$1, uploadFile, showToast, chooseMedia, chooseMessageFile, showLoading, hideLoading, getStorageSync, setStorageSync, getSystemInfo, getNetworkType, getEnv, getAccountInfoSync, getPerformance, onAppHide, useDidShow, onAppShow, onNetworkStatusChange, useRouter } from '@tarojs/taro';
|
|
@@ -36,7 +36,10 @@ import '@nutui/nutui-taro/dist/packages/steps/style/css';
|
|
|
36
36
|
import '@nutui/nutui-taro/dist/packages/step/style/css';
|
|
37
37
|
|
|
38
38
|
const _hoisted_1$I = { class: "token-line number" };
|
|
39
|
-
const _hoisted_2$t = {
|
|
39
|
+
const _hoisted_2$t = { key: 0 };
|
|
40
|
+
const _hoisted_3$n = { class: "number" };
|
|
41
|
+
const _hoisted_4$j = { key: 1 };
|
|
42
|
+
const _hoisted_5$g = { class: "number" };
|
|
40
43
|
var script$Q = /* @__PURE__ */ defineComponent({
|
|
41
44
|
__name: "AmountPicker",
|
|
42
45
|
props: {
|
|
@@ -46,12 +49,9 @@ var script$Q = /* @__PURE__ */ defineComponent({
|
|
|
46
49
|
emits: ["change"],
|
|
47
50
|
setup(__props, { emit: __emit }) {
|
|
48
51
|
const emit = __emit;
|
|
49
|
-
const
|
|
50
|
-
selected: 0
|
|
51
|
-
});
|
|
52
|
+
const props = __props;
|
|
52
53
|
const onGridItemClick = (index) => {
|
|
53
|
-
|
|
54
|
-
emit("change", state.selected);
|
|
54
|
+
emit("change", index);
|
|
55
55
|
};
|
|
56
56
|
return (_ctx, _cache) => {
|
|
57
57
|
const _component_nut_grid_item = GridItem;
|
|
@@ -68,7 +68,7 @@ var script$Q = /* @__PURE__ */ defineComponent({
|
|
|
68
68
|
null,
|
|
69
69
|
renderList(__props.items, (amount, index) => {
|
|
70
70
|
return openBlock(), createBlock(_component_nut_grid_item, {
|
|
71
|
-
class: normalizeClass(["tile", { selected:
|
|
71
|
+
class: normalizeClass(["tile", { selected: props.selected === index, custom: amount.custom }]),
|
|
72
72
|
onClick: () => onGridItemClick(index),
|
|
73
73
|
key: index
|
|
74
74
|
}, {
|
|
@@ -80,7 +80,15 @@ var script$Q = /* @__PURE__ */ defineComponent({
|
|
|
80
80
|
1
|
|
81
81
|
/* TEXT */
|
|
82
82
|
),
|
|
83
|
-
|
|
83
|
+
amount.custom ? (openBlock(), createElementBlock("h5", _hoisted_2$t, [
|
|
84
|
+
createElementVNode(
|
|
85
|
+
"span",
|
|
86
|
+
_hoisted_3$n,
|
|
87
|
+
toDisplayString(amount.amount),
|
|
88
|
+
1
|
|
89
|
+
/* TEXT */
|
|
90
|
+
)
|
|
91
|
+
])) : (openBlock(), createElementBlock("h5", _hoisted_4$j, [
|
|
84
92
|
_cache[0] || (_cache[0] = createTextVNode(
|
|
85
93
|
"\xA5",
|
|
86
94
|
-1
|
|
@@ -88,12 +96,12 @@ var script$Q = /* @__PURE__ */ defineComponent({
|
|
|
88
96
|
)),
|
|
89
97
|
createElementVNode(
|
|
90
98
|
"span",
|
|
91
|
-
|
|
99
|
+
_hoisted_5$g,
|
|
92
100
|
toDisplayString(amount.amount),
|
|
93
101
|
1
|
|
94
102
|
/* TEXT */
|
|
95
103
|
)
|
|
96
|
-
])
|
|
104
|
+
]))
|
|
97
105
|
]),
|
|
98
106
|
_: 2
|
|
99
107
|
/* DYNAMIC */
|
|
@@ -747,11 +755,11 @@ const _hoisted_1$F = { class: "app-verify column" };
|
|
|
747
755
|
const _hoisted_2$s = { class: "caption" };
|
|
748
756
|
const _hoisted_3$m = { class: "number" };
|
|
749
757
|
const _hoisted_4$i = { class: "form-btn" };
|
|
750
|
-
const _hoisted_5$
|
|
758
|
+
const _hoisted_5$f = {
|
|
751
759
|
key: 1,
|
|
752
760
|
class: "caption"
|
|
753
761
|
};
|
|
754
|
-
const _hoisted_6$
|
|
762
|
+
const _hoisted_6$b = { class: "row buttons" };
|
|
755
763
|
var script$N = /* @__PURE__ */ defineComponent({
|
|
756
764
|
__name: "AppVerify",
|
|
757
765
|
props: {
|
|
@@ -846,7 +854,7 @@ var script$N = /* @__PURE__ */ defineComponent({
|
|
|
846
854
|
]) : createCommentVNode("v-if", true),
|
|
847
855
|
sent.value ? (openBlock(), createElementBlock(
|
|
848
856
|
"div",
|
|
849
|
-
_hoisted_5$
|
|
857
|
+
_hoisted_5$f,
|
|
850
858
|
toDisplayString(countdown.value) + "s\u540E\u91CD\u65B0\u53D1\u9001",
|
|
851
859
|
1
|
|
852
860
|
/* TEXT */
|
|
@@ -856,7 +864,7 @@ var script$N = /* @__PURE__ */ defineComponent({
|
|
|
856
864
|
_: 1
|
|
857
865
|
/* STABLE */
|
|
858
866
|
}, 8, ["modelValue"]),
|
|
859
|
-
createElementVNode("div", _hoisted_6$
|
|
867
|
+
createElementVNode("div", _hoisted_6$b, [
|
|
860
868
|
withDirectives((openBlock(), createBlock(unref(NsButton), {
|
|
861
869
|
class: "cancel-btn",
|
|
862
870
|
r: 20,
|
|
@@ -3554,10 +3562,54 @@ const isIOS = () => {
|
|
|
3554
3562
|
return false;
|
|
3555
3563
|
};
|
|
3556
3564
|
|
|
3565
|
+
const CUSTOM_RECHARGE_AMOUNT_MIN = 1e4;
|
|
3566
|
+
const CUSTOM_RECHARGE_AMOUNT_MAX = 5e4;
|
|
3567
|
+
const CUSTOM_RECHARGE_AMOUNT_ITEM = {
|
|
3568
|
+
token: "\u81EA\u5B9A\u4E49",
|
|
3569
|
+
amount: "1W \u8D77\u5145",
|
|
3570
|
+
custom: true
|
|
3571
|
+
};
|
|
3572
|
+
function appendCustomAmountOption(items) {
|
|
3573
|
+
return [...items, CUSTOM_RECHARGE_AMOUNT_ITEM];
|
|
3574
|
+
}
|
|
3575
|
+
function normalizeCustomRechargeAmountInput(value) {
|
|
3576
|
+
return String(value ?? "").replace(/[^\d]/g, "");
|
|
3577
|
+
}
|
|
3578
|
+
function validateCustomRechargeAmount(value) {
|
|
3579
|
+
const amount = Number(value);
|
|
3580
|
+
if (!Number.isFinite(amount) || amount <= 0) {
|
|
3581
|
+
return { valid: false, message: "\u8BF7\u8F93\u5165\u5145\u503C\u91D1\u989D" };
|
|
3582
|
+
}
|
|
3583
|
+
if (!Number.isInteger(amount)) {
|
|
3584
|
+
return { valid: false, message: "\u8BF7\u8F93\u5165\u6574\u6570\u5145\u503C\u91D1\u989D" };
|
|
3585
|
+
}
|
|
3586
|
+
if (amount < CUSTOM_RECHARGE_AMOUNT_MIN) {
|
|
3587
|
+
return { valid: false, message: "\u5145\u503C\u91D1\u989D\u4E0D\u80FD\u4F4E\u4E8E10000\u5143" };
|
|
3588
|
+
}
|
|
3589
|
+
if (amount > CUSTOM_RECHARGE_AMOUNT_MAX) {
|
|
3590
|
+
return { valid: false, message: "\u5145\u503C\u91D1\u989D\u4E0D\u80FD\u9AD8\u4E8E50000\u5143" };
|
|
3591
|
+
}
|
|
3592
|
+
return { valid: true, amount };
|
|
3593
|
+
}
|
|
3594
|
+
function resolveRechargeAmount(items, selected, customAmount) {
|
|
3595
|
+
const selectedItem = items[selected];
|
|
3596
|
+
if (selectedItem?.custom) {
|
|
3597
|
+
const validation = validateCustomRechargeAmount(customAmount);
|
|
3598
|
+
return validation.valid ? validation.amount : 0;
|
|
3599
|
+
}
|
|
3600
|
+
return Number(selectedItem?.amount || 0);
|
|
3601
|
+
}
|
|
3602
|
+
|
|
3557
3603
|
const _hoisted_1$B = { class: "view recharge-view" };
|
|
3558
3604
|
const _hoisted_2$r = { class: "flex-grow" };
|
|
3559
|
-
const _hoisted_3$l = {
|
|
3560
|
-
|
|
3605
|
+
const _hoisted_3$l = {
|
|
3606
|
+
key: 0,
|
|
3607
|
+
class: "custom-amount-panel"
|
|
3608
|
+
};
|
|
3609
|
+
const _hoisted_4$h = { class: "custom-amount-input" };
|
|
3610
|
+
const _hoisted_5$e = ["value", "min", "max"];
|
|
3611
|
+
const _hoisted_6$a = { class: "amount-footer" };
|
|
3612
|
+
const _hoisted_7$7 = { class: "agreement" };
|
|
3561
3613
|
var script$E = /* @__PURE__ */ defineComponent({
|
|
3562
3614
|
__name: "RechargeView",
|
|
3563
3615
|
props: {
|
|
@@ -3575,9 +3627,12 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3575
3627
|
selected: 0,
|
|
3576
3628
|
agreementOpen: false,
|
|
3577
3629
|
buttonLoading: false,
|
|
3578
|
-
thirdPayId: ""
|
|
3630
|
+
thirdPayId: "",
|
|
3631
|
+
customAmountText: ""
|
|
3579
3632
|
});
|
|
3580
3633
|
const amounts = ref([]);
|
|
3634
|
+
const rechargeAmountItems = computed(() => appendCustomAmountOption(amounts.value));
|
|
3635
|
+
const isCustomAmountSelected = computed(() => rechargeAmountItems.value[state.selected]?.custom === true);
|
|
3581
3636
|
const onAgreementLinkClick = (e) => {
|
|
3582
3637
|
e.preventDefault();
|
|
3583
3638
|
e.stopImmediatePropagation();
|
|
@@ -3585,6 +3640,24 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3585
3640
|
};
|
|
3586
3641
|
const onAmountSelect = (selected) => {
|
|
3587
3642
|
state.selected = selected;
|
|
3643
|
+
if (!rechargeAmountItems.value[selected]?.custom) {
|
|
3644
|
+
state.customAmountText = "";
|
|
3645
|
+
}
|
|
3646
|
+
};
|
|
3647
|
+
const onCustomAmountInput = (event) => {
|
|
3648
|
+
const value = normalizeCustomRechargeAmountInput(event?.detail?.value ?? event?.target?.value);
|
|
3649
|
+
state.customAmountText = value;
|
|
3650
|
+
return value;
|
|
3651
|
+
};
|
|
3652
|
+
const getSelectedRechargeAmount = () => {
|
|
3653
|
+
if (isCustomAmountSelected.value) {
|
|
3654
|
+
return validateCustomRechargeAmount(state.customAmountText);
|
|
3655
|
+
}
|
|
3656
|
+
const amount = resolveRechargeAmount(rechargeAmountItems.value, state.selected, state.customAmountText);
|
|
3657
|
+
if (!amount) {
|
|
3658
|
+
return { valid: false, message: "\u8BF7\u9009\u62E9\u5145\u503C\u91D1\u989D" };
|
|
3659
|
+
}
|
|
3660
|
+
return { valid: true, amount };
|
|
3588
3661
|
};
|
|
3589
3662
|
onMounted(async () => {
|
|
3590
3663
|
const $http = useHttp$2({ Appcode: props.app !== "cloudkitPro" ? props.app : "", Tenant: props.tenant });
|
|
@@ -3598,6 +3671,14 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3598
3671
|
});
|
|
3599
3672
|
});
|
|
3600
3673
|
const onPayClick = () => {
|
|
3674
|
+
const selectedAmount = getSelectedRechargeAmount();
|
|
3675
|
+
if (!selectedAmount.valid) {
|
|
3676
|
+
showToast({
|
|
3677
|
+
title: selectedAmount.message,
|
|
3678
|
+
icon: "none"
|
|
3679
|
+
});
|
|
3680
|
+
return false;
|
|
3681
|
+
}
|
|
3601
3682
|
if (!state.agreed) {
|
|
3602
3683
|
showToast({
|
|
3603
3684
|
title: "\u8BF7\u52FE\u9009\u300A\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u534F\u8BAE\u300B",
|
|
@@ -3608,7 +3689,7 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3608
3689
|
state.buttonLoading = true;
|
|
3609
3690
|
if (Taro.getEnv() === "WEB") {
|
|
3610
3691
|
requestBrandWCPay({
|
|
3611
|
-
amount:
|
|
3692
|
+
amount: selectedAmount.amount,
|
|
3612
3693
|
app: "loankitMp",
|
|
3613
3694
|
tenant: props.tenant,
|
|
3614
3695
|
accountAuthFlag: false,
|
|
@@ -3633,7 +3714,7 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3633
3714
|
wx.login({
|
|
3634
3715
|
success({ code }) {
|
|
3635
3716
|
requestPayment({
|
|
3636
|
-
amount:
|
|
3717
|
+
amount: selectedAmount.amount,
|
|
3637
3718
|
app: props.app,
|
|
3638
3719
|
tenant: props.tenant,
|
|
3639
3720
|
user: code
|
|
@@ -3675,20 +3756,66 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3675
3756
|
return openBlock(), createElementBlock("view", _hoisted_1$B, [
|
|
3676
3757
|
createElementVNode("view", _hoisted_2$r, [
|
|
3677
3758
|
createVNode(script$Q, {
|
|
3678
|
-
items:
|
|
3759
|
+
items: rechargeAmountItems.value,
|
|
3679
3760
|
selected: state.selected,
|
|
3680
3761
|
onChange: onAmountSelect
|
|
3681
3762
|
}, null, 8, ["items", "selected"]),
|
|
3763
|
+
isCustomAmountSelected.value ? (openBlock(), createElementBlock("view", _hoisted_3$l, [
|
|
3764
|
+
_cache[2] || (_cache[2] = createElementVNode(
|
|
3765
|
+
"view",
|
|
3766
|
+
{ class: "custom-amount-title" },
|
|
3767
|
+
[
|
|
3768
|
+
createElementVNode("text", null, "\u8F93\u5165\u5145\u503C\u91D1\u989D"),
|
|
3769
|
+
createElementVNode("text", { class: "custom-amount-tag" }, "\u81EA\u5B9A\u4E49\u5927\u989D")
|
|
3770
|
+
],
|
|
3771
|
+
-1
|
|
3772
|
+
/* CACHED */
|
|
3773
|
+
)),
|
|
3774
|
+
createElementVNode("view", _hoisted_4$h, [
|
|
3775
|
+
_cache[1] || (_cache[1] = createElementVNode(
|
|
3776
|
+
"text",
|
|
3777
|
+
{ class: "currency" },
|
|
3778
|
+
"\xA5",
|
|
3779
|
+
-1
|
|
3780
|
+
/* CACHED */
|
|
3781
|
+
)),
|
|
3782
|
+
createElementVNode("input", {
|
|
3783
|
+
class: "custom-amount-control",
|
|
3784
|
+
type: "number",
|
|
3785
|
+
value: state.customAmountText,
|
|
3786
|
+
placeholder: "\u6700\u4F4E1w\u5143\u8D77,\u6700\u9AD85w\u5143",
|
|
3787
|
+
"placeholder-class": "custom-amount-placeholder",
|
|
3788
|
+
"placeholder-style": "color: #b8b8b8; font-size: 26px; font-weight: 700;",
|
|
3789
|
+
inputmode: "numeric",
|
|
3790
|
+
pattern: "[0-9]*",
|
|
3791
|
+
step: "1",
|
|
3792
|
+
min: unref(CUSTOM_RECHARGE_AMOUNT_MIN),
|
|
3793
|
+
max: unref(CUSTOM_RECHARGE_AMOUNT_MAX),
|
|
3794
|
+
maxlength: "6",
|
|
3795
|
+
onInput: onCustomAmountInput
|
|
3796
|
+
}, null, 40, _hoisted_5$e)
|
|
3797
|
+
]),
|
|
3798
|
+
_cache[3] || (_cache[3] = createElementVNode(
|
|
3799
|
+
"view",
|
|
3800
|
+
{ class: "custom-amount-tip" },
|
|
3801
|
+
[
|
|
3802
|
+
createElementVNode("text", { class: "custom-amount-tip-icon" }, "i"),
|
|
3803
|
+
createElementVNode("text", null, "\u81EA\u5B9A\u4E49\u5927\u989D\u5145\u503C\u5C06\u6839\u636E\u5145\u503C\u91D1\u989D\u5373\u65F6\u6362\u7B97\u4E91\u8C46\uFF0C\u6BD4\u4F8B\u4E3A 1:1\u3002")
|
|
3804
|
+
],
|
|
3805
|
+
-1
|
|
3806
|
+
/* CACHED */
|
|
3807
|
+
))
|
|
3808
|
+
])) : createCommentVNode("v-if", true),
|
|
3682
3809
|
renderSlot(_ctx.$slots, "banner")
|
|
3683
3810
|
]),
|
|
3684
|
-
createElementVNode("view",
|
|
3685
|
-
createElementVNode("view",
|
|
3811
|
+
createElementVNode("view", _hoisted_6$a, [
|
|
3812
|
+
createElementVNode("view", _hoisted_7$7, [
|
|
3686
3813
|
createVNode(_component_nut_checkbox, {
|
|
3687
3814
|
modelValue: state.agreed,
|
|
3688
3815
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.agreed = $event)
|
|
3689
3816
|
}, {
|
|
3690
3817
|
default: withCtx(() => [
|
|
3691
|
-
_cache[
|
|
3818
|
+
_cache[5] || (_cache[5] = createTextVNode(
|
|
3692
3819
|
"\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F",
|
|
3693
3820
|
-1
|
|
3694
3821
|
/* CACHED */
|
|
@@ -3696,7 +3823,7 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3696
3823
|
withDirectives((openBlock(), createElementBlock("a", {
|
|
3697
3824
|
class: "link inline",
|
|
3698
3825
|
onClick: onAgreementLinkClick
|
|
3699
|
-
}, [..._cache[
|
|
3826
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
3700
3827
|
createTextVNode(
|
|
3701
3828
|
"\u300A\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u670D\u52A1\u534F\u8BAE\u300B",
|
|
3702
3829
|
-1
|
|
@@ -3717,7 +3844,7 @@ var script$E = /* @__PURE__ */ defineComponent({
|
|
|
3717
3844
|
onClick: onPayClick,
|
|
3718
3845
|
class: "recharge-button"
|
|
3719
3846
|
}, {
|
|
3720
|
-
default: withCtx(() => [..._cache[
|
|
3847
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
3721
3848
|
createTextVNode(
|
|
3722
3849
|
"\u7ACB\u5373\u5145\u503C",
|
|
3723
3850
|
-1
|
|
@@ -4507,7 +4634,7 @@ var script$z = /* @__PURE__ */ defineComponent({
|
|
|
4507
4634
|
])
|
|
4508
4635
|
])
|
|
4509
4636
|
]),
|
|
4510
|
-
createCommentVNode(' <div class="line"></div>\n <div class="card-row">\n <div class="card-row-left desc">\u6743\u76CA\u4F7F\u7528\u65F6\u81EA\u52A8\u6263\u51CF\u4E91\u8C46</div>\n <div class="card-row-right">\n <div class="pay" v-track-click @click="gotoRecharge">\n <div>\u5145\u503C</div>\n <img\n class="pay-icon"\n src="https://cdn.ddjf.com/static/images/bpms-workBench/bean-right.png"\n />\n </div>\n </div>\n </div> ')
|
|
4637
|
+
createCommentVNode(' <div class="line"></div>\r\n <div class="card-row">\r\n <div class="card-row-left desc">\u6743\u76CA\u4F7F\u7528\u65F6\u81EA\u52A8\u6263\u51CF\u4E91\u8C46</div>\r\n <div class="card-row-right">\r\n <div class="pay" v-track-click @click="gotoRecharge">\r\n <div>\u5145\u503C</div>\r\n <img\r\n class="pay-icon"\r\n src="https://cdn.ddjf.com/static/images/bpms-workBench/bean-right.png"\r\n />\r\n </div>\r\n </div>\r\n </div> ')
|
|
4511
4638
|
])
|
|
4512
4639
|
]);
|
|
4513
4640
|
};
|
|
@@ -8188,7 +8315,7 @@ var script$e = /* @__PURE__ */ defineComponent({
|
|
|
8188
8315
|
class: normalizeClass(["tabContainer", { inH5: unref(isWeb)() }])
|
|
8189
8316
|
},
|
|
8190
8317
|
[
|
|
8191
|
-
createCommentVNode(' <ns-tabs\n v-model="state.tab"\n fill="#fff"\n square\n size="xl"\n style="height: 46px"\n @change="onTabChange"\n >\n <ns-tabs-item key="\u5168\u90E8" tab="\u5168\u90E8"></ns-tabs-item>\n <ns-tabs-item key="\u4E1A\u52A1\u6D88\u606F" tab="\u4E1A\u52A1\u6D88\u606F"></ns-tabs-item>\n <ns-tabs-item key="\u7CFB\u7EDF\u516C\u544A" tab="\u7CFB\u7EDF\u516C\u544A"></ns-tabs-item>\n <ns-tabs-item key="\u672A\u8BFB" tab="\u672A\u8BFB"></ns-tabs-item>\n </ns-tabs> '),
|
|
8318
|
+
createCommentVNode(' <ns-tabs\r\n v-model="state.tab"\r\n fill="#fff"\r\n square\r\n size="xl"\r\n style="height: 46px"\r\n @change="onTabChange"\r\n >\r\n <ns-tabs-item key="\u5168\u90E8" tab="\u5168\u90E8"></ns-tabs-item>\r\n <ns-tabs-item key="\u4E1A\u52A1\u6D88\u606F" tab="\u4E1A\u52A1\u6D88\u606F"></ns-tabs-item>\r\n <ns-tabs-item key="\u7CFB\u7EDF\u516C\u544A" tab="\u7CFB\u7EDF\u516C\u544A"></ns-tabs-item>\r\n <ns-tabs-item key="\u672A\u8BFB" tab="\u672A\u8BFB"></ns-tabs-item>\r\n </ns-tabs> '),
|
|
8192
8319
|
createVNode(unref(NsTabs), {
|
|
8193
8320
|
modelValue: state.tab,
|
|
8194
8321
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.tab = $event),
|
package/package.json
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@uxda/appkit",
|
|
3
|
-
"version": "4.3.
|
|
4
|
-
"description": "小程序应用开发包",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.ts",
|
|
7
|
-
"moduleResolution": "node",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"dev": "rollup -c rollup.config.mjs --watch",
|
|
10
|
-
"build": "rollup -c rollup.config.mjs"
|
|
11
|
-
},
|
|
12
|
-
"exports": {
|
|
13
|
-
".": "./dist/index.js",
|
|
14
|
-
"./appkit.css": "./dist/appkit.css"
|
|
15
|
-
},
|
|
16
|
-
"browserslist": [
|
|
17
|
-
"last 3 versions",
|
|
18
|
-
"Android >= 4.1",
|
|
19
|
-
"ios >= 8"
|
|
20
|
-
],
|
|
21
|
-
"author": "",
|
|
22
|
-
"dependencies": {
|
|
23
|
-
"@babel/runtime": "^7.28.4",
|
|
24
|
-
"@nutui/auto-import-resolver": "^1.0.0",
|
|
25
|
-
"@nutui/icons-vue-taro": "^0.0.9",
|
|
26
|
-
"@nutui/nutui-taro": "^4.3.14",
|
|
27
|
-
"@tarojs/components": "^4.1.7",
|
|
28
|
-
"@tarojs/helper": "^4.1.7",
|
|
29
|
-
"@tarojs/plugin-framework-vue3": "^4.1.7",
|
|
30
|
-
"@tarojs/plugin-html": "^4.1.7",
|
|
31
|
-
"@tarojs/plugin-platform-weapp": "^4.1.7",
|
|
32
|
-
"@tarojs/router": "^4.1.7",
|
|
33
|
-
"@tarojs/runtime": "^4.1.7",
|
|
34
|
-
"@tarojs/shared": "^4.1.7",
|
|
35
|
-
"@tarojs/taro": "^4.1.7",
|
|
36
|
-
"@types/wechat-miniprogram": "^3.4.7",
|
|
37
|
-
"@uxda/nutshell": "^1.6.98",
|
|
38
|
-
"@vue-office/docx": "^1.6.3",
|
|
39
|
-
"@vue-office/pdf": "^2.0.10",
|
|
40
|
-
"dayjs": "^1.11.18",
|
|
41
|
-
"dsbridge": "^3.1.4",
|
|
42
|
-
"lodash-es": "^4.17.21",
|
|
43
|
-
"pako": "^2.1.0",
|
|
44
|
-
"validator": "^13.15.15",
|
|
45
|
-
"vue": "^3.5.22",
|
|
46
|
-
"vue-demi": "^0.14.10"
|
|
47
|
-
},
|
|
48
|
-
"devDependencies": {
|
|
49
|
-
"@babel/core": "^7.28.4",
|
|
50
|
-
"@tarojs/cli": "^4.1.7",
|
|
51
|
-
"@tarojs/taro-loader": "^4.1.7",
|
|
52
|
-
"@tarojs/webpack5-runner": "^4.1.7",
|
|
53
|
-
"@types/node": "^24.5.2",
|
|
54
|
-
"@types/webpack-env": "^1.13.6",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "^8.44.1",
|
|
56
|
-
"@typescript-eslint/parser": "^8.44.1",
|
|
57
|
-
"@vue/babel-plugin-jsx": "^1.0.6",
|
|
58
|
-
"@vue/compiler-sfc": "^3.5.22",
|
|
59
|
-
"babel-preset-taro": "^4.0.4",
|
|
60
|
-
"css-loader": "^7.1.2",
|
|
61
|
-
"eslint": "^9.9.0",
|
|
62
|
-
"eslint-config-taro": "^4.0.4",
|
|
63
|
-
"eslint-plugin-vue": "^10.5.0",
|
|
64
|
-
"postcss": "^8.5.6",
|
|
65
|
-
"postcss-import": "^16.1.1",
|
|
66
|
-
"rollup": "^4.6.1",
|
|
67
|
-
"rollup-plugin-css-only": "^4.5.5",
|
|
68
|
-
"rollup-plugin-dts": "^6.1.0",
|
|
69
|
-
"rollup-plugin-esbuild": "^6.1.0",
|
|
70
|
-
"rollup-plugin-postcss": "^4.0.2",
|
|
71
|
-
"rollup-plugin-scss": "^4.0.0",
|
|
72
|
-
"rollup-plugin-visualizer": "^6.0.3",
|
|
73
|
-
"rollup-plugin-vue": "^6.0.0",
|
|
74
|
-
"style-loader": "^4.0.0",
|
|
75
|
-
"stylelint": "^16.8.2",
|
|
76
|
-
"ts-node": "^10.9.1",
|
|
77
|
-
"typescript": "^5.0.0",
|
|
78
|
-
"unplugin-auto-import": "^20.2.0",
|
|
79
|
-
"unplugin-vue-components": "^29.1.0",
|
|
80
|
-
"webpack": "^5.78.0"
|
|
81
|
-
}
|
|
82
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@uxda/appkit",
|
|
3
|
+
"version": "4.3.30",
|
|
4
|
+
"description": "小程序应用开发包",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.ts",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"dev": "rollup -c rollup.config.mjs --watch",
|
|
10
|
+
"build": "rollup -c rollup.config.mjs"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": "./dist/index.js",
|
|
14
|
+
"./appkit.css": "./dist/appkit.css"
|
|
15
|
+
},
|
|
16
|
+
"browserslist": [
|
|
17
|
+
"last 3 versions",
|
|
18
|
+
"Android >= 4.1",
|
|
19
|
+
"ios >= 8"
|
|
20
|
+
],
|
|
21
|
+
"author": "",
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@babel/runtime": "^7.28.4",
|
|
24
|
+
"@nutui/auto-import-resolver": "^1.0.0",
|
|
25
|
+
"@nutui/icons-vue-taro": "^0.0.9",
|
|
26
|
+
"@nutui/nutui-taro": "^4.3.14",
|
|
27
|
+
"@tarojs/components": "^4.1.7",
|
|
28
|
+
"@tarojs/helper": "^4.1.7",
|
|
29
|
+
"@tarojs/plugin-framework-vue3": "^4.1.7",
|
|
30
|
+
"@tarojs/plugin-html": "^4.1.7",
|
|
31
|
+
"@tarojs/plugin-platform-weapp": "^4.1.7",
|
|
32
|
+
"@tarojs/router": "^4.1.7",
|
|
33
|
+
"@tarojs/runtime": "^4.1.7",
|
|
34
|
+
"@tarojs/shared": "^4.1.7",
|
|
35
|
+
"@tarojs/taro": "^4.1.7",
|
|
36
|
+
"@types/wechat-miniprogram": "^3.4.7",
|
|
37
|
+
"@uxda/nutshell": "^1.6.98",
|
|
38
|
+
"@vue-office/docx": "^1.6.3",
|
|
39
|
+
"@vue-office/pdf": "^2.0.10",
|
|
40
|
+
"dayjs": "^1.11.18",
|
|
41
|
+
"dsbridge": "^3.1.4",
|
|
42
|
+
"lodash-es": "^4.17.21",
|
|
43
|
+
"pako": "^2.1.0",
|
|
44
|
+
"validator": "^13.15.15",
|
|
45
|
+
"vue": "^3.5.22",
|
|
46
|
+
"vue-demi": "^0.14.10"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@babel/core": "^7.28.4",
|
|
50
|
+
"@tarojs/cli": "^4.1.7",
|
|
51
|
+
"@tarojs/taro-loader": "^4.1.7",
|
|
52
|
+
"@tarojs/webpack5-runner": "^4.1.7",
|
|
53
|
+
"@types/node": "^24.5.2",
|
|
54
|
+
"@types/webpack-env": "^1.13.6",
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^8.44.1",
|
|
56
|
+
"@typescript-eslint/parser": "^8.44.1",
|
|
57
|
+
"@vue/babel-plugin-jsx": "^1.0.6",
|
|
58
|
+
"@vue/compiler-sfc": "^3.5.22",
|
|
59
|
+
"babel-preset-taro": "^4.0.4",
|
|
60
|
+
"css-loader": "^7.1.2",
|
|
61
|
+
"eslint": "^9.9.0",
|
|
62
|
+
"eslint-config-taro": "^4.0.4",
|
|
63
|
+
"eslint-plugin-vue": "^10.5.0",
|
|
64
|
+
"postcss": "^8.5.6",
|
|
65
|
+
"postcss-import": "^16.1.1",
|
|
66
|
+
"rollup": "^4.6.1",
|
|
67
|
+
"rollup-plugin-css-only": "^4.5.5",
|
|
68
|
+
"rollup-plugin-dts": "^6.1.0",
|
|
69
|
+
"rollup-plugin-esbuild": "^6.1.0",
|
|
70
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
71
|
+
"rollup-plugin-scss": "^4.0.0",
|
|
72
|
+
"rollup-plugin-visualizer": "^6.0.3",
|
|
73
|
+
"rollup-plugin-vue": "^6.0.0",
|
|
74
|
+
"style-loader": "^4.0.0",
|
|
75
|
+
"stylelint": "^16.8.2",
|
|
76
|
+
"ts-node": "^10.9.1",
|
|
77
|
+
"typescript": "^5.0.0",
|
|
78
|
+
"unplugin-auto-import": "^20.2.0",
|
|
79
|
+
"unplugin-vue-components": "^29.1.0",
|
|
80
|
+
"webpack": "^5.78.0"
|
|
81
|
+
}
|
|
82
|
+
}
|