@uxda/appkit 4.0.3 → 4.0.14

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 (116) hide show
  1. package/.eslintrc.mjs +7 -7
  2. package/README.md +187 -187
  3. package/babel.config.js +12 -12
  4. package/package.json +75 -80
  5. package/project.config.json +15 -15
  6. package/project.tt.json +13 -13
  7. package/rollup.config.mjs +56 -56
  8. package/src/Appkit.ts +65 -65
  9. package/src/balance/api/endpoints.ts +126 -126
  10. package/src/balance/api/index.ts +82 -82
  11. package/src/balance/components/AccountView.vue +748 -748
  12. package/src/balance/components/BalanceCard.vue +205 -209
  13. package/src/balance/components/BalanceReminder.vue +85 -85
  14. package/src/balance/components/ConsumptionFilter.vue +218 -218
  15. package/src/balance/components/ConsumptionRules.vue +68 -68
  16. package/src/balance/components/DateFilter.vue +227 -226
  17. package/src/balance/components/DateRange.vue +78 -0
  18. package/src/balance/components/ListFilter.vue +64 -0
  19. package/src/balance/components/ListFilterPicker.vue +187 -0
  20. package/src/balance/components/SecondBalance.vue +71 -71
  21. package/src/balance/components/Tip.vue +45 -45
  22. package/src/balance/components/index.ts +13 -9
  23. package/src/balance/types.ts +91 -90
  24. package/src/components/bt-cropper/index.vue +774 -774
  25. package/src/components/bt-cropper/utils/calcCropper.js +42 -42
  26. package/src/components/bt-cropper/utils/calcImagePosition.js +23 -23
  27. package/src/components/bt-cropper/utils/calcImageSize.js +37 -37
  28. package/src/components/bt-cropper/utils/calcPointDistance.js +12 -12
  29. package/src/components/bt-cropper/utils/calcRightAndBottom.js +7 -7
  30. package/src/components/bt-cropper/utils/ratio.js +3 -3
  31. package/src/components/bt-cropper/utils/tools.js +25 -25
  32. package/src/components/dd-area/index.vue +225 -225
  33. package/src/components/dd-icon/doc.md +21 -21
  34. package/src/components/dd-icon/index.vue +23 -23
  35. package/src/components/dd-notice-bar/index.vue +78 -78
  36. package/src/components/dd-search/doc.md +34 -34
  37. package/src/components/dd-search/index.vue +168 -168
  38. package/src/components/dd-selector/index.vue +124 -124
  39. package/src/components/dd-skeleton/doc.md +19 -19
  40. package/src/components/dd-skeleton/index.vue +36 -36
  41. package/src/components/ocr-id/index.vue +114 -114
  42. package/src/components/ocr-id/types.d.ts +12 -12
  43. package/src/global.ts +6 -6
  44. package/src/index.ts +89 -89
  45. package/src/main.scss +1 -1
  46. package/src/notice/api/endpoints.ts +17 -17
  47. package/src/notice/api/index.ts +82 -82
  48. package/src/notice/components/NoticeBanner.vue +243 -243
  49. package/src/notice/components/NoticeEntry.vue +99 -99
  50. package/src/notice/components/NoticeList.vue +315 -315
  51. package/src/notice/components/NoticePopup.vue +161 -161
  52. package/src/notice/components/index.ts +5 -5
  53. package/src/notice/components/useCommonList.ts +86 -86
  54. package/src/notice/components/useNotice.ts +35 -35
  55. package/src/notice/index.ts +1 -1
  56. package/src/notice/types.ts +25 -25
  57. package/src/payment/api/config.ts +7 -7
  58. package/src/payment/api/endpoints.ts +103 -103
  59. package/src/payment/api/index.ts +71 -71
  60. package/src/payment/components/AmountPicker.vue +93 -93
  61. package/src/payment/components/RechargeResult.vue +69 -69
  62. package/src/payment/components/RechargeView.vue +154 -154
  63. package/src/payment/components/RightsPicker.vue +105 -105
  64. package/src/payment/components/TradeView.vue +298 -298
  65. package/src/payment/components/UserAgreement.vue +234 -234
  66. package/src/payment/components/index.ts +22 -22
  67. package/src/payment/index.ts +5 -5
  68. package/src/payment/services/index.ts +16 -16
  69. package/src/payment/services/invoke-recharge.ts +25 -25
  70. package/src/payment/services/request-payment.ts +58 -58
  71. package/src/payment/types.ts +28 -28
  72. package/src/register/components/SelfRegistration.vue +254 -254
  73. package/src/register/components/index.ts +2 -2
  74. package/src/shared/components/AppDrawer.vue +58 -58
  75. package/src/shared/components/AppVerify.vue +98 -0
  76. package/src/shared/components/DeviceVersion.vue +68 -68
  77. package/src/shared/components/EmptyView.vue +33 -33
  78. package/src/shared/components/OcrIcon.vue +119 -0
  79. package/src/shared/components/PageHeader.vue +79 -79
  80. package/src/shared/components/index.ts +7 -5
  81. package/src/shared/composables/index.ts +7 -5
  82. package/src/shared/composables/useCountdown.ts +46 -46
  83. package/src/shared/composables/useCrypto.ts +76 -0
  84. package/src/shared/composables/useDragBox.ts +97 -97
  85. package/src/shared/composables/useEncode.ts +43 -43
  86. package/src/shared/composables/useSafeArea.ts +46 -46
  87. package/src/shared/composables/useTabbar.ts +24 -24
  88. package/src/shared/composables/useUpload.ts +55 -0
  89. package/src/shared/composables/useValidator.ts +31 -31
  90. package/src/shared/http/Http.ts +136 -136
  91. package/src/shared/http/index.ts +1 -1
  92. package/src/shared/http/types.ts +157 -157
  93. package/src/shared/index.ts +3 -3
  94. package/src/shared/weixin/payment.ts +38 -38
  95. package/src/styles/fonts.scss +2 -2
  96. package/src/styles/vars.scss +3 -3
  97. package/src/user/api/endpoints.ts +17 -17
  98. package/src/user/api/index.ts +87 -87
  99. package/src/user/components/LoginSetting.vue +114 -114
  100. package/src/user/components/UserBinding.vue +307 -307
  101. package/src/user/components/UserBindingSuccess.vue +80 -80
  102. package/src/user/components/UserEntry.vue +137 -142
  103. package/src/user/components/UserFeedback.vue +440 -440
  104. package/src/user/components/UserFeedbackEntry.vue +192 -192
  105. package/src/user/components/UserHeadCrop.vue +65 -65
  106. package/src/user/components/UserInfo.vue +632 -632
  107. package/src/user/components/UserResourceEmpty.vue +75 -75
  108. package/src/user/components/index.ts +21 -21
  109. package/src/user/index.ts +1 -1
  110. package/tsconfig.json +30 -30
  111. package/types/global.d.ts +21 -21
  112. package/types/vue.d.ts +10 -10
  113. package/dist/appkit.css +0 -2331
  114. package/dist/assets/asset-3B_CoPto +0 -1
  115. package/dist/assets/asset-DcH8Kg-2 +0 -1
  116. package/dist/index.js +0 -7176
@@ -1,80 +1,80 @@
1
- <template>
2
- <div class="user-binding-success">
3
- <img
4
- class="user-binding-success-icon"
5
- src="https://cdn.ddjf.com/static/images/customer-center/phone-icon.png"
6
- alt=""
7
- />
8
- <div class="user-binding-success-info">
9
- {{ showEncode ? encodePhone(params.mobile || '') : params.mobile }}
10
- </div>
11
- <div class="user-binding-success-sbtn" @click="showEncode = !showEncode">
12
- {{ showEncode ? '显示' : '隐藏' }}
13
- </div>
14
- <nut-button class="user-binding-success-btn" type="primary" @click="toBinding"
15
- >换绑手机号码</nut-button
16
- >
17
- </div>
18
- </template>
19
-
20
- <script lang="ts" setup>
21
- import { onMounted, ref } from 'vue'
22
- import { useRouter } from '@tarojs/taro'
23
- import Taro from '@tarojs/taro'
24
- import { useEncode } from '../../shared/composables/useEncode'
25
-
26
- const { params } = useRouter()
27
- const { encodePhone } = useEncode()
28
-
29
- onMounted(() => {
30
- if (!params.mobile) {
31
- return Taro.showToast({ title: '路径缺少mobile参数', icon: 'none' })
32
- }
33
- })
34
-
35
- const showEncode = ref(true)
36
-
37
- // 前往换绑手机号
38
- function toBinding() {
39
- emits('binding', params.mobile)
40
- }
41
-
42
- // 父组件事件
43
- const emits = defineEmits(['binding'])
44
- </script>
45
-
46
- <style lang="scss">
47
- .user-binding-success {
48
- height: 100vh;
49
- display: flex;
50
- flex-direction: column;
51
- align-items: center;
52
- box-sizing: border-box;
53
- background: #fff;
54
- &-icon {
55
- margin-top: 80px;
56
- width: 50px;
57
- height: 50px;
58
- margin-bottom: 30px;
59
- }
60
- &-info {
61
- font-size: 30px;
62
- color: #000000;
63
- font-weight: bold;
64
- margin-bottom: 15px;
65
- }
66
- &-sbtn {
67
- padding: 0 15px;
68
- color: #017fff;
69
- font-size: 16px;
70
- }
71
- &-btn {
72
- margin-top: 80px;
73
- width: 296px;
74
- font-size: 16px;
75
- background: var(--app-primary-color, #017fff);
76
- height: 40px;
77
- line-height: 38px;
78
- }
79
- }
80
- </style>
1
+ <template>
2
+ <div class="user-binding-success">
3
+ <img
4
+ class="user-binding-success-icon"
5
+ src="https://cdn.ddjf.com/static/images/customer-center/phone-icon.png"
6
+ alt=""
7
+ />
8
+ <div class="user-binding-success-info">
9
+ {{ showEncode ? encodePhone(params.mobile || '') : params.mobile }}
10
+ </div>
11
+ <div class="user-binding-success-sbtn" @click="showEncode = !showEncode">
12
+ {{ showEncode ? '显示' : '隐藏' }}
13
+ </div>
14
+ <nut-button class="user-binding-success-btn" type="primary" @click="toBinding"
15
+ >换绑手机号码</nut-button
16
+ >
17
+ </div>
18
+ </template>
19
+
20
+ <script lang="ts" setup>
21
+ import { onMounted, ref } from 'vue'
22
+ import { useRouter } from '@tarojs/taro'
23
+ import Taro from '@tarojs/taro'
24
+ import { useEncode } from '../../shared/composables/useEncode'
25
+
26
+ const { params } = useRouter()
27
+ const { encodePhone } = useEncode()
28
+
29
+ onMounted(() => {
30
+ if (!params.mobile) {
31
+ return Taro.showToast({ title: '路径缺少mobile参数', icon: 'none' })
32
+ }
33
+ })
34
+
35
+ const showEncode = ref(true)
36
+
37
+ // 前往换绑手机号
38
+ function toBinding() {
39
+ emits('binding', params.mobile)
40
+ }
41
+
42
+ // 父组件事件
43
+ const emits = defineEmits(['binding'])
44
+ </script>
45
+
46
+ <style lang="scss">
47
+ .user-binding-success {
48
+ height: 100vh;
49
+ display: flex;
50
+ flex-direction: column;
51
+ align-items: center;
52
+ box-sizing: border-box;
53
+ background: #fff;
54
+ &-icon {
55
+ margin-top: 80px;
56
+ width: 50px;
57
+ height: 50px;
58
+ margin-bottom: 30px;
59
+ }
60
+ &-info {
61
+ font-size: 30px;
62
+ color: #000000;
63
+ font-weight: bold;
64
+ margin-bottom: 15px;
65
+ }
66
+ &-sbtn {
67
+ padding: 0 15px;
68
+ color: #017fff;
69
+ font-size: 16px;
70
+ }
71
+ &-btn {
72
+ margin-top: 80px;
73
+ width: 296px;
74
+ font-size: 16px;
75
+ background: var(--app-primary-color, #017fff);
76
+ height: 40px;
77
+ line-height: 38px;
78
+ }
79
+ }
80
+ </style>
@@ -1,142 +1,137 @@
1
- <template>
2
- <div class="user-entry">
3
- <div class="user-entry-head">
4
- <img
5
- class="user-entry-head-img"
6
- @click="toUser"
7
- mode="aspectFit"
8
- v-if="avatar"
9
- :src="avatar"
10
- alt=""
11
- />
12
- <img
13
- class="user-entry-head-img"
14
- mode="aspectFit"
15
- @click="toUser1"
16
- v-else
17
- src="https://cdn.ddjf.com/static/images/wx-yunservice/account-head.png"
18
- alt=""
19
- />
20
- </div>
21
- <div class="user-entry-bd">
22
- <div v-if="!mobile" class="user-entry-bd-bigtxt" @click="toLogin">
23
- 请登录
24
- <img
25
- class="user-entry-bd-bigtxt-icon"
26
- mode="aspectFit"
27
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA0MCA0MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4wMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDQwLjM1MTZINDBWMC4zNTE1NjJIMFY0MC4zNTE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNCA4LjM1MTU2TDI2IDIwLjM1MTZMMTQgMzIuMzUxNiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4wMSIvPgo8cGF0aCBkPSJNMTQgOC4zNTE1NkwyNiAyMC4zNTE2TDE0IDMyLjM1MTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg=="
28
- alt=""
29
- />
30
- </div>
31
- <template v-else>
32
- <div @click="toUser" class="user-entry-bd-txt">
33
- {{ name }}
34
- <img
35
- style="width: 14px; height: 14px; margin-left: 2px"
36
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExLjA4MzUgN0wxOC4wODM1IDE0TDExLjA4MzUgMjEiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS43NSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo="
37
- alt=""
38
- />
39
- </div>
40
- <div @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
41
- </template>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script lang="ts" setup>
47
- import { useEncode } from '../../shared/composables/useEncode'
48
-
49
- const props = withDefaults(
50
- defineProps<{
51
- avatar?: string
52
- mobile?: string
53
- name?: string
54
- }>(),
55
- {
56
- avatar: '',
57
- mobile: '',
58
- name: '',
59
- }
60
- )
61
-
62
- const { encodePhone } = useEncode()
63
-
64
- // 登录后,点击前往个人资料页
65
- function toUser() {
66
- emits('jump')
67
- }
68
-
69
- function toUser1() {
70
- props.mobile && toUser()
71
- }
72
-
73
- // 未登录时,点击前往登录
74
- function toLogin() {
75
- emits('login')
76
- }
77
-
78
- // 父组件事件
79
- const emits = defineEmits(['jump', 'login'])
80
- </script>
81
-
82
- <style lang="scss">
83
- .user-entry {
84
- position: absolute;
85
- left: 0;
86
- top: 130px;
87
- transform: translateY(-50%);
88
- display: flex;
89
- padding: 0 22px;
90
- align-items: center;
91
- width: 100%;
92
- &-head {
93
- position: relative;
94
- width: 62px;
95
- height: 62px;
96
- margin-right: 8px;
97
- &-img {
98
- width: 100%;
99
- height: 100%;
100
- overflow: hidden;
101
- border-radius: 50%;
102
- border: 1.5px solid #fff;
103
- }
104
- &-icon {
105
- position: absolute;
106
- width: 15px;
107
- height: 15px;
108
- bottom: 2px;
109
- left: 48px;
110
- background: url('https://cdn.ddjf.com/static/images/wx-yunservice/edit-icon.png') center;
111
- background-size: cover;
112
- }
113
- }
114
- &-bd {
115
- color: #fff;
116
- &-bigtxt {
117
- display: flex;
118
- align-items: center;
119
- font-size: 20px;
120
- font-weight: 500;
121
- line-height: 28px;
122
- margin-left: 10px;
123
- &-icon {
124
- width: 20px;
125
- }
126
- }
127
- &-txt {
128
- font-size: 20px;
129
- font-weight: 500;
130
- line-height: 25px;
131
- margin-bottom: 5px;
132
- display: flex;
133
- align-items: center;
134
- }
135
- &-smalltxt {
136
- margin-top: 0;
137
- font-size: 15px;
138
- line-height: 21px;
139
- }
140
- }
141
- }
142
- </style>
1
+ <template>
2
+ <div class="user-entry">
3
+ <div class="user-entry-head">
4
+ <img
5
+ class="user-entry-head-img"
6
+ @click="toUser"
7
+ mode="aspectFit"
8
+ v-if="avatar"
9
+ :src="avatar"
10
+ alt=""
11
+ />
12
+ <img
13
+ class="user-entry-head-img"
14
+ mode="aspectFit"
15
+ @click="toUser1"
16
+ v-else
17
+ src="https://cdn.ddjf.com/static/images/wx-yunservice/account-head.png"
18
+ alt=""
19
+ />
20
+ </div>
21
+ <div class="user-entry-bd">
22
+ <div v-if="!mobile" class="user-entry-bd-bigtxt" @click="toLogin">
23
+ 请登录
24
+ <span class="user-entry-bd-arrow">></span>
25
+ </div>
26
+ <template v-else>
27
+ <div @click="toUser" class="user-entry-bd-txt">
28
+ {{ name }}
29
+ <span class="user-entry-bd-arrow">></span>
30
+ </div>
31
+ <div @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
32
+ </template>
33
+ </div>
34
+ </div>
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import { useEncode } from '../../shared/composables/useEncode'
39
+
40
+ const props = withDefaults(
41
+ defineProps<{
42
+ avatar?: string
43
+ mobile?: string
44
+ name?: string
45
+ }>(),
46
+ {
47
+ avatar: '',
48
+ mobile: '',
49
+ name: '',
50
+ }
51
+ )
52
+
53
+ const { encodePhone } = useEncode()
54
+
55
+ // 登录后,点击前往个人资料页
56
+ function toUser() {
57
+ emits('jump')
58
+ }
59
+
60
+ function toUser1() {
61
+ props.mobile && toUser()
62
+ }
63
+
64
+ // 未登录时,点击前往登录
65
+ function toLogin() {
66
+ emits('login')
67
+ }
68
+
69
+ // 父组件事件
70
+ const emits = defineEmits(['jump', 'login'])
71
+ </script>
72
+
73
+ <style lang="scss">
74
+ .user-entry {
75
+ position: absolute;
76
+ left: 0;
77
+ top: 130px;
78
+ transform: translateY(-50%);
79
+ display: flex;
80
+ padding: 0 22px;
81
+ align-items: center;
82
+ width: 100%;
83
+ &-head {
84
+ position: relative;
85
+ width: 62px;
86
+ height: 62px;
87
+ margin-right: 8px;
88
+ &-img {
89
+ width: 100%;
90
+ height: 100%;
91
+ overflow: hidden;
92
+ border-radius: 50%;
93
+ border: 1.5px solid #fff;
94
+ }
95
+ &-icon {
96
+ position: absolute;
97
+ width: 15px;
98
+ height: 15px;
99
+ bottom: 2px;
100
+ left: 48px;
101
+ background: url('https://cdn.ddjf.com/static/images/wx-yunservice/edit-icon.png') center;
102
+ background-size: cover;
103
+ }
104
+ }
105
+ &-bd {
106
+ color: #fff;
107
+ &-bigtxt {
108
+ display: flex;
109
+ align-items: center;
110
+ font-size: 20px;
111
+ font-weight: 500;
112
+ line-height: 28px;
113
+ margin-left: 10px;
114
+ &-icon {
115
+ width: 20px;
116
+ }
117
+ }
118
+ &-txt {
119
+ font-size: 20px;
120
+ font-weight: 500;
121
+ line-height: 25px;
122
+ margin-bottom: 5px;
123
+ display: flex;
124
+ align-items: center;
125
+ }
126
+ &-smalltxt {
127
+ margin-top: 0;
128
+ font-size: 15px;
129
+ line-height: 21px;
130
+ }
131
+ &-arrow {
132
+ font-size: 12px;
133
+ margin-left: 8px;
134
+ }
135
+ }
136
+ }
137
+ </style>