瀏覽代碼

Form Loading in iframe

Sai Sudheer 2 年之前
父節點
當前提交
115ae2df32
共有 100 個檔案被更改,包括 24881 行新增810 行删除
  1. 344
    151
      assets/css/list.page.css
  2. 153
    154
      assets/css/login.css
  3. 77
    67
      assets/js/base.js
  4. 13
    13
      assets/js/cookiehelper.js
  5. 130
    125
      assets/js/forgotpassword.js
  6. 2
    7
      assets/js/home.js
  7. 277
    174
      assets/js/list.index.js
  8. 102
    108
      assets/js/login.js
  9. 7
    7
      assets/js/mian.js
  10. 7
    4
      assets/js/setting.js
  11. 201
    0
      assets/libs/remixicon/License
  12. 138
    0
      assets/libs/remixicon/README.md
  13. 135
    0
      assets/libs/remixicon/README_CN.md
  14. 2317
    0
      assets/libs/remixicon/fonts/remixicon.css
  15. 二進制
      assets/libs/remixicon/fonts/remixicon.eot
  16. 2319
    0
      assets/libs/remixicon/fonts/remixicon.less
  17. 6835
    0
      assets/libs/remixicon/fonts/remixicon.svg
  18. 11356
    0
      assets/libs/remixicon/fonts/remixicon.symbol.svg
  19. 二進制
      assets/libs/remixicon/fonts/remixicon.ttf
  20. 二進制
      assets/libs/remixicon/fonts/remixicon.woff
  21. 二進制
      assets/libs/remixicon/fonts/remixicon.woff2
  22. 6
    0
      assets/libs/remixicon/icons/Buildings/ancient-gate-fill.svg
  23. 6
    0
      assets/libs/remixicon/icons/Buildings/ancient-gate-line.svg
  24. 6
    0
      assets/libs/remixicon/icons/Buildings/ancient-pavilion-fill.svg
  25. 6
    0
      assets/libs/remixicon/icons/Buildings/ancient-pavilion-line.svg
  26. 6
    0
      assets/libs/remixicon/icons/Buildings/bank-fill.svg
  27. 6
    0
      assets/libs/remixicon/icons/Buildings/bank-line.svg
  28. 6
    0
      assets/libs/remixicon/icons/Buildings/building-2-fill.svg
  29. 6
    0
      assets/libs/remixicon/icons/Buildings/building-2-line.svg
  30. 6
    0
      assets/libs/remixicon/icons/Buildings/building-3-fill.svg
  31. 6
    0
      assets/libs/remixicon/icons/Buildings/building-3-line.svg
  32. 6
    0
      assets/libs/remixicon/icons/Buildings/building-4-fill.svg
  33. 6
    0
      assets/libs/remixicon/icons/Buildings/building-4-line.svg
  34. 6
    0
      assets/libs/remixicon/icons/Buildings/building-fill.svg
  35. 6
    0
      assets/libs/remixicon/icons/Buildings/building-line.svg
  36. 6
    0
      assets/libs/remixicon/icons/Buildings/community-fill.svg
  37. 6
    0
      assets/libs/remixicon/icons/Buildings/community-line.svg
  38. 6
    0
      assets/libs/remixicon/icons/Buildings/government-fill.svg
  39. 6
    0
      assets/libs/remixicon/icons/Buildings/government-line.svg
  40. 6
    0
      assets/libs/remixicon/icons/Buildings/home-2-fill.svg
  41. 6
    0
      assets/libs/remixicon/icons/Buildings/home-2-line.svg
  42. 6
    0
      assets/libs/remixicon/icons/Buildings/home-3-fill.svg
  43. 6
    0
      assets/libs/remixicon/icons/Buildings/home-3-line.svg
  44. 6
    0
      assets/libs/remixicon/icons/Buildings/home-4-fill.svg
  45. 6
    0
      assets/libs/remixicon/icons/Buildings/home-4-line.svg
  46. 6
    0
      assets/libs/remixicon/icons/Buildings/home-5-fill.svg
  47. 6
    0
      assets/libs/remixicon/icons/Buildings/home-5-line.svg
  48. 6
    0
      assets/libs/remixicon/icons/Buildings/home-6-fill.svg
  49. 6
    0
      assets/libs/remixicon/icons/Buildings/home-6-line.svg
  50. 6
    0
      assets/libs/remixicon/icons/Buildings/home-7-fill.svg
  51. 6
    0
      assets/libs/remixicon/icons/Buildings/home-7-line.svg
  52. 6
    0
      assets/libs/remixicon/icons/Buildings/home-8-fill.svg
  53. 6
    0
      assets/libs/remixicon/icons/Buildings/home-8-line.svg
  54. 6
    0
      assets/libs/remixicon/icons/Buildings/home-fill.svg
  55. 6
    0
      assets/libs/remixicon/icons/Buildings/home-gear-fill.svg
  56. 6
    0
      assets/libs/remixicon/icons/Buildings/home-gear-line.svg
  57. 6
    0
      assets/libs/remixicon/icons/Buildings/home-heart-fill.svg
  58. 6
    0
      assets/libs/remixicon/icons/Buildings/home-heart-line.svg
  59. 6
    0
      assets/libs/remixicon/icons/Buildings/home-line.svg
  60. 6
    0
      assets/libs/remixicon/icons/Buildings/home-smile-2-fill.svg
  61. 6
    0
      assets/libs/remixicon/icons/Buildings/home-smile-2-line.svg
  62. 6
    0
      assets/libs/remixicon/icons/Buildings/home-smile-fill.svg
  63. 6
    0
      assets/libs/remixicon/icons/Buildings/home-smile-line.svg
  64. 6
    0
      assets/libs/remixicon/icons/Buildings/home-wifi-fill.svg
  65. 6
    0
      assets/libs/remixicon/icons/Buildings/home-wifi-line.svg
  66. 6
    0
      assets/libs/remixicon/icons/Buildings/hospital-fill.svg
  67. 6
    0
      assets/libs/remixicon/icons/Buildings/hospital-line.svg
  68. 6
    0
      assets/libs/remixicon/icons/Buildings/hotel-fill.svg
  69. 6
    0
      assets/libs/remixicon/icons/Buildings/hotel-line.svg
  70. 6
    0
      assets/libs/remixicon/icons/Buildings/store-2-fill.svg
  71. 6
    0
      assets/libs/remixicon/icons/Buildings/store-2-line.svg
  72. 6
    0
      assets/libs/remixicon/icons/Buildings/store-3-fill.svg
  73. 6
    0
      assets/libs/remixicon/icons/Buildings/store-3-line.svg
  74. 6
    0
      assets/libs/remixicon/icons/Buildings/store-fill.svg
  75. 6
    0
      assets/libs/remixicon/icons/Buildings/store-line.svg
  76. 6
    0
      assets/libs/remixicon/icons/Business/advertisement-fill.svg
  77. 6
    0
      assets/libs/remixicon/icons/Business/advertisement-line.svg
  78. 6
    0
      assets/libs/remixicon/icons/Business/archive-drawer-fill.svg
  79. 6
    0
      assets/libs/remixicon/icons/Business/archive-drawer-line.svg
  80. 6
    0
      assets/libs/remixicon/icons/Business/archive-fill.svg
  81. 6
    0
      assets/libs/remixicon/icons/Business/archive-line.svg
  82. 6
    0
      assets/libs/remixicon/icons/Business/at-fill.svg
  83. 6
    0
      assets/libs/remixicon/icons/Business/at-line.svg
  84. 6
    0
      assets/libs/remixicon/icons/Business/attachment-fill.svg
  85. 6
    0
      assets/libs/remixicon/icons/Business/attachment-line.svg
  86. 6
    0
      assets/libs/remixicon/icons/Business/award-fill.svg
  87. 6
    0
      assets/libs/remixicon/icons/Business/award-line.svg
  88. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-2-fill.svg
  89. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-2-line.svg
  90. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-box-fill.svg
  91. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-box-line.svg
  92. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-fill.svg
  93. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-grouped-fill.svg
  94. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-grouped-line.svg
  95. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-horizontal-fill.svg
  96. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-horizontal-line.svg
  97. 6
    0
      assets/libs/remixicon/icons/Business/bar-chart-line.svg
  98. 6
    0
      assets/libs/remixicon/icons/Business/bookmark-2-fill.svg
  99. 6
    0
      assets/libs/remixicon/icons/Business/bookmark-2-line.svg
  100. 0
    0
      assets/libs/remixicon/icons/Business/bookmark-3-fill.svg

+ 344
- 151
assets/css/list.page.css 查看文件

@@ -1,284 +1,477 @@
1
-@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
1
+@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
2 2
 :root {
3
-    --topNavHeight: 75px;
4
-    --rtrWidth: 50px;
5
-    --lftWidth: 275px;
6
-    --tpMenuPad: 30px;
7
-    --icnPadng: 10px 0px;
8
-    --prmBgColor: rgb(244, 244, 221);
9
-    --secdBgColor: #fafaf3;
10
-    --secdSubColor: #f4f4f3;
11
-    --lstPgArc: 15px;
3
+  --topNavHeight: 75px;
4
+  --rtrWidth: 60px;
5
+  --lftWidth: 275px;
6
+  --tpMenuPad: 30px;
7
+  --icnPadng: 10px 0px;
8
+  --prmBgColor: rgb(244, 244, 221);
9
+  --secdBgColor: #fafaf3;
10
+  --secdSubColor: #f4f4f3;
11
+  --lstPgArc: 15px;
12
+  --frmIfrmeWidth: 500px;
13
+  --frmIfrmeHeight: 550px;
14
+  --frmIfrmeHeightPopUp: 80%;
15
+}
16
+a {
17
+  color: #000 !important;
18
+  text-decoration: none !important;
12 19
 }
13
-
14 20
 body {
15
-    margin: 0px;
16
-    padding: 0px;
17
-    font-family: 'Poppins', sans-serif;
21
+  margin: 0px;
22
+  padding: 0px;
23
+  font-family: "Poppins", sans-serif;
18 24
 }
19 25
 
20 26
 ul,
21 27
 li {
22
-    margin: 0px;
23
-    padding: 0px;
24
-    margin-left: 0px;
25
-    margin-right: 0px;
26
-    padding-left: 0px;
27
-    padding-right: 0px;
28
-    list-style: none;
28
+  margin: 0px;
29
+  padding: 0px;
30
+  margin-left: 0px;
31
+  margin-right: 0px;
32
+  padding-left: 0px;
33
+  padding-right: 0px;
34
+  list-style: none;
29 35
 }
30 36
 
31 37
 .list-page {
32
-    display: flex;
33
-    flex-direction: column;
38
+  padding: 0px !important;
39
+  display: flex;
40
+  flex-direction: column;
34 41
 }
35 42
 
36 43
 .tp-bar {
37
-    width: 100%;
38
-    position: fixed;
39
-    top: 0px;
40
-    left: 0px;
41
-    height: var(--topNavHeight);
42
-    display: flex;
43
-    flex-direction: row;
44
-    list-style: none;
45
-    align-items: center;
46
-    padding-left: 0px !important;
47
-    padding-right: 0px !important;
48
-    z-index: 1000;
44
+  width: 100%;
45
+  top: 0px;
46
+  left: 0px;
47
+  height: var(--topNavHeight);
48
+  display: flex;
49
+  flex-direction: row;
50
+  list-style: none;
51
+  align-items: center;
52
+  padding-left: 0px !important;
53
+  padding-right: 0px !important;
54
+  z-index: 1000;
55
+  margin-bottom: 0px;
49 56
 }
50 57
 
51 58
 ul.tp-bar li {
52
-    margin: 0px 16px;
59
+  margin: 0px 16px;
53 60
 }
54 61
 
55 62
 li.logo-li {
56
-    display: flex;
57
-    flex-direction: row;
58
-    align-items: center;
59
-    width: calc(var(--lftWidth) - var(--tpMenuPad));
63
+  display: flex;
64
+  flex-direction: row;
65
+  align-items: center;
66
+  width: calc(var(--lftWidth));
67
+  margin-left: 0px !important;
60 68
 }
61 69
 
62
-.logo {
63
-    font-size: 25px;
64
-    margin-left: 25px;
70
+.logo-li .logo-img {
71
+  height: 50px;
72
+  margin-left: 15px;
73
+  padding: 8px;
65 74
 }
66 75
 
67 76
 .btm-bar {
68
-    position: fixed;
69
-    top: var(--topNavHeight);
70
-    left: 0;
71
-    height: calc(100vh -var(--topNavHeight));
72
-    width: 100%;
73
-    height: 100%;
74
-    display: flex;
75
-    flex-direction: row;
77
+  top: var(--topNavHeight);
78
+  left: 0;
79
+  height: calc(100vh - var(--topNavHeight));
80
+  width: 100%;
81
+  height: 100%;
82
+  display: flex;
83
+  flex-direction: row;
76 84
 }
77 85
 
78 86
 .lft-nav-bar {
79
-    position: fixed;
80
-    left: 0;
81
-    width: var(--lftWidth);
82
-    height: inherit;
83
-    display: flex;
84
-    flex-direction: row;
87
+  position: fixed;
88
+  left: 0;
89
+  width: var(--lftWidth);
90
+  height: inherit;
91
+  display: flex;
92
+  flex-direction: row;
85 93
 }
86 94
 
87 95
 .lft-nav-bar .lft-nav-bar-1,
88 96
 .lft-nav-bar .lft-nav-bar-2 {
89
-    list-style: none;
90
-    margin-bottom: 0px !important;
91
-    padding-left: 0px !important;
97
+  list-style: none;
98
+  margin-bottom: 0px !important;
99
+  padding-left: 0px;
92 100
 }
93
-
94 101
 .lft-nav-bar-1 {
95
-    width: var(--rtrWidth);
96
-    display: flex;
97
-    flex-direction: column;
98
-    align-items: center;
99
-    background-color: var(--prmBgColor);
102
+  padding: 0px 5px !important;
103
+  width: var(--rtrWidth);
104
+  display: flex;
105
+  flex-direction: column;
106
+  align-items: center;
107
+  background-color: var(--prmBgColor);
100 108
 }
101 109
 
102
-.lft-nav-bar-1 li,
110
+.lft-nav-bar-1 li {
111
+  margin: 4px 0px;
112
+}
103 113
 .lft-nav-bar-2 li {
104
-    margin: var(--icnPadng);
114
+  margin: 6px 0px;
105 115
 }
106
-
107 116
 .lft-nav-bar-2 li {
108
-    font-size: 16px;
109
-    padding: 0px 15px;
117
+  font-size: 16px;
118
+  padding: 0px 15px;
110 119
 }
111 120
 
112 121
 .lft-nav-bar-2 {
113
-    width: calc(var(--lftWidth) - var(--rtrWidth));
114
-    display: flex;
115
-    flex-direction: column;
116
-    background-color: var(--secdBgColor);
117
-    transition: width 0.3s;
122
+  width: calc(var(--lftWidth) - var(--rtrWidth));
123
+  display: flex;
124
+  flex-direction: column;
125
+  background-color: var(--secdBgColor);
126
+  transition: width 0.3s;
118 127
 }
119 128
 
120 129
 .rtr-nav-bar {
121
-    position: fixed;
122
-    right: 0;
123
-    width: var(--rtrWidth);
124
-    height: inherit;
125
-    background-color: var(--prmBgColor);
126
-    list-style: none;
127
-    display: flex;
128
-    flex-direction: column;
129
-    align-items: center;
130
+  position: fixed;
131
+  right: 0;
132
+  width: var(--rtrWidth);
133
+  height: inherit;
134
+  background-color: var(--prmBgColor);
135
+  list-style: none;
136
+  display: flex;
137
+  flex-direction: column;
138
+  align-items: center;
130 139
 }
131 140
 
132 141
 .rtr-nav-bar span {
133
-    margin: var(--icnPadng);
142
+  margin: var(--icnPadng);
134 143
 }
135 144
 
136 145
 .ctr-lst-pge {
137
-    position: fixed;
138
-    z-index: 2;
139
-    left: var(--lftWidth);
140
-    right: var(--rtrWidth);
141
-    height: inherit;
142
-    margin: 0px 20px;
143
-    background-color: var(--secdSubColor);
144
-    border-top-left-radius: var(--lstPgArc);
145
-    border-top-right-radius: var(--lstPgArc);
146
+  position: fixed;
147
+  z-index: -1;
148
+  left: var(--lftWidth);
149
+  right: var(--rtrWidth);
150
+  height: inherit;
151
+  margin: 0px 20px;
152
+  background-color: var(--secdSubColor);
153
+  border-top-left-radius: var(--lstPgArc);
154
+  border-top-right-radius: var(--lstPgArc);
146 155
 }
147 156
 
148 157
 .srch-bar {
149
-    width: 35%;
158
+  width: 35%;
150 159
 }
151 160
 
152 161
 .form-control#searchBar {
153
-    padding: 10px;
154
-    box-shadow: none;
155
-    width: 100%;
162
+  padding: 10px;
163
+  box-shadow: none;
164
+  width: 100%;
156 165
 }
157 166
 
158 167
 .ml-auto {
159
-    margin-left: auto !important;
168
+  margin-left: auto !important;
160 169
 }
161 170
 
162 171
 .mr-auto {
163
-    margin-right: auto !important;
172
+  margin-right: auto !important;
164 173
 }
165 174
 
166 175
 .mt-auto {
167
-    margin-top: auto !important;
176
+  margin-top: auto !important;
168 177
 }
169 178
 
170 179
 .mb-auto {
171
-    margin-bottom: auto !important;
180
+  margin-bottom: auto !important;
172 181
 }
173 182
 
174
-.la {
175
-    font-size: 20px;
176
-    color: black;
183
+.la,
184
+[class^="ri-"] {
185
+  font-size: 1.2em;
186
+  color: black;
187
+}
188
+.lft-nav-bar-2 [class^="ri-"] {
189
+  font-size: 1.35em;
190
+  color: black;
177 191
 }
178 192
 
179 193
 .icn-circle:hover {
180
-    color: white;
194
+  color: white;
181 195
 }
182 196
 
183 197
 .icn-circle {
184
-    background-color: firebrick;
185
-    color: white;
186
-    padding: 10px;
187
-    text-decoration: none;
198
+  font-size: 12px;
199
+  background-color: firebrick;
200
+  color: white;
201
+  padding: 8px;
202
+  text-decoration: none;
188 203
 }
189 204
 
190 205
 .hdr {
191
-    font-size: 16px;
192
-    padding: 10px 5px;
193
-    font-weight: 600;
194
-    text-transform: capitalize;
195
-    background-color: #e3e3e3;
206
+  font-size: 16px;
207
+  padding: 10px 5px;
208
+  font-weight: 600;
209
+  text-transform: capitalize;
210
+  background-color: #e3e3e3;
196 211
 }
197 212
 
198 213
 .mnNvIcn,
199 214
 .mnNvIcn:focus {
200
-    box-shadow: none !important;
215
+  box-shadow: none !important;
216
+}
217
+.mnNvIcn-div {
218
+  width: var(--rtrWidth);
219
+  display: flex;
220
+  justify-content: center;
221
+  align-items: center;
222
+}
223
+.mnNvIcn {
224
+  text-decoration: none;
225
+  margin: 0px 5px;
226
+}
227
+.mnNvIcn:hover {
228
+  /* background-color: var(--prmBgColor); */
229
+  background-color: #e8eaed;
230
+  padding: 3px 7px;
231
+  border-radius: 50%;
201 232
 }
202 233
 
203 234
 .lft-nav-bar.lft-nav-bar-Wrap {
204
-    width: var(--rtrWidth);
205
-    transition: width 0.3s;
235
+  width: var(--rtrWidth);
236
+  transition: width 0.3s;
206 237
 }
207 238
 
208 239
 .lft-nav-bar.lft-nav-bar-Wrap .lft-nav-bar-2 {
209
-    display: none;
210
-    transition: display 0.3s;
240
+  display: none;
241
+  transition: display 0.3s;
211 242
 }
212 243
 
213 244
 .bdy-ul {
214
-    height: 100%;
215
-    overflow-y: scroll;
245
+  height: 100%;
246
+  overflow-y: scroll;
216 247
 }
217 248
 
218 249
 .ctr-lst-pge.lft-nav-bar-Wrap {
219
-    left: var(--rtrWidth);
220
-    transition: left 0.3s;
250
+  left: var(--rtrWidth);
251
+  transition: left 0.3s;
221 252
 }
222 253
 
223 254
 a.badge {
224
-    font-size: 14px;
225
-    font-weight: 500;
226
-    color: inherit;
227
-    text-decoration: none;
255
+  font-size: 14px;
256
+  font-weight: 500;
257
+  color: inherit;
258
+  text-decoration: none;
228 259
 }
229 260
 
230 261
 .badge.badge-soft-green,
231 262
 .badge.badge-soft-success {
232
-    background: #E6FBF2;
233
-    color: #00D67F;
263
+  background: #e6fbf2;
264
+  color: #00d67f;
234 265
 }
235 266
 
236
-
237 267
 /* scroll bar start here*/
238 268
 
239 269
 ::-webkit-scrollbar {
240
-    width: 6px;
270
+  width: 6px;
241 271
 }
242 272
 
243
-
244 273
 /* Track */
245 274
 
246
- ::-webkit-scrollbar-track {
247
-    background: #f1f1f1;
275
+::-webkit-scrollbar-track {
276
+  background: #f1f1f1;
248 277
 }
249 278
 
250
-
251 279
 /* Handle */
252 280
 
253
- ::-webkit-scrollbar-thumb {
254
-    background: #888;
281
+::-webkit-scrollbar-thumb {
282
+  background: #888;
255 283
 }
256 284
 
257
-
258 285
 /* Handle on hover */
259 286
 
260
- ::-webkit-scrollbar-thumb:hover {
261
-    background: #555;
287
+::-webkit-scrollbar-thumb:hover {
288
+  background: #555;
262 289
 }
263 290
 
264
-
265 291
 /* Scroll bar End Here */
266 292
 
267 293
 .accordion-button::after {
268
-    background-size: 0.9rem !important;
269
-    ;
294
+  background-size: 0.9rem !important;
270 295
 }
271 296
 
272 297
 a[role="button"]:focus {
273
-    box-shadow: none !important;
298
+  box-shadow: none !important;
274 299
 }
275 300
 
276 301
 #notifi-list .item-li:first .accordion-button:not(.collapsed) {
277
-    border-top-left-radius: var(--lstPgArc);
278
-    border-top-right-radius: var(--lstPgArc);
302
+  border-top-left-radius: var(--lstPgArc);
303
+  border-top-right-radius: var(--lstPgArc);
279 304
 }
280 305
 
281 306
 input[type="checkbox"] {
282
-    box-shadow: none !important;
283
-    border-radius: 2px;
284
-}
307
+  box-shadow: none !important;
308
+  border-radius: 2px;
309
+}
310
+
311
+.snd-fd-biz {
312
+  border-top: 1px solid rgba(0, 0, 0, 0.15);
313
+}
314
+.tp-bar li a {
315
+  padding: 3px 7px;
316
+  margin-top: 3px;
317
+}
318
+.nav-lft-item {
319
+  padding: 3px 7px;
320
+  display: flex;
321
+  flex-direction: column;
322
+  align-items: center;
323
+}
324
+.nav-lft-item span:nth-child(1) {
325
+  padding: 3px 7px;
326
+}
327
+.nav-lft-item span:nth-child(2) {
328
+  font-size: 13px;
329
+  color: #000;
330
+  font-weight: 400;
331
+}
332
+.tp-bar li a.nav-lft-item:hover {
333
+  padding-bottom: 5px !important;
334
+  padding: 8px;
335
+  background-color: #e8eaed;
336
+  border-radius: 50%;
337
+}
338
+button {
339
+  box-shadow: none !important;
340
+}
341
+button:focus {
342
+  box-shadow: none !important;
343
+}
344
+.plus {
345
+  color: #000;
346
+  margin-right: 8px;
347
+}
348
+.plus + span {
349
+  margin-right: 8px;
350
+  margin-bottom: 2px;
351
+}
352
+.create {
353
+  display: flex !important;
354
+  align-items: center;
355
+  color: #000 !important;
356
+  padding: 8px 8px !important;
357
+  background-color: var(--prmBgColor) !important;
358
+  border-color: var(--prmBgColor) !important;
359
+  border-top-left-radius: 18px !important;
360
+  border-bottom-left-radius: 18px !important;
361
+  border-top-right-radius: 18px !important;
362
+  border-bottom-right-radius: 18px !important;
363
+}
364
+.sub-nav-item {
365
+  display: flex;
366
+  align-items: center;
367
+  padding: 4px 10px !important;
368
+  font-size: 14px;
369
+  text-decoration: none;
370
+  color: #000;
371
+}
372
+.sub-nav-item.active,
373
+.sub-nav-item:hover {
374
+  color: #000;
375
+  background-color: var(--prmBgColor);
376
+  border-top-left-radius: 16px;
377
+  border-top-right-radius: 16px;
378
+  border-bottom-left-radius: 16px;
379
+  border-bottom-right-radius: 16px;
380
+}
381
+.sub-nav-item span {
382
+  margin-right: 10px;
383
+}
384
+.nav-lft-item.active span:nth-child(1),
385
+.nav-lft-item:hover span:nth-child(1) {
386
+  background-color: var(--secdBgColor);
387
+  border-radius: 50%;
388
+  padding: 3px 7px;
389
+}
390
+ul.ul-drpdown li {
391
+  padding: 0px !important;
392
+}
393
+ul.hdr-ul {
394
+  display: flex;
395
+  flex-direction: row;
396
+  align-items: center;
397
+  background-color: var(--secdBgColor);
398
+  border-top-left-radius: var(--lstPgArc);
399
+  border-top-right-radius: var(--lstPgArc);
400
+  height: 50px;
401
+}
402
+.chk-box-btn {
403
+  background-color: unset;
404
+  box-shadow: none;
405
+}
406
+ul.hdr-ul li {
407
+  margin: 0px 8px;
408
+}
409
+.pggtn {
410
+  padding: 0px 8px;
411
+  display: flex;
412
+  flex-direction: row;
413
+  align-items: center;
414
+}
415
+.li-pgn {
416
+  display: flex;
417
+  flex-direction: row;
418
+  align-items: center;
419
+  margin-left: auto !important;
420
+}
421
+.pggtn .lss-than,
422
+.pggtn .grtr-than {
423
+  margin: 0px 8px;
424
+}
425
+.nt-actve .la,
426
+.nt-actve [class^="ri-"] {
427
+  color: #e3e3e3 !important;
428
+}
429
+.rtr-nav-bar .rtr-item {
430
+  margin: 4px;
431
+  padding: 6px 12px;
432
+}
433
+.rtr-nav-bar .rtr-item:hover {
434
+  background-color: var(--secdBgColor);
435
+  border-radius: 50%;
436
+  padding: 6px 10px;
437
+}
438
+.frm-ifre {
439
+  width: var(--frmIfrmeWidth);
440
+  z-index: 1;
441
+  background-color: #f3f3f3;
442
+  height: var(--frmIfrmeHeight);
443
+  position: absolute;
444
+  bottom: 0px;
445
+  right: calc(var(--rtrWidth) + 20px);
446
+  border: 1px solid #dadada;
447
+  border-radius: 3px;
448
+}
449
+.frm-hdr {
450
+  padding: 0px 10px;
451
+  height: 40px;
452
+  display: flex;
453
+  flex-direction: row;
454
+  align-items: center;
455
+}
456
+.frm-hdr .ctrl {
457
+  margin-left: auto;
458
+  height: 40px;
459
+  display: flex;
460
+  flex-direction: row;
461
+  align-items: center;
462
+}
463
+.frm-hdr .ctrl .la {
464
+  font-size: 16px;
465
+  color: #000;
466
+}
467
+.frm-hdr .ctrl a {
468
+  margin: 0px 8px;
469
+}
470
+.ld-frm-src {
471
+  width: var(--frmIfrmeWidth);
472
+  height: calc(var(--frmIfrmeHeight) - 42px);
473
+}
474
+#crte-btn-lst {
475
+  height: 400px;
476
+  overflow-y: scroll;
477
+}

+ 153
- 154
assets/css/login.css 查看文件

@@ -1,4 +1,4 @@
1
-@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
1
+@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
2 2
 
3 3
 html,
4 4
 body,
@@ -13,282 +13,281 @@ h6,
13 13
 p,
14 14
 a,
15 15
 input {
16
-    margin: 0;
17
-    padding: 0;
18
-    border: 0;
19
-    font-size: 100%;
20
-    font: inherit;
21
-    vertical-align: baseline;
16
+  margin: 0;
17
+  padding: 0;
18
+  border: 0;
19
+  font-size: 100%;
20
+  font: inherit;
21
+  vertical-align: baseline;
22 22
 }
23 23
 
24 24
 body {
25
-    margin: 0;
26
-    font-family: 'Poppins', sans-serif;
27
-    color: #3d3d3d;
25
+  margin: 0;
26
+  font-family: "Poppins", sans-serif;
27
+  color: #3d3d3d;
28 28
 }
29 29
 
30 30
 .d-none {
31
-    display: none;
31
+  display: none;
32 32
 }
33 33
 
34 34
 .biz-login-wrap {
35
-    width: 100%;
36
-    display: flex;
37
-    align-items: center;
38
-    height: 100vh;
39
-    margin: 0;
35
+  width: 100%;
36
+  display: flex;
37
+  align-items: center;
38
+  height: 100vh;
39
+  margin: 0;
40 40
 }
41 41
 
42 42
 .biz-login-wrap .form-container {
43
-    width: 375px;
44
-    height: auto;
45
-    margin: auto;
46
-    position: relative;
47
-    padding: 40px;
48
-    border: 1px solid #dadce0;
49
-    border-radius: 5px;
50
-    overflow: hidden;
43
+  width: 375px;
44
+  height: auto;
45
+  margin: auto;
46
+  position: relative;
47
+  padding: 40px;
48
+  border: 1px solid #dadce0;
49
+  border-radius: 5px;
50
+  overflow: hidden;
51 51
 }
52 52
 
53 53
 .biz-login-wrap .form-group {
54
-    position: relative;
54
+  position: relative;
55 55
 }
56 56
 
57 57
 .biz-login-wrap .form-group input {
58
-    width: 100%;
59
-    box-sizing: border-box;
60
-    border: 1px solid #d0d0d0;
61
-    background-color: transparent;
62
-    border-radius: 4px;
63
-    color: #202124;
64
-    font-size: 16px;
65
-    margin: 1px 1px 0 1px;
66
-    padding: 13px 15px;
67
-    z-index: 1;
58
+  width: 100%;
59
+  box-sizing: border-box;
60
+  border: 1px solid #d0d0d0;
61
+  background-color: transparent;
62
+  border-radius: 4px;
63
+  color: #202124;
64
+  font-size: 16px;
65
+  margin: 1px 1px 0 1px;
66
+  padding: 13px 15px;
67
+  z-index: 1;
68 68
 }
69 69
 
70 70
 .biz-login-wrap .form-group input.error {
71
-    border-color: #d93025;
71
+  border-color: #d93025;
72 72
 }
73 73
 
74 74
 .biz-login-wrap .form-group label {
75
-    position: absolute;
76
-    left: 10px;
77
-    top: 50%;
78
-    transform: translateY(-50%);
79
-    color: #a5a5a5;
80
-    font-size: 16px;
81
-    padding: 0px 4px;
82
-    background-color: white;
83
-    transition-property: transform;
84
-    transition-duration: 500ms;
85
-    z-index: -1;
75
+  position: absolute;
76
+  left: 10px;
77
+  top: 50%;
78
+  transform: translateY(-50%);
79
+  color: #a5a5a5;
80
+  font-size: 16px;
81
+  padding: 0px 4px;
82
+  background-color: white;
83
+  transition-property: transform;
84
+  transition-duration: 500ms;
85
+  z-index: -1;
86 86
 }
87 87
 
88 88
 .biz-login-wrap .form-link a {
89
-    color: #1a73e8;
90
-    font-size: 16px;
91
-    font-weight: 500;
89
+  color: #1a73e8;
90
+  font-size: 16px;
91
+  font-weight: 500;
92 92
 }
93 93
 
94 94
 .biz-login-wrap .form-link label {
95
-    color: #5f6368;
96
-    font-size: 14px;
97
-    display: inline-block;
95
+  color: #5f6368;
96
+  font-size: 14px;
97
+  display: inline-block;
98 98
 }
99 99
 
100
-.email-input:focus+label {
101
-    transform: translate3d(0, -175%, 0);
102
-    z-index: 1;
103
-    color: #1a73e8;
100
+.email-input:focus + label {
101
+  transform: translate3d(0, -175%, 0);
102
+  z-index: 1;
103
+  color: #1a73e8;
104 104
 }
105 105
 
106
-.biz-login-wrap .password-input:focus+label {
107
-    transform: translate3d(0, -175%, 0);
108
-    z-index: 1;
109
-    color: #1a73e8;
106
+.biz-login-wrap .password-input:focus + label {
107
+  transform: translate3d(0, -175%, 0);
108
+  z-index: 1;
109
+  color: #1a73e8;
110 110
 }
111 111
 
112
-.biz-login-wrap .form-group input.error:focus+label {
113
-    color: #d93025;
112
+.biz-login-wrap .form-group input.error:focus + label {
113
+  color: #d93025;
114 114
 }
115 115
 
116 116
 .biz-login-wrap .form-group label.password-fixed {
117
-    transform: translate3d(0, -175%, 0);
118
-    z-index: 1 !important;
119
-    color: #1a73e8;
117
+  transform: translate3d(0, -175%, 0);
118
+  z-index: 1 !important;
119
+  color: #1a73e8;
120 120
 }
121 121
 
122 122
 .biz-login-wrap .form-header {
123
-    display: flex;
124
-    flex-direction: column;
125
-    justify-content: center;
126
-    align-items: center;
127
-    row-gap: 20px;
128
-    margin-bottom: 40px;
123
+  display: flex;
124
+  flex-direction: column;
125
+  justify-content: center;
126
+  align-items: center;
127
+  row-gap: 20px;
128
+  margin-bottom: 40px;
129 129
 }
130 130
 
131 131
 .biz-login-wrap .form-header h2 {
132
-    margin: 0;
133
-    font-size: 24px;
134
-    font-weight: 500;
132
+  margin: 0;
133
+  font-size: 24px;
134
+  font-weight: 500;
135 135
 }
136 136
 
137 137
 .biz-login-wrap .form-header h4 {
138
-    font-size: 16px;
139
-    font-weight: 500;
138
+  font-size: 16px;
139
+  font-weight: 500;
140 140
 }
141 141
 
142 142
 .biz-login-wrap .form-body {
143
-    display: flex;
144
-    flex-direction: column;
145
-    row-gap: 30px;
143
+  display: flex;
144
+  flex-direction: column;
145
+  row-gap: 30px;
146 146
 }
147 147
 
148 148
 .biz-login-wrap .password-form-box {
149
-    row-gap: 60px;
149
+  row-gap: 60px;
150 150
 }
151 151
 
152 152
 .biz-login-wrap .login-logo {
153
-    width: 150px;
154
-    margin: 0 auto;
153
+  width: 150px;
154
+  margin: 0 auto;
155 155
 }
156 156
 
157 157
 .biz-login-wrap .btn {
158
-    float: right;
159
-    color: white;
160
-    background: #1a73e8;
161
-    border: 0;
162
-    padding: 8px 22px;
163
-    border-radius: 4px;
164
-    font-weight: 500;
165
-    font-size: 16px;
166
-    cursor: pointer;
158
+  float: right;
159
+  color: white;
160
+  background: #1a73e8;
161
+  border: 0;
162
+  padding: 8px 22px;
163
+  border-radius: 4px;
164
+  font-weight: 500;
165
+  font-size: 16px;
166
+  cursor: pointer;
167 167
 }
168 168
 
169 169
 .biz-login-wrap a {
170
-    text-decoration: none;
170
+  text-decoration: none;
171 171
 }
172 172
 
173 173
 .biz-login-wrap .flex-between-center {
174
-    display: flex;
175
-    align-items: center;
176
-    justify-content: space-between;
174
+  display: flex;
175
+  align-items: center;
176
+  justify-content: space-between;
177 177
 }
178 178
 
179 179
 .biz-login-wrap .mt-5 {
180
-    margin-top: 5px;
180
+  margin-top: 5px;
181 181
 }
182 182
 
183 183
 .biz-login-wrap .mt-10 {
184
-    margin-top: 10px;
184
+  margin-top: 10px;
185 185
 }
186 186
 
187 187
 .biz-login-wrap .password-checkbox {
188
-    width: 20px;
189
-    height: 20px;
190
-    margin-right: 5px;
188
+  width: 20px;
189
+  height: 20px;
190
+  margin-right: 5px;
191 191
 }
192 192
 
193 193
 .biz-login-wrap .show-password-link {
194
-    display: flex;
195
-    align-items: center;
196
-    column-gap: 10px;
197
-    margin-top: 15px;
194
+  display: flex;
195
+  align-items: center;
196
+  column-gap: 10px;
197
+  margin-top: 15px;
198 198
 }
199 199
 
200 200
 .biz-login-wrap .show-password-link label {
201
-    font-size: 16px;
202
-    font-weight: 500;
201
+  font-size: 16px;
202
+  font-weight: 500;
203 203
 }
204 204
 
205 205
 .biz-login-wrap .err-msg:not(:empty) {
206
-    color: #d93025;
207
-    font-size: 12px;
208
-    margin-top: 5px;
206
+  color: #d93025;
207
+  font-size: 12px;
208
+  margin-top: 5px;
209 209
 }
210 210
 
211 211
 .biz-login-wrap h4 {
212
-    font-size: 16px;
213
-    font-weight: 500;
212
+  font-size: 16px;
213
+  font-weight: 500;
214 214
 }
215 215
 
216
-.biz-login-wrap #txt_PhoneorMail:focus+label {
217
-    transform: translate3d(0, -175%, 0);
218
-    z-index: 1;
219
-    color: #1a73e8;
216
+.biz-login-wrap #txt_PhoneorMail:focus + label {
217
+  transform: translate3d(0, -175%, 0);
218
+  z-index: 1;
219
+  color: #1a73e8;
220 220
 }
221 221
 
222
-.biz-login-wrap #txt_Code:focus+label {
223
-    transform: translate3d(0, -175%, 0);
224
-    z-index: 1;
225
-    color: #1a73e8;
222
+.biz-login-wrap #txt_Code:focus + label {
223
+  transform: translate3d(0, -175%, 0);
224
+  z-index: 1;
225
+  color: #1a73e8;
226 226
 }
227 227
 
228
-.biz-login-wrap #txt_NewPassword:focus+label {
229
-    transform: translate3d(0, -175%, 0);
230
-    z-index: 1;
231
-    color: #1a73e8;
228
+.biz-login-wrap #txt_NewPassword:focus + label {
229
+  transform: translate3d(0, -175%, 0);
230
+  z-index: 1;
231
+  color: #1a73e8;
232 232
 }
233 233
 
234
-#txt_ConfirmPassword:focus+label {
235
-    transform: translate3d(0, -175%, 0);
236
-    z-index: 1;
237
-    color: #1a73e8;
234
+#txt_ConfirmPassword:focus + label {
235
+  transform: translate3d(0, -175%, 0);
236
+  z-index: 1;
237
+  color: #1a73e8;
238 238
 }
239 239
 
240 240
 .back-btn {
241
-    text-align: right;
242
-    margin: 0px 20px;
241
+  text-align: right;
242
+  margin: 0px 20px;
243 243
 }
244 244
 
245 245
 .btn-block {
246
-    margin-top: 10px;
247
-    margin-bottom: 20px;
246
+  margin-top: 10px;
247
+  margin-bottom: 20px;
248 248
 }
249 249
 
250 250
 .btn-block {
251
-    width: 100%;
251
+  width: 100%;
252 252
 }
253 253
 
254 254
 .opt-text {
255
-    text-align: center;
256
-    margin: 10px 0px;
255
+  text-align: center;
256
+  margin: 10px 0px;
257 257
 }
258 258
 
259 259
 .verify-block {
260
-    margin: 10px 0px;
260
+  margin: 10px 0px;
261 261
 }
262 262
 
263 263
 .verify-block .btn {
264
-    margin-left: 5px;
264
+  margin-left: 5px;
265 265
 }
266 266
 
267 267
 .biz-login-wrap h2 {
268
-    margin: 0;
269
-    font-size: 24px;
270
-    font-weight: 500;
271
-    text-align: center;
268
+  margin: 0;
269
+  font-size: 24px;
270
+  font-weight: 500;
271
+  text-align: center;
272 272
 }
273 273
 
274 274
 .reset-success {
275
-    text-align: center;
276
-    margin: 20px 0px;
275
+  text-align: center;
276
+  margin: 20px 0px;
277 277
 }
278 278
 
279 279
 .conformPassword {
280
-    margin-top: 30px;
280
+  margin-top: 30px;
281 281
 }
282
-.error-warning{
283
-    font-weight:700 ;
284
-    color: white;
285
-    margin-right: 5px;
282
+.error-warning {
283
+  font-weight: 700;
284
+  color: white;
285
+  margin-right: 5px;
286 286
 }
287 287
 div#div_ValidationSummary {
288
-    background: #ce1717;
289
-    color: white;
290
-    
288
+  background: #ce1717;
289
+  color: white;
290
+}
291
+.p-2 {
292
+  padding: 5px;
291 293
 }
292
-.p-2{
293
-    padding: 5px;
294
-}

+ 77
- 67
assets/js/base.js 查看文件

@@ -1,80 +1,90 @@
1
-import {
2
-    decrypt
3
-} from "./cookiehelper.js";
4
-import {
5
-    _serverUrl
6
-} from "./setting.js";
1
+import {decrypt} from "./cookiehelper.js";
2
+import {_serverUrl} from "./setting.js";
7 3
 
8 4
 let serverUrl = _serverUrl();
9
-let baseUserInfo = decrypt(document.cookie.split('=')[1]);
5
+let baseUserInfo = decrypt(document.cookie.split("=")[1]);
10 6
 let baseSessionId = baseUserInfo.sessionId;
11 7
 
12 8
 export function getData(url) {
13
-    var datastr = null;
14
-    var method = "GET";
15
-    let serviceurl = serverUrl + url;
9
+  var datastr = null;
10
+  var method = "GET";
11
+  let serviceurl = serverUrl + url;
16 12
 
17
-    return $.ajax({
18
-        type: method,
19
-        url: serviceurl,
20
-        crossDomain: true,
21
-        contentType: "application/json",
22
-        cache: true,
23
-        jsonp: false,
24
-        data: datastr,
25
-        beforeSend: function(xhr) {
26
-            if (baseUserInfo != undefined && baseUserInfo != null) {
27
-                xhr.setRequestHeader("Authorization", "Basic " + JSON.parse(baseUserInfo).sessionId);
28
-                xhr.setRequestHeader('geoposition', 0 + ':' + 0);
29
-            }
30
-        }
31
-    });
13
+  return $.ajax({
14
+    type: method,
15
+    url: serviceurl,
16
+    crossDomain: true,
17
+    contentType: "application/json",
18
+    cache: true,
19
+    jsonp: false,
20
+    data: datastr,
21
+    beforeSend: function (xhr) {
22
+      if (baseUserInfo != undefined && baseUserInfo != null) {
23
+        xhr.setRequestHeader(
24
+          "Authorization",
25
+          "Basic " + JSON.parse(baseUserInfo).sessionId
26
+        );
27
+        xhr.setRequestHeader("geoposition", 0 + ":" + 0);
28
+      }
29
+    },
30
+  });
32 31
 }
33 32
 
34
-export function getDataObj(url, data, async, type) { //url, data, true, "POST"
33
+export function getDataObj(url, data, async, type) {
34
+  //url, data, true, "POST"
35 35
 
36
-    let serviceurl = serverUrl + url;
37
-    return $.ajax({
38
-        type: type,
39
-        url: serviceurl,
40
-        data: JSON.stringify(data),
41
-        contentType: 'application/json',
42
-        traditional: true,
43
-        crossDomain: true,
44
-        async: async,
45
-        beforeSend: function(xhr) {
46
-            if (baseUserInfo != undefined && baseUserInfo != null) {
47
-                xhr.setRequestHeader('Authorization', 'Basic ' + JSON.parse(baseUserInfo).sessionId);
48
-                xhr.setRequestHeader('geoposition', 0 + ':' + 0);
49
-            }
50
-        }
51
-    });
36
+  let serviceurl = serverUrl + url;
37
+  return $.ajax({
38
+    type: type,
39
+    url: serviceurl,
40
+    data: JSON.stringify(data),
41
+    contentType: "application/json",
42
+    traditional: true,
43
+    crossDomain: true,
44
+    async: async,
45
+    beforeSend: function (xhr) {
46
+      if (baseUserInfo != undefined && baseUserInfo != null) {
47
+        xhr.setRequestHeader(
48
+          "Authorization",
49
+          "Basic " + JSON.parse(baseUserInfo).sessionId
50
+        );
51
+        xhr.setRequestHeader("geoposition", 0 + ":" + 0);
52
+      }
53
+    },
54
+  });
52 55
 }
53 56
 
54 57
 export function formatLocal(dateTime) {
55
-    var hou = new Date(dateTime).getHours(),
56
-        sec, min, day, month, years;
57
-    if (hou < 24) {
58
-        min = new Date(dateTime).getMinutes();
59
-        if (min < 60) {
60
-            sec = new Date(dateTime).getSeconds();
61
-            if (sec < 60) {
62
-                return sec + ' Seconds';
63
-            }
64
-        } else {
65
-            return min + ' Minutes';
66
-        }
67
-        return hou + ' Hours';
68
-    } else { //24 >
69
-        day = new Date(dateTime).getHours();
70
-        if (day > 31) { // 31 day
71
-            month = new Date(dateTime).getMonth();
72
-            if (month > 12) { // 12 months
73
-                years = new Date(dateTime).getFullYear();
74
-                return years + ' Years';
75
-            }
76
-            return month + ' month';
77
-        }
78
-        return day + ' day';
58
+  var hou = new Date(dateTime).getHours(),
59
+    sec,
60
+    min,
61
+    day,
62
+    month,
63
+    years;
64
+  if (hou < 24) {
65
+    min = new Date(dateTime).getMinutes();
66
+    if (min < 60) {
67
+      sec = new Date(dateTime).getSeconds();
68
+      if (sec < 60) {
69
+        return sec + " Seconds";
70
+      }
71
+    } else {
72
+      return min + " Minutes";
79 73
     }
80
-}
74
+    return hou + " Hours";
75
+  } else {
76
+    //24 >
77
+    day = new Date(dateTime).getHours();
78
+    if (day > 31) {
79
+      // 31 day
80
+      month = new Date(dateTime).getMonth();
81
+      if (month > 12) {
82
+        // 12 months
83
+        years = new Date(dateTime).getFullYear();
84
+        return years + " Years";
85
+      }
86
+      return month + " month";
87
+    }
88
+    return day + " day";
89
+  }
90
+}

+ 13
- 13
assets/js/cookiehelper.js 查看文件

@@ -1,6 +1,6 @@
1
-const cryptoProvider = window['CryptoJS'];
2
-const cryptoAlgorithm = window['CryptoJS'].AES;
3
-const _secretKey = 'unibase';
1
+const cryptoProvider = window["CryptoJS"];
2
+const cryptoAlgorithm = window["CryptoJS"].AES;
3
+const _secretKey = "unibase";
4 4
 
5 5
 export function encrypt(content) {
6 6
   return cryptoAlgorithm.encrypt(content, _secretKey).toString();
@@ -13,29 +13,29 @@ export function decrypt(encoded) {
13 13
 }
14 14
 
15 15
 export function setCookie(cname, cvalue, exdays) {
16
-  let _cookievalue = '';
16
+  let _cookievalue = "";
17 17
   if (cvalue) {
18 18
     _cookievalue = encrypt(cvalue);
19 19
   }
20 20
   var d = new Date();
21 21
   d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
22
-  var expires = 'expires=' + d.toUTCString();
22
+  var expires = "expires=" + d.toUTCString();
23 23
   document.cookie =
24 24
     cname +
25
-    '=' +
25
+    "=" +
26 26
     _cookievalue +
27
-    ';' +
27
+    ";" +
28 28
     expires +
29
-    ';path=/;samesite=none;secure=true';
29
+    ";path=/;samesite=none;secure=true";
30 30
 }
31 31
 
32 32
 export function getCookie(cname) {
33
-  var name = cname + '=';
33
+  var name = cname + "=";
34 34
   var decodedCookie = decodeURIComponent(document.cookie);
35
-  var ca = decodedCookie.split(';');
35
+  var ca = decodedCookie.split(";");
36 36
   for (var i = 0; i < ca.length; i++) {
37 37
     var c = ca[i];
38
-    while (c.charAt(0) === ' ') {
38
+    while (c.charAt(0) === " ") {
39 39
       c = c.substring(1);
40 40
     }
41 41
 
@@ -45,11 +45,11 @@ export function getCookie(cname) {
45 45
       return cookie_decrypt;
46 46
     }
47 47
   }
48
-  return '';
48
+  return "";
49 49
 }
50 50
 
51 51
 export function isAuthenticated() {
52
-  if (getCookie('_idty')) {
52
+  if (getCookie("_idty")) {
53 53
     return true;
54 54
   }
55 55
   return false;

+ 130
- 125
assets/js/forgotpassword.js 查看文件

@@ -1,142 +1,147 @@
1
-const serverUrl = 'http://localhost:3086/';
1
+const serverUrl = "http://localhost:3086/";
2 2
 let otpid;
3 3
 let sendotp;
4 4
 let unibaseid;
5 5
 async function showOtpBox() {
6
-    let inputdetails = document.getElementById('txt_PhoneorMail').value;
6
+  let inputdetails = document.getElementById("txt_PhoneorMail").value;
7 7
 
8
-    let sendnumber = await fetch(serverUrl + 'account/getuserbyphoneormail/' + inputdetails + '/' + inputdetails)
9
-    let textdata = await sendnumber.json();
10
-    if (textdata.result != null) {
11
-        unibaseid = textdata.result.unibaseId;
12
-        var myHeaders = new Headers();
13
-        myHeaders.append("Content-Type", "application/json");
8
+  let sendnumber = await fetch(
9
+    serverUrl +
10
+      "account/getuserbyphoneormail/" +
11
+      inputdetails +
12
+      "/" +
13
+      inputdetails
14
+  );
15
+  let textdata = await sendnumber.json();
16
+  if (textdata.result != null) {
17
+    unibaseid = textdata.result.unibaseId;
18
+    var myHeaders = new Headers();
19
+    myHeaders.append("Content-Type", "application/json");
14 20
 
15
-        var raw = JSON.stringify({
16
-            "FirstName": "",
17
-            "LastName": "",
18
-            "ContactNumber": "",
19
-            "Email": "",
20
-            "TenantName": "",
21
-            "ContactOrEmail": inputdetails,
22
-            "IsSignup": false,
23
-            "IsRegisterUser": false,
24
-            "IsForgotPswd": true,
25
-            "UnibaseId": unibaseid,
26
-            "OtpId": 0,
27
-            "UserOtp": ""
28
-        });
21
+    var raw = JSON.stringify({
22
+      FirstName: "",
23
+      LastName: "",
24
+      ContactNumber: "",
25
+      Email: "",
26
+      TenantName: "",
27
+      ContactOrEmail: inputdetails,
28
+      IsSignup: false,
29
+      IsRegisterUser: false,
30
+      IsForgotPswd: true,
31
+      UnibaseId: unibaseid,
32
+      OtpId: 0,
33
+      UserOtp: "",
34
+    });
29 35
 
30
-        var requestOptions = {
31
-            method: 'POST',
32
-            headers: myHeaders,
33
-            body: raw,
34
-            redirect: 'follow'
35
-        };
36
+    var requestOptions = {
37
+      method: "POST",
38
+      headers: myHeaders,
39
+      body: raw,
40
+      redirect: "follow",
41
+    };
36 42
 
37
-        fetch(serverUrl + 'account/sendotp', requestOptions)
38
-            .then(response => response.text())
39
-            .then(function(result) {
40
-                optid = result;
41
-                document.getElementById('div_ForgotPswd').style.display = 'none';
42
-                document.getElementById('modal_Otp').style.display = 'block';
43
-                document.getElementById('div_ValidationSummary').innerHTML = "";
44
-            })
45
-            .catch(error => console.log('error', error));
46
-    } else {
47
-        let html = '<div class="p-2"><span class="error-warning">Error !</span> Email/Phonenumber does not exist</div>';
48
-        document.getElementById('div_ValidationSummary').innerHTML = "";
49
-        let error = document.getElementById('div_ValidationSummary');
50
-        error.insertAdjacentHTML('beforeend', html);
51
-    }
43
+    fetch(serverUrl + "account/sendotp", requestOptions)
44
+      .then((response) => response.text())
45
+      .then(function (result) {
46
+        optid = result;
47
+        document.getElementById("div_ForgotPswd").style.display = "none";
48
+        document.getElementById("modal_Otp").style.display = "block";
49
+        document.getElementById("div_ValidationSummary").innerHTML = "";
50
+      })
51
+      .catch((error) => console.log("error", error));
52
+  } else {
53
+    let html =
54
+      '<div class="p-2"><span class="error-warning">Error !</span> Email/Phonenumber does not exist</div>';
55
+    document.getElementById("div_ValidationSummary").innerHTML = "";
56
+    let error = document.getElementById("div_ValidationSummary");
57
+    error.insertAdjacentHTML("beforeend", html);
58
+  }
52 59
 }
53 60
 
54 61
 /*verify otp*/
55 62
 async function showPasswordBox() {
56
-    let inputdetails = document.getElementById('txt_Code').value;
57
-    if (inputdetails.length > 0) {
58
-        var myHeaders = new Headers();
59
-        myHeaders.append("Content-Type", "application/json");
60
-        var raw = JSON.stringify({
61
-            "FirstName": "",
62
-            "LastName": "",
63
-            "ContactNumber": "",
64
-            "Email": "",
65
-            "TenantName": "",
66
-            "ContactOrEmail": "",
67
-            "IsForgotPswd": false,
68
-            "IsRegisterUser": false,
69
-            "IsSignup": true,
70
-            "UnibaseId": "",
71
-            "OtpId": optid,
72
-            "UserOtp": inputdetails
73
-        });
74
-
75
-        var requestOptions = {
76
-            method: 'POST',
77
-            headers: myHeaders,
78
-            body: raw,
79
-            redirect: 'follow'
80
-        };
81
-
82
-        fetch(serverUrl + 'account/verifyotp', requestOptions)
83
-            .then(response => response.text())
84
-            .then(function(result) {
85
-                let data = JSON.parse(result);
86
-                if (data.result.contactConfirmed == true) {
87
-                    document.getElementById('modal_Otp').style.display = 'none';
88
-                    document.getElementById('div_ResetPswd').style.display = 'block';
89
-                    document.getElementById('div_ValidationSummary').innerHTML = "";
90
-                } else {
91
-                    let html = '<div class="p-2" ><span class="error-warning">Error !</span> Enter Valid OTP</div>';
92
-                    document.getElementById('div_ValidationSummary').innerHTML = "";
93
-                    let error = document.getElementById('div_ValidationSummary');
94
-                    error.insertAdjacentHTML('beforeend', html);
95
-                }
96
-            })
97
-            .catch(error => console.log('error', error));
98
-    } else {
99
-
100
-    }
101
-
63
+  let inputdetails = document.getElementById("txt_Code").value;
64
+  if (inputdetails.length > 0) {
65
+    var myHeaders = new Headers();
66
+    myHeaders.append("Content-Type", "application/json");
67
+    var raw = JSON.stringify({
68
+      FirstName: "",
69
+      LastName: "",
70
+      ContactNumber: "",
71
+      Email: "",
72
+      TenantName: "",
73
+      ContactOrEmail: "",
74
+      IsForgotPswd: false,
75
+      IsRegisterUser: false,
76
+      IsSignup: true,
77
+      UnibaseId: "",
78
+      OtpId: optid,
79
+      UserOtp: inputdetails,
80
+    });
102 81
 
82
+    var requestOptions = {
83
+      method: "POST",
84
+      headers: myHeaders,
85
+      body: raw,
86
+      redirect: "follow",
87
+    };
103 88
 
89
+    fetch(serverUrl + "account/verifyotp", requestOptions)
90
+      .then((response) => response.text())
91
+      .then(function (result) {
92
+        let data = JSON.parse(result);
93
+        if (data.result.contactConfirmed == true) {
94
+          document.getElementById("modal_Otp").style.display = "none";
95
+          document.getElementById("div_ResetPswd").style.display = "block";
96
+          document.getElementById("div_ValidationSummary").innerHTML = "";
97
+        } else {
98
+          let html =
99
+            '<div class="p-2" ><span class="error-warning">Error !</span> Enter Valid OTP</div>';
100
+          document.getElementById("div_ValidationSummary").innerHTML = "";
101
+          let error = document.getElementById("div_ValidationSummary");
102
+          error.insertAdjacentHTML("beforeend", html);
103
+        }
104
+      })
105
+      .catch((error) => console.log("error", error));
106
+  } else {
107
+  }
104 108
 }
105 109
 
106 110
 function showSuccessBox() {
107
-    let txt_NewPassword = document.getElementById('txt_NewPassword').value;
108
-    let txt_ConfirmPassword = document.getElementById('txt_ConfirmPassword').value;
109
-    if (txt_NewPassword == txt_ConfirmPassword) {
110
-        var myHeaders = new Headers();
111
-        myHeaders.append("Content-Type", "application/json");
112
-        var raw = JSON.stringify({
113
-            "Password": txt_NewPassword,
114
-            "UserName": unibaseid
115
-        });
116
-        var requestOptions = {
117
-            method: 'POST',
118
-            headers: myHeaders,
119
-            body: raw,
120
-            redirect: 'follow'
121
-        };
122
-        fetch(serverUrl + 'account/updatepassword', requestOptions)
123
-            .then(response => response.text())
124
-            .then(function(result) {
125
-                let updatepassword = JSON.parse(result);
126
-                let message = updatepassword.message;
127
-                if (message == 'Password Updated Successfully') {
128
-                    document.getElementById('div_ValidationSummary').innerHTML = "";
129
-                    document.getElementById('div_ResetPswd').style.display = 'none';
130
-                    document.getElementById('div_SuccessMsg').style.display = 'block';
131
-                }
132
-            })
133
-            .catch(error => console.log('error', error));
134
-
135
-    } else {
136
-        let html = '<div class="p-2"> <span class="error-warning">Error !</span> Password Does not Match</div>';
137
-        document.getElementById('div_ValidationSummary').innerHTML = "";
138
-        let error = document.getElementById('div_ValidationSummary');
139
-        error.insertAdjacentHTML('beforeend', html);
140
-    }
141
-
142
-}
111
+  let txt_NewPassword = document.getElementById("txt_NewPassword").value;
112
+  let txt_ConfirmPassword = document.getElementById(
113
+    "txt_ConfirmPassword"
114
+  ).value;
115
+  if (txt_NewPassword == txt_ConfirmPassword) {
116
+    var myHeaders = new Headers();
117
+    myHeaders.append("Content-Type", "application/json");
118
+    var raw = JSON.stringify({
119
+      Password: txt_NewPassword,
120
+      UserName: unibaseid,
121
+    });
122
+    var requestOptions = {
123
+      method: "POST",
124
+      headers: myHeaders,
125
+      body: raw,
126
+      redirect: "follow",
127
+    };
128
+    fetch(serverUrl + "account/updatepassword", requestOptions)
129
+      .then((response) => response.text())
130
+      .then(function (result) {
131
+        let updatepassword = JSON.parse(result);
132
+        let message = updatepassword.message;
133
+        if (message == "Password Updated Successfully") {
134
+          document.getElementById("div_ValidationSummary").innerHTML = "";
135
+          document.getElementById("div_ResetPswd").style.display = "none";
136
+          document.getElementById("div_SuccessMsg").style.display = "block";
137
+        }
138
+      })
139
+      .catch((error) => console.log("error", error));
140
+  } else {
141
+    let html =
142
+      '<div class="p-2"> <span class="error-warning">Error !</span> Password Does not Match</div>';
143
+    document.getElementById("div_ValidationSummary").innerHTML = "";
144
+    let error = document.getElementById("div_ValidationSummary");
145
+    error.insertAdjacentHTML("beforeend", html);
146
+  }
147
+}

+ 2
- 7
assets/js/home.js 查看文件

@@ -1,9 +1,4 @@
1
-import {
2
-    getCookie
3
-} from "./cookiehelper.js";
4
-import {
5
-    initListIndex
6
-} from "./list.index.js";
1
+import {getCookie} from "./cookiehelper.js";
2
+import {initListIndex} from "./list.index.js";
7 3
 
8 4
 initListIndex();
9
-

+ 277
- 174
assets/js/list.index.js 查看文件

@@ -1,183 +1,237 @@
1 1
 /*Data  loading  start here*/
2
-import {
3
-    getCookie
4
-} from "./cookiehelper.js";
5
-
6
-import {
7
-    getData,
8
-    getDataObj
9
-} from "./base.js";
2
+import {getCookie} from "./cookiehelper.js";
10 3
 
4
+import {getData, getDataObj} from "./base.js";
5
+import {_serverUrl} from "./setting.js";
6
+function createLoad(data) {
7
+  let html = "";
8
+  if (data.length != 0) {
9
+    for (var i = 0; i < data.length; i++) {
10
+      html += `<li class="p-0">
11
+        <a href="javascript:;" class="dropdown-item create-form-btn" data-AppConfigType="${data[i].AppConfigType}" data-AppPermissionId="${data[i].AppPermissionId}" data-AppConfigurationId="${data[i].AppConfigurationId}" data-formid="${data[i].FormId}" data-installedAppid="${data[i].InstalledAppId}">${data[i].AppTitle}</a>
12
+      </li>`;
13
+    }
14
+  } else {
15
+    html += `<li class="p-0">Apps are Not Installed</li>`;
16
+  }
17
+  $("#crte-btn-lst").html(html);
18
+  $(".create-form-btn").on("click", function () {
19
+    const date = new Date();
20
+    let number = date.getTime();
21
+    let serverUrl = _serverUrl();
22
+    let appName = $(this).text();
23
+    let formId = $(this).attr("data-formid");
24
+    let installedAppId = $(this).attr("data-installedappid");
25
+    let appConfigurationId = $(this).attr("data-appconfigurationid");
26
+    let pk_id = 0;
27
+    const cookie = getCookie("_idty");
28
+    let fomrhtml = "";
29
+    if (cookie) {
30
+      const {unibaseId, tenantId, userId} = JSON.parse(cookie);
31
+      fomrhtml = `<div class="frm-ifre frm-ifre-${number}" id="frm-ifre-${number}">
32
+                  <ul class="m-0 p-0">
33
+                    <li class="frm-hdr">
34
+                      <div>${appName}</div>
35
+                      <div class="ctrl">
36
+                        <a href="javascript:;" class="minimize" data-unid="${number}" data-ispopup="true"><span><i class="la la-minus"></i></span></a>
37
+                        <a href="javascript:;" class="maximum" data-unid="${number}"><span><i class="la la-expand"></i></span></a>
38
+                        <a href="javascript:;" class="compress d-none" data-unid="${number}"><span><i class="las la-compress"></i></span></a>
39
+                        <a href="javascript:;" class="close" data-unid="${number}"><span><i class="la la-times"></i></span></a>
40
+                      </div>
41
+                    </li>
42
+                    <li class="frm-bdy">
43
+                      <iframe class="ld-frm-src" data-ispopup="false" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${installedAppId}/${formId}/${pk_id}/${appConfigurationId}/loadform"></iframe>
44
+                    </li>
45
+                    <li class="frm-ftr"></li>
46
+                  </ul>
47
+                </div>`;
48
+    }
49
+    $("#list-page").after(fomrhtml);
50
+    window.window.postMessage("ld-frm-ifrme", "*");
51
+    hdrCrtnClckEvnt(number);
52
+  });
53
+}
54
+function hdrCrtnClckEvnt(number) {
55
+  $(`.frm-ifre-${number} .minimize`).on("click", function () {
56
+    let id = $(this).attr("data-unid");
57
+    let isPopUpState = $(this).attr("data-ispopup");
58
+    let height = $(`.frm-ifre-${id}`).find(".frm-hdr").height();
59
+    $(`.frm-ifre-${id} .frm-bdy`).toggleClass("d-none");
60
+    if (isPopUpState == "true") {
61
+      // popup large
62
+      $(this).attr("data-ispopup", "false");
63
+      $(`.frm-ifre-${id}`).css({
64
+        width: "22%",
65
+        height: height,
66
+        bottom: "0px",
67
+      });
68
+    } else {
69
+      // popup small
70
+      $(this).attr("data-ispopup", "true");
71
+      $(`.frm-ifre-${id}`).css({
72
+        width: "",
73
+        height: "",
74
+        bottom: "",
75
+      });
76
+    }
77
+  });
78
+  $(`.frm-ifre-${number} .maximum`).on("click", function () {
79
+    let id = $(this).attr("data-unid");
80
+    $(this).addClass("d-none");
81
+    $(this).siblings(".compress").removeClass("d-none");
82
+    $(`.frm-ifre-${id}`).find(".ld-frm-src").attr("data-ispopup", "true");
83
+    $(`.frm-ifre-${id}`).css({width: "75%", height: "", bottom: "auto"});
84
+    $(`.frm-ifre-${id} .ld-frm-src`).css({width: "100%"});
85
+    $(`.frm-ifre-${id} .frm-bdy`).removeClass("d-none");
86
+    $("#list-page").css({filter: "blur(2px)", opacity: "0.5"});
87
+  });
88
+  $(`.frm-ifre-${number} .compress`).on("click", function () {
89
+    let id = $(this).attr("data-unid");
90
+    $(this).addClass("d-none");
91
+    $(this).siblings(".maximum").removeClass("d-none");
92
+    $(`.frm-ifre-${id}`).css({width: "", bottom: ""});
93
+    $(`.frm-ifre-${id} .ld-frm-src`).css({width: ""});
94
+    $("#list-page").css({filter: "", opacity: ""});
95
+  });
96
+  $(`.frm-ifre-${number} .close`).on("click", function () {
97
+    let id = $(this).attr("data-unid");
98
+    $("#list-page").css({filter: "unset", opacity: "1"});
99
+    $(`.frm-ifre-${id}`).remove();
100
+  });
101
+}
11 102
 function loadData() {
12
-    getData(
13
-        "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/20"
14
-    ).then(function(result) {
15
-        let response = JSON.parse(result.result);
16
-        if (response.length != 0) {
17
-            // Notifcations
18
-            let bdyUI = '<div class="accordion" id="notifi-list">';
19
-            for (var i = 0; i < response.length; i++) {
20
-                bdyUI += `<li class="item-li" id="${
21
-          response[i].ReminderId
22
-        }" data-ref="${
23
-          response[i].RedirectOptions.RefId
24
-        }" data-installedAppId="${
25
-          response[i].RedirectOptions.InstalledAppId
26
-        }" data-formId="${response[i].RedirectOptions.CreateFormId}">
27
-                            <div class="accordion-header" id="accHeader-${
28
-                              response[i].ReminderId
29
-                            }">
30
-                                <div class="notifiListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${
31
-                                  response[i].ReminderId
32
-                                }" aria-expanded="false" aria-controls="collapseOne">
103
+  getData(
104
+    "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/20"
105
+  ).then(function (result) {
106
+    let response = JSON.parse(result.result);
107
+    if (response.length != 0) {
108
+      // Notifcations
109
+      let bdyUI = '<div class="accordion" id="notifi-list">';
110
+      for (var i = 0; i < response.length; i++) {
111
+        bdyUI += `<li class="item-li" id="${response[i].ReminderId}" data-ref="${response[i].RedirectOptions.RefId}" data-installedAppId="${response[i].RedirectOptions.InstalledAppId}" data-formId="${response[i].RedirectOptions.CreateFormId}">
112
+                            <div class="accordion-header" id="accHeader-${response[i].ReminderId}">
113
+                                <div class="notifiListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${response[i].ReminderId}" aria-expanded="false" aria-controls="collapseOne">
33 114
                                     <div class="row m-0 w-100 p-0 ">
34 115
                                         <div class="col-1 ">
35 116
                                             <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
36 117
                                         </div>
37 118
                                         <div class="col-4 text-truncate">
38
-                                            <span class="mx-1">${
39
-                                              response[i].Subject
40
-                                            }</span>
119
+                                            <span class="mx-1">${response[i].Subject}</span>
41 120
                                         </div>
42 121
                                         <div class="col-5 text-truncate">
43
-                                            <span class="mx-1">${
44
-                                              response[i].Message
45
-                                            }</span>
122
+                                            <span class="mx-1">${response[i].Message}</span>
46 123
                                         </div>
47 124
                                         <div class="col-2 text-truncate">
48 125
                                             <span class="mx-1">22 minutes ago</span>
49 126
                                         </div>
50 127
                                     </div>    
51 128
                                 </div>
52
-                                <div id="collapse-${
53
-                                  response[i].ReminderId
54
-                                }"  class="accordion-collapse collapse" aria-labelledby="accHeader-${
55
-          response[i].ReminderId
56
-        }" data-bs-parent="#notifi-list">
57
-                                    <div class="accordion-body" id="accBody${
58
-                                      response[i].ReminderId
59
-                                    }">
129
+                                <div id="collapse-${response[i].ReminderId}"  class="accordion-collapse collapse" aria-labelledby="accHeader-${response[i].ReminderId}" data-bs-parent="#notifi-list">
130
+                                    <div class="accordion-body" id="accBody${response[i].ReminderId}">
60 131
                                         
61 132
                                     </div>
62 133
                                 </div>
63 134
                             </div>
64 135
                         </li>`;
65
-            }
66
-            bdyUI += "</div>";
67
-            $(".bdy-ul").append(bdyUI);
68
-            
69
-            $(".notifiListItms").on("click", function() {
70
-                let _this = $(this).parents(".item-li");
71
-                let obj = {
72
-                    FromDate: "2022/11/30",
73
-                    InstalledAppId: Number($(_this).attr("data-installedAppId")),
74
-                    RecordId: Number($(_this).attr("data-ref")),
75
-                    ToDate: "2022/11/30",
76
-                };
77
-                //let obj = { "FromDate": "2022/11/30", "InstalledAppId": 102530270000109, "RecordId": 102533490346298, "ToDate": "2022/11/30" };
78
-                getDataObj(
79
-                    "apis/v4/unibase/platform/widgets/getdefaultwidget",
80
-                    obj,
81
-                    true,
82
-                    "POST"
83
-                ).then(function(response) {
84
-                    let res = JSON.parse(response.result),
85
-                        html = "";
86
-                    if (response.message == "200" && response.errors == null) {
87
-                        html = `<ul class="p-0 m-0 d-flex flex-row">`;
88
-                        if (
89
-                            res.AppConfigurations != null &&
90
-                            res.AppConfigurations.length > 0
91
-                        ) {
92
-                            for (var k = 0; k < res.AppConfigurations.length; k++) {
93
-                                html += `<li class="mx-2 btn-outline-primary btn btn-sm">${res.AppConfigurations[k].SettingName}</li>`;
94
-                            }
95
-                        } else {
96
-                            html += `<li class="p-1 my-0 alert alert-danger" role="alert">
136
+      }
137
+      bdyUI += "</div>";
138
+      $(".bdy-ul").append(bdyUI);
139
+
140
+      $(".notifiListItms").on("click", function () {
141
+        let _this = $(this).parents(".item-li");
142
+        let obj = {
143
+          FromDate: "2022/11/30",
144
+          InstalledAppId: Number($(_this).attr("data-installedAppId")),
145
+          RecordId: Number($(_this).attr("data-ref")),
146
+          ToDate: "2022/11/30",
147
+        };
148
+        //let obj = { "FromDate": "2022/11/30", "InstalledAppId": 102530270000109, "RecordId": 102533490346298, "ToDate": "2022/11/30" };
149
+        getDataObj(
150
+          "apis/v4/unibase/platform/widgets/getdefaultwidget",
151
+          obj,
152
+          true,
153
+          "POST"
154
+        ).then(function (response) {
155
+          let res = JSON.parse(response.result),
156
+            html = "";
157
+          if (response.message == "200" && response.errors == null) {
158
+            html = `<ul class="p-0 m-0 d-flex flex-row">`;
159
+            if (
160
+              res.AppConfigurations != null &&
161
+              res.AppConfigurations.length > 0
162
+            ) {
163
+              for (var k = 0; k < res.AppConfigurations.length; k++) {
164
+                html += `<li class="mx-2 btn-outline-primary btn btn-sm">${res.AppConfigurations[k].SettingName}</li>`;
165
+              }
166
+            } else {
167
+              html += `<li class="p-1 my-0 alert alert-danger" role="alert">
97 168
                                 App Configurations Not configure
98 169
                             </li>`;
99
-                        }
100
-                        if (res.Stages != null) {
101
-                            for (var x = 0; x < res.Stages.length; x++) {
102
-                                if (res.Stages[x].IsDefault) {
103
-                                    html += `<li class="ml-auto">
170
+            }
171
+            if (res.Stages != null) {
172
+              for (var x = 0; x < res.Stages.length; x++) {
173
+                if (res.Stages[x].IsDefault) {
174
+                  html += `<li class="ml-auto">
104 175
                                                 <a class="btn btn-sm btn-secondary dropdown-toggle" href="javascript:void(0)" role="button" data-bs-toggle="dropdown" aria-expanded="false">
105 176
                                                 ${res.Stages[x].StageName}
106 177
                                                 </a>
107 178
                                                 <ul class="dropdown-menu">`;
108
-                                }
109
-                            }
110
-                            for (var i = 0; i < res.Stages.length; i++) {
111
-                                if (!res.Stages[i].IsDefault) {
112
-                                    html += `<li><a class="dropdown-item" href="javascript:void(0);">${res.Stages[i].StageName}</a></li>`;
113
-                                }
114
-                            }
115
-                            html += "</ul></li>";
116
-                        } else {
117
-                            html += `<li class="p-1 my-0 alert alert-danger ml-auto" role="alert">
179
+                }
180
+              }
181
+              for (var i = 0; i < res.Stages.length; i++) {
182
+                if (!res.Stages[i].IsDefault) {
183
+                  html += `<li><a class="dropdown-item" href="javascript:void(0);">${res.Stages[i].StageName}</a></li>`;
184
+                }
185
+              }
186
+              html += "</ul></li>";
187
+            } else {
188
+              html += `<li class="p-1 my-0 alert alert-danger ml-auto" role="alert">
118 189
                                     No Stages
119 190
                                 </li>`;
120
-                        }
121
-                        html += `<li class="p-1 mx-2 my-0 btn-outline-info detailBtn btn btn-sm" data-appid="${Number($(_this).attr("data-installedAppId"))}" data-recordid="${Number($(_this).attr("data-ref"))}">Details-Page</li></ul>`;
122
-                    } else {
123
-                        html += `<div class="alert alert-danger" role="alert">
191
+            }
192
+            html += `<li class="p-1 mx-2 my-0 btn-outline-info detailBtn btn btn-sm" data-appid="${Number(
193
+              $(_this).attr("data-installedAppId")
194
+            )}" data-recordid="${Number(
195
+              $(_this).attr("data-ref")
196
+            )}">Details-Page</li></ul>`;
197
+          } else {
198
+            html += `<div class="alert alert-danger" role="alert">
124 199
                                     ${response.message} ${response.errors}
125 200
                                 </div>`;
126
-                    }
127
-                    $(_this).find(".accordion-body").html(html);
128
-                    detailClick();
129
-                });
130
-            });
131
-        }
132
-    });
133
-    getData(
134
-        "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/20"
135
-    ).then(function(tskResp) {
136
-        let response = JSON.parse(tskResp.result);
137
-        if (response.length != 0) {
138
-            let _tskhtml = '<div class="accordion" id="task-list">';
139
-            for (var i = 0; i < response.length; i++) {
140
-                
141
-                _tskhtml += `<li class="item-li" id="${
142
-          response[i].ReminderId
143
-        }" data-ref="${
144
-          response[i].RedirectOptions.RefId
145
-        }" data-installedAppId="${
146
-          response[i].RedirectOptions.InstalledAppId
147
-        }" data-formId="${response[i].RedirectOptions.CreateFormId}">
148
-                                <div class="accordion-header" id="accHeader-${
149
-                                  response[i].ReminderId
150
-                                }">
151
-                                    <div class="tskListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${
152
-                                      response[i].ReminderId
153
-                                    }" aria-expanded="false" aria-controls="collapseOne">
201
+          }
202
+          $(_this).find(".accordion-body").html(html);
203
+          detailClick();
204
+        });
205
+      });
206
+    }
207
+  });
208
+  getData(
209
+    "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/20"
210
+  ).then(function (tskResp) {
211
+    let response = JSON.parse(tskResp.result);
212
+    if (response.length != 0) {
213
+      let _tskhtml = '<div class="accordion" id="task-list">';
214
+      for (var i = 0; i < response.length; i++) {
215
+        _tskhtml += `<li class="item-li" id="${response[i].ReminderId}" data-ref="${response[i].RedirectOptions.RefId}" data-installedAppId="${response[i].RedirectOptions.InstalledAppId}" data-formId="${response[i].RedirectOptions.CreateFormId}">
216
+                                <div class="accordion-header" id="accHeader-${response[i].ReminderId}">
217
+                                    <div class="tskListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${response[i].ReminderId}" aria-expanded="false" aria-controls="collapseOne">
154 218
                                         <div class="row m-0 w-100 p-0 ">
155 219
                                             <div class="col-1 ">
156 220
                                                 <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
157 221
                                             </div>
158 222
                                             <div class="col-4 text-truncate">
159
-                                                <span class="mx-1">${
160
-                                                  response[i].Subject
161
-                                                }</span>
223
+                                                <span class="mx-1">${response[i].Subject}</span>
162 224
                                             </div>
163 225
                                             <div class="col-5 text-truncate">
164
-                                                <span class="mx-1">${
165
-                                                  response[i].Message
166
-                                                }</span>
226
+                                                <span class="mx-1">${response[i].Message}</span>
167 227
                                             </div>
168 228
                                             <div class="col-2 text-truncate">
169 229
                                                 <span class="mx-1">2 seconds</span>
170 230
                                             </div>
171 231
                                         </div>    
172 232
                                     </div>
173
-                                    <div id="collapse-${
174
-                                      response[i].ReminderId
175
-                                    }"  class="accordion-collapse collapse" aria-labelledby="accHeader-${
176
-          response[i].ReminderId
177
-        }" data-bs-parent="#notifi-list">
178
-                                        <div class="accordion-body" id="accBody${
179
-                                          response[i].ReminderId
180
-                                        }">
233
+                                    <div id="collapse-${response[i].ReminderId}"  class="accordion-collapse collapse" aria-labelledby="accHeader-${response[i].ReminderId}" data-bs-parent="#notifi-list">
234
+                                        <div class="accordion-body" id="accBody${response[i].ReminderId}">
181 235
                                             <ul class="p-0 m-0 d-flex flex-row justify-content-between">
182 236
                                                 <li class="mx-2 btn-outline-success btn btn-sm">Confirm</li>
183 237
                                                 <li class="mx-2 btn-outline-danger btn btn-sm">Reject</li>
@@ -188,54 +242,103 @@ function loadData() {
188 242
                                     </div>
189 243
                                 </div>
190 244
                             </li>`;
191
-            }
192
-            _tskhtml += "</div>";
193
-            $(".bdy-ul").append(_tskhtml);
194
-            detailClick()
245
+      }
246
+      _tskhtml += "</div>";
247
+      $(".bdy-ul").append(_tskhtml);
248
+      detailClick();
249
+    }
250
+  });
251
+
252
+  // create button apps load
253
+  let appName = [];
254
+  getData("apis/v4/unibase/platform/apps/myapps").then(function (res) {
255
+    let response = JSON.parse(res.result);
256
+    jQuery.each(response, async function (index, item) {
257
+      let installedAppId = Number(item.MyAppId);
258
+      await getData(
259
+        `apis/v4/unibase/platform/apps/listappconfigurations/installedappid/${installedAppId}`
260
+      ).then(function (result) {
261
+        if (
262
+          result.result != null &&
263
+          result.result != "" &&
264
+          result.result != "[]"
265
+        ) {
266
+          let _data = JSON.parse(result.result);
267
+          let data = _data.filter((x) => x.SettingUrlType == 1);
268
+          if (data.length != 0) {
269
+            appName.push({
270
+              SettingUrlType: data[0].SettingUrlType,
271
+              AppTitle: data[0].AppTitle,
272
+              FormId: data[0].FormId,
273
+              InstalledAppId: data[0].InstalledAppId,
274
+              RoleSettingAppId: data[0].RoleSettingAppId,
275
+              InstalledAppGuid: data[0].InstalledAppGuid,
276
+              AppConfigurationId: data[0].AppConfigurationId,
277
+              AppPermissionId: data[0].AppPermissionId,
278
+              AppConfigType: data[0].AppConfigType,
279
+            });
280
+          }
195 281
         }
282
+      });
283
+      await createLoad(appName);
196 284
     });
285
+  });
197 286
 }
198
-export function detailClick(){
199
-    $('.detailBtn').click(function() {
200
-        $('.bdy-ul').addClass('d-none');
201
-        let installedAppId = +$(this).attr('data-appId');
202
-        let recordId = +$(this).attr('data-recordId')
203
-        // Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(105013010001972,105010260000090,'Details','null',6,0,null)
204
-        const cookie = getCookie('_idty');
205
-        if (cookie) {
206
-            const {
207
-                unibaseId,
208
-                tenantId,
209
-                userId
210
-            } = JSON.parse(cookie);
211
-            debugger;
212
-            $('#detailIframe').html(
213
-                `<iframe width="100%" style="min-height:calc(100vh - ${$('.tp-bar').height()}px)"  name="srcframe" id="srcframe" class="srcframe" src="http://localhost:3088/#/${unibaseId}/${tenantId}/${userId}/${recordId}/${installedAppId}/loadDetail"></iframe>`
214
-            );
215
-    
216
-        }
217
-    
218
-    });
287
+export function detailClick() {
288
+  $(".detailBtn").click(function () {
289
+    let serverUrl = _serverUrl();
290
+    $(".bdy-ul").addClass("d-none");
291
+    let installedAppId = +$(this).attr("data-appId");
292
+    let recordId = +$(this).attr("data-recordId");
293
+    // Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(105013010001972,105010260000090,'Details','null',6,0,null)
294
+    const cookie = getCookie("_idty");
295
+    if (cookie) {
296
+      const {unibaseId, tenantId, userId} = JSON.parse(cookie);
297
+      debugger;
298
+      $("#detailIframe").html(
299
+        `<iframe width="100%" style="min-height:calc(100vh - ${$(
300
+          ".tp-bar"
301
+        ).height()}px)"  name="srcframe" id="srcframe" class="srcframe" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${recordId}/${installedAppId}/loadDetail"></iframe>`
302
+      );
303
+    }
304
+  });
219 305
 }
220 306
 
221 307
 export function initListIndex() {
222
-    let _userInfo = atob(document.cookie.split("=")[1]);
223
-    let userInfo = " JSON.parse(_userInfo).result";
224
-    let sessionId = "userInfo.sessionId";
308
+  let _userInfo = atob(document.cookie.split("=")[1]);
309
+  let userInfo = " JSON.parse(_userInfo).result";
310
+  let sessionId = "userInfo.sessionId";
225 311
 
226
-    let usrinfoHTML = `<li><a class="dropdown-item" href="javascript:void(0);">${userInfo.name}</a></li>
312
+  let usrinfoHTML = `<li><a class="dropdown-item" href="javascript:void(0);">${userInfo.name}</a></li>
227 313
 <li><a class="dropdown-item" href="javascript:void(0);">Cloud Settings</a></li>
228 314
 <li><a class="dropdown-item" href="javascript:void(0);">Help</a></li>
229 315
                     <li><a class="dropdown-item" href="javascript:void(0);">Logoff</a></li>`;
230
-    $(".icn-circle").text(userInfo?.name?.charAt(0)?.toUpperCase());
231
-    $(".uindtls").html(usrinfoHTML);
316
+  $(".icn-circle").text(userInfo?.name?.charAt(0)?.toUpperCase());
317
+  $(".uindtls").html(usrinfoHTML);
232 318
 
233
-    // List Page loading
319
+  // List Page loading
234 320
 
235
-    /*Data  loading  start here*/
236
-    $(".mnNvIcn").click(function() {
237
-        $(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap");
238
-        $(".ctr-lst-pge").toggleClass("lft-nav-bar-Wrap");
321
+  /*Data  loading  start here*/
322
+  $(".mnNvIcn").click(function () {
323
+    $(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap");
324
+    $(".ctr-lst-pge").toggleClass("lft-nav-bar-Wrap");
325
+  });
326
+  $(".mre-drp a.sub-nav-item.more").on("click", function () {
327
+    $(".sub-nav-item").removeClass("active");
328
+    if ($(this)[0].className.includes("active")) {
329
+      $(this).find("i").css("transform", "rotate(0deg)");
330
+      $(this).removeClass("active");
331
+    } else {
332
+      $(this).find("i").css("transform", "rotate(180deg)");
333
+      $(this).addClass("active");
334
+    }
335
+    $(this).siblings(".ul-drpdown").toggleClass("d-none");
336
+  });
337
+  $("a.sub-nav-item")
338
+    .not(".more.active")
339
+    .on("click", function () {
340
+      $(".sub-nav-item").not(".more.active").removeClass("active");
341
+      $(this).addClass("active");
239 342
     });
240
-    loadData();
241
-}
343
+  loadData();
344
+}

+ 102
- 108
assets/js/login.js 查看文件

@@ -1,147 +1,141 @@
1
-import {
2
-    setCookie
3
-} from "./cookiehelper.js";
4
-import {
5
-    _serverUrl
6
-} from "./setting.js";
7
-
1
+import {setCookie} from "./cookiehelper.js";
2
+import {_serverUrl} from "./setting.js";
8 3
 
9 4
 const serverUrl = _serverUrl();
10 5
 
11
-
12
-const emailInputEl = document.getElementById('email');
13
-const passwordInputEl = document.getElementById('password');
14
-const emailErrEl = document.getElementById('emailErrMsg');
15
-const passwordErrEl = document.getElementById('passwordErrMsg');
16
-const emailContainerEl = document.getElementById('emailBox');
17
-const passwordContainerEl = document.getElementById('passwordBox');
18
-const showPasswordChk = document.getElementById('showPassword');
19
-const emailNextBtn = document.getElementById('emailNextBtn');
20
-const renterEmailLink = document.getElementById('renterEmail');
21
-const loginSubmitBtn = document.getElementById('loginSubmitBtn');
22
-
23
-passwordContainerEl.style.display = 'none';
6
+const emailInputEl = document.getElementById("email");
7
+const passwordInputEl = document.getElementById("password");
8
+const emailErrEl = document.getElementById("emailErrMsg");
9
+const passwordErrEl = document.getElementById("passwordErrMsg");
10
+const emailContainerEl = document.getElementById("emailBox");
11
+const passwordContainerEl = document.getElementById("passwordBox");
12
+const showPasswordChk = document.getElementById("showPassword");
13
+const emailNextBtn = document.getElementById("emailNextBtn");
14
+const renterEmailLink = document.getElementById("renterEmail");
15
+const loginSubmitBtn = document.getElementById("loginSubmitBtn");
16
+
17
+passwordContainerEl.style.display = "none";
24 18
 emailInputEl.focus();
25 19
 
26 20
 function showPasswordBox() {
27
-    const email = emailInputEl.value;
28
-    if (validateEmailOrPhone()) {
29
-        emailContainerEl.style.display = 'none';
30
-        passwordContainerEl.style.display = 'block';
31
-        document.getElementById('entered-email').innerHTML = email;
32
-        passwordInputEl.focus();
33
-        emailInputEl.classList.remove('error');
34
-        emailErrEl.innerText = '';
35
-    } else {
36
-        emailInputEl.classList.add('error');
37
-        emailErrEl.innerText = 'Please enter valid email or phone';
38
-    }
21
+  const email = emailInputEl.value;
22
+  if (validateEmailOrPhone()) {
23
+    emailContainerEl.style.display = "none";
24
+    passwordContainerEl.style.display = "block";
25
+    document.getElementById("entered-email").innerHTML = email;
26
+    passwordInputEl.focus();
27
+    emailInputEl.classList.remove("error");
28
+    emailErrEl.innerText = "";
29
+  } else {
30
+    emailInputEl.classList.add("error");
31
+    emailErrEl.innerText = "Please enter valid email or phone";
32
+  }
39 33
 }
40 34
 
41 35
 function validateEmailOrPhone() {
42
-    const value = emailInputEl.value.trim();
43
-    const regx = /^[6-9]\d{9}$/;
44
-    if (value.includes('@') || regx.test(value)) {
45
-        return true;
46
-    }
47
-    return false;
36
+  const value = emailInputEl.value.trim();
37
+  const regx = /^[6-9]\d{9}$/;
38
+  if (value.includes("@") || regx.test(value)) {
39
+    return true;
40
+  }
41
+  return false;
48 42
 }
49 43
 
50 44
 function togglePassword() {
51
-    const ele = document.getElementById('showPassword');
52
-    const password = passwordInputEl;
53
-
54
-    if (password.value.length > 0) {
55
-        passwordInputEl.value = password.value;
56
-        password.focus();
57
-        if (ele.checked) {
58
-            password.setAttribute('type', 'text');
59
-        } else {
60
-            password.setAttribute('type', 'password');
61
-        }
45
+  const ele = document.getElementById("showPassword");
46
+  const password = passwordInputEl;
47
+
48
+  if (password.value.length > 0) {
49
+    passwordInputEl.value = password.value;
50
+    password.focus();
51
+    if (ele.checked) {
52
+      password.setAttribute("type", "text");
53
+    } else {
54
+      password.setAttribute("type", "password");
62 55
     }
56
+  }
63 57
 }
64 58
 
65 59
 function onPasswordFocusOut() {
66
-    const passwordLabel = document.getElementById('passwordLabel');
67
-    if (passwordInputEl.value.length > 0) {
68
-        passwordLabel.classList.add('password-fixed');
69
-    } else {
70
-        passwordLabel.classList.remove('password-fixed');
71
-    }
60
+  const passwordLabel = document.getElementById("passwordLabel");
61
+  if (passwordInputEl.value.length > 0) {
62
+    passwordLabel.classList.add("password-fixed");
63
+  } else {
64
+    passwordLabel.classList.remove("password-fixed");
65
+  }
72 66
 }
73 67
 
74 68
 function onEmailFocusOut() {
75
-    const emailLabel = document.getElementById('emailLabel');
76
-    if (emailInputEl.value.trim()) {
77
-        emailLabel.classList.add('password-fixed');
78
-    } else {
79
-        emailLabel.classList.remove('password-fixed');
80
-    }
69
+  const emailLabel = document.getElementById("emailLabel");
70
+  if (emailInputEl.value.trim()) {
71
+    emailLabel.classList.add("password-fixed");
72
+  } else {
73
+    emailLabel.classList.remove("password-fixed");
74
+  }
81 75
 }
82 76
 
83 77
 function loginUser(email, password) {
84
-    const postData = JSON.stringify({
85
-        UserName: email,
86
-        Password: password,
87
-        UnibaseId: '',
88
-        RememberMe: false,
78
+  const postData = JSON.stringify({
79
+    UserName: email,
80
+    Password: password,
81
+    UnibaseId: "",
82
+    RememberMe: false,
83
+  });
84
+
85
+  const requestOptions = {
86
+    method: "POST",
87
+    headers: {
88
+      "Content-Type": "application/json",
89
+    },
90
+    body: postData,
91
+    redirect: "follow",
92
+  };
93
+
94
+  fetch(serverUrl + "account/login", requestOptions)
95
+    .then((response) => response.text())
96
+    .then((result) => {
97
+      const data = JSON.parse(result);
98
+      if (data.status === 0) {
99
+        setCookie("_idty", JSON.stringify(data.result), 1);
100
+        window.location = "../authentication";
101
+      } else {
102
+        passwordErrEl.innerText = data.message;
103
+      }
104
+    })
105
+    .catch((error) => {
106
+      passwordErrEl.innerText = error;
89 107
     });
90
-
91
-    const requestOptions = {
92
-        method: 'POST',
93
-        headers: {
94
-            'Content-Type': 'application/json',
95
-        },
96
-        body: postData,
97
-        redirect: 'follow',
98
-    };
99
-
100
-    fetch(serverUrl + 'account/login', requestOptions)
101
-        .then((response) => response.text())
102
-        .then((result) => {
103
-            const data = JSON.parse(result);
104
-            if (data.status === 0) {
105
-                setCookie('_idty', JSON.stringify(data.result), 1);
106
-                window.location = '../authentication';
107
-            } else {
108
-                passwordErrEl.innerText = data.message;
109
-            }
110
-        })
111
-        .catch((error) => {
112
-            passwordErrEl.innerText = error;
113
-        });
114 108
 }
115 109
 
116 110
 function validateLogin() {
117
-    const email = emailInputEl.value;
118
-    const password = passwordInputEl.value;
119
-    if (password.trim().length !== 0) {
120
-        loginUser(email, password);
121
-    } else {
122
-        passwordInputEl.classList.add('error');
123
-        passwordErrEl.innerText = 'Please enter valid password';
124
-    }
111
+  const email = emailInputEl.value;
112
+  const password = passwordInputEl.value;
113
+  if (password.trim().length !== 0) {
114
+    loginUser(email, password);
115
+  } else {
116
+    passwordInputEl.classList.add("error");
117
+    passwordErrEl.innerText = "Please enter valid password";
118
+  }
125 119
 }
126 120
 
127 121
 function reEnterEmailClickHandler() {
128
-    emailContainerEl.style.display = 'block';
129
-    passwordContainerEl.style.display = 'none';
130
-    emailInputEl.focus();
122
+  emailContainerEl.style.display = "block";
123
+  passwordContainerEl.style.display = "none";
124
+  emailInputEl.focus();
131 125
 }
132 126
 
133 127
 function initializeEventListeners() {
134
-    emailNextBtn.addEventListener('click', showPasswordBox);
128
+  emailNextBtn.addEventListener("click", showPasswordBox);
135 129
 
136
-    showPasswordChk.addEventListener('click', togglePassword);
130
+  showPasswordChk.addEventListener("click", togglePassword);
137 131
 
138
-    passwordInputEl.addEventListener('focusout', onPasswordFocusOut);
132
+  passwordInputEl.addEventListener("focusout", onPasswordFocusOut);
139 133
 
140
-    emailInputEl.addEventListener('focusout', onEmailFocusOut);
134
+  emailInputEl.addEventListener("focusout", onEmailFocusOut);
141 135
 
142
-    loginSubmitBtn.addEventListener('click', validateLogin);
136
+  loginSubmitBtn.addEventListener("click", validateLogin);
143 137
 
144
-    renterEmailLink.addEventListener('click', reEnterEmailClickHandler);
138
+  renterEmailLink.addEventListener("click", reEnterEmailClickHandler);
145 139
 }
146 140
 
147
-initializeEventListeners();
141
+initializeEventListeners();

+ 7
- 7
assets/js/mian.js 查看文件

@@ -1,11 +1,11 @@
1
-import { isAuthenticated } from "./cookiehelper.js";
1
+import {isAuthenticated} from "./cookiehelper.js";
2 2
 
3 3
 function checkUser(params) {
4
-    if (isAuthenticated()) {
5
-        window.location = './authentication';
6
-    } else {
7
-        window.location = './login';
8
-    }
4
+  if (isAuthenticated()) {
5
+    window.location = "./authentication";
6
+  } else {
7
+    window.location = "./login";
8
+  }
9 9
 }
10 10
 
11
-checkUser();
11
+checkUser();

+ 7
- 4
assets/js/setting.js 查看文件

@@ -1,5 +1,8 @@
1 1
 export function _serverUrl() {
2
-    // sachin 2.0 commitw
3
-    // sudheer 1.0 new branch
4
-    return 'http://localhost:3086/';
5
-}
2
+  // sachin 2.0 commitw
3
+  // sudheer 1.0 new branch
4
+  //return "http://localhost:3088/";
5
+  //return "http://localhost:3086/";
6
+  //return "https://c01.bizgaze.app/";
7
+  return "http://192.168.88.99:4001/";
8
+}

+ 201
- 0
assets/libs/remixicon/License 查看文件

@@ -0,0 +1,201 @@
1
+                                 Apache License
2
+                           Version 2.0, January 2004
3
+                        http://www.apache.org/licenses/
4
+
5
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+   1. Definitions.
8
+
9
+      "License" shall mean the terms and conditions for use, reproduction,
10
+      and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+      "Licensor" shall mean the copyright owner or entity authorized by
13
+      the copyright owner that is granting the License.
14
+
15
+      "Legal Entity" shall mean the union of the acting entity and all
16
+      other entities that control, are controlled by, or are under common
17
+      control with that entity. For the purposes of this definition,
18
+      "control" means (i) the power, direct or indirect, to cause the
19
+      direction or management of such entity, whether by contract or
20
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+      outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+      "You" (or "Your") shall mean an individual or Legal Entity
24
+      exercising permissions granted by this License.
25
+
26
+      "Source" form shall mean the preferred form for making modifications,
27
+      including but not limited to software source code, documentation
28
+      source, and configuration files.
29
+
30
+      "Object" form shall mean any form resulting from mechanical
31
+      transformation or translation of a Source form, including but
32
+      not limited to compiled object code, generated documentation,
33
+      and conversions to other media types.
34
+
35
+      "Work" shall mean the work of authorship, whether in Source or
36
+      Object form, made available under the License, as indicated by a
37
+      copyright notice that is included in or attached to the work
38
+      (an example is provided in the Appendix below).
39
+
40
+      "Derivative Works" shall mean any work, whether in Source or Object
41
+      form, that is based on (or derived from) the Work and for which the
42
+      editorial revisions, annotations, elaborations, or other modifications
43
+      represent, as a whole, an original work of authorship. For the purposes
44
+      of this License, Derivative Works shall not include works that remain
45
+      separable from, or merely link (or bind by name) to the interfaces of,
46
+      the Work and Derivative Works thereof.
47
+
48
+      "Contribution" shall mean any work of authorship, including
49
+      the original version of the Work and any modifications or additions
50
+      to that Work or Derivative Works thereof, that is intentionally
51
+      submitted to Licensor for inclusion in the Work by the copyright owner
52
+      or by an individual or Legal Entity authorized to submit on behalf of
53
+      the copyright owner. For the purposes of this definition, "submitted"
54
+      means any form of electronic, verbal, or written communication sent
55
+      to the Licensor or its representatives, including but not limited to
56
+      communication on electronic mailing lists, source code control systems,
57
+      and issue tracking systems that are managed by, or on behalf of, the
58
+      Licensor for the purpose of discussing and improving the Work, but
59
+      excluding communication that is conspicuously marked or otherwise
60
+      designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+      "Contributor" shall mean Licensor and any individual or Legal Entity
63
+      on behalf of whom a Contribution has been received by Licensor and
64
+      subsequently incorporated within the Work.
65
+
66
+   2. Grant of Copyright License. Subject to the terms and conditions of
67
+      this License, each Contributor hereby grants to You a perpetual,
68
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+      copyright license to reproduce, prepare Derivative Works of,
70
+      publicly display, publicly perform, sublicense, and distribute the
71
+      Work and such Derivative Works in Source or Object form.
72
+
73
+   3. Grant of Patent License. Subject to the terms and conditions of
74
+      this License, each Contributor hereby grants to You a perpetual,
75
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+      (except as stated in this section) patent license to make, have made,
77
+      use, offer to sell, sell, import, and otherwise transfer the Work,
78
+      where such license applies only to those patent claims licensable
79
+      by such Contributor that are necessarily infringed by their
80
+      Contribution(s) alone or by combination of their Contribution(s)
81
+      with the Work to which such Contribution(s) was submitted. If You
82
+      institute patent litigation against any entity (including a
83
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+      or a Contribution incorporated within the Work constitutes direct
85
+      or contributory patent infringement, then any patent licenses
86
+      granted to You under this License for that Work shall terminate
87
+      as of the date such litigation is filed.
88
+
89
+   4. Redistribution. You may reproduce and distribute copies of the
90
+      Work or Derivative Works thereof in any medium, with or without
91
+      modifications, and in Source or Object form, provided that You
92
+      meet the following conditions:
93
+
94
+      (a) You must give any other recipients of the Work or
95
+          Derivative Works a copy of this License; and
96
+
97
+      (b) You must cause any modified files to carry prominent notices
98
+          stating that You changed the files; and
99
+
100
+      (c) You must retain, in the Source form of any Derivative Works
101
+          that You distribute, all copyright, patent, trademark, and
102
+          attribution notices from the Source form of the Work,
103
+          excluding those notices that do not pertain to any part of
104
+          the Derivative Works; and
105
+
106
+      (d) If the Work includes a "NOTICE" text file as part of its
107
+          distribution, then any Derivative Works that You distribute must
108
+          include a readable copy of the attribution notices contained
109
+          within such NOTICE file, excluding those notices that do not
110
+          pertain to any part of the Derivative Works, in at least one
111
+          of the following places: within a NOTICE text file distributed
112
+          as part of the Derivative Works; within the Source form or
113
+          documentation, if provided along with the Derivative Works; or,
114
+          within a display generated by the Derivative Works, if and
115
+          wherever such third-party notices normally appear. The contents
116
+          of the NOTICE file are for informational purposes only and
117
+          do not modify the License. You may add Your own attribution
118
+          notices within Derivative Works that You distribute, alongside
119
+          or as an addendum to the NOTICE text from the Work, provided
120
+          that such additional attribution notices cannot be construed
121
+          as modifying the License.
122
+
123
+      You may add Your own copyright statement to Your modifications and
124
+      may provide additional or different license terms and conditions
125
+      for use, reproduction, or distribution of Your modifications, or
126
+      for any such Derivative Works as a whole, provided Your use,
127
+      reproduction, and distribution of the Work otherwise complies with
128
+      the conditions stated in this License.
129
+
130
+   5. Submission of Contributions. Unless You explicitly state otherwise,
131
+      any Contribution intentionally submitted for inclusion in the Work
132
+      by You to the Licensor shall be under the terms and conditions of
133
+      this License, without any additional terms or conditions.
134
+      Notwithstanding the above, nothing herein shall supersede or modify
135
+      the terms of any separate license agreement you may have executed
136
+      with Licensor regarding such Contributions.
137
+
138
+   6. Trademarks. This License does not grant permission to use the trade
139
+      names, trademarks, service marks, or product names of the Licensor,
140
+      except as required for reasonable and customary use in describing the
141
+      origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+   7. Disclaimer of Warranty. Unless required by applicable law or
144
+      agreed to in writing, Licensor provides the Work (and each
145
+      Contributor provides its Contributions) on an "AS IS" BASIS,
146
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+      implied, including, without limitation, any warranties or conditions
148
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+      PARTICULAR PURPOSE. You are solely responsible for determining the
150
+      appropriateness of using or redistributing the Work and assume any
151
+      risks associated with Your exercise of permissions under this License.
152
+
153
+   8. Limitation of Liability. In no event and under no legal theory,
154
+      whether in tort (including negligence), contract, or otherwise,
155
+      unless required by applicable law (such as deliberate and grossly
156
+      negligent acts) or agreed to in writing, shall any Contributor be
157
+      liable to You for damages, including any direct, indirect, special,
158
+      incidental, or consequential damages of any character arising as a
159
+      result of this License or out of the use or inability to use the
160
+      Work (including but not limited to damages for loss of goodwill,
161
+      work stoppage, computer failure or malfunction, or any and all
162
+      other commercial damages or losses), even if such Contributor
163
+      has been advised of the possibility of such damages.
164
+
165
+   9. Accepting Warranty or Additional Liability. While redistributing
166
+      the Work or Derivative Works thereof, You may choose to offer,
167
+      and charge a fee for, acceptance of support, warranty, indemnity,
168
+      or other liability obligations and/or rights consistent with this
169
+      License. However, in accepting such obligations, You may act only
170
+      on Your own behalf and on Your sole responsibility, not on behalf
171
+      of any other Contributor, and only if You agree to indemnify,
172
+      defend, and hold each Contributor harmless for any liability
173
+      incurred by, or claims asserted against, such Contributor by reason
174
+      of your accepting any such warranty or additional liability.
175
+
176
+   END OF TERMS AND CONDITIONS
177
+
178
+   APPENDIX: How to apply the Apache License to your work.
179
+
180
+      To apply the Apache License to your work, attach the following
181
+      boilerplate notice, with the fields enclosed by brackets "[]"
182
+      replaced with your own identifying information. (Don't include
183
+      the brackets!)  The text should be enclosed in the appropriate
184
+      comment syntax for the file format. We also recommend that a
185
+      file or class name and description of purpose be included on the
186
+      same "printed page" as the copyright notice for easier
187
+      identification within third-party archives.
188
+
189
+   Copyright [yyyy] [name of copyright owner]
190
+
191
+   Licensed under the Apache License, Version 2.0 (the "License");
192
+   you may not use this file except in compliance with the License.
193
+   You may obtain a copy of the License at
194
+
195
+       http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+   Unless required by applicable law or agreed to in writing, software
198
+   distributed under the License is distributed on an "AS IS" BASIS,
199
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+   See the License for the specific language governing permissions and
201
+   limitations under the License.

+ 138
- 0
assets/libs/remixicon/README.md 查看文件

@@ -0,0 +1,138 @@
1
+[![logo](http://cdn.remixicon.com/logo-github.svg)](https://remixicon.com)
2
+
3
+[![npm](https://img.shields.io/npm/v/remixicon.svg?labelColor=4A4A4A&color=006AFF&style=flat-square)](https://www.npmjs.com/package/remixicon)
4
+[![downloads](https://img.shields.io/npm/dt/remixicon.svg?labelColor=4A4A4A&color=23AF5F&style=flat-square)](https://www.npmjs.com/package/remixicon)
5
+[![](https://data.jsdelivr.com/v1/package/npm/remixicon/badge)](https://www.jsdelivr.com/package/npm/remixicon)
6
+[![spectrum](https://img.shields.io/badge/chat-Spectrum-7028F5.svg?labelColor=4A4A4A&style=flat-square)](https://spectrum.chat/remixdesign/remixicon)
7
+[![donate](https://img.shields.io/badge/-Donate-DA6429.svg?style=flat-square)](https://remixicon.com/#donate)
8
+
9
+English | [简体中文](./README_CN.md)
10
+
11
+Remix Icon is a set of open-source neutral-style system symbols for designers and developers. Unlike a patchwork icon library, 2200+ icons are all elaborately crafted so that they are born with the gene of readability, consistency and perfect pixels. Each icon was designed in "Outlined" and "Filled" styles based on a 24x24 grid. Of course, all the icons are free for both personal and commercial use.
12
+
13
+[![icon demo](http://cdn.remixicon.com/preview.svg)](https://remixicon.com)
14
+View the full set of Remix Icons at [remixicon.com](https://remixicon.com).
15
+
16
+## Usage
17
+
18
+### Basic Usage
19
+
20
+Just click the icons you want from [remixicon.com](https://remixicon.com), and then you can download the icons in SVG or PNG format.
21
+
22
+Designers can click the `Copy SVG` button and then press `⌘+V` or `Ctrl+V` to paste the vector graphic into your design tool directly, easy and simple.
23
+
24
+> We recommend that designers download or copy icons from our website when needed instead of managing all of them in a local folder. The website's search engine allows you to quickly locate the icon you are looking for and the icons on the website are being continuously updated.
25
+>
26
+> The `Copy SVG` now supports Sketch, Figma, Adobe XD, Adobe Illustrator, Affinity Designer, Affinity Photo, etc.
27
+
28
+Using SVG on the web is as simple as JPEG or PNG. Such as:
29
+
30
+```html
31
+<img height="32" width="32" src="img/admin-fill.svg" />
32
+```
33
+
34
+### Webfont Usage
35
+> **Note:** You can import Remix Icon with npm install, cdn or download it manually.
36
+
37
+#### Installation
38
+> **Note:** If you'd like to use Remix Icon with a CDN, you can skip this installation step.
39
+
40
+```
41
+npm install remixicon --save
42
+```
43
+
44
+
45
+
46
+```
47
+import 'remixicon/fonts/remixicon.css'
48
+```
49
+> import CSS to your main.js
50
+
51
+#### CDN
52
+Copy the following code and add it to the &lt;head&gt; tag of your html document.
53
+
54
+```html
55
+<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
56
+```
57
+
58
+> ==**Important Note:**== We've changed our CDN service to jsDelivr from v2.2.0, and the previous CDN service will be terminated on Jan 30, 2020. Please replace your old CDN to the new link above so as not to affect your business. We apologize for the inconvenience.
59
+>
60
+> The `@2.5.0` in the CDN link can be changed to any history version we've published.
61
+
62
+#### Download Manually
63
+
64
+Download [`remixicon.css`](https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css) file, add it to the &lt;head&gt; tag of your html document.
65
+
66
+#### Use
67
+
68
+Add icon with class name, class name rule: ri-{name}-{style}
69
+
70
+```html
71
+<i class="ri-admin-line"></i>
72
+<i class="ri-admin-fill"></i>
73
+```
74
+> **Note:** We changed the class name prefixes from `remixicon-` to `ri` from v2.0.0;
75
+
76
+> **Note:** You can go to [remixicon.com](https://remixicon.com) to check the name of the icons. `-line` means the outlined style icon, and `-fill` means the filled style icon.
77
+
78
+#### Sizing
79
+
80
+RemixIcon can be resized by css class integrated by `remixicon.css` . Icons inherit the `font-size` of their parent container and with the following classes you can increase or decrease the size of icons relative to that inherited `font-size`. You can also use `ri-fw` class for a fixed width for icons. For example:
81
+
82
+```html
83
+<div style="font-size: 24px;">
84
+  <i class="ri-admin-line ri-fw"></i> <!-- fixed width -->
85
+  <i class="ri-admin-line ri-xxs"></i> <!-- 0.5em -->
86
+  <i class="ri-admin-line ri-xs"></i> <!-- 0.75em -->
87
+  <i class="ri-admin-line ri-sm"></i> <!-- 0.875em -->
88
+  <i class="ri-admin-line ri-1x"></i> <!-- 1em -->
89
+  <i class="ri-admin-line ri-lg"></i> <!-- 1.3333em -->
90
+  <i class="ri-admin-line ri-xl"></i> <!-- 1.5em -->
91
+  <i class="ri-admin-line ri-2x"></i> <!-- 2em -->
92
+  <i class="ri-admin-line ri-3x"></i> <!-- 3em -->
93
+  ...
94
+  <i class="ri-admin-line ri-10x"></i> <!-- 10em -->
95
+</div>
96
+```
97
+
98
+>  You can  check the [`remixicon.css`](https://github.com/Remix-Design/RemixIcon/blob/master/fonts/remixicon.css) file for more info and details.
99
+
100
+### SVG Sprite Usage
101
+
102
+Download [`remixicon.symbol.svg`](https://cdn.remixicon.com/releases/v2.5.0/remixicon.symbol.svg) file into your project directory,use icons with the `<use>` element, such as:
103
+
104
+```html
105
+<svg class='remix'>
106
+  <use xlink:href="your-path/remixicon.symbol.svg#ri-admin-fill"></use>
107
+</svg>
108
+```
109
+```css
110
+.remix {
111
+  width: 24px;
112
+  height: 24px;
113
+  fill: #333;
114
+}
115
+```
116
+
117
+> **Note:** `ri-admin-fill` after the `#` in the above example can be replaced with any valid icon name of Remix Icon. You can go to [remixicon.com](https://remixicon.com) to check the name of the icons. `-line` means the outlined style icon, and `-fill` means the filled style icon.
118
+
119
+## Contributing
120
+
121
+> **Note:** In order to ensure the quality of each icon, we currently do not accept third-party drawn icons. If you want to contribute an icon to Remix Icon, you can create an [issue](https://github.com/Remix-Design/remixicon/issues) with a screenshot or url to your svg-format file. If you are not familiar with github, you can also email us directly `jimmy@remixdesign.cn`.
122
+
123
+### Icon Request
124
+
125
+If there is no suitable icon for your usage scenario, you can create an [issue](https://github.com/Remix-Design/remixicon/issues) with a title of "Icon request: <Icon name>" and fill the issue template.
126
+
127
+> RemixIcon is mainly focuses on user interface icons. If we did not include the logo icons you were looking for, I recommend this icon library - [Simple Icons](https://github.com/simple-icons/simple-icons)
128
+
129
+### Icon Search Keywords
130
+
131
+We use [`tags.json`](https://github.com/Remix-Design/remixicon/blob/master/tags.json) file to manage the search keywords of our [website](https://remixicon.com). But at the moment, we don't have a good automatic method to complete the keywords for each icon. So we hope you can help us to improve the `tags.json` file by creating [issues](https://github.com/Remix-Design/remixicon/issues), sending emails or "pull request" of tags.json file to make the search engine better. Especially when one of our icons matches your scene but you don't find the icon with your keywords.
132
+
133
+## Sub-projects
134
+[RemixIcon-Slides](https://github.com/Remix-Design/RemixIcon-Slides) PowerPoint and Keynote verison of Remix Icon.
135
+
136
+## License
137
+
138
+Remix Icon is licensed under the [Apache License Version 2.0](https://github.com/Remix-Design/remixicon/blob/master/License).  Feel free to use these icons in your products and distribute them. We would be very grateful if you mention "Remix Icon" in your product info, but it's not required. The only thing we ask is that these icons are not for sale.

+ 135
- 0
assets/libs/remixicon/README_CN.md 查看文件

@@ -0,0 +1,135 @@
1
+[![logo](http://cdn.remixicon.com/logo-github.svg)](https://remixicon.com)
2
+
3
+[![npm](https://img.shields.io/npm/v/remixicon.svg?labelColor=4A4A4A&color=006AFF&style=flat-square)](https://www.npmjs.com/package/remixicon)
4
+[![downloads](https://img.shields.io/npm/dt/remixicon.svg?labelColor=4A4A4A&color=23AF5F&style=flat-square)](https://www.npmjs.com/package/remixicon)
5
+[![](https://data.jsdelivr.com/v1/package/npm/remixicon/badge)](https://www.jsdelivr.com/package/npm/remixicon)
6
+[![spectrum](https://img.shields.io/badge/沟通-Spectrum-7028F5.svg?labelColor=4A4A4A&style=flat-square)](https://spectrum.chat/remixdesign/remixicon)
7
+[![donate](https://img.shields.io/badge/-赞助-DA6429.svg?style=flat-square)](https://remixicon.com/#donate)
8
+
9
+[English](./README.md) | 简体中文
10
+
11
+Remix Icon 是一套面向设计师和开发者的开源图标库。我们在设计之初将图标风格定义为中性风格,以便适用于各种用户群的项目。与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,并确保每一枚图标在拥有完美像素对齐的基础上风格一致且简洁易读。图标以24x24网格为基准,分为“线性图标”和“面型图标”两种风格。所有的图标均可免费用于个人项目和商业项目,Enjoy it~
12
+
13
+[![icon demo](http://cdn.remixicon.com/preview.svg)](https://remixicon.com)
14
+前往官网查看整套图标库 [remixicon.com](https://remixicon.com).
15
+
16
+## 使用说明
17
+
18
+### 基本用法
19
+
20
+直接在[remixicon.com](https://remixicon.com)点击您想要的图标, 在打开的图标窗口中可以以 PNG 或者 SVG 格式进行下载,也可以直接复制 SVG 代码。
21
+
22
+设计师小伙伴可以直接点击 `Copy SVG` 之后在UI设计软件中直接粘贴矢量图形,使用起来像插件一样简单便捷。
23
+
24
+> 我们建议设计师小伙伴在需要使用某些图标的时候通过官网搜索下载使用,而不是将一整套图标全部下载放在本地文件夹中进行管理;官网的搜索栏可以帮助您快速定位您想要的图标,而且支持中文关键词搜索,这相比本地文件夹管理图标效率要高很多;最重要的是,官网的图标会持续更新。
25
+> 在官网点击 Copy SVG 之后,可以在 Sketch 中直接粘贴矢量图标,也可以在代码文本编辑器中粘贴 SVG 代码。
26
+>
27
+> `Copy SVG` 功能目前支持在 Sketch、Figma、Adobe XD、Adobe Illustrator、Affinity Designer、Affinity Photo 软件中直接粘贴矢量图形。
28
+
29
+SVG本身也是一种图片格式,所以您可以像使用其他格式(如JPG、PNG)的图片文件一样使用SVG文件,例如直接引入的方式:
30
+
31
+```html
32
+<img height="32" width="32" src="img/admin-fill.svg" />
33
+```
34
+
35
+### Webfont 用法
36
+> **Note:** Webfont支持npm安装引入、CDN引入或者手动下载的方式引入到项目当中,三选一即可。
37
+
38
+#### 安装引入
39
+
40
+> **Note:** 如果您打算通过CDN的方式使用 Remix Icon,可以跳过安装引入这一步。
41
+
42
+```
43
+npm install remixicon --save
44
+```
45
+
46
+```
47
+import 'remixicon/fonts/remixicon.css'
48
+```
49
+> 入口文件引入CSS
50
+
51
+#### CDN引入
52
+如果不打算通过安装的方式使用,可以直接复制下面这行代码到您HTML文档的 &lt;head&gt; 标签中,这样就完成了CDN方式的图标引入,简单快捷,推荐方式。
53
+
54
+```html
55
+<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
56
+```
57
+
58
+> ==**重要提醒**==:我们从 v2.2.0 版本开始将我们的 CDN 服务迁移到了 jsDelivr 上,之前的 CDN 链接将在2020年1月30日停止服务,请务必切换您的 CDN 为最新的服务链接,以免影响您的业务,对于由此带来的影响和不便,我们深感抱歉。
59
+>
60
+> 上面 CDN 链接中的 `@2.5.0` 可以更改为任何我们曾经发布过的历史版本号。
61
+
62
+#### 手动下载引入
63
+
64
+下载保存[`remixicon.css`](https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css)文件,添加到项目的&lt;head&gt; 标签中即可。
65
+
66
+#### 使用
67
+
68
+引入Remix Icon图标库后,就可以在web项目中使用了,只要在使用图标的时候将图标名称作为类名就可以了。类名规则:ri-{name}-{style}
69
+```html
70
+<i class="ri-admin-line"></i>
71
+<i class="ri-admin-fill"></i>
72
+```
73
+> **注意:** 从 v2.0.0 开始,我们修改了 class 名称的前缀,从 `remixicon-` 改为了 `ri-`;
74
+
75
+> **Note:** 您可以到官网 [remixicon.com](https://remixicon.com) 查阅图标对应的名称,然后在名称后添加图标风格,`-line` 代表线性风格,`-fill`代表面型风格。
76
+
77
+#### 大小
78
+
79
+在`v1.3.1`及以上版本的字体使用方式下,RemixIcon 可以通过 `remixicon.css` 中集成的一些 class 来快捷改变图标的大小。这些 class 使用 `em` 相对大小单位来控制图标尺寸,相对值为图标的父类元素的字体大小值。您也可以通过 `ri-fw` 来使得图标宽度固定,例如在列表场景中使用。class 举例:
80
+
81
+```html
82
+<div style="font-size: 24px;">
83
+  <i class="ri-admin-line ri-fw"></i> <!-- fixed width -->
84
+  <i class="ri-admin-line ri-xxs"></i> <!-- 0.5em -->
85
+  <i class="ri-admin-line ri-xs"></i> <!-- 0.75em -->
86
+  <i class="ri-admin-line ri-sm"></i> <!-- 0.875em -->
87
+  <i class="ri-admin-line ri-1x"></i> <!-- 1em -->
88
+  <i class="ri-admin-line ri-lg"></i> <!-- 1.3333em -->
89
+  <i class="ri-admin-line ri-xl"></i> <!-- 1.5em -->
90
+  <i class="ri-admin-line ri-2x"></i> <!-- 2em -->
91
+  <i class="ri-admin-line ri-3x"></i> <!-- 3em -->
92
+  ...
93
+  <i class="ri-admin-line ri-10x"></i> <!-- 10em -->
94
+</div>
95
+```
96
+
97
+> 您也可以在 [`remixicon.css`](https://github.com/Remix-Design/RemixIcon/blob/master/fonts/remixicon.css) 中查看到更多的尺寸定义相关信息。
98
+
99
+### SVG Sprite用法
100
+
101
+下载 [`remixicon.symbol.svg`](https://cdn.remixicon.com/releases/v2.5.0/remixicon.symbol.svg) 并添加到您的项目目录中,通过 `<use>` 标签来引用图标,通过css可以自定义图标的大小和颜色等属性,例如:
102
+
103
+```html
104
+<svg class='remix'>
105
+  <use xlink:href="存放路径/remixicon.symbol.svg#ri-admin-fill"></use>
106
+</svg>
107
+```
108
+```css
109
+.remix {
110
+  width: 24px;
111
+  height: 24px;
112
+  fill: #333;
113
+}
114
+```
115
+
116
+> **Note:** 上面示例中 `#` 后面的`ri-admin-fill`可以替换为任何 Remix Icon 图标名称,您可以到官网 [remixicon.com](https://remixicon.com) 查阅图标对应的名称,然后在名称后添加图标风格,`-line` 代表线性风格,`-fill` 代表面型风格。`remixicon.symbol.svg`文件默认是无法预览查看的,只能通过 `<use>` 使用之后查看。
117
+
118
+## 协作共建
119
+> **Note:** 为了保证每一枚图标的质量,现阶段我们还不接受第三方小伙伴绘制的图标。如果您想要向 Remix Icon 贡献自己设计的图标,请创建一个[issue](https://github.com/Remix-Design/remixicon/issues)来提交自己的图标设计,并在issue详情中附上自己图标的下载地址,我们会按照 Remix Icon图标风格规范进行审核,通过后将会添加到图标库中,并在更新日志中署上作者的ID。如果你对GitHub不是很熟悉,不清除issue和pull request是什么,也可以直接给我们发邮件 `jimmy@remixdesign.cn`,内容表述清楚即可。
120
+
121
+### 图标申请
122
+
123
+如果图标库中缺少某个适合您业务场景的图标,您可以通过创建[issue](https://github.com/Remix-Design/remixicon/issues)的方式进行申请,issue标题格式为:“Icon request: <图标名称>”,并完善issue模板中的相应信息。感谢您提出图标申请,这也是帮助我们完善图标库的一种协作共建方式。
124
+
125
+> RemixIcon 主要聚焦于用户界面类的图标,如果 RemixIcon 没有包含您需要的 logo 类的图标,推荐使用 [Simple Icons](https://github.com/simple-icons/simple-icons),这是一个优秀的 logo 类图标合集。如果您需要的 logo 经常在 UI 端展示,比如社交媒体类图标,也可以发出申请。
126
+
127
+### 图标搜索关键词
128
+
129
+目前我们的[图标官网](https://remixicon.com)是通过[`tags.json`](https://github.com/Remix-Design/remixicon/blob/master/tags.json)文件来管理搜索关键词的,目前我们已经为所有图标添加了中文关键词,因此我们可以通过中文对图标进行搜索和定位;但是由于关键词不是很健全,所以用户还是经常无法通过某个特定关键词搜索到已有图标。而目前我们还没有一个很好的自动化策略来穷举每一个图标的关键词,只能通过人肉添加的方式来进行完善,希望用户可以通过提[issue](https://github.com/Remix-Design/remixicon/issues) 或者pull request的方式来帮我们一块完善维护`tags.json`,让搜索功能变得更加好用。
130
+
131
+## 相关项目
132
+[RemixIcon-Slides](https://github.com/Remix-Design/RemixIcon-Slides) Remix Icon的PPT版本和Keynote版本。
133
+
134
+## 协议许可
135
+Remix Icon 使用的是 [Apache License Version 2.0](https://github.com/Remix-Design/remixicon/blob/master/License) 开源协议。请放心使用和分享本图标库,您可以查看协议详情来了解详细的开源策略。如果您能在您的产品介绍中署名 Remix Icon,我们将会非常感激,但这并不是必须的。唯一需要注意的是,您不能二次销售本图标库中的图标,否则我们会进行追究。

+ 2317
- 0
assets/libs/remixicon/fonts/remixicon.css
文件差異過大導致無法顯示
查看文件


二進制
assets/libs/remixicon/fonts/remixicon.eot 查看文件


+ 2319
- 0
assets/libs/remixicon/fonts/remixicon.less
文件差異過大導致無法顯示
查看文件


+ 6835
- 0
assets/libs/remixicon/fonts/remixicon.svg
文件差異過大導致無法顯示
查看文件


+ 11356
- 0
assets/libs/remixicon/fonts/remixicon.symbol.svg
文件差異過大導致無法顯示
查看文件


二進制
assets/libs/remixicon/fonts/remixicon.ttf 查看文件


二進制
assets/libs/remixicon/fonts/remixicon.woff 查看文件


二進制
assets/libs/remixicon/fonts/remixicon.woff2 查看文件


+ 6
- 0
assets/libs/remixicon/icons/Buildings/ancient-gate-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-6v-2a3 3 0 0 0-5.995-.176L9 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-1.865-7a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/ancient-gate-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path fill-rule="nonzero" d="M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-7v-2a2 2 0 0 0-1.85-1.995L12 17a2 2 0 0 0-1.995 1.85L10 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-.971 2H6.069l-.076.079c-.431.42-.935.76-1.486 1.002l-.096.039.589.28-.001 5.6 3.002-.001v-.072l.01-.223c.149-2.016 1.78-3.599 3.854-3.698l.208-.005.223.01a4 4 0 0 1 3.699 3.787l.004.201L19 19l.001-5.6.587-.28-.095-.04a5.002 5.002 0 0 1-1.486-1.001L17.93 12zm-.894-9a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072zM15.6 5H8.399a5.507 5.507 0 0 1-1.49 1.816L6.661 7h10.677l-.012-.008a5.518 5.518 0 0 1-1.579-1.722L15.6 5z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/ancient-pavilion-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/ancient-pavilion-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path fill-rule="nonzero" d="M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7zm-5-6.673l-.11.155A11.012 11.012 0 0 1 5.4 9.736l-.358.073.673.19h12.573l.668-.19-.011-.002a11.01 11.01 0 0 1-6.836-4.326L12 5.326z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/bank-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm10 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/bank-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm2 1.236V9h16v-.764l-8-4-8 4zM12 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M12 19h2V6l6.394 2.74a1 1 0 0 1 .606.92V19h2v2H1v-2h2V5.65a1 1 0 0 1 .594-.914l7.703-3.424A.5.5 0 0 1 12 1.77V19z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 19V5.7a1 1 0 0 1 .658-.94l9.671-3.516a.5.5 0 0 1 .671.47v4.953l6.316 2.105a1 1 0 0 1 .684.949V19h2v2H1v-2h2zm2 0h7V3.855L5 6.401V19zm14 0v-8.558l-5-1.667V19h5z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-3-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M10 10.111V1l11 6v14H3V7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-3-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M10 10.111V1l11 6v14H3V7l7 3.111zm2-5.742v8.82l-7-3.111V19h14V8.187L12 4.37z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-4-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM8 11v2h3v-2H8zm0-4v2h3V7H8zm0 8v2h3v-2H8zm5 0v2h3v-2h-3zm0-4v2h3v-2h-3zm0-4v2h3V7h-3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-4-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h2V9h3a1 1 0 0 1 1 1v9zM7 11v2h4v-2H7zm0-4v2h4V7H7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/building-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h4v-8h-2V9h3a1 1 0 0 1 1 1v9zM5 5v14h8V5H5zm2 6h4v2H7v-2zm0-4h4v2H7V7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/community-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm12 2H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-5-10v2h2v-2h-2zm0 4v2h2v-2h-2zm0-8v2h2V7h-2zm-4 0v2h2V7h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/community-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 21H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zM9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm5 0h6V5H8v2.127c.234 0 .469.082.657.247l5 4.359a1 1 0 0 1 .343.754V19zm2-8h2v2h-2v-2zm0 4h2v2h-2v-2zm0-8h2v2h-2V7zm-4 0h2v2h-2V7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/government-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 19V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3v2h-1v11h1v2H1v-2h1zm11 0v-7h-2v7h2zm-5 0v-7H6v7h2zm10 0v-7h-2v7h2zM6 5v1h12V5H6z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/government-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 6h3v2h-1v11h1v2H1v-2h1V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2H4v11h3v-7h2v7h2v-7h2v7h2v-7h2v7h3V8zM6 5v1h12V5H6z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-3-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8 15v2h8v-2H8z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-3-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2-4h8v2H8v-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-4-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-9-7v6h2v-6h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-4-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zm-6-2h5V9.157l-6-5.454-6 5.454V19h5v-6h2v6z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-5-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-10-7v6h2v-6h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-5-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M13 19h6V9.978l-7-5.444-7 5.444V19h6v-6h2v6zm8 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-6-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zM7 15v2h10v-2H7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-6-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14zM7 15h10v2H7v-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-7-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H0l10.327-9.388a1 1 0 0 1 1.346 0L22 11h-3v9zm-8-5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-7-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm6-4a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-8-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM9 10v6h6v-6H9zm2 2h2v2h-2v-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-8-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm3-9h6v6H9v-6zm2 2v2h2v-2h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-gear-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8.592 13.808l-.991.572 1 1.733.993-.573a3.5 3.5 0 0 0 1.405.811v1.145h2.002V16.35a3.5 3.5 0 0 0 1.405-.81l.992.572L16.4 14.38l-.991-.572a3.504 3.504 0 0 0 0-1.62l.991-.573-1-1.733-.993.573A3.5 3.5 0 0 0 13 9.645V8.5h-2.002v1.144a3.5 3.5 0 0 0-1.405.811l-.992-.573L7.6 11.616l.991.572a3.504 3.504 0 0 0 0 1.62zm3.408.69a1.5 1.5 0 1 1-.002-3.001 1.5 1.5 0 0 1 .002 3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-gear-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2.591-5.191a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.404.812l.991-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-heart-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-8-3l3.359-3.359a2.25 2.25 0 1 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 1 0-3.182 3.182L12 17z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-heart-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path fill-rule="nonzero" d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-2-1V9.157l-6-5.454-6 5.454V19h12zm-6-2l-3.359-3.359a2.25 2.25 0 1 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 1 1 3.182 3.182L12 17z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-smile-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-smile-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M19 19V9.799l-7-5.522-7 5.522V19h14zm2 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-smile-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7.5 13a4.5 4.5 0 1 0 9 0h-2a2.5 2.5 0 1 1-5 0h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-smile-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM7.5 13h2a2.5 2.5 0 1 0 5 0h2a4.5 4.5 0 1 1-9 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-wifi-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7 11v2a5 5 0 0 1 5 5h2a7 7 0 0 0-7-7zm0 4v3h3a3 3 0 0 0-3-3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/home-wifi-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM8 10a7 7 0 0 1 7 7h-2a5 5 0 0 0-5-5v-2zm0 4a3 3 0 0 1 3 3H8v-3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/hospital-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8H9v2h2v2h2v-2h2V8h-2V6h-2v2zm3 12h2v-6H8v6h2v-4h4v4z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/hospital-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path fill-rule="nonzero" d="M8 20v-6h8v6h3V4H5v16h3zm2 0h4v-4h-4v4zm11 0h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8V6h2v2h2v2h-2v2h-2v-2H9V8h2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/hotel-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M17 19h2v-8h-6v8h2v-6h2v6zM3 19V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2H2v-2h1zm4-8v2h2v-2H7zm0 4v2h2v-2H7zm0-8v2h2V7H7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/hotel-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M22 21H2v-2h1V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2zm-5-2h2v-8h-6v8h2v-6h2v6zm0-10V5H5v14h6V9h6zM7 11h2v2H7v-2zm0 4h2v2H7v-2zm0-8h2v2H7V7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M22 20v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242V20h1zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 13.242V20h1v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242zm-2 .73a4.496 4.496 0 0 1-3.75-1.36A4.496 4.496 0 0 1 12 14.001a4.496 4.496 0 0 1-3.25-1.387A4.496 4.496 0 0 1 5 13.973V20h14v-6.027zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-3-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm1 1h8v3H6v-3zM3 3h18v2H3V3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-3-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm-.96-2h15.92l-.6-3H4.64l-.6 3zM6 14h8v3H6v-3zM3 3h18v2H3V3z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Buildings/store-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zm-2 1.228a4.007 4.007 0 0 1-4-1.228A3.99 3.99 0 0 1 12 13a3.99 3.99 0 0 1-3-1.354 3.99 3.99 0 0 1-4 1.228V20h14v-7.126zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/advertisement-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM9.399 8h-2l-3.2 8h2.154l.4-1h3.29l.4 1h2.155L9.399 8zM19 8h-2v2h-1a3 3 0 0 0-.176 5.995L16 16h3V8zm-2 4v2h-1l-.117-.007a1 1 0 0 1 0-1.986L16 12h1zm-8.601-1.115L9.244 13H7.552l.847-2.115z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/advertisement-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path fill-rule="nonzero" d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM9.399 8l3.199 8h-2.155l-.4-1h-3.29l-.4 1H4.199l3.2-8h2zM19 8v8h-3a3 3 0 0 1 0-6h.999L17 8h2zm-2 4h-1a1 1 0 0 0-.117 1.993L16 14h1v-2zm-8.601-1.115L7.552 13h1.692l-.845-2.115z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/archive-drawer-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 13h18v8.002c0 .551-.445.998-.993.998H3.993A.995.995 0 0 1 3 21.002V13zM3 2.998C3 2.447 3.445 2 3.993 2h16.014c.548 0 .993.446.993.998V11H3V2.998zM9 5v2h6V5H9zm0 11v2h6v-2H9z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/archive-drawer-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/archive-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 10h18v10.004c0 .55-.445.996-.993.996H3.993A.994.994 0 0 1 3 20.004V10zm6 2v2h6v-2H9zM2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.444.992 1v4H2V4z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/archive-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 10H2V4.003C2 3.449 2.455 3 2.992 3h18.016A.99.99 0 0 1 22 4.003V10h-1v10.001a.996.996 0 0 1-.993.999H3.993A.996.996 0 0 1 3 20.001V10zm16 0H5v9h14v-9zM4 5v3h16V5H4zm5 7h6v2H9v-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/at-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm8-10a8 8 0 1 0-3.968 6.911l-1.008-1.727A6 6 0 1 1 18 12v1a1 1 0 0 1-2 0V9h-1.354a4 4 0 1 0 .066 5.94A3 3 0 0 0 20 13v-1zm-8-2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/at-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/attachment-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M20.997 2.992L21 21.008a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.01c.549 0 .994.444.994.992zM9 13V9a1 1 0 1 1 2 0v4a1 1 0 0 0 2 0V9a3 3 0 0 0-6 0v4a5 5 0 0 0 10 0V8h-2v5a3 3 0 0 1-6 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/attachment-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M14 13.5V8a4 4 0 1 0-8 0v5.5a6.5 6.5 0 1 0 13 0V4h2v9.5a8.5 8.5 0 1 1-17 0V8a6 6 0 1 1 12 0v5.5a3.5 3.5 0 0 1-7 0V8h2v5.5a1.5 1.5 0 0 0 3 0z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/award-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/award-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zm-8 1.173v3.05l3-1.8 3 1.8v-3.05A7.978 7.978 0 0 1 12 17a7.978 7.978 0 0 1-3-.582zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 13h6v8H2v-8zM9 3h6v18H9V3zm7 5h6v13h-6V8z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 13h6v8H2v-8zm14-5h6v13h-6V8zM9 3h6v18H9V3zM4 15v4h2v-4H4zm7-10v14h2V5h-2zm7 5v9h2v-9h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-box-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 10v4h2v-4H7zm4-6v10h2V7h-2zm4 3v7h2v-7h-2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-box-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 8h2v4H7v-4zm4-6h2v10h-2V7zm4 3h2v7h-2v-7z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 12h4v9H3v-9zm14-4h4v13h-4V8zm-7-6h4v19h-4V2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-grouped-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-grouped-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-horizontal-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M12 3v4H3V3h9zm4 14v4H3v-4h13zm6-7v4H3v-4h19z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-horizontal-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M12 3v2H3V3h9zm4 16v2H3v-2h13zm6-8v2H3v-2h19z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bar-chart-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M3 12h2v9H3v-9zm16-4h2v13h-2V8zm-8-6h2v19h-2V2z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bookmark-2-fill.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm3 7v2h8V9H8z"/>
5
+    </g>
6
+</svg>

+ 6
- 0
assets/libs/remixicon/icons/Business/bookmark-2-line.svg 查看文件

@@ -0,0 +1,6 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+    <g>
3
+        <path fill="none" d="M0 0h24v24H0z"/>
4
+        <path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm13 2H6v15.432l6-3.761 6 3.761V4zM8 9h8v2H8V9z"/>
5
+    </g>
6
+</svg>

+ 0
- 0
assets/libs/remixicon/icons/Business/bookmark-3-fill.svg 查看文件


部分文件因文件數量過多而無法顯示

Loading…
取消
儲存