@uxda/appkit 1.0.66 → 1.0.70

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 ---");
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;
244
243
  }
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({});
254
- }
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,56 @@ 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) => ({}),
667
700
  transform(result) {
668
701
  return {
669
702
  total: result.commonAccount,
670
703
  privileges: result.rightsAccountBalList.map((r) => ({
671
704
  title: r.rightsName,
672
- amount: r.rightsAccount
705
+ count: r.rightsAccount
673
706
  }))
674
707
  };
675
708
  }
676
709
  },
677
- /**
678
- * 账户流水明细
679
- */
680
- getOperations: {
710
+ \u83B7\u53D6\u8D26\u6237\u6D41\u6C34: {
681
711
  path: "/ac-app/account/record/detail/mobile",
682
712
  translate: (data) => {
683
713
  return {
684
- accountType: positionMappingsReversed[data.position] || "",
685
- inOrOut: directionMappingsReversed[data.direction] || "",
686
- changeType: typeMappingsReversed[data.type] || "",
714
+ accountType: positionMappingsReversed[data.\u8D26\u6237\u7C7B\u578B] || "",
715
+ inOrOut: directionMappingsReversed[data.\u6536\u5165\u8FD8\u662F\u652F\u51FA] || "",
716
+ changeType: typeMappingsReversed[data.\u4EA4\u6613\u7C7B\u578B] || "",
687
717
  operateTimeStart: data.dateFrom || "",
688
- operateTimeEnd: data.dateTo || ""
718
+ operateTimeEnd: data.dateTo || "",
719
+ rightsCode: data.\u6743\u76CA\u7C7B\u76EE,
720
+ pageNum: data.page,
721
+ pageSize: 10
689
722
  };
690
723
  },
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
- };
724
+ transform(response) {
725
+ const data = response.list.map((d) => ({
726
+ \u8D26\u6237\u7C7B\u578B: positionMappings[d.accountType],
727
+ \u4EA4\u6613\u7C7B\u578B: typeMappings[d.changeType],
728
+ \u6536\u5165\u8FD8\u662F\u652F\u51FA: directionMappings[d.inOrOut],
729
+ amount: d.changeValue,
730
+ title: d.rightsName,
731
+ time: Date.parse(d.operateTime),
732
+ // 后台返回的是日期字符串,这里格式化成 timestamp
733
+ description: d.remark
734
+ }));
709
735
  return data;
710
736
  }
737
+ },
738
+ \u83B7\u53D6\u6743\u76CA\u7C7B\u76EE: {
739
+ path: "/ac-app/rights/item/list",
740
+ // translate (data: ConsumptionFiltering) {
741
+ // // return { appCode: data.appCode }
742
+ // },
743
+ transform: (data) => data.map((d) => ({
744
+ name: d.rightsName,
745
+ code: d.rightsCode
746
+ }))
711
747
  }
712
748
  };
713
749
  const endpoints = Object.fromEntries(
@@ -720,30 +756,74 @@ const transforms = Object.fromEntries(
720
756
  Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
721
757
  );
722
758
 
723
- const makeHttp = () => {
759
+ const vendor = {
760
+ async request(config) {
761
+ return new Promise((resolve, reject) => {
762
+ Taro.request({
763
+ url: config.url,
764
+ method: config.method,
765
+ header: config.headers,
766
+ data: config.data
767
+ }).then(({ data }) => {
768
+ resolve({
769
+ status: +data.code,
770
+ message: data.msg,
771
+ data: data.result
772
+ });
773
+ }).catch((e) => {
774
+ reject(e);
775
+ });
776
+ });
777
+ }
778
+ };
779
+ function useHttp() {
724
780
  const appkitOptions = useAppKitOptions();
725
- const header = {
781
+ const headers = {
726
782
  Token: appkitOptions.token(),
727
783
  Appcode: appkitOptions.app(),
728
784
  cookie: `tid=${appkitOptions.tenant()}`
729
785
  };
730
- const $http = useHttp({
786
+ const $http = createHttp({
787
+ vendor,
731
788
  baseUrl: appkitOptions.baseUrl(),
732
- header,
733
- onAuthError() {
734
- appkitOptions[401]();
789
+ headers,
790
+ interceptors: [
791
+ (raw) => {
792
+ if (raw.status == 401) {
793
+ appkitOptions[401]();
794
+ return true;
795
+ }
796
+ return false;
797
+ },
798
+ (raw) => {
799
+ if (raw.status > 500) {
800
+ return true;
801
+ }
802
+ return false;
803
+ }
804
+ ],
805
+ paging: {
806
+ translate: (params) => ({
807
+ pageNum: params.page,
808
+ pageSize: params.pageSize
809
+ }),
810
+ transform(data) {
811
+ return {
812
+ totalPages: data.pages
813
+ };
814
+ }
735
815
  },
736
816
  translates,
737
817
  transforms
738
818
  });
739
819
  return $http;
740
- };
820
+ }
741
821
 
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(
822
+ const _hoisted_1$7 = { class: "account-card" };
823
+ const _hoisted_2$7 = { class: "card" };
824
+ const _hoisted_3$7 = { class: "card-row" };
825
+ const _hoisted_4$6 = { class: "card-row-left" };
826
+ const _hoisted_5$5 = /* @__PURE__ */ createElementVNode(
747
827
  "div",
748
828
  { class: "bean-box" },
749
829
  [
@@ -817,7 +897,7 @@ const _hoisted_14$1 = [
817
897
  _hoisted_12$1,
818
898
  _hoisted_13$1
819
899
  ];
820
- var script$5 = /* @__PURE__ */ defineComponent({
900
+ var script$7 = /* @__PURE__ */ defineComponent({
821
901
  __name: "BalanceCard",
822
902
  emits: [
823
903
  /**
@@ -838,8 +918,8 @@ var script$5 = /* @__PURE__ */ defineComponent({
838
918
  emit("recharge");
839
919
  };
840
920
  async function loadBalance() {
841
- const $http = makeHttp();
842
- $http.get(endpoints.getBalance, {}).then((data) => {
921
+ const $http = useHttp();
922
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {}).then((data) => {
843
923
  balance.value = data;
844
924
  });
845
925
  }
@@ -851,11 +931,11 @@ var script$5 = /* @__PURE__ */ defineComponent({
851
931
  loadBalance();
852
932
  });
853
933
  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,
934
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
935
+ createElementVNode("div", _hoisted_2$7, [
936
+ createElementVNode("div", _hoisted_3$7, [
937
+ createElementVNode("div", _hoisted_4$6, [
938
+ _hoisted_5$5,
859
939
  createElementVNode(
860
940
  "div",
861
941
  _hoisted_6$3,
@@ -887,7 +967,7 @@ var script$5 = /* @__PURE__ */ defineComponent({
887
967
  }
888
968
  });
889
969
 
890
- script$5.__file = "src/balance/components/BalanceCard.vue";
970
+ script$7.__file = "src/balance/components/BalanceCard.vue";
891
971
 
892
972
  const consumptionTypes = [
893
973
  "\u5168\u90E8",
@@ -910,8 +990,8 @@ const consumptionDirections = [
910
990
  "\u652F\u51FA"
911
991
  ];
912
992
 
913
- const _hoisted_1$4 = { class: "consumption-filter" };
914
- const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
993
+ const _hoisted_1$6 = { class: "consumption-filter" };
994
+ const _hoisted_2$6 = /* @__PURE__ */ createElementVNode(
915
995
  "div",
916
996
  { class: "consumption-filter-title" },
917
997
  [
@@ -920,9 +1000,9 @@ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
920
1000
  -1
921
1001
  /* HOISTED */
922
1002
  );
923
- const _hoisted_3$4 = { class: "consumption-filter-content" };
924
- const _hoisted_4$3 = { class: "title" };
925
- const _hoisted_5$3 = { class: "info" };
1003
+ const _hoisted_3$6 = { class: "consumption-filter-content" };
1004
+ const _hoisted_4$5 = { class: "title" };
1005
+ const _hoisted_5$4 = { class: "info" };
926
1006
  const _hoisted_6$2 = ["onClick"];
927
1007
  const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
928
1008
  "div",
@@ -931,30 +1011,35 @@ const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
931
1011
  -1
932
1012
  /* HOISTED */
933
1013
  );
934
- var script$4 = /* @__PURE__ */ defineComponent({
1014
+ var script$6 = /* @__PURE__ */ defineComponent({
935
1015
  __name: "ConsumptionFilter",
936
1016
  props: {
937
- modelValue: { type: Array, required: true, default: () => ["\u5168\u90E8", "\u5168\u90E8", "\u5168\u90E8"] }
1017
+ modelValue: { type: Array, required: true, default: () => ["\u5168\u90E8", "\u5168\u90E8", "\u5168\u90E8", ""] }
938
1018
  },
939
1019
  emits: ["complete"],
940
1020
  setup(__props, { emit: __emit }) {
1021
+ const $http = useHttp();
941
1022
  const props = __props;
942
1023
  const emit = __emit;
943
1024
  const result = reactive(props.modelValue);
944
- const filterSections = [
1025
+ const filterSections = ref([
945
1026
  {
946
1027
  title: "\u7C7B\u578B",
947
- data: consumptionPositions
1028
+ data: consumptionPositions.map((s) => ({ code: s, name: s }))
948
1029
  },
949
1030
  {
950
1031
  title: "\u6536\u5165/\u652F\u51FA",
951
- data: consumptionDirections
1032
+ data: consumptionDirections.map((s) => ({ code: s, name: s }))
952
1033
  },
953
1034
  {
954
1035
  title: "\u660E\u7EC6\u7C7B\u578B",
955
- data: consumptionTypes
1036
+ data: consumptionTypes.map((s) => ({ code: s, name: s }))
1037
+ },
1038
+ {
1039
+ title: "\u6743\u76CA\u7C7B\u76EE",
1040
+ data: []
956
1041
  }
957
- ];
1042
+ ]);
958
1043
  const getItemClass = (index, value) => result[index] === value ? ["current"] : [""];
959
1044
  const onFilterSectionClick = (index, value) => {
960
1045
  result[index] = value;
@@ -963,39 +1048,49 @@ var script$4 = /* @__PURE__ */ defineComponent({
963
1048
  result[0] = "\u5168\u90E8";
964
1049
  result[1] = "\u5168\u90E8";
965
1050
  result[2] = "\u5168\u90E8";
1051
+ result[3] = "";
1052
+ };
1053
+ const \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE = () => {
1054
+ $http.get(endpoints.\u83B7\u53D6\u6743\u76CA\u7C7B\u76EE).then((data) => {
1055
+ filterSections.value[3].data = [
1056
+ { code: "", name: "\u5168\u90E8" },
1057
+ ...data
1058
+ ];
1059
+ });
966
1060
  };
1061
+ \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE();
967
1062
  const onOkClick = () => {
968
1063
  emit("complete", result);
969
1064
  };
970
1065
  return (_ctx, _cache) => {
971
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
972
- _hoisted_2$4,
973
- createElementVNode("div", _hoisted_3$4, [
974
- (openBlock(), createElementBlock(
1066
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1067
+ _hoisted_2$6,
1068
+ createElementVNode("div", _hoisted_3$6, [
1069
+ (openBlock(true), createElementBlock(
975
1070
  Fragment,
976
1071
  null,
977
- renderList(filterSections, (item, index) => {
1072
+ renderList(filterSections.value, (item, index) => {
978
1073
  return openBlock(), createElementBlock(
979
1074
  Fragment,
980
1075
  { key: index },
981
1076
  [
982
1077
  createElementVNode(
983
1078
  "div",
984
- _hoisted_4$3,
1079
+ _hoisted_4$5,
985
1080
  toDisplayString(item.title),
986
1081
  1
987
1082
  /* TEXT */
988
1083
  ),
989
- createElementVNode("div", _hoisted_5$3, [
1084
+ createElementVNode("div", _hoisted_5$4, [
990
1085
  (openBlock(true), createElementBlock(
991
1086
  Fragment,
992
1087
  null,
993
1088
  renderList(item.data, (it, i) => {
994
1089
  return openBlock(), createElementBlock("div", {
995
- onClick: () => onFilterSectionClick(index, it),
996
- class: normalizeClass([getItemClass(index, it), "info-item"]),
1090
+ onClick: () => onFilterSectionClick(index, it.code),
1091
+ class: normalizeClass([getItemClass(index, it.code), "info-item"]),
997
1092
  key: i
998
- }, toDisplayString(it), 11, _hoisted_6$2);
1093
+ }, toDisplayString(typeof it === "string" ? it : it.name), 11, _hoisted_6$2);
999
1094
  }),
1000
1095
  128
1001
1096
  /* KEYED_FRAGMENT */
@@ -1006,8 +1101,8 @@ var script$4 = /* @__PURE__ */ defineComponent({
1006
1101
  /* STABLE_FRAGMENT */
1007
1102
  );
1008
1103
  }),
1009
- 64
1010
- /* STABLE_FRAGMENT */
1104
+ 128
1105
+ /* KEYED_FRAGMENT */
1011
1106
  ))
1012
1107
  ]),
1013
1108
  createElementVNode("div", { class: "consumption-filter-btn spa-between" }, [
@@ -1026,25 +1121,25 @@ var script$4 = /* @__PURE__ */ defineComponent({
1026
1121
  }
1027
1122
  });
1028
1123
 
1029
- script$4.__file = "src/balance/components/ConsumptionFilter.vue";
1124
+ script$6.__file = "src/balance/components/ConsumptionFilter.vue";
1030
1125
 
1031
- const _hoisted_1$3 = { class: "consumption-date-filter" };
1032
- const _hoisted_2$3 = /* @__PURE__ */ createElementVNode(
1126
+ const _hoisted_1$5 = { class: "consumption-date-filter" };
1127
+ const _hoisted_2$5 = /* @__PURE__ */ createElementVNode(
1033
1128
  "div",
1034
1129
  { class: "date-filter-header" },
1035
1130
  "\u65E5\u671F\u9009\u62E9",
1036
1131
  -1
1037
1132
  /* HOISTED */
1038
1133
  );
1039
- const _hoisted_3$3 = { class: "content" };
1040
- const _hoisted_4$2 = /* @__PURE__ */ createElementVNode(
1134
+ const _hoisted_3$5 = { class: "content" };
1135
+ const _hoisted_4$4 = /* @__PURE__ */ createElementVNode(
1041
1136
  "div",
1042
1137
  { class: "title" },
1043
1138
  "\u81EA\u5B9A\u4E49",
1044
1139
  -1
1045
1140
  /* HOISTED */
1046
1141
  );
1047
- const _hoisted_5$2 = { class: "time" };
1142
+ const _hoisted_5$3 = { class: "time" };
1048
1143
  const _hoisted_6$1 = /* @__PURE__ */ createElementVNode(
1049
1144
  "div",
1050
1145
  { class: "line" },
@@ -1059,16 +1154,23 @@ const _hoisted_7$1 = /* @__PURE__ */ createElementVNode(
1059
1154
  -1
1060
1155
  /* HOISTED */
1061
1156
  );
1062
- var script$3 = /* @__PURE__ */ defineComponent({
1157
+ var script$5 = /* @__PURE__ */ defineComponent({
1063
1158
  __name: "DateFilter",
1064
1159
  props: {
1065
1160
  from: { type: String, required: true },
1066
1161
  to: { type: String, required: true }
1067
1162
  },
1068
- emits: ["complete"],
1163
+ emits: ["complete", "reset"],
1069
1164
  setup(__props, { emit: __emit }) {
1070
1165
  const props = __props;
1071
1166
  const emit = __emit;
1167
+ watch(
1168
+ () => `${props.from}${props.to}`,
1169
+ () => {
1170
+ result.from = props.from;
1171
+ result.to = props.to;
1172
+ }
1173
+ );
1072
1174
  const result = reactive({ ...props });
1073
1175
  const focused = ref("from");
1074
1176
  const focusedDate = ref(props.from);
@@ -1076,8 +1178,7 @@ var script$3 = /* @__PURE__ */ defineComponent({
1076
1178
  const maxDate = ref(/* @__PURE__ */ new Date());
1077
1179
  const datePickerOpen = ref(false);
1078
1180
  function reset() {
1079
- result.from = props.from;
1080
- result.to = props.to;
1181
+ emit("reset");
1081
1182
  }
1082
1183
  function onOkClick() {
1083
1184
  emit("complete", result);
@@ -1112,11 +1213,11 @@ var script$3 = /* @__PURE__ */ defineComponent({
1112
1213
  Fragment,
1113
1214
  null,
1114
1215
  [
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, [
1216
+ createElementVNode("div", _hoisted_1$5, [
1217
+ _hoisted_2$5,
1218
+ createElementVNode("div", _hoisted_3$5, [
1219
+ _hoisted_4$4,
1220
+ createElementVNode("div", _hoisted_5$3, [
1120
1221
  createElementVNode(
1121
1222
  "div",
1122
1223
  {
@@ -1171,17 +1272,17 @@ var script$3 = /* @__PURE__ */ defineComponent({
1171
1272
  }
1172
1273
  });
1173
1274
 
1174
- script$3.__file = "src/balance/components/DateFilter.vue";
1275
+ script$5.__file = "src/balance/components/DateFilter.vue";
1175
1276
 
1176
- const _hoisted_1$2 = { class: "consumption-rules" };
1177
- const _hoisted_2$2 = /* @__PURE__ */ createElementVNode(
1277
+ const _hoisted_1$4 = { class: "consumption-rules" };
1278
+ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
1178
1279
  "div",
1179
1280
  { class: "title" },
1180
1281
  "\u89C4\u5219\u8BF4\u660E",
1181
1282
  -1
1182
1283
  /* HOISTED */
1183
1284
  );
1184
- const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1285
+ const _hoisted_3$4 = /* @__PURE__ */ createElementVNode(
1185
1286
  "div",
1186
1287
  { class: "desc" },
1187
1288
  [
@@ -1196,15 +1297,15 @@ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1196
1297
  -1
1197
1298
  /* HOISTED */
1198
1299
  );
1199
- var script$2 = /* @__PURE__ */ defineComponent({
1300
+ var script$4 = /* @__PURE__ */ defineComponent({
1200
1301
  __name: "ConsumptionRules",
1201
1302
  emits: ["complete"],
1202
1303
  setup(__props, { emit: __emit }) {
1203
1304
  const emit = __emit;
1204
1305
  return (_ctx, _cache) => {
1205
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
1206
- _hoisted_2$2,
1207
- _hoisted_3$2,
1306
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
1307
+ _hoisted_2$4,
1308
+ _hoisted_3$4,
1208
1309
  createElementVNode("div", {
1209
1310
  class: "know",
1210
1311
  onClick: _cache[0] || (_cache[0] = ($event) => emit("complete"))
@@ -1214,11 +1315,108 @@ var script$2 = /* @__PURE__ */ defineComponent({
1214
1315
  }
1215
1316
  });
1216
1317
 
1217
- script$2.__file = "src/balance/components/ConsumptionRules.vue";
1318
+ script$4.__file = "src/balance/components/ConsumptionRules.vue";
1218
1319
 
1219
- const _hoisted_1$1 = { class: "header" };
1220
- const _hoisted_2$1 = { class: "header_card" };
1221
- const _hoisted_3$1 = { class: "clound-bean" };
1320
+ const _hoisted_1$3 = { class: "second-balance" };
1321
+ const _hoisted_2$3 = { class: "positions" };
1322
+ const _hoisted_3$3 = /* @__PURE__ */ createElementVNode(
1323
+ "div",
1324
+ { class: "icon" },
1325
+ null,
1326
+ -1
1327
+ /* HOISTED */
1328
+ );
1329
+ const _hoisted_4$3 = { class: "title" };
1330
+ const _hoisted_5$2 = { class: "number amount" };
1331
+ var script$3 = /* @__PURE__ */ defineComponent({
1332
+ __name: "SecondBalance",
1333
+ props: {
1334
+ data: { type: Array, required: true, default: () => [] }
1335
+ },
1336
+ setup(__props) {
1337
+ return (_ctx, _cache) => {
1338
+ const _component_page_header = resolveComponent("page-header");
1339
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [
1340
+ createVNode(_component_page_header, { title: "\u5C0F\u4E91\u8C46\u4F59\u989D" }),
1341
+ createElementVNode("div", _hoisted_2$3, [
1342
+ (openBlock(true), createElementBlock(
1343
+ Fragment,
1344
+ null,
1345
+ renderList(_ctx.data, (item, index) => {
1346
+ return openBlock(), createElementBlock("div", {
1347
+ class: "position",
1348
+ key: index
1349
+ }, [
1350
+ _hoisted_3$3,
1351
+ createElementVNode(
1352
+ "label",
1353
+ _hoisted_4$3,
1354
+ toDisplayString(item.title),
1355
+ 1
1356
+ /* TEXT */
1357
+ ),
1358
+ createElementVNode(
1359
+ "label",
1360
+ _hoisted_5$2,
1361
+ toDisplayString(item.count),
1362
+ 1
1363
+ /* TEXT */
1364
+ )
1365
+ ]);
1366
+ }),
1367
+ 128
1368
+ /* KEYED_FRAGMENT */
1369
+ ))
1370
+ ])
1371
+ ]);
1372
+ };
1373
+ }
1374
+ });
1375
+
1376
+ script$3.__file = "src/balance/components/SecondBalance.vue";
1377
+
1378
+ const _hoisted_1$2 = { class: "empty-view" };
1379
+ const _hoisted_2$2 = /* @__PURE__ */ createElementVNode(
1380
+ "img",
1381
+ {
1382
+ class: "empty-view-image",
1383
+ src: "https://cdn.ddjf.com/static/images/nutshell/empty-data.png"
1384
+ },
1385
+ null,
1386
+ -1
1387
+ /* HOISTED */
1388
+ );
1389
+ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1390
+ "div",
1391
+ { class: "empty-view-text" },
1392
+ "\u6682\u65E0\u6570\u636E",
1393
+ -1
1394
+ /* HOISTED */
1395
+ );
1396
+ const _hoisted_4$2 = [
1397
+ _hoisted_2$2,
1398
+ _hoisted_3$2
1399
+ ];
1400
+ function render(_ctx, _cache) {
1401
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [..._hoisted_4$2]);
1402
+ }
1403
+
1404
+ const script$2 = {};
1405
+
1406
+ script$2.render = render;
1407
+ script$2.__file = "src/shared/components/EmptyView.vue";
1408
+
1409
+ const _hoisted_1$1 = /* @__PURE__ */ createElementVNode(
1410
+ "label",
1411
+ null,
1412
+ "\u5C0F\u4E91\u8C46\u4F59\u989D",
1413
+ -1
1414
+ /* HOISTED */
1415
+ );
1416
+ const _hoisted_2$1 = [
1417
+ _hoisted_1$1
1418
+ ];
1419
+ const _hoisted_3$1 = { class: "balance" };
1222
1420
  const _hoisted_4$1 = { class: "bean-box spa-between" };
1223
1421
  const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1224
1422
  "div",
@@ -1235,42 +1433,16 @@ const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1235
1433
  );
1236
1434
  const _hoisted_6 = { class: "bean-counts spa-between" };
1237
1435
  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(
1436
+ const _hoisted_8 = { class: "search-time" };
1437
+ const _hoisted_9 = /* @__PURE__ */ createElementVNode(
1266
1438
  "div",
1267
1439
  { class: "title" },
1268
1440
  "\u6536\u652F\u660E\u7EC6",
1269
1441
  -1
1270
1442
  /* HOISTED */
1271
1443
  );
1272
- const _hoisted_17 = { class: "text" };
1273
- const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1444
+ const _hoisted_10 = { class: "text number" };
1445
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode(
1274
1446
  "img",
1275
1447
  {
1276
1448
  style: { "margin-top": "-2px" },
@@ -1281,14 +1453,14 @@ const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1281
1453
  -1
1282
1454
  /* HOISTED */
1283
1455
  );
1284
- const _hoisted_19 = /* @__PURE__ */ createElementVNode(
1456
+ const _hoisted_12 = /* @__PURE__ */ createElementVNode(
1285
1457
  "span",
1286
1458
  { class: "text" },
1287
1459
  "\u7B5B\u9009",
1288
1460
  -1
1289
1461
  /* HOISTED */
1290
1462
  );
1291
- const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1463
+ const _hoisted_13 = /* @__PURE__ */ createElementVNode(
1292
1464
  "img",
1293
1465
  {
1294
1466
  class: "time-icon",
@@ -1298,83 +1470,61 @@ const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1298
1470
  -1
1299
1471
  /* HOISTED */
1300
1472
  );
1301
- const _hoisted_21 = [
1302
- _hoisted_19,
1303
- _hoisted_20
1473
+ const _hoisted_14 = [
1474
+ _hoisted_12,
1475
+ _hoisted_13
1304
1476
  ];
1305
- const _hoisted_22 = { class: "operation-list" };
1306
- const _hoisted_23 = {
1477
+ const _hoisted_15 = { class: "operation-list" };
1478
+ const _hoisted_16 = {
1307
1479
  key: 0,
1308
1480
  class: "box"
1309
1481
  };
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"
1482
+ const _hoisted_17 = { class: "title number" };
1483
+ const _hoisted_18 = { class: "item-type" };
1484
+ const _hoisted_19 = { class: "item-detail" };
1485
+ const _hoisted_20 = { class: "item-info spa-between" };
1486
+ const _hoisted_21 = { class: "item-info-type" };
1487
+ const _hoisted_22 = { class: "item-info-title" };
1488
+ const _hoisted_23 = { class: "item-info-amount number" };
1489
+ const _hoisted_24 = { class: "item-detail-remark" };
1490
+ const _hoisted_25 = {
1491
+ key: 0,
1492
+ class: "box-not-text"
1328
1493
  };
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
1494
  var script$1 = /* @__PURE__ */ defineComponent({
1351
1495
  __name: "AccountView",
1352
1496
  emits: ["recharge"],
1353
1497
  setup(__props, { emit: __emit }) {
1498
+ const safeArea = useSafeArea();
1354
1499
  const emit = __emit;
1355
1500
  const filterOpen = ref(false);
1356
1501
  const rulesPopupOpen = ref(false);
1357
1502
  const filtering = reactive({
1358
- position: "\u5168\u90E8",
1359
- direction: "\u5168\u90E8",
1360
- type: "\u5168\u90E8",
1503
+ \u8D26\u6237\u7C7B\u578B: "\u5168\u90E8",
1504
+ \u6536\u5165\u8FD8\u662F\u652F\u51FA: "\u5168\u90E8",
1505
+ \u4EA4\u6613\u7C7B\u578B: "\u5168\u90E8",
1506
+ \u6743\u76CA\u7C7B\u76EE: "",
1361
1507
  dateFrom: "",
1362
- dateTo: ""
1508
+ dateTo: "",
1509
+ page: 1,
1510
+ pageSize: 20
1363
1511
  });
1512
+ const reachedLastPage = ref(false);
1513
+ function restartSearch() {
1514
+ filtering.page = 1;
1515
+ consumptionGroups.value = [];
1516
+ loadConsumptions();
1517
+ }
1364
1518
  const datePickerOpen = ref(false);
1365
1519
  function openDateFilter() {
1366
1520
  datePickerOpen.value = true;
1367
1521
  }
1368
- const dataRangeDisplay = computed(() => {
1522
+ const dateRangeDisplay = computed(() => {
1369
1523
  let startTime = filtering.dateFrom?.replace(/-/g, ".").substring(2);
1370
1524
  let endTime = filtering.dateTo?.replace(/-/g, ".").substring(2);
1371
1525
  return startTime + " - " + endTime;
1372
1526
  });
1373
- const consumptionGroups = ref({
1374
- from: "",
1375
- to: "",
1376
- list: []
1377
- });
1527
+ const consumptionGroups = ref([]);
1378
1528
  const balance = ref({
1379
1529
  total: 0,
1380
1530
  privileges: []
@@ -1383,46 +1533,73 @@ var script$1 = /* @__PURE__ */ defineComponent({
1383
1533
  Taro.setNavigationBarTitle({
1384
1534
  title: "\u6211\u7684\u8D26\u6237"
1385
1535
  });
1386
- loadConsumptions(true);
1536
+ loadConsumptions();
1387
1537
  loadBalance();
1388
1538
  });
1389
- async function loadConsumptions(firstTime) {
1390
- const $http = makeHttp();
1539
+ function groupDataByDate(data) {
1540
+ const groups = consumptionGroups.value || [];
1541
+ data.forEach((d) => {
1542
+ const date = dayjs(d.time).format("YYYY-MM-DD");
1543
+ let group = groups.find((g) => g.date === date);
1544
+ if (!group) {
1545
+ group = {
1546
+ date,
1547
+ consumptions: []
1548
+ };
1549
+ groups.push(group);
1550
+ }
1551
+ group.consumptions.push(d);
1552
+ });
1553
+ groups.sort((a, b) => a.date > b.date ? -1 : 1);
1554
+ return groups;
1555
+ }
1556
+ async function loadConsumptions(append = false) {
1557
+ if (!append) {
1558
+ consumptionGroups.value = [];
1559
+ }
1560
+ const $http = useHttp();
1391
1561
  Taro.showLoading({
1392
1562
  title: `\u52A0\u8F7D\u4E2D...`,
1393
1563
  mask: true
1394
1564
  });
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;
1565
+ $http.get(endpoints.\u83B7\u53D6\u8D26\u6237\u6D41\u6C34, filtering).then((response) => {
1566
+ consumptionGroups.value = groupDataByDate(response.data);
1567
+ if (filtering.page >= response.totalPages) {
1568
+ filtering.page = response.totalPages;
1569
+ reachedLastPage.value = true;
1570
+ } else {
1571
+ reachedLastPage.value = false;
1400
1572
  }
1573
+ Taro.hideLoading();
1401
1574
  });
1402
- Taro.hideLoading();
1403
1575
  }
1404
1576
  async function loadBalance() {
1405
- const $http = makeHttp();
1406
- $http.get(endpoints.getBalance, {}).then((data) => {
1577
+ const $http = useHttp();
1578
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {}).then((data) => {
1407
1579
  balance.value = data;
1408
1580
  });
1409
1581
  }
1410
1582
  const onFilterComplete = (value) => {
1411
- filtering.position = value[0];
1412
- filtering.direction = value[1];
1413
- filtering.type = value[2];
1583
+ filtering.\u8D26\u6237\u7C7B\u578B = value[0];
1584
+ filtering.\u6536\u5165\u8FD8\u662F\u652F\u51FA = value[1];
1585
+ filtering.\u4EA4\u6613\u7C7B\u578B = value[2];
1586
+ filtering.\u6743\u76CA\u7C7B\u76EE = value[3];
1414
1587
  filterOpen.value = false;
1415
- loadConsumptions();
1588
+ restartSearch();
1416
1589
  };
1417
1590
  const onDateFilterComplete = (value) => {
1418
1591
  filtering.dateFrom = value.from;
1419
1592
  filtering.dateTo = value.to;
1420
1593
  datePickerOpen.value = false;
1421
- loadConsumptions();
1594
+ restartSearch();
1422
1595
  };
1423
1596
  function gotoRecharge() {
1424
1597
  emit("recharge");
1425
1598
  }
1599
+ function loadNextPage() {
1600
+ filtering.page++;
1601
+ loadConsumptions(true);
1602
+ }
1426
1603
  const scrollY = ref(0);
1427
1604
  usePageScroll((e) => {
1428
1605
  const { scrollTop } = e;
@@ -1438,9 +1615,29 @@ var script$1 = /* @__PURE__ */ defineComponent({
1438
1615
  Taro.stopPullDownRefresh();
1439
1616
  }, 500);
1440
1617
  });
1618
+ useReachBottom(() => {
1619
+ if (reachedLastPage.value) {
1620
+ return false;
1621
+ }
1622
+ loadNextPage();
1623
+ });
1441
1624
  const popupOpen = computed(() => {
1442
1625
  return rulesPopupOpen.value || datePickerOpen.value || filterOpen.value;
1443
1626
  });
1627
+ const secondBalanceOpen = ref(false);
1628
+ function onSecondBalanceButtonClick() {
1629
+ secondBalanceOpen.value = true;
1630
+ }
1631
+ function onDateReset() {
1632
+ resetDateRange();
1633
+ }
1634
+ function resetDateRange() {
1635
+ filtering.dateTo = dayjs().format("YYYY-MM-DD");
1636
+ filtering.dateFrom = dayjs().add(-3, "M").format("YYYY-MM-DD");
1637
+ }
1638
+ onMounted(() => {
1639
+ resetDateRange();
1640
+ });
1444
1641
  return (_ctx, _cache) => {
1445
1642
  const _component_nut_popup = resolveComponent("nut-popup");
1446
1643
  return openBlock(), createElementBlock(
@@ -1450,111 +1647,94 @@ var script$1 = /* @__PURE__ */ defineComponent({
1450
1647
  createElementVNode(
1451
1648
  "div",
1452
1649
  {
1453
- class: normalizeClass(["consumption-view", { popupOpen: popupOpen.value }])
1650
+ class: normalizeClass(["account-view", { popupOpen: popupOpen.value }])
1454
1651
  },
1455
1652
  [
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
- ])
1653
+ createVNode(unref(script$b), {
1654
+ "color-mode": "dark",
1655
+ title: "\u6211\u7684\u8D26\u6237",
1656
+ class: normalizeClass({ "with-background": scrollY.value > 0 })
1657
+ }, null, 8, ["class"]),
1658
+ createElementVNode("div", { class: "row jusify-right" }, [
1659
+ createElementVNode("div", {
1660
+ class: "small-bean-button",
1661
+ onClick: onSecondBalanceButtonClick
1662
+ }, [..._hoisted_2$1])
1514
1663
  ]),
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
- ])
1664
+ createElementVNode("div", _hoisted_3$1, [
1665
+ createElementVNode("div", _hoisted_4$1, [
1666
+ _hoisted_5$1,
1667
+ createElementVNode("div", {
1668
+ class: "rule",
1669
+ onClick: _cache[0] || (_cache[0] = ($event) => rulesPopupOpen.value = true)
1670
+ }, "\u89C4\u5219\u8BF4\u660E")
1539
1671
  ]),
1540
- createElementVNode("div", {
1541
- class: "search",
1542
- onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1543
- }, [..._hoisted_21])
1672
+ createElementVNode("div", _hoisted_6, [
1673
+ createElementVNode(
1674
+ "div",
1675
+ _hoisted_7,
1676
+ toDisplayString(balance.value.total || 0),
1677
+ 1
1678
+ /* TEXT */
1679
+ ),
1680
+ createElementVNode("div", {
1681
+ class: "pay",
1682
+ onClick: gotoRecharge
1683
+ }, "\u4E91\u8C46\u5145\u503C")
1684
+ ])
1544
1685
  ]),
1545
- createElementVNode("div", _hoisted_22, [
1546
- consumptionGroups.value.list.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_23, [
1686
+ createElementVNode(
1687
+ "div",
1688
+ {
1689
+ class: normalizeClass(["operation-title spa-between", { "with-shadow": scrollY.value > 0 }]),
1690
+ style: normalizeStyle({ top: `${unref(safeArea).status + unref(safeArea).nav}px` })
1691
+ },
1692
+ [
1693
+ createElementVNode("div", _hoisted_8, [
1694
+ _hoisted_9,
1695
+ withDirectives(createElementVNode(
1696
+ "div",
1697
+ {
1698
+ class: "time",
1699
+ onClick: openDateFilter
1700
+ },
1701
+ [
1702
+ createElementVNode(
1703
+ "div",
1704
+ _hoisted_10,
1705
+ toDisplayString(dateRangeDisplay.value),
1706
+ 1
1707
+ /* TEXT */
1708
+ ),
1709
+ _hoisted_11
1710
+ ],
1711
+ 512
1712
+ /* NEED_PATCH */
1713
+ ), [
1714
+ [vShow, filtering.dateFrom]
1715
+ ])
1716
+ ]),
1717
+ createElementVNode("div", {
1718
+ class: "search",
1719
+ onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1720
+ }, [..._hoisted_14])
1721
+ ],
1722
+ 6
1723
+ /* CLASS, STYLE */
1724
+ ),
1725
+ createElementVNode("div", _hoisted_15, [
1726
+ consumptionGroups.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_16, [
1547
1727
  (openBlock(true), createElementBlock(
1548
1728
  Fragment,
1549
1729
  null,
1550
- renderList(consumptionGroups.value.list, (item, index) => {
1730
+ renderList(consumptionGroups.value, (item, index) => {
1551
1731
  return openBlock(), createElementBlock("div", {
1552
1732
  class: "box-detail",
1553
1733
  key: index
1554
1734
  }, [
1555
1735
  createElementVNode(
1556
1736
  "div",
1557
- _hoisted_24,
1737
+ _hoisted_17,
1558
1738
  toDisplayString(item.date),
1559
1739
  1
1560
1740
  /* TEXT */
@@ -1569,24 +1749,24 @@ var script$1 = /* @__PURE__ */ defineComponent({
1569
1749
  }, [
1570
1750
  createElementVNode(
1571
1751
  "div",
1572
- _hoisted_25,
1573
- toDisplayString(it.type),
1752
+ _hoisted_18,
1753
+ toDisplayString(it.\u4EA4\u6613\u7C7B\u578B),
1574
1754
  1
1575
1755
  /* TEXT */
1576
1756
  ),
1577
- createElementVNode("div", _hoisted_26, [
1578
- createElementVNode("div", _hoisted_27, [
1757
+ createElementVNode("div", _hoisted_19, [
1758
+ createElementVNode("div", _hoisted_20, [
1579
1759
  createElementVNode("div", null, [
1580
1760
  createElementVNode(
1581
1761
  "div",
1582
- _hoisted_28,
1583
- toDisplayString(it.position),
1762
+ _hoisted_21,
1763
+ toDisplayString(it.\u8D26\u6237\u7C7B\u578B),
1584
1764
  1
1585
1765
  /* TEXT */
1586
1766
  ),
1587
1767
  createElementVNode(
1588
1768
  "div",
1589
- _hoisted_29,
1769
+ _hoisted_22,
1590
1770
  toDisplayString(it.title),
1591
1771
  1
1592
1772
  /* TEXT */
@@ -1594,15 +1774,15 @@ var script$1 = /* @__PURE__ */ defineComponent({
1594
1774
  ]),
1595
1775
  createElementVNode(
1596
1776
  "div",
1597
- _hoisted_30,
1598
- toDisplayString(it.direction == "\u652F\u51FA" ? "-" : "+") + toDisplayString(it.amount),
1777
+ _hoisted_23,
1778
+ toDisplayString(it.\u6536\u5165\u8FD8\u662F\u652F\u51FA == "\u652F\u51FA" ? "-" : "+") + toDisplayString(it.amount),
1599
1779
  1
1600
1780
  /* TEXT */
1601
1781
  )
1602
1782
  ]),
1603
1783
  createElementVNode(
1604
1784
  "div",
1605
- _hoisted_31,
1785
+ _hoisted_24,
1606
1786
  toDisplayString(it.description),
1607
1787
  1
1608
1788
  /* TEXT */
@@ -1618,8 +1798,8 @@ var script$1 = /* @__PURE__ */ defineComponent({
1618
1798
  128
1619
1799
  /* KEYED_FRAGMENT */
1620
1800
  )),
1621
- _hoisted_32
1622
- ])) : (openBlock(), createElementBlock("div", _hoisted_33, [..._hoisted_36]))
1801
+ reachedLastPage.value ? (openBlock(), createElementBlock("div", _hoisted_25, "\u6CA1\u6709\u66F4\u591A\u4E86")) : createCommentVNode("v-if", true)
1802
+ ])) : (openBlock(), createBlock(script$2, { key: 1 }))
1623
1803
  ])
1624
1804
  ],
1625
1805
  2
@@ -1632,7 +1812,7 @@ var script$1 = /* @__PURE__ */ defineComponent({
1632
1812
  "close-on-click-overlay": false
1633
1813
  }, {
1634
1814
  default: withCtx(() => [
1635
- createVNode(script$2, {
1815
+ createVNode(script$4, {
1636
1816
  onComplete: _cache[2] || (_cache[2] = ($event) => rulesPopupOpen.value = false)
1637
1817
  })
1638
1818
  ]),
@@ -1648,10 +1828,11 @@ var script$1 = /* @__PURE__ */ defineComponent({
1648
1828
  "onUpdate:visible": _cache[4] || (_cache[4] = ($event) => datePickerOpen.value = $event)
1649
1829
  }, {
1650
1830
  default: withCtx(() => [
1651
- datePickerOpen.value ? (openBlock(), createBlock(script$3, {
1831
+ datePickerOpen.value ? (openBlock(), createBlock(script$5, {
1652
1832
  key: 0,
1653
1833
  from: filtering.dateFrom,
1654
1834
  to: filtering.dateTo,
1835
+ onReset: onDateReset,
1655
1836
  onComplete: onDateFilterComplete
1656
1837
  }, null, 8, ["from", "to"])) : createCommentVNode("v-if", true)
1657
1838
  ]),
@@ -1660,25 +1841,39 @@ var script$1 = /* @__PURE__ */ defineComponent({
1660
1841
  }, 8, ["visible"]),
1661
1842
  createVNode(_component_nut_popup, {
1662
1843
  position: "bottom",
1663
- style: { height: "70%" },
1844
+ style: { height: "75%" },
1664
1845
  round: "",
1665
1846
  "close-on-click-overlay": true,
1666
1847
  visible: filterOpen.value,
1667
1848
  "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => filterOpen.value = $event)
1668
1849
  }, {
1669
1850
  default: withCtx(() => [
1670
- createVNode(script$4, {
1851
+ createVNode(script$6, {
1671
1852
  modelValue: [
1672
- filtering.position,
1673
- filtering.direction,
1674
- filtering.type
1853
+ filtering.\u8D26\u6237\u7C7B\u578B,
1854
+ filtering.\u6536\u5165\u8FD8\u662F\u652F\u51FA,
1855
+ filtering.\u4EA4\u6613\u7C7B\u578B,
1856
+ filtering.\u6743\u76CA\u7C7B\u76EE
1675
1857
  ],
1676
1858
  onComplete: onFilterComplete
1677
1859
  }, null, 8, ["modelValue"])
1678
1860
  ]),
1679
1861
  _: 1
1680
1862
  /* STABLE */
1681
- }, 8, ["visible"])
1863
+ }, 8, ["visible"]),
1864
+ createVNode(unref(script$a), {
1865
+ modelValue: secondBalanceOpen.value,
1866
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => secondBalanceOpen.value = $event),
1867
+ title: "\u5C0F\u4E91\u8C46\u4F59\u989D"
1868
+ }, {
1869
+ default: withCtx(() => [
1870
+ createVNode(script$3, {
1871
+ data: balance.value.privileges
1872
+ }, null, 8, ["data"])
1873
+ ]),
1874
+ _: 1
1875
+ /* STABLE */
1876
+ }, 8, ["modelValue"])
1682
1877
  ],
1683
1878
  64
1684
1879
  /* STABLE_FRAGMENT */
@@ -1770,9 +1965,7 @@ const nutComponents = [
1770
1965
  Checkbox,
1771
1966
  Popup,
1772
1967
  OverLay,
1773
- Icon,
1774
- DatePicker,
1775
- Picker
1968
+ DatePicker
1776
1969
  ];
1777
1970
  const appComponents = {
1778
1971
  ...components
@@ -1817,4 +2010,4 @@ const AppKit = {
1817
2010
  }
1818
2011
  };
1819
2012
 
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 };
2013
+ 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 };