@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,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, { showToast } 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 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, { showToast } 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 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,139 +1,139 @@
1
- <template>
2
- <div class="user-entry">
3
- <div class="user-entry-head">
4
- <img class="user-entry-head-img" @click="toUser" mode="aspectFit" v-if="avatar" :src="avatar" alt="" />
5
- <img class="user-entry-head-img" mode="aspectFit" @click="toUser1" v-else
6
- src="https://cdn.ddjf.com/static/images/wx-yunservice/account-head.png" alt="" />
7
- </div>
8
- <div class="user-entry-bd">
9
- <div v-if="!mobile" class="user-entry-bd-bigtxt" @click="toLogin">
10
- 请登录
11
- <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
12
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
13
- </div>
14
- <template v-else>
15
- <div @click="toUser" class="user-entry-bd-txt">
16
- {{ name }}
17
- <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
18
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
19
- </div>
20
- <div @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
21
- </template>
22
- </div>
23
- </div>
24
- </template>
25
-
26
- <script lang="ts" setup>
27
- import { useEncode } from '../../shared/composables/useEncode'
28
-
29
- const props = withDefaults(
30
- defineProps<{
31
- avatar?: string
32
- mobile?: string
33
- name?: string
34
- }>(),
35
- {
36
- avatar: '',
37
- mobile: '',
38
- name: '',
39
- }
40
- )
41
-
42
- const { encodePhone } = useEncode()
43
-
44
- // 登录后,点击前往个人资料页
45
- function toUser() {
46
- emits('jump')
47
- }
48
-
49
- function toUser1() {
50
- props.mobile && toUser()
51
- }
52
-
53
- // 未登录时,点击前往登录
54
- function toLogin() {
55
- emits('login')
56
- }
57
-
58
- // 父组件事件
59
- const emits = defineEmits(['jump', 'login'])
60
- </script>
61
-
62
- <style lang="scss">
63
- .user-entry {
64
- position: absolute;
65
- left: 0;
66
- top: 125px;
67
- transform: translateY(-50%);
68
- display: flex;
69
- padding: 0 22px;
70
- align-items: center;
71
- width: 100%;
72
-
73
- &-head {
74
- position: relative;
75
- width: 62px;
76
- height: 62px;
77
- margin-right: 8px;
78
-
79
- &-img {
80
- width: 100%;
81
- height: 100%;
82
- overflow: hidden;
83
- border-radius: 50%;
84
- border: 1.5px solid #fff;
85
- }
86
-
87
- &-icon {
88
- position: absolute;
89
- width: 15px;
90
- height: 15px;
91
- bottom: 2px;
92
- left: 48px;
93
- background: url('https://cdn.ddjf.com/static/images/wx-yunservice/edit-icon.png') center;
94
- background-size: cover;
95
- }
96
- }
97
-
98
- &-bd {
99
- color: #fff;
100
-
101
- &-bigtxt {
102
- display: flex;
103
- align-items: center;
104
- font-size: 20px;
105
- font-weight: 500;
106
- line-height: 28px;
107
- margin-left: 10px;
108
-
109
- &-icon {
110
- width: 20px;
111
- }
112
- }
113
-
114
- &-txt {
115
- font-size: 20px;
116
- font-weight: 500;
117
- line-height: 25px;
118
- margin-bottom: 5px;
119
- display: flex;
120
- align-items: center;
121
- }
122
-
123
- &-smalltxt {
124
- margin-top: 0;
125
- font-size: 15px;
126
- line-height: 21px;
127
- }
128
-
129
- &-arrow {
130
- width: 10px;
131
- height: 10px;
132
- margin-left: 5px;
133
- display: flex;
134
- justify-content: center;
135
- align-items: center;
136
- }
137
- }
138
- }
139
- </style>
1
+ <template>
2
+ <div class="user-entry">
3
+ <div class="user-entry-head">
4
+ <img class="user-entry-head-img" @click="toUser" mode="aspectFit" v-if="avatar" :src="avatar" alt="" />
5
+ <img class="user-entry-head-img" mode="aspectFit" @click="toUser1" v-else
6
+ src="https://cdn.ddjf.com/static/images/wx-yunservice/account-head.png" alt="" />
7
+ </div>
8
+ <div class="user-entry-bd">
9
+ <div v-if="!mobile" class="user-entry-bd-bigtxt" @click="toLogin">
10
+ 请登录
11
+ <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
12
+ src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
13
+ </div>
14
+ <template v-else>
15
+ <div @click="toUser" class="user-entry-bd-txt">
16
+ {{ name }}
17
+ <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
18
+ src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
19
+ </div>
20
+ <div @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
21
+ </template>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script lang="ts" setup>
27
+ import { useEncode } from '../../shared/composables/useEncode'
28
+
29
+ const props = withDefaults(
30
+ defineProps<{
31
+ avatar?: string
32
+ mobile?: string
33
+ name?: string
34
+ }>(),
35
+ {
36
+ avatar: '',
37
+ mobile: '',
38
+ name: '',
39
+ }
40
+ )
41
+
42
+ const { encodePhone } = useEncode()
43
+
44
+ // 登录后,点击前往个人资料页
45
+ function toUser() {
46
+ emits('jump')
47
+ }
48
+
49
+ function toUser1() {
50
+ props.mobile && toUser()
51
+ }
52
+
53
+ // 未登录时,点击前往登录
54
+ function toLogin() {
55
+ emits('login')
56
+ }
57
+
58
+ // 父组件事件
59
+ const emits = defineEmits(['jump', 'login'])
60
+ </script>
61
+
62
+ <style lang="scss">
63
+ .user-entry {
64
+ position: absolute;
65
+ left: 0;
66
+ top: 125px;
67
+ transform: translateY(-50%);
68
+ display: flex;
69
+ padding: 0 22px;
70
+ align-items: center;
71
+ width: 100%;
72
+
73
+ &-head {
74
+ position: relative;
75
+ width: 62px;
76
+ height: 62px;
77
+ margin-right: 8px;
78
+
79
+ &-img {
80
+ width: 100%;
81
+ height: 100%;
82
+ overflow: hidden;
83
+ border-radius: 50%;
84
+ border: 1.5px solid #fff;
85
+ }
86
+
87
+ &-icon {
88
+ position: absolute;
89
+ width: 15px;
90
+ height: 15px;
91
+ bottom: 2px;
92
+ left: 48px;
93
+ background: url('https://cdn.ddjf.com/static/images/wx-yunservice/edit-icon.png') center;
94
+ background-size: cover;
95
+ }
96
+ }
97
+
98
+ &-bd {
99
+ color: #fff;
100
+
101
+ &-bigtxt {
102
+ display: flex;
103
+ align-items: center;
104
+ font-size: 20px;
105
+ font-weight: 500;
106
+ line-height: 28px;
107
+ margin-left: 10px;
108
+
109
+ &-icon {
110
+ width: 20px;
111
+ }
112
+ }
113
+
114
+ &-txt {
115
+ font-size: 20px;
116
+ font-weight: 500;
117
+ line-height: 25px;
118
+ margin-bottom: 5px;
119
+ display: flex;
120
+ align-items: center;
121
+ }
122
+
123
+ &-smalltxt {
124
+ margin-top: 0;
125
+ font-size: 15px;
126
+ line-height: 21px;
127
+ }
128
+
129
+ &-arrow {
130
+ width: 10px;
131
+ height: 10px;
132
+ margin-left: 5px;
133
+ display: flex;
134
+ justify-content: center;
135
+ align-items: center;
136
+ }
137
+ }
138
+ }
139
+ </style>