@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
@@ -1,18 +1,16 @@
1
1
  <template>
2
- <div class="c-author-rss">
3
- <el-button
4
- class="u-btn"
5
- :class="{ 'u-fans-box': isSelf }"
6
- size="small"
7
- plain
8
- @click="subscribe"
9
- :loading="loading"
10
- :disabled="isSelf"
11
- >
12
- <img class="u-icon" svg-inline :src="src" />
13
- {{ btnText }}</el-button
14
- >
15
- </div>
2
+ <el-button
3
+ class="u-btn c-author-rss"
4
+ :class="{ 'u-fans-box': isSelf, 'is-subscribed': subscribed }"
5
+ size="small"
6
+ plain
7
+ @click="subscribe"
8
+ :loading="loading"
9
+ :disabled="isSelf"
10
+ >
11
+ <img class="u-icon" svg-inline src="../../assets/img/author/rss.svg" />
12
+ {{ btnText }}</el-button
13
+ >
16
14
  </template>
17
15
 
18
16
  <script>
@@ -54,9 +52,6 @@ export default {
54
52
  isLogin: function () {
55
53
  return User.isLogin();
56
54
  },
57
- src() {
58
- return jx3box.__cdn + "design/vector/icon/rss_author.svg";
59
- }
60
55
  },
61
56
  watch: {
62
57
  uid: {
@@ -130,28 +125,27 @@ export default {
130
125
  </script>
131
126
 
132
127
  <style lang="less">
133
- .c-author-rss {
134
- .u-btn.el-button {
135
- cursor: default;
136
- &:hover {
137
- cursor: pointer;
138
- background-color: @light-pink;
139
- color: #fff;
140
- border-color: darken(@light-pink, 2%);
141
-
142
- .u-icon {
143
- filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(198deg) brightness(104%) contrast(101%);
144
- }
145
- }
128
+ .c-author-rss.el-button {
129
+ cursor: default;
130
+ &:hover,
131
+ &.is-plain:hover,
132
+ &.is-plain:focus {
133
+ cursor: pointer;
134
+ background-color: @light-pink;
135
+ color: #fff;
136
+ border-color: darken(@light-pink, 2%);
146
137
  }
147
138
  .u-icon {
148
- .size(14px);
149
- .pr;
150
- top: 1px;
151
- filter: invert(40%) sepia(5%) saturate(419%) hue-rotate(182deg) brightness(89%) contrast(84%);
139
+ .size(10px);
140
+ fill: currentColor;
141
+ margin-right: 4px;
152
142
  }
153
143
  }
154
144
 
145
+ .c-author-rss.el-button.is-subscribed {
146
+ color: #999;
147
+ }
148
+
155
149
  @media screen and (max-width: @phone) {
156
150
  .el-message-box {
157
151
  max-width: 60%;
@@ -13,7 +13,7 @@
13
13
  <!-- <template v-if="isAdmin"> -->
14
14
  <el-divider content-position="left">状态变更</el-divider>
15
15
  <el-radio-group v-model="post_status" class="c-admin-status">
16
- <el-radio-button v-for="(option, key) in status_options" :label="key" :key="key">{{
16
+ <el-radio-button v-for="(option, key) in status_options" :value="key" :key="key">{{
17
17
  option
18
18
  }}</el-radio-button>
19
19
  </el-radio-group>
@@ -22,14 +22,14 @@
22
22
 
23
23
  <el-divider content-position="left">可见性变更</el-divider>
24
24
  <el-radio-group v-model="visible" class="c-admin-status">
25
- <el-radio-button v-for="(option, key) in visible_options" :label="key" :key="key">{{
25
+ <el-radio-button v-for="(option, key) in visible_options" :value="key" :key="key">{{
26
26
  option
27
27
  }}</el-radio-button>
28
28
  </el-radio-group>
29
29
 
30
30
  <el-divider content-position="left">推荐角标</el-divider>
31
31
  <el-checkbox-group v-model="mark" class="c-admin-mark">
32
- <el-checkbox v-for="(option, key) in mark_options" :label="key" :key="key">{{ option }}</el-checkbox>
32
+ <el-checkbox v-for="(option, key) in mark_options" :value="key" :key="key">{{ option }}</el-checkbox>
33
33
  </el-checkbox-group>
34
34
 
35
35
  <el-divider content-position="left">高亮置顶</el-divider>
@@ -292,7 +292,20 @@ export default {
292
292
  // 拉
293
293
  pull: function () {
294
294
  getSetting(this.pid).then((data) => {
295
- let { ID, color, mark, post_status, post_author, sticky, post_banner, post_type, visible, star, post_subtype, topics } = data;
295
+ let {
296
+ ID,
297
+ color,
298
+ mark,
299
+ post_status,
300
+ post_author,
301
+ sticky,
302
+ post_banner,
303
+ post_type,
304
+ visible,
305
+ star,
306
+ post_subtype,
307
+ topics,
308
+ } = data;
296
309
  this.pid = ID;
297
310
  this.post_status = post_status;
298
311
  this.visible = visible;
@@ -306,7 +319,7 @@ export default {
306
319
  if (this.sticky) this.isSticky = true;
307
320
 
308
321
  this.isStar = star || 0;
309
- this.topics = topics?.map(item => item.topic) || [];
322
+ this.topics = topics?.map((item) => item.topic) || [];
310
323
  this.post_subtype = post_subtype || "";
311
324
 
312
325
  // 设置加载完成标识
@@ -348,7 +361,7 @@ export default {
348
361
  type: this.post_type,
349
362
  id: this.pid,
350
363
  });
351
- }
364
+ },
352
365
  },
353
366
  watch: {
354
367
  "$route.params.id": function () {
@@ -6,8 +6,13 @@
6
6
  import { getBreadcrumb } from "../../service/breadcrumb";
7
7
 
8
8
  export default {
9
- name: "BeardCrumb",
10
- props: ["name"],
9
+ name: "BreadCrumb",
10
+ props: {
11
+ name: {
12
+ type: String,
13
+ default: "",
14
+ },
15
+ },
11
16
  data: function () {
12
17
  return {
13
18
  html: "",
@@ -1,17 +1,26 @@
1
1
  <template>
2
- <el-dialog class="m-design-task" :width="isPhone ? '95%' : '600px'" :model-value="modelValue" @close="close" title="快捷推送" append-to-body>
2
+ <el-dialog
3
+ class="m-design-task"
4
+ :width="isPhone ? '95%' : '600px'"
5
+ :model-value="modelValue"
6
+ @close="close"
7
+ title="快捷推送"
8
+ append-to-body
9
+ >
3
10
  <el-form :model="form" ref="form" :label-position="isPhone ? 'top' : 'left'" label-width="80px">
4
11
  <el-form-item label="标题">
5
12
  <el-input v-model="form.title" placeholder="请输入标题"></el-input>
6
13
  </el-form-item>
7
14
  <el-form-item label="类型">
8
- <el-select v-model="form.type" placeholder="请选择类型" style="width:100%;" filterable>
15
+ <el-select v-model="form.type" placeholder="请选择类型" style="width: 100%" filterable>
9
16
  <el-option v-for="item in config" :key="item.id" :label="item.label" :value="item.name"></el-option>
10
17
  </el-select>
11
18
  </el-form-item>
12
19
  <el-form-item label="版本">
13
20
  <el-radio-group v-model="form.version">
14
- <el-radio-button v-for="(label, key) in versions" :key="key" :label="key">{{ label }}</el-radio-button>
21
+ <el-radio-button v-for="(label, key) in versions" :key="key" :value="key">{{
22
+ label
23
+ }}</el-radio-button>
15
24
  </el-radio-group>
16
25
  </el-form-item>
17
26
  <el-form-item label="备注">
@@ -22,19 +31,17 @@
22
31
  </el-form-item>
23
32
  </el-form>
24
33
 
25
- <el-divider content-position="left">
26
- 近期推送
27
- </el-divider>
34
+ <el-divider content-position="left"> 近期推送 </el-divider>
28
35
  <template v-if="logs && logs.length">
29
36
  <el-table :data="logs" border size="small" max-height="300px">
30
37
  <el-table-column label="推送时间" prop="push_at" align="center">
31
- <template #default="{row}">
38
+ <template #default="{ row }">
32
39
  {{ formatTime(row.push_at) }}
33
40
  </template>
34
41
  </el-table-column>
35
42
  <el-table-column label="推送人" prop="pusher.display_name" align="center"></el-table-column>
36
43
  <el-table-column label="星级" prop="star" align="center">
37
- <template #default="{row}">
44
+ <template #default="{ row }">
38
45
  <el-rate v-model="row.star" disabled :colors="colors"></el-rate>
39
46
  </template>
40
47
  </el-table-column>
@@ -51,7 +58,7 @@
51
58
 
52
59
  <script>
53
60
  import { createDesignTask, getDesignTask, getConfigBannerTypes } from "../../service/design";
54
- import {pick} from "lodash";
61
+ import { pick } from "lodash";
55
62
  import dayjs from "dayjs";
56
63
  import User from "@jx3box/jx3box-common/js/user";
57
64
  export default {
@@ -59,16 +66,16 @@ export default {
59
66
  props: {
60
67
  modelValue: {
61
68
  type: Boolean,
62
- default: false
69
+ default: false,
63
70
  },
64
71
  post: {
65
72
  type: Object,
66
- default: () => {}
67
- }
73
+ default: () => {},
74
+ },
68
75
  },
69
76
  model: {
70
77
  prop: "modelValue",
71
- event: "update:modelValue"
78
+ event: "update:modelValue",
72
79
  },
73
80
  emits: ["update:modelValue"],
74
81
  data() {
@@ -78,9 +85,9 @@ export default {
78
85
  remark: "",
79
86
  star: 0,
80
87
  subtype: "",
81
- version: "std"
88
+ version: "std",
82
89
  },
83
- colors: ['#99A9BF', '#F7BA2A', '#FF9900'],
90
+ colors: ["#99A9BF", "#F7BA2A", "#FF9900"],
84
91
 
85
92
  logs: [],
86
93
  config: [],
@@ -89,12 +96,12 @@ export default {
89
96
  isEditor: User.isEditor(),
90
97
 
91
98
  versions: {
92
- "std": "剑三",
93
- "origin": "缘起",
94
- "wujie": "无界",
95
- "test": "体服"
96
- }
97
- }
99
+ std: "剑三",
100
+ origin: "缘起",
101
+ wujie: "无界",
102
+ test: "体服",
103
+ },
104
+ };
98
105
  },
99
106
  watch: {
100
107
  modelValue(val) {
@@ -108,11 +115,11 @@ export default {
108
115
  this.loadConfig();
109
116
  }
110
117
  }
111
- }
118
+ },
112
119
  },
113
120
  methods: {
114
- close(){
115
- this.$emit("update:modelValue",false)
121
+ close() {
122
+ this.$emit("update:modelValue", false);
116
123
  },
117
124
  clearForm() {
118
125
  this.form = {
@@ -121,7 +128,7 @@ export default {
121
128
  star: 0,
122
129
  subtype: "",
123
130
  version: "std",
124
- }
131
+ };
125
132
 
126
133
  this.$refs?.form?.clearValidate();
127
134
  },
@@ -142,7 +149,7 @@ export default {
142
149
  createDesignTask(data).then(() => {
143
150
  this.$message.success("提交成功");
144
151
  this.close();
145
- })
152
+ });
146
153
  },
147
154
  onCancel() {
148
155
  this.close();
@@ -150,28 +157,28 @@ export default {
150
157
  },
151
158
  loadLogs() {
152
159
  if (!this.post?.ID) return;
153
- getDesignTask({ source_id: this.post?.ID }).then(res => {
160
+ getDesignTask({ source_id: this.post?.ID }).then((res) => {
154
161
  this.logs = res.data.data || [];
155
- })
162
+ });
156
163
  },
157
164
  loadConfig() {
158
- getConfigBannerTypes({ _no_page: 1 }).then(res => {
165
+ getConfigBannerTypes({ _no_page: 1 }).then((res) => {
159
166
  this.config = res.data.data || [];
160
- this.config = this.config.filter(item => item.parent_id == 1);
161
- })
167
+ this.config = this.config.filter((item) => item.parent_id == 1);
168
+ });
162
169
  },
163
170
  formatTime(time) {
164
171
  return dayjs(time).format("YYYY-MM-DD HH:mm:ss");
165
- }
166
- }
167
- }
172
+ },
173
+ },
174
+ };
168
175
  </script>
169
176
 
170
177
  <style lang="less">
171
178
  .m-design-task {
172
- .el-form-item {
173
- margin-bottom: 12px;
174
- }
179
+ .el-form-item {
180
+ margin-bottom: 12px;
181
+ }
175
182
  .m-star-line {
176
183
  .el-form-item__content {
177
184
  top: 10px;
@@ -28,14 +28,32 @@ import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
28
28
  const { __imgPath } = JX3BOX;
29
29
  export default {
30
30
  name: "CommentAvatar",
31
- props: [
32
- "avatarSize",
33
- "userAvatar",
34
- "userHref",
35
- "username",
36
- "avatarFrame",
37
- "withFrame",
38
- ],
31
+ props: {
32
+ avatarSize: {
33
+ type: Number,
34
+ default: 48,
35
+ },
36
+ userAvatar: {
37
+ type: String,
38
+ default: "",
39
+ },
40
+ userHref: {
41
+ type: String,
42
+ default: "",
43
+ },
44
+ username: {
45
+ type: String,
46
+ default: "",
47
+ },
48
+ avatarFrame: {
49
+ type: String,
50
+ default: "",
51
+ },
52
+ withFrame: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
56
+ },
39
57
  data: function() {
40
58
  return {};
41
59
  },
@@ -203,23 +203,68 @@ function fillZero(num) {
203
203
  return num > 9 ? num : `0${num}`;
204
204
  }
205
205
  export default {
206
- props: [
207
- "content",
208
- "date",
209
- "hasReply",
210
- "canDelete",
211
- "canSetTop",
212
- "canCancelTop",
213
- "canHide",
214
- "isLike", // 是否已点赞
215
- "likes", // 点赞数
216
- "canSetStar",
217
- "canCancelStar",
218
- "attachments",
219
- "commentId",
220
- "canAddWhite", // 是否可以添加到过滤白名单, 因为对于一般用户,它看不到非白名单的评论,所以“可以添加到白名单”的权限不要在加一次用户层面的权限判定
221
- "canRemoveWhite", // 是否可以从过滤白名单移除
222
- ],
206
+ props: {
207
+ content: {
208
+ type: String,
209
+ default: "",
210
+ },
211
+ date: {
212
+ type: [String, Number, Date],
213
+ default: "",
214
+ },
215
+ hasReply: {
216
+ type: [Boolean, Number],
217
+ default: false,
218
+ },
219
+ canDelete: {
220
+ type: [Boolean, Number],
221
+ default: false,
222
+ },
223
+ canSetTop: {
224
+ type: [Boolean, Number],
225
+ default: false,
226
+ },
227
+ canCancelTop: {
228
+ type: [Boolean, Number],
229
+ default: false,
230
+ },
231
+ canHide: {
232
+ type: [Boolean, Number],
233
+ default: false,
234
+ },
235
+ isLike: {
236
+ type: [Boolean, Number],
237
+ default: false,
238
+ },
239
+ likes: {
240
+ type: Number,
241
+ default: 0,
242
+ },
243
+ canSetStar: {
244
+ type: [Boolean, Number],
245
+ default: false,
246
+ },
247
+ canCancelStar: {
248
+ type: [Boolean, Number],
249
+ default: false,
250
+ },
251
+ attachments: {
252
+ type: Array,
253
+ default: () => [],
254
+ },
255
+ commentId: {
256
+ type: [Number, String],
257
+ default: 0,
258
+ },
259
+ canAddWhite: {
260
+ type: [Boolean, Number],
261
+ default: false,
262
+ },
263
+ canRemoveWhite: {
264
+ type: [Boolean, Number],
265
+ default: false,
266
+ },
267
+ },
223
268
  components: {
224
269
  Uploader,
225
270
  Emotion,
@@ -96,21 +96,60 @@ function fillZero(num) {
96
96
  return num > 9 ? num : `0${num}`;
97
97
  }
98
98
  export default {
99
- props: [
100
- "commentId",
101
- "content",
102
- "attachments",
103
- "date",
104
- "hasReply",
105
- "canDelete",
106
- "canHide",
107
- "canReply",
108
- "isLike", // 是否已点赞
109
- "likes", // 点赞数
110
- "userHref",
111
- "replyForUsername",
112
- "replyForUserId",
113
- ],
99
+ props: {
100
+ commentId: {
101
+ type: [Number, String],
102
+ default: 0,
103
+ },
104
+ content: {
105
+ type: String,
106
+ default: "",
107
+ },
108
+ attachments: {
109
+ type: Array,
110
+ default: () => [],
111
+ },
112
+ date: {
113
+ type: [String, Number, Date],
114
+ default: "",
115
+ },
116
+ hasReply: {
117
+ type: Boolean,
118
+ default: false,
119
+ },
120
+ canDelete: {
121
+ type: Boolean,
122
+ default: false,
123
+ },
124
+ canHide: {
125
+ type: Boolean,
126
+ default: false,
127
+ },
128
+ canReply: {
129
+ type: Boolean,
130
+ default: false,
131
+ },
132
+ isLike: {
133
+ type: Boolean,
134
+ default: false,
135
+ },
136
+ likes: {
137
+ type: Number,
138
+ default: 0,
139
+ },
140
+ userHref: {
141
+ type: String,
142
+ default: "",
143
+ },
144
+ replyForUsername: {
145
+ type: String,
146
+ default: "",
147
+ },
148
+ replyForUserId: {
149
+ type: [Number, String],
150
+ default: 0,
151
+ },
152
+ },
114
153
  data: function () {
115
154
  return {
116
155
  showInput: false,
@@ -74,7 +74,28 @@ import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
74
74
  const { __imgPath } = JX3BOX;
75
75
  const DECORATION_KEY = "decoration_comment_";
76
76
  export default {
77
- props: ["item", "baseApi", "power", "user-href", "username"],
77
+ props: {
78
+ item: {
79
+ type: Object,
80
+ required: true,
81
+ },
82
+ baseApi: {
83
+ type: String,
84
+ required: true,
85
+ },
86
+ power: {
87
+ type: Object,
88
+ required: true,
89
+ },
90
+ userHref: {
91
+ type: String,
92
+ default: "",
93
+ },
94
+ username: {
95
+ type: String,
96
+ default: "",
97
+ },
98
+ },
78
99
  components: {
79
100
  CommentContent,
80
101
  ReplyList,
@@ -51,7 +51,20 @@
51
51
  import Uploader from "./Upload.vue";
52
52
  import Emotion from "@jx3box/jx3box-emotion/src/Emotion2.vue";
53
53
  export default {
54
- props: ["username", "userHref", "currentId"],
54
+ props: {
55
+ username: {
56
+ type: String,
57
+ default: "",
58
+ },
59
+ userHref: {
60
+ type: String,
61
+ default: "",
62
+ },
63
+ currentId: {
64
+ type: [Number, String],
65
+ default: 0,
66
+ },
67
+ },
55
68
  data: function () {
56
69
  return {
57
70
  content: "",
@@ -46,7 +46,16 @@ import ReplyForReply from "./ReplyForReply.vue";
46
46
  import CommentAvatar from "./Avatar.vue";
47
47
 
48
48
  export default {
49
- props: ["reply", "power"],
49
+ props: {
50
+ reply: {
51
+ type: Object,
52
+ required: true,
53
+ },
54
+ power: {
55
+ type: Object,
56
+ required: true,
57
+ },
58
+ },
50
59
  components: {
51
60
  CommentAvatar,
52
61
  CommentContentSimple,
@@ -35,7 +35,25 @@
35
35
  <script>
36
36
  import ReplyItem from "./ReplyItem.vue";
37
37
  export default {
38
- props: ["data", "power", "pager"],
38
+ props: {
39
+ data: {
40
+ type: Array,
41
+ default: () => [],
42
+ },
43
+ power: {
44
+ type: Object,
45
+ default: () => ({}),
46
+ },
47
+ pager: {
48
+ type: Object,
49
+ default: () => ({
50
+ index: 1,
51
+ pageSize: 10,
52
+ pageTotal: 1,
53
+ total: 0,
54
+ }),
55
+ },
56
+ },
39
57
  components: {
40
58
  ReplyItem,
41
59
  },
@@ -10,8 +10,8 @@
10
10
  <div class="c-resource-content" v-loading="loading">
11
11
  <div class="m-database-search">
12
12
  <el-radio-group class="u-client" v-model="comboClient" @change="search" v-if="type === 'combo'">
13
- <el-radio-button label="std">剑三</el-radio-button>
14
- <el-radio-button label="origin">缘起</el-radio-button>
13
+ <el-radio-button value="std">剑三</el-radio-button>
14
+ <el-radio-button value="origin">缘起</el-radio-button>
15
15
  </el-radio-group>
16
16
  <el-input
17
17
  class="u-input"