@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
@@ -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,
@@ -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: {
@@ -36,18 +36,31 @@
36
36
  :can-gift="lvEnough"
37
37
  />
38
38
  <Share :postId="postId" :postType="postType" :client="client" />
39
- <watch-later :category="postType" :title="postTitle" :author-id="authorId" :banner="banner" :content-id="contentMetaId"></watch-later>
39
+ <watch-later
40
+ :category="postType"
41
+ :title="postTitle"
42
+ :author-id="authorId"
43
+ :banner="banner"
44
+ :content-id="contentMetaId"
45
+ ></watch-later>
40
46
  </div>
41
47
  <div class="w-thx-records">
42
- <boxcoin-records :postId="postId" :postType="postType" :postClient="finalClient" :cacheRecord="cacheRecord"
43
- :mode="mode" @update:boxcoin="updateBoxcoin" v-if="showRecord" />
48
+ <boxcoin-records
49
+ :postId="postId"
50
+ :postType="postType"
51
+ :postClient="finalClient"
52
+ :cacheRecord="cacheRecord"
53
+ :mode="mode"
54
+ @update:boxcoin="updateBoxcoin"
55
+ v-if="showRecord"
56
+ />
44
57
  </div>
45
58
  <div class="w-thx-copyright">
46
59
  &copy;
47
60
  所有原创作品,著作权归作者所有,所有未经授权的非署名转载或抄袭将有权追究法律责任,所有法律事务由专聘律师代理。<br />
48
61
  签约作者独家特约稿件,及所有魔盒官方评分作品用户一经兑现则视为有偿付费稿件,所有商业稿件的转载引用需同时征得魔盒平台授权。
49
62
  </div>
50
- </div>
63
+ </div>
51
64
  </template>
52
65
 
53
66
  <script>
@@ -62,7 +75,7 @@ import Rss from "../interact/Rss.vue";
62
75
 
63
76
  import User from "@jx3box/jx3box-common/js/user";
64
77
  import { getBoxcoinStatus, getPostBoxcoinConfig } from "../../service/thx";
65
- import {getConfig,getUserPermission} from "../../service/cms"
78
+ import { getConfig, getUserPermission } from "../../service/cms";
66
79
 
67
80
  export default {
68
81
  name: "ThxComp",
@@ -82,7 +95,7 @@ export default {
82
95
  default: "normal",
83
96
  },
84
97
  postId: {
85
- type: Number,
98
+ type: [Number, String],
86
99
  default: 0,
87
100
  },
88
101
  postType: {
@@ -94,7 +107,7 @@ export default {
94
107
  default: "",
95
108
  },
96
109
  userId: {
97
- type: Number,
110
+ type: [Number, String],
98
111
  default: 0,
99
112
  },
100
113
  authors: {
@@ -126,7 +139,7 @@ export default {
126
139
  default: false,
127
140
  },
128
141
  authorId: {
129
- type: Number,
142
+ type: [Number, String],
130
143
  default: 0,
131
144
  },
132
145
  banner: {
@@ -134,9 +147,13 @@ export default {
134
147
  default: "",
135
148
  },
136
149
  contentMetaId: {
137
- type: Number,
150
+ type: [Number, String],
138
151
  default: 0,
139
- }
152
+ },
153
+ category: {
154
+ type: String,
155
+ default: "",
156
+ },
140
157
  },
141
158
  data: function () {
142
159
  return {
@@ -170,11 +187,11 @@ export default {
170
187
  post_keys: function () {
171
188
  return [this.postId, this.postType];
172
189
  },
173
- finalClient: function() {
174
- if (this.client == 'wujie') {
175
- return "std"
190
+ finalClient: function () {
191
+ if (this.client == "wujie") {
192
+ return "std";
176
193
  }
177
- return this.client
194
+ return this.client;
178
195
  },
179
196
  showRecord() {
180
197
  // 当admin_boxcoin_visible为0时,作者本人和64及以上权限可见打赏记录
@@ -182,7 +199,7 @@ export default {
182
199
  return this.userId == this.user.uid || this.user.group >= 64;
183
200
  }
184
201
  return true;
185
- }
202
+ },
186
203
  },
187
204
  watch: {
188
205
  post_keys: {
@@ -224,25 +241,26 @@ export default {
224
241
  });
225
242
 
226
243
  getConfig({
227
- key: 'admin_boxcoin_visible'
244
+ key: "admin_boxcoin_visible",
228
245
  }).then((res) => {
229
- this.admin_boxcoin_visible = Number(res?.val)
246
+ this.admin_boxcoin_visible = Number(res?.val);
230
247
  });
231
248
 
232
249
  getConfig({
233
- key: `level_has_gift_permission`
250
+ key: `level_has_gift_permission`,
234
251
  }).then((res) => {
235
- User.isLogin() && User.getAsset().then((data) => {
236
- const asset = data;
237
- this.lvEnough = asset && asset.experience >= Number(res?.val);
238
- });
252
+ User.isLogin() &&
253
+ User.getAsset().then((data) => {
254
+ const asset = data;
255
+ this.lvEnough = asset && asset.experience >= Number(res?.val);
256
+ });
239
257
  });
240
258
 
241
-
242
- User.isLogin() && getUserPermission().then(res => {
243
- const permissions = res.data.data.permission?.map(item => item.action)
244
- this.hasPermission = permissions.includes(`manage_boxcoin_${this.postType}`)
245
- })
259
+ User.isLogin() &&
260
+ getUserPermission().then((res) => {
261
+ const permissions = res.data.data.permission?.map((item) => item.action);
262
+ this.hasPermission = permissions.includes(`manage_boxcoin_${this.postType}`);
263
+ });
246
264
  },
247
265
  // 用户打赏
248
266
  updateRecord: function (data) {
@@ -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: "",