@uxda/appkit 4.0.3 → 4.0.12

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 (114) 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 +144 -5
  5. package/dist/index.js +730 -248
  6. package/package.json +75 -80
  7. package/project.config.json +15 -15
  8. package/project.tt.json +13 -13
  9. package/rollup.config.mjs +56 -56
  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 +205 -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 +226 -226
  19. package/src/balance/components/DateRange.vue +62 -0
  20. package/src/balance/components/ListFilter.vue +40 -0
  21. package/src/balance/components/ListFilterPicker.vue +195 -0
  22. package/src/balance/components/SecondBalance.vue +71 -71
  23. package/src/balance/components/Tip.vue +45 -45
  24. package/src/balance/components/index.ts +13 -9
  25. package/src/balance/types.ts +91 -90
  26. package/src/components/bt-cropper/index.vue +774 -774
  27. package/src/components/bt-cropper/utils/calcCropper.js +42 -42
  28. package/src/components/bt-cropper/utils/calcImagePosition.js +23 -23
  29. package/src/components/bt-cropper/utils/calcImageSize.js +37 -37
  30. package/src/components/bt-cropper/utils/calcPointDistance.js +12 -12
  31. package/src/components/bt-cropper/utils/calcRightAndBottom.js +7 -7
  32. package/src/components/bt-cropper/utils/ratio.js +3 -3
  33. package/src/components/bt-cropper/utils/tools.js +25 -25
  34. package/src/components/dd-area/index.vue +225 -225
  35. package/src/components/dd-icon/doc.md +21 -21
  36. package/src/components/dd-icon/index.vue +23 -23
  37. package/src/components/dd-notice-bar/index.vue +78 -78
  38. package/src/components/dd-search/doc.md +34 -34
  39. package/src/components/dd-search/index.vue +168 -168
  40. package/src/components/dd-selector/index.vue +124 -124
  41. package/src/components/dd-skeleton/doc.md +19 -19
  42. package/src/components/dd-skeleton/index.vue +36 -36
  43. package/src/components/ocr-id/index.vue +114 -114
  44. package/src/components/ocr-id/types.d.ts +12 -12
  45. package/src/global.ts +6 -6
  46. package/src/index.ts +89 -89
  47. package/src/main.scss +1 -1
  48. package/src/notice/api/endpoints.ts +17 -17
  49. package/src/notice/api/index.ts +82 -82
  50. package/src/notice/components/NoticeBanner.vue +243 -243
  51. package/src/notice/components/NoticeEntry.vue +99 -99
  52. package/src/notice/components/NoticeList.vue +315 -315
  53. package/src/notice/components/NoticePopup.vue +161 -161
  54. package/src/notice/components/index.ts +5 -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 +103 -103
  61. package/src/payment/api/index.ts +71 -71
  62. package/src/payment/components/AmountPicker.vue +93 -93
  63. package/src/payment/components/RechargeResult.vue +69 -69
  64. package/src/payment/components/RechargeView.vue +154 -154
  65. package/src/payment/components/RightsPicker.vue +105 -105
  66. package/src/payment/components/TradeView.vue +298 -298
  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 +58 -58
  73. package/src/payment/types.ts +28 -28
  74. package/src/register/components/SelfRegistration.vue +254 -254
  75. package/src/register/components/index.ts +2 -2
  76. package/src/shared/components/AppDrawer.vue +58 -58
  77. package/src/shared/components/AppVerify.vue +84 -0
  78. package/src/shared/components/DeviceVersion.vue +68 -68
  79. package/src/shared/components/EmptyView.vue +33 -33
  80. package/src/shared/components/OcrIcon.vue +119 -0
  81. package/src/shared/components/PageHeader.vue +79 -79
  82. package/src/shared/components/index.ts +7 -5
  83. package/src/shared/composables/index.ts +6 -5
  84. package/src/shared/composables/useCountdown.ts +46 -46
  85. package/src/shared/composables/useDragBox.ts +97 -97
  86. package/src/shared/composables/useEncode.ts +43 -43
  87. package/src/shared/composables/useSafeArea.ts +46 -46
  88. package/src/shared/composables/useTabbar.ts +24 -24
  89. package/src/shared/composables/useUpload.ts +55 -0
  90. package/src/shared/composables/useValidator.ts +31 -31
  91. package/src/shared/http/Http.ts +136 -136
  92. package/src/shared/http/index.ts +1 -1
  93. package/src/shared/http/types.ts +157 -157
  94. package/src/shared/index.ts +3 -3
  95. package/src/shared/weixin/payment.ts +38 -38
  96. package/src/styles/fonts.scss +2 -2
  97. package/src/styles/vars.scss +3 -3
  98. package/src/user/api/endpoints.ts +17 -17
  99. package/src/user/api/index.ts +87 -87
  100. package/src/user/components/LoginSetting.vue +114 -114
  101. package/src/user/components/UserBinding.vue +307 -307
  102. package/src/user/components/UserBindingSuccess.vue +80 -80
  103. package/src/user/components/UserEntry.vue +142 -142
  104. package/src/user/components/UserFeedback.vue +440 -440
  105. package/src/user/components/UserFeedbackEntry.vue +192 -192
  106. package/src/user/components/UserHeadCrop.vue +65 -65
  107. package/src/user/components/UserInfo.vue +632 -632
  108. package/src/user/components/UserResourceEmpty.vue +75 -75
  109. package/src/user/components/index.ts +21 -21
  110. package/src/user/index.ts +1 -1
  111. package/tsconfig.json +30 -30
  112. package/types/global.d.ts +21 -21
  113. package/types/vue.d.ts +10 -10
  114. package/dist/assets/asset-3B_CoPto +0 -1
@@ -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,142 @@
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
+ <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>