@jx3box/jx3box-ui 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +50 -2
  2. package/assets/css/bread/admin.less +32 -0
  3. package/assets/css/bread/breadcrumb.less +38 -0
  4. package/assets/css/bread/crumb.less +6 -0
  5. package/assets/css/comment/quick-reply.less +12 -1
  6. package/assets/css/common/bottom.less +4 -0
  7. package/assets/css/common/footer.less +23 -0
  8. package/assets/css/common/left-sidebar.less +28 -0
  9. package/assets/css/common/main.less +21 -0
  10. package/assets/css/common/right-sidebar.less +31 -0
  11. package/assets/css/common/suspend-common.less +51 -0
  12. package/assets/css/editor/combo.less +51 -0
  13. package/assets/css/editor/resource.less +64 -0
  14. package/assets/css/editor/tinymce.less +20 -0
  15. package/assets/css/editor/upload.less +25 -0
  16. package/assets/css/filters/client-by.less +6 -0
  17. package/assets/css/header/box.less +34 -0
  18. package/assets/css/interact/like2.less +4 -0
  19. package/assets/css/interact/share2.less +17 -0
  20. package/assets/css/mixin.less +3 -0
  21. package/assets/css/module/author.less +41 -0
  22. package/assets/css/module/buff.less +10 -0
  23. package/assets/css/module/directory.less +22 -0
  24. package/assets/css/module/icon.less +4 -0
  25. package/assets/css/module/item.less +50 -0
  26. package/assets/css/module/item_simple.less +7 -0
  27. package/assets/css/module/jx3_element.less +2 -1
  28. package/assets/css/module/macro.less +17 -0
  29. package/assets/css/module/npc.less +46 -1
  30. package/assets/css/module/resource.less +13 -0
  31. package/assets/css/module/skill.less +9 -0
  32. package/assets/css/module/talent.less +71 -0
  33. package/assets/css/single/author.less +24 -10
  34. package/assets/css/single/cms-single.less +16 -0
  35. package/assets/css/single/thx.less +51 -0
  36. package/assets/css/tinymce/_.less +7 -1
  37. package/assets/css/tinymce/a.less +5 -0
  38. package/assets/css/tinymce/code.less +22 -0
  39. package/assets/css/tinymce/combo.less +12 -0
  40. package/assets/css/tinymce/fold.less +12 -0
  41. package/assets/css/tinymce/h.less +10 -0
  42. package/assets/css/tinymce/hr.less +2 -0
  43. package/assets/css/tinymce/img.less +3 -0
  44. package/assets/css/tinymce/imgpreview.less +6 -1
  45. package/assets/css/tinymce/latex.less +7 -1
  46. package/assets/css/tinymce/list.less +12 -0
  47. package/assets/css/tinymce/macro.less +7 -1
  48. package/assets/css/tinymce/nextpage.less +14 -0
  49. package/assets/css/tinymce/p.less +2 -0
  50. package/assets/css/tinymce/pz.less +6 -0
  51. package/assets/css/tinymce/qixue.less +6 -0
  52. package/assets/css/tinymce/quote.less +2 -0
  53. package/assets/css/tinymce/table.less +13 -1
  54. package/assets/css/tinymce/video.less +18 -0
  55. package/assets/img/author/rss.svg +1 -0
  56. package/assets/img/common/logo-v2.svg +14 -0
  57. package/index.js +2 -0
  58. package/package.json +1 -1
  59. package/service/comment.js +56 -96
  60. package/src/App.vue +31 -31
  61. package/src/Breadcrumb.vue +16 -20
  62. package/src/Icon.vue +53 -0
  63. package/src/author/AuthorFans.vue +15 -5
  64. package/src/author/AuthorFollow.vue +1 -1
  65. package/src/author/AuthorGift.vue +9 -9
  66. package/src/author/AuthorHonor.vue +9 -8
  67. package/src/author/AuthorInfo.vue +10 -1
  68. package/src/author/AuthorLink.vue +8 -1
  69. package/src/author/AuthorPosts.vue +14 -8
  70. package/src/author/AuthorRss.vue +28 -34
  71. package/src/bread/Admin.vue +19 -6
  72. package/src/bread/Crumb.vue +7 -2
  73. package/src/bread/DesignTask.vue +44 -37
  74. package/src/comment/Avatar.vue +26 -8
  75. package/src/comment/CommentContent.vue +62 -17
  76. package/src/comment/CommentContentSimple.vue +54 -15
  77. package/src/comment/CommentWithReply.vue +22 -1
  78. package/src/comment/ReplyForReply.vue +14 -1
  79. package/src/comment/ReplyItem.vue +10 -1
  80. package/src/comment/ReplyList.vue +19 -1
  81. package/src/editor/BoxResource.vue +2 -2
  82. package/src/editor/Resource.vue +6 -6
  83. package/src/filters/clientBy.vue +14 -1
  84. package/src/filters/menuBy.vue +14 -1
  85. package/src/filters/orderBy.vue +1 -1
  86. package/src/filters/tagBy.vue +10 -1
  87. package/src/filters/versionBy.vue +6 -1
  88. package/src/filters/zlpBy.vue +6 -1
  89. package/src/header/asset.vue +13 -1
  90. package/src/header/box.vue +6 -1
  91. package/src/header/box2.vue +232 -233
  92. package/src/header/client.vue +6 -1
  93. package/src/header/logo.vue +1 -1
  94. package/src/header/manage.vue +0 -1
  95. package/src/header/nav.vue +1 -1
  96. package/src/header/userInfo.vue +14 -1
  97. package/src/interact/BoxcoinAdmin.vue +46 -5
  98. package/src/interact/BoxcoinRecords.vue +22 -1
  99. package/src/interact/BoxcoinUser.vue +49 -8
  100. package/src/interact/Contributors.vue +7 -11
  101. package/src/interact/Fav.vue +22 -1
  102. package/src/interact/Like.vue +10 -1
  103. package/src/interact/Share.vue +18 -1
  104. package/src/interact/WatchLater.vue +3 -3
  105. package/src/main.js +3 -1
  106. package/src/single/Author.vue +15 -10
  107. package/src/single/Collection.vue +10 -1
  108. package/src/single/Comment.vue +20 -3
  109. package/src/single/Creators.vue +10 -1
  110. package/src/single/PostDirectory.vue +1 -1
  111. package/src/single/PostHeader.vue +18 -1
  112. package/src/single/SimpleThx.vue +2 -2
  113. package/src/single/Thx.vue +45 -27
  114. package/src/single/cms-single.vue +10 -1
  115. package/assets/img/author/msg.svg +0 -55
  116. package/src/Bottom.vue +0 -23
  117. package/src/Box.vue +0 -149
  118. package/src/author/AuthorMsg.vue +0 -25
  119. package/src/bread/AdminButton.vue +0 -31
@@ -16,12 +16,7 @@
16
16
  </div>
17
17
  <div class="u-search">
18
18
  <i class="el-icon-search u-search-icon"></i>
19
- <input
20
- v-model.trim="searchQuery"
21
- class="u-search-input"
22
- type="text"
23
- placeholder="搜索应用"
24
- />
19
+ <input v-model.trim="searchQuery" class="u-search-input" type="text" placeholder="搜索应用" />
25
20
  <button v-if="searchQuery" class="u-search-clear" type="button" @click="searchQuery = ''">
26
21
  <i class="el-icon-close"></i>
27
22
  </button>
@@ -35,7 +30,7 @@
35
30
  <div class="u-icon-wrap">
36
31
  <img class="u-pic" svg-inline :src="homeicon" />
37
32
  </div>
38
- <span class="u-txt">首页</span>
33
+ <span class="u-txt">{{ $jx3boxT("jx3boxUi.header.home", "首页") }}</span>
39
34
  </a>
40
35
  </li>
41
36
  <li v-for="(item, i) in filteredList" :key="i">
@@ -59,6 +54,7 @@
59
54
  <script>
60
55
  import Bus from "./bus";
61
56
  import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
57
+ import i18nMixin from "../../i18n/mixin";
62
58
  import box from "../../assets/data/box.json";
63
59
  import { getMenu } from "../../service/header.js";
64
60
 
@@ -66,6 +62,7 @@ const { __imgPath, __cdn } = JX3BOX;
66
62
 
67
63
  export default {
68
64
  name: "Box2",
65
+ mixins: [i18nMixin],
69
66
  data: function () {
70
67
  return {
71
68
  status: false,
@@ -188,7 +185,7 @@ export default {
188
185
  };
189
186
  </script>
190
187
 
191
- <style scoped lang="less">
188
+ <style lang="less">
192
189
  .c-jx3box2-mask {
193
190
  position: fixed;
194
191
  left: 0;
@@ -204,6 +201,32 @@ export default {
204
201
  backdrop-filter: blur(12px);
205
202
  -webkit-backdrop-filter: blur(12px);
206
203
  }
204
+ @media screen and (max-width: @phone) {
205
+ .c-jx3box2-mask {
206
+ display: none;
207
+ }
208
+ }
209
+
210
+ .box2-fade-enter-active,
211
+ .box2-fade-leave-active {
212
+ transition: opacity 0.25s ease;
213
+ }
214
+
215
+ .box2-fade-enter-active .c-jx3box2,
216
+ .box2-fade-leave-active .c-jx3box2 {
217
+ transition: transform 0.25s ease, opacity 0.25s ease;
218
+ }
219
+
220
+ .box2-fade-enter-from,
221
+ .box2-fade-leave-to {
222
+ opacity: 0;
223
+ }
224
+
225
+ .box2-fade-enter-from .c-jx3box2,
226
+ .box2-fade-leave-to .c-jx3box2 {
227
+ transform: translateY(16px) scale(0.96);
228
+ opacity: 0;
229
+ }
207
230
 
208
231
  .c-jx3box2 {
209
232
  position: relative;
@@ -218,262 +241,238 @@ export default {
218
241
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.45);
219
242
  }
220
243
 
221
- .u-topline {
222
- height: 6px;
223
- width: 100%;
224
- background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.6), transparent);
225
- }
226
-
227
- .u-head {
228
- padding: 28px 32px 24px;
229
- display: flex;
230
- align-items: center;
231
- gap: 20px;
232
- justify-content: space-between;
233
- flex-wrap: wrap;
234
- }
235
-
236
- .u-title-wrap {
237
- display: flex;
238
- align-items: center;
239
- gap: 14px;
240
- }
241
-
242
- .u-logo {
243
- width: 46px;
244
- height: 46px;
245
- border-radius: 14px;
246
- background: #fff;
247
- color: #fff;
248
- display: inline-flex;
249
- align-items: center;
250
- justify-content: center;
251
- box-shadow: 0 8px 24px rgba(37, 99, 235, 0.38);
252
- }
253
-
254
- .u-title {
255
- margin: 0;
256
- color: #fff;
257
- font-size: 28px;
258
- line-height: 1.1;
259
- font-weight: 800;
260
- }
261
-
262
- .u-subtitle {
263
- margin: 6px 0 0;
264
- color: #60a5fa;
265
- font-size: 10px;
266
- letter-spacing: 0.26em;
267
- font-weight: 700;
268
- }
244
+ .c-jx3box2 {
245
+ .u-topline {
246
+ height: 6px;
247
+ width: 100%;
248
+ background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.6), transparent);
249
+ }
269
250
 
270
- .u-search {
271
- width: min(460px, 100%);
272
- margin-left: auto;
273
- position: relative;
274
- }
251
+ .u-head {
252
+ padding: 28px 32px 24px;
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 20px;
256
+ justify-content: space-between;
257
+ flex-wrap: wrap;
258
+ }
275
259
 
276
- .u-search-input {
277
- width: 100%;
278
- height: 48px;
279
- border-radius: 16px;
280
- border: 1px solid rgba(255, 255, 255, 0.12);
281
- background: rgba(0, 0, 0, 0.3);
282
- color: #fff;
283
- outline: none;
284
- padding: 0 40px 0 40px;
285
- box-sizing: border-box;
286
- transition: all 0.2s ease;
287
- }
260
+ .u-title-wrap {
261
+ display: flex;
262
+ align-items: center;
263
+ gap: 14px;
264
+ }
288
265
 
289
- .u-search-input::placeholder {
290
- color: #6b7280;
291
- }
266
+ .u-logo {
267
+ width: 46px;
268
+ height: 46px;
269
+ border-radius: 14px;
270
+ background: #fff;
271
+ color: #fff;
272
+ display: inline-flex;
273
+ align-items: center;
274
+ justify-content: center;
275
+ box-shadow: 0 8px 24px rgba(37, 99, 235, 0.38);
276
+ padding:5px;
277
+ }
292
278
 
293
- .u-search-input:focus {
294
- border-color: rgba(59, 130, 246, 0.5);
295
- box-shadow: 0 0 20px rgba(59, 130, 246, 0.2);
296
- }
279
+ .u-title {
280
+ margin: 0;
281
+ color: #fff;
282
+ font-size: 28px;
283
+ line-height: 1.1;
284
+ font-weight: 800;
285
+ }
297
286
 
298
- .u-search-icon {
299
- position: absolute;
300
- left: 14px;
301
- top: 50%;
302
- transform: translateY(-50%);
303
- color: #6b7280;
304
- font-size: 16px;
305
- }
287
+ .u-subtitle {
288
+ margin: 6px 0 0;
289
+ color: #60a5fa;
290
+ font-size: 10px;
291
+ letter-spacing: 0.26em;
292
+ font-weight: 700;
293
+ }
306
294
 
307
- .u-search-clear {
308
- position: absolute;
309
- right: 10px;
310
- top: 50%;
311
- transform: translateY(-50%);
312
- border: 0;
313
- background: transparent;
314
- color: #798192;
315
- cursor: pointer;
316
- }
295
+ .u-search {
296
+ width: min(460px, 100%);
297
+ margin-left: auto;
298
+ position: relative;
299
+ }
317
300
 
318
- .u-search-clear:hover {
319
- color: #fff;
320
- }
301
+ .u-search-input {
302
+ width: 100%;
303
+ height: 48px;
304
+ border-radius: 16px;
305
+ border: 1px solid rgba(255, 255, 255, 0.12);
306
+ background: rgba(0, 0, 0, 0.3);
307
+ color: #fff;
308
+ outline: none;
309
+ padding: 0 40px 0 40px;
310
+ box-sizing: border-box;
311
+ transition: all 0.2s ease;
312
+ }
321
313
 
322
- .u-body {
323
- padding: 4px 32px 24px;
324
- flex: 1;
325
- min-height: 360px;
326
- display: flex;
327
- flex-direction: column;
328
- overflow-y: auto;
329
- }
314
+ .u-search-input::placeholder {
315
+ color: #6b7280;
316
+ }
330
317
 
331
- .u-list {
332
- margin: 0;
333
- padding: 0;
334
- list-style: none;
335
- display: grid;
336
- grid-template-columns: repeat(8, minmax(0, 1fr));
337
- gap: 14px;
338
- align-content: start;
339
- }
318
+ .u-search-input:focus {
319
+ border-color: rgba(59, 130, 246, 0.5);
320
+ box-shadow: 0 0 20px rgba(59, 130, 246, 0.2);
321
+ }
340
322
 
341
- .u-item {
342
- height: 116px;
343
- display: flex;
344
- flex-direction: column;
345
- align-items: center;
346
- justify-content: center;
347
- border-radius: 22px;
348
- background: rgba(255, 255, 255, 0.03);
349
- border: 1px solid rgba(255, 255, 255, 0.07);
350
- text-decoration: none;
351
- transition: all 0.25s ease;
352
- }
323
+ .u-search-icon {
324
+ position: absolute;
325
+ left: 14px;
326
+ top: 50%;
327
+ transform: translateY(-50%);
328
+ color: #6b7280;
329
+ font-size: 16px;
330
+ }
353
331
 
354
- .u-item:hover {
355
- transform: translateY(-4px);
356
- border-color: rgba(59, 130, 246, 0.5);
357
- background: rgba(59, 130, 246, 0.12);
358
- box-shadow: 0 14px 26px -12px rgba(0, 0, 0, 0.55), 0 0 16px rgba(59, 130, 246, 0.2);
359
- }
332
+ .u-search-clear {
333
+ position: absolute;
334
+ right: 10px;
335
+ top: 50%;
336
+ transform: translateY(-50%);
337
+ border: 0;
338
+ background: transparent;
339
+ color: #798192;
340
+ cursor: pointer;
341
+ }
360
342
 
361
- .u-icon-wrap {
362
- width: 54px;
363
- height: 54px;
364
- border-radius: 14px;
365
- background: rgba(255, 255, 255, 0.05);
366
- display: flex;
367
- align-items: center;
368
- justify-content: center;
369
- transition: all 0.25s ease;
370
- }
343
+ .u-search-clear:hover {
344
+ color: #fff;
345
+ }
371
346
 
372
- .u-item:hover .u-icon-wrap {
373
- background: rgba(37, 99, 235, 0.18);
374
- }
347
+ .u-body {
348
+ padding: 4px 32px 24px;
349
+ flex: 1;
350
+ min-height: 360px;
351
+ display: flex;
352
+ flex-direction: column;
353
+ overflow-y: auto;
354
+ }
375
355
 
376
- .u-pic {
377
- width: 30px;
378
- height: 30px;
379
- object-fit: contain;
380
- }
356
+ .u-list {
357
+ margin: 0;
358
+ padding: 0;
359
+ list-style: none;
360
+ display: grid;
361
+ grid-template-columns: repeat(8, minmax(0, 1fr));
362
+ gap: 14px;
363
+ align-content: start;
364
+ }
381
365
 
382
- .u-txt {
383
- margin-top: 10px;
384
- font-size: 12px;
385
- color: #a8b0be;
386
- line-height: 1.2;
387
- }
366
+ .u-item {
367
+ height: 116px;
368
+ display: flex;
369
+ flex-direction: column;
370
+ align-items: center;
371
+ justify-content: center;
372
+ border-radius: 22px;
373
+ background: rgba(255, 255, 255, 0.03);
374
+ border: 1px solid rgba(255, 255, 255, 0.07);
375
+ text-decoration: none;
376
+ transition: all 0.25s ease;
377
+ }
388
378
 
389
- .u-item:hover .u-txt {
390
- color: #fff;
391
- }
379
+ .u-item:hover {
380
+ transform: translateY(-4px);
381
+ border-color: rgba(59, 130, 246, 0.5);
382
+ background: rgba(59, 130, 246, 0.12);
383
+ box-shadow: 0 14px 26px -12px rgba(0, 0, 0, 0.55), 0 0 16px rgba(59, 130, 246, 0.2);
384
+ }
392
385
 
393
- .u-empty {
394
- flex: 1;
395
- display: flex;
396
- align-items: center;
397
- justify-content: center;
398
- color: #8b95a7;
399
- font-size: 13px;
400
- }
386
+ .u-icon-wrap {
387
+ width: 54px;
388
+ height: 54px;
389
+ border-radius: 14px;
390
+ background: rgba(255, 255, 255, 0.05);
391
+ display: flex;
392
+ align-items: center;
393
+ justify-content: center;
394
+ transition: all 0.25s ease;
395
+ }
401
396
 
402
- .u-foot {
403
- display: flex;
404
- align-items: center;
405
- justify-content: space-between;
406
- padding: 14px 32px;
407
- border-top: 1px solid rgba(255, 255, 255, 0.05);
408
- background: rgba(0, 0, 0, 0.24);
409
- }
397
+ .u-item:hover .u-icon-wrap {
398
+ background: rgba(37, 99, 235, 0.18);
399
+ }
410
400
 
411
- .u-foot-left {
412
- display: inline-flex;
413
- align-items: center;
414
- gap: 8px;
415
- font-size: 10px;
416
- letter-spacing: 0.2em;
417
- color: #9ba3b2;
418
- font-weight: 600;
419
- }
401
+ .u-pic {
402
+ width: 30px;
403
+ height: 30px;
404
+ object-fit: contain;
405
+ }
420
406
 
421
- .u-dot {
422
- width: 6px;
423
- height: 6px;
424
- border-radius: 50%;
425
- background: #3b82f6;
426
- }
407
+ .u-txt {
408
+ margin-top: 10px;
409
+ font-size: 12px;
410
+ color: #a8b0be;
411
+ line-height: 1.2;
412
+ }
427
413
 
428
- .u-close {
429
- border: 0;
430
- background: transparent;
431
- color: #9ba3b2;
432
- font-size: 11px;
433
- letter-spacing: 0.12em;
434
- cursor: pointer;
435
- }
414
+ .u-item:hover .u-txt {
415
+ color: #fff;
416
+ }
436
417
 
437
- .u-close:hover {
438
- color: #fff;
439
- }
418
+ .u-empty {
419
+ flex: 1;
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ color: #8b95a7;
424
+ font-size: 13px;
425
+ }
440
426
 
441
- .box2-fade-enter-active,
442
- .box2-fade-leave-active {
443
- transition: opacity 0.25s ease;
444
- }
427
+ .u-foot {
428
+ display: flex;
429
+ align-items: center;
430
+ justify-content: space-between;
431
+ padding: 14px 32px;
432
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
433
+ background: rgba(0, 0, 0, 0.24);
434
+ }
445
435
 
446
- .box2-fade-enter-active .c-jx3box2,
447
- .box2-fade-leave-active .c-jx3box2 {
448
- transition: transform 0.25s ease, opacity 0.25s ease;
449
- }
436
+ .u-foot-left {
437
+ display: inline-flex;
438
+ align-items: center;
439
+ gap: 8px;
440
+ font-size: 10px;
441
+ letter-spacing: 0.2em;
442
+ color: #9ba3b2;
443
+ font-weight: 600;
444
+ }
450
445
 
451
- .box2-fade-enter-from,
452
- .box2-fade-leave-to {
453
- opacity: 0;
454
- }
446
+ .u-dot {
447
+ width: 6px;
448
+ height: 6px;
449
+ border-radius: 50%;
450
+ background: #3b82f6;
451
+ }
455
452
 
456
- .box2-fade-enter-from .c-jx3box2,
457
- .box2-fade-leave-to .c-jx3box2 {
458
- transform: translateY(16px) scale(0.96);
459
- opacity: 0;
460
- }
453
+ .u-close {
454
+ border: 0;
455
+ background: transparent;
456
+ color: #9ba3b2;
457
+ font-size: 11px;
458
+ letter-spacing: 0.12em;
459
+ cursor: pointer;
460
+ }
461
461
 
462
- @media screen and (max-width: 1200px) {
463
- .u-list {
464
- grid-template-columns: repeat(6, minmax(0, 1fr));
462
+ .u-close:hover {
463
+ color: #fff;
465
464
  }
466
- }
467
465
 
468
- @media screen and (max-width: 992px) {
469
- .u-list {
470
- grid-template-columns: repeat(5, minmax(0, 1fr));
466
+ @media screen and (max-width: 1200px) {
467
+ .u-list {
468
+ grid-template-columns: repeat(6, minmax(0, 1fr));
469
+ }
471
470
  }
472
- }
473
471
 
474
- @media screen and (max-width: @phone) {
475
- .c-jx3box2-mask {
476
- display: none;
472
+ @media screen and (max-width: 992px) {
473
+ .u-list {
474
+ grid-template-columns: repeat(5, minmax(0, 1fr));
475
+ }
477
476
  }
478
477
  }
479
478
  </style>
@@ -107,7 +107,12 @@ export default {
107
107
  // Jx3Icon,
108
108
  // OriginIcon,
109
109
  },
110
- props: ["defaultValue"],
110
+ props: {
111
+ defaultValue: {
112
+ type: String,
113
+ default: "",
114
+ },
115
+ },
111
116
  data: function () {
112
117
  return {
113
118
  activeKey: this.defaultValue || (location.host.includes("origin") ? "origin" : "std"),
@@ -22,7 +22,7 @@ export default {
22
22
  components: {
23
23
  // Logo,
24
24
  },
25
- props: [],
25
+ props: {},
26
26
  data: function () {
27
27
  return {
28
28
  isIndex: /\/index\/?/.test(location.pathname),
@@ -149,7 +149,6 @@ export default {
149
149
  .flex;
150
150
  align-items: center;
151
151
  gap: 4px;
152
- font-weight: 500;
153
152
 
154
153
  &:hover {
155
154
  .u-menu-icon {
@@ -130,7 +130,7 @@ import i18nMixin from "../../i18n/mixin";
130
130
 
131
131
  export default {
132
132
  mixins: [i18nMixin],
133
- props: [],
133
+ props: {},
134
134
  data: function () {
135
135
  return {
136
136
  nav: default_nav,
@@ -133,7 +133,20 @@ const { __Links, __Root, __imgPath, __OriginRoot } = JX3BOX;
133
133
  export default {
134
134
  name: "info",
135
135
  mixins: [i18nMixin],
136
- props: ["asset"],
136
+ props: {
137
+ asset: {
138
+ type: Object,
139
+ default: () => ({
140
+ experience: 0,
141
+ box_coin: 0,
142
+ points: 0,
143
+ pro_expire_date: "",
144
+ ext_info: {
145
+ keycode: 0,
146
+ },
147
+ }),
148
+ },
149
+ },
137
150
  emits: ["update"],
138
151
  components: {
139
152
  alternate,
@@ -27,11 +27,11 @@
27
27
  <Contributors v-if="authors && authors.length" :authors="authors" @chosen="handleChosen" />
28
28
  <div class="u-points">
29
29
  <el-radio-group v-model="count">
30
- <el-radio :label="item" v-for="item in fitPoints" :key="item" border>
30
+ <el-radio :value="item" v-for="item in fitPoints" :key="item" border>
31
31
  <b>{{ item }}</b
32
32
  >盒币
33
33
  </el-radio>
34
- <el-radio label="custom" border>自定义</el-radio>
34
+ <el-radio value="custom" border>自定义</el-radio>
35
35
  <el-input
36
36
  v-model="amount"
37
37
  v-show="count === 'custom'"
@@ -71,10 +71,51 @@ import { grantBoxcoin } from "../../service/thx.js";
71
71
  import { getBreadcrumb } from "../../service/breadcrumb.js";
72
72
  import User from "@jx3box/jx3box-common/js/user";
73
73
  import Contributors from "./Contributors.vue";
74
- import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
74
+ import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
75
75
  export default {
76
76
  name: "BoxcoinAdmin",
77
- props: ["postType", "postId", "userId", "own", "total", "points", "max", "min", "authors", "client"],
77
+ props: {
78
+ postType: {
79
+ type: String,
80
+ default: "",
81
+ },
82
+ postId: {
83
+ type: [String, Number],
84
+ default: "",
85
+ },
86
+ userId: {
87
+ type: [String, Number],
88
+ default: "",
89
+ },
90
+ own: {
91
+ type: Number,
92
+ default: 0,
93
+ },
94
+ total: {
95
+ type: Number,
96
+ default: 0,
97
+ },
98
+ points: {
99
+ type: Array,
100
+ default: () => [],
101
+ },
102
+ max: {
103
+ type: Number,
104
+ default: 0,
105
+ },
106
+ min: {
107
+ type: Number,
108
+ default: 0,
109
+ },
110
+ authors: {
111
+ type: Array,
112
+ default: () => [],
113
+ },
114
+ client: {
115
+ type: String,
116
+ default: "",
117
+ },
118
+ },
78
119
  components: {
79
120
  Contributors,
80
121
  },
@@ -120,7 +161,7 @@ export default {
120
161
  return this.points.filter((item) => item <= this.left);
121
162
  },
122
163
  iconPath() {
123
- return JX3BOX.__cdn + "design/vector/icon/taste.svg"
164
+ return JX3BOX.__cdn + "design/vector/icon/taste.svg";
124
165
  },
125
166
  },
126
167
  watch: {