@uxda/appkit 1.0.0

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 (52) hide show
  1. package/.eslintrc.mjs +8 -0
  2. package/README.md +147 -0
  3. package/babel.config.js +12 -0
  4. package/dist/appkit.css +3 -0
  5. package/dist/index.js +1755 -0
  6. package/dist/styles.css +1 -0
  7. package/package.json +73 -0
  8. package/project.config.json +15 -0
  9. package/project.tt.json +13 -0
  10. package/rollup.config.js +55 -0
  11. package/src/Appkit.ts +41 -0
  12. package/src/balance/api/endpoints.ts +108 -0
  13. package/src/balance/api/index.ts +25 -0
  14. package/src/balance/components/AccountView.vue +519 -0
  15. package/src/balance/components/BalanceCard.vue +181 -0
  16. package/src/balance/components/BalanceReminder.vue +82 -0
  17. package/src/balance/components/ConsumptionFilter.vue +176 -0
  18. package/src/balance/components/ConsumptionRules.vue +70 -0
  19. package/src/balance/components/DateFilter.vue +219 -0
  20. package/src/balance/components/index.ts +9 -0
  21. package/src/balance/index.ts +1 -0
  22. package/src/balance/types.ts +92 -0
  23. package/src/global.ts +7 -0
  24. package/src/index.ts +51 -0
  25. package/src/main.scss +1 -0
  26. package/src/payment/README.md +0 -0
  27. package/src/payment/api/config.ts +8 -0
  28. package/src/payment/api/endpoints.ts +75 -0
  29. package/src/payment/api/index.ts +25 -0
  30. package/src/payment/components/AmountPicker.vue +109 -0
  31. package/src/payment/components/RechargeView.vue +146 -0
  32. package/src/payment/components/UserAgreement.vue +111 -0
  33. package/src/payment/components/index.ts +16 -0
  34. package/src/payment/consts.ts +1 -0
  35. package/src/payment/index.ts +1 -0
  36. package/src/payment/services/index.ts +17 -0
  37. package/src/payment/services/invoke-recharge.ts +25 -0
  38. package/src/payment/services/request-payment.ts +32 -0
  39. package/src/payment/types.ts +24 -0
  40. package/src/shared/components/AppDrawer.vue +53 -0
  41. package/src/shared/components/PageHeader.vue +75 -0
  42. package/src/shared/components/index.ts +7 -0
  43. package/src/shared/http/Http.ts +124 -0
  44. package/src/shared/http/index.ts +2 -0
  45. package/src/shared/http/types.ts +100 -0
  46. package/src/shared/index.ts +3 -0
  47. package/src/shared/weixin/index.ts +1 -0
  48. package/src/shared/weixin/payment.ts +37 -0
  49. package/src/styles/vars.scss +4 -0
  50. package/tsconfig.json +30 -0
  51. package/types/global.d.ts +22 -0
  52. package/types/vue.d.ts +10 -0
package/dist/index.js ADDED
@@ -0,0 +1,1755 @@
1
+ import { defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createStaticVNode, createCommentVNode, renderSlot, createVNode, ref, onMounted, createTextVNode, unref, computed, withDirectives, vShow } from 'vue';
2
+ import Taro, { usePageScroll } from '@tarojs/taro';
3
+ import { Grid, GridItem, Button, Checkbox, Popup, OverLay, Icon, DatePicker } from '@nutui/nutui-taro';
4
+
5
+ const _hoisted_1$9 = { class: "token-line" };
6
+ var script$a = /* @__PURE__ */ defineComponent({
7
+ __name: "AmountPicker",
8
+ props: {
9
+ items: { type: Array, required: true, default: () => [
10
+ {
11
+ token: 1e3,
12
+ amount: 100
13
+ }
14
+ ] },
15
+ selected: { type: Number, required: false, default: () => 0 }
16
+ },
17
+ setup(__props) {
18
+ const state = reactive({
19
+ selected: 0
20
+ });
21
+ const onGridItemClick = (index) => {
22
+ state.selected = index;
23
+ };
24
+ return (_ctx, _cache) => {
25
+ const _component_nut_grid_item = resolveComponent("nut-grid-item");
26
+ const _component_nut_grid = resolveComponent("nut-grid");
27
+ return openBlock(), createBlock(_component_nut_grid, {
28
+ class: "amounts-picker",
29
+ "column-num": 3,
30
+ gutter: 10,
31
+ border: false
32
+ }, {
33
+ default: withCtx(() => [
34
+ (openBlock(true), createElementBlock(
35
+ Fragment,
36
+ null,
37
+ renderList(_ctx.items, (amount, index) => {
38
+ return openBlock(), createBlock(_component_nut_grid_item, {
39
+ class: normalizeClass(["tile", { selected: state.selected === index }]),
40
+ onClick: () => onGridItemClick(index),
41
+ key: index
42
+ }, {
43
+ default: withCtx(() => [
44
+ createElementVNode(
45
+ "h4",
46
+ _hoisted_1$9,
47
+ toDisplayString(amount.token),
48
+ 1
49
+ /* TEXT */
50
+ ),
51
+ createElementVNode(
52
+ "h5",
53
+ null,
54
+ "\xA5" + toDisplayString(amount.amount),
55
+ 1
56
+ /* TEXT */
57
+ )
58
+ ]),
59
+ _: 2
60
+ /* DYNAMIC */
61
+ }, 1032, ["class", "onClick"]);
62
+ }),
63
+ 128
64
+ /* KEYED_FRAGMENT */
65
+ ))
66
+ ]),
67
+ _: 1
68
+ /* STABLE */
69
+ });
70
+ };
71
+ }
72
+ });
73
+
74
+ function styleInject(css, ref) {
75
+ if ( ref === void 0 ) ref = {};
76
+ var insertAt = ref.insertAt;
77
+
78
+ if (!css || typeof document === 'undefined') { return; }
79
+
80
+ var head = document.head || document.getElementsByTagName('head')[0];
81
+ var style = document.createElement('style');
82
+ style.type = 'text/css';
83
+
84
+ if (insertAt === 'top') {
85
+ if (head.firstChild) {
86
+ head.insertBefore(style, head.firstChild);
87
+ } else {
88
+ head.appendChild(style);
89
+ }
90
+ } else {
91
+ head.appendChild(style);
92
+ }
93
+
94
+ if (style.styleSheet) {
95
+ style.styleSheet.cssText = css;
96
+ } else {
97
+ style.appendChild(document.createTextNode(css));
98
+ }
99
+ }
100
+
101
+ var css_248z$b = ".amounts-picker .nut-grid-item__content {\n border-radius: 10px;\n border: 1px solid rgba(204, 204, 204, 0.8);\n background: #F5F5F5;\n}\n.amounts-picker .tile {\n height: 80px;\n}\n.amounts-picker .tile.selected .nut-grid-item__content {\n border-width: 2px;\n border-color: #EFD082;\n background: linear-gradient(180deg, #FFF7E3 0%, #FEFDE6 100%);\n}\n.amounts-picker h4 {\n color: #d00;\n font-size: 18px;\n}\n.amounts-picker h5 {\n font-size: 12px;\n}";
102
+ styleInject(css_248z$b);
103
+
104
+ var css_248z$a = ".amounts-picker {\n padding-top: 10px;\n}\n.amounts-picker .nut-grid-item__content {\n border-radius: 8px;\n}\n.amounts-picker h4.token-line {\n background-image: url(\"https://cdn.ddjf.com/static/images/appkit/yundou.png\");\n background-size: 20px;\n background-repeat: no-repeat;\n background-position: left center;\n padding-left: 24px;\n color: #FD6701;\n font-size: 18px;\n font-weight: 600;\n line-height: 25px;\n}\n.amounts-picker h5 {\n font-size: 14px;\n line-height: 18px;\n color: #353535;\n font-weight: 600;\n opacity: 0.6;\n margin-top: 4px;\n}";
105
+ styleInject(css_248z$a);
106
+
107
+ script$a.__file = "src/payment/components/AmountPicker.vue";
108
+
109
+ const _hoisted_1$8 = { class: "agreement-doc" };
110
+ const _hoisted_2$7 = /* @__PURE__ */ createStaticVNode("<h1>\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u670D\u52A1\u534F\u8BAE</h1><p>2023-12-01</p><p>\xA0</p><p>\u6B22\u8FCE\u60A8\u4F7F\u7528\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u670D\u52A1\uFF01</p><h2>\u3010\u63D0\u793A\u6761\u6B3E\u3011</h2><p>\u6B22\u8FCE\u60A8\u4E0E\u5927\u9053\u4E91\u5E73\u53F0\u670D\u52A1\u63D0\u4F9B\u8005\u7B7E\u7F72\u300A\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u670D\u52A1\u534F\u8BAE\u300B\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u672C\u534F\u8BAE\u201D\uFF09\u5E76\u4F7F\u7528\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u503C\u670D\u52A1\uFF01\u60A8\u7406\u89E3\u548C\u540C\u610F\u672C\u534F\u8BAE\u7CFB\u6839\u636E\u300A\u7528\u6237\u6CE8\u518C\u534F\u8BAE\u300B\u7B49\u534F\u8BAE\u5236\u5B9A\uFF0C\u672C\u534F\u8BAE\u4E3A\u524D\u8FF0\u534F\u8BAE\u4E0D\u53EF\u5206\u5272\u7684\u4E00\u90E8\u5206\uFF0C\u672C\u534F\u8BAE\u672A\u89C4\u5B9A\u7684\uFF0C\u9002\u7528\u300A\u7528\u6237\u6CE8\u518C\u534F\u8BAE\u300B\u7B49\u534F\u8BAE\u4E2D\u7684\u76F8\u5173\u7EA6\u5B9A\u3002</p><p>\xA0</p><p><h2>\u3010\u5BA1\u614E\u9605\u8BFB\u3011</h2></p><p>\u5728\u4F7F\u7528\u672C\u670D\u52A1\u524D\uFF0C\u8BF7\u60A8\u52A1\u5FC5\u5BA1\u614E\u9605\u8BFB\u3001\u5145\u5206\u7406\u89E3\u5404\u6761\u6B3E\u5185\u5BB9\uFF0C\u7279\u522B\u662F\u514D\u9664\u6216\u9650\u5236\u8D23\u4EFB\u7684\u76F8\u5E94\u6761\u6B3E\uFF0C\u4EE5\u53CA\u5F00\u901A\u6216\u4F7F\u7528\u67D0\u9879\u670D\u52A1\u7684\u5355\u72EC\u534F\u8BAE\uFF0C\u60A8\u4F7F\u7528\u6B64\u670D\u52A1\u5373\u8868\u793A\u60A8\u63A5\u53D7\u672C\u534F\u8BAE\u3002\u9650\u5236\u6216\u514D\u9664\u8D23\u4EFB\u6761\u6B3E\u53EF\u80FD\u4EE5\u52A0\u7C97\u5F62\u5F0F\u63D0\u793A\u60A8\u6CE8\u610F\u3002</p><p>\xA0</p><p>\u3010\u7279\u522B\u63D0\u793A\u3011</p><p>\u5145\u503C\u7528\u6237\u786E\u8BA4\uFF0C\u81EA\u5DF1\u4E3A\u5E74\u6EE118\u5468\u5C81\u4E14\u5177\u6709\u5B8C\u5168\u6C11\u4E8B\u884C\u4E3A\u80FD\u529B\u7684\u6210\u5E74\u4EBA\uFF0C\u9664\u975E\u60A8\u5DF2\u9605\u8BFB\u5E76\u63A5\u53D7\u672C\u534F\u8BAE\u6240\u6709\u6761\u6B3E\uFF0C\u5426\u5219\u60A8\u65E0\u6743\u4F7F\u7528\u5927\u9053\u4E91\u5E73\u53F0\u5145\u503C\u670D\u52A1\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u672C\u670D\u52A1\u201D\uFF09\u3002\u60A8\u5BF9\u672C\u670D\u52A1\u7684\u4EFB\u4F55\u8D2D\u4E70\u3001\u767B\u5F55\u3001\u67E5\u770B\u7B49\u4F7F\u7528\u884C\u4E3A\u5373\u89C6\u4E3A\u60A8\u5DF2\u9605\u8BFB\u5E76\u540C\u610F\u672C\u534F\u8BAE\u7684\u7EA6\u675F\u3002</p><p>\xA0</p><p>\u4E00\u3001\u534F\u8BAE\u7684\u8303\u56F4</p><p>\xA0</p><p>1.1\u3010\u534F\u8BAE\u9002\u7528\u4E3B\u4F53\u8303\u56F4\u3011</p><p>\u672C\u534F\u8BAE\u662F\u60A8\u4E0E\u5927\u9053\u4E91\u5E73\u53F0\u4E4B\u95F4\u5173\u4E8E\u60A8\u4F7F\u7528\u672C\u670D\u52A1\u6240\u8BA2\u7ACB\u7684\u534F\u8BAE\u3002</p><p>\xA0</p><p>1.2\u3010\u670D\u52A1\u5185\u5BB9\u3011</p><p>\u672C\u534F\u8BAE\u9879\u4E0B\u7684\u670D\u52A1\u662F\u6307\u5927\u9053\u4E91\u5E73\u53F0\u5411\u7528\u6237\u63D0\u4F9B\u7684\u4E91\u8C46\u5145\u503C\u670D\u52A1\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u672C\u670D\u52A1\u201D\uFF09\u3002\u672C\u534F\u8BAE\u5185\u5BB9\u540C\u65F6\u5305\u62EC\u5927\u9053\u4E91\u5E73\u53F0\u53EF\u80FD\u4E0D\u65AD\u53D1\u5E03\u7684\u5173\u4E8E\u672C\u670D\u52A1\u7684\u76F8\u5173\u534F\u8BAE\u3001\u4E1A\u52A1\u89C4\u5219\u7B49\u5185\u5BB9\u3002\u4E0A\u8FF0\u5185\u5BB9\u4E00\u7ECF\u6B63\u5F0F\u53D1\u5E03\uFF0C\u5373\u4E3A\u672C\u534F\u8BAE\u4E0D\u53EF\u5206\u5272\u7684\u7EC4\u6210\u90E8\u5206\uFF0C\u60A8\u540C\u6837\u5E94\u5F53\u9075\u5B88\u3002</p><p>\xA0</p><p>\xA0</p><p>\u4E8C\u3001\u540D\u8BCD\u5B9A\u4E49</p><p>\xA0</p><p>2.1\u3010\u4E91\u8C46\u3011</p><p>2.1.1 \u4E91\u8C46\u7CFB\u5927\u9053\u4E91\u5E73\u53F0\u4E3A\u7528\u6237\u63D0\u4F9B\u7684\u6570\u5B57\u5316\u5546\u54C1\uFF0C\u7528\u4E8E\u5927\u9053\u4E91\u5E73\u53F0\u4E0A\u7684\u4EA7\u54C1\u6743\u76CA\u4F7F\u7528\u62B5\u6263\u3002</p><p>2.1.2 \u4E91\u8C46\u5C5E\u4E8E\u5728\u7EBF\u4EA4\u4ED8\u7684\u6570\u5B57\u5316\u5546\u54C1\uFF0C\u4E91\u8C46\u7684\u8D2D\u4E70\u8D39\u7528\u7CFB\u6570\u5B57\u5316\u5546\u54C1\u4EF7\u683C\uFF0C\u800C\u4E0D\u5177\u6709\u9884\u4ED8\u6B3E\u6027\u8D28\u6216\u8005\u5B9A\u91D1\u3001\u50A8\u503C\u7B49\u6027\u8D28\uFF0C\u4E91\u8C46\u8D2D\u4E70\u6210\u529F\u540E\u4E0D\u53EF\u8F6C\u8BA9\u6216\u8005\u9006\u5411\u5151\u6362\u4E3A\u4EBA\u6C11\u5E01\u6216\u5176\u4ED6\u8D27\u5E01\u3002</p><p>2.1.3 \u4E91\u8C46\u4EC5\u9650\u4E8E\u7528\u6237\u81EA\u5DF1\u8D26\u53F7\u5728\u5927\u9053\u4E91\u5E73\u53F0\u4F7F\u7528\uFF0C\u4E0D\u5F97\u4EE5\u76C8\u5229\u7B49\u975E\u4E2A\u4EBA\u4F7F\u7528\u76EE\u7684\u4F7F\u7528\u4E91\u8C46\uFF0C\u6216\u901A\u8FC7\u8D60\u4E0E\u3001\u51FA\u501F\u3001\u8F6C\u8BA9\u3001\u9500\u552E\u3001\u62B5\u62BC\u3001\u8BB8\u53EF\u4ED6\u4EBA\u4F7F\u7528\u7B49\u65B9\u5F0F\u83B7\u53D6\u6216\u5904\u7F6E\u4E91\u8C46\u3002</p><p>2.1.4 \u4EBA\u6C11\u5E01\u548C\u4E91\u8C46\u5151\u6362\u7684\u6BD4\u4F8B\u4E3A1:10\uFF08\u53731\u5143\u4EBA\u6C11\u5E01=10\u4E91\u8C46\uFF09\uFF0C\u4E91\u8C46\u5728\u4EFB\u4F55\u60C5\u51B5\u4E0B\u90FD\u4E0D\u5177\u6709\u6CD5\u5B9A\u8D27\u5E01\u7684\u6D41\u8F6C\u53CA\u652F\u4ED8\u529F\u80FD\uFF0C\u4E0D\u5F97\u53CD\u5411\u5151\u6362\u4E3A\u4EBA\u6C11\u5E01\u6216\u5176\u4ED6\u6CD5\u5B9A\u8D27\u5E01\u3001\u5B9E\u7269\u548C\u5176\u4ED6\u865A\u62DF\u8D27\u5E01\uFF0C\u8BF7\u60A8\u6839\u636E\u5B9E\u9645\u9700\u6C42\u8D2D\u4E70\u76F8\u5E94\u6570\u91CF\u7684\u4E91\u8C46\u3002</p><p>2.2\u3010\u5927\u9053\u4E91\u5E73\u53F0\u3011</p><p>\u6307\u7531\u5927\u9053\u4E91\u5E73\u53F0\u6240\u62E5\u6709\u3001\u63A7\u5236\u3001\u7ECF\u8425\u7684\u5927\u9053\u4E91\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u3001\u8702\u9E1F\u6C47\u4E91\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u3001\u8702\u9E1F\u5C45\u95F4\u7CFB\u7EDF\u3001\u8702\u9E1F\u5468\u8F6C\u7CFB\u7EDF\u3002</p><p>\xA0</p><p>\u4E09\u3001\u6743\u5229\u4E49\u52A1</p><p>\xA0</p><p>3.1.1\u60A8\u627F\u8BFA\u5177\u5907\u4F7F\u7528\u672C\u670D\u52A1\u6240\u5FC5\u9700\u7684\u6C11\u4E8B\u80FD\u529B\u548C\u5408\u6CD5\u8D44\u683C\uFF0C\u6709\u6743\u4E14\u6709\u80FD\u529B\u540C\u610F\u672C\u534F\u8BAE\u53CA\u76F8\u5173\u534F\u8BAE\u7684\u5168\u90E8\u5185\u5BB9\u3002</p><p>3.1.2 \u60A8\u5E94\u59A5\u5584\u4FDD\u7BA1\u5927\u9053\u4E91\u5E73\u53F0\u8D26\u53F7\u7684\u7528\u6237\u540D\u53CA\u5176\u5BC6\u7801\uFF0C\u5E76\u5BF9\u8BE5\u8D26\u53F7\u4E0B\u7684\u4E00\u5207\u64CD\u4F5C\u884C\u4E3A\u8D1F\u8D23\u3002\u5982\u60A8\u7684\u5927\u9053\u4E91\u8D26\u53F7\u5B58\u5728\u5F02\u5E38\u60C5\u5F62\uFF0C\u60A8\u53EF\u4EE5\u8054\u7CFB\u5BA2\u670D\u6302\u5931\u6216\u51BB\u7ED3\u60A8\u7684\u8D26\u6237\u3002\u6B64\u65F6\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u9700\u8981\u60A8\u63D0\u4F9B\u5927\u9053\u4E91\u8D26\u53F7\u7684\u6CE8\u518C\u4FE1\u606F\u4EE5\u5B8C\u6210\u8EAB\u4EFD\u6838\u9A8C\u3002\u60A8\u7406\u89E3\u5E76\u786E\u8BA4\uFF0C\u7531\u4E8E\u6280\u672F\u5C40\u9650\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u6CD5\u4FDD\u8BC1\u8EAB\u4EFD\u6838\u9A8C\u7684\u51C6\u786E\u6027\u548C\u771F\u5B9E\u6027\u3002</p><p>3.1.3 \u60A8\u627F\u8BFA\u4E0D\u5F97\u901A\u8FC7\u975E\u5927\u9053\u4E91\u5E73\u53F0\u6307\u5B9A\u9014\u5F84\u6216\u4EFB\u4F55\u8FDD\u53CD\u76F8\u5173\u6CD5\u89C4\u3001\u8FDD\u53CD\u672C\u534F\u8BAE\u3001\u4E0D\u6B63\u5F53\u624B\u6BB5\u7B49\u8D2D\u4E70\u4E91\u8C46\u3002</p><p>3.1.4\u5927\u9053\u4E91\u5E73\u53F0\u53EF\u80FD\u4F1A\u6839\u636E\u672C\u670D\u52A1\u7684\u6574\u4F53\u89C4\u5212\uFF0C\u5BF9\u672C\u670D\u52A1\u7684\u6536\u8D39\u6807\u51C6\u3001\u65B9\u5F0F\u7B49\u8FDB\u884C\u4FEE\u6539\u548C\u53D8\u66F4\uFF0C\u524D\u8FF0\u4FEE\u6539\u3001\u53D8\u66F4\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u5C06\u5728\u76F8\u5E94\u670D\u52A1\u9875\u9762\u8FDB\u884C\u901A\u77E5\u6216\u516C\u544A\u3002\u5982\u679C\u60A8\u4E0D\u540C\u610F\u4E0A\u8FF0\u4FEE\u6539\u3001\u53D8\u66F4\uFF0C\u5219\u5E94\u505C\u6B62\u4F7F\u7528\u672C\u670D\u52A1\u3002\u5426\u5219\uFF0C\u60A8\u7684\u4EFB\u4F55\u8D2D\u4E70\u3001\u767B\u5F55\u3001\u67E5\u770B\u7B49\u4F7F\u7528\u884C\u4E3A\uFF0C\u5373\u89C6\u4E3A\u60A8\u540C\u610F\u4E0A\u8FF0\u4FEE\u6539\u3001\u53D8\u66F4\u3002</p><p>3.1.5 \u5927\u9053\u4E91\u5E73\u53F0\u5728\u76EE\u524D\u6280\u672F\u6C34\u5E73\u4E0B\uFF0C\u6700\u5927\u7A0B\u5EA6\u5730\u4FDD\u969C\u672C\u529F\u80FD\u7684\u6B63\u5E38\u8FD0\u884C\uFF0C\u4EE5\u7EF4\u62A4\u4F60\u7684\u5229\u76CA\u3002\u5927\u9053\u4E91\u5E73\u53F0\u5BF9\u672C\u670D\u52A1\u4E0D\u4F5C\u4EFB\u4F55\u660E\u793A\u6216\u6697\u793A\u7684\u4FDD\u8BC1\uFF0C\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u5BF9\u672C\u670D\u52A1\u7684\u53EF\u9002\u7528\u6027\u3001\u6301\u7EED\u6027\u7B49\u3002</p><p>\xA0</p><p>\u56DB\u3001\u4E91\u8C46\u4F7F\u7528\u89C4\u5219\u53CA\u7279\u522B\u7EA6\u5B9A</p><p>\xA0</p><p>4.1 \u5927\u9053\u4E91\u5E73\u53F0\u5411\u60A8\u63D0\u4F9B\u8D2D\u4E70\u3001\u7BA1\u7406\u4E91\u8C46\u6709\u5173\u7684\u7F51\u7EDC\u589E\u503C\u670D\u52A1\uFF0C\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u4E91\u8C46\u7684\u8D2D\u4E70\u3001\u8D26\u6237\u7BA1\u7406\u9875\u9762\u3001\u4EA4\u6613\u660E\u7EC6\u67E5\u8BE2\u670D\u52A1\uFF08\u4EE5\u4E0B\u79F0\u201C\u4E91\u8C46\u670D\u52A1\u201D\uFF09\u3002\u4E91\u8C46\u670D\u52A1\u7684\u5177\u4F53\u5185\u5BB9\u8BF7\u4EE5\u76F8\u5173\u9875\u9762\u7684\u4FE1\u606F\u4E3A\u51C6\u3002\u60A8\u540C\u610F\u4EE5\u5927\u9053\u4E91\u5E73\u53F0\u7559\u5B58\u7684\u4EA4\u6613\u8BB0\u5F55\u4F5C\u4E3A\u4E91\u8C46\u8D2D\u4E70\u7684\u552F\u4E00\u6709\u6548\u4F9D\u636E\uFF0C\u5982\u60A8\u5BF9\u5927\u9053\u4E91\u5E73\u53F0\u7559\u5B58\u7684\u4EA4\u6613\u8BB0\u5F55\u6709\u5F02\u8BAE\uFF0C\u60A8\u5E94\u7ACB\u5373\u5411\u5927\u9053\u4E91\u5E73\u53F0\u63D0\u51FA\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u7ECF\u6838\u5BF9\u540E\u53D1\u73B0\u786E\u6709\u9519\u8BEF\u7684\uFF0C\u5C06\u4E88\u4EE5\u6539\u6B63\u3002</p><p>4.2.\u60A8\u5E94\u8BE5\u901A\u8FC7\u5927\u9053\u4E91\u5E73\u53F0\u5B98\u65B9\u6307\u5B9A\u7684\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u652F\u4ED8\u5B9D\u3001\u8D22\u4ED8\u901A\u7B49\u65B9\u5F0F\u4F9D\u7EA6\u652F\u4ED8\u4E00\u5B9A\u8D39\u7528\u540E\u8D2D\u4E70\u4E91\u8C46\u3002</p><p>4.3 \u60A8\u5FC5\u987B\u4E3A\u7ED1\u5B9A\u7684\u652F\u4ED8\u6E20\u9053\u8D26\u6237\u5F00\u6237\u4EBA/\u6301\u6709\u4EBA\uFF0C\u53EF\u5408\u6CD5\u3001\u6709\u6548\u4F7F\u7528\u8BE5\u8D26\u6237\u4E14\u672A\u4FB5\u72AF\u4EFB\u4F55\u7B2C\u4E09\u65B9\u6743\u76CA\uFF0C\u5426\u5219\u56E0\u6B64\u9020\u6210\u652F\u4ED8\u8D26\u6237\u5B9E\u9645\u6240\u6709\u4EBA\u635F\u5931\u7684\uFF0C\u5E94\u7531\u60A8\u5355\u72EC\u8D1F\u8D23\u89E3\u51B3\u7531\u6B64\u4EA7\u751F\u7684\u7EA0\u7EB7\u5E76\u627F\u62C5\u5168\u90E8\u6CD5\u5F8B\u8D23\u4EFB\u3002</p><p>4.4 \u60A8\u5E94\u5728\u8D2D\u4E70\u4E91\u8C46\u65F6\u4ED4\u7EC6\u786E\u8BA4\u8D26\u53F7\u3001\u652F\u4ED8\u8D26\u6237\u3001\u8D2D\u4E70\u6570\u91CF\u3001\u8D2D\u4E70\u8D39\u7528\u7B49\u4EA4\u6613\u4FE1\u606F\u51C6\u786E\u65E0\u8BEF\uFF0C\u5982\u56E0\u60A8\u81EA\u8EAB\u539F\u56E0\uFF08\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u8D26\u53F7\u9519\u8BEF\u3001\u652F\u4ED8\u8D26\u6237\u9519\u8BEF\u3001\u64CD\u4F5C\u4E0D\u5F53\u3001\u8D26\u53F7/\u652F\u4ED8\u8D26\u6237\u5B58\u5728\u5F02\u5E38\u60C5\u51B5\u7B49\uFF09\u5BFC\u81F4\u7684\u4EFB\u4F55\u635F\u5931\u5E94\u7531\u60A8\u81EA\u884C\u627F\u62C5\u3002</p><p>4.5 \u5927\u9053\u4E91\u5E73\u53F0\u6709\u6743\u51B3\u5B9A\u4E91\u8C46\u5982\u4F55\u88AB\u4F7F\u7528\uFF08\u5305\u62EC\u5151\u6362\u865A\u62DF\u5546\u54C1\u7B49\u4E8E\u5927\u9053\u4E91\u5E73\u53F0\u4E0A\u4F7F\u7528\u7684\u4EA7\u54C1\u6216\u670D\u52A1\uFF09\u3002</p><p>\xA0</p><p>\u4E94\u3001\u884C\u4E3A\u89C4\u8303</p><p>\xA0</p><p>5.1\u3010\u7528\u6237\u7981\u6B62\u884C\u4E3A\u3011</p><p>\u672C\u670D\u52A1\u4EC5\u4F9B\u60A8\u4E2A\u4EBA\u4F7F\u7528\uFF0C\u9664\u975E\u7ECF\u5927\u9053\u4E91\u5E73\u53F0\u4E66\u9762\u8BB8\u53EF\uFF0C\u60A8\u4E0D\u5F97\u8FDB\u884C\u4EE5\u4E0B\u884C\u4E3A\uFF1A</p><p>5.1.1 \u5C06\u672C\u670D\u52A1\u8F6C\u8BA9\u8BB8\u53EF\u4ED6\u4EBA\u4F7F\u7528\uFF1B</p><p>5.1.2 \u5176\u4ED6\u672A\u7ECF\u5927\u9053\u4E91\u5E73\u53F0\u4E66\u9762\u8BB8\u53EF\u7684\u884C\u4E3A\u3002</p><p>5.2\u3010\u884C\u4E3A\u8D23\u4EFB\u3011</p><p>\u60A8\u5145\u5206\u4E86\u89E3\u5E76\u540C\u610F\uFF0C\u60A8\u7528\u4EE5\u53C2\u4E0E\u672C\u670D\u52A1\u7684\u5927\u9053\u4E91\u8D26\u53F7\u7531\u60A8\u72EC\u7ACB\u7EF4\u62A4\u3001\u4F7F\u7528\u5E76\u72EC\u7ACB\u627F\u62C5\u5168\u90E8\u8D23\u4EFB\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u4E0D\u4F1A\u3001\u4E5F\u4E0D\u53EF\u80FD\u53C2\u4E0E\u8BE5\u8D26\u53F7\u7684\u4F7F\u7528\u7B49\u4EFB\u4F55\u6D3B\u52A8\u3002\u60A8\u5E94\u5BF9\u672C\u670D\u52A1\u4E2D\u7684\u5185\u5BB9\u81EA\u884C\u52A0\u4EE5\u5224\u65AD\uFF0C\u5E76\u627F\u62C5\u56E0\u4F7F\u7528\u5185\u5BB9\u800C\u5F15\u8D77\u7684\u6240\u6709\u98CE\u9669\uFF0C\u5305\u62EC\u56E0\u5BF9\u5185\u5BB9\u7684\u6B63\u786E\u6027\u3001\u5B8C\u6574\u6027\u6216\u5B9E\u7528\u6027\u7684\u4F9D\u8D56\u800C\u4EA7\u751F\u7684\u98CE\u9669\u3002\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u6CD5\u4E14\u4E0D\u4F1A\u5BF9\u56E0\u524D\u8FF0\u98CE\u9669\u800C\u5BFC\u81F4\u7684\u4EFB\u4F55\u635F\u5931\u6216\u635F\u5BB3\u627F\u62C5\u4EFB\u4F55\u8D23\u4EFB\u3002</p><p>\xA0</p><p>\u516D\u3001\u670D\u52A1\u7684\u53D8\u66F4\u3001\u4E2D\u6B62\u6216\u7EC8\u6B62</p><p>\xA0</p><p>\u60A8\u5145\u5206\u4E86\u89E3\u5E76\u540C\u610F\uFF0C\u7531\u4E8E\u4E92\u8054\u7F51\u670D\u52A1\u7684\u7279\u6B8A\u6027\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u53EF\u4EE5\u5728\u4E0D\u63D0\u524D\u901A\u77E5\u60A8\u7684\u60C5\u51B5\u4E4B\u4E0B\uFF0C\u6839\u636E\u672C\u670D\u52A1\u7684\u6574\u4F53\u89C4\u5212\uFF0C\u5355\u65B9\u6709\u6743\u5BF9\u672C\u670D\u52A1\u5185\u5BB9\u8FDB\u884C\u53D8\u66F4\u3001\u4E2D\u6B62\u6216\u7EC8\u6B62\u3002</p><p>\xA0</p><p>\u4E03\u3001\u8FDD\u7EA6\u8D23\u4EFB</p><p>\xA0</p><p>7.1 \u5982\u679C\u5927\u9053\u4E91\u5E73\u53F0\u53D1\u73B0\u6216\u6536\u5230\u4ED6\u4EBA\u4E3E\u62A5\u60A8\u6709\u8FDD\u53CD\u672C\u534F\u8BAE\u4EFB\u4F55\u884C\u4E3A\u7684\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u6709\u6743\u8FDB\u884C\u72EC\u7ACB\u5224\u65AD\u5E76\u91C7\u53D6\u6280\u672F\u624B\u6BB5\u4E88\u4EE5\u5220\u9664\u3001\u5C4F\u853D\u6216\u65AD\u5F00\u76F8\u5173\u7684\u4FE1\u606F\u3002\u540C\u65F6\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u6709\u6743\u89C6\u60A8\u7684\u884C\u4E3A\u6027\u8D28\uFF0C\u5BF9\u60A8\u91C7\u53D6\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u6682\u505C\u6216\u7EC8\u6B62\u90E8\u5206\u6216\u5168\u90E8\u672C\u670D\u52A1\u3001\u4E2D\u6B62\u6216\u7EC8\u6B62\u60A8\u5BF9\u8D26\u53F7\u7684\u4F7F\u7528\u3001\u8FFD\u7A76\u6CD5\u5F8B\u8D23\u4EFB\u7B49\u63AA\u65BD\uFF0C\u800C\u7531\u6B64\u7ED9\u60A8\u5E26\u6765\u7684\u635F\u5931\uFF08\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u901A\u4FE1\u4E2D\u65AD\u3001\u76F8\u5173\u6570\u636E\u6E05\u7A7A\u3001\u670D\u52A1\u8D39\u7528\u4F5C\u4E3A\u8FDD\u7EA6\u91D1\u800C\u5F52\u5927\u9053\u4E91\u5E73\u53F0\u6240\u6709\u7B49\uFF09\uFF0C\u7531\u60A8\u81EA\u884C\u627F\u62C5\uFF0C\u9020\u6210\u5927\u9053\u4E91\u5E73\u53F0\u635F\u5931\u7684\uFF0C\u60A8\u4E5F\u5E94\u4E88\u4EE5\u8D54\u507F\u3002\u82E5\u5927\u9053\u4E91\u5E73\u53F0\u4F9D\u524D\u8FF0\u7EA6\u5B9A\u5BF9\u60A8\u91C7\u53D6\u6682\u505C\u6216\u7EC8\u6B62\u90E8\u5206\u6216\u5168\u90E8\u672C\u670D\u52A1\u7684\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u9700\u5411\u60A8\u9000\u8FD8\u4EFB\u4F55\u8D39\u7528\uFF0C\u5269\u4F59\u7684\u670D\u52A1\u8D39\u7528\uFF0C\u4F5C\u4E3A\u8FDD\u7EA6\u91D1\u800C\u5F52\u5927\u9053\u4E91\u5E73\u53F0\u6240\u6709\u3002</p><p>\xA0</p><p>7.2\u3010\u5BF9\u7B2C\u4E09\u65B9\u635F\u5BB3\u7684\u5904\u7406\u3011</p><p>\u60A8\u6709\u8FDD\u53CD\u672C\u534F\u8BAE\u4EFB\u4F55\u884C\u4E3A\uFF0C\u5BFC\u81F4\u4EFB\u4F55\u7B2C\u4E09\u65B9\u635F\u5BB3\u7684\uFF0C\u60A8\u5E94\u5F53\u72EC\u7ACB\u627F\u62C5\u8D23\u4EFB\uFF1B\u5927\u9053\u4E91\u5E73\u53F0\u56E0\u6B64\u906D\u53D7\u635F\u5931\u7684\uFF0C\u60A8\u4E5F\u5E94\u5F53\u4E00\u5E76\u8D54\u507F\u3002</p><p>\xA0</p><p>7.3\u3010\u5355\u65B9\u63D0\u524D\u7EC8\u6B62\u670D\u52A1\u3011</p><p>\u60A8\u5145\u5206\u4E86\u89E3\u5E76\u540C\u610F\uFF0C\u60A8\u5728\u9009\u62E9\u4F7F\u7528\u672C\u670D\u52A1\u540E\uFF0C\u82E5\u60A8\u5728\u65E0\u4EFB\u4F55\u6CD5\u5B9A\u6216\u7EA6\u5B9A\u7406\u7531\u7684\u60C5\u51B5\u4E4B\u4E0B\uFF0C\u5355\u65B9\u8981\u6C42\u63D0\u524D\u7EC8\u6B62\u672C\u670D\u52A1\u7684\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u9700\u5411\u60A8\u9000\u8FD8\u4EFB\u4F55\u8D39\u7528\uFF0C\u5269\u4F59\u7684\u670D\u52A1\u8D39\u7528\uFF0C\u4F5C\u4E3A\u8FDD\u7EA6\u91D1\u800C\u5F52\u5927\u9053\u4E91\u5E73\u53F0\u6240\u6709\u3002</p><p>\xA0</p><p>\u516B\u3001\u514D\u8D23\u6761\u6B3E</p><p>\xA0</p><p>8.1 \u60A8\u7406\u89E3\u5E76\u540C\u610F\uFF1A\u5728\u4F7F\u7528\u672C\u670D\u52A1\u7684\u8FC7\u7A0B\u4E2D\uFF0C\u53EF\u80FD\u4F1A\u56E0\u4E0D\u53EF\u6297\u529B\u800C\u4F7F\u672C\u670D\u52A1\u53D1\u751F\u4E2D\u65AD\uFF0C\u5E76\u56E0\u6B64\u800C\u5F15\u53D1\u635F\u5BB3\u3002\u4E0D\u53EF\u6297\u529B\u662F\u6307\u4E0D\u80FD\u9884\u89C1\u3001\u4E0D\u80FD\u514B\u670D\u5E76\u4E0D\u80FD\u907F\u514D\u4E14\u5BF9\u4E00\u65B9\u6216\u53CC\u65B9\u9020\u6210\u91CD\u5927\u5F71\u54CD\u7684\u5BA2\u89C2\u4E8B\u4EF6\uFF0C\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u81EA\u7136\u707E\u5BB3\u5982\u6D2A\u6C34\u3001\u5730\u9707\u3001\u98CE\u66B4\u3001\u75AB\u60C5\u7B49\u4EE5\u53CA\u793E\u4F1A\u4E8B\u4EF6\u5982\u6218\u4E89\u3001\u52A8\u4E71\u3001\u653F\u5E9C\u884C\u4E3A\u7B49\u3002\u51FA\u73B0\u4E0A\u8FF0\u60C5\u51B5\u65F6\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u5C06\u52AA\u529B\u5728\u7B2C\u4E00\u65F6\u95F4\u4E0E\u76F8\u5173\u5355\u4F4D\u914D\u5408\uFF0C\u53CA\u65F6\u8FDB\u884C\u4FEE\u590D\uFF0C\u82E5\u7531\u6B64\u7ED9\u60A8\u9020\u6210\u635F\u5931\u7684\uFF0C\u60A8\u540C\u610F\u653E\u5F03\u8FFD\u7A76\u5927\u9053\u4E91\u5E73\u53F0\u7684\u8D23\u4EFB\u3002</p><p>8.2\u60A8\u7406\u89E3\u5E76\u540C\u610F\uFF1A\u82E5\u7531\u4E8E\u4EE5\u4E0B\u60C5\u5F62\u5BFC\u81F4\u7684\u529F\u80FD\u4E2D\u65AD\u6216\u53D7\u963B\uFF0C\u5927\u9053\u4E91\u5E73\u53F0\u5E76\u4E0D\u627F\u62C5\u4EFB\u4F55\u6CD5\u5F8B\u8D23\u4EFB\uFF1A</p><p>8.2.1\u53D7\u5230\u8BA1\u7B97\u673A\u75C5\u6BD2\u3001\u6728\u9A6C\u6216\u5176\u4ED6\u6076\u610F\u7A0B\u5E8F\u3001\u9ED1\u5BA2\u653B\u51FB\u7684\u7834\u574F\uFF1B</p><p>8.2.2\u60A8\u64CD\u4F5C\u4E0D\u5F53\uFF1B</p><p>8.2.3\u5176\u4ED6\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u6CD5\u63A7\u5236\u6216\u5408\u7406\u9884\u89C1\u7684\u60C5\u5F62\u3002</p><p>\xA0</p><p>\u4E5D\u3001\u5176\u4ED6</p><p>\xA0</p><p>9.1\u3010\u534F\u8BAE\u7684\u751F\u6548\u4E0E\u53D8\u66F4\u3011</p><p>\u60A8\u4F7F\u7528\u672C\u670D\u52A1\u5373\u89C6\u4E3A\u60A8\u5DF2\u9605\u8BFB\u5E76\u540C\u610F\u53D7\u672C\u534F\u8BAE\u7684\u7EA6\u675F\u3002\u5927\u9053\u4E91\u5E73\u53F0\u6709\u6743\u5728\u5FC5\u8981\u65F6\u4FEE\u6539\u672C\u534F\u8BAE\u6761\u6B3E\u3002\u60A8\u53EF\u4EE5\u5728\u76F8\u5173\u9875\u9762\u4E2D\u67E5\u9605\u6700\u65B0\u7684\u534F\u8BAE\u6761\u6B3E\u3002\u672C\u534F\u8BAE\u6761\u6B3E\u53D8\u66F4\u540E\uFF0C\u5982\u679C\u60A8\u7EE7\u7EED\u4F7F\u7528\u672C\u670D\u52A1\uFF0C\u5373\u89C6\u4E3A\u60A8\u5DF2\u63A5\u53D7\u4FEE\u6539\u540E\u7684\u534F\u8BAE\u3002\u5982\u679C\u60A8\u4E0D\u63A5\u53D7\u4FEE\u6539\u540E\u7684\u534F\u8BAE\uFF0C\u5E94\u5F53\u505C\u6B62\u4F7F\u7528\u672C\u670D\u52A1\u3002</p><p>9.2\u3010\u534F\u8BAE\u7B7E\u8BA2\u5730\u3011</p><p>\u672C\u534F\u8BAE\u7B7E\u8BA2\u5730\u4E3A\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD\u6DF1\u5733\u5E02\u5357\u5C71\u533A\u3002</p><p>9.3\u3010\u9002\u7528\u6CD5\u5F8B\u3011</p><p>\u672C\u534F\u8BAE\u7684\u6210\u7ACB\u3001\u751F\u6548\u3001\u5C65\u884C\u3001\u89E3\u91CA\u53CA\u7EA0\u7EB7\u89E3\u51B3\uFF0C\u9002\u7528\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD\u5927\u9646\u5730\u533A\u6CD5\u5F8B\uFF08\u4E0D\u5305\u62EC\u51B2\u7A81\u6CD5\uFF09\u3002</p><p>9.4\u3010\u4E89\u8BAE\u89E3\u51B3\u3011</p><p>\u82E5\u60A8\u548C\u5927\u9053\u4E91\u5E73\u53F0\u4E4B\u95F4\u53D1\u751F\u4EFB\u4F55\u7EA0\u7EB7\u6216\u4E89\u8BAE\uFF0C\u9996\u5148\u5E94\u53CB\u597D\u534F\u5546\u89E3\u51B3\uFF1B\u534F\u5546\u4E0D\u6210\u7684\uFF0C\u5404\u65B9\u5171\u540C\u7EA6\u5B9A\uFF0C\u51E1\u56E0\u672C\u534F\u8BAE\u5F15\u8D77\u7684\u6216\u4E0E\u672C\u534F\u8BAE\u6709\u5173\u7684\u4EFB\u4F55\u4E89\u8BAE\uFF0C\u5747\u63D0\u4EA4\u6E5B\u6C5F\u4EF2\u88C1\u59D4\u5458\u4F1A\u4F9D\u5176\u89C4\u5219\u548C\u56FD\u5BB6\u6CD5\u5F8B\u6CD5\u89C4\u4ECE\u901F\u4EF2\u88C1\u3002</p><p>9.5\u3010\u6761\u6B3E\u6807\u9898\u3011</p><p>\u672C\u534F\u8BAE\u6240\u6709\u6761\u6B3E\u7684\u6807\u9898\u4EC5\u4E3A\u9605\u8BFB\u65B9\u4FBF\uFF0C\u672C\u8EAB\u5E76\u65E0\u5B9E\u9645\u6DB5\u4E49\uFF0C\u4E0D\u80FD\u4F5C\u4E3A\u672C\u534F\u8BAE\u6DB5\u4E49\u89E3\u91CA\u7684\u4F9D\u636E\u3002</p><p>9.6\u3010\u6761\u6B3E\u6548\u529B\u3011</p><p>\u672C\u534F\u8BAE\u6761\u6B3E\u65E0\u8BBA\u56E0\u4F55\u79CD\u539F\u56E0\u90E8\u5206\u65E0\u6548\u6216\u4E0D\u53EF\u6267\u884C\uFF0C\u5176\u4F59\u6761\u6B3E\u4ECD\u6709\u6548\uFF0C\u5BF9\u53CC\u65B9\u4ECD\u5177\u6709\u7EA6\u675F\u529B\u3002</p>", 93);
111
+ const _hoisted_95 = [
112
+ _hoisted_2$7
113
+ ];
114
+ function render(_ctx, _cache) {
115
+ return openBlock(), createElementBlock("view", _hoisted_1$8, [..._hoisted_95]);
116
+ }
117
+
118
+ var css_248z$9 = ".agreement-doc {\n padding: 1em;\n padding-top: 4em;\n font-size: 12px;\n}\n.agreement-doc h1 {\n font-size: 20px;\n}\n.agreement-doc p {\n margin: 0;\n}";
119
+ styleInject(css_248z$9);
120
+
121
+ const script$9 = {};
122
+
123
+ script$9.render = render;
124
+ script$9.__file = "src/payment/components/UserAgreement.vue";
125
+
126
+ function requestPayment$1(json) {
127
+ return new Promise((resolve, reject) => {
128
+ const success = (message) => {
129
+ resolve(true);
130
+ };
131
+ const fail = (message) => {
132
+ resolve(false);
133
+ };
134
+ wx.requestPayment({
135
+ ...json,
136
+ success,
137
+ fail
138
+ });
139
+ });
140
+ }
141
+
142
+ const _hoisted_1$7 = {
143
+ key: 0,
144
+ class: "page-title"
145
+ };
146
+ var script$8 = /* @__PURE__ */ defineComponent({
147
+ __name: "PageHeader",
148
+ props: {
149
+ title: { type: String, required: false, default: "" },
150
+ colorMode: { type: String, required: false, default: "light" }
151
+ },
152
+ emits: ["close"],
153
+ setup(__props, { emit: __emit }) {
154
+ const emit = __emit;
155
+ const onBackButtonClick = () => {
156
+ emit("close");
157
+ };
158
+ return (_ctx, _cache) => {
159
+ return openBlock(), createElementBlock(
160
+ "view",
161
+ {
162
+ class: normalizeClass([
163
+ "page-header",
164
+ `color-mode-${_ctx.colorMode}`
165
+ ])
166
+ },
167
+ [
168
+ _ctx.title ? (openBlock(), createElementBlock(
169
+ "h1",
170
+ _hoisted_1$7,
171
+ toDisplayString(_ctx.title),
172
+ 1
173
+ /* TEXT */
174
+ )) : createCommentVNode("v-if", true),
175
+ createElementVNode("view", {
176
+ class: "back-button",
177
+ onClick: onBackButtonClick
178
+ }),
179
+ renderSlot(_ctx.$slots, "default")
180
+ ],
181
+ 2
182
+ /* CLASS */
183
+ );
184
+ };
185
+ }
186
+ });
187
+
188
+ var css_248z$8 = ".page-header {\n flex-shrink: 0;\n position: relative;\n height: 172px;\n padding: 1em;\n box-sizing: border-box;\n margin-left: -12px;\n margin-right: -12px;\n width: calc(100% + 24px);\n}\n.page-header .page-title {\n position: absolute;\n font-size: 18px;\n width: 100%;\n height: 44px;\n top: 44px;\n left: 0;\n line-height: 44px;\n text-align: center;\n}\n.page-header .back-button {\n position: absolute;\n top: 44px;\n left: 10px;\n width: 44px;\n height: 44px;\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4wMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjk5OTg3OCA0MUw0MC45OTk5IDQxTDQwLjk5OTkgMUwwLjk5OTg3OCAxTDAuOTk5ODc4IDQxWiIgZmlsbD0iI0Q4RDhEOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMDEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi45OTMzIDE4Ljk0NzdDMTEuODYzMyAyMC4wMTQ1IDExLjgxMiAyMS43OTU0IDEyLjg3ODggMjIuOTI1NUwyNy45MTA1IDM3LjEzNDVDMjguNjkyNSAzNy44NzM0IDI5LjkyNTUgMzcuODM4NCAzMC42NjQ0IDM3LjA1NjRDMzEuMzY4MSAzNi4zMTE2IDMxLjM2OTkgMzUuMTU3OSAzMC42OTI5IDM0LjQxMTRMMTYuNTAxMiAyMC45OTM5TDMwLjU4NTcgNy42OTc4NUMzMS4zMzA4IDYuOTk0NDkgMzEuMjk4MiA1LjcyNzk1IDMwLjY2NDkgNC45NDQwMkMyOS45NjE2IDQuMTk4OTUgMjguODA5OCA0LjEzMTI5IDI4LjAyNTkgNC43NjQ1MkwxMi45OTMzIDE4Ljk0NzdaIiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMDEiLz4KPC9zdmc+Cg==\");\n background-size: 22px;\n background-repeat: no-repeat;\n background-position: center center;\n}\n.page-header.color-mode-dark {\n color: var(--text-color-dark-mode, \"#fff\");\n}\n.page-header.color-mode-dark .back-button {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4wMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjk5OTg0NyA0MUw0MC45OTk4IDQxTDQwLjk5OTggMUwwLjk5OTg0NyAxTDAuOTk5ODQ3IDQxWiIgZmlsbD0iI0Q4RDhEOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMDEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi45OTM0IDE4Ljk0NzVDMTEuODYzNCAyMC4wMTQzIDExLjgxMjEgMjEuNzk1MiAxMi44Nzg5IDIyLjkyNTJMMjcuOTEwNiAzNy4xMzQzQzI4LjY5MjcgMzcuODczMSAyOS45MjU2IDM3LjgzODIgMzAuNjY0NSAzNy4wNTYyQzMxLjM2ODIgMzYuMzExNCAzMS4zNyAzNS4xNTc2IDMwLjY5MyAzNC40MTExTDE2LjUwMTMgMjAuOTkzNkwzMC41ODU4IDcuNjk3NjFDMzEuMzMwOSA2Ljk5NDI0IDMxLjI5ODMgNS43Mjc3MSAzMC42NjUxIDQuOTQzNzdDMjkuOTYxNyA0LjE5ODcxIDI4LjgwOTkgNC4xMzEwNCAyOC4wMjYgNC43NjQyN0wxMi45OTM0IDE4Ljk0NzVaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMDEiLz4KPC9zdmc+Cg==\");\n}";
189
+ styleInject(css_248z$8);
190
+
191
+ script$8.__file = "src/shared/components/PageHeader.vue";
192
+
193
+ var script$7 = /* @__PURE__ */ defineComponent({
194
+ __name: "AppDrawer",
195
+ props: {
196
+ modelValue: { type: Boolean, required: true },
197
+ title: { type: String, required: false }
198
+ },
199
+ emits: ["update:modelValue"],
200
+ setup(__props, { emit: __emit }) {
201
+ const emit = __emit;
202
+ const onVisibleChange = (value) => {
203
+ emit("update:modelValue", value);
204
+ };
205
+ const onPageHeaderClose = () => {
206
+ emit("update:modelValue", false);
207
+ };
208
+ return (_ctx, _cache) => {
209
+ const _component_nut_popup = resolveComponent("nut-popup");
210
+ return openBlock(), createBlock(_component_nut_popup, {
211
+ class: normalizeClass([
212
+ "app-drawer",
213
+ {
214
+ open: _ctx.modelValue
215
+ }
216
+ ]),
217
+ position: "right",
218
+ visible: _ctx.modelValue,
219
+ "onUpdate:visible": onVisibleChange
220
+ }, {
221
+ default: withCtx(() => [
222
+ createVNode(script$8, {
223
+ title: _ctx.title,
224
+ onClose: onPageHeaderClose
225
+ }, null, 8, ["title"]),
226
+ renderSlot(_ctx.$slots, "default")
227
+ ]),
228
+ _: 3
229
+ /* FORWARDED */
230
+ }, 8, ["class", "visible"]);
231
+ };
232
+ }
233
+ });
234
+
235
+ var css_248z$7 = ".app-drawer {\n position: absolute;\n height: 0;\n}\n.app-drawer.open {\n height: 100vh;\n}";
236
+ styleInject(css_248z$7);
237
+
238
+ script$7.__file = "src/shared/components/AppDrawer.vue";
239
+
240
+ var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
241
+ HttpMethod2["get"] = "GET";
242
+ HttpMethod2["post"] = "POST";
243
+ HttpMethod2["put"] = "PUT";
244
+ HttpMethod2["delete"] = "DELETE";
245
+ return HttpMethod2;
246
+ })(HttpMethod || {});
247
+
248
+ const defaultClientConfig = {
249
+ baseUrl: "https://ytech.ddjf.com",
250
+ response: {
251
+ getCode: (data) => data.code,
252
+ getMessage: (data) => data.msg,
253
+ getData: (data) => data.result
254
+ }
255
+ };
256
+ let clientConfig = {
257
+ ...defaultClientConfig
258
+ };
259
+ const request = (config) => {
260
+ return new Promise((resolve, reject) => {
261
+ const data = config.data && clientConfig.translates && clientConfig.translates[config.url] ? clientConfig.translates[config.url](config.data) : config.data;
262
+ Taro.request({
263
+ url: `${clientConfig.baseUrl}${config.url}`,
264
+ data,
265
+ header: clientConfig.header,
266
+ method: config.method,
267
+ success(res) {
268
+ if (!isSuccess(res)) {
269
+ reject({});
270
+ }
271
+ const { data: raw } = res;
272
+ if (clientConfig.interceptors?.auth(raw)) {
273
+ clientConfig.onAuthError?.();
274
+ reject("auth failed");
275
+ }
276
+ if (clientConfig.interceptors?.server(raw)) {
277
+ clientConfig.onServerError?.();
278
+ reject("server error");
279
+ }
280
+ const response = clientConfig.response?.getData(raw);
281
+ if (response) {
282
+ resolve(clientConfig.transforms && clientConfig.transforms[config.url] ? clientConfig.transforms[config.url](response) : response);
283
+ } else {
284
+ reject({});
285
+ }
286
+ },
287
+ fail(res) {
288
+ console.log("HTTP failed", res);
289
+ }
290
+ });
291
+ });
292
+ };
293
+ const get = (url, data) => {
294
+ return request({
295
+ url,
296
+ data,
297
+ method: HttpMethod.get
298
+ });
299
+ };
300
+ const post = (url, data) => {
301
+ return request({
302
+ url,
303
+ data,
304
+ method: HttpMethod.post
305
+ });
306
+ };
307
+ function useHttp(config) {
308
+ clientConfig = {
309
+ ...defaultClientConfig,
310
+ ...config
311
+ };
312
+ return {
313
+ request,
314
+ get,
315
+ post
316
+ };
317
+ }
318
+ const successResonseCodes = [
319
+ "200"
320
+ ];
321
+ function isSuccess(res) {
322
+ return /^2/.test(res.statusCode.toString()) && successResonseCodes.includes(`${clientConfig.response?.getCode(res.data)}`);
323
+ }
324
+
325
+ const endpointsList$1 = {
326
+ /**
327
+ * 获取充值套餐包列表
328
+ * (查询某应用某场景可充值的金额列表)
329
+ * http://ytech.dev.ddjf.info/payment/doc.html#/%E5%AE%A2%E6%88%B7%E5%9F%9FAPI/%E6%94%AF%E4%BB%98%E4%B8%AD%E5%BF%83-%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3/getRechargeListUsingGET
330
+ */
331
+ getPackages: {
332
+ path: "/payment/outer/payment/getRechargeList",
333
+ translate: (data) => ({
334
+ appCode: data.app,
335
+ caseCode: "recharge",
336
+ // 这个参数可以不要
337
+ tenantId: data.tenant
338
+ }),
339
+ transform: (data) => data.amountList.map((d) => ({
340
+ token: d.desc,
341
+ amount: d.amount
342
+ }))
343
+ },
344
+ /**
345
+ * 查询支付参数包
346
+ * (获取拉起微信支付用的JSON串)
347
+ * http://ytech.dev.ddjf.info/payment/doc.html#/%E5%AE%A2%E6%88%B7%E5%9F%9FAPI/%E6%94%AF%E4%BB%98%E4%B8%AD%E5%BF%83-%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3/rechargePayUsingPOST
348
+ */
349
+ getPayParams: {
350
+ // {
351
+ // "amount": 100,
352
+ // "appCode": "crm",
353
+ // "caseCode": "aiApproveRecharge",
354
+ // "tenantId": "17454646",
355
+ // "transFlowNo": "4343244",
356
+ // "certificateNo": "o7k8L0QTqcwRIBKVUPzI7iPfghLM"
357
+ // }
358
+ path: "/payment/outer/payment/rechargePay",
359
+ translate: (params) => ({
360
+ amount: params.amount,
361
+ appCode: params.app,
362
+ // caseCode: data.stage, 这个参数可以不传
363
+ tenantId: params.tenant,
364
+ // transFlowNo: '4343244', 这个参数可以不传
365
+ certificateNo: params.user
366
+ }),
367
+ transform: (data) => {
368
+ let json = null;
369
+ try {
370
+ json = JSON.parse(data.prePayStr);
371
+ } catch (e) {
372
+ }
373
+ return {
374
+ json,
375
+ // 拉起微信支付用的JSON串
376
+ paymentId: data.payId
377
+ // 查询用支付ID
378
+ };
379
+ }
380
+ }
381
+ };
382
+ const endpoints$1 = Object.fromEntries(
383
+ Object.entries(endpointsList$1).map(([name, def]) => [name, def.path])
384
+ );
385
+ const translates$1 = Object.fromEntries(
386
+ Object.entries(endpointsList$1).map(([, def]) => [def.path, def.translate])
387
+ );
388
+ const transforms$1 = Object.fromEntries(
389
+ Object.entries(endpointsList$1).map(([, def]) => [def.path, def.transform])
390
+ );
391
+
392
+ const globalData = {};
393
+
394
+ const appKitOptions = {
395
+ token: () => "",
396
+ baseUrl: () => ""
397
+ };
398
+ const useAppKitOptions = () => {
399
+ if (!globalData.$appKitOptions) {
400
+ globalData.$appKitOptions = appKitOptions;
401
+ }
402
+ return globalData.$appKitOptions;
403
+ };
404
+
405
+ const makeHttp$1 = () => {
406
+ const appkitOptions = useAppKitOptions();
407
+ const header = {
408
+ Token: appkitOptions.token()
409
+ };
410
+ const $http = useHttp({
411
+ baseUrl: appkitOptions.baseUrl(),
412
+ header,
413
+ translates: translates$1,
414
+ transforms: transforms$1
415
+ });
416
+ return $http;
417
+ };
418
+
419
+ const requestPayment = (params) => {
420
+ return new Promise((resolve, reject) => {
421
+ const $http = makeHttp$1();
422
+ $http.post(endpoints$1.getPayParams, {
423
+ ...params,
424
+ amount: 0.01
425
+ }).then((response) => {
426
+ requestPayment$1(response.json).then((result) => {
427
+ if (result) {
428
+ resolve(true);
429
+ } else {
430
+ resolve(false);
431
+ }
432
+ });
433
+ });
434
+ });
435
+ };
436
+
437
+ const _hoisted_1$6 = { class: "view recharge-view" };
438
+ const _hoisted_2$6 = { class: "flex-grow" };
439
+ const _hoisted_3$6 = { class: "amount-footer" };
440
+ const _hoisted_4$5 = { class: "agreement" };
441
+ var script$6 = /* @__PURE__ */ defineComponent({
442
+ __name: "RechargeView",
443
+ props: {
444
+ app: { type: String, required: true },
445
+ tenant: { type: String, required: true }
446
+ },
447
+ emits: ["complete"],
448
+ setup(__props, { emit: __emit }) {
449
+ const props = __props;
450
+ const emit = __emit;
451
+ const state = reactive({
452
+ agreed: false,
453
+ agreementOpen: false,
454
+ selected: 0
455
+ });
456
+ const amounts = ref([
457
+ {
458
+ token: 1e3,
459
+ amount: 100
460
+ }
461
+ ]);
462
+ const onAgreementLinkClick = ($event) => {
463
+ state.agreementOpen = true;
464
+ };
465
+ onMounted(() => {
466
+ const $http = makeHttp$1();
467
+ $http.get(endpoints$1.getPackages, {
468
+ app: props.app,
469
+ // stage: 'aiApproveRecharge', // 支付场景
470
+ tenant: props.tenant
471
+ }).then((response) => {
472
+ amounts.value = response;
473
+ });
474
+ });
475
+ const onPayClick = () => {
476
+ if (!state.agreed) {
477
+ Taro.showToast({
478
+ title: "\u8BF7\u52FE\u9009\u5145\u503C\u534F\u8BAE",
479
+ icon: "none"
480
+ });
481
+ return false;
482
+ }
483
+ wx.login({
484
+ success({ code }) {
485
+ requestPayment({
486
+ amount: amounts.value[state.selected].amount,
487
+ app: props.app,
488
+ // 'crm',
489
+ tenant: props.tenant,
490
+ // '17454646',
491
+ user: code
492
+ }).then((result) => {
493
+ emit("complete", result);
494
+ });
495
+ }
496
+ });
497
+ };
498
+ return (_ctx, _cache) => {
499
+ const _component_nut_checkbox = resolveComponent("nut-checkbox");
500
+ const _component_nut_button = resolveComponent("nut-button");
501
+ return openBlock(), createElementBlock("view", _hoisted_1$6, [
502
+ createElementVNode("view", _hoisted_2$6, [
503
+ createVNode(script$a, {
504
+ items: amounts.value,
505
+ selected: state.selected
506
+ }, null, 8, ["items", "selected"])
507
+ ]),
508
+ createElementVNode("view", _hoisted_3$6, [
509
+ createElementVNode("view", _hoisted_4$5, [
510
+ createVNode(_component_nut_checkbox, {
511
+ modelValue: state.agreed,
512
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.agreed = $event)
513
+ }, {
514
+ default: withCtx(() => [
515
+ createTextVNode("\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F"),
516
+ createElementVNode("a", {
517
+ class: "link inline",
518
+ onClick: onAgreementLinkClick
519
+ }, "\u300A\u5927\u9053\u4E91\u5E73\u53F0\u4E91\u8C46\u5145\u503C\u670D\u52A1\u534F\u8BAE\u300B")
520
+ ]),
521
+ _: 1
522
+ /* STABLE */
523
+ }, 8, ["modelValue"])
524
+ ]),
525
+ createVNode(_component_nut_button, {
526
+ block: "",
527
+ shape: "square",
528
+ onClick: onPayClick,
529
+ class: "recharge-button"
530
+ }, {
531
+ default: withCtx(() => [
532
+ createTextVNode("\u7ACB\u5373\u5145\u503C")
533
+ ]),
534
+ _: 1
535
+ /* STABLE */
536
+ })
537
+ ]),
538
+ createVNode(unref(script$7), {
539
+ modelValue: state.agreementOpen,
540
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.agreementOpen = $event),
541
+ title: "\u5145\u503C\u534F\u8BAE"
542
+ }, {
543
+ default: withCtx(() => [
544
+ createVNode(script$9)
545
+ ]),
546
+ _: 1
547
+ /* STABLE */
548
+ }, 8, ["modelValue"])
549
+ ]);
550
+ };
551
+ }
552
+ });
553
+
554
+ var css_248z$6 = ".recharge-view {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.recharge-view .flex-grow {\n flex-grow: 1;\n}\n.recharge-view .amount-footer {\n padding: 10px;\n}\n.recharge-view .amount-footer .agreement {\n font-size: 12px;\n display: flex;\n justify-content: center;\n align-items: cebter;\n height: 40px;\n}\n.recharge-view .amount-footer .recharge-button {\n background: linear-gradient(90deg, #FFEBC1 0%, #FFD7A7 52.29%, #FFB875 100%);\n color: #353535;\n margin: 12px 0;\n border: 0;\n}\n.recharge-view .amount-footer .nut-checkbox {\n line-height: 40px;\n}\n.recharge-view .amount-footer .nut-checkbox__label {\n margin-left: 8px;\n flex: flex;\n font-size: 12px;\n}\n.recharge-view .amount-footer .link {\n display: inline;\n color: #FD6701;\n}";
555
+ styleInject(css_248z$6);
556
+
557
+ script$6.__file = "src/payment/components/RechargeView.vue";
558
+
559
+ const components = {
560
+ AmountPicker: script$a,
561
+ RechargeView: script$6,
562
+ UserAgreement: script$9
563
+ };
564
+
565
+ const typeMappings = {
566
+ "CZ": "\u5145\u503C",
567
+ "JF": "\u7F34\u8D39",
568
+ "FE": "\u8FD4\u989D",
569
+ "ZJ": "\u589E\u52A0",
570
+ "KJ": "\u6263\u51CF",
571
+ "XH": "\u6D88\u8017",
572
+ "TH": "\u9000\u56DE"
573
+ };
574
+ const typeMappingsReversed = Object.fromEntries(
575
+ Object.entries(typeMappings).map(([x, y]) => [y, x])
576
+ );
577
+ const positionMappings = {
578
+ "common": "\u4E91\u8C46",
579
+ "rights": "\u5C0F\u4E91\u8C46"
580
+ };
581
+ const positionMappingsReversed = Object.fromEntries(
582
+ Object.entries(positionMappings).map(([x, y]) => [y, x])
583
+ );
584
+ const directionMappings = {
585
+ 0: "\u6536\u5165",
586
+ 1: "\u652F\u51FA"
587
+ };
588
+ const directionMappingsReversed = Object.fromEntries(
589
+ Object.entries(directionMappings).map(([x, y]) => [y, x])
590
+ );
591
+ const endpointsList = {
592
+ /**
593
+ * 余额明细
594
+ */
595
+ getBalance: {
596
+ path: "/ac-app/account/info/detail/app",
597
+ translate: (data) => ({
598
+ // appCode: 'fnfundkit',
599
+ // tenantCode: '1665925586953629696',
600
+ }),
601
+ transform(result) {
602
+ return {
603
+ total: result.commonAccount,
604
+ privileges: result.rightsAccountBalList.map((r) => ({
605
+ title: r.rightsName,
606
+ amount: r.rightsAccount
607
+ }))
608
+ };
609
+ }
610
+ },
611
+ /**
612
+ * 账户流水明细
613
+ */
614
+ getOperations: {
615
+ path: "/ac-app/account/record/detail/mobile",
616
+ translate: (data) => {
617
+ return {
618
+ accountType: positionMappingsReversed[data.position] || "",
619
+ inOrOut: directionMappingsReversed[data.direction] || "",
620
+ changeType: typeMappingsReversed[data.type] || "",
621
+ operateTimeEnd: data.dateFrom || "",
622
+ operateTimeStart: data.dateTo || ""
623
+ };
624
+ },
625
+ transform(result) {
626
+ if (!result.accountRecordDetailDailyList)
627
+ return [];
628
+ const data = {
629
+ from: result.operateTimeStart,
630
+ to: result.operateTimeEnd,
631
+ list: result.accountRecordDetailDailyList.map((r) => ({
632
+ date: r.operateTime,
633
+ consumptions: r.accountRecordDetailList.map((d) => ({
634
+ position: positionMappings[d.accountTYpe],
635
+ type: typeMappings[d.changeType],
636
+ direction: directionMappings[d.inOrOut],
637
+ amount: d.changeValue,
638
+ title: d.rightsName,
639
+ description: d.remark
640
+ }))
641
+ }))
642
+ };
643
+ return data;
644
+ }
645
+ }
646
+ };
647
+ const endpoints = Object.fromEntries(
648
+ Object.entries(endpointsList).map(([name, def]) => [name, def.path])
649
+ );
650
+ const translates = Object.fromEntries(
651
+ Object.entries(endpointsList).map(([, def]) => [def.path, def.translate])
652
+ );
653
+ const transforms = Object.fromEntries(
654
+ Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
655
+ );
656
+
657
+ const makeHttp = () => {
658
+ const appkitOptions = useAppKitOptions();
659
+ const header = {
660
+ Token: appkitOptions.token()
661
+ };
662
+ const $http = useHttp({
663
+ baseUrl: appkitOptions.baseUrl(),
664
+ header,
665
+ translates,
666
+ transforms
667
+ });
668
+ return $http;
669
+ };
670
+
671
+ const _hoisted_1$5 = { class: "account-card" };
672
+ const _hoisted_2$5 = { class: "card" };
673
+ const _hoisted_3$5 = { class: "card-row" };
674
+ const _hoisted_4$4 = { class: "card-row-left" };
675
+ const _hoisted_5$4 = /* @__PURE__ */ createElementVNode(
676
+ "div",
677
+ { class: "bean-box" },
678
+ [
679
+ /* @__PURE__ */ createElementVNode("div", { class: "bean-icon-box" }, [
680
+ /* @__PURE__ */ createElementVNode("img", {
681
+ class: "bean-icon",
682
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/gold-bean.png"
683
+ })
684
+ ]),
685
+ /* @__PURE__ */ createElementVNode("span", { class: "baan-name" }, "\u4E91\u8C46")
686
+ ],
687
+ -1
688
+ /* HOISTED */
689
+ );
690
+ const _hoisted_6$3 = { class: "bean-nums" };
691
+ const _hoisted_7$3 = /* @__PURE__ */ createElementVNode(
692
+ "div",
693
+ { class: "account-info-name" },
694
+ "\u8D26\u6237\u660E\u7EC6",
695
+ -1
696
+ /* HOISTED */
697
+ );
698
+ const _hoisted_8$1 = /* @__PURE__ */ createElementVNode(
699
+ "div",
700
+ { class: "account-info-icon" },
701
+ [
702
+ /* @__PURE__ */ createElementVNode("img", {
703
+ class: "icon",
704
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/gold-to.png"
705
+ })
706
+ ],
707
+ -1
708
+ /* HOISTED */
709
+ );
710
+ const _hoisted_9$1 = [
711
+ _hoisted_7$3,
712
+ _hoisted_8$1
713
+ ];
714
+ const _hoisted_10$1 = /* @__PURE__ */ createElementVNode(
715
+ "div",
716
+ { class: "line" },
717
+ null,
718
+ -1
719
+ /* HOISTED */
720
+ );
721
+ const _hoisted_11$1 = /* @__PURE__ */ createElementVNode(
722
+ "div",
723
+ { class: "card-row-left desc" },
724
+ "\u4EC5\u4E91\u8C46\u53EF\u5145\u503C\uFF0C\u5C0F\u4E91\u8C46\u4E3A\u5E73\u53F0\u8D60\u9001",
725
+ -1
726
+ /* HOISTED */
727
+ );
728
+ const _hoisted_12$1 = /* @__PURE__ */ createElementVNode(
729
+ "div",
730
+ null,
731
+ "\u5145\u503C",
732
+ -1
733
+ /* HOISTED */
734
+ );
735
+ const _hoisted_13$1 = /* @__PURE__ */ createElementVNode(
736
+ "img",
737
+ {
738
+ class: "pay-icon",
739
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/bean-right.png"
740
+ },
741
+ null,
742
+ -1
743
+ /* HOISTED */
744
+ );
745
+ const _hoisted_14$1 = [
746
+ _hoisted_12$1,
747
+ _hoisted_13$1
748
+ ];
749
+ var script$5 = /* @__PURE__ */ defineComponent({
750
+ __name: "BalanceCard",
751
+ emits: [
752
+ /**
753
+ * 跳账户详情
754
+ */
755
+ "drill",
756
+ /**
757
+ * 跳充值页
758
+ */
759
+ "recharge"
760
+ ],
761
+ setup(__props, { emit: __emit }) {
762
+ const balance = ref({
763
+ total: 0,
764
+ privileges: []
765
+ });
766
+ const gotoRecharge = () => {
767
+ emit("recharge");
768
+ };
769
+ async function loadBalance() {
770
+ const $http = makeHttp();
771
+ $http.get(endpoints.getBalance, {}).then((data) => {
772
+ balance.value = data;
773
+ });
774
+ }
775
+ const emit = __emit;
776
+ function gotoDetail() {
777
+ emit("drill");
778
+ }
779
+ onMounted(() => {
780
+ loadBalance();
781
+ });
782
+ return (_ctx, _cache) => {
783
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
784
+ createElementVNode("div", _hoisted_2$5, [
785
+ createElementVNode("div", _hoisted_3$5, [
786
+ createElementVNode("div", _hoisted_4$4, [
787
+ _hoisted_5$4,
788
+ createElementVNode(
789
+ "div",
790
+ _hoisted_6$3,
791
+ toDisplayString(balance.value.total),
792
+ 1
793
+ /* TEXT */
794
+ )
795
+ ]),
796
+ createElementVNode("div", { class: "card-row-right" }, [
797
+ createElementVNode("div", {
798
+ class: "account-info-entry",
799
+ onClick: gotoDetail
800
+ }, [..._hoisted_9$1])
801
+ ])
802
+ ]),
803
+ _hoisted_10$1,
804
+ createElementVNode("div", { class: "card-row" }, [
805
+ _hoisted_11$1,
806
+ createElementVNode("div", { class: "card-row-right" }, [
807
+ createElementVNode("div", {
808
+ class: "pay",
809
+ onClick: gotoRecharge
810
+ }, [..._hoisted_14$1])
811
+ ])
812
+ ])
813
+ ])
814
+ ]);
815
+ };
816
+ }
817
+ });
818
+
819
+ var css_248z$5 = ".account-card .card {\n background: #2F2F2F;\n border-radius: 10px;\n padding: 13px 20px;\n margin: 0;\n}\n.account-card .card .card-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.account-card .card .card-row .card-row-left {\n display: flex;\n flex-direction: column;\n}\n.account-card .card .card-row .card-row-left .bean-box {\n display: flex;\n align-items: center;\n}\n.account-card .card .card-row .card-row-left .bean-box .bean-icon-box {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n}\n.account-card .card .card-row .card-row-left .bean-box .bean-icon-box .bean-icon {\n display: block;\n font-size: 0;\n width: 100%;\n height: 100%;\n}\n.account-card .card .card-row .card-row-left .bean-box .baan-name {\n color: #F3D59D;\n font-weight: 600;\n font-size: 11px;\n}\n.account-card .card .card-row .card-row-left .bean-nums {\n color: #fff;\n line-height: 22px;\n font-weight: 500;\n font-size: 16px;\n margin-top: 3px;\n}\n.account-card .card .card-row .desc {\n font-size: 10px;\n color: #ccc;\n line-height: 14px;\n}\n.account-card .card .line {\n margin: 6px 0px 8px 0px;\n height: 1px;\n background: #C3C3C3;\n opacity: 0.2;\n}\n.account-card .card .card-row-right .pay {\n padding: 0 8px;\n line-height: 18px;\n color: #FFD6A5;\n border: 1px solid #FFD6A5;\n border-radius: 9px;\n font-size: 12px;\n display: flex;\n align-items: center;\n}\n.account-card .card .card-row-right .pay .pay-icon {\n display: block;\n font-size: 0;\n width: 3px;\n height: 6px;\n margin-left: 6px;\n}\n.account-card .card .card-row-right .account-info-entry {\n display: flex;\n align-items: center;\n padding: 0 10px;\n height: 28px;\n line-height: 28px;\n border-radius: 14px;\n background: linear-gradient(90deg, #FFEBC1 0%, #FFD7A7 52.29%, #FFB875 100%);\n}\n.account-card .card .card-row-right .account-info-entry .account-info-name {\n color: #975213;\n font-size: 13px;\n font-weight: 500;\n margin-right: 8px;\n}\n.account-card .card .card-row-right .account-info-entry .account-info-icon {\n width: 14px;\n height: 14px;\n border-radius: 7px;\n}\n.account-card .card .card-row-right .account-info-entry .account-info-icon .icon {\n display: block;\n font-size: 0;\n width: 100%;\n height: 100%;\n}";
820
+ styleInject(css_248z$5);
821
+
822
+ script$5.__file = "src/balance/components/BalanceCard.vue";
823
+
824
+ const consumptionTypes = [
825
+ "\u5168\u90E8",
826
+ "\u5145\u503C",
827
+ "\u7F34\u8D39",
828
+ "\u8FD4\u989D",
829
+ "\u589E\u52A0",
830
+ "\u6263\u51CF",
831
+ "\u6D88\u8017",
832
+ "\u9000\u56DE"
833
+ ];
834
+ const consumptionPositions = [
835
+ "\u5168\u90E8",
836
+ "\u4E91\u8C46",
837
+ "\u5C0F\u4E91\u8C46"
838
+ ];
839
+ const consumptionDirections = [
840
+ "\u5168\u90E8",
841
+ "\u6536\u5165",
842
+ "\u652F\u51FA"
843
+ ];
844
+
845
+ const _hoisted_1$4 = { class: "consumption-filter" };
846
+ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
847
+ "div",
848
+ { class: "consumption-filter-title" },
849
+ "\u9009\u62E9\u7B5B\u9009\u9879",
850
+ -1
851
+ /* HOISTED */
852
+ );
853
+ const _hoisted_3$4 = { class: "consumption-filter-content" };
854
+ const _hoisted_4$3 = { class: "title" };
855
+ const _hoisted_5$3 = { class: "info" };
856
+ const _hoisted_6$2 = ["onClick"];
857
+ const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
858
+ "div",
859
+ { class: "consumption-filter-bottom" },
860
+ null,
861
+ -1
862
+ /* HOISTED */
863
+ );
864
+ var script$4 = /* @__PURE__ */ defineComponent({
865
+ __name: "ConsumptionFilter",
866
+ props: {
867
+ modelValue: { type: Array, required: true, default: () => ["\u5168\u90E8", "\u5168\u90E8", "\u5168\u90E8"] }
868
+ },
869
+ emits: ["complete"],
870
+ setup(__props, { emit: __emit }) {
871
+ const props = __props;
872
+ const emit = __emit;
873
+ const result = reactive(props.modelValue);
874
+ const filterSections = [
875
+ {
876
+ title: "\u7C7B\u578B",
877
+ data: consumptionPositions
878
+ },
879
+ {
880
+ title: "\u6536\u5165/\u652F\u51FA",
881
+ data: consumptionDirections
882
+ },
883
+ {
884
+ title: "\u660E\u7EC6\u7C7B\u578B",
885
+ data: consumptionTypes
886
+ }
887
+ ];
888
+ const getItemClass = (index, value) => result[index] === value ? ["current"] : [""];
889
+ const onFilterSectionClick = (index, value) => {
890
+ result[index] = value;
891
+ };
892
+ const reset = () => {
893
+ };
894
+ const onOkClick = () => {
895
+ emit("complete", result);
896
+ };
897
+ return (_ctx, _cache) => {
898
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
899
+ _hoisted_2$4,
900
+ createElementVNode("div", _hoisted_3$4, [
901
+ (openBlock(), createElementBlock(
902
+ Fragment,
903
+ null,
904
+ renderList(filterSections, (item, index) => {
905
+ return openBlock(), createElementBlock(
906
+ Fragment,
907
+ { key: index },
908
+ [
909
+ createElementVNode(
910
+ "div",
911
+ _hoisted_4$3,
912
+ toDisplayString(item.title),
913
+ 1
914
+ /* TEXT */
915
+ ),
916
+ createElementVNode("div", _hoisted_5$3, [
917
+ (openBlock(true), createElementBlock(
918
+ Fragment,
919
+ null,
920
+ renderList(item.data, (it, i) => {
921
+ return openBlock(), createElementBlock("div", {
922
+ onClick: () => onFilterSectionClick(index, it),
923
+ class: normalizeClass([getItemClass(index, it), "info-item"]),
924
+ key: i
925
+ }, toDisplayString(it), 11, _hoisted_6$2);
926
+ }),
927
+ 128
928
+ /* KEYED_FRAGMENT */
929
+ ))
930
+ ])
931
+ ],
932
+ 64
933
+ /* STABLE_FRAGMENT */
934
+ );
935
+ }),
936
+ 64
937
+ /* STABLE_FRAGMENT */
938
+ ))
939
+ ]),
940
+ createElementVNode("div", { class: "consumption-filter-btn spa-between" }, [
941
+ createElementVNode("div", {
942
+ class: "btn",
943
+ onClick: reset
944
+ }, "\u91CD\u7F6E"),
945
+ createElementVNode("div", {
946
+ class: "btn confirm",
947
+ onClick: onOkClick
948
+ }, "\u786E\u5B9A")
949
+ ]),
950
+ _hoisted_7$2
951
+ ]);
952
+ };
953
+ }
954
+ });
955
+
956
+ var css_248z$4 = ".consumption-filter {\n height: 100%;\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n.consumption-filter-title {\n height: 44px;\n line-height: 44px;\n font-size: 17px;\n color: #353535;\n background: #f5f5f5;\n text-align: center;\n}\n.consumption-filter-content {\n flex: 1;\n margin: 15px;\n overflow-y: scroll;\n color: #353535;\n font-size: 13px;\n}\n.consumption-filter-content .title {\n opacity: 0.6;\n line-height: 18px;\n}\n.consumption-filter-content .info {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n grid-gap: 10px;\n margin: 10px 0;\n}\n.consumption-filter-content .info-item {\n height: 30px;\n line-height: 30px;\n border: 1px solid #ccc;\n border-radius: 6px;\n text-align: center;\n}\n.consumption-filter-content .info .current {\n border: 1px solid;\n border-image-source: linear-gradient(180deg, rgba(239, 208, 130, 0.8) 0%, rgba(255, 185, 120, 0.8) 100%);\n background: linear-gradient(180deg, rgba(239, 208, 130, 0.8) 0%, rgba(255, 185, 120, 0.8) 100%), linear-gradient(180deg, #fff7e3 0%, #fefde6 100%);\n}\n.consumption-filter-btn {\n margin: 0 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.consumption-filter-btn .btn {\n flex: 1;\n height: 40px;\n line-height: 40px;\n text-align: center;\n border: 1px solid #ccc;\n box-sizing: border-box;\n color: #666;\n font-size: 16px;\n border-radius: 6px;\n}\n.consumption-filter-btn .confirm {\n margin-left: 11px;\n color: #000;\n border: none;\n background: linear-gradient(90deg, #ffebc1 0%, #ffd7a7 52.29%, #ffb875 100%);\n}\n.consumption-filter-bottom {\n height: 32px;\n background: #fff;\n}";
957
+ styleInject(css_248z$4);
958
+
959
+ script$4.__file = "src/balance/components/ConsumptionFilter.vue";
960
+
961
+ const _hoisted_1$3 = { class: "consumption-date-filter" };
962
+ const _hoisted_2$3 = /* @__PURE__ */ createElementVNode(
963
+ "div",
964
+ { class: "date-filter-header" },
965
+ "\u65E5\u671F\u9009\u62E9",
966
+ -1
967
+ /* HOISTED */
968
+ );
969
+ const _hoisted_3$3 = { class: "content" };
970
+ const _hoisted_4$2 = /* @__PURE__ */ createElementVNode(
971
+ "div",
972
+ { class: "title" },
973
+ "\u81EA\u5B9A\u4E49",
974
+ -1
975
+ /* HOISTED */
976
+ );
977
+ const _hoisted_5$2 = { class: "time" };
978
+ const _hoisted_6$1 = /* @__PURE__ */ createElementVNode(
979
+ "div",
980
+ { class: "line" },
981
+ "-",
982
+ -1
983
+ /* HOISTED */
984
+ );
985
+ const _hoisted_7$1 = /* @__PURE__ */ createElementVNode(
986
+ "div",
987
+ { class: "bottom" },
988
+ null,
989
+ -1
990
+ /* HOISTED */
991
+ );
992
+ var script$3 = /* @__PURE__ */ defineComponent({
993
+ __name: "DateFilter",
994
+ props: {
995
+ from: { type: String, required: true },
996
+ to: { type: String, required: true }
997
+ },
998
+ emits: ["complete"],
999
+ setup(__props, { emit: __emit }) {
1000
+ const props = __props;
1001
+ const emit = __emit;
1002
+ const result = reactive({ ...props });
1003
+ const focused = ref("from");
1004
+ const focusedDate = ref(props.from);
1005
+ const minDate = ref();
1006
+ const maxDate = ref(/* @__PURE__ */ new Date());
1007
+ const datePickerOpen = ref(false);
1008
+ function resetTime() {
1009
+ result.from = props.from;
1010
+ result.from = props.to;
1011
+ }
1012
+ function onOkClick() {
1013
+ emit("complete", result);
1014
+ }
1015
+ function formatDate(date) {
1016
+ const [year, month, day] = date.split("-");
1017
+ return year + "\u5E74" + month + "\u6708" + day + "\u65E5";
1018
+ }
1019
+ function onDatePickerComplete({ selectedValue, selectedOptions }) {
1020
+ console.log("onDatePickerComfirm_______________________", selectedValue, selectedOptions);
1021
+ let time = selectedOptions.map((val) => val.text).join("-");
1022
+ if (focused.value === "from") {
1023
+ result.from = new Date(time) > new Date(result.to) ? result.to : time;
1024
+ } else {
1025
+ result.to = time;
1026
+ }
1027
+ }
1028
+ function switchDateInput(shift) {
1029
+ if (shift === "from") {
1030
+ let time = result.from.split("-").map(Number);
1031
+ minDate.value = new Date(time[0] - 5, 1, 1);
1032
+ } else {
1033
+ let time = result.from.split("-").map(Number);
1034
+ minDate.value = new Date(time[0], time[1] - 1, time[2]);
1035
+ }
1036
+ focusedDate.value = new Date(result[shift]);
1037
+ focused.value = shift;
1038
+ datePickerOpen.value = true;
1039
+ }
1040
+ return (_ctx, _cache) => {
1041
+ const _component_nut_datepicker = resolveComponent("nut-datepicker");
1042
+ return openBlock(), createElementBlock(
1043
+ Fragment,
1044
+ null,
1045
+ [
1046
+ createElementVNode("div", _hoisted_1$3, [
1047
+ _hoisted_2$3,
1048
+ createElementVNode("div", _hoisted_3$3, [
1049
+ _hoisted_4$2,
1050
+ createElementVNode("div", _hoisted_5$2, [
1051
+ createElementVNode(
1052
+ "div",
1053
+ {
1054
+ class: normalizeClass(["item", focused.value === "from" ? "current" : ""]),
1055
+ onClick: _cache[0] || (_cache[0] = ($event) => switchDateInput("from"))
1056
+ },
1057
+ toDisplayString(formatDate(result.from)),
1058
+ 3
1059
+ /* TEXT, CLASS */
1060
+ ),
1061
+ _hoisted_6$1,
1062
+ createElementVNode(
1063
+ "div",
1064
+ {
1065
+ class: normalizeClass(["item", focused.value === "to" ? "current" : ""]),
1066
+ onClick: _cache[1] || (_cache[1] = ($event) => switchDateInput("to"))
1067
+ },
1068
+ toDisplayString(formatDate(result.to)),
1069
+ 3
1070
+ /* TEXT, CLASS */
1071
+ )
1072
+ ])
1073
+ ]),
1074
+ createElementVNode("div", { class: "buttons spa-between" }, [
1075
+ createElementVNode("div", {
1076
+ class: "btn",
1077
+ onClick: resetTime
1078
+ }, "\u91CD\u7F6E"),
1079
+ createElementVNode("div", {
1080
+ class: "btn confirm",
1081
+ onClick: onOkClick
1082
+ }, "\u786E\u5B9A")
1083
+ ]),
1084
+ _hoisted_7$1
1085
+ ]),
1086
+ createVNode(_component_nut_datepicker, {
1087
+ modelValue: focusedDate.value,
1088
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => focusedDate.value = $event),
1089
+ visible: datePickerOpen.value,
1090
+ "onUpdate:visible": _cache[3] || (_cache[3] = ($event) => datePickerOpen.value = $event),
1091
+ "min-date": minDate.value,
1092
+ "max-date": maxDate.value,
1093
+ "is-show-chinese": false,
1094
+ "three-dimensional": false,
1095
+ onConfirm: onDatePickerComplete
1096
+ }, null, 8, ["modelValue", "visible", "min-date", "max-date"])
1097
+ ],
1098
+ 64
1099
+ /* STABLE_FRAGMENT */
1100
+ );
1101
+ };
1102
+ }
1103
+ });
1104
+
1105
+ var css_248z$3 = ".consumption-date-filter {\n height: 100%;\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n.consumption-date-filter .date-filter-header {\n text-align: center;\n height: 44px;\n line-height: 44px;\n color: #353535;\n font-size: 17px;\n background-color: #f5f5f5;\n}\n.consumption-date-filter .content {\n flex: 1;\n margin: 15px;\n overflow-y: scroll;\n color: #353535;\n font-size: 13px;\n}\n.consumption-date-filter .content .title {\n opacity: 0.6;\n line-height: 18px;\n}\n.consumption-date-filter .content .info {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n grid-gap: 10px;\n margin: 10px 0;\n}\n.consumption-date-filter .content .info .item {\n height: 30px;\n line-height: 30px;\n border: 1px solid #ccc;\n border-radius: 6px;\n text-align: center;\n}\n.consumption-date-filter .content .info .current {\n border: 1px solid;\n border-image-source: linear-gradient(180deg, rgba(239, 208, 130, 0.8) 0%, rgba(255, 185, 120, 0.8) 100%);\n background: linear-gradient(180deg, rgba(239, 208, 130, 0.8) 0%, rgba(255, 185, 120, 0.8) 100%), linear-gradient(180deg, #fff7e3 0%, #fefde6 100%);\n}\n.consumption-date-filter .buttons {\n margin: 0 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.consumption-date-filter .buttons .btn {\n flex: 1;\n height: 40px;\n line-height: 40px;\n text-align: center;\n border: 1px solid #ccc;\n box-sizing: border-box;\n color: #666;\n font-size: 16px;\n border-radius: 6px;\n}\n.consumption-date-filter .buttons .confirm {\n margin-left: 11px;\n color: #000;\n border: none;\n background: linear-gradient(90deg, #ffebc1 0%, #ffd7a7 52.29%, #ffb875 100%);\n}\n.consumption-date-filter .time {\n display: flex;\n justify-content: start;\n align-items: center;\n margin: 10px 0 30px 0;\n}\n.consumption-date-filter .time .line {\n margin: 0 8px;\n}\n.consumption-date-filter .time .item {\n height: 30px;\n line-height: 30px;\n padding: 0 15px;\n font-size: 13px;\n color: #353535;\n border: 1px solid transparent;\n box-sizing: border-box;\n background: rgba(245, 245, 245, 0.8);\n border-radius: 6px;\n}\n.consumption-date-filter .time .current {\n border: 1px solid #353535;\n}\n.consumption-date-filter .bottom {\n height: 32px;\n background: #fff;\n}";
1106
+ styleInject(css_248z$3);
1107
+
1108
+ script$3.__file = "src/balance/components/DateFilter.vue";
1109
+
1110
+ const _hoisted_1$2 = { class: "consumption-rules" };
1111
+ const _hoisted_2$2 = /* @__PURE__ */ createElementVNode(
1112
+ "div",
1113
+ { class: "title" },
1114
+ "\u89C4\u5219\u8BF4\u660E",
1115
+ -1
1116
+ /* HOISTED */
1117
+ );
1118
+ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1119
+ "div",
1120
+ { class: "desc" },
1121
+ [
1122
+ /* @__PURE__ */ createElementVNode("div", { class: "desc-title" }, "\u3010\u4E91\u8C46\u3011"),
1123
+ /* @__PURE__ */ createElementVNode("div", null, " 1\u3001\u4E91\u8C46\u7CFB\u5927\u9053\u4E91\u5E73\u53F0\u4E3A\u7528\u6237\u63D0\u4F9B\u7684\u6570\u5B57\u5316\u5546\u54C1\uFF0C\u7528\u4E8E\u5927\u9053\u4E91\u5E73\u53F0\u4E0A\u7684\u4EA7\u54C1\u6743\u76CA\u62B5\u6263\u4F7F\u7528\u3002 "),
1124
+ /* @__PURE__ */ createElementVNode("div", null, " \u4EBA\u6C11\u5E01\u4E0E\u4E91\u8C46\u7684\u5151\u6362\u6BD4\u4F8B\uFF1A1\u4EBA\u6C11\u5E01=10\u4E91\u8C46\u3002\u4E91\u8C46\u8D2D\u4E70\u6210\u529F\u8FC7\u540E\u4E0D\u53EF\u8F6C\u8BA9\u6216\u8005\u9006\u5411\u5151\u6362\u3002 "),
1125
+ /* @__PURE__ */ createElementVNode("div", null, " 2\u3001\u4E91\u8C46\u7684\u4F7F\u7528\u8303\u56F4\uFF1A\u4E91\u8C46\u53EF\u7528\u4E8E\u62B5\u6263AI\u5BA1\u6279\u5355\u7B14\u6743\u76CA\u3001\u7535\u5B50\u7B7E\u7EA6\u5355\u7B14\u6743\u76CA\u3001\u8702\u9E1F\u5468\u8F6C\u7CFB\u7EDF\u5355\u7B14\u6743\u76CA\u7B49\uFF0C\u5177\u4F53\u62B5\u6263\u6807\u51C6\u8BE6\u7EC6\u89C1\u5404\u4EA7\u54C1\u9875\u9762\u3002 "),
1126
+ /* @__PURE__ */ createElementVNode("div", { class: "desc-title" }, "\u3010\u5C0F\u4E91\u8C46\u3011"),
1127
+ /* @__PURE__ */ createElementVNode("div", null, " 1\u3001\u5C0F\u4E91\u8C46\u7CFB\u5927\u9053\u4E91\u5E73\u53F0\u5355\u65B9\u9762\u4E3A\u7528\u6237\u8D60\u9001\u7684\u6570\u5B57\u5316\u5546\u54C1\uFF0C\u7528\u4E8E\u5927\u9053\u4E91\u5E73\u53F0\u4E0A\u7684\u6307\u5B9A\u4EA7\u54C1\u6743\u76CA\u62B5\u6263\u4F7F\u7528\u3002\u5C0F\u4E91\u8C46\u4EC5\u7528\u4E8E\u6307\u5B9A\u7684\u4EA7\u54C1\u6743\u76CA\u62B5\u6263\u4F7F\u7528\u3002\u5C0F\u4E91\u8C46\u4E0E\u4E91\u8C46\u4E4B\u95F4\u4E0D\u80FD\u76F8\u4E92\u8F6C\u6362\uFF0C\u4E5F\u65E0\u6CD5\u9006\u5411\u5151\u6362\u6210\u4EBA\u6C11\u5E01\u3002 "),
1128
+ /* @__PURE__ */ createElementVNode("div", null, " 2\u3001\u5C0F\u4E91\u8C46\u7684\u4F7F\u7528\u8303\u56F4\uFF1A\u5C0F\u4E91\u8C46\u53EF\u7528\u4E8E\u62B5\u6263AI\u5BA1\u6279\u5355\u7B14\u6743\u76CA\u3001\u7535\u5B50\u7B7E\u7EA6\u5355\u7B14\u6743\u76CA\u3001\u8702\u9E1F\u5468\u8F6C\u7CFB\u7EDF\u5355\u7B14\u6743\u76CA\u7B49\uFF0C\u5177\u4F53\u62B5\u6263\u6807\u51C6\u8BE6\u7EC6\u89C1\u5404\u4EA7\u54C1\u9875\u9762\u3002 ")
1129
+ ],
1130
+ -1
1131
+ /* HOISTED */
1132
+ );
1133
+ var script$2 = /* @__PURE__ */ defineComponent({
1134
+ __name: "ConsumptionRules",
1135
+ emits: ["complete"],
1136
+ setup(__props, { emit: __emit }) {
1137
+ const emit = __emit;
1138
+ return (_ctx, _cache) => {
1139
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
1140
+ _hoisted_2$2,
1141
+ _hoisted_3$2,
1142
+ createElementVNode("div", {
1143
+ class: "know",
1144
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("complete"))
1145
+ }, "\u6211\u77E5\u9053\u4E86")
1146
+ ]);
1147
+ };
1148
+ }
1149
+ });
1150
+
1151
+ var css_248z$2 = ".consumption-rules .title {\n line-height: 16px;\n font-weight: 500;\n color: #1a1a1a;\n font-size: 16px;\n text-align: center;\n width: 100%;\n}\n.consumption-rules .desc {\n flex: 1;\n font-size: 14px;\n line-height: 21px;\n color: #666;\n overflow-y: scroll;\n margin: 10px 0;\n}\n.consumption-rules .desc-title {\n font-weight: 600;\n}\n.consumption-rules .know {\n background: linear-gradient(90deg, #ffebc1 0%, #ffd7a7 52.29%, #ffb875 100%);\n height: 30px;\n line-height: 30px;\n font-size: 14px;\n color: #353535;\n border-radius: 15px;\n width: 130px;\n margin: 0 auto;\n text-align: center;\n}";
1152
+ styleInject(css_248z$2);
1153
+
1154
+ script$2.__file = "src/balance/components/ConsumptionRules.vue";
1155
+
1156
+ const _hoisted_1$1 = { class: "balance-reminder" };
1157
+ const _hoisted_2$1 = /* @__PURE__ */ createElementVNode(
1158
+ "div",
1159
+ { class: "body" },
1160
+ [
1161
+ /* @__PURE__ */ createElementVNode("h2", null, "\u64CD\u4F5C\u5931\u8D25"),
1162
+ /* @__PURE__ */ createElementVNode("p", null, "\u60A8\u7684\u8D26\u6237\u4F59\u989D\u53EF\u80FD\u4E0D\u8DB3\uFF0C\u8BF7\u5145\u503C\u540E\u518D\u8FDB\u884C\u67E5\u8BE2")
1163
+ ],
1164
+ -1
1165
+ /* HOISTED */
1166
+ );
1167
+ const _hoisted_3$1 = { class: "footer" };
1168
+ const _hoisted_4$1 = { class: "col" };
1169
+ const _hoisted_5$1 = { class: "col" };
1170
+ var script$1 = /* @__PURE__ */ defineComponent({
1171
+ __name: "BalanceReminder",
1172
+ props: {
1173
+ modelValue: { type: Boolean, required: true, default: () => false }
1174
+ },
1175
+ emits: ["recharge", "update:modelValue"],
1176
+ setup(__props, { emit: __emit }) {
1177
+ const emit = __emit;
1178
+ return (_ctx, _cache) => {
1179
+ const _component_nut_button = resolveComponent("nut-button");
1180
+ const _component_nut_popup = resolveComponent("nut-popup");
1181
+ return openBlock(), createBlock(_component_nut_popup, {
1182
+ "pop-class": "balance-reminder-popup",
1183
+ round: "",
1184
+ teleport: "#app",
1185
+ visible: _ctx.modelValue,
1186
+ "close-on-click-overlay": false
1187
+ }, {
1188
+ default: withCtx(() => [
1189
+ createElementVNode("div", _hoisted_1$1, [
1190
+ _hoisted_2$1,
1191
+ createElementVNode("div", _hoisted_3$1, [
1192
+ createElementVNode("div", _hoisted_4$1, [
1193
+ createVNode(_component_nut_button, {
1194
+ class: "cancel-button",
1195
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", false)),
1196
+ shape: "square",
1197
+ block: ""
1198
+ }, {
1199
+ default: withCtx(() => [
1200
+ createTextVNode("\u53D6\u6D88")
1201
+ ]),
1202
+ _: 1
1203
+ /* STABLE */
1204
+ })
1205
+ ]),
1206
+ createElementVNode("div", _hoisted_5$1, [
1207
+ createVNode(_component_nut_button, {
1208
+ shape: "square",
1209
+ block: "",
1210
+ class: "recharge-button",
1211
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("recharge"))
1212
+ }, {
1213
+ default: withCtx(() => [
1214
+ createTextVNode("\u53BB\u5145\u503C")
1215
+ ]),
1216
+ _: 1
1217
+ /* STABLE */
1218
+ })
1219
+ ])
1220
+ ])
1221
+ ])
1222
+ ]),
1223
+ _: 1
1224
+ /* STABLE */
1225
+ }, 8, ["visible"]);
1226
+ };
1227
+ }
1228
+ });
1229
+
1230
+ var css_248z$1 = ".balance-reminder-popup {\n width: 80%;\n}\n\n.balance-reminder h2 {\n font-size: 18px;\n font-weight: bold;\n}\n.balance-reminder .body {\n height: 120px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 2em;\n font-size: 12px;\n text-align: center;\n}\n.balance-reminder .footer {\n display: flex;\n flex-direction: row;\n justify-content: stretch;\n align-items: center;\n}\n.balance-reminder .footer .col {\n flex-grow: 1;\n padding: 6px;\n}\n.balance-reminder .footer .nut-button {\n border: 0;\n}\n.balance-reminder .footer .recharge-button {\n color: #060;\n}";
1231
+ styleInject(css_248z$1);
1232
+
1233
+ script$1.__file = "src/balance/components/BalanceReminder.vue";
1234
+
1235
+ const _hoisted_1 = { class: "consumption-view" };
1236
+ const _hoisted_2 = { class: "header" };
1237
+ const _hoisted_3 = { class: "header_card" };
1238
+ const _hoisted_4 = { class: "clound-bean" };
1239
+ const _hoisted_5 = { class: "bean-box spa-between" };
1240
+ const _hoisted_6 = /* @__PURE__ */ createElementVNode(
1241
+ "div",
1242
+ { class: "bean-img" },
1243
+ [
1244
+ /* @__PURE__ */ createElementVNode("img", {
1245
+ class: "bean-icon",
1246
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/gold-bean.png"
1247
+ }),
1248
+ /* @__PURE__ */ createElementVNode("div", { class: "bean-tag tag" }, "\u4E91\u8C46")
1249
+ ],
1250
+ -1
1251
+ /* HOISTED */
1252
+ );
1253
+ const _hoisted_7 = { class: "bean-counts spa-between" };
1254
+ const _hoisted_8 = { class: "counts" };
1255
+ const _hoisted_9 = /* @__PURE__ */ createElementVNode(
1256
+ "div",
1257
+ { class: "line" },
1258
+ null,
1259
+ -1
1260
+ /* HOISTED */
1261
+ );
1262
+ const _hoisted_10 = {
1263
+ key: 0,
1264
+ class: "small-clound-bean clound-bean"
1265
+ };
1266
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode(
1267
+ "div",
1268
+ { class: "bean-box spa-between" },
1269
+ [
1270
+ /* @__PURE__ */ createElementVNode("div", { class: "bean-img" }, [
1271
+ /* @__PURE__ */ createElementVNode("div", { class: "bean-tag" }, "\u5C0F\u4E91\u8C46")
1272
+ ])
1273
+ ],
1274
+ -1
1275
+ /* HOISTED */
1276
+ );
1277
+ const _hoisted_12 = { class: "bean-list" };
1278
+ const _hoisted_13 = { class: "counts" };
1279
+ const _hoisted_14 = { class: "title" };
1280
+ const _hoisted_15 = { class: "operation-title spa-between" };
1281
+ const _hoisted_16 = { class: "search-time" };
1282
+ const _hoisted_17 = /* @__PURE__ */ createElementVNode(
1283
+ "div",
1284
+ { class: "title" },
1285
+ "\u6536\u652F\u660E\u7EC6",
1286
+ -1
1287
+ /* HOISTED */
1288
+ );
1289
+ const _hoisted_18 = { class: "text" };
1290
+ const _hoisted_19 = /* @__PURE__ */ createElementVNode(
1291
+ "img",
1292
+ {
1293
+ class: "time-icon",
1294
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-down.png"
1295
+ },
1296
+ null,
1297
+ -1
1298
+ /* HOISTED */
1299
+ );
1300
+ const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1301
+ "span",
1302
+ { class: "text" },
1303
+ "\u7B5B\u9009",
1304
+ -1
1305
+ /* HOISTED */
1306
+ );
1307
+ const _hoisted_21 = /* @__PURE__ */ createElementVNode(
1308
+ "img",
1309
+ {
1310
+ class: "time-icon",
1311
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-select-icon.png"
1312
+ },
1313
+ null,
1314
+ -1
1315
+ /* HOISTED */
1316
+ );
1317
+ const _hoisted_22 = [
1318
+ _hoisted_20,
1319
+ _hoisted_21
1320
+ ];
1321
+ const _hoisted_23 = { class: "operation-list" };
1322
+ const _hoisted_24 = {
1323
+ key: 0,
1324
+ class: "box"
1325
+ };
1326
+ const _hoisted_25 = { class: "title" };
1327
+ const _hoisted_26 = { class: "item-type" };
1328
+ const _hoisted_27 = { class: "item-detail" };
1329
+ const _hoisted_28 = { class: "item-info spa-between" };
1330
+ const _hoisted_29 = { class: "item-info-type" };
1331
+ const _hoisted_30 = { class: "item-info-title" };
1332
+ const _hoisted_31 = { class: "item-info-amount" };
1333
+ const _hoisted_32 = { class: "item-detail-remark" };
1334
+ const _hoisted_33 = /* @__PURE__ */ createElementVNode(
1335
+ "div",
1336
+ { class: "box-not-text" },
1337
+ "\u6CA1\u6709\u66F4\u591A\u4E86",
1338
+ -1
1339
+ /* HOISTED */
1340
+ );
1341
+ const _hoisted_34 = {
1342
+ key: 1,
1343
+ class: "info-not"
1344
+ };
1345
+ const _hoisted_35 = /* @__PURE__ */ createElementVNode(
1346
+ "img",
1347
+ {
1348
+ class: "info-not-img",
1349
+ src: "https://cdn.ddjf.com/static/images/fnfundkit/bean-no-thing.png"
1350
+ },
1351
+ null,
1352
+ -1
1353
+ /* HOISTED */
1354
+ );
1355
+ const _hoisted_36 = /* @__PURE__ */ createElementVNode(
1356
+ "div",
1357
+ { class: "info-not-text" },
1358
+ "\u6682\u65E0\u6570\u636E",
1359
+ -1
1360
+ /* HOISTED */
1361
+ );
1362
+ const _hoisted_37 = [
1363
+ _hoisted_35,
1364
+ _hoisted_36
1365
+ ];
1366
+ const _hoisted_38 = /* @__PURE__ */ createElementVNode(
1367
+ "img",
1368
+ {
1369
+ class: "back-to-top-icon",
1370
+ src: "https://cdn.ddjf.com/static/images/bpms-workBench/top.png"
1371
+ },
1372
+ null,
1373
+ -1
1374
+ /* HOISTED */
1375
+ );
1376
+ const _hoisted_39 = [
1377
+ _hoisted_38
1378
+ ];
1379
+ var script = /* @__PURE__ */ defineComponent({
1380
+ __name: "AccountView",
1381
+ emits: ["recharge"],
1382
+ setup(__props, { emit: __emit }) {
1383
+ const emit = __emit;
1384
+ const filterOpen = ref(false);
1385
+ const rulesPopupOpen = ref(false);
1386
+ const filtering = reactive({
1387
+ position: "\u5168\u90E8",
1388
+ direction: "\u5168\u90E8",
1389
+ type: "\u5168\u90E8",
1390
+ dateFrom: "",
1391
+ dateTo: ""
1392
+ });
1393
+ const datePickerOpen = ref(false);
1394
+ function openDateFilter() {
1395
+ datePickerOpen.value = true;
1396
+ }
1397
+ const dataRangeDisplay = computed(() => {
1398
+ let startTime = filtering.dateFrom?.replace(/-/g, ".").substring(2);
1399
+ let endTime = filtering.dateTo?.replace(/-/g, ".").substring(2);
1400
+ return startTime + " - " + endTime;
1401
+ });
1402
+ const consumptionGroups = ref({
1403
+ from: "",
1404
+ to: "",
1405
+ list: []
1406
+ });
1407
+ const balance = ref({
1408
+ total: 0,
1409
+ privileges: []
1410
+ });
1411
+ onMounted(() => {
1412
+ Taro.setNavigationBarTitle({
1413
+ title: "\u6211\u7684\u8D26\u6237"
1414
+ });
1415
+ loadConsumptions(true);
1416
+ loadBalance();
1417
+ });
1418
+ async function loadConsumptions(firstTime) {
1419
+ const $http = makeHttp();
1420
+ Taro.showLoading({
1421
+ title: `\u52A0\u8F7D\u4E2D...`,
1422
+ mask: true
1423
+ });
1424
+ $http.get(endpoints.getOperations, filtering).then((data) => {
1425
+ consumptionGroups.value = data;
1426
+ if (firstTime) {
1427
+ filtering.dateFrom = data.from;
1428
+ filtering.dateTo = data.to;
1429
+ }
1430
+ });
1431
+ Taro.hideLoading();
1432
+ }
1433
+ async function loadBalance() {
1434
+ const $http = makeHttp();
1435
+ $http.get(endpoints.getBalance, {}).then((data) => {
1436
+ balance.value = data;
1437
+ });
1438
+ }
1439
+ const onFilterComplete = (value) => {
1440
+ filtering.position = value[0];
1441
+ filtering.direction = value[1];
1442
+ filtering.type = value[2];
1443
+ filterOpen.value = false;
1444
+ loadConsumptions();
1445
+ };
1446
+ const onDateFilterComplete = (value) => {
1447
+ filtering.dateFrom = value.from;
1448
+ filtering.dateTo = value.to;
1449
+ datePickerOpen.value = false;
1450
+ loadConsumptions();
1451
+ };
1452
+ function backToTop() {
1453
+ Taro.pageScrollTo({
1454
+ scrollTop: 0,
1455
+ duration: 300
1456
+ // 滚动到顶部的动画持续时间
1457
+ });
1458
+ }
1459
+ function gotoRecharge() {
1460
+ balanceReminderOpen.value = true;
1461
+ emit("recharge");
1462
+ }
1463
+ const balanceReminderOpen = ref(false);
1464
+ const scrollY = ref(0);
1465
+ usePageScroll((e) => {
1466
+ const { scrollTop } = e;
1467
+ scrollY.value = scrollTop;
1468
+ });
1469
+ return (_ctx, _cache) => {
1470
+ const _component_nut_popup = resolveComponent("nut-popup");
1471
+ return openBlock(), createElementBlock(
1472
+ Fragment,
1473
+ null,
1474
+ [
1475
+ createElementVNode("div", _hoisted_1, [
1476
+ createElementVNode("div", _hoisted_2, [
1477
+ createElementVNode("div", _hoisted_3, [
1478
+ createElementVNode("div", _hoisted_4, [
1479
+ createElementVNode("div", _hoisted_5, [
1480
+ _hoisted_6,
1481
+ createElementVNode("div", {
1482
+ class: "rule",
1483
+ onClick: _cache[0] || (_cache[0] = ($event) => rulesPopupOpen.value = true)
1484
+ }, "\u89C4\u5219\u8BF4\u660E")
1485
+ ]),
1486
+ createElementVNode("div", _hoisted_7, [
1487
+ createElementVNode(
1488
+ "div",
1489
+ _hoisted_8,
1490
+ toDisplayString(balance.value.total || 0),
1491
+ 1
1492
+ /* TEXT */
1493
+ ),
1494
+ createElementVNode("div", {
1495
+ class: "pay",
1496
+ onClick: gotoRecharge
1497
+ }, "\u4E91\u8C46\u5145\u503C")
1498
+ ])
1499
+ ]),
1500
+ _hoisted_9,
1501
+ balance.value.privileges.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_10, [
1502
+ _hoisted_11,
1503
+ createElementVNode("div", _hoisted_12, [
1504
+ (openBlock(true), createElementBlock(
1505
+ Fragment,
1506
+ null,
1507
+ renderList(balance.value.privileges, (item) => {
1508
+ return openBlock(), createElementBlock("div", {
1509
+ key: item,
1510
+ class: "bean-list-item"
1511
+ }, [
1512
+ createElementVNode(
1513
+ "div",
1514
+ _hoisted_13,
1515
+ toDisplayString(item.amount),
1516
+ 1
1517
+ /* TEXT */
1518
+ ),
1519
+ createElementVNode(
1520
+ "div",
1521
+ _hoisted_14,
1522
+ toDisplayString(item.title),
1523
+ 1
1524
+ /* TEXT */
1525
+ )
1526
+ ]);
1527
+ }),
1528
+ 128
1529
+ /* KEYED_FRAGMENT */
1530
+ ))
1531
+ ])
1532
+ ])) : createCommentVNode("v-if", true)
1533
+ ])
1534
+ ]),
1535
+ createElementVNode("div", _hoisted_15, [
1536
+ createElementVNode("div", _hoisted_16, [
1537
+ _hoisted_17,
1538
+ withDirectives(createElementVNode(
1539
+ "div",
1540
+ {
1541
+ class: "time",
1542
+ onClick: openDateFilter
1543
+ },
1544
+ [
1545
+ createElementVNode(
1546
+ "div",
1547
+ _hoisted_18,
1548
+ toDisplayString(dataRangeDisplay.value),
1549
+ 1
1550
+ /* TEXT */
1551
+ ),
1552
+ _hoisted_19
1553
+ ],
1554
+ 512
1555
+ /* NEED_PATCH */
1556
+ ), [
1557
+ [vShow, filtering.dateFrom]
1558
+ ])
1559
+ ]),
1560
+ createElementVNode("div", {
1561
+ class: "search",
1562
+ onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1563
+ }, [..._hoisted_22])
1564
+ ]),
1565
+ createElementVNode("div", _hoisted_23, [
1566
+ consumptionGroups.value.list.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_24, [
1567
+ (openBlock(true), createElementBlock(
1568
+ Fragment,
1569
+ null,
1570
+ renderList(consumptionGroups.value.list, (item, index) => {
1571
+ return openBlock(), createElementBlock("div", {
1572
+ class: "box-detail",
1573
+ key: index
1574
+ }, [
1575
+ createElementVNode(
1576
+ "div",
1577
+ _hoisted_25,
1578
+ toDisplayString(item.date),
1579
+ 1
1580
+ /* TEXT */
1581
+ ),
1582
+ (openBlock(true), createElementBlock(
1583
+ Fragment,
1584
+ null,
1585
+ renderList(item.consumptions, (it, i) => {
1586
+ return openBlock(), createElementBlock("div", {
1587
+ class: "item",
1588
+ key: i
1589
+ }, [
1590
+ createElementVNode(
1591
+ "div",
1592
+ _hoisted_26,
1593
+ toDisplayString(it.type),
1594
+ 1
1595
+ /* TEXT */
1596
+ ),
1597
+ createElementVNode("div", _hoisted_27, [
1598
+ createElementVNode("div", _hoisted_28, [
1599
+ createElementVNode("div", null, [
1600
+ createElementVNode(
1601
+ "div",
1602
+ _hoisted_29,
1603
+ toDisplayString(it.position),
1604
+ 1
1605
+ /* TEXT */
1606
+ ),
1607
+ createElementVNode(
1608
+ "div",
1609
+ _hoisted_30,
1610
+ toDisplayString(it.title),
1611
+ 1
1612
+ /* TEXT */
1613
+ )
1614
+ ]),
1615
+ createElementVNode(
1616
+ "div",
1617
+ _hoisted_31,
1618
+ toDisplayString(it.direction == "\u652F\u51FA" ? "-" : "+") + toDisplayString(it.amount),
1619
+ 1
1620
+ /* TEXT */
1621
+ )
1622
+ ]),
1623
+ createElementVNode(
1624
+ "div",
1625
+ _hoisted_32,
1626
+ toDisplayString(it.description),
1627
+ 1
1628
+ /* TEXT */
1629
+ )
1630
+ ])
1631
+ ]);
1632
+ }),
1633
+ 128
1634
+ /* KEYED_FRAGMENT */
1635
+ ))
1636
+ ]);
1637
+ }),
1638
+ 128
1639
+ /* KEYED_FRAGMENT */
1640
+ )),
1641
+ _hoisted_33
1642
+ ])) : (openBlock(), createElementBlock("div", _hoisted_34, [..._hoisted_37]))
1643
+ ])
1644
+ ]),
1645
+ createVNode(_component_nut_popup, {
1646
+ "pop-class": "consumption-rules-popup",
1647
+ visible: rulesPopupOpen.value,
1648
+ "onUpdate:visible": _cache[3] || (_cache[3] = ($event) => rulesPopupOpen.value = $event),
1649
+ "close-on-click-overlay": false
1650
+ }, {
1651
+ default: withCtx(() => [
1652
+ createVNode(script$2, {
1653
+ onComplete: _cache[2] || (_cache[2] = ($event) => rulesPopupOpen.value = false)
1654
+ })
1655
+ ]),
1656
+ _: 1
1657
+ /* STABLE */
1658
+ }, 8, ["visible"]),
1659
+ createVNode(_component_nut_popup, {
1660
+ position: "bottom",
1661
+ style: { height: "40%" },
1662
+ round: "",
1663
+ "close-on-click-overlay": true,
1664
+ visible: datePickerOpen.value,
1665
+ "onUpdate:visible": _cache[4] || (_cache[4] = ($event) => datePickerOpen.value = $event)
1666
+ }, {
1667
+ default: withCtx(() => [
1668
+ datePickerOpen.value ? (openBlock(), createBlock(script$3, {
1669
+ key: 0,
1670
+ from: filtering.dateFrom,
1671
+ to: filtering.dateTo,
1672
+ onComplete: onDateFilterComplete
1673
+ }, null, 8, ["from", "to"])) : createCommentVNode("v-if", true)
1674
+ ]),
1675
+ _: 1
1676
+ /* STABLE */
1677
+ }, 8, ["visible"]),
1678
+ createVNode(_component_nut_popup, {
1679
+ position: "bottom",
1680
+ style: { height: "70%" },
1681
+ round: "",
1682
+ "close-on-click-overlay": false,
1683
+ visible: filterOpen.value,
1684
+ "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => filterOpen.value = $event)
1685
+ }, {
1686
+ default: withCtx(() => [
1687
+ createVNode(script$4, {
1688
+ modelValue: [
1689
+ filtering.position,
1690
+ filtering.direction,
1691
+ filtering.type
1692
+ ],
1693
+ onComplete: onFilterComplete
1694
+ }, null, 8, ["modelValue"])
1695
+ ]),
1696
+ _: 1
1697
+ /* STABLE */
1698
+ }, 8, ["visible"]),
1699
+ withDirectives(createElementVNode(
1700
+ "div",
1701
+ {
1702
+ class: "back-to-top",
1703
+ onClick: backToTop
1704
+ },
1705
+ [..._hoisted_39],
1706
+ 512
1707
+ /* NEED_PATCH */
1708
+ ), [
1709
+ [vShow, scrollY.value > 300]
1710
+ ]),
1711
+ createVNode(script$1, {
1712
+ modelValue: balanceReminderOpen.value,
1713
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => balanceReminderOpen.value = $event)
1714
+ }, null, 8, ["modelValue"])
1715
+ ],
1716
+ 64
1717
+ /* STABLE_FRAGMENT */
1718
+ );
1719
+ };
1720
+ }
1721
+ });
1722
+
1723
+ var css_248z = ".consumption-view .spa-between {\n padding: 0 0 0 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.consumption-view .header {\n position: relative;\n background: linear-gradient(187.18deg, #353535 10.04%, #433f46 90.21%);\n background-size: 100% 106px;\n padding-top: 20px;\n background-repeat: no-repeat;\n}\n.consumption-view .header_card {\n background: linear-gradient(104.85deg, #f4e2ce 1.88%, #debb9b 98.18%);\n border-radius: 15px;\n padding: 10px;\n margin: 0 15px;\n}\n.consumption-view .header_card .clound-bean .bean-box {\n font-size: 10px;\n}\n.consumption-view .header_card .clound-bean .bean-box .bean-img {\n display: flex;\n justify-content: start;\n align-items: center;\n}\n.consumption-view .header_card .clound-bean .bean-box .bean-img .bean-icon {\n display: block;\n font-size: 0;\n width: 20px;\n height: 20px;\n margin-right: 4px;\n}\n.consumption-view .header_card .clound-bean .bean-box .bean-img .bean-tag {\n color: #353535;\n height: 15px;\n line-height: 15px;\n border-radius: 30px 50px 50px 0px;\n background: rgba(255, 131, 32, 0.3);\n padding-left: 5px;\n padding-right: 10px;\n}\n.consumption-view .header_card .clound-bean .bean-box .bean-img .tag {\n background: #ff8320;\n color: #fff;\n}\n.consumption-view .header_card .clound-bean .bean-box .rule {\n color: #353535;\n opacity: 0.5;\n}\n.consumption-view .header_card .clound-bean .bean-counts {\n margin-top: 5px;\n}\n.consumption-view .header_card .clound-bean .bean-counts .counts {\n color: #3d3835;\n font-size: 32px;\n font-weight: 700;\n}\n.consumption-view .header_card .clound-bean .bean-counts .pay {\n padding: 0 20px;\n height: 32px;\n line-height: 32px;\n background: linear-gradient(187.18deg, #353535 10.04%, #433f46 90.21%);\n border-radius: 16px;\n color: #e7caad;\n font-size: 15px;\n font-weight: 500;\n}\n.consumption-view .header_card .line {\n height: 3px;\n width: 100%;\n margin: 10px 0;\n background: linear-gradient(90deg, #e7c39f 0.84%, #e6c9ad 27.74%);\n}\n.consumption-view .header_card .small-clound-bean {\n margin-top: 20px;\n}\n.consumption-view .header_card .small-clound-bean .bean-list {\n margin-top: 8px;\n display: flex;\n flex-wrap: wrap;\n}\n.consumption-view .header_card .small-clound-bean .bean-list-item {\n width: 50%;\n line-height: 23px;\n padding-left: 10px;\n box-sizing: border-box;\n margin-bottom: 10px;\n}\n.consumption-view .header_card .small-clound-bean .bean-list-item .counts {\n color: #353535;\n font-size: 20px;\n font-weight: 700;\n}\n.consumption-view .header_card .small-clound-bean .bean-list-item .title {\n color: #987356;\n font-weight: 400;\n font-size: 11px;\n}\n.consumption-view .header_card .small-clound-bean .bean-list-item:nth-child(2n) {\n padding-left: 30px;\n}\n.consumption-view .operation-title {\n padding: 10px 15px;\n background: #fff;\n position: sticky;\n z-index: 10;\n top: 0;\n}\n.consumption-view .operation-title .text {\n color: #353535;\n font-size: 12px;\n opacity: 0.5;\n}\n.consumption-view .operation-title .time-icon {\n display: block;\n font-size: 0;\n width: 12px;\n height: 12px;\n margin-left: 4px;\n}\n.consumption-view .operation-title .search-time {\n display: flex;\n align-items: center;\n}\n.consumption-view .operation-title .search-time .title {\n color: #000;\n font-weight: 500;\n font-size: 17px;\n margin-right: 10px;\n}\n.consumption-view .operation-title .search-time .time {\n flex: 1;\n display: flex;\n align-items: center;\n}\n.consumption-view .operation-title .search {\n display: flex;\n align-items: center;\n}\n.consumption-view .operation-list {\n margin: 0 15px;\n}\n.consumption-view .operation-list .box-detail .title {\n line-height: 22px;\n font-weight: 700;\n font-size: 12px;\n color: #000;\n opacity: 0.5;\n margin-bottom: 10px;\n}\n.consumption-view .operation-list .box-detail .item {\n box-shadow: 0px 5px 18px 2px rgba(0, 0, 0, 0.1607843137);\n border-radius: 5px;\n padding: 12px 10px;\n display: flex;\n margin-bottom: 10px;\n}\n.consumption-view .operation-list .box-detail .item-type {\n background: linear-gradient(113.95deg, #f4e2ce 1.2%, #debb9b 77.63%);\n width: 30px;\n height: 30px;\n border-radius: 15px;\n margin-right: 15px;\n line-height: 30px;\n font-size: 10px;\n font-weight: 500;\n color: #000;\n text-align: center;\n}\n.consumption-view .operation-list .box-detail .item-detail {\n flex: 1;\n}\n.consumption-view .operation-list .box-detail .item-detail .item-info {\n padding: 0;\n font-size: 14px;\n font-weight: 700;\n color: #000;\n}\n.consumption-view .operation-list .box-detail .item-detail .item-info-type {\n line-height: 15px;\n}\n.consumption-view .operation-list .box-detail .item-detail .item-info-title {\n font-weight: 400;\n opacity: 0.8;\n font-size: 11px;\n}\n.consumption-view .operation-list .box-detail .item-detail .item-info-amount {\n color: #9e7b5a;\n}\n.consumption-view .operation-list .box-detail .item-detail-remark {\n opacity: 0.3;\n line-height: 15px;\n font-size: 10px;\n}\n.consumption-view .operation-list .box-not-text {\n opacity: 0.4;\n color: #353535;\n font-size: 12px;\n line-height: 20px;\n margin: 0 auto 40px;\n text-align: center;\n}\n.consumption-view .operation-list-not {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 80px;\n}\n.consumption-view .operation-list-not-img {\n display: block;\n font-size: 0;\n width: 144px;\n height: 80px;\n}\n.consumption-view .operation-list-not-text {\n opacity: 0.4;\n color: #353535;\n font-size: 12px;\n line-height: 28px;\n}\n\n.back-to-top {\n width: 38px;\n height: 38px;\n border-radius: 19px;\n position: fixed;\n right: 15px;\n bottom: 100px;\n background: #FFF2E5;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.back-to-top-icon {\n display: block;\n font-size: 0;\n width: 19px;\n height: 19px;\n}\n\n.consumption-rules-popup {\n border-radius: 16px;\n width: 70%;\n height: 70%;\n padding: 24px;\n}";
1724
+ styleInject(css_248z);
1725
+
1726
+ script.__file = "src/balance/components/AccountView.vue";
1727
+
1728
+ const nutComponents = [
1729
+ Grid,
1730
+ GridItem,
1731
+ Button,
1732
+ Checkbox,
1733
+ Popup,
1734
+ OverLay,
1735
+ Icon,
1736
+ DatePicker
1737
+ ];
1738
+ const appComponents = {
1739
+ ...components
1740
+ };
1741
+ const AppKit = {
1742
+ install(app, options) {
1743
+ const appKitOptions = useAppKitOptions();
1744
+ appKitOptions.token = options.token;
1745
+ appKitOptions.baseUrl = options.baseUrl;
1746
+ nutComponents.forEach((component) => {
1747
+ app.use(component);
1748
+ });
1749
+ Object.entries(appComponents).forEach(([name, component]) => {
1750
+ app.component(name, component);
1751
+ });
1752
+ }
1753
+ };
1754
+
1755
+ export { script as AccountView, script$a as AmountPicker, script$7 as AppDrawer, script$5 as BalanceCard, script$1 as BalanceReminder, script$8 as PageHeader, script$6 as RechargeView, script$9 as UserAgreement, components, AppKit as default, requestPayment$1 as requestPayment, useHttp };