@jx3box/jx3box-ui 2.0.2 → 2.0.4

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 (128) hide show
  1. package/README.md +101 -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/i18n/messages/en-US.js +1 -0
  58. package/i18n/messages/vi.js +1 -0
  59. package/i18n/messages/zh-CN.js +1 -0
  60. package/i18n/messages/zh-TW.js +1 -0
  61. package/index.js +2 -0
  62. package/package.json +1 -1
  63. package/service/comment.js +56 -96
  64. package/src/App.vue +31 -31
  65. package/src/Breadcrumb.vue +16 -20
  66. package/src/Icon.vue +53 -0
  67. package/src/author/AuthorFans.vue +15 -5
  68. package/src/author/AuthorFollow.vue +1 -1
  69. package/src/author/AuthorGift.vue +9 -9
  70. package/src/author/AuthorHonor.vue +9 -8
  71. package/src/author/AuthorInfo.vue +10 -1
  72. package/src/author/AuthorLink.vue +8 -1
  73. package/src/author/AuthorPosts.vue +14 -8
  74. package/src/author/AuthorRss.vue +28 -34
  75. package/src/bread/Admin.vue +19 -6
  76. package/src/bread/Crumb.vue +7 -2
  77. package/src/bread/DesignTask.vue +44 -37
  78. package/src/comment/Avatar.vue +26 -8
  79. package/src/comment/CommentContent.vue +62 -17
  80. package/src/comment/CommentContentSimple.vue +54 -15
  81. package/src/comment/CommentWithReply.vue +22 -1
  82. package/src/comment/ReplyForReply.vue +14 -1
  83. package/src/comment/ReplyItem.vue +10 -1
  84. package/src/comment/ReplyList.vue +19 -1
  85. package/src/editor/BoxResource.vue +2 -2
  86. package/src/editor/Resource.vue +6 -6
  87. package/src/filters/clientBy.vue +14 -1
  88. package/src/filters/menuBy.vue +14 -1
  89. package/src/filters/orderBy.vue +1 -1
  90. package/src/filters/tagBy.vue +10 -1
  91. package/src/filters/versionBy.vue +6 -1
  92. package/src/filters/zlpBy.vue +6 -1
  93. package/src/footer/resource.vue +3 -1
  94. package/src/header/alternate.vue +2 -2
  95. package/src/header/asset.vue +13 -1
  96. package/src/header/box.vue +10 -5
  97. package/src/header/box2.vue +279 -247
  98. package/src/header/client.vue +6 -1
  99. package/src/header/lang.vue +1 -2
  100. package/src/header/logo.vue +3 -3
  101. package/src/header/manage.vue +0 -1
  102. package/src/header/nav.vue +1 -1
  103. package/src/header/userInfo.vue +18 -5
  104. package/src/interact/BoxcoinAdmin.vue +46 -5
  105. package/src/interact/BoxcoinRecords.vue +22 -1
  106. package/src/interact/BoxcoinUser.vue +49 -8
  107. package/src/interact/Contributors.vue +7 -11
  108. package/src/interact/Fav.vue +22 -1
  109. package/src/interact/Like.vue +10 -1
  110. package/src/interact/Share.vue +18 -1
  111. package/src/interact/WatchLater.vue +3 -3
  112. package/src/main.js +3 -1
  113. package/src/single/Author.vue +15 -10
  114. package/src/single/{cms-single.vue → CmsSingle.vue} +10 -1
  115. package/src/single/Collection.vue +10 -1
  116. package/src/single/Comment.vue +20 -3
  117. package/src/single/Creators.vue +10 -1
  118. package/src/single/PostDirectory.vue +1 -1
  119. package/src/single/PostHeader.vue +18 -1
  120. package/src/single/SimpleThx.vue +2 -2
  121. package/src/single/Thx.vue +45 -27
  122. package/assets/img/author/msg.svg +0 -55
  123. package/src/Bottom.vue +0 -23
  124. package/src/Box.vue +0 -149
  125. package/src/author/AuthorMsg.vue +0 -25
  126. package/src/bread/AdminButton.vue +0 -31
  127. package/src/header/bus.js +0 -9
  128. /package/docs/{README.md → i18n.md} +0 -0
@@ -14,7 +14,7 @@
14
14
  <script>
15
15
  // import { useLayoutStore } from "@/store/layout";
16
16
  import i18nMixin from "../../i18n/mixin";
17
- import Bus from "./bus";
17
+ import Bus from "../../utils/bus";
18
18
 
19
19
  export default {
20
20
  name: "c-header-logo",
@@ -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),
@@ -34,7 +34,7 @@ export default {
34
34
  // 盒子
35
35
  toggleBox: function (e) {
36
36
  e.stopPropagation();
37
- Bus.$emit("toggleBox");
37
+ Bus.emit("toggleBox");
38
38
  },
39
39
  },
40
40
  mounted: function () {},
@@ -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,
@@ -86,7 +86,7 @@
86
86
 
87
87
  <div class="u-other">
88
88
  <a href="/dashboard/role" class="u-item"
89
- ><el-icon><Sunny /></el-icon>{{ $jx3boxT("jx3boxUi.header.roleManage", "角色管理") }}
89
+ ><el-icon><User /></el-icon>{{ $jx3boxT("jx3boxUi.header.roleManage", "角色管理") }}
90
90
  </a>
91
91
  <a href="/dashboard/fav" class="u-item"
92
92
  ><el-icon><Star /></el-icon>{{ $jx3boxT("jx3boxUi.header.favorites", "收藏订阅") }}
@@ -95,7 +95,7 @@
95
95
  ><el-icon><Memo /></el-icon>{{ $jx3boxT("jx3boxUi.header.orderCenter", "订单中心") }}
96
96
  </a>
97
97
  <a href="/dashboard/config" class="u-item"
98
- ><el-icon><Box /></el-icon>{{ $jx3boxT("jx3boxUi.header.dashboard", "个人中心") }}
98
+ ><el-icon><Help /></el-icon>{{ $jx3boxT("jx3boxUi.header.dashboard", "个人中心") }}
99
99
  </a>
100
100
  <hr />
101
101
  <a href="/dashboard/profile" class="u-item"
@@ -125,7 +125,7 @@ import { showDate } from "@jx3box/jx3box-common/js/moment";
125
125
  import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
126
126
  import { copyText } from "./utils";
127
127
  import { getMenu } from "../../service/header";
128
- import Bus from "./bus";
128
+ import Bus from "../../utils/bus";
129
129
  import alternate from "./alternate.vue";
130
130
  import i18nMixin from "../../i18n/mixin";
131
131
 
@@ -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,
@@ -259,7 +272,7 @@ export default {
259
272
  }
260
273
  },
261
274
  changeAlternate: function () {
262
- Bus.$emit("showAlternate");
275
+ Bus.emit("showAlternate");
263
276
  },
264
277
  },
265
278
  };
@@ -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: {
@@ -67,7 +67,28 @@ import { showAvatar, authorLink } from "@jx3box/jx3box-common/js/utils";
67
67
  import { showTime } from "@jx3box/jx3box-common/js/moment";
68
68
  export default {
69
69
  name: "BoxcoinRecords",
70
- props: ["postType", "postId", "cacheRecord", "postClient", "mode"],
70
+ props: {
71
+ postType: {
72
+ type: String,
73
+ default: "",
74
+ },
75
+ postId: {
76
+ type: [String, Number],
77
+ default: "",
78
+ },
79
+ cacheRecord: {
80
+ type: Object,
81
+ default: () => null,
82
+ },
83
+ postClient: {
84
+ type: String,
85
+ default: "",
86
+ },
87
+ mode: {
88
+ type: String,
89
+ default: "normal",
90
+ },
91
+ },
71
92
  components: {},
72
93
  data: function () {
73
94
  return {
@@ -7,9 +7,9 @@
7
7
  </div>
8
8
  </el-tooltip>
9
9
  <el-tooltip effect="dark" content="您当前等级不够,不能够进行投币。" placement="top" v-else>
10
- <div class="w-boxcoin-block disabled">
10
+ <div class="w-boxcoin-block disabled">
11
11
  <img class="u-icon" svg-inline :src="iconPath" />
12
- <span class="u-count" v-if="boxcoin">{{boxcoin}}</span>
12
+ <span class="u-count" v-if="boxcoin">{{ boxcoin }}</span>
13
13
  </div>
14
14
  </el-tooltip>
15
15
  <el-dialog
@@ -30,11 +30,11 @@
30
30
  <Contributors v-if="authors && authors.length" :authors="authors" @chosen="handleChosen" />
31
31
  <div class="u-points">
32
32
  <el-radio-group v-model="count">
33
- <el-radio :label="item" v-for="item in fitPoints" :key="item" border>
33
+ <el-radio :value="item" v-for="item in fitPoints" :key="item" border>
34
34
  <b>{{ item }}</b
35
35
  >盒币
36
36
  </el-radio>
37
- <el-radio label="custom" border>自定义</el-radio>
37
+ <el-radio value="custom" border>自定义</el-radio>
38
38
  <el-input
39
39
  v-model="amount"
40
40
  v-show="count === 'custom'"
@@ -71,10 +71,51 @@ import { rewardBoxcoin } from "../../service/thx.js";
71
71
  import User from "@jx3box/jx3box-common/js/user";
72
72
  import Contributors from "./Contributors.vue";
73
73
  import { debounce } from "lodash";
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: "BoxcoinUser",
77
- props: ["boxcoin", "postType", "postId", "userId", "own", "points", "authors", "client","category","canGift"],
77
+ props: {
78
+ boxcoin: {
79
+ type: Number,
80
+ default: 0,
81
+ },
82
+ postType: {
83
+ type: String,
84
+ default: "",
85
+ },
86
+ postId: {
87
+ type: [String, Number],
88
+ default: "",
89
+ },
90
+ userId: {
91
+ type: [String, Number],
92
+ default: "",
93
+ },
94
+ own: {
95
+ type: Number,
96
+ default: 0,
97
+ },
98
+ points: {
99
+ type: Array,
100
+ default: () => [],
101
+ },
102
+ authors: {
103
+ type: Array,
104
+ default: () => [],
105
+ },
106
+ client: {
107
+ type: String,
108
+ default: "",
109
+ },
110
+ category: {
111
+ type: String,
112
+ default: "",
113
+ },
114
+ canGift: {
115
+ type: Boolean,
116
+ default: true,
117
+ },
118
+ },
78
119
  components: {
79
120
  Contributors,
80
121
  },
@@ -115,7 +156,7 @@ export default {
115
156
  return this.points; //.filter(item => item <= this.left)
116
157
  },
117
158
  iconPath() {
118
- return JX3BOX.__cdn + "design/vector/icon/reward.svg"
159
+ return JX3BOX.__cdn + "design/vector/icon/reward.svg";
119
160
  },
120
161
  },
121
162
  watch: {
@@ -145,7 +186,7 @@ export default {
145
186
  rewardBoxcoin(this.postType, this.postId, this.chosen || this.userId, count, {
146
187
  remark: this.remark,
147
188
  client: this.client || this.hostClient,
148
- redirect: this.category ? `/${this.category}/${this.postId}` : undefined
189
+ redirect: this.category ? `/${this.category}/${this.postId}` : undefined,
149
190
  })
150
191
  .then((res) => {
151
192
  this.$message({
@@ -4,15 +4,11 @@
4
4
  <el-radio
5
5
  v-for="(item, i) in authors"
6
6
  v-model="value"
7
- :label="String(item.user_id)"
7
+ :value="String(item.user_id)"
8
8
  :key="i"
9
9
  @change="handleAuthorChange"
10
10
  >
11
- <img
12
- class="u-pic"
13
- :src="showAvatar(item.user_avatar)"
14
- :alt="item.display_name"
15
- />
11
+ <img class="u-pic" :src="showAvatar(item.user_avatar)" :alt="item.display_name" />
16
12
  <span class="u-txt" :title="item.display_name">
17
13
  {{ item.display_name }}
18
14
  </span>
@@ -42,15 +38,15 @@ export default {
42
38
  deep: true,
43
39
  immediate: true,
44
40
  handler(val) {
45
- if (val && val.length) this.value = String(val[0]?.user_id)
46
- }
41
+ if (val && val.length) this.value = String(val[0]?.user_id);
42
+ },
47
43
  },
48
44
  value: {
49
45
  immediate: true,
50
46
  handler(val) {
51
- val && this.$emit('chosen', this.value)
52
- }
53
- }
47
+ val && this.$emit("chosen", this.value);
48
+ },
49
+ },
54
50
  },
55
51
  methods: {
56
52
  handleAuthorChange() {},
@@ -16,7 +16,28 @@ import { hasFav, addFav, delFav } from "../../service/fav";
16
16
  import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
17
17
  export default {
18
18
  name: "FavoriteComp",
19
- props: ["postType", "postId", "postTitle", "hiddenNum", "isOld"],
19
+ props: {
20
+ postType: {
21
+ type: String,
22
+ default: "",
23
+ },
24
+ postId: {
25
+ type: [String, Number],
26
+ default: "",
27
+ },
28
+ postTitle: {
29
+ type: String,
30
+ default: "",
31
+ },
32
+ hiddenNum: {
33
+ type: Boolean,
34
+ default: false,
35
+ },
36
+ isOld: {
37
+ type: Boolean,
38
+ default: false,
39
+ },
40
+ },
20
41
  data: function () {
21
42
  return {
22
43
  login: User.isLogin(),
@@ -14,7 +14,16 @@ import { postStat, getStat } from "@jx3box/jx3box-common/js/stat";
14
14
  import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
15
15
  export default {
16
16
  name: "LikeComp",
17
- props: ["postType", "postId"],
17
+ props: {
18
+ postType: {
19
+ type: String,
20
+ default: "",
21
+ },
22
+ postId: {
23
+ type: [String, Number],
24
+ default: "",
25
+ },
26
+ },
18
27
  data: function () {
19
28
  return {
20
29
  status: true,
@@ -52,7 +52,24 @@ import QrcodeVue from "qrcode.vue";
52
52
  const { __imgPath } = JX3BOX;
53
53
  export default {
54
54
  name: "ShareComp",
55
- props: ["postType", "postId", "meta", "simple"],
55
+ props: {
56
+ postType: {
57
+ type: String,
58
+ default: "",
59
+ },
60
+ postId: {
61
+ type: [String, Number],
62
+ default: "",
63
+ },
64
+ meta: {
65
+ type: Object,
66
+ default: () => ({}),
67
+ },
68
+ simple: {
69
+ type: Boolean,
70
+ default: false,
71
+ },
72
+ },
56
73
  data: function () {
57
74
  return {
58
75
  apis: {
@@ -26,7 +26,7 @@ export default {
26
26
  default: "",
27
27
  },
28
28
  authorId: {
29
- type: Number,
29
+ type: [Number, String],
30
30
  default: 0,
31
31
  },
32
32
  banner: {
@@ -34,9 +34,9 @@ export default {
34
34
  default: "",
35
35
  },
36
36
  contentId: {
37
- type: Number,
37
+ type: [Number, String],
38
38
  default: 0,
39
- }
39
+ },
40
40
  },
41
41
  data: function () {
42
42
  return {
package/src/main.js CHANGED
@@ -4,7 +4,9 @@ import App from "./App.vue";
4
4
  const app = createApp(App);
5
5
 
6
6
  // 2.Router
7
-
7
+ requestAnimationFrame(() => {
8
+ window.lucide?.createIcons();
9
+ });
8
10
  // 3.Store
9
11
 
10
12
  // 4.i18n
@@ -4,16 +4,15 @@
4
4
  <template v-if="data">
5
5
  <div class="u-interact">
6
6
  <!-- <AuthorFollow style="margin-right: 8px;" :uid="uid" /> -->
7
- <AuthorRss style="margin-right: 8px" :uid="uid" :data="data" />
7
+ <AuthorRss :uid="uid" :data="data" />
8
8
  <!-- <AuthorGift :uid="uid" /> -->
9
- <el-button class="u-btn" size="small" @click="onMessage"><img class="u-msg-icon" svg-inline :src="src" />
10
- 私信</el-button>
9
+ <el-button class="u-btn" size="small" @click="onMessage" icon="Message">私信</el-button
10
+ >
11
11
  </div>
12
- <!-- <AuthorMsg :uid="uid" /> -->
13
12
  <!-- <AuthorLink class="u-block u-links" :uid="uid" :data="data" /> -->
14
13
  <AuthorMedals class="u-block u-trophy" :uid="uid" />
15
- <!-- <AuthorTeams class="u-block u-teams" :uid="uid" /> -->
16
- <!-- <AuthorFans class="u-block u-fans" :uid="uid" /> -->
14
+ <!-- <AuthorTeams class="u-block u-teams" :uid="uid" />
15
+ <AuthorFans class="u-block u-fans" :uid="uid" /> -->
17
16
  <slot></slot>
18
17
  <AuthorPosts class="u-block u-posts" :uid="uid" />
19
18
  </template>
@@ -24,7 +23,6 @@
24
23
  import AuthorInfo from "../author/AuthorInfo.vue";
25
24
  // import AuthorLink from "../author/AuthorLink.vue";
26
25
  // import AuthorFollow from "../author/AuthorFollow.vue";
27
- // import AuthorMsg from "./author/AuthorMsg.vue";
28
26
  // import AuthorGift from "../author/AuthorGift.vue";
29
27
  // import AuthorFans from "../author/AuthorFans.vue";
30
28
  import AuthorMedals from "../author/AuthorMedals.vue";
@@ -34,11 +32,19 @@ import AuthorRss from "../author/AuthorRss.vue";
34
32
  const jx3box = require("@jx3box/jx3box-common/data/jx3box.json");
35
33
  export default {
36
34
  name: "AuthorComp",
37
- props: ["uid", "anonymous"],
35
+ props: {
36
+ uid: {
37
+ type: [Number, String],
38
+ default: 0,
39
+ },
40
+ anonymous: {
41
+ type: [Number, String],
42
+ default: 0,
43
+ },
44
+ },
38
45
  data: function () {
39
46
  return {
40
47
  data: "",
41
- src: jx3box.__cdn + "design/vector/icon/message.svg",
42
48
  };
43
49
  },
44
50
  methods: {
@@ -56,7 +62,6 @@ export default {
56
62
  AuthorInfo,
57
63
  // AuthorLink,
58
64
  // AuthorFollow,
59
- // AuthorMsg,
60
65
  // AuthorGift,
61
66
  AuthorMedals,
62
67
  // AuthorTeams,
@@ -99,7 +99,16 @@ export default {
99
99
  Comment,
100
100
  // RightAffix,
101
101
  },
102
- props: ["post", "stat"],
102
+ props: {
103
+ post: {
104
+ type: Object,
105
+ default: () => ({}),
106
+ },
107
+ stat: {
108
+ type: Object,
109
+ default: () => ({}),
110
+ },
111
+ },
103
112
  data: function () {
104
113
  return {
105
114
  collection_data: "",
@@ -25,7 +25,16 @@ const { getLink } = utilModule;
25
25
  import { getCollection } from "../../service/cms";
26
26
  export default {
27
27
  name: "SingleCollection",
28
- props: ["id", "defaultVisible"],
28
+ props: {
29
+ id: {
30
+ type: [Number, String],
31
+ default: 0,
32
+ },
33
+ defaultVisible: {
34
+ type: Boolean,
35
+ default: false,
36
+ },
37
+ },
29
38
  inject: [],
30
39
  components: {},
31
40
  data: function() {
@@ -6,8 +6,8 @@
6
6
  <div class="u-order">
7
7
  <span class="u-label">排序模式:</span>
8
8
  <el-radio-group v-model="isDesc" @change="changeOrder" size="small">
9
- <el-radio-button label="DESC">最后靠前</el-radio-button>
10
- <el-radio-button label="ASC">最早靠前</el-radio-button>
9
+ <el-radio-button value="DESC">最后靠前</el-radio-button>
10
+ <el-radio-button value="ASC">最早靠前</el-radio-button>
11
11
  </el-radio-group>
12
12
  </div>
13
13
  <div class="u-op">
@@ -89,7 +89,24 @@ import { getConfig } from "../../service/cms";
89
89
  import User from "@jx3box/jx3box-common/js/user";
90
90
  export default {
91
91
  name: "CommentComp",
92
- props: ["id", "category", "normal", "order"],
92
+ props: {
93
+ id: {
94
+ type: [Number, String],
95
+ default: 0,
96
+ },
97
+ category: {
98
+ type: String,
99
+ default: "",
100
+ },
101
+ normal: {
102
+ type: Boolean,
103
+ default: true,
104
+ },
105
+ order: {
106
+ type: String,
107
+ default: "",
108
+ },
109
+ },
93
110
  components: {
94
111
  // CommentAvatar,
95
112
  CommentWithReply,
@@ -37,7 +37,16 @@ import { showAvatar, authorLink, editLink } from "@jx3box/jx3box-common/js/utils
37
37
  import User from "@jx3box/jx3box-common/js/user";
38
38
  export default {
39
39
  name: "SingleCreators",
40
- props: ["postId", "postType"],
40
+ props: {
41
+ postId: {
42
+ type: [Number, String],
43
+ default: 0,
44
+ },
45
+ postType: {
46
+ type: String,
47
+ default: "",
48
+ },
49
+ },
41
50
  components: {},
42
51
  data: function () {
43
52
  return {
@@ -5,7 +5,7 @@
5
5
  <script>
6
6
  export default {
7
7
  name : 'PostDirectory',
8
- props:[],
8
+ props: {},
9
9
  components : {},
10
10
  data : function(){
11
11
  return {
@@ -94,7 +94,24 @@ const { __clients } = JX3BOX;
94
94
 
95
95
  export default {
96
96
  name: "PostHeader",
97
- props: ["post", "stat", "titleExtra", "anonymous",],
97
+ props: {
98
+ post: {
99
+ type: Object,
100
+ default: () => ({}),
101
+ },
102
+ stat: {
103
+ type: Object,
104
+ default: () => ({}),
105
+ },
106
+ titleExtra: {
107
+ type: String,
108
+ default: "",
109
+ },
110
+ anonymous: {
111
+ type: Boolean,
112
+ default: false,
113
+ },
114
+ },
98
115
  data: function () {
99
116
  return {
100
117
  wordCount: 0,
@@ -79,7 +79,7 @@ export default {
79
79
  default: "normal",
80
80
  },
81
81
  postId: {
82
- type: Number,
82
+ type: [Number, String],
83
83
  default: 0,
84
84
  },
85
85
  postType: {
@@ -91,7 +91,7 @@ export default {
91
91
  default: "",
92
92
  },
93
93
  userId: {
94
- type: Number,
94
+ type: [Number, String],
95
95
  default: 0,
96
96
  },
97
97
  authors: {