@jx3box/jx3box-ui 2.0.5 → 2.0.6
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.
- package/.storybook/preview.js +22 -13
- package/.storybook/storybookMocks.js +191 -0
- package/README.md +6 -19
- package/assets/css/bread/admin.less +20 -2
- package/assets/css/bread/breadcrumb.less +5 -2
- package/assets/css/comment/quick-reply.less +1 -1
- package/assets/css/common/left-sidebar.less +1 -1
- package/assets/css/interact/like2.less +5 -2
- package/assets/css/single/author.less +15 -10
- package/assets/css/single/cms-single.less +1 -0
- package/assets/css/single/thx.less +34 -11
- package/assets/data/nav.json +344 -10
- package/assets/img/comment/comment.svg +1 -1
- package/assets/img/comment/heart_1.svg +1 -1
- package/assets/img/comment/hide.svg +1 -1
- package/assets/img/leftsidebar/medal.svg +1 -1
- package/assets/img/leftsidebar/post.svg +27 -46
- package/i18n/messages/en-US.js +357 -22
- package/i18n/messages/vi.js +350 -22
- package/i18n/messages/zh-CN.js +469 -20
- package/i18n/messages/zh-TW.js +350 -22
- package/index.js +19 -7
- package/package.json +8 -5
- package/service/cms.js +22 -0
- package/service/commit-history.js +18 -0
- package/service/community.js +60 -0
- package/service/fav.js +5 -6
- package/src/App.vue +154 -80
- package/src/Breadcrumb.vue +24 -11
- package/src/CommonFooter.vue +2 -2
- package/src/Footer.vue +13 -5
- package/src/LeftSideToggle.vue +10 -3
- package/src/LeftSidebar.vue +19 -5
- package/src/Main.vue +9 -2
- package/src/RightSidebar.vue +12 -3
- package/src/SuspendCommon.vue +52 -38
- package/src/author/AuthorFans.vue +7 -5
- package/src/author/AuthorFollow.vue +14 -7
- package/src/author/AuthorGift.vue +25 -17
- package/src/author/AuthorInfo.vue +46 -19
- package/src/author/AuthorLink.vue +3 -1
- package/src/author/AuthorMedals.vue +5 -2
- package/src/author/AuthorPosts.vue +31 -13
- package/src/author/AuthorRss.vue +7 -3
- package/src/author/AuthorTeams.vue +3 -1
- package/src/author/UserPop.vue +29 -17
- package/src/bread/Admin.vue +55 -32
- package/src/bread/AdminDirectMessage.vue +15 -8
- package/src/bread/AdminDrop.vue +124 -45
- package/src/bread/CommunityAdmin.vue +527 -0
- package/src/bread/DesignTask.vue +30 -26
- package/src/bread/ListAdmin.vue +199 -0
- package/src/bread/MigrateCommunity.vue +192 -0
- package/src/bread/MoveToCommunityDialog.vue +234 -0
- package/src/comment/Avatar.vue +18 -24
- package/src/comment/CommentContent.vue +57 -37
- package/src/comment/CommentContentSimple.vue +61 -63
- package/src/comment/CommentInputForm.vue +45 -34
- package/src/comment/CommentWithReply.vue +9 -6
- package/src/comment/QuickReply.vue +5 -1
- package/src/comment/ReplyForReply.vue +6 -4
- package/src/comment/ReplyList.vue +28 -18
- package/src/comment/Upload.vue +24 -6
- package/src/filters/clientBy.vue +10 -8
- package/src/filters/markBy.vue +35 -31
- package/src/filters/menuBy.vue +20 -22
- package/src/filters/orderBy.vue +17 -11
- package/src/filters/tagBy.vue +4 -2
- package/src/filters/topicBy.vue +12 -10
- package/src/filters/versionBy.vue +5 -3
- package/src/filters/zlpBy.vue +29 -25
- package/src/footer/copyright.vue +5 -5
- package/src/footer/links.vue +2 -2
- package/src/footer/official.vue +1 -1
- package/src/footer/resource.vue +6 -6
- package/src/header/alternate.vue +35 -18
- package/src/header/asset.vue +9 -19
- package/src/header/box.vue +20 -8
- package/src/header/box2.vue +16 -9
- package/src/header/client.vue +7 -7
- package/src/header/lang.vue +41 -6
- package/src/header/logo.vue +2 -3
- package/src/header/manage.vue +2 -2
- package/src/header/message.vue +3 -3
- package/src/header/nav.vue +26 -23
- package/src/header/publish.vue +2 -2
- package/src/header/search.vue +2 -2
- package/src/header/shop.vue +2 -2
- package/src/header/user.vue +4 -4
- package/src/header/userInfo.vue +22 -24
- package/src/header/vip.vue +2 -2
- package/src/interact/BoxcoinAdmin.vue +30 -16
- package/src/interact/BoxcoinRecords.vue +28 -11
- package/src/interact/BoxcoinUser.vue +33 -17
- package/src/interact/Fav.vue +5 -1
- package/src/interact/Homework.vue +318 -0
- package/src/interact/Like.vue +4 -2
- package/src/interact/Rss.vue +10 -4
- package/src/interact/Share.vue +18 -19
- package/src/interact/WatchLater.vue +5 -1
- package/src/main.js +1 -0
- package/src/single/Author.vue +5 -1
- package/src/single/CmsSingle.vue +29 -15
- package/src/single/Collection.vue +36 -26
- package/src/single/Comment.vue +19 -13
- package/src/single/Creators.vue +5 -3
- package/src/single/PostCollection.vue +158 -0
- package/src/single/PostDirectory.vue +0 -126
- package/src/single/PostGuide.vue +93 -0
- package/src/single/PostHeader.vue +39 -17
- package/src/single/PostTopic.vue +3 -3
- package/src/single/PostVersion.vue +219 -0
- package/src/single/RightAffix.vue +160 -0
- package/src/single/SimpleThx.vue +4 -2
- package/src/single/Thx.vue +14 -2
- package/src/single/VersionDialog.vue +238 -0
- package/src/stories/components/StoryPropsTable.vue +137 -0
- package/src/stories/filters/FilterGallery.stories.js +110 -0
- package/src/stories/filters/clientBy.stories.js +24 -0
- package/src/stories/filters/markBy.stories.js +6 -0
- package/src/stories/filters/menuBy.stories.js +6 -0
- package/src/stories/filters/orderBy.stories.js +6 -0
- package/src/stories/filters/tagBy.stories.js +6 -0
- package/src/stories/filters/topicBy.stories.js +6 -0
- package/src/stories/filters/versionBy.stories.js +6 -0
- package/src/stories/filters/zlpBy.stories.js +6 -0
- package/src/stories/layout/BaseShell.stories.js +38 -0
- package/src/stories/layout/Breadcrumb.stories.js +40 -0
- package/src/stories/layout/CommonFooter.stories.js +1 -1
- package/src/stories/layout/CommonHeader.stories.js +1 -1
- package/src/stories/layout/LeftSideToggle.stories.js +78 -0
- package/src/stories/layout/LeftSidebar.stories.js +40 -0
- package/src/stories/layout/Main.stories.js +41 -0
- package/src/stories/layout/RightSidebar.stories.js +36 -0
- package/src/stories/layout/StorybookShell.vue +271 -0
- package/src/stories/layout/SuspendCommon.stories.js +67 -0
- package/src/stories/layout/SuspendCommonStage.vue +143 -0
- package/src/stories/mockData.js +275 -0
- package/src/stories/other/UserPop.stories.js +51 -0
- package/src/stories/single/Author.stories.js +19 -0
- package/src/stories/single/AuthorStoryStage.vue +103 -0
- package/src/stories/single/CmsSingle.stories.js +19 -0
- package/src/stories/single/CmsSingleStoryStage.vue +118 -0
- package/src/stories/single/Collection.stories.js +34 -0
- package/src/stories/single/Comment.stories.js +36 -0
- package/src/stories/single/Creators.stories.js +34 -0
- package/src/stories/single/PostCollection.stories.js +34 -0
- package/src/stories/single/PostDirectory.stories.js +31 -0
- package/src/stories/single/PostGuide.stories.js +47 -0
- package/src/stories/single/PostHeader.stories.js +39 -0
- package/src/stories/single/PostVersion.stories.js +41 -0
- package/src/stories/single/RightAffix.stories.js +84 -0
- package/src/stories/single/SimpleThx.stories.js +39 -0
- package/src/stories/single/SingleGallery.stories.js +207 -0
- package/src/stories/single/Thx.stories.js +38 -0
- package/vue.config.js +2 -12
- package/assets/css/common/bottom.less +0 -25
- package/assets/css/editor/article.less +0 -36
- package/assets/css/editor/combo.less +0 -362
- package/assets/css/editor/resource.less +0 -399
- package/assets/css/editor/tinymce.less +0 -100
- package/assets/css/editor/upload.less +0 -136
- package/assets/css/module/author.less +0 -231
- package/assets/css/module/buff.less +0 -88
- package/assets/css/module/directory.less +0 -165
- package/assets/css/module/icon.less +0 -25
- package/assets/css/module/item.less +0 -279
- package/assets/css/module/item_simple.less +0 -58
- package/assets/css/module/jx3_element.less +0 -5
- package/assets/css/module/macro.less +0 -89
- package/assets/css/module/npc.less +0 -265
- package/assets/css/module/resource.less +0 -93
- package/assets/css/module/skill.less +0 -74
- package/assets/css/module/talent.less +0 -495
- package/assets/js/a.js +0 -46
- package/assets/js/code.js +0 -13
- package/assets/js/combo.js +0 -40
- package/assets/js/directory.js +0 -114
- package/assets/js/filter2.js +0 -186
- package/assets/js/fold.js +0 -11
- package/assets/js/gallery.js +0 -14
- package/assets/js/hljs_languages.js +0 -177
- package/assets/js/iframe.js +0 -38
- package/assets/js/img.js +0 -23
- package/assets/js/item/attribute_percent.js +0 -88
- package/assets/js/item/bind.js +0 -18
- package/assets/js/item/border.js +0 -19
- package/assets/js/item/border_quest.js +0 -12
- package/assets/js/item/color.js +0 -25
- package/assets/js/item/hljs_languages.js +0 -177
- package/assets/js/item/icon_url.js +0 -15
- package/assets/js/item/second_format.js +0 -19
- package/assets/js/jx3_element.js +0 -73
- package/assets/js/katex.js +0 -181
- package/assets/js/macro.js +0 -16
- package/assets/js/nextpage.js +0 -4
- package/assets/js/pswp.js +0 -67
- package/assets/js/pswp_template.js +0 -66
- package/assets/js/pz_iframe.js +0 -30
- package/assets/js/qixue.js +0 -28
- package/assets/js/renderImgPreview.js +0 -18
- package/assets/js/script.js +0 -6
- package/assets/js/stat.js +0 -107
- package/assets/js/talent2.js +0 -21
- package/assets/js/tex-mml-chtml.js +0 -36310
- package/assets/js/voice.js +0 -238
- package/assets/js/xss.js +0 -130
- package/src/editor/Article.vue +0 -230
- package/src/editor/BoxResource.vue +0 -441
- package/src/editor/Resource.vue +0 -623
- package/src/editor/Tinymce.vue +0 -204
- package/src/editor/Upload.vue +0 -277
- package/src/editor/UploadAlum.vue +0 -176
- package/src/editor/UploadBanner.vue +0 -156
- package/src/editor/components/Author.vue +0 -322
- package/src/editor/components/Avatar.vue +0 -95
- package/src/editor/components/Buff.vue +0 -80
- package/src/editor/components/Combo.vue +0 -259
- package/src/editor/components/Equip.vue +0 -299
- package/src/editor/components/GameText.vue +0 -242
- package/src/editor/components/Item.vue +0 -325
- package/src/editor/components/ItemSimple.vue +0 -134
- package/src/editor/components/Medal.vue +0 -43
- package/src/editor/components/Npc.vue +0 -215
- package/src/editor/components/PostAuthor.vue +0 -102
- package/src/editor/components/Skill.vue +0 -71
package/i18n/messages/zh-TW.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
2
|
+
commonHeader: {
|
|
3
3
|
vipCenter: "會員中心",
|
|
4
4
|
createCenter: "創作中心",
|
|
5
5
|
messageCenter: "訊息中心",
|
|
@@ -56,8 +56,64 @@ export default {
|
|
|
56
56
|
manageCenter: "管理中心",
|
|
57
57
|
},
|
|
58
58
|
all: "全部",
|
|
59
|
+
|
|
60
|
+
alternate: {
|
|
61
|
+
title: "切換馬甲",
|
|
62
|
+
userNickname: "用戶暱稱:",
|
|
63
|
+
lastLogin: "上次登入:",
|
|
64
|
+
expired: "(已過期)",
|
|
65
|
+
expiredNeedRelogin: "該馬甲已過期,請重新登入",
|
|
66
|
+
switchConfirm: "確定要切換到該馬甲嗎?",
|
|
67
|
+
deleteConfirm: "確定要刪除該馬甲嗎?",
|
|
68
|
+
maxFive: "最多只能添加5個馬甲",
|
|
69
|
+
},
|
|
70
|
+
nav: {
|
|
71
|
+
index: "首頁",
|
|
72
|
+
macro: "宏庫",
|
|
73
|
+
macro_index: "全門派宏",
|
|
74
|
+
pz: "在線配裝",
|
|
75
|
+
talent: "奇穴模擬",
|
|
76
|
+
talent2: "鎮派模擬",
|
|
77
|
+
macroeditor: "宏編輯器",
|
|
78
|
+
bps: "職業",
|
|
79
|
+
bps_post: "門派攻略",
|
|
80
|
+
jcl: "戰鬥分析",
|
|
81
|
+
battle: "戰鬥統計",
|
|
82
|
+
superstar: "門派天團",
|
|
83
|
+
pvp: "競技",
|
|
84
|
+
yanxi: "武學研習",
|
|
85
|
+
desert: "絕境戰場",
|
|
86
|
+
sandbox: "沙盤查詢",
|
|
87
|
+
changelog: "技改歷史",
|
|
88
|
+
fb: "副本",
|
|
89
|
+
fb_post: "副本攻略",
|
|
90
|
+
baizhan: "百戰查詢",
|
|
91
|
+
bhhj: "八荒模擬",
|
|
92
|
+
team: "團隊平台",
|
|
93
|
+
jdt: "秘境百強",
|
|
94
|
+
wiki: "百科",
|
|
95
|
+
cj: "成就百科",
|
|
96
|
+
item: "物品百科",
|
|
97
|
+
quest: "任務百科",
|
|
98
|
+
knowledge: "通識百科",
|
|
99
|
+
pvx: "休閒",
|
|
100
|
+
face: "妝造數據",
|
|
101
|
+
adventure: "珍奇大全",
|
|
102
|
+
gonggao: "活動告示",
|
|
103
|
+
price: "價格走勢",
|
|
104
|
+
tool: "工具",
|
|
105
|
+
tool_post: "教程資源",
|
|
106
|
+
dbm: "插件數據",
|
|
107
|
+
database: "數據大全",
|
|
108
|
+
design: "美術資源",
|
|
109
|
+
bbs: "茶館",
|
|
110
|
+
topic: "遊戲專題",
|
|
111
|
+
event: "活動專題",
|
|
112
|
+
namespace: "劍網3.com",
|
|
113
|
+
jx3pve: "魔盒前身",
|
|
114
|
+
},
|
|
59
115
|
},
|
|
60
|
-
|
|
116
|
+
commonFooter: {
|
|
61
117
|
slogan1: "一站式劍三工具與資源聚合站。",
|
|
62
118
|
slogan2: "江湖路遠,幸甚有你。",
|
|
63
119
|
downloadCenter: "下載中心",
|
|
@@ -104,25 +160,297 @@ export default {
|
|
|
104
160
|
cancel: "取消",
|
|
105
161
|
tip: "提示",
|
|
106
162
|
},
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
163
|
+
footer: { icp: "湘ICP備2021002288號", about: "關於我們", doc: "幫助文件", repo: "代碼倉庫", feedback: "反饋建議" },
|
|
164
|
+
breadcrumb: { publish: "發布", feedback: "反饋" },
|
|
165
|
+
box2: { title: "魔盒矩陣", searchPlaceholder: "搜尋應用", empty: "未找到匹配應用" },
|
|
166
|
+
user: { register: "註冊", login: "登入" },
|
|
167
|
+
nav: { quickNav: "快捷導覽" },
|
|
168
|
+
leftSidebar: { collapse: "收起側邊欄", expand: "打開側邊欄" },
|
|
169
|
+
rightSidebar: { collapse: "收起側邊欄", expand: "打開側邊欄" },
|
|
170
|
+
author: { message: "私訊" },
|
|
171
|
+
authorInfo: {
|
|
172
|
+
superAuthor: "簽約作者",
|
|
173
|
+
unknown: "未知",
|
|
174
|
+
mysterious: "神秘俠士",
|
|
175
|
+
experience: "經驗值:{value}",
|
|
176
|
+
proVip: "專業版會員",
|
|
177
|
+
preVip: "高級版會員",
|
|
178
|
+
},
|
|
179
|
+
authorPosts: { latest: "最新作品", noTitle: "{type}/無標題" },
|
|
180
|
+
authorFans: {
|
|
181
|
+
title: "粉絲榜",
|
|
182
|
+
summary: "累計打賞{count}盒幣",
|
|
183
|
+
fansCount: "粉絲數: {count}",
|
|
184
|
+
boxcoinCount: ",累計收到盒幣打賞: {count}",
|
|
185
|
+
},
|
|
186
|
+
authorMedals: { title: "作者榮譽" },
|
|
187
|
+
authorTeams: { title: "所在團隊" },
|
|
188
|
+
authorFollow: {
|
|
189
|
+
followed: "已粉",
|
|
190
|
+
follow: "關注",
|
|
191
|
+
unfollow: "取消關注",
|
|
192
|
+
followSuccess: "關注成功",
|
|
193
|
+
confirmUnfollow: "確定不再關注此人?",
|
|
194
|
+
unfollowSuccess: "取消關注成功",
|
|
195
|
+
},
|
|
196
|
+
authorGift: {
|
|
197
|
+
button: "贈禮",
|
|
198
|
+
dialogTitle: "贈禮",
|
|
199
|
+
leaf: "金箔",
|
|
200
|
+
recharge: "充值",
|
|
201
|
+
give: "贈送",
|
|
202
|
+
remark: "寄語",
|
|
203
|
+
remarkPlaceholder: "請輸入寄語(必填)",
|
|
204
|
+
defaultRemark: "辛苦,感謝!",
|
|
205
|
+
selfDisabled: "不能給自己贈送禮物",
|
|
206
|
+
statusDisabled: "作者沒有開啟接受禮物",
|
|
207
|
+
processing: "正在處理中",
|
|
208
|
+
success: "贈送成功",
|
|
209
|
+
busy: "交易繁忙,請稍後再試",
|
|
210
|
+
},
|
|
211
|
+
authorRss: { followed: "已關注", follow: "關注", followSuccess: "關注成功", success: "操作成功" },
|
|
212
|
+
authorLink: { roomId: "房間號:{id}" },
|
|
213
|
+
userPop: {
|
|
214
|
+
placeholder: "請輸入用戶 UID 或暱稱進行搜尋",
|
|
215
|
+
search: "搜尋",
|
|
216
|
+
notFound: "未找到匹配項",
|
|
217
|
+
empty: "請輸入搜尋條件",
|
|
218
|
+
invalid: "用戶不存在 或 UID 不正確",
|
|
219
|
+
alertTitle: "提醒",
|
|
220
|
+
},
|
|
221
|
+
boxcoinAdmin: {
|
|
222
|
+
tooltip: "品鑑",
|
|
223
|
+
dialogTitle: "品鑑評分",
|
|
224
|
+
monthStatus: "本月狀態",
|
|
225
|
+
monthSummary: "已用{used} 剩餘{left} 總計{total}",
|
|
226
|
+
appraise: "品鑑",
|
|
227
|
+
boxcoin: "盒幣",
|
|
228
|
+
custom: "自訂",
|
|
229
|
+
customPlaceholder: "輸入自訂數量",
|
|
230
|
+
remark: "寄語",
|
|
231
|
+
remarkPlaceholder: "請輸入寄語(必填)",
|
|
232
|
+
insertCurrentRelease: "插入當前版本",
|
|
233
|
+
defaultRemark: "辛苦,感謝!",
|
|
234
|
+
success: "操作成功",
|
|
235
|
+
fetchFailed: "獲取失敗",
|
|
236
|
+
},
|
|
237
|
+
boxcoinUser: {
|
|
238
|
+
tooltip: "投幣",
|
|
239
|
+
disabledTooltip: "您當前等級不足,無法投幣。",
|
|
240
|
+
dialogTitle: "投幣打賞",
|
|
241
|
+
currentBoxcoin: "當前擁有盒幣",
|
|
242
|
+
recharge: "充值",
|
|
243
|
+
reward: "打賞",
|
|
244
|
+
boxcoin: "盒幣",
|
|
245
|
+
custom: "自訂",
|
|
246
|
+
customPlaceholder: "輸入自訂數量",
|
|
247
|
+
remark: "寄語",
|
|
248
|
+
remarkPlaceholder: "請輸入寄語(必填)",
|
|
249
|
+
defaultRemark: "辛苦了,謝謝大大!",
|
|
250
|
+
success: "操作成功",
|
|
251
|
+
},
|
|
252
|
+
boxcoinRecords: {
|
|
253
|
+
participant: "參與打賞",
|
|
254
|
+
author: "收益作者",
|
|
255
|
+
boxcoin: "盒幣",
|
|
256
|
+
remark: "寄語",
|
|
257
|
+
reward: "打賞",
|
|
258
|
+
appraise: "品鑑",
|
|
259
|
+
system: "系統",
|
|
260
|
+
revoke: "撤銷",
|
|
261
|
+
confirmRevoke: "是否確定撤銷該評分?",
|
|
262
|
+
confirmTitle: "確認",
|
|
263
|
+
revokeSuccess: "撤銷成功",
|
|
264
|
+
},
|
|
265
|
+
share: { share: "分享", wechatShare: "微信掃一掃分享", weibo: "微博", qq: "QQ", qzone: "QQ空間", tieba: "貼吧" },
|
|
266
|
+
watchLater: { add: "添加至稍後再看", added: "已添加稍後再看" },
|
|
267
|
+
fav: { collect: "收藏", collected: "已收藏" },
|
|
268
|
+
like: { like: "點讚" },
|
|
269
|
+
rss: { subscribe: "加入訂閱", subscribed: "已訂閱" },
|
|
270
|
+
commentContent: {
|
|
271
|
+
like: "點讚",
|
|
272
|
+
liked: "已讚",
|
|
273
|
+
reply: "回覆",
|
|
274
|
+
delete: "刪除",
|
|
275
|
+
hideTip: "拉入黑洞後,僅評論者自己可見",
|
|
276
|
+
hide: "黑洞",
|
|
277
|
+
top: "置頂",
|
|
278
|
+
cancelTop: "取消置頂",
|
|
279
|
+
star: "加精",
|
|
280
|
+
cancelStar: "取消加精",
|
|
281
|
+
show: "顯示",
|
|
282
|
+
hidden: "隱藏",
|
|
283
|
+
placeholder: "參與評論...",
|
|
284
|
+
submit: "提交",
|
|
285
|
+
collapse: "收起",
|
|
286
|
+
confirmDelete: "確定刪除該評論嗎?",
|
|
287
|
+
confirmHide: "確定隱藏該評論嗎?",
|
|
288
|
+
},
|
|
289
|
+
commentContentSimple: {
|
|
290
|
+
reply: "回覆",
|
|
291
|
+
like: "點讚",
|
|
292
|
+
liked: "已讚",
|
|
293
|
+
delete: "刪除",
|
|
294
|
+
hideTip: "拉入黑洞後,僅評論者自己可見",
|
|
295
|
+
hide: "黑洞",
|
|
296
|
+
confirmDelete: "確定刪除該評論嗎?",
|
|
297
|
+
confirmHide: "確定隱藏該評論嗎?",
|
|
298
|
+
},
|
|
299
|
+
commentInputForm: {
|
|
300
|
+
authMaskPrefix: "參與評論,需先進行",
|
|
301
|
+
authLink: "帳號認證",
|
|
302
|
+
authMaskSuffix: "。",
|
|
303
|
+
placeholder: "參與討論...",
|
|
304
|
+
secret: "悄悄話",
|
|
305
|
+
secretTip: "勾選悄悄話後僅作者和你可見,且不可再變更狀態",
|
|
306
|
+
publish: "發表評論",
|
|
307
|
+
},
|
|
308
|
+
commentWithReply: { defaultName: "無名小俠", top: "置頂", star: "精華", secret: "悄悄話", commentSuccess: "評論成功!", deleteSuccess: "刪除成功!" },
|
|
309
|
+
commentUpload: {
|
|
310
|
+
tip: "最多上傳 {count} 張 {types} 格式圖片,單張圖片不能超過 {size} MB",
|
|
311
|
+
exceed: "最多上傳 {count} 張圖片!",
|
|
312
|
+
maxSize: "單張圖片大小不能超過 {size} MB!",
|
|
313
|
+
uploadFailed: "圖片上傳失敗!",
|
|
314
|
+
},
|
|
315
|
+
quickReply: { title: "快捷回覆" },
|
|
316
|
+
replyForReply: { reply: "回覆", placeholder: "輸入回覆...", submit: "提交", collapse: "收起" },
|
|
317
|
+
replyList: { collapse: "收起", showMore: "查看更多" },
|
|
318
|
+
clientBy: { all: "全部", allClients: "全端", std: "劍三", origin: "緣起", wujie: "無界" },
|
|
319
|
+
menuBy: { all: "全部", default: "篩選" },
|
|
320
|
+
tagBy: { all: "全部" },
|
|
321
|
+
topicBy: { all: "全部", label: "主題" },
|
|
322
|
+
markBy: { all: "全部", default: "精選", newbie: "新手易用", advanced: "進階推薦", recommended: "編輯精選", geek: "骨灰必備" },
|
|
323
|
+
orderBy: { sortLabel: "排序 : {current}", lastUpdate: "最後更新", earliestPublish: "最早發布", mostFavs: "收藏最多", mostLikes: "點讚最多", mostDownloads: "下載最多" },
|
|
324
|
+
versionBy: { all: "雙端", standard: "旗艦", wujie: "無界" },
|
|
325
|
+
zlpBy: { all: "全部", default: "資料片" },
|
|
326
|
+
collection: { included: "該作品已被收錄至作者的劍三小冊" },
|
|
327
|
+
comment: {
|
|
328
|
+
sortMode: "排序模式:",
|
|
329
|
+
desc: "最後靠前",
|
|
330
|
+
asc: "最早靠前",
|
|
331
|
+
likesFirst: "獲讚靠前",
|
|
332
|
+
openWhitelist: "開啟過濾",
|
|
333
|
+
openWhitelistTip: "開啟過濾後,僅設為顯示的評論可被其他人所見",
|
|
334
|
+
deleteSuccess: "刪除成功!",
|
|
335
|
+
actionSuccess: "操作成功!",
|
|
336
|
+
commentFailed: "評論失敗",
|
|
337
|
+
commentSuccess: "評論成功!",
|
|
338
|
+
},
|
|
339
|
+
creators: { title: "聯合創作", editCurrent: "編輯當前作品" },
|
|
340
|
+
postHeader: {
|
|
341
|
+
original: "原創",
|
|
342
|
+
wujie: "無界",
|
|
343
|
+
mysterious: "神秘俠士",
|
|
344
|
+
client: "適用客戶端",
|
|
345
|
+
publishDateTitle: "發布日期:{time}",
|
|
346
|
+
updateDateTitle: "最後更新:{time}",
|
|
347
|
+
wordCount: "累計字數",
|
|
348
|
+
edit: "編輯",
|
|
349
|
+
noTitle: "無標題",
|
|
350
|
+
anonymous: "匿名",
|
|
351
|
+
},
|
|
352
|
+
simpleThx: { record: "打賞記錄" },
|
|
353
|
+
thx: {
|
|
354
|
+
copyright1: "所有原創作品,著作權歸作者所有,所有未經授權的非署名轉載或抄襲將有權追究法律責任,所有法律事務由專聘律師代理。",
|
|
355
|
+
copyright2: "簽約作者獨家特約稿件,及所有魔盒官方評分作品用戶一經兌現則視為有償付費稿件,所有商業稿件的轉載引用需同時徵得魔盒平台授權。",
|
|
356
|
+
},
|
|
357
|
+
cmsSingle: { comment: "評論", commentDisabled: "作者沒有開啟評論功能", authorSet: "作者設定了【" },
|
|
358
|
+
suspendCommon: {
|
|
359
|
+
more: "更多",
|
|
360
|
+
pinButton: "固定按鈕",
|
|
361
|
+
collect: "收藏",
|
|
362
|
+
subscribe: "訂閱",
|
|
363
|
+
collectWork: "收藏作品",
|
|
364
|
+
subscribeWork: "訂閱作品",
|
|
365
|
+
alreadyCollected: "你已經收藏該作品",
|
|
366
|
+
alreadySubscribed: "你已經訂閱該作品",
|
|
367
|
+
tryWatchLater: "喜歡程度不夠?可以試試添加到稍後再看",
|
|
368
|
+
cancelCollect: "取消收藏",
|
|
369
|
+
cancelSubscribe: "取消訂閱",
|
|
370
|
+
workSuffix: "作品",
|
|
371
|
+
addWatchLater: "添加到稍後再看",
|
|
372
|
+
watchLater: "稍後再看",
|
|
373
|
+
cancelPin: "取消固定",
|
|
374
|
+
pinContent: "固定內容",
|
|
375
|
+
viewPinnedAnywhere: "你可以隨時在其他頁面查看固定的內容",
|
|
376
|
+
pinShort: "固",
|
|
377
|
+
pinAgain: "你可以在原頁面再次將其固定",
|
|
378
|
+
supportedPinPrefix: "在支援固定的頁面可以按",
|
|
379
|
+
supportedPinSuffix: "將頁面固定",
|
|
380
|
+
openFailed: "查找頁面失敗",
|
|
381
|
+
searchContent: "搜尋內容",
|
|
382
|
+
pinCurrent: "固定本頁",
|
|
383
|
+
viewPinned: "查看固定",
|
|
384
|
+
author: "作者",
|
|
385
|
+
report: "舉報",
|
|
386
|
+
addedWatchLater: "已添加到稍後再看",
|
|
387
|
+
},
|
|
388
|
+
admin: {
|
|
389
|
+
title: "管理面板",
|
|
390
|
+
status: "狀態變更",
|
|
391
|
+
refreshCache: "刷新快取",
|
|
392
|
+
visible: "可見性變更",
|
|
393
|
+
mark: "推薦角標",
|
|
394
|
+
highlight: "高亮置頂",
|
|
395
|
+
sticky: "置頂",
|
|
396
|
+
enableHighlight: "開啟高亮",
|
|
397
|
+
previewHighlight: "預覽高亮效果",
|
|
398
|
+
banner: "封面海報",
|
|
399
|
+
bannerUrl: "海報地址",
|
|
400
|
+
removeBanner: "移除海報",
|
|
401
|
+
meta: "元信息",
|
|
402
|
+
section: "板塊",
|
|
403
|
+
sectionPlaceholder: "請選擇板塊",
|
|
404
|
+
authorPlaceholder: "請輸入作者ID",
|
|
405
|
+
authorId: "作者ID",
|
|
406
|
+
submit: "提交",
|
|
407
|
+
statusDefault: "預設",
|
|
408
|
+
statusDraft: "草稿",
|
|
409
|
+
statusPending: "待審核",
|
|
410
|
+
statusDeleted: "刪除",
|
|
411
|
+
uploadFailed: "上傳失敗",
|
|
412
|
+
success: "設定成功",
|
|
413
|
+
},
|
|
414
|
+
adminDrop: {
|
|
415
|
+
manage: "管理",
|
|
416
|
+
setting: "設定",
|
|
417
|
+
message: "私訊",
|
|
418
|
+
push: "推送",
|
|
419
|
+
pictureTask: "刷圖",
|
|
420
|
+
messageInput: "請輸入私訊內容",
|
|
421
|
+
messageTitle: "管理私訊",
|
|
422
|
+
noticePrefix: "營運通知:",
|
|
423
|
+
messageSuccess: "私訊成功",
|
|
424
|
+
pictureSuccess: "QQ 機器人圖片生成提交成功",
|
|
425
|
+
invalidParams: "參數不正確",
|
|
426
|
+
},
|
|
427
|
+
adminDirectMessage: {
|
|
428
|
+
button: "私訊",
|
|
429
|
+
title: "管理私訊",
|
|
430
|
+
input: "請輸入私訊內容",
|
|
431
|
+
noticePrefix: "營運通知:",
|
|
432
|
+
success: "私訊成功",
|
|
433
|
+
},
|
|
434
|
+
designTask: {
|
|
435
|
+
title: "快捷推送",
|
|
436
|
+
formTitle: "標題",
|
|
437
|
+
titlePlaceholder: "請輸入標題",
|
|
438
|
+
formType: "類型",
|
|
439
|
+
typePlaceholder: "請選擇類型",
|
|
440
|
+
formVersion: "版本",
|
|
441
|
+
formRemark: "備註",
|
|
442
|
+
remarkPlaceholder: "請輸入備註",
|
|
443
|
+
formStar: "星級",
|
|
444
|
+
recent: "近期推送",
|
|
445
|
+
pushAt: "推送時間",
|
|
446
|
+
pusher: "推送人",
|
|
447
|
+
star: "星級",
|
|
448
|
+
remark: "備註",
|
|
449
|
+
empty: "當前文章暫無歷史推送",
|
|
450
|
+
std: "劍三",
|
|
451
|
+
origin: "緣起",
|
|
452
|
+
wujie: "無界",
|
|
453
|
+
test: "體服",
|
|
454
|
+
success: "提交成功",
|
|
127
455
|
},
|
|
128
456
|
};
|
package/index.js
CHANGED
|
@@ -19,10 +19,17 @@ import menuBy from "./src/filters/menuBy.vue";
|
|
|
19
19
|
import clientBy from "./src/filters/clientBy.vue";
|
|
20
20
|
import zlpBy from "./src/filters/zlpBy.vue";
|
|
21
21
|
import topicBy from "./src/filters/topicBy.vue";
|
|
22
|
+
import versionBy from "./src/filters/versionBy.vue";
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
import
|
|
25
|
-
import
|
|
24
|
+
// 单页
|
|
25
|
+
import CmsSingle from "./src/single/CmsSingle.vue";
|
|
26
|
+
import Comment from "./src/single/Comment.vue";
|
|
27
|
+
import Thx from "./src/single/Thx.vue";
|
|
28
|
+
|
|
29
|
+
// 其他/工具
|
|
30
|
+
import UserPop from "./src/author/UserPop.vue";
|
|
31
|
+
import SuspendCommon from "./src/SuspendCommon.vue";
|
|
32
|
+
import AdminDrop from "./src/bread/AdminDrop.vue";
|
|
26
33
|
|
|
27
34
|
import {
|
|
28
35
|
Jx3boxUiI18n,
|
|
@@ -52,11 +59,16 @@ const components = {
|
|
|
52
59
|
clientBy,
|
|
53
60
|
zlpBy,
|
|
54
61
|
topicBy,
|
|
62
|
+
versionBy,
|
|
55
63
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
64
|
+
CmsSingle,
|
|
65
|
+
Comment,
|
|
66
|
+
Thx,
|
|
67
|
+
|
|
68
|
+
UserPop,
|
|
69
|
+
SuspendCommon,
|
|
70
|
+
AdminDrop,
|
|
71
|
+
}
|
|
60
72
|
|
|
61
73
|
const install = function (app) {
|
|
62
74
|
Object.keys(components).forEach((key) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jx3box/jx3box-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
4
4
|
"description": "JX3BOX Vue3 UI",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -33,11 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@element-plus/icons-vue": "^2.3.2",
|
|
36
|
-
"@jx3box/jx3box-common": "^9.1.
|
|
36
|
+
"@jx3box/jx3box-common": "^9.1.3",
|
|
37
37
|
"@jx3box/jx3box-data": "^3.9.2",
|
|
38
|
-
"@jx3box/jx3box-emotion": "^1.3.0",
|
|
39
|
-
"@jx3box/jx3box-macro": "^1.0.3",
|
|
40
|
-
"@jx3box/jx3box-talent": "^1.3.12",
|
|
41
38
|
"@tinymce/tinymce-vue": "^5.1.1",
|
|
42
39
|
"@vueuse/core": "^9.13.0",
|
|
43
40
|
"@vueuse/head": "^0.7.6",
|
|
@@ -51,9 +48,11 @@
|
|
|
51
48
|
"katex": "^0.16.9",
|
|
52
49
|
"lodash": "^4.17.21",
|
|
53
50
|
"mitt": "^3.0.1",
|
|
51
|
+
"postcss-safe-parser": "^7.0.1",
|
|
54
52
|
"qrcode.vue": "^3.3.4",
|
|
55
53
|
"sortablejs": "^1.15.0",
|
|
56
54
|
"url": "^0.11.3",
|
|
55
|
+
"v-code-diff": "^1.13.1",
|
|
57
56
|
"viewerjs": "^1.11.6",
|
|
58
57
|
"vue": "^3.2.13",
|
|
59
58
|
"vue-i18n": "^9.14.4",
|
|
@@ -62,6 +61,10 @@
|
|
|
62
61
|
"devDependencies": {
|
|
63
62
|
"@babel/core": "^7.12.16",
|
|
64
63
|
"@babel/eslint-parser": "^7.28.6",
|
|
64
|
+
"@jx3box/jx3box-editor": "^3.0.6",
|
|
65
|
+
"@jx3box/jx3box-emotion": "^1.3.0",
|
|
66
|
+
"@jx3box/jx3box-macro": "^1.0.3",
|
|
67
|
+
"@jx3box/jx3box-talent": "^1.3.12",
|
|
65
68
|
"@storybook/addon-essentials": "^8.6.18",
|
|
66
69
|
"@storybook/addon-interactions": "^8.6.18",
|
|
67
70
|
"@storybook/test": "^8.6.18",
|
package/service/cms.js
CHANGED
|
@@ -5,6 +5,11 @@ function getPostAuthors(post_id) {
|
|
|
5
5
|
return $cms({ mute: true }).get(`/api/cms/post/${post_id}/authors`);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
// 获取文章内容
|
|
9
|
+
function getPost(post_id) {
|
|
10
|
+
return $cms().get(`/api/cms/post/${post_id}`)
|
|
11
|
+
}
|
|
12
|
+
|
|
8
13
|
function uploadImage(formData) {
|
|
9
14
|
return $cms().post(`/api/cms/upload/avatar`, formData);
|
|
10
15
|
}
|
|
@@ -63,6 +68,20 @@ function getConfig(params) {
|
|
|
63
68
|
});
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
// 获取用户config
|
|
72
|
+
function getUserConfig(params) {
|
|
73
|
+
return $cms()
|
|
74
|
+
.get(`/api/cms/user/conf`, { params })
|
|
75
|
+
.then((res) => {
|
|
76
|
+
return res.data.data;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 设置用户config
|
|
81
|
+
function setUserConfig(data) {
|
|
82
|
+
return $cms().put(`/api/cms/user/conf`, data);
|
|
83
|
+
}
|
|
84
|
+
|
|
66
85
|
// 获取用户meta
|
|
67
86
|
function getUserMeta(params) {
|
|
68
87
|
return $cms()
|
|
@@ -115,6 +134,7 @@ function getUserPermission() {
|
|
|
115
134
|
}
|
|
116
135
|
|
|
117
136
|
export {
|
|
137
|
+
getPost,
|
|
118
138
|
getPostAuthors,
|
|
119
139
|
uploadImage,
|
|
120
140
|
upload,
|
|
@@ -134,4 +154,6 @@ export {
|
|
|
134
154
|
uploadFile,
|
|
135
155
|
refreshQQBotImage,
|
|
136
156
|
getUserPermission,
|
|
157
|
+
getUserConfig,
|
|
158
|
+
setUserConfig,
|
|
137
159
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { $next } from "@jx3box/jx3box-common/js/api";
|
|
2
|
+
|
|
3
|
+
// 获取提交记录
|
|
4
|
+
export function getCommitHistories(id, params) {
|
|
5
|
+
return $next().get(`/api/next2/userdata/commit-history/content-meta/${id}/commit/history`, {
|
|
6
|
+
params,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// 通过hash获取提交记录
|
|
11
|
+
export function getCommitByHash(id, hash) {
|
|
12
|
+
return $next().get(`/api/next2/userdata/commit-history/content-meta/${id}/commit/by-hash/${hash}`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 提交
|
|
16
|
+
export function commitHistory(id, data) {
|
|
17
|
+
return $next().post(`/api/next2/userdata/commit-history/content-meta/${id}/commit`, data);
|
|
18
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { $cms, $next } from "@jx3box/jx3box-common/js/api";
|
|
2
|
+
|
|
3
|
+
const API_PREFIX = `/api/next2`;
|
|
4
|
+
// 获取分类
|
|
5
|
+
export function getTopicBucket(params) {
|
|
6
|
+
return $cms().get(`/api/cms/topic/bucket`, { params });
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const recoverTopicFromPosts = (data) => {
|
|
10
|
+
return $next().post(`${API_PREFIX}/community/discussion/manage/topic/recover/from/posts`, data);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const updateTopicItem = (id, data) => {
|
|
14
|
+
return $next().put(`${API_PREFIX}/community/discussion/manage/topic/item/${id}/update`, data);
|
|
15
|
+
};
|
|
16
|
+
export const deleteTopic = (id) => {
|
|
17
|
+
return $next().delete(`${API_PREFIX}/community/discussion/manage/topic/item/${id}`);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// status = pass:审核通过, reject:审核不通过 wait:待审核
|
|
21
|
+
export const auditTopic = (id, action) => {
|
|
22
|
+
return $next().put(`${API_PREFIX}/community/discussion/manage/topic/item/${id}/audit/${action}`);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param {*} id 帖子id
|
|
28
|
+
* @param {*} action 动作 top:置顶,star: 加精, hight: 高亮
|
|
29
|
+
* @param {*} value 1:确认操作, 0:取消操作
|
|
30
|
+
*/
|
|
31
|
+
export const manageTopic = (id, action, value) => {
|
|
32
|
+
return $next().put(`${API_PREFIX}/community/discussion/manage/topic/item/${id}/opt/${action}/${value}`);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const manageTopicAll = (id, data) => {
|
|
36
|
+
return $next().put(`${API_PREFIX}/community/discussion/manage/topic/item/${id}/opt`, data);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const getTopicDetails = (id) => {
|
|
40
|
+
return $next().get(`${API_PREFIX}/community/discussion/manage/topic/item/${id}`);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// 菜单
|
|
44
|
+
export function getCommunityTags() {
|
|
45
|
+
return $cms()
|
|
46
|
+
.get(`/api/cms/menu-group/community_tags`)
|
|
47
|
+
.then((res) => {
|
|
48
|
+
return res.data.data.menus || [];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 获取原帖子
|
|
53
|
+
export const getOriginalPost = (id) => {
|
|
54
|
+
return $cms().get(`/api/cms/manage/post/by-community/${id}`);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// 迁移帖子
|
|
58
|
+
export const migrateCommunityPost = (data) => {
|
|
59
|
+
return $cms().put(`/api/cms/manage/post/migrate`, data);
|
|
60
|
+
};
|
package/service/fav.js
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
import { $next } from "@jx3box/jx3box-common/js/api";
|
|
2
|
-
const $n = $next();
|
|
3
2
|
|
|
4
3
|
function hasFav(post_type, post_id) {
|
|
5
|
-
return $
|
|
4
|
+
return $next().get(`api/article/favorites/is-my/${post_id}/${post_type}`).then((res) => {
|
|
6
5
|
return res.data.data;
|
|
7
6
|
});
|
|
8
7
|
}
|
|
9
8
|
function addFav(post_type, post_id, post_title) {
|
|
10
|
-
return $
|
|
9
|
+
return $next().post(`api/article/favorites/add/${post_id}/${post_type}`, { post_title }).then((res) => {
|
|
11
10
|
return res.data.data;
|
|
12
11
|
});
|
|
13
12
|
}
|
|
14
13
|
function delFav(id) {
|
|
15
|
-
return $
|
|
14
|
+
return $next().delete(`api/article/favorites/my/${id}`);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
// 稍后再看
|
|
19
18
|
function addWatchLater(data) {
|
|
20
|
-
return $
|
|
19
|
+
return $next().post(`api/next2/userdata/watch-later/item`, data)
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
function delWatchLater(params) {
|
|
24
|
-
return $
|
|
23
|
+
return $next().delete(`api/next2/userdata/watch-later/item`, { params })
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
export { hasFav, addFav, delFav, addWatchLater, delWatchLater };
|