@uxda/appkit 1.0.64 → 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
- reject(`==\u63A5\u53E3\u62A5\u9519==${res.statusCode}`);
238
- reject({});
239
- }
240
- const { data: raw } = res;
241
- if (clientConfig.interceptors?.auth(raw)) {
242
- clientConfig.onAuthError?.();
243
- reject("===401===");
244
- }
245
- if (clientConfig.interceptors?.server(raw)) {
246
- clientConfig.onServerError?.();
247
- reject("server error");
248
- }
249
- const response = clientConfig.response?.getData(raw);
250
- if (response) {
251
- resolve(clientConfig.transforms && clientConfig.transforms[config.url] ? clientConfig.transforms[config.url](response) : response);
252
- } else {
253
- reject(`==\u63A5\u53E3\u62A5\u9519==${raw.msg}`);
235
+ headers: c.headers,
236
+ method: c.method
237
+ }).then((raw) => {
238
+ for (const interc of c.interceptors || []) {
239
+ const r = interc(raw);
240
+ if (r) {
241
+ reject("===INTERCEPTED===" + raw.status);
242
+ return false;
254
243
  }
255
- },
256
- fail(res) {
257
- console.log("HTTP failed", res);
258
244
  }
245
+ if (raw.data) {
246
+ const response = clientConfig.transforms && clientConfig.transforms[c.url] ? clientConfig.transforms[c.url]?.(raw.data) : data;
247
+ const paging = config.data?.page ? clientConfig.paging?.transform(raw.data) : void 0;
248
+ resolve(
249
+ paging ? {
250
+ ...paging,
251
+ data: response
252
+ } : response
253
+ );
254
+ } else {
255
+ reject(`\u672A\u77E5\u9519\u8BEF`);
256
+ }
257
+ }).catch((e) => {
258
+ console.log("request.catch===", e);
259
259
  });
260
260
  });
261
261
  };
@@ -273,7 +273,16 @@ const post = (url, data) => {
273
273
  method: HttpMethod.post
274
274
  });
275
275
  };
276
- function useHttp(config) {
276
+ const defaultClientConfig = {
277
+ baseUrl: "/",
278
+ interceptors: [
279
+ (raw) => raw.status == 401
280
+ ]
281
+ };
282
+ let clientConfig = {
283
+ ...defaultClientConfig
284
+ };
285
+ function createHttp(config) {
277
286
  clientConfig = {
278
287
  ...defaultClientConfig,
279
288
  ...config
@@ -284,9 +293,6 @@ function useHttp(config) {
284
293
  post
285
294
  };
286
295
  }
287
- function isSuccess(res) {
288
- return /^2/.test(res.statusCode.toString());
289
- }
290
296
 
291
297
  const endpointsList$1 = {
292
298
  /**
@@ -294,7 +300,7 @@ const endpointsList$1 = {
294
300
  * (查询某应用某场景可充值的金额列表)
295
301
  * http://ytech.dev.ddjf.info/payment/doc.html#/%E5%AE%A2%E6%88%B7%E5%9F%9FAPI/%E6%94%AF%E4%BB%98%E4%B8%AD%E5%BF%83-%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3/getRechargeListUsingGET
296
302
  */
297
- getPackages: {
303
+ \u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868: {
298
304
  path: "/payment/outer/payment/getRechargeList",
299
305
  translate: (data) => ({
300
306
  appCode: data.app,
@@ -311,7 +317,7 @@ const endpointsList$1 = {
311
317
  * (获取拉起微信支付用的JSON串)
312
318
  * http://ytech.dev.ddjf.info/payment/doc.html#/%E5%AE%A2%E6%88%B7%E5%9F%9FAPI/%E6%94%AF%E4%BB%98%E4%B8%AD%E5%BF%83-%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3/rechargePayUsingPOST
313
319
  */
314
- getPayParams: {
320
+ \u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305: {
315
321
  // {
316
322
  // "amount": 100,
317
323
  // "appCode": "crm",
@@ -372,25 +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,
381
- Appcode: appkitOptions.app()
403
+ const headers = {
404
+ Token: appkitOptions.token(),
405
+ Appcode: appkitOptions.app(),
406
+ cookie: `tid=${appkitOptions.tenant()}`
382
407
  };
383
- const $http = useHttp({
408
+ const $http = createHttp({
409
+ vendor: vendor$1,
384
410
  baseUrl: appkitOptions.baseUrl(),
385
- header,
386
- onAuthError: () => {
387
- appkitOptions["401"]();
388
- },
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
+ ],
389
427
  translates: translates$1,
390
428
  transforms: transforms$1
391
429
  });
392
430
  return $http;
393
- };
431
+ }
394
432
 
395
433
  const CASHIER_APP_ID = "wx82330581af3328ab";
396
434
 
@@ -415,8 +453,8 @@ var invokeRecharge$1 = {
415
453
 
416
454
  const requestPayment = (params) => {
417
455
  return new Promise((resolve, reject) => {
418
- const $http = makeHttp$1();
419
- $http.post(endpoints$1.getPayParams, {
456
+ const $http = useHttp$1();
457
+ $http.post(endpoints$1.\u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305, {
420
458
  ...params
421
459
  // amount: 0.01,
422
460
  }).then((response) => {
@@ -441,11 +479,11 @@ const services$1 = [
441
479
  invokeRecharge$1
442
480
  ];
443
481
 
444
- const _hoisted_1$7 = { class: "view recharge-view" };
445
- const _hoisted_2$7 = { class: "flex-grow" };
446
- const _hoisted_3$7 = { class: "amount-footer" };
447
- const _hoisted_4$6 = { class: "agreement" };
448
- 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({
449
487
  __name: "RechargeView",
450
488
  props: {
451
489
  app: { type: String, required: true },
@@ -469,8 +507,8 @@ var script$7 = /* @__PURE__ */ defineComponent({
469
507
  state.selected = selected;
470
508
  };
471
509
  onMounted(() => {
472
- const $http = makeHttp$1();
473
- $http.get(endpoints$1.getPackages, {
510
+ const $http = useHttp$1();
511
+ $http.get(endpoints$1.\u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868, {
474
512
  app: props.app,
475
513
  // stage: 'aiApproveRecharge', // 支付场景
476
514
  tenant: props.tenant
@@ -508,16 +546,16 @@ var script$7 = /* @__PURE__ */ defineComponent({
508
546
  return (_ctx, _cache) => {
509
547
  const _component_nut_checkbox = resolveComponent("nut-checkbox");
510
548
  const _component_nut_button = resolveComponent("nut-button");
511
- return openBlock(), createElementBlock("view", _hoisted_1$7, [
512
- createElementVNode("view", _hoisted_2$7, [
513
- createVNode(script$b, {
549
+ return openBlock(), createElementBlock("view", _hoisted_1$9, [
550
+ createElementVNode("view", _hoisted_2$9, [
551
+ createVNode(script$d, {
514
552
  items: amounts.value,
515
553
  selected: state.selected,
516
554
  onChange: onAmountSelect
517
555
  }, null, 8, ["items", "selected"])
518
556
  ]),
519
- createElementVNode("view", _hoisted_3$7, [
520
- createElementVNode("view", _hoisted_4$6, [
557
+ createElementVNode("view", _hoisted_3$9, [
558
+ createElementVNode("view", _hoisted_4$8, [
521
559
  createVNode(_component_nut_checkbox, {
522
560
  modelValue: state.agreed,
523
561
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.agreed = $event)
@@ -547,13 +585,13 @@ var script$7 = /* @__PURE__ */ defineComponent({
547
585
  /* STABLE */
548
586
  }, 8, ["loading"])
549
587
  ]),
550
- createVNode(unref(script$8), {
588
+ createVNode(unref(script$a), {
551
589
  modelValue: state.agreementOpen,
552
590
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.agreementOpen = $event),
553
591
  title: "\u5145\u503C\u534F\u8BAE"
554
592
  }, {
555
593
  default: withCtx(() => [
556
- createVNode(script$a)
594
+ createVNode(script$c)
557
595
  ]),
558
596
  _: 1
559
597
  /* STABLE */
@@ -563,32 +601,32 @@ var script$7 = /* @__PURE__ */ defineComponent({
563
601
  }
564
602
  });
565
603
 
566
- script$7.__file = "src/payment/components/RechargeView.vue";
604
+ script$9.__file = "src/payment/components/RechargeView.vue";
567
605
 
568
- const _hoisted_1$6 = { class: "recharge-result" };
569
- const _hoisted_2$6 = { class: "content" };
570
- 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(
571
609
  "div",
572
610
  { class: "figure" },
573
611
  null,
574
612
  -1
575
613
  /* HOISTED */
576
614
  );
577
- const _hoisted_4$5 = /* @__PURE__ */ createElementVNode(
615
+ const _hoisted_4$7 = /* @__PURE__ */ createElementVNode(
578
616
  "h2",
579
617
  null,
580
618
  "\u5145\u503C\u6210\u529F",
581
619
  -1
582
620
  /* HOISTED */
583
621
  );
584
- const _hoisted_5$5 = /* @__PURE__ */ createElementVNode(
622
+ const _hoisted_5$6 = /* @__PURE__ */ createElementVNode(
585
623
  "div",
586
624
  { class: "caption" },
587
625
  "\u4E91\u8C46\u5C06\u57285\u5206\u949F\u4E4B\u5185\u5230\u8D26",
588
626
  -1
589
627
  /* HOISTED */
590
628
  );
591
- var script$6 = /* @__PURE__ */ defineComponent({
629
+ var script$8 = /* @__PURE__ */ defineComponent({
592
630
  __name: "RechargeResult",
593
631
  emits: ["dismiss"],
594
632
  setup(__props, { emit: __emit }) {
@@ -598,11 +636,11 @@ var script$6 = /* @__PURE__ */ defineComponent({
598
636
  }
599
637
  return (_ctx, _cache) => {
600
638
  const _component_nut_button = resolveComponent("nut-button");
601
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
602
- createElementVNode("div", _hoisted_2$6, [
603
- _hoisted_3$6,
604
- _hoisted_4$5,
605
- _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,
606
644
  createVNode(_component_nut_button, {
607
645
  class: "back-button",
608
646
  type: "default",
@@ -620,13 +658,13 @@ var script$6 = /* @__PURE__ */ defineComponent({
620
658
  }
621
659
  });
622
660
 
623
- script$6.__file = "src/payment/components/RechargeResult.vue";
661
+ script$8.__file = "src/payment/components/RechargeResult.vue";
624
662
 
625
663
  const components = {
626
- AmountPicker: script$b,
627
- RechargeView: script$7,
628
- UserAgreement: script$a,
629
- RechargeResult: script$6
664
+ AmountPicker: script$d,
665
+ RechargeView: script$9,
666
+ UserAgreement: script$c,
667
+ RechargeResult: script$8
630
668
  };
631
669
 
632
670
  const typeMappings = {
@@ -656,57 +694,56 @@ const directionMappingsReversed = Object.fromEntries(
656
694
  Object.entries(directionMappings).map(([x, y]) => [y, x])
657
695
  );
658
696
  const endpointsList = {
659
- /**
660
- * 余额明细
661
- */
662
- getBalance: {
697
+ \u83B7\u53D6\u4F59\u989D\u660E\u7EC6: {
663
698
  path: "/ac-app/account/info/detail/app",
664
699
  // /app
665
- translate: (data) => ({}),
666
700
  transform(result) {
667
701
  return {
668
702
  total: result.commonAccount,
669
703
  privileges: result.rightsAccountBalList.map((r) => ({
670
704
  title: r.rightsName,
671
- amount: r.rightsAccount
705
+ count: r.rightsAccount
672
706
  }))
673
707
  };
674
708
  }
675
709
  },
676
- /**
677
- * 账户流水明细
678
- */
679
- getOperations: {
710
+ \u83B7\u53D6\u8D26\u6237\u6D41\u6C34: {
680
711
  path: "/ac-app/account/record/detail/mobile",
681
712
  translate: (data) => {
682
713
  return {
683
- accountType: positionMappingsReversed[data.position] || "",
684
- inOrOut: directionMappingsReversed[data.direction] || "",
685
- 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] || "",
686
717
  operateTimeStart: data.dateFrom || "",
687
- operateTimeEnd: data.dateTo || ""
718
+ operateTimeEnd: data.dateTo || "",
719
+ rightsCode: data.\u6743\u76CA\u7C7B\u76EE,
720
+ pageNum: data.page,
721
+ pageSize: 10
688
722
  };
689
723
  },
690
- transform(result) {
691
- if (!result.accountRecordDetailDailyList)
692
- return [];
693
- const data = {
694
- from: result.operateTimeStart,
695
- to: result.operateTimeEnd,
696
- list: result.accountRecordDetailDailyList.map((r) => ({
697
- date: r.operateTime,
698
- consumptions: r.accountRecordDetailList.map((d) => ({
699
- position: positionMappings[d.accountType],
700
- type: typeMappings[d.changeType],
701
- direction: directionMappings[d.inOrOut],
702
- amount: d.changeValue,
703
- title: d.rightsName,
704
- description: d.remark
705
- }))
706
- }))
707
- };
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
+ }));
708
735
  return data;
709
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
+ }))
710
747
  }
711
748
  };
712
749
  const endpoints = Object.fromEntries(
@@ -719,30 +756,74 @@ const transforms = Object.fromEntries(
719
756
  Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
720
757
  );
721
758
 
722
- 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() {
723
780
  const appkitOptions = useAppKitOptions();
724
- const header = {
781
+ const headers = {
725
782
  Token: appkitOptions.token(),
726
783
  Appcode: appkitOptions.app(),
727
784
  cookie: `tid=${appkitOptions.tenant()}`
728
785
  };
729
- const $http = useHttp({
786
+ const $http = createHttp({
787
+ vendor,
730
788
  baseUrl: appkitOptions.baseUrl(),
731
- header,
732
- onAuthError() {
733
- 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
+ }
734
815
  },
735
816
  translates,
736
817
  transforms
737
818
  });
738
819
  return $http;
739
- };
820
+ }
740
821
 
741
- const _hoisted_1$5 = { class: "account-card" };
742
- const _hoisted_2$5 = { class: "card" };
743
- const _hoisted_3$5 = { class: "card-row" };
744
- const _hoisted_4$4 = { class: "card-row-left" };
745
- 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(
746
827
  "div",
747
828
  { class: "bean-box" },
748
829
  [
@@ -816,7 +897,7 @@ const _hoisted_14$1 = [
816
897
  _hoisted_12$1,
817
898
  _hoisted_13$1
818
899
  ];
819
- var script$5 = /* @__PURE__ */ defineComponent({
900
+ var script$7 = /* @__PURE__ */ defineComponent({
820
901
  __name: "BalanceCard",
821
902
  emits: [
822
903
  /**
@@ -837,8 +918,8 @@ var script$5 = /* @__PURE__ */ defineComponent({
837
918
  emit("recharge");
838
919
  };
839
920
  async function loadBalance() {
840
- const $http = makeHttp();
841
- $http.get(endpoints.getBalance, {}).then((data) => {
921
+ const $http = useHttp();
922
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {}).then((data) => {
842
923
  balance.value = data;
843
924
  });
844
925
  }
@@ -850,11 +931,11 @@ var script$5 = /* @__PURE__ */ defineComponent({
850
931
  loadBalance();
851
932
  });
852
933
  return (_ctx, _cache) => {
853
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
854
- createElementVNode("div", _hoisted_2$5, [
855
- createElementVNode("div", _hoisted_3$5, [
856
- createElementVNode("div", _hoisted_4$4, [
857
- _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,
858
939
  createElementVNode(
859
940
  "div",
860
941
  _hoisted_6$3,
@@ -886,7 +967,7 @@ var script$5 = /* @__PURE__ */ defineComponent({
886
967
  }
887
968
  });
888
969
 
889
- script$5.__file = "src/balance/components/BalanceCard.vue";
970
+ script$7.__file = "src/balance/components/BalanceCard.vue";
890
971
 
891
972
  const consumptionTypes = [
892
973
  "\u5168\u90E8",
@@ -909,8 +990,8 @@ const consumptionDirections = [
909
990
  "\u652F\u51FA"
910
991
  ];
911
992
 
912
- const _hoisted_1$4 = { class: "consumption-filter" };
913
- const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
993
+ const _hoisted_1$6 = { class: "consumption-filter" };
994
+ const _hoisted_2$6 = /* @__PURE__ */ createElementVNode(
914
995
  "div",
915
996
  { class: "consumption-filter-title" },
916
997
  [
@@ -919,9 +1000,9 @@ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
919
1000
  -1
920
1001
  /* HOISTED */
921
1002
  );
922
- const _hoisted_3$4 = { class: "consumption-filter-content" };
923
- const _hoisted_4$3 = { class: "title" };
924
- 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" };
925
1006
  const _hoisted_6$2 = ["onClick"];
926
1007
  const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
927
1008
  "div",
@@ -930,30 +1011,35 @@ const _hoisted_7$2 = /* @__PURE__ */ createElementVNode(
930
1011
  -1
931
1012
  /* HOISTED */
932
1013
  );
933
- var script$4 = /* @__PURE__ */ defineComponent({
1014
+ var script$6 = /* @__PURE__ */ defineComponent({
934
1015
  __name: "ConsumptionFilter",
935
1016
  props: {
936
- 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", ""] }
937
1018
  },
938
1019
  emits: ["complete"],
939
1020
  setup(__props, { emit: __emit }) {
1021
+ const $http = useHttp();
940
1022
  const props = __props;
941
1023
  const emit = __emit;
942
1024
  const result = reactive(props.modelValue);
943
- const filterSections = [
1025
+ const filterSections = ref([
944
1026
  {
945
1027
  title: "\u7C7B\u578B",
946
- data: consumptionPositions
1028
+ data: consumptionPositions.map((s) => ({ code: s, name: s }))
947
1029
  },
948
1030
  {
949
1031
  title: "\u6536\u5165/\u652F\u51FA",
950
- data: consumptionDirections
1032
+ data: consumptionDirections.map((s) => ({ code: s, name: s }))
951
1033
  },
952
1034
  {
953
1035
  title: "\u660E\u7EC6\u7C7B\u578B",
954
- data: consumptionTypes
1036
+ data: consumptionTypes.map((s) => ({ code: s, name: s }))
1037
+ },
1038
+ {
1039
+ title: "\u6743\u76CA\u7C7B\u76EE",
1040
+ data: []
955
1041
  }
956
- ];
1042
+ ]);
957
1043
  const getItemClass = (index, value) => result[index] === value ? ["current"] : [""];
958
1044
  const onFilterSectionClick = (index, value) => {
959
1045
  result[index] = value;
@@ -962,39 +1048,49 @@ var script$4 = /* @__PURE__ */ defineComponent({
962
1048
  result[0] = "\u5168\u90E8";
963
1049
  result[1] = "\u5168\u90E8";
964
1050
  result[2] = "\u5168\u90E8";
1051
+ result[3] = "";
965
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
+ });
1060
+ };
1061
+ \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE();
966
1062
  const onOkClick = () => {
967
1063
  emit("complete", result);
968
1064
  };
969
1065
  return (_ctx, _cache) => {
970
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
971
- _hoisted_2$4,
972
- createElementVNode("div", _hoisted_3$4, [
973
- (openBlock(), createElementBlock(
1066
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1067
+ _hoisted_2$6,
1068
+ createElementVNode("div", _hoisted_3$6, [
1069
+ (openBlock(true), createElementBlock(
974
1070
  Fragment,
975
1071
  null,
976
- renderList(filterSections, (item, index) => {
1072
+ renderList(filterSections.value, (item, index) => {
977
1073
  return openBlock(), createElementBlock(
978
1074
  Fragment,
979
1075
  { key: index },
980
1076
  [
981
1077
  createElementVNode(
982
1078
  "div",
983
- _hoisted_4$3,
1079
+ _hoisted_4$5,
984
1080
  toDisplayString(item.title),
985
1081
  1
986
1082
  /* TEXT */
987
1083
  ),
988
- createElementVNode("div", _hoisted_5$3, [
1084
+ createElementVNode("div", _hoisted_5$4, [
989
1085
  (openBlock(true), createElementBlock(
990
1086
  Fragment,
991
1087
  null,
992
1088
  renderList(item.data, (it, i) => {
993
1089
  return openBlock(), createElementBlock("div", {
994
- onClick: () => onFilterSectionClick(index, it),
995
- class: normalizeClass([getItemClass(index, it), "info-item"]),
1090
+ onClick: () => onFilterSectionClick(index, it.code),
1091
+ class: normalizeClass([getItemClass(index, it.code), "info-item"]),
996
1092
  key: i
997
- }, toDisplayString(it), 11, _hoisted_6$2);
1093
+ }, toDisplayString(typeof it === "string" ? it : it.name), 11, _hoisted_6$2);
998
1094
  }),
999
1095
  128
1000
1096
  /* KEYED_FRAGMENT */
@@ -1005,8 +1101,8 @@ var script$4 = /* @__PURE__ */ defineComponent({
1005
1101
  /* STABLE_FRAGMENT */
1006
1102
  );
1007
1103
  }),
1008
- 64
1009
- /* STABLE_FRAGMENT */
1104
+ 128
1105
+ /* KEYED_FRAGMENT */
1010
1106
  ))
1011
1107
  ]),
1012
1108
  createElementVNode("div", { class: "consumption-filter-btn spa-between" }, [
@@ -1025,25 +1121,25 @@ var script$4 = /* @__PURE__ */ defineComponent({
1025
1121
  }
1026
1122
  });
1027
1123
 
1028
- script$4.__file = "src/balance/components/ConsumptionFilter.vue";
1124
+ script$6.__file = "src/balance/components/ConsumptionFilter.vue";
1029
1125
 
1030
- const _hoisted_1$3 = { class: "consumption-date-filter" };
1031
- const _hoisted_2$3 = /* @__PURE__ */ createElementVNode(
1126
+ const _hoisted_1$5 = { class: "consumption-date-filter" };
1127
+ const _hoisted_2$5 = /* @__PURE__ */ createElementVNode(
1032
1128
  "div",
1033
1129
  { class: "date-filter-header" },
1034
1130
  "\u65E5\u671F\u9009\u62E9",
1035
1131
  -1
1036
1132
  /* HOISTED */
1037
1133
  );
1038
- const _hoisted_3$3 = { class: "content" };
1039
- const _hoisted_4$2 = /* @__PURE__ */ createElementVNode(
1134
+ const _hoisted_3$5 = { class: "content" };
1135
+ const _hoisted_4$4 = /* @__PURE__ */ createElementVNode(
1040
1136
  "div",
1041
1137
  { class: "title" },
1042
1138
  "\u81EA\u5B9A\u4E49",
1043
1139
  -1
1044
1140
  /* HOISTED */
1045
1141
  );
1046
- const _hoisted_5$2 = { class: "time" };
1142
+ const _hoisted_5$3 = { class: "time" };
1047
1143
  const _hoisted_6$1 = /* @__PURE__ */ createElementVNode(
1048
1144
  "div",
1049
1145
  { class: "line" },
@@ -1058,16 +1154,23 @@ const _hoisted_7$1 = /* @__PURE__ */ createElementVNode(
1058
1154
  -1
1059
1155
  /* HOISTED */
1060
1156
  );
1061
- var script$3 = /* @__PURE__ */ defineComponent({
1157
+ var script$5 = /* @__PURE__ */ defineComponent({
1062
1158
  __name: "DateFilter",
1063
1159
  props: {
1064
1160
  from: { type: String, required: true },
1065
1161
  to: { type: String, required: true }
1066
1162
  },
1067
- emits: ["complete"],
1163
+ emits: ["complete", "reset"],
1068
1164
  setup(__props, { emit: __emit }) {
1069
1165
  const props = __props;
1070
1166
  const emit = __emit;
1167
+ watch(
1168
+ () => `${props.from}${props.to}`,
1169
+ () => {
1170
+ result.from = props.from;
1171
+ result.to = props.to;
1172
+ }
1173
+ );
1071
1174
  const result = reactive({ ...props });
1072
1175
  const focused = ref("from");
1073
1176
  const focusedDate = ref(props.from);
@@ -1075,8 +1178,7 @@ var script$3 = /* @__PURE__ */ defineComponent({
1075
1178
  const maxDate = ref(/* @__PURE__ */ new Date());
1076
1179
  const datePickerOpen = ref(false);
1077
1180
  function reset() {
1078
- result.from = props.from;
1079
- result.to = props.to;
1181
+ emit("reset");
1080
1182
  }
1081
1183
  function onOkClick() {
1082
1184
  emit("complete", result);
@@ -1111,11 +1213,11 @@ var script$3 = /* @__PURE__ */ defineComponent({
1111
1213
  Fragment,
1112
1214
  null,
1113
1215
  [
1114
- createElementVNode("div", _hoisted_1$3, [
1115
- _hoisted_2$3,
1116
- createElementVNode("div", _hoisted_3$3, [
1117
- _hoisted_4$2,
1118
- 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, [
1119
1221
  createElementVNode(
1120
1222
  "div",
1121
1223
  {
@@ -1170,17 +1272,17 @@ var script$3 = /* @__PURE__ */ defineComponent({
1170
1272
  }
1171
1273
  });
1172
1274
 
1173
- script$3.__file = "src/balance/components/DateFilter.vue";
1275
+ script$5.__file = "src/balance/components/DateFilter.vue";
1174
1276
 
1175
- const _hoisted_1$2 = { class: "consumption-rules" };
1176
- const _hoisted_2$2 = /* @__PURE__ */ createElementVNode(
1277
+ const _hoisted_1$4 = { class: "consumption-rules" };
1278
+ const _hoisted_2$4 = /* @__PURE__ */ createElementVNode(
1177
1279
  "div",
1178
1280
  { class: "title" },
1179
1281
  "\u89C4\u5219\u8BF4\u660E",
1180
1282
  -1
1181
1283
  /* HOISTED */
1182
1284
  );
1183
- const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1285
+ const _hoisted_3$4 = /* @__PURE__ */ createElementVNode(
1184
1286
  "div",
1185
1287
  { class: "desc" },
1186
1288
  [
@@ -1195,15 +1297,15 @@ const _hoisted_3$2 = /* @__PURE__ */ createElementVNode(
1195
1297
  -1
1196
1298
  /* HOISTED */
1197
1299
  );
1198
- var script$2 = /* @__PURE__ */ defineComponent({
1300
+ var script$4 = /* @__PURE__ */ defineComponent({
1199
1301
  __name: "ConsumptionRules",
1200
1302
  emits: ["complete"],
1201
1303
  setup(__props, { emit: __emit }) {
1202
1304
  const emit = __emit;
1203
1305
  return (_ctx, _cache) => {
1204
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
1205
- _hoisted_2$2,
1206
- _hoisted_3$2,
1306
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
1307
+ _hoisted_2$4,
1308
+ _hoisted_3$4,
1207
1309
  createElementVNode("div", {
1208
1310
  class: "know",
1209
1311
  onClick: _cache[0] || (_cache[0] = ($event) => emit("complete"))
@@ -1213,11 +1315,108 @@ var script$2 = /* @__PURE__ */ defineComponent({
1213
1315
  }
1214
1316
  });
1215
1317
 
1216
- script$2.__file = "src/balance/components/ConsumptionRules.vue";
1318
+ script$4.__file = "src/balance/components/ConsumptionRules.vue";
1217
1319
 
1218
- const _hoisted_1$1 = { class: "header" };
1219
- const _hoisted_2$1 = { class: "header_card" };
1220
- 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" };
1221
1420
  const _hoisted_4$1 = { class: "bean-box spa-between" };
1222
1421
  const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1223
1422
  "div",
@@ -1234,44 +1433,19 @@ const _hoisted_5$1 = /* @__PURE__ */ createElementVNode(
1234
1433
  );
1235
1434
  const _hoisted_6 = { class: "bean-counts spa-between" };
1236
1435
  const _hoisted_7 = { class: "counts number" };
1237
- const _hoisted_8 = /* @__PURE__ */ createElementVNode(
1238
- "div",
1239
- { class: "line" },
1240
- null,
1241
- -1
1242
- /* HOISTED */
1243
- );
1244
- const _hoisted_9 = {
1245
- key: 0,
1246
- class: "small-clound-bean clound-bean"
1247
- };
1248
- const _hoisted_10 = /* @__PURE__ */ createElementVNode(
1249
- "div",
1250
- { class: "bean-box spa-between" },
1251
- [
1252
- /* @__PURE__ */ createElementVNode("div", { class: "bean-img" }, [
1253
- /* @__PURE__ */ createElementVNode("div", { class: "bean-tag" }, "\u5C0F\u4E91\u8C46")
1254
- ])
1255
- ],
1256
- -1
1257
- /* HOISTED */
1258
- );
1259
- const _hoisted_11 = { class: "bean-list" };
1260
- const _hoisted_12 = { class: "counts number" };
1261
- const _hoisted_13 = { class: "title" };
1262
- const _hoisted_14 = { class: "operation-title spa-between" };
1263
- const _hoisted_15 = { class: "search-time" };
1264
- const _hoisted_16 = /* @__PURE__ */ createElementVNode(
1436
+ const _hoisted_8 = { class: "search-time" };
1437
+ const _hoisted_9 = /* @__PURE__ */ createElementVNode(
1265
1438
  "div",
1266
1439
  { class: "title" },
1267
1440
  "\u6536\u652F\u660E\u7EC6",
1268
1441
  -1
1269
1442
  /* HOISTED */
1270
1443
  );
1271
- const _hoisted_17 = { class: "text" };
1272
- const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1444
+ const _hoisted_10 = { class: "text number" };
1445
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode(
1273
1446
  "img",
1274
1447
  {
1448
+ style: { "margin-top": "-2px" },
1275
1449
  class: "time-icon",
1276
1450
  src: "https://cdn.ddjf.com/static/images/bpms-workBench/clound-bean-down.png"
1277
1451
  },
@@ -1279,14 +1453,14 @@ const _hoisted_18 = /* @__PURE__ */ createElementVNode(
1279
1453
  -1
1280
1454
  /* HOISTED */
1281
1455
  );
1282
- const _hoisted_19 = /* @__PURE__ */ createElementVNode(
1456
+ const _hoisted_12 = /* @__PURE__ */ createElementVNode(
1283
1457
  "span",
1284
1458
  { class: "text" },
1285
1459
  "\u7B5B\u9009",
1286
1460
  -1
1287
1461
  /* HOISTED */
1288
1462
  );
1289
- const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1463
+ const _hoisted_13 = /* @__PURE__ */ createElementVNode(
1290
1464
  "img",
1291
1465
  {
1292
1466
  class: "time-icon",
@@ -1296,83 +1470,61 @@ const _hoisted_20 = /* @__PURE__ */ createElementVNode(
1296
1470
  -1
1297
1471
  /* HOISTED */
1298
1472
  );
1299
- const _hoisted_21 = [
1300
- _hoisted_19,
1301
- _hoisted_20
1473
+ const _hoisted_14 = [
1474
+ _hoisted_12,
1475
+ _hoisted_13
1302
1476
  ];
1303
- const _hoisted_22 = { class: "operation-list" };
1304
- const _hoisted_23 = {
1477
+ const _hoisted_15 = { class: "operation-list" };
1478
+ const _hoisted_16 = {
1305
1479
  key: 0,
1306
1480
  class: "box"
1307
1481
  };
1308
- const _hoisted_24 = { class: "title" };
1309
- const _hoisted_25 = { class: "item-type" };
1310
- const _hoisted_26 = { class: "item-detail" };
1311
- const _hoisted_27 = { class: "item-info spa-between" };
1312
- const _hoisted_28 = { class: "item-info-type" };
1313
- const _hoisted_29 = { class: "item-info-title" };
1314
- const _hoisted_30 = { class: "item-info-amount number" };
1315
- const _hoisted_31 = { class: "item-detail-remark" };
1316
- const _hoisted_32 = /* @__PURE__ */ createElementVNode(
1317
- "div",
1318
- { class: "box-not-text" },
1319
- "\u6CA1\u6709\u66F4\u591A\u4E86",
1320
- -1
1321
- /* HOISTED */
1322
- );
1323
- const _hoisted_33 = {
1324
- key: 1,
1325
- 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"
1326
1493
  };
1327
- const _hoisted_34 = /* @__PURE__ */ createElementVNode(
1328
- "img",
1329
- {
1330
- class: "operations-empty-img",
1331
- src: "https://cdn.ddjf.com/static/images/fnfundkit/bean-no-thing.png"
1332
- },
1333
- null,
1334
- -1
1335
- /* HOISTED */
1336
- );
1337
- const _hoisted_35 = /* @__PURE__ */ createElementVNode(
1338
- "div",
1339
- { class: "operations-empty-text" },
1340
- "\u6682\u65E0\u6570\u636E",
1341
- -1
1342
- /* HOISTED */
1343
- );
1344
- const _hoisted_36 = [
1345
- _hoisted_34,
1346
- _hoisted_35
1347
- ];
1348
1494
  var script$1 = /* @__PURE__ */ defineComponent({
1349
1495
  __name: "AccountView",
1350
1496
  emits: ["recharge"],
1351
1497
  setup(__props, { emit: __emit }) {
1498
+ const safeArea = useSafeArea();
1352
1499
  const emit = __emit;
1353
1500
  const filterOpen = ref(false);
1354
1501
  const rulesPopupOpen = ref(false);
1355
1502
  const filtering = reactive({
1356
- position: "\u5168\u90E8",
1357
- direction: "\u5168\u90E8",
1358
- 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: "",
1359
1507
  dateFrom: "",
1360
- dateTo: ""
1508
+ dateTo: "",
1509
+ page: 1,
1510
+ pageSize: 20
1361
1511
  });
1512
+ const reachedLastPage = ref(false);
1513
+ function restartSearch() {
1514
+ filtering.page = 1;
1515
+ consumptionGroups.value = [];
1516
+ loadConsumptions();
1517
+ }
1362
1518
  const datePickerOpen = ref(false);
1363
1519
  function openDateFilter() {
1364
1520
  datePickerOpen.value = true;
1365
1521
  }
1366
- const dataRangeDisplay = computed(() => {
1522
+ const dateRangeDisplay = computed(() => {
1367
1523
  let startTime = filtering.dateFrom?.replace(/-/g, ".").substring(2);
1368
1524
  let endTime = filtering.dateTo?.replace(/-/g, ".").substring(2);
1369
1525
  return startTime + " - " + endTime;
1370
1526
  });
1371
- const consumptionGroups = ref({
1372
- from: "",
1373
- to: "",
1374
- list: []
1375
- });
1527
+ const consumptionGroups = ref([]);
1376
1528
  const balance = ref({
1377
1529
  total: 0,
1378
1530
  privileges: []
@@ -1381,46 +1533,73 @@ var script$1 = /* @__PURE__ */ defineComponent({
1381
1533
  Taro.setNavigationBarTitle({
1382
1534
  title: "\u6211\u7684\u8D26\u6237"
1383
1535
  });
1384
- loadConsumptions(true);
1536
+ loadConsumptions();
1385
1537
  loadBalance();
1386
1538
  });
1387
- async function loadConsumptions(firstTime) {
1388
- 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();
1389
1561
  Taro.showLoading({
1390
1562
  title: `\u52A0\u8F7D\u4E2D...`,
1391
1563
  mask: true
1392
1564
  });
1393
- $http.get(endpoints.getOperations, filtering).then((data) => {
1394
- consumptionGroups.value = data;
1395
- if (firstTime) {
1396
- filtering.dateFrom = data.from;
1397
- 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;
1398
1572
  }
1573
+ Taro.hideLoading();
1399
1574
  });
1400
- Taro.hideLoading();
1401
1575
  }
1402
1576
  async function loadBalance() {
1403
- const $http = makeHttp();
1404
- $http.get(endpoints.getBalance, {}).then((data) => {
1577
+ const $http = useHttp();
1578
+ $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {}).then((data) => {
1405
1579
  balance.value = data;
1406
1580
  });
1407
1581
  }
1408
1582
  const onFilterComplete = (value) => {
1409
- filtering.position = value[0];
1410
- filtering.direction = value[1];
1411
- 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];
1412
1587
  filterOpen.value = false;
1413
- loadConsumptions();
1588
+ restartSearch();
1414
1589
  };
1415
1590
  const onDateFilterComplete = (value) => {
1416
1591
  filtering.dateFrom = value.from;
1417
1592
  filtering.dateTo = value.to;
1418
1593
  datePickerOpen.value = false;
1419
- loadConsumptions();
1594
+ restartSearch();
1420
1595
  };
1421
1596
  function gotoRecharge() {
1422
1597
  emit("recharge");
1423
1598
  }
1599
+ function loadNextPage() {
1600
+ filtering.page++;
1601
+ loadConsumptions(true);
1602
+ }
1424
1603
  const scrollY = ref(0);
1425
1604
  usePageScroll((e) => {
1426
1605
  const { scrollTop } = e;
@@ -1436,9 +1615,29 @@ var script$1 = /* @__PURE__ */ defineComponent({
1436
1615
  Taro.stopPullDownRefresh();
1437
1616
  }, 500);
1438
1617
  });
1618
+ useReachBottom(() => {
1619
+ if (reachedLastPage.value) {
1620
+ return false;
1621
+ }
1622
+ loadNextPage();
1623
+ });
1439
1624
  const popupOpen = computed(() => {
1440
1625
  return rulesPopupOpen.value || datePickerOpen.value || filterOpen.value;
1441
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
+ });
1442
1641
  return (_ctx, _cache) => {
1443
1642
  const _component_nut_popup = resolveComponent("nut-popup");
1444
1643
  return openBlock(), createElementBlock(
@@ -1448,111 +1647,94 @@ var script$1 = /* @__PURE__ */ defineComponent({
1448
1647
  createElementVNode(
1449
1648
  "div",
1450
1649
  {
1451
- class: normalizeClass(["consumption-view", { popupOpen: popupOpen.value }])
1650
+ class: normalizeClass(["account-view", { popupOpen: popupOpen.value }])
1452
1651
  },
1453
1652
  [
1454
- createElementVNode("div", _hoisted_1$1, [
1455
- createElementVNode("div", _hoisted_2$1, [
1456
- createElementVNode("div", _hoisted_3$1, [
1457
- createElementVNode("div", _hoisted_4$1, [
1458
- _hoisted_5$1,
1459
- createElementVNode("div", {
1460
- class: "rule",
1461
- onClick: _cache[0] || (_cache[0] = ($event) => rulesPopupOpen.value = true)
1462
- }, "\u89C4\u5219\u8BF4\u660E")
1463
- ]),
1464
- createElementVNode("div", _hoisted_6, [
1465
- createElementVNode(
1466
- "div",
1467
- _hoisted_7,
1468
- toDisplayString(balance.value.total || 0),
1469
- 1
1470
- /* TEXT */
1471
- ),
1472
- createElementVNode("div", {
1473
- class: "pay",
1474
- onClick: gotoRecharge
1475
- }, "\u4E91\u8C46\u5145\u503C")
1476
- ])
1477
- ]),
1478
- _hoisted_8,
1479
- balance.value.privileges.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9, [
1480
- _hoisted_10,
1481
- createElementVNode("div", _hoisted_11, [
1482
- (openBlock(true), createElementBlock(
1483
- Fragment,
1484
- null,
1485
- renderList(balance.value.privileges, (item) => {
1486
- return openBlock(), createElementBlock("div", {
1487
- key: item,
1488
- class: "bean-list-item"
1489
- }, [
1490
- createElementVNode(
1491
- "div",
1492
- _hoisted_12,
1493
- toDisplayString(item.amount),
1494
- 1
1495
- /* TEXT */
1496
- ),
1497
- createElementVNode(
1498
- "div",
1499
- _hoisted_13,
1500
- toDisplayString(item.title),
1501
- 1
1502
- /* TEXT */
1503
- )
1504
- ]);
1505
- }),
1506
- 128
1507
- /* KEYED_FRAGMENT */
1508
- ))
1509
- ])
1510
- ])) : createCommentVNode("v-if", true)
1511
- ])
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])
1512
1663
  ]),
1513
- createElementVNode("div", _hoisted_14, [
1514
- createElementVNode("div", _hoisted_15, [
1515
- _hoisted_16,
1516
- withDirectives(createElementVNode(
1517
- "div",
1518
- {
1519
- class: "time",
1520
- onClick: openDateFilter
1521
- },
1522
- [
1523
- createElementVNode(
1524
- "div",
1525
- _hoisted_17,
1526
- toDisplayString(dataRangeDisplay.value),
1527
- 1
1528
- /* TEXT */
1529
- ),
1530
- _hoisted_18
1531
- ],
1532
- 512
1533
- /* NEED_PATCH */
1534
- ), [
1535
- [vShow, filtering.dateFrom]
1536
- ])
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")
1537
1671
  ]),
1538
- createElementVNode("div", {
1539
- class: "search",
1540
- onClick: _cache[1] || (_cache[1] = ($event) => filterOpen.value = true)
1541
- }, [..._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
+ ])
1542
1685
  ]),
1543
- createElementVNode("div", _hoisted_22, [
1544
- 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, [
1545
1727
  (openBlock(true), createElementBlock(
1546
1728
  Fragment,
1547
1729
  null,
1548
- renderList(consumptionGroups.value.list, (item, index) => {
1730
+ renderList(consumptionGroups.value, (item, index) => {
1549
1731
  return openBlock(), createElementBlock("div", {
1550
1732
  class: "box-detail",
1551
1733
  key: index
1552
1734
  }, [
1553
1735
  createElementVNode(
1554
1736
  "div",
1555
- _hoisted_24,
1737
+ _hoisted_17,
1556
1738
  toDisplayString(item.date),
1557
1739
  1
1558
1740
  /* TEXT */
@@ -1567,24 +1749,24 @@ var script$1 = /* @__PURE__ */ defineComponent({
1567
1749
  }, [
1568
1750
  createElementVNode(
1569
1751
  "div",
1570
- _hoisted_25,
1571
- toDisplayString(it.type),
1752
+ _hoisted_18,
1753
+ toDisplayString(it.\u4EA4\u6613\u7C7B\u578B),
1572
1754
  1
1573
1755
  /* TEXT */
1574
1756
  ),
1575
- createElementVNode("div", _hoisted_26, [
1576
- createElementVNode("div", _hoisted_27, [
1757
+ createElementVNode("div", _hoisted_19, [
1758
+ createElementVNode("div", _hoisted_20, [
1577
1759
  createElementVNode("div", null, [
1578
1760
  createElementVNode(
1579
1761
  "div",
1580
- _hoisted_28,
1581
- toDisplayString(it.position),
1762
+ _hoisted_21,
1763
+ toDisplayString(it.\u8D26\u6237\u7C7B\u578B),
1582
1764
  1
1583
1765
  /* TEXT */
1584
1766
  ),
1585
1767
  createElementVNode(
1586
1768
  "div",
1587
- _hoisted_29,
1769
+ _hoisted_22,
1588
1770
  toDisplayString(it.title),
1589
1771
  1
1590
1772
  /* TEXT */
@@ -1592,15 +1774,15 @@ var script$1 = /* @__PURE__ */ defineComponent({
1592
1774
  ]),
1593
1775
  createElementVNode(
1594
1776
  "div",
1595
- _hoisted_30,
1596
- 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),
1597
1779
  1
1598
1780
  /* TEXT */
1599
1781
  )
1600
1782
  ]),
1601
1783
  createElementVNode(
1602
1784
  "div",
1603
- _hoisted_31,
1785
+ _hoisted_24,
1604
1786
  toDisplayString(it.description),
1605
1787
  1
1606
1788
  /* TEXT */
@@ -1616,8 +1798,8 @@ var script$1 = /* @__PURE__ */ defineComponent({
1616
1798
  128
1617
1799
  /* KEYED_FRAGMENT */
1618
1800
  )),
1619
- _hoisted_32
1620
- ])) : (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 }))
1621
1803
  ])
1622
1804
  ],
1623
1805
  2
@@ -1630,7 +1812,7 @@ var script$1 = /* @__PURE__ */ defineComponent({
1630
1812
  "close-on-click-overlay": false
1631
1813
  }, {
1632
1814
  default: withCtx(() => [
1633
- createVNode(script$2, {
1815
+ createVNode(script$4, {
1634
1816
  onComplete: _cache[2] || (_cache[2] = ($event) => rulesPopupOpen.value = false)
1635
1817
  })
1636
1818
  ]),
@@ -1646,10 +1828,11 @@ var script$1 = /* @__PURE__ */ defineComponent({
1646
1828
  "onUpdate:visible": _cache[4] || (_cache[4] = ($event) => datePickerOpen.value = $event)
1647
1829
  }, {
1648
1830
  default: withCtx(() => [
1649
- datePickerOpen.value ? (openBlock(), createBlock(script$3, {
1831
+ datePickerOpen.value ? (openBlock(), createBlock(script$5, {
1650
1832
  key: 0,
1651
1833
  from: filtering.dateFrom,
1652
1834
  to: filtering.dateTo,
1835
+ onReset: onDateReset,
1653
1836
  onComplete: onDateFilterComplete
1654
1837
  }, null, 8, ["from", "to"])) : createCommentVNode("v-if", true)
1655
1838
  ]),
@@ -1658,25 +1841,39 @@ var script$1 = /* @__PURE__ */ defineComponent({
1658
1841
  }, 8, ["visible"]),
1659
1842
  createVNode(_component_nut_popup, {
1660
1843
  position: "bottom",
1661
- style: { height: "70%" },
1844
+ style: { height: "75%" },
1662
1845
  round: "",
1663
1846
  "close-on-click-overlay": true,
1664
1847
  visible: filterOpen.value,
1665
1848
  "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => filterOpen.value = $event)
1666
1849
  }, {
1667
1850
  default: withCtx(() => [
1668
- createVNode(script$4, {
1851
+ createVNode(script$6, {
1669
1852
  modelValue: [
1670
- filtering.position,
1671
- filtering.direction,
1672
- 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
1673
1857
  ],
1674
1858
  onComplete: onFilterComplete
1675
1859
  }, null, 8, ["modelValue"])
1676
1860
  ]),
1677
1861
  _: 1
1678
1862
  /* STABLE */
1679
- }, 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"])
1680
1877
  ],
1681
1878
  64
1682
1879
  /* STABLE_FRAGMENT */
@@ -1768,9 +1965,7 @@ const nutComponents = [
1768
1965
  Checkbox,
1769
1966
  Popup,
1770
1967
  OverLay,
1771
- Icon,
1772
- DatePicker,
1773
- Picker
1968
+ DatePicker
1774
1969
  ];
1775
1970
  const appComponents = {
1776
1971
  ...components
@@ -1815,4 +2010,4 @@ const AppKit = {
1815
2010
  }
1816
2011
  };
1817
2012
 
1818
- 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 };