@uxda/appkit 1.0.66 → 1.0.72

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.
package/dist/index.js CHANGED
@@ -1,10 +1,11 @@
1
- import { defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createTextVNode, createStaticVNode, createCommentVNode, renderSlot, createVNode, ref, onMounted, unref, computed, withDirectives, vShow } from 'vue';
2
- import Taro, { useDidShow, usePageScroll, usePullDownRefresh } from '@tarojs/taro';
3
- import { Grid, GridItem, Button, Checkbox, Popup, OverLay, Icon, DatePicker, Picker } from '@nutui/nutui-taro';
1
+ import { defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createTextVNode, createStaticVNode, createCommentVNode, renderSlot, createVNode, ref, onMounted, unref, watch, computed, normalizeStyle, withDirectives, vShow } from 'vue';
2
+ import Taro, { useDidShow, usePageScroll, usePullDownRefresh, useReachBottom } from '@tarojs/taro';
3
+ import { Grid, GridItem, Button, Checkbox, Popup, OverLay, DatePicker } from '@nutui/nutui-taro';
4
+ import dayjs from 'dayjs';
4
5
 
5
- const _hoisted_1$b = { class: "token-line number" };
6
- const _hoisted_2$9 = { class: "number" };
7
- var script$b = /* @__PURE__ */ defineComponent({
6
+ const _hoisted_1$d = { class: "token-line number" };
7
+ const _hoisted_2$b = { class: "number" };
8
+ var script$d = /* @__PURE__ */ defineComponent({
8
9
  __name: "AmountPicker",
9
10
  props: {
10
11
  items: { type: Array, required: true, default: () => [] },
@@ -42,7 +43,7 @@ var script$b = /* @__PURE__ */ defineComponent({
42
43
  default: withCtx(() => [
43
44
  createElementVNode(
44
45
  "h4",
45
- _hoisted_1$b,
46
+ _hoisted_1$d,
46
47
  toDisplayString(amount.token),
47
48
  1
48
49
  /* TEXT */
@@ -51,7 +52,7 @@ var script$b = /* @__PURE__ */ defineComponent({
51
52
  createTextVNode("\xA5"),
52
53
  createElementVNode(
53
54
  "span",
54
- _hoisted_2$9,
55
+ _hoisted_2$b,
55
56
  toDisplayString(amount.amount),
56
57
  1
57
58
  /* TEXT */
@@ -73,21 +74,21 @@ var script$b = /* @__PURE__ */ defineComponent({
73
74
  }
74
75
  });
75
76
 
76
- script$b.__file = "src/payment/components/AmountPicker.vue";
77
+ script$d.__file = "src/payment/components/AmountPicker.vue";
77
78
 
78
- const _hoisted_1$a = { class: "agreement-doc" };
79
- const _hoisted_2$8 = /* @__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><p>\xA0</p><p>\u3010\u63D0\u793A\u6761\u6B3E\u3011</p><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>\u3010\u5BA1\u614E\u9605\u8BFB\u3011</p><p><span class="bold">\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</span></p><p>\xA0</p><p>\u3010\u7279\u522B\u63D0\u793A\u3011</p><p><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u4E00\u3001\u534F\u8BAE\u7684\u8303\u56F4</span></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><span class="bold">\u4E8C\u3001\u540D\u8BCD\u5B9A\u4E49</span></p><p>\xA0</p><p><span class="bold">2.1\u3010\u4E91\u8C46\u3011</span></p><p><span class="bold">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</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p>2.2\u3010\u5927\u9053\u4E91\u5E73\u53F0\u3011</p><p>\u6307\u7531<span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u4E09\u3001\u6743\u5229\u4E49\u52A1</span></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 <span class="bold">\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</span></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><span class="bold">\u56DB\u3001\u4E91\u8C46\u4F7F\u7528\u89C4\u5219\u53CA\u7279\u522B\u7EA6\u5B9A</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p>\xA0</p><p><span class="bold">\u4E94\u3001\u884C\u4E3A\u89C4\u8303</span></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><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u516D\u3001\u670D\u52A1\u7684\u53D8\u66F4\u3001\u4E2D\u6B62\u6216\u7EC8\u6B62</span></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><span class="bold">\u4E03\u3001\u8FDD\u7EA6\u8D23\u4EFB</span></p><p>\xA0</p><p><span class="bold">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</span></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><span class="bold">7.3\u3010\u5355\u65B9\u63D0\u524D\u7EC8\u6B62\u670D\u52A1\u3011</span></p><p><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u516B\u3001\u514D\u8D23\u6761\u6B3E</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">8.2.2 \u60A8\u64CD\u4F5C\u4E0D\u5F53\uFF1B</span></p><p><span class="bold">8.2.3 \u5176\u4ED6\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u6CD5\u63A7\u5236\u6216\u5408\u7406\u9884\u89C1\u7684\u60C5\u5F62\u3002</span></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><span class="bold">9.4\u3010\u4E89\u8BAE\u89E3\u51B3\u3011</span></p><p><span class="bold">\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</span></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><p>\xA0</p><p>\xA0</p>', 96);
79
+ const _hoisted_1$c = { class: "agreement-doc" };
80
+ const _hoisted_2$a = /* @__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><p>\xA0</p><p>\u3010\u63D0\u793A\u6761\u6B3E\u3011</p><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>\u3010\u5BA1\u614E\u9605\u8BFB\u3011</p><p><span class="bold">\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</span></p><p>\xA0</p><p>\u3010\u7279\u522B\u63D0\u793A\u3011</p><p><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u4E00\u3001\u534F\u8BAE\u7684\u8303\u56F4</span></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><span class="bold">\u4E8C\u3001\u540D\u8BCD\u5B9A\u4E49</span></p><p>\xA0</p><p><span class="bold">2.1\u3010\u4E91\u8C46\u3011</span></p><p><span class="bold">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</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p>2.2\u3010\u5927\u9053\u4E91\u5E73\u53F0\u3011</p><p>\u6307\u7531<span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u4E09\u3001\u6743\u5229\u4E49\u52A1</span></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 <span class="bold">\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</span></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><span class="bold">\u56DB\u3001\u4E91\u8C46\u4F7F\u7528\u89C4\u5219\u53CA\u7279\u522B\u7EA6\u5B9A</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p>\xA0</p><p><span class="bold">\u4E94\u3001\u884C\u4E3A\u89C4\u8303</span></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><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u516D\u3001\u670D\u52A1\u7684\u53D8\u66F4\u3001\u4E2D\u6B62\u6216\u7EC8\u6B62</span></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><span class="bold">\u4E03\u3001\u8FDD\u7EA6\u8D23\u4EFB</span></p><p>\xA0</p><p><span class="bold">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</span></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><span class="bold">7.3\u3010\u5355\u65B9\u63D0\u524D\u7EC8\u6B62\u670D\u52A1\u3011</span></p><p><span class="bold">\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</span></p><p>\xA0</p><p><span class="bold">\u516B\u3001\u514D\u8D23\u6761\u6B3E</span></p><p>\xA0</p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">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</span></p><p><span class="bold">8.2.2 \u60A8\u64CD\u4F5C\u4E0D\u5F53\uFF1B</span></p><p><span class="bold">8.2.3 \u5176\u4ED6\u5927\u9053\u4E91\u5E73\u53F0\u65E0\u6CD5\u63A7\u5236\u6216\u5408\u7406\u9884\u89C1\u7684\u60C5\u5F62\u3002</span></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><span class="bold">9.4\u3010\u4E89\u8BAE\u89E3\u51B3\u3011</span></p><p><span class="bold">\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</span></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><p>\xA0</p><p>\xA0</p>', 96);
80
81
  const _hoisted_98 = [
81
- _hoisted_2$8
82
+ _hoisted_2$a
82
83
  ];
83
- function render(_ctx, _cache) {
84
- return openBlock(), createElementBlock("view", _hoisted_1$a, [..._hoisted_98]);
84
+ function render$1(_ctx, _cache) {
85
+ return openBlock(), createElementBlock("view", _hoisted_1$c, [..._hoisted_98]);
85
86
  }
86
87
 
87
- const script$a = {};
88
+ const script$c = {};
88
89
 
89
- script$a.render = render;
90
- script$a.__file = "src/payment/components/UserAgreement.vue";
90
+ script$c.render = render$1;
91
+ script$c.__file = "src/payment/components/UserAgreement.vue";
91
92
 
92
93
  function requestPayment$2(json) {
93
94
  return new Promise((resolve, reject) => {
@@ -106,11 +107,21 @@ function requestPayment$2(json) {
106
107
  });
107
108
  }
108
109
 
109
- const _hoisted_1$9 = {
110
+ function useSafeArea() {
111
+ const systemInfo = Taro.getSystemInfoSync(), capsule = Taro.getMenuButtonBoundingClientRect();
112
+ const status = systemInfo.statusBarHeight || 0, gap = capsule.top - status, nav = capsule.height + gap * 2;
113
+ return {
114
+ status,
115
+ nav,
116
+ bottom: systemInfo.safeArea?.bottom || 0
117
+ };
118
+ }
119
+
120
+ const _hoisted_1$b = {
110
121
  key: 0,
111
122
  class: "page-title"
112
123
  };
113
- var script$9 = /* @__PURE__ */ defineComponent({
124
+ var script$b = /* @__PURE__ */ defineComponent({
114
125
  __name: "PageHeader",
115
126
  props: {
116
127
  title: { type: String, required: false, default: "" },
@@ -118,23 +129,29 @@ var script$9 = /* @__PURE__ */ defineComponent({
118
129
  },
119
130
  emits: ["close"],
120
131
  setup(__props, { emit: __emit }) {
132
+ const safeArea = useSafeArea();
133
+ const cssVars = {
134
+ "--top": `${safeArea.status}px`,
135
+ "--height": `${safeArea.nav}px`
136
+ };
121
137
  const emit = __emit;
122
138
  const onBackButtonClick = () => {
123
139
  emit("close");
124
140
  };
125
141
  return (_ctx, _cache) => {
126
142
  return openBlock(), createElementBlock(
127
- "view",
143
+ "div",
128
144
  {
129
145
  class: normalizeClass([
130
146
  "page-header",
131
147
  `color-mode-${_ctx.colorMode}`
132
- ])
148
+ ]),
149
+ style: cssVars
133
150
  },
134
151
  [
135
152
  _ctx.title ? (openBlock(), createElementBlock(
136
153
  "h1",
137
- _hoisted_1$9,
154
+ _hoisted_1$b,
138
155
  toDisplayString(_ctx.title),
139
156
  1
140
157
  /* TEXT */
@@ -152,10 +169,10 @@ var script$9 = /* @__PURE__ */ defineComponent({
152
169
  }
153
170
  });
154
171
 
155
- script$9.__file = "src/shared/components/PageHeader.vue";
172
+ script$b.__file = "src/shared/components/PageHeader.vue";
156
173
 
157
- const _hoisted_1$8 = { class: "drawer-body" };
158
- var script$8 = /* @__PURE__ */ defineComponent({
174
+ const _hoisted_1$a = { class: "drawer-body" };
175
+ var script$a = /* @__PURE__ */ defineComponent({
159
176
  __name: "AppDrawer",
160
177
  props: {
161
178
  modelValue: { type: Boolean, required: true },
@@ -179,11 +196,11 @@ var script$8 = /* @__PURE__ */ defineComponent({
179
196
  "onUpdate:visible": onVisibleChange
180
197
  }, {
181
198
  default: withCtx(() => [
182
- createVNode(script$9, {
199
+ createVNode(script$b, {
183
200
  title: _ctx.title,
184
201
  onClose: onPageHeaderClose
185
202
  }, null, 8, ["title"]),
186
- createElementVNode("div", _hoisted_1$8, [
203
+ createElementVNode("div", _hoisted_1$a, [
187
204
  renderSlot(_ctx.$slots, "default")
188
205
  ])
189
206
  ]),
@@ -194,7 +211,7 @@ var script$8 = /* @__PURE__ */ defineComponent({
194
211
  }
195
212
  });
196
213
 
197
- script$8.__file = "src/shared/components/AppDrawer.vue";
214
+ script$a.__file = "src/shared/components/AppDrawer.vue";
198
215
 
199
216
  var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
200
217
  HttpMethod2["get"] = "GET";
@@ -204,58 +221,41 @@ var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
204
221
  return HttpMethod2;
205
222
  })(HttpMethod || {});
206
223
 
207
- const defaultClientConfig = {
208
- baseUrl: "https://ytech.ddjf.com",
209
- response: {
210
- getCode: (data) => data.code,
211
- getMessage: (data) => data.msg,
212
- getData: (data) => data.result
213
- },
214
- interceptors: {
215
- auth: (data) => data.code == "401",
216
- server: (data) => false
217
- }
218
- };
219
- let clientConfig = {
220
- ...defaultClientConfig
221
- };
222
224
  const request = (config) => {
223
- clientConfig = {
225
+ const c = {
224
226
  ...clientConfig,
225
227
  ...config
226
228
  };
227
229
  return new Promise((resolve, reject) => {
228
- const data = config.data && clientConfig.translates && clientConfig.translates[config.url] ? clientConfig.translates[config.url](config.data) : config.data;
229
- console.log(`[][][][][][][][][][][][] HTTP.${config.method}, ${clientConfig.baseUrl}${config.url}`, data);
230
- Taro.request({
231
- url: `${clientConfig.baseUrl}${config.url}`,
230
+ const data = config.data && clientConfig.translates && clientConfig.translates[c.url] ? clientConfig.translates[c.url]?.(c.data || {}) : c.data;
231
+ console.log(`[][][][][]HTTP.${c.method}, ${c.baseUrl}${c.url}`, data);
232
+ clientConfig.vendor?.request({
233
+ url: `${c.baseUrl}${c.url}`,
232
234
  data,
233
- header: clientConfig.header,
234
- method: config.method,
235
- success(res) {
236
- if (!isSuccess(res)) {
237
- console.error("\u63A5\u53E3\u62A5\u9519", res);
238
- reject({});
239
- }
240
- const { data: raw } = res;
241
- if (clientConfig.interceptors?.auth(raw)) {
242
- clientConfig.onAuthError?.();
243
- reject("--- 401 ---");
244
- }
245
- if (clientConfig.interceptors?.server(raw)) {
246
- clientConfig.onServerError?.();
247
- reject("server error");
248
- }
249
- const response = clientConfig.response?.getData(raw);
250
- if (response) {
251
- resolve(clientConfig.transforms && clientConfig.transforms[config.url] ? clientConfig.transforms[config.url](response) : response);
252
- } else {
253
- reject({});
235
+ headers: c.headers,
236
+ method: c.method
237
+ }).then((raw) => {
238
+ for (const interc of c.interceptors || []) {
239
+ const r = interc(raw);
240
+ if (r) {
241
+ reject("===INTERCEPTED===" + raw.status);
242
+ return false;
254
243
  }
255
- },
256
- fail(res) {
257
- console.log("HTTP failed", res);
258
244
  }
245
+ if (raw.data) {
246
+ const response = clientConfig.transforms && clientConfig.transforms[c.url] ? clientConfig.transforms[c.url]?.(raw.data) : data;
247
+ const paging = config.data?.page ? clientConfig.paging?.transform(raw.data) : void 0;
248
+ resolve(
249
+ paging ? {
250
+ ...paging,
251
+ data: response
252
+ } : response
253
+ );
254
+ } else {
255
+ reject(`\u672A\u77E5\u9519\u8BEF`);
256
+ }
257
+ }).catch((e) => {
258
+ console.log("request.catch===", e);
259
259
  });
260
260
  });
261
261
  };
@@ -273,7 +273,16 @@ const post = (url, data) => {
273
273
  method: HttpMethod.post
274
274
  });
275
275
  };
276
- function useHttp(config) {
276
+ const defaultClientConfig = {
277
+ baseUrl: "/",
278
+ interceptors: [
279
+ (raw) => raw.status == 401
280
+ ]
281
+ };
282
+ let clientConfig = {
283
+ ...defaultClientConfig
284
+ };
285
+ function createHttp(config) {
277
286
  clientConfig = {
278
287
  ...defaultClientConfig,
279
288
  ...config
@@ -284,9 +293,6 @@ function useHttp(config) {
284
293
  post
285
294
  };
286
295
  }
287
- function isSuccess(res) {
288
- return /^2/.test(res.statusCode.toString());
289
- }
290
296
 
291
297
  const endpointsList$1 = {
292
298
  /**
@@ -294,7 +300,7 @@ const endpointsList$1 = {
294
300
  * (查询某应用某场景可充值的金额列表)
295
301
  * 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
296
302
  */
297
- getPackages: {
303
+ \u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868: {
298
304
  path: "/payment/outer/payment/getRechargeList",
299
305
  translate: (data) => ({
300
306
  appCode: data.app,
@@ -311,7 +317,7 @@ const endpointsList$1 = {
311
317
  * (获取拉起微信支付用的JSON串)
312
318
  * 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
313
319
  */
314
- getPayParams: {
320
+ \u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305: {
315
321
  // {
316
322
  // "amount": 100,
317
323
  // "appCode": "crm",
@@ -372,26 +378,57 @@ const useAppKitOptions = () => {
372
378
  return globalData.$appKitOptions;
373
379
  };
374
380
 
375
- const makeHttp$1 = () => {
381
+ const vendor$1 = {
382
+ async request(config) {
383
+ return new Promise((resolve, reject) => {
384
+ Taro.request({
385
+ url: config.url,
386
+ method: config.method,
387
+ header: config.headers,
388
+ data: config.data
389
+ }).then(({ data }) => {
390
+ resolve({
391
+ status: data.code,
392
+ message: data.msg,
393
+ data: data.result
394
+ });
395
+ }).catch((e) => {
396
+ reject(e);
397
+ });
398
+ });
399
+ }
400
+ };
401
+ function useHttp$1() {
376
402
  const appkitOptions = useAppKitOptions();
377
- console.log("===makeHTTP===tempToken:", appkitOptions.tempToken());
378
- const token = appkitOptions.tempToken() || appkitOptions.token();
379
- const header = {
380
- Token: token,
403
+ const headers = {
404
+ Token: appkitOptions.token(),
381
405
  Appcode: appkitOptions.app(),
382
406
  cookie: `tid=${appkitOptions.tenant()}`
383
407
  };
384
- const $http = useHttp({
408
+ const $http = createHttp({
409
+ vendor: vendor$1,
385
410
  baseUrl: appkitOptions.baseUrl(),
386
- header,
387
- onAuthError: () => {
388
- appkitOptions["401"]();
389
- },
411
+ headers,
412
+ interceptors: [
413
+ (raw) => {
414
+ if (raw.status == 401) {
415
+ appkitOptions[401]();
416
+ return true;
417
+ }
418
+ return false;
419
+ },
420
+ (raw) => {
421
+ if (raw.status > 500) {
422
+ return true;
423
+ }
424
+ return false;
425
+ }
426
+ ],
390
427
  translates: translates$1,
391
428
  transforms: transforms$1
392
429
  });
393
430
  return $http;
394
- };
431
+ }
395
432
 
396
433
  const CASHIER_APP_ID = "wx82330581af3328ab";
397
434
 
@@ -416,8 +453,8 @@ var invokeRecharge$1 = {
416
453
 
417
454
  const requestPayment = (params) => {
418
455
  return new Promise((resolve, reject) => {
419
- const $http = makeHttp$1();
420
- $http.post(endpoints$1.getPayParams, {
456
+ const $http = useHttp$1();
457
+ $http.post(endpoints$1.\u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305, {
421
458
  ...params
422
459
  // amount: 0.01,
423
460
  }).then((response) => {
@@ -442,11 +479,11 @@ const services$1 = [
442
479
  invokeRecharge$1
443
480
  ];
444
481
 
445
- const _hoisted_1$7 = { class: "view recharge-view" };
446
- const _hoisted_2$7 = { class: "flex-grow" };
447
- const _hoisted_3$7 = { class: "amount-footer" };
448
- const _hoisted_4$6 = { class: "agreement" };
449
- var script$7 = /* @__PURE__ */ defineComponent({
482
+ const _hoisted_1$9 = { class: "view recharge-view" };
483
+ const _hoisted_2$9 = { class: "flex-grow" };
484
+ const _hoisted_3$9 = { class: "amount-footer" };
485
+ const _hoisted_4$8 = { class: "agreement" };
486
+ var script$9 = /* @__PURE__ */ defineComponent({
450
487
  __name: "RechargeView",
451
488
  props: {
452
489
  app: { type: String, required: true },
@@ -470,8 +507,8 @@ var script$7 = /* @__PURE__ */ defineComponent({
470
507
  state.selected = selected;
471
508
  };
472
509
  onMounted(() => {
473
- const $http = makeHttp$1();
474
- $http.get(endpoints$1.getPackages, {
510
+ const $http = useHttp$1();
511
+ $http.get(endpoints$1.\u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868, {
475
512
  app: props.app,
476
513
  // stage: 'aiApproveRecharge', // 支付场景
477
514
  tenant: props.tenant
@@ -509,16 +546,16 @@ var script$7 = /* @__PURE__ */ defineComponent({
509
546
  return (_ctx, _cache) => {
510
547
  const _component_nut_checkbox = resolveComponent("nut-checkbox");
511
548
  const _component_nut_button = resolveComponent("nut-button");
512
- return openBlock(), createElementBlock("view", _hoisted_1$7, [
513
- createElementVNode("view", _hoisted_2$7, [
514
- createVNode(script$b, {
549
+ return openBlock(), createElementBlock("view", _hoisted_1$9, [
550
+ createElementVNode("view", _hoisted_2$9, [
551
+ createVNode(script$d, {
515
552
  items: amounts.value,
516
553
  selected: state.selected,
517
554
  onChange: onAmountSelect
518
555
  }, null, 8, ["items", "selected"])
519
556
  ]),
520
- createElementVNode("view", _hoisted_3$7, [
521
- createElementVNode("view", _hoisted_4$6, [
557
+ createElementVNode("view", _hoisted_3$9, [
558
+ createElementVNode("view", _hoisted_4$8, [
522
559
  createVNode(_component_nut_checkbox, {
523
560
  modelValue: state.agreed,
524
561
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.agreed = $event)
@@ -548,13 +585,13 @@ var script$7 = /* @__PURE__ */ defineComponent({
548
585
  /* STABLE */
549
586
  }, 8, ["loading"])
550
587
  ]),
551
- createVNode(unref(script$8), {
588
+ createVNode(unref(script$a), {
552
589
  modelValue: state.agreementOpen,
553
590
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.agreementOpen = $event),
554
591
  title: "\u5145\u503C\u534F\u8BAE"
555
592
  }, {
556
593
  default: withCtx(() => [
557
- createVNode(script$a)
594
+ createVNode(script$c)
558
595
  ]),
559
596
  _: 1
560
597
  /* STABLE */
@@ -564,32 +601,32 @@ var script$7 = /* @__PURE__ */ defineComponent({
564
601
  }
565
602
  });
566
603
 
567
- script$7.__file = "src/payment/components/RechargeView.vue";
604
+ script$9.__file = "src/payment/components/RechargeView.vue";
568
605
 
569
- const _hoisted_1$6 = { class: "recharge-result" };
570
- const _hoisted_2$6 = { class: "content" };
571
- const _hoisted_3$6 = /* @__PURE__ */ createElementVNode(
606
+ const _hoisted_1$8 = { class: "recharge-result" };
607
+ const _hoisted_2$8 = { class: "content" };
608
+ const _hoisted_3$8 = /* @__PURE__ */ createElementVNode(
572
609
  "div",
573
610
  { class: "figure" },
574
611
  null,
575
612
  -1
576
613
  /* HOISTED */
577
614
  );
578
- const _hoisted_4$5 = /* @__PURE__ */ createElementVNode(
615
+ const _hoisted_4$7 = /* @__PURE__ */ createElementVNode(
579
616
  "h2",
580
617
  null,
581
618
  "\u5145\u503C\u6210\u529F",
582
619
  -1
583
620
  /* HOISTED */
584
621
  );
585
- const _hoisted_5$5 = /* @__PURE__ */ createElementVNode(
622
+ const _hoisted_5$6 = /* @__PURE__ */ createElementVNode(
586
623
  "div",
587
624
  { class: "caption" },
588
625
  "\u4E91\u8C46\u5C06\u57285\u5206\u949F\u4E4B\u5185\u5230\u8D26",
589
626
  -1
590
627
  /* HOISTED */
591
628
  );
592
- var script$6 = /* @__PURE__ */ defineComponent({
629
+ var script$8 = /* @__PURE__ */ defineComponent({
593
630
  __name: "RechargeResult",
594
631
  emits: ["dismiss"],
595
632
  setup(__props, { emit: __emit }) {
@@ -599,11 +636,11 @@ var script$6 = /* @__PURE__ */ defineComponent({
599
636
  }
600
637
  return (_ctx, _cache) => {
601
638
  const _component_nut_button = resolveComponent("nut-button");
602
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
603
- createElementVNode("div", _hoisted_2$6, [
604
- _hoisted_3$6,
605
- _hoisted_4$5,
606
- _hoisted_5$5,
639
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
640
+ createElementVNode("div", _hoisted_2$8, [
641
+ _hoisted_3$8,
642
+ _hoisted_4$7,
643
+ _hoisted_5$6,
607
644
  createVNode(_component_nut_button, {
608
645
  class: "back-button",
609
646
  type: "default",
@@ -621,13 +658,13 @@ var script$6 = /* @__PURE__ */ defineComponent({
621
658
  }
622
659
  });
623
660
 
624
- script$6.__file = "src/payment/components/RechargeResult.vue";
661
+ script$8.__file = "src/payment/components/RechargeResult.vue";
625
662
 
626
663
  const components = {
627
- AmountPicker: script$b,
628
- RechargeView: script$7,
629
- UserAgreement: script$a,
630
- RechargeResult: script$6
664
+ AmountPicker: script$d,
665
+ RechargeView: script$9,
666
+ UserAgreement: script$c,
667
+ RechargeResult: script$8
631
668
  };
632
669
 
633
670
  const typeMappings = {
@@ -657,57 +694,63 @@ const directionMappingsReversed = Object.fromEntries(
657
694
  Object.entries(directionMappings).map(([x, y]) => [y, x])
658
695
  );
659
696
  const endpointsList = {
660
- /**
661
- * 余额明细
662
- */
663
- getBalance: {
697
+ \u83B7\u53D6\u4F59\u989D\u660E\u7EC6: {
664
698
  path: "/ac-app/account/info/detail/app",
665
699
  // /app
666
- translate: (data) => ({}),
700
+ translate: (data) => ({
701
+ appCode: data.app
702
+ }),
667
703
  transform(result) {
668
704
  return {
669
705
  total: result.commonAccount,
670
706
  privileges: result.rightsAccountBalList.map((r) => ({
671
707
  title: r.rightsName,
672
- amount: r.rightsAccount
708
+ count: r.rightsAccount
673
709
  }))
674
710
  };
675
711
  }
676
712
  },
677
- /**
678
- * 账户流水明细
679
- */
680
- getOperations: {
713
+ \u83B7\u53D6\u8D26\u6237\u6D41\u6C34: {
681
714
  path: "/ac-app/account/record/detail/mobile",
682
715
  translate: (data) => {
683
716
  return {
684
- accountType: positionMappingsReversed[data.position] || "",
685
- inOrOut: directionMappingsReversed[data.direction] || "",
686
- changeType: typeMappingsReversed[data.type] || "",
717
+ appCode: data.app,
718
+ accountType: positionMappingsReversed[data.\u8D26\u6237\u7C7B\u578B] || "",
719
+ inOrOut: directionMappingsReversed[data.\u6536\u5165\u8FD8\u662F\u652F\u51FA] || "",
720
+ changeType: typeMappingsReversed[data.\u4EA4\u6613\u7C7B\u578B] || "",
687
721
  operateTimeStart: data.dateFrom || "",
688
- operateTimeEnd: data.dateTo || ""
722
+ operateTimeEnd: data.dateTo || "",
723
+ rightsCode: data.\u6743\u76CA\u7C7B\u76EE,
724
+ pageNum: data.page,
725
+ pageSize: 10
689
726
  };
690
727
  },
691
- transform(result) {
692
- if (!result.accountRecordDetailDailyList)
693
- return [];
694
- const data = {
695
- from: result.operateTimeStart,
696
- to: result.operateTimeEnd,
697
- list: result.accountRecordDetailDailyList.map((r) => ({
698
- date: r.operateTime,
699
- consumptions: r.accountRecordDetailList.map((d) => ({
700
- position: positionMappings[d.accountType],
701
- type: typeMappings[d.changeType],
702
- direction: directionMappings[d.inOrOut],
703
- amount: d.changeValue,
704
- title: d.rightsName,
705
- description: d.remark
706
- }))
707
- }))
708
- };
728
+ transform(response) {
729
+ const data = response.list.map((d) => ({
730
+ \u8D26\u6237\u7C7B\u578B: positionMappings[d.accountType],
731
+ \u4EA4\u6613\u7C7B\u578B: typeMappings[d.changeType],
732
+ \u6536\u5165\u8FD8\u662F\u652F\u51FA: directionMappings[d.inOrOut],
733
+ amount: d.changeValue,
734
+ title: d.rightsName,
735
+ time: Date.parse(d.operateTime),
736
+ // 后台返回的是日期字符串,这里格式化成 timestamp
737
+ description: d.remark
738
+ }));
709
739
  return data;
710
740
  }
741
+ },
742
+ \u83B7\u53D6\u6743\u76CA\u7C7B\u76EE: {
743
+ path: "/ac-app/rights/item/list",
744
+ translate: (data) => ({
745
+ appCode: data.app
746
+ }),
747
+ // translate (data: ConsumptionFiltering) {
748
+ // // return { appCode: data.appCode }
749
+ // },
750
+ transform: (data) => data.map((d) => ({
751
+ name: d.rightsName,
752
+ code: d.rightsCode
753
+ }))
711
754
  }
712
755
  };
713
756
  const endpoints = Object.fromEntries(
@@ -720,30 +763,74 @@ const transforms = Object.fromEntries(
720
763
  Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
721
764
  );
722
765
 
723
- const makeHttp = () => {
766
+ const vendor = {
767
+ async request(config) {
768
+ return new Promise((resolve, reject) => {
769
+ Taro.request({
770
+ url: config.url,
771
+ method: config.method,
772
+ header: config.headers,
773
+ data: config.data
774
+ }).then(({ data }) => {
775
+ resolve({
776
+ status: +data.code,
777
+ message: data.msg,
778
+ data: data.result
779
+ });
780
+ }).catch((e) => {
781
+ reject(e);
782
+ });
783
+ });
784
+ }
785
+ };
786
+ function useHttp() {
724
787
  const appkitOptions = useAppKitOptions();
725
- const header = {
788
+ const headers = {
726
789
  Token: appkitOptions.token(),
727
790
  Appcode: appkitOptions.app(),
728
791
  cookie: `tid=${appkitOptions.tenant()}`
729
792
  };
730
- const $http = useHttp({
793
+ const $http = createHttp({
794
+ vendor,
731
795
  baseUrl: appkitOptions.baseUrl(),
732
- header,
733
- onAuthError() {
734
- appkitOptions[401]();
796
+ headers,
797
+ interceptors: [
798
+ (raw) => {
799
+ if (raw.status == 401) {
800
+ appkitOptions[401]();
801
+ return true;
802
+ }
803
+ return false;
804
+ },
805
+ (raw) => {
806
+ if (raw.status > 500) {
807
+ return true;
808
+ }
809
+ return false;
810
+ }
811
+ ],
812
+ paging: {
813
+ translate: (params) => ({
814
+ pageNum: params.page,
815
+ pageSize: params.pageSize
816
+ }),
817
+ transform(data) {
818
+ return {
819
+ totalPages: data.pages
820
+ };
821
+ }
735
822
  },
736
823
  translates,
737
824
  transforms
738
825
  });
739
826
  return $http;
740
- };
827
+ }
741
828
 
742
- const _hoisted_1$5 = { class: "account-card" };
743
- const _hoisted_2$5 = { class: "card" };
744
- const _hoisted_3$5 = { class: "card-row" };
745
- const _hoisted_4$4 = { class: "card-row-left" };
746
- const _hoisted_5$4 = /* @__PURE__ */ createElementVNode(
829
+ const _hoisted_1$7 = { class: "account-card" };
830
+ const _hoisted_2$7 = { class: "card" };
831
+ const _hoisted_3$7 = { class: "card-row" };
832
+ const _hoisted_4$6 = { class: "card-row-left" };
833
+ const _hoisted_5$5 = /* @__PURE__ */ createElementVNode(
747
834
  "div",
748
835
  { class: "bean-box" },
749
836
  [
@@ -817,7 +904,7 @@ const _hoisted_14$1 = [
817
904
  _hoisted_12$1,
818
905
  _hoisted_13$1
819
906
  ];
820
- var script$5 = /* @__PURE__ */ defineComponent({
907
+ var script$7 = /* @__PURE__ */ defineComponent({
821
908
  __name: "BalanceCard",
822
909
  emits: [
823
910
  /**
@@ -838,8 +925,8 @@ var script$5 = /* @__PURE__ */ defineComponent({
838
925
  emit("recharge");
839
926
  };
840
927
  async function loadBalance() {
841
- const $http = makeHttp();
842
- $http.get(endpoints.getBalance, {}).then((data) => {
928
+ const $http = useHttp();
929
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {}).then((data) => {
843
930
  balance.value = data;
844
931
  });
845
932
  }
@@ -851,11 +938,11 @@ var script$5 = /* @__PURE__ */ defineComponent({
851
938
  loadBalance();
852
939
  });
853
940
  return (_ctx, _cache) => {
854
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
855
- createElementVNode("div", _hoisted_2$5, [
856
- createElementVNode("div", _hoisted_3$5, [
857
- createElementVNode("div", _hoisted_4$4, [
858
- _hoisted_5$4,
941
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
942
+ createElementVNode("div", _hoisted_2$7, [
943
+ createElementVNode("div", _hoisted_3$7, [
944
+ createElementVNode("div", _hoisted_4$6, [
945
+ _hoisted_5$5,
859
946
  createElementVNode(
860
947
  "div",
861
948
  _hoisted_6$3,
@@ -887,7 +974,7 @@ var script$5 = /* @__PURE__ */ defineComponent({
887
974
  }
888
975
  });
889
976
 
890
- script$5.__file = "src/balance/components/BalanceCard.vue";
977
+ script$7.__file = "src/balance/components/BalanceCard.vue";
891
978
 
892
979
  const consumptionTypes = [
893
980
  "\u5168\u90E8",
@@ -910,8 +997,8 @@ const consumptionDirections = [
910
997
  "\u652F\u51FA"
911
998
  ];
912
999
 
913
- const _hoisted_1$4 = { class: "consumption-filter" };
914
- const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
1000
+ const _hoisted_1$6 = { class: "consumption-filter" };
1001
+ const _hoisted_2$6 = /* @__PURE__ */ createElementVNode(
915
1002
  "div",
916
1003
  { class: "consumption-filter-title" },
917
1004
  [
@@ -920,9 +1007,9 @@ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
920
1007
  -1
921
1008
  /* HOISTED */
922
1009
  );
923
- const _hoisted_3$4 = { class: "consumption-filter-content" };
924
- const _hoisted_4$3 = { class: "title" };
925
- const _hoisted_5$3 = { class: "info" };
1010
+ const _hoisted_3$6 = { class: "consumption-filter-content" };
1011
+ const _hoisted_4$5 = { class: "title" };
1012
+ const _hoisted_5$4 = { class: "info" };
926
1013
  const _hoisted_6$2 = ["onClick"];
927
1014
  const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
928
1015
  "div",
@@ -931,30 +1018,35 @@ const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
931
1018
  -1
932
1019
  /* HOISTED */
933
1020
  );
934
- var script$4 = /* @__PURE__ */ defineComponent({
1021
+ var script$6 = /* @__PURE__ */ defineComponent({
935
1022
  __name: "ConsumptionFilter",
936
1023
  props: {
937
- modelValue: { type: Array, required: true, default: () => ["\u5168\u90E8", "\u5168\u90E8", "\u5168\u90E8"] }
1024
+ modelValue: { type: Array, required: true, default: () => ["\u5168\u90E8", "\u5168\u90E8", "\u5168\u90E8", ""] }
938
1025
  },
939
1026
  emits: ["complete"],
940
1027
  setup(__props, { emit: __emit }) {
1028
+ const $http = useHttp();
941
1029
  const props = __props;
942
1030
  const emit = __emit;
943
1031
  const result = reactive(props.modelValue);
944
- const filterSections = [
1032
+ const filterSections = ref([
945
1033
  {
946
1034
  title: "\u7C7B\u578B",
947
- data: consumptionPositions
1035
+ data: consumptionPositions.map((s) => ({ code: s, name: s }))
948
1036
  },
949
1037
  {
950
1038
  title: "\u6536\u5165/\u652F\u51FA",
951
- data: consumptionDirections
1039
+ data: consumptionDirections.map((s) => ({ code: s, name: s }))
952
1040
  },
953
1041
  {
954
1042
  title: "\u660E\u7EC6\u7C7B\u578B",
955
- data: consumptionTypes
1043
+ data: consumptionTypes.map((s) => ({ code: s, name: s }))
1044
+ },
1045
+ {
1046
+ title: "\u6743\u76CA\u7C7B\u76EE",
1047
+ data: []
956
1048
  }
957
- ];
1049
+ ]);
958
1050
  const getItemClass = (index, value) => result[index] === value ? ["current"] : [""];
959
1051
  const onFilterSectionClick = (index, value) => {
960
1052
  result[index] = value;
@@ -963,39 +1055,49 @@ var script$4 = /* @__PURE__ */ defineComponent({
963
1055
  result[0] = "\u5168\u90E8";
964
1056
  result[1] = "\u5168\u90E8";
965
1057
  result[2] = "\u5168\u90E8";
1058
+ result[3] = "";
966
1059
  };
1060
+ const \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE = () => {
1061
+ $http.get(endpoints.\u83B7\u53D6\u6743\u76CA\u7C7B\u76EE).then((data) => {
1062
+ filterSections.value[3].data = [
1063
+ { code: "", name: "\u5168\u90E8" },
1064
+ ...data
1065
+ ];
1066
+ });
1067
+ };
1068
+ \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE();
967
1069
  const onOkClick = () => {
968
1070
  emit("complete", result);
969
1071
  };
970
1072
  return (_ctx, _cache) => {
971
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
972
- _hoisted_2$4,
973
- createElementVNode("div", _hoisted_3$4, [
974
- (openBlock(), createElementBlock(
1073
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1074
+ _hoisted_2$6,
1075
+ createElementVNode("div", _hoisted_3$6, [
1076
+ (openBlock(true), createElementBlock(
975
1077
  Fragment,
976
1078
  null,
977
- renderList(filterSections, (item, index) => {
1079
+ renderList(filterSections.value, (item, index) => {
978
1080
  return openBlock(), createElementBlock(
979
1081
  Fragment,
980
1082
  { key: index },
981
1083
  [
982
1084
  createElementVNode(
983
1085
  "div",
984
- _hoisted_4$3,
1086
+ _hoisted_4$5,
985
1087
  toDisplayString(item.title),
986
1088
  1
987
1089
  /* TEXT */
988
1090
  ),
989
- createElementVNode("div", _hoisted_5$3, [
1091
+ createElementVNode("div", _hoisted_5$4, [
990
1092
  (openBlock(true), createElementBlock(
991
1093
  Fragment,
992
1094
  null,
993
1095
  renderList(item.data, (it, i) => {
994
1096
  return openBlock(), createElementBlock("div", {
995
- onClick: () => onFilterSectionClick(index, it),
996
- class: normalizeClass([getItemClass(index, it), "info-item"]),
1097
+ onClick: () => onFilterSectionClick(index, it.code),
1098
+ class: normalizeClass([getItemClass(index, it.code), "info-item"]),
997
1099
  key: i
998
- }, toDisplayString(it), 11, _hoisted_6$2);
1100
+ }, toDisplayString(typeof it === "string" ? it : it.name), 11, _hoisted_6$2);
999
1101
  }),
1000
1102
  128
1001
1103
  /* KEYED_FRAGMENT */
@@ -1006,8 +1108,8 @@ var script$4 = /* @__PURE__ */ defineComponent({
1006
1108
  /* STABLE_FRAGMENT */
1007
1109
  );
1008
1110
  }),
1009
- 64
1010
- /* STABLE_FRAGMENT */
1111
+ 128
1112
+ /* KEYED_FRAGMENT */
1011
1113
  ))
1012
1114
  ]),
1013
1115
  createElementVNode("div", { class: "consumption-filter-btn spa-between" }, [
@@ -1026,25 +1128,25 @@ var script$4 = /* @__PURE__ */ defineComponent({
1026
1128
  }
1027
1129
  });
1028
1130
 
1029
- script$4.__file = "src/balance/components/ConsumptionFilter.vue";
1131
+ script$6.__file = "src/balance/components/ConsumptionFilter.vue";
1030
1132
 
1031
- const _hoisted_1$3 = { class: "consumption-date-filter" };
1032
- const _hoisted_2$3 = /* @__PURE__ */ createElementVNode(
1133
+ const _hoisted_1$5 = { class: "consumption-date-filter" };
1134
+ const _hoisted_2$5 = /* @__PURE__ */ createElementVNode(
1033
1135
  "div",
1034
1136
  { class: "date-filter-header" },
1035
1137
  "\u65E5\u671F\u9009\u62E9",
1036
1138
  -1
1037
1139
  /* HOISTED */
1038
1140
  );
1039
- const _hoisted_3$3 = { class: "content" };
1040
- const _hoisted_4$2 = /* @__PURE__ */ createElementVNode(
1141
+ const _hoisted_3$5 = { class: "content" };
1142
+ const _hoisted_4$4 = /* @__PURE__ */ createElementVNode(
1041
1143
  "div",
1042
1144
  { class: "title" },
1043
1145
  "\u81EA\u5B9A\u4E49",
1044
1146
  -1
1045
1147
  /* HOISTED */
1046
1148
  );
1047
- const _hoisted_5$2 = { class: "time" };
1149
+ const _hoisted_5$3 = { class: "time" };
1048
1150
  const _hoisted_6$1 = /* @__PURE__ */ createElementVNode(
1049
1151
  "div",
1050
1152
  { class: "line" },
@@ -1059,16 +1161,23 @@ const _hoisted_7$1 = /* @__PURE__ */ createElementVNode(
1059
1161
  -1
1060
1162
  /* HOISTED */
1061
1163
  );
1062
- var script$3 = /* @__PURE__ */ defineComponent({
1164
+ var script$5 = /* @__PURE__ */ defineComponent({
1063
1165
  __name: "DateFilter",
1064
1166
  props: {
1065
1167
  from: { type: String, required: true },
1066
1168
  to: { type: String, required: true }
1067
1169
  },
1068
- emits: ["complete"],
1170
+ emits: ["complete", "reset"],
1069
1171
  setup(__props, { emit: __emit }) {
1070
1172
  const props = __props;
1071
1173
  const emit = __emit;
1174
+ watch(
1175
+ () => `${props.from}${props.to}`,
1176
+ () => {
1177
+ result.from = props.from;
1178
+ result.to = props.to;
1179
+ }
1180
+ );
1072
1181
  const result = reactive({ ...props });
1073
1182
  const focused = ref("from");
1074
1183
  const focusedDate = ref(props.from);
@@ -1076,8 +1185,7 @@ var script$3 = /* @__PURE__ */ defineComponent({
1076
1185
  const maxDate = ref(/* @__PURE__ */ new Date());
1077
1186
  const datePickerOpen = ref(false);
1078
1187
  function reset() {
1079
- result.from = props.from;
1080
- result.to = props.to;
1188
+ emit("reset");
1081
1189
  }
1082
1190
  function onOkClick() {
1083
1191
  emit("complete", result);
@@ -1112,11 +1220,11 @@ var script$3 = /* @__PURE__ */ defineComponent({
1112
1220
  Fragment,
1113
1221
  null,
1114
1222
  [
1115
- createElementVNode("div", _hoisted_1$3, [
1116
- _hoisted_2$3,
1117
- createElementVNode("div", _hoisted_3$3, [
1118
- _hoisted_4$2,
1119
- createElementVNode("div", _hoisted_5$2, [
1223
+ createElementVNode("div", _hoisted_1$5, [
1224
+ _hoisted_2$5,
1225
+ createElementVNode("div", _hoisted_3$5, [
1226
+ _hoisted_4$4,
1227
+ createElementVNode("div", _hoisted_5$3, [
1120
1228
  createElementVNode(
1121
1229
  "div",
1122
1230
  {
@@ -1171,17 +1279,17 @@ var script$3 = /* @__PURE__ */ defineComponent({
1171
1279
  }
1172
1280
  });
1173
1281
 
1174
- script$3.__file = "src/balance/components/DateFilter.vue";
1282
+ script$5.__file = "src/balance/components/DateFilter.vue";
1175
1283
 
1176
- const _hoisted_1$2 = { class: "consumption-rules" };
1177
- const _hoisted_2$2 = /* @__PURE__ */ createElementVNode(
1284
+ const _hoisted_1$4 = { class: "consumption-rules" };
1285
+ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
1178
1286
  "div",
1179
1287
  { class: "title" },
1180
1288
  "\u89C4\u5219\u8BF4\u660E",
1181
1289
  -1
1182
1290
  /* HOISTED */
1183
1291
  );
1184
- const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1292
+ const _hoisted_3$4 = /* @__PURE__ */ createElementVNode(
1185
1293
  "div",
1186
1294
  { class: "desc" },
1187
1295
  [
@@ -1196,15 +1304,15 @@ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1196
1304
  -1
1197
1305
  /* HOISTED */
1198
1306
  );
1199
- var script$2 = /* @__PURE__ */ defineComponent({
1307
+ var script$4 = /* @__PURE__ */ defineComponent({
1200
1308
  __name: "ConsumptionRules",
1201
1309
  emits: ["complete"],
1202
1310
  setup(__props, { emit: __emit }) {
1203
1311
  const emit = __emit;
1204
1312
  return (_ctx, _cache) => {
1205
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
1206
- _hoisted_2$2,
1207
- _hoisted_3$2,
1313
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
1314
+ _hoisted_2$4,
1315
+ _hoisted_3$4,
1208
1316
  createElementVNode("div", {
1209
1317
  class: "know",
1210
1318
  onClick: _cache[0] || (_cache[0] = ($event) => emit("complete"))
@@ -1214,11 +1322,111 @@ var script$2 = /* @__PURE__ */ defineComponent({
1214
1322
  }
1215
1323
  });
1216
1324
 
1217
- script$2.__file = "src/balance/components/ConsumptionRules.vue";
1325
+ script$4.__file = "src/balance/components/ConsumptionRules.vue";
1326
+
1327
+ const _hoisted_1$3 = { class: "empty-view" };
1328
+ const _hoisted_2$3 = /* @__PURE__ */ createElementVNode(
1329
+ "img",
1330
+ {
1331
+ class: "empty-view-image",
1332
+ src: "https://cdn.ddjf.com/static/images/nutshell/empty-data.png"
1333
+ },
1334
+ null,
1335
+ -1
1336
+ /* HOISTED */
1337
+ );
1338
+ const _hoisted_3$3 = /* @__PURE__ */ createElementVNode(
1339
+ "div",
1340
+ { class: "empty-view-text" },
1341
+ "\u6682\u65E0\u6570\u636E",
1342
+ -1
1343
+ /* HOISTED */
1344
+ );
1345
+ const _hoisted_4$3 = [
1346
+ _hoisted_2$3,
1347
+ _hoisted_3$3
1348
+ ];
1349
+ function render(_ctx, _cache) {
1350
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [..._hoisted_4$3]);
1351
+ }
1352
+
1353
+ const script$3 = {};
1354
+
1355
+ script$3.render = render;
1356
+ script$3.__file = "src/shared/components/EmptyView.vue";
1357
+
1358
+ const _hoisted_1$2 = { class: "second-balance" };
1359
+ const _hoisted_2$2 = {
1360
+ key: 0,
1361
+ class: "positions"
1362
+ };
1363
+ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1364
+ "div",
1365
+ { class: "icon" },
1366
+ null,
1367
+ -1
1368
+ /* HOISTED */
1369
+ );
1370
+ const _hoisted_4$2 = { class: "title" };
1371
+ const _hoisted_5$2 = { class: "number amount" };
1372
+ var script$2 = /* @__PURE__ */ defineComponent({
1373
+ __name: "SecondBalance",
1374
+ props: {
1375
+ data: { type: Array, required: true, default: () => [] }
1376
+ },
1377
+ setup(__props) {
1378
+ return (_ctx, _cache) => {
1379
+ const _component_page_header = resolveComponent("page-header");
1380
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
1381
+ createVNode(_component_page_header, { title: "\u5C0F\u4E91\u8C46\u4F59\u989D" }),
1382
+ _ctx.data.length ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
1383
+ (openBlock(true), createElementBlock(
1384
+ Fragment,
1385
+ null,
1386
+ renderList(_ctx.data, (item, index) => {
1387
+ return openBlock(), createElementBlock("div", {
1388
+ class: "position",
1389
+ key: index
1390
+ }, [
1391
+ _hoisted_3$2,
1392
+ createElementVNode(
1393
+ "label",
1394
+ _hoisted_4$2,
1395
+ toDisplayString(item.title),
1396
+ 1
1397
+ /* TEXT */
1398
+ ),
1399
+ createElementVNode(
1400
+ "label",
1401
+ _hoisted_5$2,
1402
+ toDisplayString(item.count),
1403
+ 1
1404
+ /* TEXT */
1405
+ )
1406
+ ]);
1407
+ }),
1408
+ 128
1409
+ /* KEYED_FRAGMENT */
1410
+ ))
1411
+ ])) : (openBlock(), createBlock(script$3, { key: 1 }))
1412
+ ]);
1413
+ };
1414
+ }
1415
+ });
1416
+
1417
+ script$2.__file = "src/balance/components/SecondBalance.vue";
1218
1418
 
1219
- const _hoisted_1$1 = { class: "header" };
1220
- const _hoisted_2$1 = { class: "header_card" };
1221
- const _hoisted_3$1 = { class: "clound-bean" };
1419
+ const _hoisted_1$1 = /* @__PURE__ */ createElementVNode(
1420
+ "label",
1421
+ null,
1422
+ "\u5C0F\u4E91\u8C46\u4F59\u989D",
1423
+ -1
1424
+ /* HOISTED */
1425
+ );
1426
+ const _hoisted_2$1 = [
1427
+ _hoisted_1$1
1428
+ ];
1429
+ const _hoisted_3$1 = { class: "balance" };
1222
1430
  const _hoisted_4$1 = { class: "bean-box spa-between" };
1223
1431
  const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1224
1432
  "div",
@@ -1235,42 +1443,16 @@ const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1235
1443
  );
1236
1444
  const _hoisted_6 = { class: "bean-counts spa-between" };
1237
1445
  const _hoisted_7 = { class: "counts number" };
1238
- const _hoisted_8 = /* @__PURE__ */ createElementVNode(
1239
- "div",
1240
- { class: "line" },
1241
- null,
1242
- -1
1243
- /* HOISTED */
1244
- );
1245
- const _hoisted_9 = {
1246
- key: 0,
1247
- class: "small-clound-bean clound-bean"
1248
- };
1249
- const _hoisted_10 = /* @__PURE__ */ createElementVNode(
1250
- "div",
1251
- { class: "bean-box spa-between" },
1252
- [
1253
- /* @__PURE__ */ createElementVNode("div", { class: "bean-img" }, [
1254
- /* @__PURE__ */ createElementVNode("div", { class: "bean-tag" }, "\u5C0F\u4E91\u8C46")
1255
- ])
1256
- ],
1257
- -1
1258
- /* HOISTED */
1259
- );
1260
- const _hoisted_11 = { class: "bean-list" };
1261
- const _hoisted_12 = { class: "counts number" };
1262
- const _hoisted_13 = { class: "title" };
1263
- const _hoisted_14 = { class: "operation-title spa-between" };
1264
- const _hoisted_15 = { class: "search-time" };
1265
- const _hoisted_16 = /* @__PURE__ */ createElementVNode(
1446
+ const _hoisted_8 = { class: "search-time" };
1447
+ const _hoisted_9 = /* @__PURE__ */ createElementVNode(
1266
1448
  "div",
1267
1449
  { class: "title" },
1268
1450
  "\u6536\u652F\u660E\u7EC6",
1269
1451
  -1
1270
1452
  /* HOISTED */
1271
1453
  );
1272
- const _hoisted_17 = { class: "text" };
1273
- const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1454
+ const _hoisted_10 = { class: "text number" };
1455
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode(
1274
1456
  "img",
1275
1457
  {
1276
1458
  style: { "margin-top": "-2px" },
@@ -1281,14 +1463,14 @@ const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1281
1463
  -1
1282
1464
  /* HOISTED */
1283
1465
  );
1284
- const _hoisted_19 = /* @__PURE__ */ createElementVNode(
1466
+ const _hoisted_12 = /* @__PURE__ */ createElementVNode(
1285
1467
  "span",
1286
1468
  { class: "text" },
1287
1469
  "\u7B5B\u9009",
1288
1470
  -1
1289
1471
  /* HOISTED */
1290
1472
  );
1291
- const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1473
+ const _hoisted_13 = /* @__PURE__ */ createElementVNode(
1292
1474
  "img",
1293
1475
  {
1294
1476
  class: "time-icon",
@@ -1298,83 +1480,65 @@ const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1298
1480
  -1
1299
1481
  /* HOISTED */
1300
1482
  );
1301
- const _hoisted_21 = [
1302
- _hoisted_19,
1303
- _hoisted_20
1483
+ const _hoisted_14 = [
1484
+ _hoisted_12,
1485
+ _hoisted_13
1304
1486
  ];
1305
- const _hoisted_22 = { class: "operation-list" };
1306
- const _hoisted_23 = {
1487
+ const _hoisted_15 = { class: "operation-list" };
1488
+ const _hoisted_16 = {
1307
1489
  key: 0,
1308
1490
  class: "box"
1309
1491
  };
1310
- const _hoisted_24 = { class: "title" };
1311
- const _hoisted_25 = { class: "item-type" };
1312
- const _hoisted_26 = { class: "item-detail" };
1313
- const _hoisted_27 = { class: "item-info spa-between" };
1314
- const _hoisted_28 = { class: "item-info-type" };
1315
- const _hoisted_29 = { class: "item-info-title" };
1316
- const _hoisted_30 = { class: "item-info-amount number" };
1317
- const _hoisted_31 = { class: "item-detail-remark" };
1318
- const _hoisted_32 = /* @__PURE__ */ createElementVNode(
1319
- "div",
1320
- { class: "box-not-text" },
1321
- "\u6CA1\u6709\u66F4\u591A\u4E86",
1322
- -1
1323
- /* HOISTED */
1324
- );
1325
- const _hoisted_33 = {
1326
- key: 1,
1327
- class: "operations-empty"
1492
+ const _hoisted_17 = { class: "title number" };
1493
+ const _hoisted_18 = { class: "item-type" };
1494
+ const _hoisted_19 = { class: "item-detail" };
1495
+ const _hoisted_20 = { class: "item-info spa-between" };
1496
+ const _hoisted_21 = { class: "item-info-type" };
1497
+ const _hoisted_22 = { class: "item-info-title" };
1498
+ const _hoisted_23 = { class: "item-info-amount number" };
1499
+ const _hoisted_24 = { class: "item-detail-remark" };
1500
+ const _hoisted_25 = {
1501
+ key: 0,
1502
+ class: "box-not-text"
1328
1503
  };
1329
- const _hoisted_34 = /* @__PURE__ */ createElementVNode(
1330
- "img",
1331
- {
1332
- class: "operations-empty-img",
1333
- src: "https://cdn.ddjf.com/static/images/fnfundkit/bean-no-thing.png"
1334
- },
1335
- null,
1336
- -1
1337
- /* HOISTED */
1338
- );
1339
- const _hoisted_35 = /* @__PURE__ */ createElementVNode(
1340
- "div",
1341
- { class: "operations-empty-text" },
1342
- "\u6682\u65E0\u6570\u636E",
1343
- -1
1344
- /* HOISTED */
1345
- );
1346
- const _hoisted_36 = [
1347
- _hoisted_34,
1348
- _hoisted_35
1349
- ];
1350
1504
  var script$1 = /* @__PURE__ */ defineComponent({
1351
1505
  __name: "AccountView",
1506
+ props: {
1507
+ app: { type: String, required: true }
1508
+ },
1352
1509
  emits: ["recharge"],
1353
1510
  setup(__props, { emit: __emit }) {
1511
+ const safeArea = useSafeArea();
1512
+ const props = __props;
1354
1513
  const emit = __emit;
1355
1514
  const filterOpen = ref(false);
1356
1515
  const rulesPopupOpen = ref(false);
1357
1516
  const filtering = reactive({
1358
- position: "\u5168\u90E8",
1359
- direction: "\u5168\u90E8",
1360
- type: "\u5168\u90E8",
1517
+ \u8D26\u6237\u7C7B\u578B: "\u5168\u90E8",
1518
+ \u6536\u5165\u8FD8\u662F\u652F\u51FA: "\u5168\u90E8",
1519
+ \u4EA4\u6613\u7C7B\u578B: "\u5168\u90E8",
1520
+ \u6743\u76CA\u7C7B\u76EE: "",
1361
1521
  dateFrom: "",
1362
- dateTo: ""
1522
+ dateTo: "",
1523
+ page: 1,
1524
+ pageSize: 20
1363
1525
  });
1526
+ const reachedLastPage = ref(false);
1527
+ function restartSearch() {
1528
+ filtering.page = 1;
1529
+ consumptionGroups.value = [];
1530
+ loadConsumptions();
1531
+ }
1364
1532
  const datePickerOpen = ref(false);
1365
1533
  function openDateFilter() {
1366
1534
  datePickerOpen.value = true;
1367
1535
  }
1368
- const dataRangeDisplay = computed(() => {
1536
+ const dateRangeDisplay = computed(() => {
1369
1537
  let startTime = filtering.dateFrom?.replace(/-/g, ".").substring(2);
1370
1538
  let endTime = filtering.dateTo?.replace(/-/g, ".").substring(2);
1371
1539
  return startTime + " - " + endTime;
1372
1540
  });
1373
- const consumptionGroups = ref({
1374
- from: "",
1375
- to: "",
1376
- list: []
1377
- });
1541
+ const consumptionGroups = ref([]);
1378
1542
  const balance = ref({
1379
1543
  total: 0,
1380
1544
  privileges: []
@@ -1383,46 +1547,78 @@ var script$1 = /* @__PURE__ */ defineComponent({
1383
1547
  Taro.setNavigationBarTitle({
1384
1548
  title: "\u6211\u7684\u8D26\u6237"
1385
1549
  });
1386
- loadConsumptions(true);
1550
+ loadConsumptions();
1387
1551
  loadBalance();
1388
1552
  });
1389
- async function loadConsumptions(firstTime) {
1390
- const $http = makeHttp();
1553
+ function groupDataByDate(data) {
1554
+ const groups = consumptionGroups.value || [];
1555
+ data.forEach((d) => {
1556
+ const date = dayjs(d.time).format("YYYY-MM-DD");
1557
+ let group = groups.find((g) => g.date === date);
1558
+ if (!group) {
1559
+ group = {
1560
+ date,
1561
+ consumptions: []
1562
+ };
1563
+ groups.push(group);
1564
+ }
1565
+ group.consumptions.push(d);
1566
+ });
1567
+ groups.sort((a, b) => a.date > b.date ? -1 : 1);
1568
+ return groups;
1569
+ }
1570
+ async function loadConsumptions(append = false) {
1571
+ if (!append) {
1572
+ consumptionGroups.value = [];
1573
+ }
1574
+ const $http = useHttp();
1391
1575
  Taro.showLoading({
1392
1576
  title: `\u52A0\u8F7D\u4E2D...`,
1393
1577
  mask: true
1394
1578
  });
1395
- $http.get(endpoints.getOperations, filtering).then((data) => {
1396
- consumptionGroups.value = data;
1397
- if (firstTime) {
1398
- filtering.dateFrom = data.from;
1399
- filtering.dateTo = data.to;
1579
+ $http.get(endpoints.\u83B7\u53D6\u8D26\u6237\u6D41\u6C34, {
1580
+ app: props.app,
1581
+ ...filtering
1582
+ }).then((response) => {
1583
+ consumptionGroups.value = groupDataByDate(response.data);
1584
+ if (filtering.page >= response.totalPages) {
1585
+ filtering.page = response.totalPages;
1586
+ reachedLastPage.value = true;
1587
+ } else {
1588
+ reachedLastPage.value = false;
1400
1589
  }
1590
+ Taro.hideLoading();
1401
1591
  });
1402
- Taro.hideLoading();
1403
1592
  }
1404
1593
  async function loadBalance() {
1405
- const $http = makeHttp();
1406
- $http.get(endpoints.getBalance, {}).then((data) => {
1594
+ const $http = useHttp();
1595
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {
1596
+ app: props.app
1597
+ }).then((data) => {
1407
1598
  balance.value = data;
1408
1599
  });
1409
1600
  }
1410
1601
  const onFilterComplete = (value) => {
1411
- filtering.position = value[0];
1412
- filtering.direction = value[1];
1413
- filtering.type = value[2];
1602
+ filtering.\u8D26\u6237\u7C7B\u578B = value[0];
1603
+ filtering.\u6536\u5165\u8FD8\u662F\u652F\u51FA = value[1];
1604
+ filtering.\u4EA4\u6613\u7C7B\u578B = value[2];
1605
+ filtering.\u6743\u76CA\u7C7B\u76EE = value[3];
1414
1606
  filterOpen.value = false;
1415
- loadConsumptions();
1607
+ restartSearch();
1416
1608
  };
1417
1609
  const onDateFilterComplete = (value) => {
1418
1610
  filtering.dateFrom = value.from;
1419
1611
  filtering.dateTo = value.to;
1420
1612
  datePickerOpen.value = false;
1421
- loadConsumptions();
1613
+ restartSearch();
1422
1614
  };
1423
1615
  function gotoRecharge() {
1424
1616
  emit("recharge");
1425
1617
  }
1618
+ function loadNextPage() {
1619
+ filtering.page++;
1620
+ loadConsumptions(true);
1621
+ }
1426
1622
  const scrollY = ref(0);
1427
1623
  usePageScroll((e) => {
1428
1624
  const { scrollTop } = e;
@@ -1438,9 +1634,39 @@ var script$1 = /* @__PURE__ */ defineComponent({
1438
1634
  Taro.stopPullDownRefresh();
1439
1635
  }, 500);
1440
1636
  });
1637
+ useReachBottom(() => {
1638
+ if (reachedLastPage.value) {
1639
+ return false;
1640
+ }
1641
+ loadNextPage();
1642
+ });
1441
1643
  const popupOpen = computed(() => {
1442
1644
  return rulesPopupOpen.value || datePickerOpen.value || filterOpen.value;
1443
1645
  });
1646
+ const secondBalanceOpen = ref(false);
1647
+ function onSecondBalanceButtonClick() {
1648
+ secondBalanceOpen.value = true;
1649
+ }
1650
+ watch(secondBalanceOpen, () => {
1651
+ Taro.setNavigationBarColor({
1652
+ frontColor: secondBalanceOpen.value ? "#000000" : "#ffffff",
1653
+ backgroundColor: "#ffffff",
1654
+ animation: {
1655
+ duration: 400,
1656
+ timingFunc: "easeIn"
1657
+ }
1658
+ });
1659
+ });
1660
+ function onDateReset() {
1661
+ resetDateRange();
1662
+ }
1663
+ function resetDateRange() {
1664
+ filtering.dateTo = dayjs().format("YYYY-MM-DD");
1665
+ filtering.dateFrom = dayjs().add(-3, "M").format("YYYY-MM-DD");
1666
+ }
1667
+ onMounted(() => {
1668
+ resetDateRange();
1669
+ });
1444
1670
  return (_ctx, _cache) => {
1445
1671
  const _component_nut_popup = resolveComponent("nut-popup");
1446
1672
  return openBlock(), createElementBlock(
@@ -1450,111 +1676,94 @@ var script$1 = /* @__PURE__ */ defineComponent({
1450
1676
  createElementVNode(
1451
1677
  "div",
1452
1678
  {
1453
- class: normalizeClass(["consumption-view", { popupOpen: popupOpen.value }])
1679
+ class: normalizeClass(["account-view", { popupOpen: popupOpen.value }])
1454
1680
  },
1455
1681
  [
1456
- createElementVNode("div", _hoisted_1$1, [
1457
- createElementVNode("div", _hoisted_2$1, [
1458
- createElementVNode("div", _hoisted_3$1, [
1459
- createElementVNode("div", _hoisted_4$1, [
1460
- _hoisted_5$1,
1461
- createElementVNode("div", {
1462
- class: "rule",
1463
- onClick: _cache[0] || (_cache[0] = ($event) => rulesPopupOpen.value = true)
1464
- }, "\u89C4\u5219\u8BF4\u660E")
1465
- ]),
1466
- createElementVNode("div", _hoisted_6, [
1467
- createElementVNode(
1468
- "div",
1469
- _hoisted_7,
1470
- toDisplayString(balance.value.total || 0),
1471
- 1
1472
- /* TEXT */
1473
- ),
1474
- createElementVNode("div", {
1475
- class: "pay",
1476
- onClick: gotoRecharge
1477
- }, "\u4E91\u8C46\u5145\u503C")
1478
- ])
1479
- ]),
1480
- _hoisted_8,
1481
- balance.value.privileges.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9, [
1482
- _hoisted_10,
1483
- createElementVNode("div", _hoisted_11, [
1484
- (openBlock(true), createElementBlock(
1485
- Fragment,
1486
- null,
1487
- renderList(balance.value.privileges, (item) => {
1488
- return openBlock(), createElementBlock("div", {
1489
- key: item,
1490
- class: "bean-list-item"
1491
- }, [
1492
- createElementVNode(
1493
- "div",
1494
- _hoisted_12,
1495
- toDisplayString(item.amount),
1496
- 1
1497
- /* TEXT */
1498
- ),
1499
- createElementVNode(
1500
- "div",
1501
- _hoisted_13,
1502
- toDisplayString(item.title),
1503
- 1
1504
- /* TEXT */
1505
- )
1506
- ]);
1507
- }),
1508
- 128
1509
- /* KEYED_FRAGMENT */
1510
- ))
1511
- ])
1512
- ])) : createCommentVNode("v-if", true)
1513
- ])
1682
+ createVNode(unref(script$b), {
1683
+ "color-mode": "dark",
1684
+ title: "\u6211\u7684\u8D26\u6237",
1685
+ class: normalizeClass({ "with-background": scrollY.value > 0 })
1686
+ }, null, 8, ["class"]),
1687
+ createElementVNode("div", { class: "row jusify-right" }, [
1688
+ createElementVNode("div", {
1689
+ class: "small-bean-button",
1690
+ onClick: onSecondBalanceButtonClick
1691
+ }, [..._hoisted_2$1])
1514
1692
  ]),
1515
- createElementVNode("div", _hoisted_14, [
1516
- createElementVNode("div", _hoisted_15, [
1517
- _hoisted_16,
1518
- withDirectives(createElementVNode(
1519
- "div",
1520
- {
1521
- class: "time",
1522
- onClick: openDateFilter
1523
- },
1524
- [
1525
- createElementVNode(
1526
- "div",
1527
- _hoisted_17,
1528
- toDisplayString(dataRangeDisplay.value),
1529
- 1
1530
- /* TEXT */
1531
- ),
1532
- _hoisted_18
1533
- ],
1534
- 512
1535
- /* NEED_PATCH */
1536
- ), [
1537
- [vShow, filtering.dateFrom]
1538
- ])
1693
+ createElementVNode("div", _hoisted_3$1, [
1694
+ createElementVNode("div", _hoisted_4$1, [
1695
+ _hoisted_5$1,
1696
+ createElementVNode("div", {
1697
+ class: "rule",
1698
+ onClick: _cache[0] || (_cache[0] = ($event) => rulesPopupOpen.value = true)
1699
+ }, "\u89C4\u5219\u8BF4\u660E")
1539
1700
  ]),
1540
- createElementVNode("div", {
1541
- class: "search",
1542
- onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1543
- }, [..._hoisted_21])
1701
+ createElementVNode("div", _hoisted_6, [
1702
+ createElementVNode(
1703
+ "div",
1704
+ _hoisted_7,
1705
+ toDisplayString(balance.value.total || 0),
1706
+ 1
1707
+ /* TEXT */
1708
+ ),
1709
+ createElementVNode("div", {
1710
+ class: "pay",
1711
+ onClick: gotoRecharge
1712
+ }, "\u4E91\u8C46\u5145\u503C")
1713
+ ])
1544
1714
  ]),
1545
- createElementVNode("div", _hoisted_22, [
1546
- consumptionGroups.value.list.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_23, [
1715
+ createElementVNode(
1716
+ "div",
1717
+ {
1718
+ class: normalizeClass(["operation-title spa-between", { "with-shadow": scrollY.value > 0 }]),
1719
+ style: normalizeStyle({ top: `${unref(safeArea).status + unref(safeArea).nav}px` })
1720
+ },
1721
+ [
1722
+ createElementVNode("div", _hoisted_8, [
1723
+ _hoisted_9,
1724
+ withDirectives(createElementVNode(
1725
+ "div",
1726
+ {
1727
+ class: "time",
1728
+ onClick: openDateFilter
1729
+ },
1730
+ [
1731
+ createElementVNode(
1732
+ "div",
1733
+ _hoisted_10,
1734
+ toDisplayString(dateRangeDisplay.value),
1735
+ 1
1736
+ /* TEXT */
1737
+ ),
1738
+ _hoisted_11
1739
+ ],
1740
+ 512
1741
+ /* NEED_PATCH */
1742
+ ), [
1743
+ [vShow, filtering.dateFrom]
1744
+ ])
1745
+ ]),
1746
+ createElementVNode("div", {
1747
+ class: "search",
1748
+ onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1749
+ }, [..._hoisted_14])
1750
+ ],
1751
+ 6
1752
+ /* CLASS, STYLE */
1753
+ ),
1754
+ createElementVNode("div", _hoisted_15, [
1755
+ consumptionGroups.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_16, [
1547
1756
  (openBlock(true), createElementBlock(
1548
1757
  Fragment,
1549
1758
  null,
1550
- renderList(consumptionGroups.value.list, (item, index) => {
1759
+ renderList(consumptionGroups.value, (item, index) => {
1551
1760
  return openBlock(), createElementBlock("div", {
1552
1761
  class: "box-detail",
1553
1762
  key: index
1554
1763
  }, [
1555
1764
  createElementVNode(
1556
1765
  "div",
1557
- _hoisted_24,
1766
+ _hoisted_17,
1558
1767
  toDisplayString(item.date),
1559
1768
  1
1560
1769
  /* TEXT */
@@ -1569,24 +1778,24 @@ var script$1 = /* @__PURE__ */ defineComponent({
1569
1778
  }, [
1570
1779
  createElementVNode(
1571
1780
  "div",
1572
- _hoisted_25,
1573
- toDisplayString(it.type),
1781
+ _hoisted_18,
1782
+ toDisplayString(it.\u4EA4\u6613\u7C7B\u578B),
1574
1783
  1
1575
1784
  /* TEXT */
1576
1785
  ),
1577
- createElementVNode("div", _hoisted_26, [
1578
- createElementVNode("div", _hoisted_27, [
1786
+ createElementVNode("div", _hoisted_19, [
1787
+ createElementVNode("div", _hoisted_20, [
1579
1788
  createElementVNode("div", null, [
1580
1789
  createElementVNode(
1581
1790
  "div",
1582
- _hoisted_28,
1583
- toDisplayString(it.position),
1791
+ _hoisted_21,
1792
+ toDisplayString(it.\u8D26\u6237\u7C7B\u578B),
1584
1793
  1
1585
1794
  /* TEXT */
1586
1795
  ),
1587
1796
  createElementVNode(
1588
1797
  "div",
1589
- _hoisted_29,
1798
+ _hoisted_22,
1590
1799
  toDisplayString(it.title),
1591
1800
  1
1592
1801
  /* TEXT */
@@ -1594,15 +1803,15 @@ var script$1 = /* @__PURE__ */ defineComponent({
1594
1803
  ]),
1595
1804
  createElementVNode(
1596
1805
  "div",
1597
- _hoisted_30,
1598
- toDisplayString(it.direction == "\u652F\u51FA" ? "-" : "+") + toDisplayString(it.amount),
1806
+ _hoisted_23,
1807
+ toDisplayString(it.\u6536\u5165\u8FD8\u662F\u652F\u51FA == "\u652F\u51FA" ? "-" : "+") + toDisplayString(it.amount),
1599
1808
  1
1600
1809
  /* TEXT */
1601
1810
  )
1602
1811
  ]),
1603
1812
  createElementVNode(
1604
1813
  "div",
1605
- _hoisted_31,
1814
+ _hoisted_24,
1606
1815
  toDisplayString(it.description),
1607
1816
  1
1608
1817
  /* TEXT */
@@ -1618,8 +1827,8 @@ var script$1 = /* @__PURE__ */ defineComponent({
1618
1827
  128
1619
1828
  /* KEYED_FRAGMENT */
1620
1829
  )),
1621
- _hoisted_32
1622
- ])) : (openBlock(), createElementBlock("div", _hoisted_33, [..._hoisted_36]))
1830
+ reachedLastPage.value ? (openBlock(), createElementBlock("div", _hoisted_25, "\u6CA1\u6709\u66F4\u591A\u4E86")) : createCommentVNode("v-if", true)
1831
+ ])) : (openBlock(), createBlock(script$3, { key: 1 }))
1623
1832
  ])
1624
1833
  ],
1625
1834
  2
@@ -1632,7 +1841,7 @@ var script$1 = /* @__PURE__ */ defineComponent({
1632
1841
  "close-on-click-overlay": false
1633
1842
  }, {
1634
1843
  default: withCtx(() => [
1635
- createVNode(script$2, {
1844
+ createVNode(script$4, {
1636
1845
  onComplete: _cache[2] || (_cache[2] = ($event) => rulesPopupOpen.value = false)
1637
1846
  })
1638
1847
  ]),
@@ -1648,10 +1857,11 @@ var script$1 = /* @__PURE__ */ defineComponent({
1648
1857
  "onUpdate:visible": _cache[4] || (_cache[4] = ($event) => datePickerOpen.value = $event)
1649
1858
  }, {
1650
1859
  default: withCtx(() => [
1651
- datePickerOpen.value ? (openBlock(), createBlock(script$3, {
1860
+ datePickerOpen.value ? (openBlock(), createBlock(script$5, {
1652
1861
  key: 0,
1653
1862
  from: filtering.dateFrom,
1654
1863
  to: filtering.dateTo,
1864
+ onReset: onDateReset,
1655
1865
  onComplete: onDateFilterComplete
1656
1866
  }, null, 8, ["from", "to"])) : createCommentVNode("v-if", true)
1657
1867
  ]),
@@ -1660,25 +1870,39 @@ var script$1 = /* @__PURE__ */ defineComponent({
1660
1870
  }, 8, ["visible"]),
1661
1871
  createVNode(_component_nut_popup, {
1662
1872
  position: "bottom",
1663
- style: { height: "70%" },
1873
+ style: { height: "75%" },
1664
1874
  round: "",
1665
1875
  "close-on-click-overlay": true,
1666
1876
  visible: filterOpen.value,
1667
1877
  "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => filterOpen.value = $event)
1668
1878
  }, {
1669
1879
  default: withCtx(() => [
1670
- createVNode(script$4, {
1880
+ createVNode(script$6, {
1671
1881
  modelValue: [
1672
- filtering.position,
1673
- filtering.direction,
1674
- filtering.type
1882
+ filtering.\u8D26\u6237\u7C7B\u578B,
1883
+ filtering.\u6536\u5165\u8FD8\u662F\u652F\u51FA,
1884
+ filtering.\u4EA4\u6613\u7C7B\u578B,
1885
+ filtering.\u6743\u76CA\u7C7B\u76EE
1675
1886
  ],
1676
1887
  onComplete: onFilterComplete
1677
1888
  }, null, 8, ["modelValue"])
1678
1889
  ]),
1679
1890
  _: 1
1680
1891
  /* STABLE */
1681
- }, 8, ["visible"])
1892
+ }, 8, ["visible"]),
1893
+ createVNode(unref(script$a), {
1894
+ modelValue: secondBalanceOpen.value,
1895
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => secondBalanceOpen.value = $event),
1896
+ title: "\u5C0F\u4E91\u8C46\u4F59\u989D"
1897
+ }, {
1898
+ default: withCtx(() => [
1899
+ createVNode(script$2, {
1900
+ data: balance.value.privileges
1901
+ }, null, 8, ["data"])
1902
+ ]),
1903
+ _: 1
1904
+ /* STABLE */
1905
+ }, 8, ["modelValue"])
1682
1906
  ],
1683
1907
  64
1684
1908
  /* STABLE_FRAGMENT */
@@ -1770,9 +1994,7 @@ const nutComponents = [
1770
1994
  Checkbox,
1771
1995
  Popup,
1772
1996
  OverLay,
1773
- Icon,
1774
- DatePicker,
1775
- Picker
1997
+ DatePicker
1776
1998
  ];
1777
1999
  const appComponents = {
1778
2000
  ...components
@@ -1817,4 +2039,4 @@ const AppKit = {
1817
2039
  }
1818
2040
  };
1819
2041
 
1820
- export { script$1 as AccountView, script$b as AmountPicker, script$8 as AppDrawer, script$5 as BalanceCard, script as BalanceReminder, script$9 as PageHeader, script$6 as RechargeResult, script$7 as RechargeView, script$a as UserAgreement, components, AppKit as default, requestPayment$2 as requestPayment, services$1 as services, useAppKit, useHttp };
2042
+ export { script$1 as AccountView, script$d as AmountPicker, script$a as AppDrawer, script$7 as BalanceCard, script as BalanceReminder, script$b as PageHeader, script$8 as RechargeResult, script$9 as RechargeView, script$c as UserAgreement, components, createHttp, AppKit as default, requestPayment$2 as requestPayment, services$1 as services, useAppKit, useSafeArea };