@uxda/appkit 4.2.88 → 4.2.90

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 (35) hide show
  1. package/dist/index.js +704 -367
  2. package/package.json +1 -1
  3. package/src/Appkit.ts +5 -0
  4. package/src/balance/components/AccountView.vue +6 -6
  5. package/src/balance/components/BalanceCard.vue +2 -2
  6. package/src/balance/components/BalanceReminder.vue +1 -1
  7. package/src/balance/components/ConsumptionFilter.vue +1 -1
  8. package/src/balance/components/ConsumptionRules.vue +1 -1
  9. package/src/balance/components/DateFilter.vue +1 -1
  10. package/src/balance/components/DateRange.vue +1 -1
  11. package/src/balance/components/ListFilter.vue +1 -1
  12. package/src/balance/components/ListFilterPicker.vue +1 -1
  13. package/src/balance/components/PromoterCard.vue +5 -8
  14. package/src/components/dd-notice-bar/index.vue +2 -2
  15. package/src/index.ts +8 -0
  16. package/src/notice/components/NoticeBanner.vue +2 -2
  17. package/src/notice/components/NoticeList.vue +2 -2
  18. package/src/notice/components/NoticeList2.vue +4 -4
  19. package/src/notice/components/NoticePopup.vue +2 -2
  20. package/src/payment/components/RechargeResult.vue +1 -1
  21. package/src/payment/components/RechargeView.vue +2 -2
  22. package/src/payment/components/TradeView.vue +2 -2
  23. package/src/register/components/SelfRegistration.vue +1 -1
  24. package/src/scenarios/components/SharePoster.vue +2 -2
  25. package/src/shared/components/AppVerify.vue +3 -3
  26. package/src/shared/components/OcrBusinessLicense.vue +1 -1
  27. package/src/shared/components/OcrIcon.vue +1 -1
  28. package/src/shared/components/PageHeader.vue +1 -1
  29. package/src/user/components/UserAuth.vue +3 -3
  30. package/src/user/components/UserBinding.vue +4 -4
  31. package/src/user/components/UserBindingSuccess.vue +1 -1
  32. package/src/user/components/UserEntry.vue +5 -5
  33. package/src/user/components/UserFeedbackEntry.vue +3 -3
  34. package/src/user/components/UserHeadCrop.vue +2 -2
  35. package/src/user/components/UserInfo.vue +12 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxda/appkit",
3
- "version": "4.2.88",
3
+ "version": "4.2.90",
4
4
  "description": "小程序应用开发包",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.ts",
package/src/Appkit.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { PaymentParams, RechargeParams } from './payment/types'
2
2
  import { globalData } from './global'
3
+ import { Directive } from 'vue'
3
4
 
4
5
  /**
5
6
  * options for useAppKit
@@ -34,6 +35,10 @@ export type AppKitOptions = {
34
35
  * http灰度标记
35
36
  */
36
37
  gray(): string
38
+ /**
39
+ * 自定义指令
40
+ */
41
+ directives?: Record<string, Directive>
37
42
  }
38
43
 
39
44
  export type DollarApp = {
@@ -4,7 +4,7 @@
4
4
  <page-header :title="Taro.getEnv() !== 'WEB' ? '我的账户' : ''" :class="{ 'with-background': scrolled > 0 }"
5
5
  @close="onPageHeaderClose" />
6
6
  <div class="row jusify-right">
7
- <div class="small-bean-button" @click="onSecondBalanceButtonClick">
7
+ <div class="small-bean-button" v-track-click="'click'" @click="onSecondBalanceButtonClick">
8
8
  <label class="label">收支明细</label>
9
9
  </div>
10
10
  </div>
@@ -14,11 +14,11 @@
14
14
  <img class="bean-icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/gold-bean.png" />
15
15
  <div class="bean-tag tag">云豆</div>
16
16
  </div>
17
- <div class="rule" @click="rulesPopupOpen = true">规则说明</div>
17
+ <div class="rule" v-track-click="'click'" @click="rulesPopupOpen = true">规则说明</div>
18
18
  </div>
19
19
  <div class="bean-counts spa-between">
20
20
  <div class="counts number">{{ formatAmount(balance.total || 0) }}</div>
21
- <div v-if="!isAppEnv" class="pay" @click="gotoRecharge">云豆充值</div>
21
+ <div v-if="!isAppEnv" class="pay" v-track-click="'click'" @click="gotoRecharge">云豆充值</div>
22
22
  </div>
23
23
  </div>
24
24
  <Tip />
@@ -32,7 +32,7 @@
32
32
  <div class="item-title">
33
33
  <div>{{ item.title }}</div>
34
34
  <div class="item-title-button" v-if="item.id && !isAppEnv">
35
- <div @click="gotoTrade(item)">企明星优惠充值</div>
35
+ <div v-track-click="'click'" @click="gotoTrade(item)">企明星优惠充值</div>
36
36
  <img class="button-icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/button-hg.svg" />
37
37
  </div>
38
38
  </div>
@@ -47,7 +47,7 @@
47
47
  <div class="item-title">
48
48
  <div>{{ item.title }}</div>
49
49
  <div class="item-title-button" v-if="item.id && !isAppEnv">
50
- <div @click="gotoTrade(item)">AI审批充值</div>
50
+ <div v-track-click="'click'" @click="gotoTrade(item)">AI审批充值</div>
51
51
  <img class="button-icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/button-hg.svg" />
52
52
  </div>
53
53
  </div>
@@ -93,7 +93,7 @@
93
93
  src="https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-down.png" />
94
94
  </div>
95
95
  </div>
96
- <div class="search" @click="filterOpen = true">
96
+ <div class="search" v-track-click="'click'" @click="filterOpen = true">
97
97
  <span class="text">筛选</span>
98
98
  <img class="time-icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-select-icon.png" />
99
99
  </div>
@@ -12,7 +12,7 @@
12
12
  <div class="bean-nums number">{{ formatAmount(balance.total || 0) }}</div>
13
13
  </div>
14
14
  <div class="card-row-right">
15
- <div class="account-info-entry" @click="gotoDetail">
15
+ <div class="account-info-entry" v-track-click="'click'" @click="gotoDetail">
16
16
  <div class="account-info-name">账户明细</div>
17
17
  <div class="account-info-icon">
18
18
  <img class="icon"
@@ -25,7 +25,7 @@
25
25
  <div class="card-row">
26
26
  <div class="card-row-left desc">权益使用时自动扣减云豆</div>
27
27
  <div class="card-row-right">
28
- <div class="pay" @click="gotoRecharge">
28
+ <div class="pay" v-track-click="'click'" @click="gotoRecharge">
29
29
  <div>充值</div>
30
30
  <img
31
31
  class="pay-icon"
@@ -11,7 +11,7 @@
11
11
  <nut-button class="cancel-button" @click="emit('update:modelValue', false)" block>取消</nut-button>
12
12
  </div>
13
13
  <div class="col">
14
- <nut-button block class="recharge-button" @click="emit('recharge')">{{ buttonText }}</nut-button>
14
+ <nut-button block class="recharge-button" v-track-click="'click'" @click="emit('recharge')">{{ buttonText }}</nut-button>
15
15
  </div>
16
16
  </div>
17
17
  </div>
@@ -20,7 +20,7 @@
20
20
  </div>
21
21
  <div class="consumption-filter-btn spa-between">
22
22
  <div class="btn" @click="reset">重置</div>
23
- <div class="btn confirm" @click="onOkClick">确定</div>
23
+ <div class="btn confirm" v-track-click="{ event: 'click', elementText: '选择筛选项-确定' }" @click="onOkClick">确定</div>
24
24
  </div>
25
25
  <div class="consumption-filter-bottom"></div>
26
26
  </div>
@@ -20,7 +20,7 @@
20
20
  2、产品权益的使用范围:产品权益用于大道云平台各个系统产品的消耗使用,系统包括但不限于企明星、AI审批、电子签约、蜂鸟周转系统、蜂鸟居间系统,各个系统的产品权益仅用于各产品专项使用,无法跨产品使用。
21
21
  </div>
22
22
  </div>
23
- <div class="know" @click="emit('complete')">我知道了</div>
23
+ <div class="know" v-track-click="{ event: 'click', elementText: '规则说明-我知道了' }" @click="emit('complete')">我知道了</div>
24
24
  </div>
25
25
  </template>
26
26
 
@@ -15,7 +15,7 @@
15
15
  </div>
16
16
  <div class="buttons spa-between">
17
17
  <div class="btn" @click="reset">重置</div>
18
- <div class="btn confirm" @click="onOkClick">确定</div>
18
+ <div class="btn confirm" v-track-click="{ event: 'click', elementText: '日期选择-确定' }" @click="onOkClick">确定</div>
19
19
  </div>
20
20
  <div class="bottom"></div>
21
21
  <nut-popup v-model:visible="datePickerOpen" class="appkit-date-filter-picker-popup" position="bottom"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="date-range" @click="openDateRangePicker">
2
+ <div class="date-range" v-track-click="{ event: 'click', elementText: '日期范围-点击' }" @click="openDateRangePicker">
3
3
  <div class="text">{{ dateRangeDisplay }}</div>
4
4
  <img style="margin-top: -2px" class="time-icon"
5
5
  src="https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-down.png" />
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="list-filter" @click="openPicker">
2
+ <div class="list-filter" v-track-click="{ event: 'click', elementText: '筛选-点击' }" @click="openPicker">
3
3
  <span class="text">筛选</span>
4
4
  <img class="icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-select-icon.png" />
5
5
  </div>
@@ -16,7 +16,7 @@
16
16
  </div>
17
17
  <div class="list-filter-picker-btn spa-between">
18
18
  <div class="btn" @click="reset">重置</div>
19
- <div class="btn confirm" @click="onOkClick">确定</div>
19
+ <div class="btn confirm" v-track-click="{ event: 'click', elementText: '选择筛选项-确定' }" @click="onOkClick">确定</div>
20
20
  </div>
21
21
  <div class="list-filter-picker-bottom"></div>
22
22
  </div>
@@ -5,13 +5,10 @@
5
5
  <div>
6
6
  <ns-button-group size="sm" :items="options" v-model="tab" round fill="transparent" foreground="#808080"
7
7
  @change="onTabChange" />
8
- <!-- <div class="promoter-card-tab-item" @click="onTabChange('person')" :class="{ focus: tab === 'person' }">个人</div>
9
- <div class="promoter-card-tab-item" @click="onTabChange('company')" :class="{ focus: tab === 'company' }">企业
10
- </div> -->
11
8
  </div>
12
9
  <slot name="tab-btn"></slot>
13
10
  </div>
14
- <div class="promoter-card-hd" @click="emits('blance', tab)"
11
+ <div class="promoter-card-hd" v-track-click="'click'" @click="emits('blance', tab)"
15
12
  v-if="applyRecord.distributorFlag === 'Y' || applyRecord.accessCheckStatus === 'Y'">
16
13
  <div class="promoter-card-hd-num number">{{ formatAmount(promoter.allowWithdrawalBalance || 0) }}</div>
17
14
  <div class="promoter-card-hd-info">可提现余额(元)</div>
@@ -27,9 +24,9 @@
27
24
  </template>
28
25
  <template v-else>
29
26
  <div class="promoter-card-ft-info">产品销售收益(元)
30
- <IconFont class="icon" name="ask" @click="onHelpClick('profits')" />
27
+ <IconFont class="icon" name="ask" v-track-click="{event: 'click', elementText: '产品销售收益-说明'}" @click="onHelpClick('profits')" />
31
28
  </div>
32
- <div class="promoter-card-ft-num number" @click="emits('profits', tab)">
29
+ <div class="promoter-card-ft-num number" v-track-click="'click'" @click="emits('profits', tab)">
33
30
  {{ formatAmount(promoter.totalIncome || 0) }}
34
31
  <img class="arrow-img" :src="arrowImg" alt="">
35
32
  </div>
@@ -40,9 +37,9 @@
40
37
  </div>
41
38
  <div class="promoter-card-ft-item" v-if="applyRecord.distributorFlag === 'Y'">
42
39
  <div class="promoter-card-ft-info">分销返佣收益(元)
43
- <IconFont class="icon" name="ask" @click="onHelpClick('rebate')" />
40
+ <IconFont class="icon" name="ask" v-track-click="{event: 'click', elementText: '分销返佣收益-说明'}" @click="onHelpClick('rebate')" />
44
41
  </div>
45
- <div class="promoter-card-ft-num number" @click="emits('rebate', tab)">
42
+ <div class="promoter-card-ft-num number" v-track-click="'click'" @click="emits('rebate', tab)">
46
43
  {{ formatAmount(promoter.totalRebateIncome || 0) }}
47
44
  <img class="arrow-img" :src="arrowImg" alt="">
48
45
  </div>
@@ -16,11 +16,11 @@ function txtClick() {
16
16
 
17
17
  <template>
18
18
  <div class="dd-notice-bar" :class="{ close: showClose }" :style="style">
19
- <div class="dd-notice-bar__txt" name="text" @click="txtClick">
19
+ <div class="dd-notice-bar__txt" name="text" v-track-click="{event: 'click', elementText: '通知栏-文本'}" @click="txtClick">
20
20
  <span v-if="text">{{ text }}</span>
21
21
  <slot></slot>
22
22
  </div>
23
- <div v-if="showClose" class="dd-notice-bar__close" @click="close">
23
+ <div v-if="showClose" class="dd-notice-bar__close" v-track-click="{event: 'click', elementText: '通知栏-关闭'}" @click="close">
24
24
  <img
25
25
  src="https://cdn.ddjf.com/static/images/wechat-yunservice/close-icon.png"
26
26
  class="dd-notice-bar__close-img"
package/src/index.ts CHANGED
@@ -75,6 +75,14 @@ const AppKit = {
75
75
  nutComponents.forEach((component) => {
76
76
  app.use(component)
77
77
  })
78
+
79
+ // 注册自定义指令
80
+ if (options.directives) {
81
+ Object.entries(options.directives).forEach(([name, directive]) => {
82
+ app.directive(name, directive)
83
+ })
84
+ }
85
+
78
86
  // Object.entries(appComponents).forEach(([name, component]) => {
79
87
  // app.component(name, component)
80
88
  // })
@@ -2,12 +2,12 @@
2
2
  <div class="notice-banner" :class="{ fixed: fixed }" :style="topStype" v-if="bannerMessages.length"
3
3
  @touchstart="onTouchStart" @touchend="onTouchEnd">
4
4
  <DdNoticeBar :class="{ show: key === activeKey }" v-for="(item, key) in bannerMessages" :key="key"
5
- :showClose="item.noticeType === 0" @close="onClose(item, key)">
5
+ :showClose="item.noticeType === 0" v-track-click="{event: 'click', elementText: '通知栏-关闭'}" @close="onClose(item, key)">
6
6
  <img class="notice-banner-icon" src="https://cdn.ddjf.com/static/images/customer-center/notice-icon.png" alt="" />
7
7
  <div class="notice-banner-text">
8
8
  {{ item.context }}
9
9
  </div>
10
- <div class="notice-banner-btn" @click="onDetail(item)">详情</div>
10
+ <div class="notice-banner-btn" v-track-click="{event: 'click', elementText: '通知栏-详情'}" @click="onDetail(item)">详情</div>
11
11
  </DdNoticeBar>
12
12
  </div>
13
13
 
@@ -6,7 +6,7 @@
6
6
  <div class="wrapper" v-if="list.length">
7
7
  <ScrollView class="content" :scroll-y="true" :refresher-enabled="true" :refresherTriggered="isRefresh"
8
8
  @refresherrefresh="onRefresh" :lower-threshold="100" @scrolltolower="runNext" bindscroll="">
9
- <div class="card" :class="{ active: item.isRead != '1' }" v-for="(item, index) in list" :key="index"
9
+ <div class="card" :class="{ active: item.isRead != '1' }" v-for="(item, index) in list" :key="index" v-track-click="{event: 'click', elementText: '消息详情'}"
10
10
  @click="notifyRead(item, index)">
11
11
  <div class="point"></div>
12
12
  <div>
@@ -20,7 +20,7 @@
20
20
  </div>
21
21
  <div class="text" :class="{ gray: item.isRead == '1' }">
22
22
  <rich-text style="white-space: pre-wrap" :nodes="item.context"></rich-text>
23
- <span v-if="item.link && item.msgType == 3" class="notice-list-file" @click="onNoticeView(item.link)">
23
+ <span v-if="item.link && item.msgType == 3" class="notice-list-file" v-track-click="{event: 'click', elementText: '消息详情-附件'}" @click="onNoticeView(item.link)">
24
24
  查看附件
25
25
  </span>
26
26
  </div>
@@ -18,7 +18,7 @@
18
18
  <ns-tabs-item key="未读" tab="未读"></ns-tabs-item>
19
19
  </ns-tabs>
20
20
  <div v-if="state.list.length > 0" class="read-all">
21
- <div v-track-click="'click'" class="btn" @click="readAll">全部已读</div>
21
+ <div v-track-click="'click'" class="btn" @click="readAll">全部已读</div>
22
22
  </div>
23
23
  </div>
24
24
  <ns-page-content class="mt-68px" scrollable refreshable :refresh-triggered="isRefresh"
@@ -51,7 +51,7 @@
51
51
 
52
52
  <script setup lang="ts">
53
53
  import { useDidShow } from '@tarojs/taro'
54
- import Taro from '@tarojs/taro'
54
+ import { showLoading, hideLoading } from '@tarojs/taro'
55
55
  import { type WithPaging, usePaging } from '@uxda/nutshell/taro'
56
56
  import { useHttp, endpoints } from '../api'
57
57
  import { reactive, ref } from 'vue'
@@ -161,7 +161,7 @@ function read(item: any) {
161
161
 
162
162
  async function readAll() {
163
163
  try {
164
- Taro.showLoading({
164
+ showLoading({
165
165
  title: '请稍后...',
166
166
  })
167
167
 
@@ -178,7 +178,7 @@ async function readAll() {
178
178
  })
179
179
  })
180
180
  } finally {
181
- Taro.hideLoading()
181
+ hideLoading()
182
182
  }
183
183
  }
184
184
 
@@ -6,12 +6,12 @@
6
6
  </div>
7
7
  <div class="notice-popup-bd">
8
8
  <div style="white-space: pre-wrap">{{ message.context.replace('【系统公告】 ', '') }}</div>
9
- <div v-if="message.jumpUrl || message.link" class="notice-popup-bd-link" @click="toViewAttachment">
9
+ <div v-if="message.jumpUrl || message.link" class="notice-popup-bd-link" v-track-click="'click'" @click="toViewAttachment">
10
10
  点击查看附件
11
11
  </div>
12
12
  </div>
13
13
  <div class="notice-popup-ft">
14
- <div class="notice-popup-ft-btn" @click="onClose">我知道了</div>
14
+ <div class="notice-popup-ft-btn" v-track-click="{event: 'click', elementText: '系统公告-我知道了'}" @click="onClose">我知道了</div>
15
15
  </div>
16
16
  </nut-popup>
17
17
  </template>
@@ -5,7 +5,7 @@
5
5
  <h2>{{views[type][0]}}成功</h2>
6
6
  <div class="caption" v-if="payMethod == 'bean'">权益已到账</div>
7
7
  <div class="caption" v-else>{{views[type][1]}}将在1分钟之内到账</div>
8
- <nut-button class="back-button" type="default" @click="onBackClick">返回</nut-button>
8
+ <nut-button class="back-button" type="default" v-track-click="'click'" @click="onBackClick">返回</nut-button>
9
9
  </div>
10
10
  </div>
11
11
  </template>
@@ -5,10 +5,10 @@
5
5
  </view>
6
6
  <view class="amount-footer">
7
7
  <view class="agreement">
8
- <nut-checkbox v-model="state.agreed">我已阅读并同意<a class="link inline"
8
+ <nut-checkbox v-model="state.agreed">我已阅读并同意<a v-track-click="'click'" class="link inline"
9
9
  @click="onAgreementLinkClick">《大道云平台云豆充值服务协议》</a></nut-checkbox>
10
10
  </view>
11
- <nut-button block shape="square" :loading="state.buttonLoading" @click="onPayClick"
11
+ <nut-button block shape="square" :loading="state.buttonLoading" v-track-click="'click'" @click="onPayClick"
12
12
  class="recharge-button">立即充值</nut-button>
13
13
  </view>
14
14
  </view>
@@ -21,7 +21,7 @@
21
21
 
22
22
  <view class="amount-footer">
23
23
  <view class="agreement" v-if="!selectBean">
24
- <nut-checkbox v-model="state.agreed">我已阅读并同意<a class="link inline"
24
+ <nut-checkbox v-model="state.agreed">我已阅读并同意<a v-track-click="'click'" class="link inline"
25
25
  @click="onAgreementLinkClick">《大道云平台云豆充值服务协议》</a></nut-checkbox>
26
26
  </view>
27
27
  <div class="buy-amount">
@@ -31,7 +31,7 @@
31
31
  <i>¥</i>{{ formatAmount(currentAmount) }}
32
32
  </span>
33
33
  </div>
34
- <nut-button block shape="square" :loading="state.buttonLoading" @click="onPayClick"
34
+ <nut-button block shape="square" :loading="state.buttonLoading" v-track-click="'click'" @click="onPayClick"
35
35
  class="recharge-button">购买</nut-button>
36
36
  </div>
37
37
  </view>
@@ -155,7 +155,7 @@ async function submit() {
155
155
  </nut-form>
156
156
  </div>
157
157
  <div class="self-registration-bottom">
158
- <nut-button block type="primary" class="experience-button" @click="submit">立即体验</nut-button>
158
+ <nut-button block type="primary" class="experience-button" v-track-click="'click'" @click="submit">立即体验</nut-button>
159
159
  </div>
160
160
  </div>
161
161
  </template>
@@ -60,10 +60,10 @@
60
60
  </div>
61
61
  <div class="line"></div>
62
62
  <div class="bottom">
63
- <nut-button class="cancel-btn" @click="onCancelClick"
63
+ <nut-button class="cancel-btn" v-track-click="{ event: 'click', elementText: '海报分享-取消' }" @click="onCancelClick"
64
64
  >取消</nut-button
65
65
  >
66
- <nut-button type="primary" @click="onPosterShare">确定</nut-button>
66
+ <nut-button type="primary" v-track-click="{ event: 'click', elementText: '海报分享-确定' }" @click="onPosterShare">确定</nut-button>
67
67
  </div>
68
68
  </div>
69
69
  <canvas
@@ -12,13 +12,13 @@
12
12
  }]">
13
13
  </ns-input>
14
14
  <div class="form-btn">
15
- <ns-button v-if="!sent" size="xs" variant="plain" color="primary" @click="send" label="获取验证码" />
15
+ <ns-button v-if="!sent" size="xs" variant="plain" color="primary" v-track-click="{ event: 'click', elementText: '手机号验证-获取验证码' }" @click="send" label="获取验证码" />
16
16
  <div class="caption" v-if="sent">{{ countdown }}s后重新发送</div>
17
17
  </div>
18
18
  </ns-form>
19
19
  <div class="row buttons">
20
- <ns-button class="cancel-btn" @click="emits('cancel')">取消</ns-button>
21
- <ns-button color="primary" @click="onOk">确认</ns-button>
20
+ <ns-button class="cancel-btn" v-track-click="{ event: 'click', elementText: '手机号验证-取消' }" @click="emits('cancel')">取消</ns-button>
21
+ <ns-button color="primary" v-track-click="{ event: 'click', elementText: '手机号验证-确认' }" @click="onOk">确认</ns-button>
22
22
  </div>
23
23
  </div>
24
24
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="['ocr-business-license', disabled ? 'disabled' : '']" class="ocr-icon" @click="onIconClick">
2
+ <div :class="['ocr-business-license', disabled ? 'disabled' : '']" class="ocr-icon" v-track-click="{ event: 'click', elementText: '营业执照识别-点击' }" @click="onIconClick">
3
3
  <ns-icon name="https://cdn.ddjf.com/static/images/beidouxing/ocr-icon.png" />
4
4
  </div>
5
5
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="ocr-icon" :class="[disabled ? 'disabled' : '']" @click="onPhotograph">
2
+ <div class="ocr-icon" :class="[disabled ? 'disabled' : '']" v-track-click="{ event: 'click', elementText: '身份证识别-点击' }" @click="onPhotograph">
3
3
  <slot name="icon">
4
4
  <ns-icon name="https://cdn.ddjf.com/static/images/beidouxing/ocr-icon.png" />
5
5
  </slot>
@@ -4,7 +4,7 @@
4
4
  `color-mode-${colorMode}`
5
5
  ]" :style="cssVars">
6
6
  <h1 class="page-title" v-if="title">{{ title }}</h1>
7
- <view class="back-button" @click="onBackButtonClick"></view>
7
+ <view class="back-button" v-track-click="{ event: 'click', elementText: '页面头部-返回' }" @click="onBackButtonClick"></view>
8
8
  <slot></slot>
9
9
  </div>
10
10
  </template>
@@ -32,10 +32,10 @@
32
32
  <div class="user-auth-footer">
33
33
  <div v-if="!已认证" class="checkbox-row">
34
34
  <ns-checkbox style="font-size: 11px" v-model="formData.同意">我已阅读并同意</ns-checkbox>
35
- <span @click="showAgreement" class="book">《个人信息授权协议》</span>
35
+ <span v-track-click="{ event: 'click', elementText: '用户认证-个人信息授权协议' }" @click="showAgreement" class="book">《个人信息授权协议》</span>
36
36
  </div>
37
- <ns-button v-if="!已认证" class="btn" color="#163391" type="primary" @click="toSubmit">立即认证</ns-button>
38
- <ns-button v-else class="btn" color="#163391" type="primary" @click="toBack">返回</ns-button>
37
+ <ns-button v-if="!已认证" class="btn" v-track-click="{ event: 'click', elementText: '用户认证-立即认证' }" color="#163391" type="primary" @click="toSubmit">立即认证</ns-button>
38
+ <ns-button v-else class="btn" v-track-click="{ event: 'click', elementText: '用户认证-返回' }" color="#163391" type="primary" @click="toBack">返回</ns-button>
39
39
  </div>
40
40
  </ns-page-content>
41
41
  </ns-page>
@@ -17,7 +17,7 @@
17
17
  <nut-form-item label="验证码" label-align="left">
18
18
  <nut-input v-model="authState.code" placeholder="请输入验证码" :max-length="6" input-align="right">
19
19
  <template #right>
20
- <nut-button :disabled="countdownActive" class="user-binding-codebtn" type="default" @click="onAuthCode">{{
20
+ <nut-button :disabled="countdownActive" class="user-binding-codebtn" type="default" v-track-click="{ event: 'click', elementText: '换绑手机-获取验证码' }" @click="onAuthCode">{{
21
21
  countdownText }}</nut-button>
22
22
  </template>
23
23
  </nut-input>
@@ -25,7 +25,7 @@
25
25
  </nut-form>
26
26
 
27
27
  <nut-button class="user-binding-btn" :disabled="!authState.code" block type="primary"
28
- @click="onAuth">提交</nut-button>
28
+ v-track-click="{ event: 'click', elementText: '换绑手机-提交' }" @click="onAuth">提交</nut-button>
29
29
  </div>
30
30
 
31
31
  <div class="user-binding-layout user-binding-inputlayout" style="flex: 1" v-else>
@@ -36,7 +36,7 @@
36
36
  <nut-form-item label="验证码" label-align="left">
37
37
  <nut-input v-model="bindingState.code" placeholder="请输入验证码" :max-length="6" input-align="right">
38
38
  <template #right>
39
- <nut-button :disabled="countdownActive1" class="user-binding-codebtn" type="default"
39
+ <nut-button :disabled="countdownActive1" class="user-binding-codebtn" type="default" v-track-click="{ event: 'click', elementText: '换绑手机-获取验证码' }"
40
40
  @click="onBindingCode">{{ countdownText1 }}</nut-button>
41
41
  </template>
42
42
  </nut-input>
@@ -44,7 +44,7 @@
44
44
  </nut-form>
45
45
 
46
46
  <nut-button class="user-binding-btn" :disabled="!bindingState.code || !bindingState.mobile" block type="primary"
47
- @click="onBinding">提交</nut-button>
47
+ v-track-click="{ event: 'click', elementText: '换绑手机-提交' }" @click="onBinding">提交</nut-button>
48
48
  </div>
49
49
  </div>
50
50
  </template>
@@ -11,7 +11,7 @@
11
11
  <div class="user-binding-success-sbtn" @click="showEncode = !showEncode">
12
12
  {{ showEncode ? '显示' : '隐藏' }}
13
13
  </div>
14
- <nut-button class="user-binding-success-btn" type="primary" @click="toBinding"
14
+ <nut-button class="user-binding-success-btn" type="primary" v-track-click="'click'" @click="toBinding"
15
15
  >换绑手机号码</nut-button
16
16
  >
17
17
  </div>
@@ -1,23 +1,23 @@
1
1
  <template>
2
2
  <div class="user-entry">
3
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
4
+ <img class="user-entry-head-img" v-track-click="{ event: 'click', elementText: '用户入口-头像' }" @click="toUser" mode="aspectFit" v-if="avatar" :src="avatar" alt="" />
5
+ <img class="user-entry-head-img" v-track-click="{ event: 'click', elementText: '用户入口-头像' }" mode="aspectFit" @click="toUser1" v-else
6
6
  src="https://cdn.ddjf.com/static/images/wx-yunservice/account-head.png" alt="" />
7
7
  </div>
8
8
  <div class="user-entry-bd">
9
- <div v-if="!mobile" class="user-entry-bd-bigtxt" @click="toLogin">
9
+ <div v-if="!mobile" class="user-entry-bd-bigtxt" v-track-click="{ event: 'click', elementText: '用户入口-请登录' }" @click="toLogin">
10
10
  请登录
11
11
  <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
12
12
  src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
13
13
  </div>
14
14
  <template v-else>
15
- <div @click="toUser" class="user-entry-bd-txt">
15
+ <div v-track-click="{ event: 'click', elementText: '用户入口-用户名' }" @click="toUser" class="user-entry-bd-txt">
16
16
  {{ name }}
17
17
  <span class="user-entry-bd-arrow"><img style="width: 100%; height: 100%;"
18
18
  src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjgwODA2IDIuMDU4MDZDNi4wNTIxNCAxLjgxMzk4IDYuNDQ3ODYgMS44MTM5OCA2LjY5MTk0IDIuMDU4MDZMMTQuMTkxOSA5LjU1ODA2QzE0LjQzNiA5LjgwMjE0IDE0LjQzNiAxMC4xOTc5IDE0LjE5MTkgMTAuNDQxOUw2LjY5MTk0IDE3Ljk0MTlDNi40NDc4NiAxOC4xODYgNi4wNTIxNCAxOC4xODYgNS44MDgwNiAxNy45NDE5QzUuNTYzOTggMTcuNjk3OSA1LjU2Mzk4IDE3LjMwMjEgNS44MDgwNiAxNy4wNTgxTDEyLjg2NjEgMTBMNS44MDgwNiAyLjk0MTk0QzUuNTYzOTggMi42OTc4NiA1LjU2Mzk4IDIuMzAyMTQgNS44MDgwNiAyLjA1ODA2WiIgZmlsbD0iIzM1MzUzNSIvPgo8L3N2Zz4K" /></span>
19
19
  </div>
20
- <div @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
20
+ <div v-track-click="{ event: 'click', elementText: '用户入口-手机号' }" @click="toUser" class="user-entry-bd-smalltxt">{{ encodePhone(mobile) }}</div>
21
21
  </template>
22
22
  </div>
23
23
  </div>
@@ -1,15 +1,15 @@
1
1
  <template>
2
2
  <div :style="dragStyle" @touchstart="onDragStart" @touchmove="onDragMoveHandler" @touchend="onDragEndHandler"
3
- class="user-feedback-entry" @click="onJump" v-if="!hasStorage">
3
+ class="user-feedback-entry" v-track-click="{ event: 'click', elementText: '反馈入口-点击' }" @click="onJump" v-if="!hasStorage">
4
4
  <img class="user-feedback-entry-icon" mode="aspectFit"
5
5
  src="https://cdn.ddjf.com/static/images/customer-center/feedback.png" />
6
6
  <div>反馈</div>
7
7
  </div>
8
8
  <div :style="dragStyle1" @touchstart="onDragStart1" @touchmove="onDragMoveHandler1" @touchend="onDragEndHandler1"
9
9
  class="user-feedback-entry hasStorage" v-else>
10
- <img class="user-feedback-entry-icon" @click="onJump" mode="aspectFit"
10
+ <img class="user-feedback-entry-icon" v-track-click="{ event: 'click', elementText: '反馈入口-点击' }" @click="onJump" mode="aspectFit"
11
11
  src="https://cdn.ddjf.com/static/images/customer-center/feedback-icon.png" />
12
- <div class="user-feedback-entry-close" @click="onClose">
12
+ <div class="user-feedback-entry-close" v-track-click="{ event: 'click', elementText: '反馈入口-关闭' }" @click="onClose">
13
13
  <img class="user-feedback-entry-close-img"
14
14
  src="https://cdn.ddjf.com/static/images/customer-center/close-filled.png" />
15
15
  </div>
@@ -2,8 +2,8 @@
2
2
  <div class="user-head-crop">
3
3
  <bt-cropper ref="cropperRef" :imageSrc="params.src" :ratio="1">
4
4
  <div class="user-head-crop-btns">
5
- <div class="cbtn" @click="onCancel">取消</div>
6
- <div class="cbtn comfirmBtn" @click="onConfirm">确定</div>
5
+ <div class="cbtn" v-track-click="{ event: 'click', elementText: '头像裁剪-取消' }" @click="onCancel">取消</div>
6
+ <div class="cbtn comfirmBtn" v-track-click="{ event: 'click', elementText: '头像裁剪-确定' }" @click="onConfirm">确定</div>
7
7
  </div>
8
8
  </bt-cropper>
9
9
  </div>