af-mobile-client-vue3 1.3.12 → 1.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/.claude/settings.local.json +10 -0
  2. package/.cursorrules +60 -60
  3. package/.editorconfig +9 -9
  4. package/.env +10 -10
  5. package/.env.development +1 -1
  6. package/.env.production +1 -1
  7. package/.node-version +1 -1
  8. package/.vscode/extensions.json +12 -12
  9. package/.vscode/settings.json +66 -66
  10. package/CLAUDE.md +189 -184
  11. package/README.md +182 -181
  12. package/af-example-mobile-vue-web.iml +9 -9
  13. package/build/vite/index.ts +98 -98
  14. package/build/vite/optimize.ts +34 -34
  15. package/build/vite/vconsole.ts +47 -47
  16. package/commitlint.config.ts +32 -32
  17. package/compress.js +36 -36
  18. package/eslint.config.ts +30 -30
  19. package/index.html +23 -23
  20. package/mock/data.ts +20 -20
  21. package/mock/index.ts +7 -7
  22. package/mock/modules/prose.mock.ts +13 -13
  23. package/mock/modules/user.mock.ts +152 -152
  24. package/mock/util.ts +19 -19
  25. package/netlify.toml +12 -12
  26. package/package.json +114 -114
  27. package/postcss.config.ts +27 -27
  28. package/public/favicon.svg +4 -4
  29. package/public/safari-pinned-tab.svg +4 -4
  30. package/scripts/verifyCommit.js +19 -19
  31. package/src/App.vue +79 -79
  32. package/src/api/mock/index.ts +30 -30
  33. package/src/api/user/index.ts +40 -40
  34. package/src/assets/img/user/login/background-shadow-1.svg +20 -20
  35. package/src/assets/img/user/login/logo-background.svg +20 -20
  36. package/src/bootstrap.ts +26 -26
  37. package/src/components/core/BeautifulLoading/index.vue +52 -52
  38. package/src/components/core/ImageUploader/index.vue +244 -244
  39. package/src/components/core/NavBar/index.vue +53 -53
  40. package/src/components/core/Tabbar/index.vue +32 -32
  41. package/src/components/core/Uploader/index.vue +124 -124
  42. package/src/components/core/XGridDropOption/index.vue +154 -156
  43. package/src/components/core/XMultiSelect/index.vue +183 -183
  44. package/src/components/core/XSelect/index.vue +149 -149
  45. package/src/components/data/InfoDisplay/index.vue +132 -0
  46. package/src/components/data/UserDetail/api.ts +24 -0
  47. package/src/components/data/UserDetail/index.vue +539 -0
  48. package/src/components/data/UserDetail/recordEntries.ts +159 -0
  49. package/src/components/data/UserDetail/types.ts +26 -0
  50. package/src/components/data/XBadge/index.vue +82 -82
  51. package/src/components/data/XCellDetail/index.vue +105 -105
  52. package/src/components/data/XCellList/XCellList.md +313 -313
  53. package/src/components/data/XCellList/index.vue +1075 -1075
  54. package/src/components/data/XCellListFilter/QrScanner/index.vue +207 -207
  55. package/src/components/data/XCellListFilter/QrScanner/startScanAnimation.ts +53 -53
  56. package/src/components/data/XCellListFilter/VpnRecognition/index.vue +119 -119
  57. package/src/components/data/XCellListFilter/index.vue +705 -705
  58. package/src/components/data/XForm/index.vue +659 -659
  59. package/src/components/data/XFormGroup/doc/DeviceForm.vue +122 -122
  60. package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +56 -56
  61. package/src/components/data/XFormGroup/doc/README.md +286 -273
  62. package/src/components/data/XFormGroup/doc/UserForm.vue +102 -102
  63. package/src/components/data/XFormGroup/index.vue +240 -240
  64. package/src/components/data/XFormItem/index.vue +1310 -1310
  65. package/src/components/data/XOlMap/README.md +227 -227
  66. package/src/components/data/XOlMap/XLocationPicker/index.vue +226 -225
  67. package/src/components/data/XOlMap/index.vue +1490 -1490
  68. package/src/components/data/XOlMap/types.ts +149 -149
  69. package/src/components/data/XOlMap/utils/wgs84ToGcj02.js +154 -154
  70. package/src/components/data/XReportForm/DateTimeSecondsPicker.vue +208 -208
  71. package/src/components/data/XReportForm/XReportFormJsonRender.vue +220 -220
  72. package/src/components/data/XReportForm/index.vue +1393 -1393
  73. package/src/components/data/XReportGrid/XAddReport/XAddReport.vue +198 -198
  74. package/src/components/data/XReportGrid/XAddReport/index.js +3 -3
  75. package/src/components/data/XReportGrid/XAddReport/index.md +53 -52
  76. package/src/components/data/XReportGrid/XAddReport/index.ts +10 -10
  77. package/src/components/data/XReportGrid/XReport.vue +960 -960
  78. package/src/components/data/XReportGrid/XReportDemo.vue +33 -33
  79. package/src/components/data/XReportGrid/XReportDesign.vue +597 -597
  80. package/src/components/data/XReportGrid/XReportDrawer/XReportDrawer.vue +148 -148
  81. package/src/components/data/XReportGrid/XReportDrawer/index.js +3 -3
  82. package/src/components/data/XReportGrid/XReportDrawer/index.ts +10 -10
  83. package/src/components/data/XReportGrid/XReportJsonRender.vue +399 -399
  84. package/src/components/data/XReportGrid/XReportTrGroup.vue +592 -592
  85. package/src/components/data/XReportGrid/index.md +46 -42
  86. package/src/components/data/XReportGrid/print.js +184 -184
  87. package/src/components/data/XSignature/index.vue +284 -285
  88. package/src/components/data/XTag/index.vue +10 -10
  89. package/src/components/layout/NormalDataLayout/index.vue +69 -69
  90. package/src/components/layout/TabBarLayout/index.vue +40 -40
  91. package/src/composables/dark.ts +5 -5
  92. package/src/config/routes.ts +9 -9
  93. package/src/constants/index.ts +2 -2
  94. package/src/enums/requestEnum.ts +25 -25
  95. package/src/expression/ExpressionRunner.ts +28 -28
  96. package/src/expression/TestExpression.ts +510 -510
  97. package/src/expression/core/Delegate.ts +116 -116
  98. package/src/expression/core/Expression.ts +1359 -1359
  99. package/src/expression/core/Program.ts +985 -985
  100. package/src/expression/core/Token.ts +29 -29
  101. package/src/expression/enums/ExpressionType.ts +81 -81
  102. package/src/expression/enums/TokenType.ts +11 -11
  103. package/src/expression/exception/BreakWayException.ts +2 -2
  104. package/src/expression/exception/ContinueWayException.ts +2 -2
  105. package/src/expression/exception/ExpressionException.ts +29 -29
  106. package/src/expression/exception/ReturnWayException.ts +14 -14
  107. package/src/expression/exception/ServiceException.ts +22 -22
  108. package/src/expression/instances/JSONArray.ts +52 -52
  109. package/src/expression/instances/JSONObject.ts +118 -118
  110. package/src/expression/instances/LogicConsole.ts +31 -31
  111. package/src/font-style/font.css +4 -4
  112. package/src/hooks/useBoolean.ts +26 -0
  113. package/src/hooks/useCommon.ts +9 -9
  114. package/src/hooks/useLogin.ts +97 -97
  115. package/src/icons/svg/check-in.svg +32 -32
  116. package/src/icons/svg/dark.svg +4 -4
  117. package/src/icons/svg/github.svg +4 -4
  118. package/src/icons/svg/light.svg +4 -4
  119. package/src/icons/svg/link.svg +4 -4
  120. package/src/icons/svgo.yml +22 -22
  121. package/src/layout/GridView/index.vue +16 -16
  122. package/src/layout/PageLayout.vue +9 -9
  123. package/src/layout/SingleLayout.vue +9 -9
  124. package/src/locales/en-US.json +128 -128
  125. package/src/locales/zh-CN.json +128 -128
  126. package/src/logic/LogicRunner.ts +67 -67
  127. package/src/logic/TestLogic.ts +13 -13
  128. package/src/logic/plugins/common/DateTools.ts +35 -35
  129. package/src/logic/plugins/common/VueTools.ts +30 -30
  130. package/src/logic/plugins/index.ts +7 -7
  131. package/src/main.ts +44 -44
  132. package/src/plugins/AppData.ts +38 -38
  133. package/src/plugins/GetLoginInfoService.ts +10 -10
  134. package/src/plugins/collectIcons.ts +10 -0
  135. package/src/plugins/index.ts +11 -11
  136. package/src/router/README.md +8 -8
  137. package/src/router/guards.ts +59 -59
  138. package/src/router/index.ts +35 -35
  139. package/src/router/invoiceRoutes.ts +33 -33
  140. package/src/router/routes.ts +341 -177
  141. package/src/router/types.ts +7 -7
  142. package/src/services/api/Login.ts +6 -6
  143. package/src/services/api/common.ts +109 -109
  144. package/src/services/api/index.ts +7 -7
  145. package/src/services/api/manage.ts +8 -8
  146. package/src/services/api/search.ts +16 -16
  147. package/src/services/api/user.ts +17 -17
  148. package/src/services/restTools.ts +56 -56
  149. package/src/services/v3Api.ts +147 -147
  150. package/src/stores/index.ts +11 -11
  151. package/src/stores/modules/counter.ts +19 -19
  152. package/src/stores/modules/routeCache.ts +23 -23
  153. package/src/stores/modules/setting.ts +76 -76
  154. package/src/stores/modules/user.ts +235 -235
  155. package/src/stores/mutation-type.ts +7 -7
  156. package/src/styles/app.less +36 -36
  157. package/src/styles/login.less +109 -109
  158. package/src/styles/var.less +16 -16
  159. package/src/types/env.d.ts +16 -16
  160. package/src/types/settings.ts +1 -1
  161. package/src/types/vue-router.d.ts +9 -9
  162. package/src/utils/Storage.ts +124 -124
  163. package/src/utils/authority-utils.ts +84 -84
  164. package/src/utils/common.ts +41 -41
  165. package/src/utils/crypto.ts +39 -39
  166. package/src/utils/dataUtil.ts +42 -42
  167. package/src/utils/dictUtil.ts +52 -52
  168. package/src/utils/http/index.ts +199 -199
  169. package/src/utils/i18n.ts +72 -72
  170. package/src/utils/indexedDB.ts +195 -195
  171. package/src/utils/inline-px-to-vw.ts +28 -28
  172. package/src/utils/mobileUtil.ts +34 -34
  173. package/src/utils/progress.ts +19 -19
  174. package/src/utils/routerUtil.ts +271 -271
  175. package/src/utils/runEvalFunction.ts +13 -13
  176. package/src/utils/secureStorage.ts +71 -71
  177. package/src/utils/set-page-title.ts +5 -5
  178. package/src/utils/validate.ts +6 -6
  179. package/src/utils/wechatUtil.ts +9 -9
  180. package/src/views/chat/index.vue +153 -153
  181. package/src/views/common/LoadError.vue +63 -63
  182. package/src/views/common/NotFound.vue +67 -67
  183. package/src/views/component/EvaluateRecordView/index.vue +40 -40
  184. package/src/views/component/IconifyView/index.vue +504 -507
  185. package/src/views/component/UserDetailView/UserDetailPage.vue +77 -0
  186. package/src/views/component/UserDetailView/index.vue +224 -0
  187. package/src/views/component/XCellDetailView/index.vue +217 -217
  188. package/src/views/component/XCellListView/index.vue +108 -157
  189. package/src/views/component/XFormAppraiseView/index.vue +174 -174
  190. package/src/views/component/XFormGroupView/index.vue +78 -82
  191. package/src/views/component/XFormView/index.vue +27 -27
  192. package/src/views/component/XOlMapView/XLocationPicker/index.vue +118 -118
  193. package/src/views/component/XOlMapView/index.vue +434 -434
  194. package/src/views/component/XOlMapView/testData.ts +64 -64
  195. package/src/views/component/XReportFormIframeView/index.vue +47 -47
  196. package/src/views/component/XReportFormView/index.vue +13 -13
  197. package/src/views/component/XReportGridView/index.vue +17 -17
  198. package/src/views/component/XRequestView/index.vue +234 -234
  199. package/src/views/component/XSignatureView/index.vue +50 -50
  200. package/src/views/component/index.vue +181 -177
  201. package/src/views/component/menu.vue +117 -117
  202. package/src/views/component/notice.vue +46 -46
  203. package/src/views/component/topNav.vue +36 -36
  204. package/src/views/invoiceShow/index.vue +61 -61
  205. package/src/views/user/login/ForgetPasswordForm.vue +94 -94
  206. package/src/views/user/login/LoginForm.vue +346 -346
  207. package/src/views/user/login/LoginTitle.vue +76 -76
  208. package/src/views/user/login/LoginWave.vue +109 -109
  209. package/src/views/user/login/index.vue +22 -22
  210. package/src/views/user/my/comm/ModifyPassword.vue +346 -346
  211. package/src/views/user/my/index.vue +340 -340
  212. package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -0
  213. package/src/views/userRecords/CardReplacementRecords.vue +21 -0
  214. package/src/views/userRecords/ChangeRecords.vue +19 -0
  215. package/src/views/userRecords/CommandViewRecords.vue +20 -0
  216. package/src/views/userRecords/GasCompensationRecords.vue +20 -0
  217. package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -0
  218. package/src/views/userRecords/MeterRecords.vue +20 -0
  219. package/src/views/userRecords/OperateRecords.vue +51 -0
  220. package/src/views/userRecords/OtherChargeRecords.vue +19 -0
  221. package/src/views/userRecords/PaymentRecords.vue +28 -0
  222. package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -0
  223. package/src/views/userRecords/ReplacementRecords.vue +19 -0
  224. package/src/views/userRecords/SafetyRecords.vue +19 -0
  225. package/src/views/userRecords/TransactionRecords.vue +21 -0
  226. package/src/views/userRecords/TransferRecords.vue +19 -0
  227. package/src/views/userRecords/operateRecordDetail/index.vue +316 -0
  228. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -0
  229. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -0
  230. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -0
  231. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -0
  232. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -0
  233. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -0
  234. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -0
  235. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -0
  236. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -0
  237. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -0
  238. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -0
  239. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -0
  240. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -0
  241. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -0
  242. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -0
  243. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -0
  244. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -0
  245. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -0
  246. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -0
  247. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -0
  248. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -0
  249. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -0
  250. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -0
  251. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -0
  252. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -0
  253. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -0
  254. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -0
  255. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -0
  256. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -0
  257. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -0
  258. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -0
  259. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -0
  260. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -0
  261. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -0
  262. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -0
  263. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -0
  264. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -0
  265. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -0
  266. package/src/views/userRecords/types.ts +66 -0
  267. package/tsconfig.json +39 -39
  268. package/uno.config.ts +82 -78
  269. package/vite.config.ts +118 -118
  270. package/src/views/component/XFormGroupView/xformgroup222.vue +0 -97
@@ -1,118 +1,118 @@
1
- import JSONArray from '../instances/JSONArray'
2
-
3
- export default class JSONObject {
4
- innerMap: { [key: string]: any }
5
-
6
- constructor(value?: any) {
7
- let map: { [key: string]: any }
8
- if (value && typeof value === 'string') {
9
- map = JSON.parse(value)
10
- }
11
- else if (value && typeof value === 'object' && !Array.isArray(value)) {
12
- map = {}
13
- const keySet = value instanceof JSONObject ? value.keySet() : Object.keys(value)
14
- for (const key of keySet) {
15
- const item = value instanceof JSONObject ? value.get(key) : value[key]
16
- if (Array.isArray(item)) {
17
- map[key] = new JSONArray(item)
18
- }
19
- else if (JSONObject.isPlainObject(item)) {
20
- map[key] = new JSONObject(item)
21
- }
22
- else {
23
- map[key] = item
24
- }
25
- }
26
- }
27
- else {
28
- map = {}
29
- }
30
- this.innerMap = map
31
- }
32
-
33
- public static isPlainObject(value: any): boolean {
34
- if (!value || typeof value !== 'object')
35
- return false
36
- if (value instanceof JSONObject || value instanceof JSONArray) {
37
- return false
38
- }
39
- const proto = Object.getPrototypeOf(value)
40
- return proto === Object.prototype || proto === null
41
- }
42
-
43
- public put(key: string, value: any) {
44
- if (Array.isArray(value)) {
45
- this.innerMap[key] = new JSONArray(value)
46
- }
47
- else if (JSONObject.isPlainObject(value)) {
48
- this.innerMap[key] = new JSONObject(value)
49
- }
50
- else {
51
- this.innerMap[key] = value
52
- }
53
- }
54
-
55
- public get(key: string): any {
56
- return this.innerMap[key]
57
- }
58
-
59
- public opt(key: string): any {
60
- return key == null ? null : this.innerMap[key]
61
- }
62
-
63
- public optString(key: string, defaultValue: string): string {
64
- const result = this.opt(key)
65
- return result || defaultValue
66
- }
67
-
68
- public getBoolean(key: string): boolean {
69
- const object = this.get(key)
70
- if (typeof object === 'boolean') {
71
- return object as boolean
72
- }
73
- else {
74
- return Boolean(object)
75
- }
76
- }
77
-
78
- public optBoolean(key: string, defaultValue: boolean): boolean {
79
- const val = this.opt(key)
80
- if (!val) {
81
- return defaultValue
82
- }
83
- return this.getBoolean(key)
84
- }
85
-
86
- public getInt(key: string): number {
87
- return this.innerMap[key] as number
88
- }
89
-
90
- public getJSONObject(key: string): JSONObject {
91
- return this.innerMap[key] as JSONObject
92
- }
93
-
94
- public getJSONArray(key: string): JSONArray {
95
- return this.innerMap[key] as JSONArray
96
- }
97
-
98
- public has(key: string): boolean {
99
- return Object.prototype.hasOwnProperty.call(this.innerMap, key)
100
- }
101
-
102
- public keySet(): string[] {
103
- return Object.keys(this.innerMap)
104
- }
105
-
106
- public toString(): string {
107
- const replacer = (key: string, value: any): any => {
108
- if (value instanceof JSONObject) {
109
- return value.innerMap
110
- }
111
- else if (value instanceof JSONArray) {
112
- return value.innerList
113
- }
114
- return value
115
- }
116
- return JSON.stringify(this.innerMap, replacer)
117
- }
118
- }
1
+ import JSONArray from '../instances/JSONArray'
2
+
3
+ export default class JSONObject {
4
+ innerMap: { [key: string]: any }
5
+
6
+ constructor(value?: any) {
7
+ let map: { [key: string]: any }
8
+ if (value && typeof value === 'string') {
9
+ map = JSON.parse(value)
10
+ }
11
+ else if (value && typeof value === 'object' && !Array.isArray(value)) {
12
+ map = {}
13
+ const keySet = value instanceof JSONObject ? value.keySet() : Object.keys(value)
14
+ for (const key of keySet) {
15
+ const item = value instanceof JSONObject ? value.get(key) : value[key]
16
+ if (Array.isArray(item)) {
17
+ map[key] = new JSONArray(item)
18
+ }
19
+ else if (JSONObject.isPlainObject(item)) {
20
+ map[key] = new JSONObject(item)
21
+ }
22
+ else {
23
+ map[key] = item
24
+ }
25
+ }
26
+ }
27
+ else {
28
+ map = {}
29
+ }
30
+ this.innerMap = map
31
+ }
32
+
33
+ public static isPlainObject(value: any): boolean {
34
+ if (!value || typeof value !== 'object')
35
+ return false
36
+ if (value instanceof JSONObject || value instanceof JSONArray) {
37
+ return false
38
+ }
39
+ const proto = Object.getPrototypeOf(value)
40
+ return proto === Object.prototype || proto === null
41
+ }
42
+
43
+ public put(key: string, value: any) {
44
+ if (Array.isArray(value)) {
45
+ this.innerMap[key] = new JSONArray(value)
46
+ }
47
+ else if (JSONObject.isPlainObject(value)) {
48
+ this.innerMap[key] = new JSONObject(value)
49
+ }
50
+ else {
51
+ this.innerMap[key] = value
52
+ }
53
+ }
54
+
55
+ public get(key: string): any {
56
+ return this.innerMap[key]
57
+ }
58
+
59
+ public opt(key: string): any {
60
+ return key == null ? null : this.innerMap[key]
61
+ }
62
+
63
+ public optString(key: string, defaultValue: string): string {
64
+ const result = this.opt(key)
65
+ return result || defaultValue
66
+ }
67
+
68
+ public getBoolean(key: string): boolean {
69
+ const object = this.get(key)
70
+ if (typeof object === 'boolean') {
71
+ return object as boolean
72
+ }
73
+ else {
74
+ return Boolean(object)
75
+ }
76
+ }
77
+
78
+ public optBoolean(key: string, defaultValue: boolean): boolean {
79
+ const val = this.opt(key)
80
+ if (!val) {
81
+ return defaultValue
82
+ }
83
+ return this.getBoolean(key)
84
+ }
85
+
86
+ public getInt(key: string): number {
87
+ return this.innerMap[key] as number
88
+ }
89
+
90
+ public getJSONObject(key: string): JSONObject {
91
+ return this.innerMap[key] as JSONObject
92
+ }
93
+
94
+ public getJSONArray(key: string): JSONArray {
95
+ return this.innerMap[key] as JSONArray
96
+ }
97
+
98
+ public has(key: string): boolean {
99
+ return Object.prototype.hasOwnProperty.call(this.innerMap, key)
100
+ }
101
+
102
+ public keySet(): string[] {
103
+ return Object.keys(this.innerMap)
104
+ }
105
+
106
+ public toString(): string {
107
+ const replacer = (key: string, value: any): any => {
108
+ if (value instanceof JSONObject) {
109
+ return value.innerMap
110
+ }
111
+ else if (value instanceof JSONArray) {
112
+ return value.innerList
113
+ }
114
+ return value
115
+ }
116
+ return JSON.stringify(this.innerMap, replacer)
117
+ }
118
+ }
@@ -1,31 +1,31 @@
1
- // 自定义 Console 类
2
- export default class LogicConsole {
3
- public debug(...args: any[]): void {
4
- const newArgs = this.convert(args)
5
- console.info(...newArgs)
6
- }
7
-
8
- public info(...args: any[]): void {
9
- const newArgs = this.convert(args)
10
- console.info(...newArgs)
11
- }
12
-
13
- public warn(...args: any[]): void {
14
- const newArgs = this.convert(args)
15
- console.warn(...newArgs)
16
- }
17
-
18
- public error(...args: any[]): void {
19
- const newArgs = this.convert(args)
20
- console.error(...newArgs)
21
- }
22
-
23
- private convert(args: any[]): any[] {
24
- return args.map((arg) => {
25
- if (typeof arg === 'object' && arg !== null && typeof arg.toString === 'function') {
26
- return arg.toString()
27
- }
28
- return arg
29
- })
30
- }
31
- }
1
+ // 自定义 Console 类
2
+ export default class LogicConsole {
3
+ public debug(...args: any[]): void {
4
+ const newArgs = this.convert(args)
5
+ console.info(...newArgs)
6
+ }
7
+
8
+ public info(...args: any[]): void {
9
+ const newArgs = this.convert(args)
10
+ console.info(...newArgs)
11
+ }
12
+
13
+ public warn(...args: any[]): void {
14
+ const newArgs = this.convert(args)
15
+ console.warn(...newArgs)
16
+ }
17
+
18
+ public error(...args: any[]): void {
19
+ const newArgs = this.convert(args)
20
+ console.error(...newArgs)
21
+ }
22
+
23
+ private convert(args: any[]): any[] {
24
+ return args.map((arg) => {
25
+ if (typeof arg === 'object' && arg !== null && typeof arg.toString === 'function') {
26
+ return arg.toString()
27
+ }
28
+ return arg
29
+ })
30
+ }
31
+ }
@@ -1,4 +1,4 @@
1
- @font-face {
2
- font-family: 'PingFangSC-Regular-woff2';
3
- src: url('./PingFangSC-Regular.woff2') format('woff2');
4
- }
1
+ @font-face {
2
+ font-family: 'PingFangSC-Regular-woff2';
3
+ src: url('./PingFangSC-Regular.woff2') format('woff2');
4
+ }
@@ -0,0 +1,26 @@
1
+ import { ref } from 'vue'
2
+
3
+ export default function useBoolean(initValue = false) {
4
+ const bool = ref(initValue)
5
+
6
+ function setBool(value: boolean) {
7
+ bool.value = value
8
+ }
9
+ function setTrue() {
10
+ setBool(true)
11
+ }
12
+ function setFalse() {
13
+ setBool(false)
14
+ }
15
+ function toggle() {
16
+ setBool(!bool.value)
17
+ }
18
+
19
+ return {
20
+ bool,
21
+ setBool,
22
+ setTrue,
23
+ setFalse,
24
+ toggle,
25
+ }
26
+ }
@@ -1,9 +1,9 @@
1
- export function formatDate(date) {
2
- const year = date.getFullYear()
3
- const month = (date.getMonth() + 1).toString().padStart(2, '0') // 月份加1,并补零
4
- const day = date.getDate().toString().padStart(2, '0') // 日期补零
5
- const hours = date.getHours().toString().padStart(2, '0') // 小时补零
6
- const minutes = date.getMinutes().toString().padStart(2, '0') // 分钟补零
7
- const seconds = date.getSeconds().toString().padStart(2, '0') // 秒数补零
8
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
9
- }
1
+ export function formatDate(date) {
2
+ const year = date.getFullYear()
3
+ const month = (date.getMonth() + 1).toString().padStart(2, '0') // 月份加1,并补零
4
+ const day = date.getDate().toString().padStart(2, '0') // 日期补零
5
+ const hours = date.getHours().toString().padStart(2, '0') // 小时补零
6
+ const minutes = date.getMinutes().toString().padStart(2, '0') // 分钟补零
7
+ const seconds = date.getSeconds().toString().padStart(2, '0') // 秒数补零
8
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
9
+ }
@@ -1,97 +1,97 @@
1
- import type { FieldRule } from 'vant'
2
- import { computed, ref, unref } from 'vue'
3
-
4
- export enum LoginStateEnum {
5
- LOGIN,
6
- REGISTER,
7
- RESET_PASSWORD,
8
- }
9
-
10
- const currentState = ref(LoginStateEnum.LOGIN)
11
-
12
- export function useLoginState() {
13
- function setLoginState(state: LoginStateEnum) {
14
- currentState.value = state
15
- }
16
-
17
- const getLoginState = computed(() => currentState.value)
18
-
19
- function handleBackLogin() {
20
- setLoginState(LoginStateEnum.LOGIN)
21
- }
22
-
23
- return { setLoginState, getLoginState, handleBackLogin }
24
- }
25
-
26
- export function useFormRules(formData?: any) {
27
- const getUsernameFormRule = computed(() => createRule('请输入用户名'))
28
- const getPasswordFormRule = computed(() => createRule('请输入密码'))
29
- const getSmsFormRule = computed(() => createRule('请输入短信验证码'))
30
- const getMobileFormRule = computed(() => createRule('请输入手机号码'))
31
-
32
- const validatePolicy = async (value: any, _: FieldRule) => {
33
- return !value ? Promise.resolve('勾选后才能注册') : Promise.resolve(true)
34
- }
35
-
36
- const validateConfirmPassword = (password: string) => {
37
- return async (value: string) => {
38
- if (!value)
39
- return Promise.resolve('请输入确认密码')
40
-
41
- if (value !== password)
42
- return Promise.resolve('两次输入密码不一致')
43
-
44
- return Promise.resolve(true)
45
- }
46
- }
47
-
48
- const getFormRules = computed((): { [k: string]: FieldRule[] } => {
49
- const usernameFormRule = unref(getUsernameFormRule)
50
- const passwordFormRule = unref(getPasswordFormRule)
51
- const smsFormRule = unref(getSmsFormRule)
52
- const mobileFormRule = unref(getMobileFormRule)
53
-
54
- const mobileRule = {
55
- sms: smsFormRule,
56
- mobile: mobileFormRule,
57
- }
58
- switch (unref(currentState)) {
59
- // register form rules
60
- case LoginStateEnum.REGISTER:
61
- return {
62
- username: usernameFormRule,
63
- password: passwordFormRule,
64
- confirmPassword: [
65
- { validator: validateConfirmPassword(formData?.password), trigger: 'onChange' },
66
- ],
67
- policy: [{ validator: validatePolicy, trigger: 'onBlur' }],
68
- ...mobileRule,
69
- }
70
-
71
- // reset password form rules
72
- case LoginStateEnum.RESET_PASSWORD:
73
- return {
74
- username: usernameFormRule,
75
- ...mobileRule,
76
- }
77
-
78
- // login form rules
79
- default:
80
- return {
81
- username: usernameFormRule,
82
- password: passwordFormRule,
83
- }
84
- }
85
- })
86
- return { getFormRules }
87
- }
88
-
89
- function createRule(message: string): FieldRule[] {
90
- return [
91
- {
92
- required: true,
93
- message,
94
- trigger: 'onBlur',
95
- },
96
- ]
97
- }
1
+ import type { FieldRule } from 'vant'
2
+ import { computed, ref, unref } from 'vue'
3
+
4
+ export enum LoginStateEnum {
5
+ LOGIN,
6
+ REGISTER,
7
+ RESET_PASSWORD,
8
+ }
9
+
10
+ const currentState = ref(LoginStateEnum.LOGIN)
11
+
12
+ export function useLoginState() {
13
+ function setLoginState(state: LoginStateEnum) {
14
+ currentState.value = state
15
+ }
16
+
17
+ const getLoginState = computed(() => currentState.value)
18
+
19
+ function handleBackLogin() {
20
+ setLoginState(LoginStateEnum.LOGIN)
21
+ }
22
+
23
+ return { setLoginState, getLoginState, handleBackLogin }
24
+ }
25
+
26
+ export function useFormRules(formData?: any) {
27
+ const getUsernameFormRule = computed(() => createRule('请输入用户名'))
28
+ const getPasswordFormRule = computed(() => createRule('请输入密码'))
29
+ const getSmsFormRule = computed(() => createRule('请输入短信验证码'))
30
+ const getMobileFormRule = computed(() => createRule('请输入手机号码'))
31
+
32
+ const validatePolicy = async (value: any, _: FieldRule) => {
33
+ return !value ? Promise.resolve('勾选后才能注册') : Promise.resolve(true)
34
+ }
35
+
36
+ const validateConfirmPassword = (password: string) => {
37
+ return async (value: string) => {
38
+ if (!value)
39
+ return Promise.resolve('请输入确认密码')
40
+
41
+ if (value !== password)
42
+ return Promise.resolve('两次输入密码不一致')
43
+
44
+ return Promise.resolve(true)
45
+ }
46
+ }
47
+
48
+ const getFormRules = computed((): { [k: string]: FieldRule[] } => {
49
+ const usernameFormRule = unref(getUsernameFormRule)
50
+ const passwordFormRule = unref(getPasswordFormRule)
51
+ const smsFormRule = unref(getSmsFormRule)
52
+ const mobileFormRule = unref(getMobileFormRule)
53
+
54
+ const mobileRule = {
55
+ sms: smsFormRule,
56
+ mobile: mobileFormRule,
57
+ }
58
+ switch (unref(currentState)) {
59
+ // register form rules
60
+ case LoginStateEnum.REGISTER:
61
+ return {
62
+ username: usernameFormRule,
63
+ password: passwordFormRule,
64
+ confirmPassword: [
65
+ { validator: validateConfirmPassword(formData?.password), trigger: 'onChange' },
66
+ ],
67
+ policy: [{ validator: validatePolicy, trigger: 'onBlur' }],
68
+ ...mobileRule,
69
+ }
70
+
71
+ // reset password form rules
72
+ case LoginStateEnum.RESET_PASSWORD:
73
+ return {
74
+ username: usernameFormRule,
75
+ ...mobileRule,
76
+ }
77
+
78
+ // login form rules
79
+ default:
80
+ return {
81
+ username: usernameFormRule,
82
+ password: passwordFormRule,
83
+ }
84
+ }
85
+ })
86
+ return { getFormRules }
87
+ }
88
+
89
+ function createRule(message: string): FieldRule[] {
90
+ return [
91
+ {
92
+ required: true,
93
+ message,
94
+ trigger: 'onBlur',
95
+ },
96
+ ]
97
+ }
@@ -1,33 +1,33 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
4
- <path d="M781.9 572.5V334c0-19.5-15.5-35.3-34.7-35.3H279.1c-19.1 0-34.7 15.8-34.7 35.3v477c0 19.5 15.5 35.3 34.7 35.3H683c19.1 0 98.9-64 98.9-83.5V572.5z" fill="#FCEE21"/>
5
- <path d="M781.9 764.3V343.6c0-8.3-3-16-7.9-22-68.7 307.3-434 456.3-526.3 504.6 5.5 11.9 17.5 20.1 31.4 20.1H683c19.2 0 98.9-62.8 98.9-82z" fill="#F8B62D"/>
6
- <path d="M781.9 569.7c-5.6 0-10.1-4.5-10.1-10.1V309.8c0-14.8-12.1-26.9-26.9-26.9h-457c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1H745c26 0 47.1 21.1 47.1 47.1v249.7c-0.1 5.7-4.6 10.2-10.2 10.2zM208.5 334.6c-5.6 0-10.1-4.5-10.1-10.1v-14.7c0-26 21.1-47.1 47.1-47.1h2.1c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1h-2.1c-14.8 0-26.9 12.1-26.9 26.9v14.7c-0.1 5.6-4.6 10.1-10.1 10.1zM482.9 856.4H245.4c-26 0-47.1-21.1-47.1-47.1V358.2c0-5.6 4.5-10.1 10.1-10.1s10.1 4.5 10.1 10.1v451.2c0 14.8 12.1 26.9 26.9 26.9h237.4c5.6 0 10.1 4.5 10.1 10.1s-4.5 10-10 10z" fill="#3E3A39"/>
7
- <path d="M313.2 506.9h232.1" fill="#FCEE21"/>
8
- <path d="M545.3 517H313.2c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h232.1c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
9
- <path d="M313.2 603.4h188.7" fill="#FCEE21"/>
10
- <path d="M501.9 613.5H313.2c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h188.7c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
11
- <path d="M313.2 699.8h125.1" fill="#FCEE21"/>
12
- <path d="M438.3 709.9h-125c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h125c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.1 10.1z" fill="#3E3A39"/>
13
- <path d="M316.1 404h465.8" fill="#FCEE21"/>
14
- <path d="M781.9 414.1H316.1c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1H782c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.2 10.1z" fill="#3E3A39"/>
15
- <path d="M381.9 330.3h-43.1c-2.1 0-3.8-1.7-3.8-3.8V209.9c0-2.1 1.7-3.8 3.8-3.8h43.1c2.1 0 3.8 1.7 3.8 3.8v116.7c0 2-1.7 3.7-3.8 3.7z" fill="#F8B62D"/>
16
- <path d="M360.3 340.4c-19.5 0-35.4-15.9-35.4-35.4v-73.6c0-19.5 15.9-35.4 35.4-35.4s35.4 15.9 35.4 35.4V305c0.1 19.5-15.8 35.4-35.4 35.4z m0-124.2c-8.4 0-15.2 6.8-15.2 15.2V305c0 8.4 6.8 15.2 15.2 15.2 8.4 0 15.2-6.8 15.2-15.2v-73.6c0.1-8.4-6.8-15.2-15.2-15.2zM866.3 856.4h-24c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h24c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.1 10.1zM123.6 856.4H92.9c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h30.7c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1zM803.7 856.4H155.4c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h648.3c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
17
- <path d="M665.7 737.2m-127.1 0a127.1 127.1 0 1 0 254.2 0 127.1 127.1 0 1 0-254.2 0Z" fill="#FFFFFF"/>
18
- <path d="M659.8 874.3c-82.6 0-149.8-67.2-149.8-149.8 0-82.6 67.2-149.8 149.8-149.8S809.5 642 809.5 724.6c0 82.5-67.1 149.7-149.7 149.7z m0-279.3c-71.5 0-129.6 58.1-129.6 129.6s58.1 129.6 129.6 129.6S789.4 796 789.4 724.6c0-71.5-58.2-129.6-129.6-129.6z" fill="#3E3A39"/>
19
- <path d="M649.3 797c-2.5 0-4.9-0.9-6.7-2.6l-64.8-58.2c-4.1-3.7-4.5-10.1-0.8-14.2s10.1-4.5 14.2-0.8l56.7 50.9 77.4-101.2c3.4-4.4 9.7-5.3 14.1-1.9s5.3 9.7 1.9 14.1l-84 109.9c-1.7 2.2-4.3 3.7-7.1 3.9-0.2 0.1-0.6 0.1-0.9 0.1z" fill="#3E3A39"/>
20
- <path d="M692.1 126.3c-15.1 0-27.3-12.3-27.3-27.3 0-15.1 12.3-27.3 27.3-27.3 15.1 0 27.3 12.3 27.3 27.3 0 15.1-12.2 27.3-27.3 27.3z m0-41.2c-7.7 0-13.9 6.2-13.9 13.9s6.2 13.9 13.9 13.9S706 106.7 706 99s-6.2-13.9-13.9-13.9z" fill="#47B7F8"/>
21
- <path d="M249 169.9h-12v-12c0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8v12h-12c-3.2 0-5.8 2.6-5.8 5.8 0 3.2 2.6 5.8 5.8 5.8h12v12c0 3.2 2.6 5.8 5.8 5.8 3.2 0 5.8-2.6 5.8-5.8v-12h12c3.2 0 5.8-2.6 5.8-5.8 0-3.2-2.6-5.8-5.8-5.8zM853.2 286.2h-12v-12c0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8v12h-12c-3.2 0-5.8 2.6-5.8 5.8s2.6 5.8 5.8 5.8h12v12c0 3.2 2.6 5.8 5.8 5.8 3.2 0 5.8-2.6 5.8-5.8v-12h12c3.2 0 5.8-2.6 5.8-5.8s-2.6-5.8-5.8-5.8z" fill="#F7E42F"/>
22
- <path d="M112.5 443.7H98.6v-13.9a6.7 6.7 0 0 0-13.4 0v13.9h-14a6.7 6.7 0 0 0 0 13.4h13.9V471a6.7 6.7 0 0 0 13.4 0v-13.9h13.9c3.7 0 6.7-3 6.7-6.7s-2.9-6.7-6.6-6.7z" fill="#F8B62D"/>
23
- <path d="M340.1 109.1m-10.1 0a10.1 10.1 0 1 0 20.2 0 10.1 10.1 0 1 0-20.2 0Z" fill="#F8B62D"/>
24
- <path d="M790.8 162.3m-13.4 0a13.4 13.4 0 1 0 26.8 0 13.4 13.4 0 1 0-26.8 0Z" fill="#F8B62D"/>
25
- <path d="M545.3 115.7m-13.4 0a13.4 13.4 0 1 0 26.8 0 13.4 13.4 0 1 0-26.8 0Z" fill="#F7E42F"/>
26
- <path d="M125.5 291.9c-15.1 0-27.3-12.3-27.3-27.3 0-15.1 12.3-27.3 27.3-27.3s27.3 12.3 27.3 27.3c0 15.1-12.3 27.3-27.3 27.3z m0-41.2c-7.7 0-13.9 6.2-13.9 13.9s6.2 13.9 13.9 13.9 13.9-6.2 13.9-13.9-6.3-13.9-13.9-13.9z" fill="#F8B62D"/>
27
- <path d="M472.7 166.3c-1.5-1.4-3.8-1.4-5.3 0-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c1.4-1.5 1.4-3.8 0-5.3l-11.8-11.8zM504.3 197.9c-0.7-0.7-1.6-1.1-2.6-1.1s-1.9 0.4-2.6 1.1c-1.4 1.5-1.4 3.8 0 5.3l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6l-11.9-12zM501.6 184.6c1 0 1.9-0.4 2.6-1.1l11.9-11.9c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6c-1.5-1.5-3.8-1.5-5.3 0L499 178.3c-1.4 1.5-1.4 3.8 0 5.3 0.7 0.7 1.6 1 2.6 1zM479.4 197.9l-11.9 11.9c-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1l11.9-11.9c1.4-1.5 1.4-3.8 0-5.3-1.3-1.3-3.8-1.3-5.2 0.1zM481.7 190.7c0-2.1-1.7-3.7-3.7-3.7h-16.9c-2.1 0-3.7 1.7-3.7 3.7 0 2.1 1.7 3.7 3.7 3.7H478c2 0 3.7-1.6 3.7-3.7zM522.6 187h-16.9c-2.1 0-3.7 1.7-3.7 3.7 0 2.1 1.7 3.7 3.7 3.7h16.9c2.1 0 3.7-1.7 3.7-3.7s-1.7-3.7-3.7-3.7zM491.8 156.2c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7 2.1 0 3.7-1.7 3.7-3.7V160c0-2.1-1.6-3.8-3.7-3.8zM491.8 200.8c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7 2.1 0 3.7-1.7 3.7-3.7v-16.9c0-2-1.6-3.7-3.7-3.7z" fill="#FAEE00"/>
28
- <path d="M905.9 417c-1.5-1.4-3.8-1.4-5.3 0-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c1.4-1.5 1.4-3.8 0-5.3L905.9 417zM937.5 448.5c-0.7-0.7-1.6-1.1-2.6-1.1s-1.9 0.4-2.6 1.1c-1.4 1.5-1.4 3.8 0 5.3l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6l-11.9-12zM934.8 435.3c1 0 1.9-0.4 2.6-1.1l11.9-11.9c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6c-1.5-1.5-3.8-1.5-5.3 0L932.1 429c-1.4 1.5-1.4 3.8 0 5.3 0.8 0.6 1.7 1 2.7 1zM912.6 448.5l-11.9 11.9c-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1l11.9-11.9c1.4-1.5 1.4-3.8 0-5.3-1.3-1.3-3.8-1.3-5.2 0.1zM914.9 441.4c0-2.1-1.7-3.7-3.7-3.7h-16.9c-2.1 0-3.7 1.7-3.7 3.7s1.7 3.7 3.7 3.7h16.9c2 0 3.7-1.7 3.7-3.7zM955.8 437.6h-16.9c-2.1 0-3.7 1.7-3.7 3.7s1.7 3.7 3.7 3.7h16.9c2.1 0 3.7-1.7 3.7-3.7s-1.7-3.7-3.7-3.7zM925 406.9c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7s3.7-1.7 3.7-3.7v-16.9c0.1-2-1.6-3.7-3.7-3.7zM925 451.5c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7s3.7-1.7 3.7-3.7v-16.9c0.1-2.1-1.6-3.7-3.7-3.7z" fill="#F8B62D"/>
29
- <path d="M648.3 330.3h-43.1c-2.1 0-3.8-1.7-3.8-3.8V209.9c0-2.1 1.7-3.8 3.8-3.8h43.1c2.1 0 3.8 1.7 3.8 3.8v116.7c0 2-1.7 3.7-3.8 3.7z" fill="#F8B62D"/>
30
- <path d="M626.7 340.4c-19.5 0-35.4-15.9-35.4-35.4v-73.6c0-19.5 15.9-35.4 35.4-35.4s35.4 15.9 35.4 35.4V305c0.1 19.5-15.8 35.4-35.4 35.4z m0-124.2c-8.4 0-15.2 6.8-15.2 15.2V305c0 8.4 6.8 15.2 15.2 15.2 8.4 0 15.2-6.8 15.2-15.2v-73.6c0.1-8.4-6.8-15.2-15.2-15.2z" fill="#3E3A39"/>
31
- <path d="M271.3 381.9c-5.6 0-10.1-4.5-10.1-10.1V341c0-17.7 14.4-32.1 32.1-32.1h17.8c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1h-17.8c-6.6 0-12 5.4-12 12v30.8c0.1 5.5-4.4 10-10 10z" fill="#FFFFFF"/>
32
- <path d="M271.3 576.4c-5.6 0-10.1-4.5-10.1-10.1V455.6c0-5.6 4.5-10.1 10.1-10.1s10.1 4.5 10.1 10.1v110.7c0 5.6-4.5 10.1-10.1 10.1z" fill="#FFFFFF"/>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
4
+ <path d="M781.9 572.5V334c0-19.5-15.5-35.3-34.7-35.3H279.1c-19.1 0-34.7 15.8-34.7 35.3v477c0 19.5 15.5 35.3 34.7 35.3H683c19.1 0 98.9-64 98.9-83.5V572.5z" fill="#FCEE21"/>
5
+ <path d="M781.9 764.3V343.6c0-8.3-3-16-7.9-22-68.7 307.3-434 456.3-526.3 504.6 5.5 11.9 17.5 20.1 31.4 20.1H683c19.2 0 98.9-62.8 98.9-82z" fill="#F8B62D"/>
6
+ <path d="M781.9 569.7c-5.6 0-10.1-4.5-10.1-10.1V309.8c0-14.8-12.1-26.9-26.9-26.9h-457c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1H745c26 0 47.1 21.1 47.1 47.1v249.7c-0.1 5.7-4.6 10.2-10.2 10.2zM208.5 334.6c-5.6 0-10.1-4.5-10.1-10.1v-14.7c0-26 21.1-47.1 47.1-47.1h2.1c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1h-2.1c-14.8 0-26.9 12.1-26.9 26.9v14.7c-0.1 5.6-4.6 10.1-10.1 10.1zM482.9 856.4H245.4c-26 0-47.1-21.1-47.1-47.1V358.2c0-5.6 4.5-10.1 10.1-10.1s10.1 4.5 10.1 10.1v451.2c0 14.8 12.1 26.9 26.9 26.9h237.4c5.6 0 10.1 4.5 10.1 10.1s-4.5 10-10 10z" fill="#3E3A39"/>
7
+ <path d="M313.2 506.9h232.1" fill="#FCEE21"/>
8
+ <path d="M545.3 517H313.2c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h232.1c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
9
+ <path d="M313.2 603.4h188.7" fill="#FCEE21"/>
10
+ <path d="M501.9 613.5H313.2c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h188.7c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
11
+ <path d="M313.2 699.8h125.1" fill="#FCEE21"/>
12
+ <path d="M438.3 709.9h-125c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h125c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.1 10.1z" fill="#3E3A39"/>
13
+ <path d="M316.1 404h465.8" fill="#FCEE21"/>
14
+ <path d="M781.9 414.1H316.1c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1H782c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.2 10.1z" fill="#3E3A39"/>
15
+ <path d="M381.9 330.3h-43.1c-2.1 0-3.8-1.7-3.8-3.8V209.9c0-2.1 1.7-3.8 3.8-3.8h43.1c2.1 0 3.8 1.7 3.8 3.8v116.7c0 2-1.7 3.7-3.8 3.7z" fill="#F8B62D"/>
16
+ <path d="M360.3 340.4c-19.5 0-35.4-15.9-35.4-35.4v-73.6c0-19.5 15.9-35.4 35.4-35.4s35.4 15.9 35.4 35.4V305c0.1 19.5-15.8 35.4-35.4 35.4z m0-124.2c-8.4 0-15.2 6.8-15.2 15.2V305c0 8.4 6.8 15.2 15.2 15.2 8.4 0 15.2-6.8 15.2-15.2v-73.6c0.1-8.4-6.8-15.2-15.2-15.2zM866.3 856.4h-24c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h24c5.6 0 10.1 4.5 10.1 10.1s-4.6 10.1-10.1 10.1zM123.6 856.4H92.9c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h30.7c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1zM803.7 856.4H155.4c-5.6 0-10.1-4.5-10.1-10.1s4.5-10.1 10.1-10.1h648.3c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1z" fill="#3E3A39"/>
17
+ <path d="M665.7 737.2m-127.1 0a127.1 127.1 0 1 0 254.2 0 127.1 127.1 0 1 0-254.2 0Z" fill="#FFFFFF"/>
18
+ <path d="M659.8 874.3c-82.6 0-149.8-67.2-149.8-149.8 0-82.6 67.2-149.8 149.8-149.8S809.5 642 809.5 724.6c0 82.5-67.1 149.7-149.7 149.7z m0-279.3c-71.5 0-129.6 58.1-129.6 129.6s58.1 129.6 129.6 129.6S789.4 796 789.4 724.6c0-71.5-58.2-129.6-129.6-129.6z" fill="#3E3A39"/>
19
+ <path d="M649.3 797c-2.5 0-4.9-0.9-6.7-2.6l-64.8-58.2c-4.1-3.7-4.5-10.1-0.8-14.2s10.1-4.5 14.2-0.8l56.7 50.9 77.4-101.2c3.4-4.4 9.7-5.3 14.1-1.9s5.3 9.7 1.9 14.1l-84 109.9c-1.7 2.2-4.3 3.7-7.1 3.9-0.2 0.1-0.6 0.1-0.9 0.1z" fill="#3E3A39"/>
20
+ <path d="M692.1 126.3c-15.1 0-27.3-12.3-27.3-27.3 0-15.1 12.3-27.3 27.3-27.3 15.1 0 27.3 12.3 27.3 27.3 0 15.1-12.2 27.3-27.3 27.3z m0-41.2c-7.7 0-13.9 6.2-13.9 13.9s6.2 13.9 13.9 13.9S706 106.7 706 99s-6.2-13.9-13.9-13.9z" fill="#47B7F8"/>
21
+ <path d="M249 169.9h-12v-12c0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8v12h-12c-3.2 0-5.8 2.6-5.8 5.8 0 3.2 2.6 5.8 5.8 5.8h12v12c0 3.2 2.6 5.8 5.8 5.8 3.2 0 5.8-2.6 5.8-5.8v-12h12c3.2 0 5.8-2.6 5.8-5.8 0-3.2-2.6-5.8-5.8-5.8zM853.2 286.2h-12v-12c0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8v12h-12c-3.2 0-5.8 2.6-5.8 5.8s2.6 5.8 5.8 5.8h12v12c0 3.2 2.6 5.8 5.8 5.8 3.2 0 5.8-2.6 5.8-5.8v-12h12c3.2 0 5.8-2.6 5.8-5.8s-2.6-5.8-5.8-5.8z" fill="#F7E42F"/>
22
+ <path d="M112.5 443.7H98.6v-13.9a6.7 6.7 0 0 0-13.4 0v13.9h-14a6.7 6.7 0 0 0 0 13.4h13.9V471a6.7 6.7 0 0 0 13.4 0v-13.9h13.9c3.7 0 6.7-3 6.7-6.7s-2.9-6.7-6.6-6.7z" fill="#F8B62D"/>
23
+ <path d="M340.1 109.1m-10.1 0a10.1 10.1 0 1 0 20.2 0 10.1 10.1 0 1 0-20.2 0Z" fill="#F8B62D"/>
24
+ <path d="M790.8 162.3m-13.4 0a13.4 13.4 0 1 0 26.8 0 13.4 13.4 0 1 0-26.8 0Z" fill="#F8B62D"/>
25
+ <path d="M545.3 115.7m-13.4 0a13.4 13.4 0 1 0 26.8 0 13.4 13.4 0 1 0-26.8 0Z" fill="#F7E42F"/>
26
+ <path d="M125.5 291.9c-15.1 0-27.3-12.3-27.3-27.3 0-15.1 12.3-27.3 27.3-27.3s27.3 12.3 27.3 27.3c0 15.1-12.3 27.3-27.3 27.3z m0-41.2c-7.7 0-13.9 6.2-13.9 13.9s6.2 13.9 13.9 13.9 13.9-6.2 13.9-13.9-6.3-13.9-13.9-13.9z" fill="#F8B62D"/>
27
+ <path d="M472.7 166.3c-1.5-1.4-3.8-1.4-5.3 0-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c1.4-1.5 1.4-3.8 0-5.3l-11.8-11.8zM504.3 197.9c-0.7-0.7-1.6-1.1-2.6-1.1s-1.9 0.4-2.6 1.1c-1.4 1.5-1.4 3.8 0 5.3l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6l-11.9-12zM501.6 184.6c1 0 1.9-0.4 2.6-1.1l11.9-11.9c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6c-1.5-1.5-3.8-1.5-5.3 0L499 178.3c-1.4 1.5-1.4 3.8 0 5.3 0.7 0.7 1.6 1 2.6 1zM479.4 197.9l-11.9 11.9c-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1l11.9-11.9c1.4-1.5 1.4-3.8 0-5.3-1.3-1.3-3.8-1.3-5.2 0.1zM481.7 190.7c0-2.1-1.7-3.7-3.7-3.7h-16.9c-2.1 0-3.7 1.7-3.7 3.7 0 2.1 1.7 3.7 3.7 3.7H478c2 0 3.7-1.6 3.7-3.7zM522.6 187h-16.9c-2.1 0-3.7 1.7-3.7 3.7 0 2.1 1.7 3.7 3.7 3.7h16.9c2.1 0 3.7-1.7 3.7-3.7s-1.7-3.7-3.7-3.7zM491.8 156.2c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7 2.1 0 3.7-1.7 3.7-3.7V160c0-2.1-1.6-3.8-3.7-3.8zM491.8 200.8c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7 2.1 0 3.7-1.7 3.7-3.7v-16.9c0-2-1.6-3.7-3.7-3.7z" fill="#FAEE00"/>
28
+ <path d="M905.9 417c-1.5-1.4-3.8-1.4-5.3 0-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c1.4-1.5 1.4-3.8 0-5.3L905.9 417zM937.5 448.5c-0.7-0.7-1.6-1.1-2.6-1.1s-1.9 0.4-2.6 1.1c-1.4 1.5-1.4 3.8 0 5.3l11.9 11.9c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6l-11.9-12zM934.8 435.3c1 0 1.9-0.4 2.6-1.1l11.9-11.9c0.7-0.7 1.1-1.6 1.1-2.6s-0.4-1.9-1.1-2.6c-1.5-1.5-3.8-1.5-5.3 0L932.1 429c-1.4 1.5-1.4 3.8 0 5.3 0.8 0.6 1.7 1 2.7 1zM912.6 448.5l-11.9 11.9c-0.7 0.7-1.1 1.6-1.1 2.6s0.4 1.9 1.1 2.6c0.7 0.7 1.6 1.1 2.6 1.1s1.9-0.4 2.6-1.1l11.9-11.9c1.4-1.5 1.4-3.8 0-5.3-1.3-1.3-3.8-1.3-5.2 0.1zM914.9 441.4c0-2.1-1.7-3.7-3.7-3.7h-16.9c-2.1 0-3.7 1.7-3.7 3.7s1.7 3.7 3.7 3.7h16.9c2 0 3.7-1.7 3.7-3.7zM955.8 437.6h-16.9c-2.1 0-3.7 1.7-3.7 3.7s1.7 3.7 3.7 3.7h16.9c2.1 0 3.7-1.7 3.7-3.7s-1.7-3.7-3.7-3.7zM925 406.9c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7s3.7-1.7 3.7-3.7v-16.9c0.1-2-1.6-3.7-3.7-3.7zM925 451.5c-2.1 0-3.7 1.7-3.7 3.7v16.9c0 2.1 1.7 3.7 3.7 3.7s3.7-1.7 3.7-3.7v-16.9c0.1-2.1-1.6-3.7-3.7-3.7z" fill="#F8B62D"/>
29
+ <path d="M648.3 330.3h-43.1c-2.1 0-3.8-1.7-3.8-3.8V209.9c0-2.1 1.7-3.8 3.8-3.8h43.1c2.1 0 3.8 1.7 3.8 3.8v116.7c0 2-1.7 3.7-3.8 3.7z" fill="#F8B62D"/>
30
+ <path d="M626.7 340.4c-19.5 0-35.4-15.9-35.4-35.4v-73.6c0-19.5 15.9-35.4 35.4-35.4s35.4 15.9 35.4 35.4V305c0.1 19.5-15.8 35.4-35.4 35.4z m0-124.2c-8.4 0-15.2 6.8-15.2 15.2V305c0 8.4 6.8 15.2 15.2 15.2 8.4 0 15.2-6.8 15.2-15.2v-73.6c0.1-8.4-6.8-15.2-15.2-15.2z" fill="#3E3A39"/>
31
+ <path d="M271.3 381.9c-5.6 0-10.1-4.5-10.1-10.1V341c0-17.7 14.4-32.1 32.1-32.1h17.8c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1h-17.8c-6.6 0-12 5.4-12 12v30.8c0.1 5.5-4.4 10-10 10z" fill="#FFFFFF"/>
32
+ <path d="M271.3 576.4c-5.6 0-10.1-4.5-10.1-10.1V455.6c0-5.6 4.5-10.1 10.1-10.1s10.1 4.5 10.1 10.1v110.7c0 5.6-4.5 10.1-10.1 10.1z" fill="#FFFFFF"/>
33
33
  </svg>
@@ -1,5 +1,5 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
4
- <path d="M448.22 48C704.358 48 912 255.74 912 512l-0.062 7.673C907.842 772.394 701.797 976 448.22 976c-110.645 0-198.866-26.169-264.663-78.506a32 32 0 0 1-4.325-4.159c-11.419-13.256-10.058-33.192 2.962-44.78l0.399-0.35 2.742-2.383c89.13-78.201 134.016-188.043 134.66-329.525L320 512c0.253-143.557-44.635-254.831-134.665-333.822l-2.742-2.384c-13.39-11.534-14.895-31.74-3.36-45.13a32 32 0 0 1 4.324-4.158C249.354 74.17 337.575 48 448.22 48z m0 64c-78.634 0-142.266 14.443-192.055 42.56l-1.809 1.03 0.175 0.18c85.695 88.653 128.775 207.05 129.462 351.494l0.007 4.825-0.007 4.499c-0.65 143.074-42.893 260.596-126.9 348.969l-2.737 2.852 1.809 1.031c49.174 27.77 111.852 42.201 189.149 42.56h2.906c216.135 0 392.63-171.775 399.568-386.834l0.154-6.358 0.057-6.946-0.053-6.477C844.452 289.716 670.368 115.55 454.83 112.054l-6.61-0.054z" fill="#000000"/>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
4
+ <path d="M448.22 48C704.358 48 912 255.74 912 512l-0.062 7.673C907.842 772.394 701.797 976 448.22 976c-110.645 0-198.866-26.169-264.663-78.506a32 32 0 0 1-4.325-4.159c-11.419-13.256-10.058-33.192 2.962-44.78l0.399-0.35 2.742-2.383c89.13-78.201 134.016-188.043 134.66-329.525L320 512c0.253-143.557-44.635-254.831-134.665-333.822l-2.742-2.384c-13.39-11.534-14.895-31.74-3.36-45.13a32 32 0 0 1 4.324-4.158C249.354 74.17 337.575 48 448.22 48z m0 64c-78.634 0-142.266 14.443-192.055 42.56l-1.809 1.03 0.175 0.18c85.695 88.653 128.775 207.05 129.462 351.494l0.007 4.825-0.007 4.499c-0.65 143.074-42.893 260.596-126.9 348.969l-2.737 2.852 1.809 1.031c49.174 27.77 111.852 42.201 189.149 42.56h2.906c216.135 0 392.63-171.775 399.568-386.834l0.154-6.358 0.057-6.946-0.053-6.477C844.452 289.716 670.368 115.55 454.83 112.054l-6.61-0.054z" fill="#000000"/>
5
5
  </svg>