@uxda/appkit 1.2.30 → 1.2.34

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/appkit.css CHANGED
@@ -94,6 +94,49 @@
94
94
  flex-grow: 1;
95
95
  overflow: scroll;
96
96
  }
97
+ .dd-notice-bar {
98
+ position: fixed;
99
+ top: 0;
100
+ left: 0;
101
+ z-index: 10;
102
+ font-size: 13px;
103
+ color: #ea5959;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ width: 100%;
108
+ min-height: 30px;
109
+ line-height: 18px;
110
+ padding: 6px 18px;
111
+ background: #ffe8d8;
112
+ box-sizing: border-box;
113
+ }
114
+ .dd-notice-bar__close {
115
+ width: 22px;
116
+ height: 22px;
117
+ display: flex;
118
+ margin-right: -6px;
119
+ margin-left: 6px;
120
+ justify-content: center;
121
+ align-items: center;
122
+ }
123
+ .dd-notice-bar__close-img {
124
+ width: 10px;
125
+ height: 10px;
126
+ }
127
+ .dd-notice-bar.close {
128
+ justify-content: space-between;
129
+ color: #fb970c;
130
+ background: #fff2d8;
131
+ }
132
+ .dd-notice-bar.close .dd-notice-bar__txt {
133
+ text-align: left;
134
+ }
135
+ .dd-notice-bar__txt {
136
+ flex: 1;
137
+ text-align: center;
138
+ opacity: 0.8;
139
+ }
97
140
  .recharge-view {
98
141
  height: 100%;
99
142
  display: flex;
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createTextVNode, createStaticVNode, ref, createCommentVNode, renderSlot, createVNode, onMounted, unref, computed, watch, withDirectives, vShow, normalizeStyle, vModelText } from 'vue';
1
+ import { defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createTextVNode, createStaticVNode, ref, createCommentVNode, renderSlot, createVNode, normalizeStyle, computed, onMounted, unref, watch, withDirectives, vShow, vModelText } from 'vue';
2
2
  import Taro, { useDidShow } from '@tarojs/taro';
3
3
  import dayjs from 'dayjs';
4
4
  import _ from 'lodash';
5
5
 
6
- const _hoisted_1$j = { class: "token-line number" };
7
- const _hoisted_2$f = { class: "number" };
8
- var script$k = /* @__PURE__ */ defineComponent({
6
+ const _hoisted_1$k = { class: "token-line number" };
7
+ const _hoisted_2$g = { class: "number" };
8
+ var script$m = /* @__PURE__ */ defineComponent({
9
9
  __name: "AmountPicker",
10
10
  props: {
11
11
  items: { type: Array, required: true, default: () => [] },
@@ -43,7 +43,7 @@ var script$k = /* @__PURE__ */ defineComponent({
43
43
  default: withCtx(() => [
44
44
  createElementVNode(
45
45
  "h4",
46
- _hoisted_1$j,
46
+ _hoisted_1$k,
47
47
  toDisplayString(amount.token),
48
48
  1
49
49
  /* TEXT */
@@ -52,7 +52,7 @@ var script$k = /* @__PURE__ */ defineComponent({
52
52
  createTextVNode("\xA5"),
53
53
  createElementVNode(
54
54
  "span",
55
- _hoisted_2$f,
55
+ _hoisted_2$g,
56
56
  toDisplayString(amount.amount),
57
57
  1
58
58
  /* TEXT */
@@ -74,21 +74,21 @@ var script$k = /* @__PURE__ */ defineComponent({
74
74
  }
75
75
  });
76
76
 
77
- script$k.__file = "src/payment/components/AmountPicker.vue";
77
+ script$m.__file = "src/payment/components/AmountPicker.vue";
78
78
 
79
- const _hoisted_1$i = { class: "agreement-doc" };
80
- const _hoisted_2$e = /* @__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:1\uFF08\u53731\u5143\u4EBA\u6C11\u5E01=1\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$j = { class: "agreement-doc" };
80
+ const _hoisted_2$f = /* @__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:1\uFF08\u53731\u5143\u4EBA\u6C11\u5E01=1\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);
81
81
  const _hoisted_98 = [
82
- _hoisted_2$e
82
+ _hoisted_2$f
83
83
  ];
84
84
  function render$1(_ctx, _cache) {
85
- return openBlock(), createElementBlock("view", _hoisted_1$i, [..._hoisted_98]);
85
+ return openBlock(), createElementBlock("view", _hoisted_1$j, [..._hoisted_98]);
86
86
  }
87
87
 
88
- const script$j = {};
88
+ const script$l = {};
89
89
 
90
- script$j.render = render$1;
91
- script$j.__file = "src/payment/components/UserAgreement.vue";
90
+ script$l.render = render$1;
91
+ script$l.__file = "src/payment/components/UserAgreement.vue";
92
92
 
93
93
  function requestPayment$2(json) {
94
94
  return new Promise((resolve, reject) => {
@@ -136,11 +136,11 @@ function useTabbar() {
136
136
  };
137
137
  }
138
138
 
139
- const _hoisted_1$h = {
139
+ const _hoisted_1$i = {
140
140
  key: 0,
141
141
  class: "page-title"
142
142
  };
143
- var script$i = /* @__PURE__ */ defineComponent({
143
+ var script$k = /* @__PURE__ */ defineComponent({
144
144
  __name: "PageHeader",
145
145
  props: {
146
146
  title: { type: String, required: false, default: "" },
@@ -170,7 +170,7 @@ var script$i = /* @__PURE__ */ defineComponent({
170
170
  [
171
171
  _ctx.title ? (openBlock(), createElementBlock(
172
172
  "h1",
173
- _hoisted_1$h,
173
+ _hoisted_1$i,
174
174
  toDisplayString(_ctx.title),
175
175
  1
176
176
  /* TEXT */
@@ -188,10 +188,10 @@ var script$i = /* @__PURE__ */ defineComponent({
188
188
  }
189
189
  });
190
190
 
191
- script$i.__file = "src/shared/components/PageHeader.vue";
191
+ script$k.__file = "src/shared/components/PageHeader.vue";
192
192
 
193
- const _hoisted_1$g = { class: "drawer-body" };
194
- var script$h = /* @__PURE__ */ defineComponent({
193
+ const _hoisted_1$h = { class: "drawer-body" };
194
+ var script$j = /* @__PURE__ */ defineComponent({
195
195
  __name: "AppDrawer",
196
196
  props: {
197
197
  modelValue: { type: Boolean, required: true },
@@ -215,11 +215,11 @@ var script$h = /* @__PURE__ */ defineComponent({
215
215
  "onUpdate:visible": onVisibleChange
216
216
  }, {
217
217
  default: withCtx(() => [
218
- createVNode(script$i, {
218
+ createVNode(script$k, {
219
219
  title: _ctx.title,
220
220
  onClose: onPageHeaderClose
221
221
  }, null, 8, ["title"]),
222
- createElementVNode("div", _hoisted_1$g, [
222
+ createElementVNode("div", _hoisted_1$h, [
223
223
  renderSlot(_ctx.$slots, "default")
224
224
  ])
225
225
  ]),
@@ -230,7 +230,312 @@ var script$h = /* @__PURE__ */ defineComponent({
230
230
  }
231
231
  });
232
232
 
233
- script$h.__file = "src/shared/components/AppDrawer.vue";
233
+ script$j.__file = "src/shared/components/AppDrawer.vue";
234
+
235
+ const _hoisted_1$g = { key: 0 };
236
+ const _hoisted_2$e = /* @__PURE__ */ createElementVNode(
237
+ "img",
238
+ {
239
+ src: "https://cdn.ddjf.com/static/images/wechat-yunservice/close-icon.png",
240
+ class: "dd-notice-bar__close-img"
241
+ },
242
+ null,
243
+ -1
244
+ /* HOISTED */
245
+ );
246
+ const _hoisted_3$d = [
247
+ _hoisted_2$e
248
+ ];
249
+ var script$i = /* @__PURE__ */ defineComponent({
250
+ __name: "index",
251
+ props: {
252
+ text: { type: String, required: true },
253
+ style: { type: [Object, String], required: false },
254
+ showClose: { type: Boolean, required: false }
255
+ },
256
+ emits: ["close", "txtClick"],
257
+ setup(__props, { emit: __emit }) {
258
+ const emit = __emit;
259
+ function close() {
260
+ emit("close");
261
+ }
262
+ function txtClick() {
263
+ emit("txtClick");
264
+ }
265
+ return (_ctx, _cache) => {
266
+ return openBlock(), createElementBlock(
267
+ "div",
268
+ {
269
+ class: normalizeClass(["dd-notice-bar", { close: _ctx.showClose }]),
270
+ style: normalizeStyle(_ctx.style)
271
+ },
272
+ [
273
+ createElementVNode("div", {
274
+ class: "dd-notice-bar__txt",
275
+ name: "text",
276
+ onClick: txtClick
277
+ }, [
278
+ _ctx.text ? (openBlock(), createElementBlock(
279
+ "span",
280
+ _hoisted_1$g,
281
+ toDisplayString(_ctx.text),
282
+ 1
283
+ /* TEXT */
284
+ )) : createCommentVNode("v-if", true),
285
+ renderSlot(_ctx.$slots, "default")
286
+ ]),
287
+ _ctx.showClose ? (openBlock(), createElementBlock("div", {
288
+ key: 0,
289
+ class: "dd-notice-bar__close",
290
+ onClick: close
291
+ }, [..._hoisted_3$d])) : createCommentVNode("v-if", true)
292
+ ],
293
+ 6
294
+ /* CLASS, STYLE */
295
+ );
296
+ };
297
+ }
298
+ });
299
+
300
+ script$i.__file = "src/components/dd-notice-bar/index.vue";
301
+
302
+ const typeMappings = {
303
+ CZ: "\u5145\u503C",
304
+ JF: "\u7F34\u8D39",
305
+ FE: "\u8FD4\u989D",
306
+ ZJ: "\u589E\u52A0",
307
+ KJ: "\u6263\u51CF",
308
+ XH: "\u6D88\u8017",
309
+ TH: "\u9000\u56DE",
310
+ ZS: "\u8D60\u9001",
311
+ HG: "\u6362\u8D2D"
312
+ };
313
+ const typeMappingsReversed = Object.fromEntries(
314
+ Object.entries(typeMappings).map(([x, y]) => [y, x])
315
+ );
316
+ const positionMappings = {
317
+ common: "\u4E91\u8C46",
318
+ rights: "\u5C0F\u4E91\u8C46",
319
+ gift: "\u6743\u76CA"
320
+ };
321
+ const positionMappingsReversed = Object.fromEntries(
322
+ Object.entries(positionMappings).map(([x, y]) => [y, x])
323
+ );
324
+ const directionMappings = {
325
+ 0: "\u6536\u5165",
326
+ 1: "\u652F\u51FA"
327
+ };
328
+ const directionMappingsReversed = Object.fromEntries(
329
+ Object.entries(directionMappings).map(([x, y]) => [y, x])
330
+ );
331
+ const endpointsList$1 = {
332
+ \u83B7\u53D6\u4F59\u989D\u660E\u7EC6: {
333
+ path: "/ac-app/account/info/detail/app",
334
+ // /app
335
+ translate: (data) => ({
336
+ appCode: data.app
337
+ }),
338
+ transform(result) {
339
+ return {
340
+ total: result.commonAccount,
341
+ privileges: result.rightsAccountBalList.map((r) => ({
342
+ title: r.rightsName,
343
+ count: r.rightsAccount,
344
+ unit: r.rightsUnit,
345
+ appCode: r.appCode,
346
+ id: r.activityId
347
+ }))
348
+ };
349
+ }
350
+ },
351
+ \u83B7\u53D6\u8D26\u6237\u6D41\u6C34: {
352
+ path: "/ac-app/account/record/detail/mobile",
353
+ translate: (data) => {
354
+ return {
355
+ appCode: data.app,
356
+ accountType: positionMappingsReversed[data.\u8D26\u6237\u7C7B\u578B] || "",
357
+ inOrOut: directionMappingsReversed[data.\u6536\u5165\u8FD8\u662F\u652F\u51FA] || "",
358
+ changeType: typeMappingsReversed[data.\u4EA4\u6613\u7C7B\u578B] || "",
359
+ operateTimeStart: data.dateFrom || "",
360
+ operateTimeEnd: data.dateTo || "",
361
+ rightsCode: data.\u6743\u76CA\u7C7B\u76EE,
362
+ pageNum: data.page,
363
+ pageSize: 10
364
+ };
365
+ },
366
+ transform(response) {
367
+ const data = response.list.map((d) => ({
368
+ \u8D26\u6237\u7C7B\u578B: positionMappings[d.accountType],
369
+ \u4EA4\u6613\u7C7B\u578B: typeMappings[d.changeType],
370
+ \u6536\u5165\u8FD8\u662F\u652F\u51FA: directionMappings[d.inOrOut],
371
+ amount: d.changeValue,
372
+ title: d.rightsName,
373
+ time: Date.parse(d.operateTime),
374
+ // 后台返回的是日期字符串,这里格式化成 timestamp
375
+ description: d.remark
376
+ }));
377
+ return data;
378
+ }
379
+ },
380
+ \u83B7\u53D6\u6743\u76CA\u7C7B\u76EE: {
381
+ path: "/ac-app/rights/item/list",
382
+ translate: (data) => ({
383
+ appCode: data.app
384
+ }),
385
+ // translate (data: ConsumptionFiltering) {
386
+ // // return { appCode: data.appCode }
387
+ // },
388
+ transform: (data) => data.map((d) => ({
389
+ name: d.rightsName,
390
+ code: d.rightsCode
391
+ }))
392
+ }
393
+ };
394
+ const endpoints$1 = Object.fromEntries(
395
+ Object.entries(endpointsList$1).map(([name, def]) => [name, def.path])
396
+ );
397
+ const translates$1 = Object.fromEntries(
398
+ Object.entries(endpointsList$1).map(([, def]) => [def.path, def.translate])
399
+ );
400
+ const transforms$1 = Object.fromEntries(
401
+ Object.entries(endpointsList$1).map(([, def]) => [def.path, def.transform])
402
+ );
403
+
404
+ const globalData = {};
405
+
406
+ const appKitOptions = {
407
+ app: () => "",
408
+ tenant: () => "",
409
+ token: () => "",
410
+ tempToken: () => "",
411
+ baseUrl: () => "",
412
+ 401() {
413
+ },
414
+ gray: () => ""
415
+ };
416
+ const useAppKitOptions = () => {
417
+ if (!globalData.$appKitOptions) {
418
+ globalData.$appKitOptions = appKitOptions;
419
+ }
420
+ return globalData.$appKitOptions;
421
+ };
422
+
423
+ const vendor$1 = {
424
+ async request(config) {
425
+ return new Promise((resolve, reject) => {
426
+ Taro.request({
427
+ url: config.url,
428
+ method: config.method,
429
+ header: config.headers,
430
+ data: config.data
431
+ }).then(({ data }) => {
432
+ resolve({
433
+ status: +data.code,
434
+ message: data.msg,
435
+ data: data.result
436
+ });
437
+ }).catch((e) => {
438
+ reject(e);
439
+ });
440
+ });
441
+ }
442
+ };
443
+ function useHttp$1() {
444
+ const appkitOptions = useAppKitOptions();
445
+ const headers = {
446
+ Token: appkitOptions.tempToken() || appkitOptions.token(),
447
+ Appcode: appkitOptions.app(),
448
+ cookie: `tid=${appkitOptions.tenant()}`,
449
+ gray: appkitOptions.gray ? appkitOptions.gray() : "0"
450
+ };
451
+ const $http = createHttp({
452
+ vendor: vendor$1,
453
+ baseUrl: appkitOptions.baseUrl(),
454
+ headers,
455
+ interceptors: [
456
+ (raw) => {
457
+ if (raw.status == 401) {
458
+ appkitOptions[401]();
459
+ return true;
460
+ }
461
+ return false;
462
+ },
463
+ (raw) => {
464
+ if (raw.status > 500) {
465
+ return true;
466
+ }
467
+ return false;
468
+ }
469
+ ],
470
+ paging: {
471
+ translate: (params) => ({
472
+ pageNum: params.page,
473
+ pageSize: params.pageSize
474
+ }),
475
+ transform(data) {
476
+ return {
477
+ totalPages: data.pages
478
+ };
479
+ }
480
+ },
481
+ translates: translates$1,
482
+ transforms: transforms$1
483
+ });
484
+ return $http;
485
+ }
486
+
487
+ var script$h = /* @__PURE__ */ defineComponent({
488
+ __name: "DeviceVersion",
489
+ setup(__props) {
490
+ const showAlert = ref(false);
491
+ const safeArea = useSafeArea();
492
+ const topStype = computed(() => {
493
+ return `top: ${safeArea.nav + safeArea.status}px;`;
494
+ });
495
+ onMounted(async () => {
496
+ await getPropertieByCode();
497
+ const systemInfo = Taro.getSystemInfoSync();
498
+ const version = systemInfo.SDKVersion;
499
+ function compareVersion(v1, v2) {
500
+ const v1Arr = v1.split(".").map(Number);
501
+ const v2Arr = v2.split(".").map(Number);
502
+ for (let i = 0; i < v1Arr.length || i < v2Arr.length; i++) {
503
+ if ((v1Arr[i] || 0) > (v2Arr[i] || 0)) {
504
+ return true;
505
+ } else if ((v1Arr[i] || 0) < (v2Arr[i] || 0)) {
506
+ return false;
507
+ }
508
+ }
509
+ return false;
510
+ }
511
+ if (!compareVersion(version, recommendVersions.value?.Mini || "2.24.0")) {
512
+ showAlert.value = true;
513
+ }
514
+ });
515
+ const recommendVersions = ref();
516
+ async function getPropertieByCode() {
517
+ if (recommendVersions.value)
518
+ return;
519
+ const $http = useHttp$1();
520
+ $http.get("/cas/properties/getPropertie", {
521
+ code: "pcRecommendVersion"
522
+ }).then((res) => {
523
+ recommendVersions.value = JSON.parse(res.value || "{}");
524
+ });
525
+ }
526
+ return (_ctx, _cache) => {
527
+ return showAlert.value ? (openBlock(), createBlock(script$i, {
528
+ key: 0,
529
+ showClose: "",
530
+ style: normalizeStyle(topStype.value),
531
+ onClose: _cache[0] || (_cache[0] = ($event) => showAlert.value = !showAlert.value),
532
+ text: "\u60A8\u5F53\u524D\u4F7F\u7528\u7684\u5FAE\u4FE1\u5BA2\u6237\u7AEF\u7248\u672C\u8F83\u4F4E\uFF0C\u53EF\u80FD\u4E0D\u652F\u6301\u5168\u90E8\u529F\u80FD\u6216\u4F53\u9A8C\u6548\u679C\u53EF\u80FD\u4E0D\u4F73\uFF0C\u5EFA\u8BAE\u81F3\u5E94\u7528\u5546\u5E97\u6216App Store\u5347\u7EA7\u81F3\u6700\u65B0\u7248\u672C\u3002"
533
+ }, null, 8, ["style"])) : createCommentVNode("v-if", true);
534
+ };
535
+ }
536
+ });
537
+
538
+ script$h.__file = "src/shared/components/DeviceVersion.vue";
234
539
 
235
540
  var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
236
541
  HttpMethod2["get"] = "GET";
@@ -313,7 +618,7 @@ function createHttp(config) {
313
618
  };
314
619
  }
315
620
 
316
- const endpointsList$1 = {
621
+ const endpointsList = {
317
622
  /**
318
623
  * 获取充值套餐包列表
319
624
  * (查询某应用某场景可充值的金额列表)
@@ -396,36 +701,17 @@ const endpointsList$1 = {
396
701
  transform: (data) => data
397
702
  }
398
703
  };
399
- const endpoints$1 = Object.fromEntries(
400
- Object.entries(endpointsList$1).map(([name, def]) => [name, def.path])
704
+ const endpoints = Object.fromEntries(
705
+ Object.entries(endpointsList).map(([name, def]) => [name, def.path])
401
706
  );
402
- const translates$1 = Object.fromEntries(
403
- Object.entries(endpointsList$1).map(([, def]) => [def.path, def.translate])
707
+ const translates = Object.fromEntries(
708
+ Object.entries(endpointsList).map(([, def]) => [def.path, def.translate])
404
709
  );
405
- const transforms$1 = Object.fromEntries(
406
- Object.entries(endpointsList$1).map(([, def]) => [def.path, def.transform])
710
+ const transforms = Object.fromEntries(
711
+ Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
407
712
  );
408
713
 
409
- const globalData = {};
410
-
411
- const appKitOptions = {
412
- app: () => "",
413
- tenant: () => "",
414
- token: () => "",
415
- tempToken: () => "",
416
- baseUrl: () => "",
417
- 401() {
418
- },
419
- gray: () => ""
420
- };
421
- const useAppKitOptions = () => {
422
- if (!globalData.$appKitOptions) {
423
- globalData.$appKitOptions = appKitOptions;
424
- }
425
- return globalData.$appKitOptions;
426
- };
427
-
428
- const vendor$1 = {
714
+ const vendor = {
429
715
  async request(config) {
430
716
  return new Promise((resolve, reject) => {
431
717
  Taro.request({
@@ -445,7 +731,7 @@ const vendor$1 = {
445
731
  });
446
732
  }
447
733
  };
448
- function useHttp$1() {
734
+ function useHttp() {
449
735
  const appkitOptions = useAppKitOptions();
450
736
  const headers = {
451
737
  Token: appkitOptions.tempToken() || appkitOptions.token(),
@@ -454,7 +740,7 @@ function useHttp$1() {
454
740
  gray: appkitOptions.gray ? appkitOptions.gray() : "0"
455
741
  };
456
742
  const $http = createHttp({
457
- vendor: vendor$1,
743
+ vendor,
458
744
  baseUrl: appkitOptions.baseUrl(),
459
745
  headers,
460
746
  interceptors: [
@@ -472,8 +758,8 @@ function useHttp$1() {
472
758
  return false;
473
759
  }
474
760
  ],
475
- translates: translates$1,
476
- transforms: transforms$1
761
+ translates,
762
+ transforms
477
763
  });
478
764
  return $http;
479
765
  }
@@ -501,8 +787,8 @@ var invokeRecharge$1 = {
501
787
 
502
788
  const requestPayment = (params) => {
503
789
  return new Promise((resolve, reject) => {
504
- const $http = useHttp$1();
505
- $http.post(endpoints$1.\u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305, {
790
+ const $http = useHttp();
791
+ $http.post(endpoints.\u83B7\u53D6\u5FAE\u4FE1\u652F\u4ED8\u53C2\u6570\u5305, {
506
792
  ...params
507
793
  // amount: 0.01,
508
794
  }).then((response) => {
@@ -518,8 +804,8 @@ const requestPayment = (params) => {
518
804
  };
519
805
  const requestPaymentByBean = (params) => {
520
806
  return new Promise((resolve, reject) => {
521
- const $http = useHttp$1();
522
- $http.post(endpoints$1.\u83B7\u53D6\u6743\u76CA\u5FAE\u4FE1\u652F\u4ED8, {
807
+ const $http = useHttp();
808
+ $http.post(endpoints.\u83B7\u53D6\u6743\u76CA\u5FAE\u4FE1\u652F\u4ED8, {
523
809
  ...params
524
810
  }).then((response) => {
525
811
  if (!response.json) {
@@ -579,8 +865,8 @@ var script$g = /* @__PURE__ */ defineComponent({
579
865
  state.selected = selected;
580
866
  };
581
867
  onMounted(() => {
582
- const $http = useHttp$1();
583
- $http.get(endpoints$1.\u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868, {
868
+ const $http = useHttp();
869
+ $http.get(endpoints.\u83B7\u53D6\u5145\u503C\u91D1\u989D\u5217\u8868, {
584
870
  app: props.app,
585
871
  // stage: 'aiApproveRecharge', // 支付场景
586
872
  tenant: props.tenant
@@ -620,7 +906,7 @@ var script$g = /* @__PURE__ */ defineComponent({
620
906
  const _component_nut_button = resolveComponent("nut-button");
621
907
  return openBlock(), createElementBlock("view", _hoisted_1$f, [
622
908
  createElementVNode("view", _hoisted_2$d, [
623
- createVNode(script$k, {
909
+ createVNode(script$m, {
624
910
  items: amounts.value,
625
911
  selected: state.selected,
626
912
  onChange: onAmountSelect
@@ -657,13 +943,13 @@ var script$g = /* @__PURE__ */ defineComponent({
657
943
  /* STABLE */
658
944
  }, 8, ["loading"])
659
945
  ]),
660
- createVNode(unref(script$h), {
946
+ createVNode(unref(script$j), {
661
947
  modelValue: state.agreementOpen,
662
948
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.agreementOpen = $event),
663
949
  title: "\u5145\u503C\u534F\u8BAE"
664
950
  }, {
665
951
  default: withCtx(() => [
666
- createVNode(script$j)
952
+ createVNode(script$l)
667
953
  ]),
668
954
  _: 1
669
955
  /* STABLE */
@@ -899,15 +1185,15 @@ var script$d = /* @__PURE__ */ defineComponent({
899
1185
  return amounts.value[state.selected] && !selectBean.value ? amounts.value[state.selected].paymentAmount : 0;
900
1186
  });
901
1187
  onMounted(() => {
902
- const $http = useHttp$1();
903
- $http.get(endpoints$1.\u83B7\u53D6\u589E\u503C\u6743\u76CA\u7C7B\u76EE).then((res) => {
1188
+ const $http = useHttp();
1189
+ $http.get(endpoints.\u83B7\u53D6\u589E\u503C\u6743\u76CA\u7C7B\u76EE).then((res) => {
904
1190
  balance.value = res.balance;
905
1191
  amounts.value = res.paymentCaseConfigVOS;
906
1192
  });
907
1193
  });
908
1194
  const showDialog = ref(false);
909
1195
  async function beanPay() {
910
- const $http = useHttp$1();
1196
+ const $http = useHttp();
911
1197
  $http.post(`/payment/paymentCaseConfig/purchase/${amounts.value[state.selected].id}`).then((response) => {
912
1198
  if (response) {
913
1199
  showDialog.value = false;
@@ -1043,13 +1329,13 @@ var script$d = /* @__PURE__ */ defineComponent({
1043
1329
  }, 8, ["loading"])
1044
1330
  ])
1045
1331
  ]),
1046
- createVNode(unref(script$h), {
1332
+ createVNode(unref(script$j), {
1047
1333
  modelValue: state.agreementOpen,
1048
1334
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => state.agreementOpen = $event),
1049
1335
  title: "\u5145\u503C\u534F\u8BAE"
1050
1336
  }, {
1051
1337
  default: withCtx(() => [
1052
- createVNode(script$j)
1338
+ createVNode(script$l)
1053
1339
  ]),
1054
1340
  _: 1
1055
1341
  /* STABLE */
@@ -1104,179 +1390,13 @@ var script$d = /* @__PURE__ */ defineComponent({
1104
1390
  script$d.__file = "src/payment/components/TradeView.vue";
1105
1391
 
1106
1392
  const components = {
1107
- AmountPicker: script$k,
1393
+ AmountPicker: script$m,
1108
1394
  RechargeView: script$g,
1109
- UserAgreement: script$j,
1395
+ UserAgreement: script$l,
1110
1396
  RechargeResult: script$f,
1111
1397
  TradeView: script$d
1112
1398
  };
1113
1399
 
1114
- const typeMappings = {
1115
- CZ: "\u5145\u503C",
1116
- JF: "\u7F34\u8D39",
1117
- FE: "\u8FD4\u989D",
1118
- ZJ: "\u589E\u52A0",
1119
- KJ: "\u6263\u51CF",
1120
- XH: "\u6D88\u8017",
1121
- TH: "\u9000\u56DE",
1122
- ZS: "\u8D60\u9001",
1123
- HG: "\u6362\u8D2D"
1124
- };
1125
- const typeMappingsReversed = Object.fromEntries(
1126
- Object.entries(typeMappings).map(([x, y]) => [y, x])
1127
- );
1128
- const positionMappings = {
1129
- common: "\u4E91\u8C46",
1130
- rights: "\u5C0F\u4E91\u8C46",
1131
- gift: "\u6743\u76CA"
1132
- };
1133
- const positionMappingsReversed = Object.fromEntries(
1134
- Object.entries(positionMappings).map(([x, y]) => [y, x])
1135
- );
1136
- const directionMappings = {
1137
- 0: "\u6536\u5165",
1138
- 1: "\u652F\u51FA"
1139
- };
1140
- const directionMappingsReversed = Object.fromEntries(
1141
- Object.entries(directionMappings).map(([x, y]) => [y, x])
1142
- );
1143
- const endpointsList = {
1144
- \u83B7\u53D6\u4F59\u989D\u660E\u7EC6: {
1145
- path: "/ac-app/account/info/detail/app",
1146
- // /app
1147
- translate: (data) => ({
1148
- appCode: data.app
1149
- }),
1150
- transform(result) {
1151
- return {
1152
- total: result.commonAccount,
1153
- privileges: result.rightsAccountBalList.map((r) => ({
1154
- title: r.rightsName,
1155
- count: r.rightsAccount,
1156
- unit: r.rightsUnit,
1157
- appCode: r.appCode,
1158
- id: r.activityId
1159
- }))
1160
- };
1161
- }
1162
- },
1163
- \u83B7\u53D6\u8D26\u6237\u6D41\u6C34: {
1164
- path: "/ac-app/account/record/detail/mobile",
1165
- translate: (data) => {
1166
- return {
1167
- appCode: data.app,
1168
- accountType: positionMappingsReversed[data.\u8D26\u6237\u7C7B\u578B] || "",
1169
- inOrOut: directionMappingsReversed[data.\u6536\u5165\u8FD8\u662F\u652F\u51FA] || "",
1170
- changeType: typeMappingsReversed[data.\u4EA4\u6613\u7C7B\u578B] || "",
1171
- operateTimeStart: data.dateFrom || "",
1172
- operateTimeEnd: data.dateTo || "",
1173
- rightsCode: data.\u6743\u76CA\u7C7B\u76EE,
1174
- pageNum: data.page,
1175
- pageSize: 10
1176
- };
1177
- },
1178
- transform(response) {
1179
- const data = response.list.map((d) => ({
1180
- \u8D26\u6237\u7C7B\u578B: positionMappings[d.accountType],
1181
- \u4EA4\u6613\u7C7B\u578B: typeMappings[d.changeType],
1182
- \u6536\u5165\u8FD8\u662F\u652F\u51FA: directionMappings[d.inOrOut],
1183
- amount: d.changeValue,
1184
- title: d.rightsName,
1185
- time: Date.parse(d.operateTime),
1186
- // 后台返回的是日期字符串,这里格式化成 timestamp
1187
- description: d.remark
1188
- }));
1189
- return data;
1190
- }
1191
- },
1192
- \u83B7\u53D6\u6743\u76CA\u7C7B\u76EE: {
1193
- path: "/ac-app/rights/item/list",
1194
- translate: (data) => ({
1195
- appCode: data.app
1196
- }),
1197
- // translate (data: ConsumptionFiltering) {
1198
- // // return { appCode: data.appCode }
1199
- // },
1200
- transform: (data) => data.map((d) => ({
1201
- name: d.rightsName,
1202
- code: d.rightsCode
1203
- }))
1204
- }
1205
- };
1206
- const endpoints = Object.fromEntries(
1207
- Object.entries(endpointsList).map(([name, def]) => [name, def.path])
1208
- );
1209
- const translates = Object.fromEntries(
1210
- Object.entries(endpointsList).map(([, def]) => [def.path, def.translate])
1211
- );
1212
- const transforms = Object.fromEntries(
1213
- Object.entries(endpointsList).map(([, def]) => [def.path, def.transform])
1214
- );
1215
-
1216
- const vendor = {
1217
- async request(config) {
1218
- return new Promise((resolve, reject) => {
1219
- Taro.request({
1220
- url: config.url,
1221
- method: config.method,
1222
- header: config.headers,
1223
- data: config.data
1224
- }).then(({ data }) => {
1225
- resolve({
1226
- status: +data.code,
1227
- message: data.msg,
1228
- data: data.result
1229
- });
1230
- }).catch((e) => {
1231
- reject(e);
1232
- });
1233
- });
1234
- }
1235
- };
1236
- function useHttp() {
1237
- const appkitOptions = useAppKitOptions();
1238
- const headers = {
1239
- Token: appkitOptions.tempToken() || appkitOptions.token(),
1240
- Appcode: appkitOptions.app(),
1241
- cookie: `tid=${appkitOptions.tenant()}`,
1242
- gray: appkitOptions.gray ? appkitOptions.gray() : "0"
1243
- };
1244
- const $http = createHttp({
1245
- vendor,
1246
- baseUrl: appkitOptions.baseUrl(),
1247
- headers,
1248
- interceptors: [
1249
- (raw) => {
1250
- if (raw.status == 401) {
1251
- appkitOptions[401]();
1252
- return true;
1253
- }
1254
- return false;
1255
- },
1256
- (raw) => {
1257
- if (raw.status > 500) {
1258
- return true;
1259
- }
1260
- return false;
1261
- }
1262
- ],
1263
- paging: {
1264
- translate: (params) => ({
1265
- pageNum: params.page,
1266
- pageSize: params.pageSize
1267
- }),
1268
- transform(data) {
1269
- return {
1270
- totalPages: data.pages
1271
- };
1272
- }
1273
- },
1274
- translates,
1275
- transforms
1276
- });
1277
- return $http;
1278
- }
1279
-
1280
1400
  const _hoisted_1$b = { class: "account-card" };
1281
1401
  const _hoisted_2$9 = { class: "card" };
1282
1402
  const _hoisted_3$8 = { class: "card-row" };
@@ -1380,8 +1500,8 @@ var script$c = /* @__PURE__ */ defineComponent({
1380
1500
  emit("recharge");
1381
1501
  };
1382
1502
  async function loadBalance() {
1383
- const $http = useHttp();
1384
- $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {
1503
+ const $http = useHttp$1();
1504
+ $http.get(endpoints$1.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {
1385
1505
  app: props.app
1386
1506
  }).then((data) => {
1387
1507
  balance.value = data;
@@ -1479,7 +1599,7 @@ var script$b = /* @__PURE__ */ defineComponent({
1479
1599
  },
1480
1600
  emits: ["complete"],
1481
1601
  setup(__props, { emit: __emit }) {
1482
- const $http = useHttp();
1602
+ const $http = useHttp$1();
1483
1603
  const props = __props;
1484
1604
  const emit = __emit;
1485
1605
  const result = reactive(props.modelValue);
@@ -1512,7 +1632,7 @@ var script$b = /* @__PURE__ */ defineComponent({
1512
1632
  result[3] = "";
1513
1633
  };
1514
1634
  const \u8BF7\u6C42\u6743\u76CA\u7C7B\u76EE = () => {
1515
- $http.get(endpoints.\u83B7\u53D6\u6743\u76CA\u7C7B\u76EE).then((data) => {
1635
+ $http.get(endpoints$1.\u83B7\u53D6\u6743\u76CA\u7C7B\u76EE).then((data) => {
1516
1636
  filterSections.value[3].data = [
1517
1637
  { code: "", name: "\u5168\u90E8" },
1518
1638
  ...data
@@ -2055,12 +2175,12 @@ var script$6 = /* @__PURE__ */ defineComponent({
2055
2175
  if (!append) {
2056
2176
  consumptionGroups.value = [];
2057
2177
  }
2058
- const $http = useHttp();
2178
+ const $http = useHttp$1();
2059
2179
  Taro.showLoading({
2060
2180
  title: `\u52A0\u8F7D\u4E2D...`,
2061
2181
  mask: true
2062
2182
  });
2063
- $http.get(endpoints.\u83B7\u53D6\u8D26\u6237\u6D41\u6C34, {
2183
+ $http.get(endpoints$1.\u83B7\u53D6\u8D26\u6237\u6D41\u6C34, {
2064
2184
  app: props.app,
2065
2185
  ...filtering
2066
2186
  }).then((response) => {
@@ -2075,8 +2195,8 @@ var script$6 = /* @__PURE__ */ defineComponent({
2075
2195
  });
2076
2196
  }
2077
2197
  async function loadBalance() {
2078
- const $http = useHttp();
2079
- $http.get(endpoints.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {
2198
+ const $http = useHttp$1();
2199
+ $http.get(endpoints$1.\u83B7\u53D6\u4F59\u989D\u660E\u7EC6, {
2080
2200
  app: props.app
2081
2201
  }).then((data) => {
2082
2202
  const { privileges, total } = data;
@@ -2165,7 +2285,7 @@ var script$6 = /* @__PURE__ */ defineComponent({
2165
2285
  [
2166
2286
  createElementVNode("div", _hoisted_1$5, [
2167
2287
  createElementVNode("div", _hoisted_2$3, [
2168
- createVNode(unref(script$i), {
2288
+ createVNode(unref(script$k), {
2169
2289
  "color-mode": "dark",
2170
2290
  title: "\u6211\u7684\u8D26\u6237",
2171
2291
  class: normalizeClass({ "with-background": scrolled.value > 0 }),
@@ -2339,7 +2459,7 @@ var script$6 = /* @__PURE__ */ defineComponent({
2339
2459
  _: 1
2340
2460
  /* STABLE */
2341
2461
  }, 8, ["visible"]),
2342
- createVNode(unref(script$h), {
2462
+ createVNode(unref(script$j), {
2343
2463
  modelValue: secondBalanceOpen.value,
2344
2464
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => secondBalanceOpen.value = $event),
2345
2465
  title: "\u6536\u652F\u660E\u7EC6"
@@ -3371,4 +3491,4 @@ const AppKit = {
3371
3491
  }
3372
3492
  };
3373
3493
 
3374
- export { script$6 as AccountView, script$k as AmountPicker, script$h as AppDrawer, script$c as BalanceCard, script$5 as BalanceReminder, script$i as PageHeader, script$f as RechargeResult, script$g as RechargeView, script as SelfRegistration, script$d as TradeView, script$j as UserAgreement, components, createHttp, AppKit as default, requestPayment$2 as requestPayment, services$1 as services, useAppKit, useSafeArea, useTabbar };
3494
+ export { script$6 as AccountView, script$m as AmountPicker, script$j as AppDrawer, script$c as BalanceCard, script$5 as BalanceReminder, script$h as DeviceVersion, script$k as PageHeader, script$f as RechargeResult, script$g as RechargeView, script as SelfRegistration, script$d as TradeView, script$l as UserAgreement, components, createHttp, AppKit as default, requestPayment$2 as requestPayment, services$1 as services, useAppKit, useSafeArea, useTabbar };
package/dist/main.css ADDED
@@ -0,0 +1,3 @@
1
+ var undefined$1 = undefined;
2
+
3
+ export { undefined$1 as default };
@@ -0,0 +1 @@
1
+ @import url(./styles/vars.scss);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxda/appkit",
3
- "version": "1.2.30",
3
+ "version": "1.2.34",
4
4
  "description": "小程序应用开发包",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.ts",
@@ -0,0 +1,76 @@
1
+ <script setup lang="ts">
2
+ const props = defineProps<{
3
+ text: string
4
+ style?: {} | string
5
+ showClose?: boolean
6
+ }>()
7
+
8
+ const emit = defineEmits(['close', 'txtClick'])
9
+ function close() {
10
+ emit('close')
11
+ }
12
+ function txtClick() {
13
+ emit('txtClick')
14
+ }
15
+ </script>
16
+
17
+ <template>
18
+ <div class="dd-notice-bar" :class="{ close: showClose }" :style="style">
19
+ <div class="dd-notice-bar__txt" name="text" @click="txtClick">
20
+ <span v-if="text">{{ text }}</span>
21
+ <slot></slot>
22
+ </div>
23
+ <div v-if="showClose" class="dd-notice-bar__close" @click="close">
24
+ <img
25
+ src="https://cdn.ddjf.com/static/images/wechat-yunservice/close-icon.png"
26
+ class="dd-notice-bar__close-img"
27
+ />
28
+ </div>
29
+ </div>
30
+ </template>
31
+
32
+ <style lang="scss">
33
+ .dd-notice-bar {
34
+ position: fixed;
35
+ top: 0;
36
+ left: 0;
37
+ z-index: 10;
38
+ font-size: 13px;
39
+ color: #ea5959;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ width: 100%;
44
+ min-height: 30px;
45
+ line-height: 18px;
46
+ padding: 6px 18px;
47
+ background: #ffe8d8;
48
+ box-sizing: border-box;
49
+ &__close {
50
+ width: 22px;
51
+ height: 22px;
52
+ display: flex;
53
+ margin-right: -6px;
54
+ margin-left: 6px;
55
+ justify-content: center;
56
+ align-items: center;
57
+ &-img {
58
+ width: 10px;
59
+ height: 10px;
60
+ }
61
+ }
62
+ &.close {
63
+ justify-content: space-between;
64
+ color: #fb970c;
65
+ background: #fff2d8;
66
+ .dd-notice-bar__txt {
67
+ text-align: left;
68
+ }
69
+ }
70
+ &__txt {
71
+ flex: 1;
72
+ text-align: center;
73
+ opacity: 0.8;
74
+ }
75
+ }
76
+ </style>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <DdNoticeBar
3
+ v-if="showAlert"
4
+ showClose
5
+ :style="topStype"
6
+ @close="showAlert = !showAlert"
7
+ text="您当前使用的微信客户端版本较低,可能不支持全部功能或体验效果可能不佳,建议至应用商店或App Store升级至最新版本。"
8
+ />
9
+ </template>
10
+
11
+ <script setup lang="ts">
12
+ import { ref, onMounted, computed } from 'vue'
13
+ import DdNoticeBar from '../../components/dd-notice-bar/index.vue'
14
+ import { useSafeArea } from '../composables'
15
+ import Taro from '@tarojs/taro'
16
+ import { useHttp } from '../../balance/api'
17
+
18
+ const showAlert = ref(false)
19
+ const safeArea = useSafeArea()
20
+
21
+ const topStype = computed(() => {
22
+ return `top: ${safeArea.nav + safeArea.status}px;`
23
+ })
24
+
25
+ onMounted(async () => {
26
+ await getPropertieByCode()
27
+
28
+ const systemInfo = Taro.getSystemInfoSync()
29
+ const version = systemInfo.SDKVersion
30
+
31
+ // 版本号比较函数
32
+ function compareVersion(v1, v2) {
33
+ const v1Arr = v1.split('.').map(Number)
34
+ const v2Arr = v2.split('.').map(Number)
35
+
36
+ for (let i = 0; i < v1Arr.length || i < v2Arr.length; i++) {
37
+ if ((v1Arr[i] || 0) > (v2Arr[i] || 0)) {
38
+ return true
39
+ } else if ((v1Arr[i] || 0) < (v2Arr[i] || 0)) {
40
+ return false
41
+ }
42
+ }
43
+ return false
44
+ }
45
+
46
+ if (!compareVersion(version, recommendVersions.value?.Mini || '2.24.0')) {
47
+ showAlert.value = true
48
+ }
49
+ })
50
+
51
+ const recommendVersions = ref()
52
+ // 获取系统配置 - 小程序推荐版本
53
+ async function getPropertieByCode() {
54
+ if (recommendVersions.value) return
55
+
56
+ const $http = useHttp()
57
+ $http
58
+ .get('/cas/properties/getPropertie', {
59
+ code: 'pcRecommendVersion',
60
+ })
61
+ .then((res: any) => {
62
+ recommendVersions.value = JSON.parse(res.value || '{}')
63
+ })
64
+ }
65
+ </script>
66
+
67
+ <style lang="less"></style>
@@ -1,7 +1,5 @@
1
1
  import AppDrawer from './AppDrawer.vue'
2
2
  import PageHeader from './PageHeader.vue'
3
+ import DeviceVersion from './DeviceVersion.vue'
3
4
 
4
- export {
5
- AppDrawer,
6
- PageHeader
7
- }
5
+ export { AppDrawer, PageHeader, DeviceVersion }