@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/.storybook/preview.js
CHANGED
|
@@ -4,9 +4,11 @@ import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
|
|
4
4
|
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
|
5
5
|
import axios from 'axios';
|
|
6
6
|
|
|
7
|
+
import { install } from '../index';
|
|
7
8
|
import { Jx3boxUiI18n } from '../i18n';
|
|
8
9
|
import navData from '../assets/data/nav.json';
|
|
9
10
|
import boxData from '../assets/data/box.json';
|
|
11
|
+
import { resolveAdapter, resolveStorybookMock } from './storybookMocks';
|
|
10
12
|
|
|
11
13
|
import '@jx3box/jx3box-common/css/normalize.css';
|
|
12
14
|
import '@jx3box/jx3box-common/css/font.css';
|
|
@@ -18,14 +20,26 @@ let axiosPatched = false;
|
|
|
18
20
|
function patchAxiosForStorybook() {
|
|
19
21
|
if (axiosPatched) return;
|
|
20
22
|
|
|
23
|
+
const originalCreate = axios.create.bind(axios);
|
|
21
24
|
const originalGet = axios.get.bind(axios);
|
|
25
|
+
|
|
26
|
+
const withMockAdapter = (instance) => {
|
|
27
|
+
const defaultAdapter = resolveAdapter(axios, instance.defaults.adapter);
|
|
28
|
+
instance.defaults.adapter = async (config) => {
|
|
29
|
+
const mocked = resolveStorybookMock(config);
|
|
30
|
+
if (mocked) return mocked;
|
|
31
|
+
if (defaultAdapter) return defaultAdapter(config);
|
|
32
|
+
throw new Error(`Unmocked request in Storybook: ${config?.url || ''}`);
|
|
33
|
+
};
|
|
34
|
+
return instance;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
axios.create = (...args) => withMockAdapter(originalCreate(...args));
|
|
22
38
|
axios.get = (url, ...args) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
});
|
|
39
|
+
const config = { method: 'get', url, ...(args[0] || {}) };
|
|
40
|
+
const mocked = resolveStorybookMock(config);
|
|
41
|
+
if (mocked) {
|
|
42
|
+
return Promise.resolve(mocked);
|
|
29
43
|
}
|
|
30
44
|
return originalGet(url, ...args);
|
|
31
45
|
};
|
|
@@ -57,6 +71,7 @@ function bootstrapRuntimeData() {
|
|
|
57
71
|
setup((app) => {
|
|
58
72
|
app.use(Jx3boxUiI18n, { locale: 'zh-CN' });
|
|
59
73
|
app.use(ElementPlus, { locale: zhCn });
|
|
74
|
+
install(app);
|
|
60
75
|
|
|
61
76
|
for (const [name, component] of Object.entries(ElementPlusIconsVue)) {
|
|
62
77
|
app.component(name, component);
|
|
@@ -64,13 +79,7 @@ setup((app) => {
|
|
|
64
79
|
});
|
|
65
80
|
|
|
66
81
|
patchAxiosForStorybook();
|
|
67
|
-
|
|
68
|
-
export const decorators = [
|
|
69
|
-
(story) => {
|
|
70
|
-
bootstrapRuntimeData();
|
|
71
|
-
return story();
|
|
72
|
-
},
|
|
73
|
-
];
|
|
82
|
+
bootstrapRuntimeData();
|
|
74
83
|
|
|
75
84
|
export const parameters = {
|
|
76
85
|
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mockBoxcoinConfig,
|
|
3
|
+
mockBoxcoinRecords,
|
|
4
|
+
mockCommitHistories,
|
|
5
|
+
mockCollection,
|
|
6
|
+
mockCommentPage,
|
|
7
|
+
mockCommentPower,
|
|
8
|
+
mockCreators,
|
|
9
|
+
mockHonor,
|
|
10
|
+
mockMedals,
|
|
11
|
+
mockSearchUser,
|
|
12
|
+
mockTeams,
|
|
13
|
+
mockUserInfo,
|
|
14
|
+
mockUserPosts,
|
|
15
|
+
} from '../src/stories/mockData';
|
|
16
|
+
|
|
17
|
+
function resolveAdapter(axiosModule, adapter) {
|
|
18
|
+
if (!adapter) return null;
|
|
19
|
+
if (typeof adapter === 'function') return adapter;
|
|
20
|
+
if (typeof axiosModule?.getAdapter === 'function') {
|
|
21
|
+
return axiosModule.getAdapter(adapter);
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function normalizePath(config) {
|
|
27
|
+
const rawUrl = config?.url || '';
|
|
28
|
+
const baseURL = config?.baseURL || '';
|
|
29
|
+
const base = baseURL
|
|
30
|
+
? new URL(baseURL, 'https://storybook.local').toString()
|
|
31
|
+
: 'https://storybook.local';
|
|
32
|
+
const url = rawUrl.startsWith('http') ? new URL(rawUrl) : new URL(rawUrl || '/', base);
|
|
33
|
+
return url.pathname.replace(/^\/__proxy\/[^/]+/, '');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function respond(config, data, status = 200) {
|
|
37
|
+
return {
|
|
38
|
+
data,
|
|
39
|
+
status,
|
|
40
|
+
statusText: 'OK',
|
|
41
|
+
headers: {},
|
|
42
|
+
config,
|
|
43
|
+
request: {},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function mockCmsConfig(key) {
|
|
48
|
+
if (key === 'boxcoin') return { val: 1 };
|
|
49
|
+
if (key === 'admin_boxcoin_visible') return { val: 1 };
|
|
50
|
+
if (key === 'level_has_gift_permission') return { val: 0 };
|
|
51
|
+
if (key === 'comment_strict') return { val: 0 };
|
|
52
|
+
return { val: '' };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function resolveStorybookMock(config) {
|
|
56
|
+
const method = String(config?.method || 'get').toLowerCase();
|
|
57
|
+
const path = normalizePath(config);
|
|
58
|
+
const params = config?.params || {};
|
|
59
|
+
|
|
60
|
+
if (path.includes('/config/global.json')) {
|
|
61
|
+
return respond(config, { token_version: 'storybook' });
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (method === 'get' && path === '/api/cms/config') {
|
|
65
|
+
return respond(config, { data: mockCmsConfig(params.key) });
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (method === 'get' && path.match(/^\/api\/cms\/post\/\d+\/authors$/)) {
|
|
69
|
+
return respond(config, { data: mockCreators });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (method === 'get' && path.match(/^\/api\/cms\/post\/collection\/\d+$/)) {
|
|
73
|
+
return respond(config, { data: mockCollection });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (method === 'get' && path.match(/^\/api\/cms\/user\/\d+\/info$/)) {
|
|
77
|
+
return respond(config, { data: mockUserInfo });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (method === 'get' && path.match(/^\/api\/cms\/user\/honor\/\d+\/using$/)) {
|
|
81
|
+
return respond(config, { data: mockHonor });
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (method === 'get' && path === '/api/cms/user/search') {
|
|
85
|
+
return respond(config, { data: mockSearchUser });
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (method === 'get' && path.match(/^\/api\/cms\/posts\/user\/\d+\/latest$/)) {
|
|
89
|
+
return respond(config, { data: { list: mockUserPosts } });
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (method === 'get' && path === '/api/cms/user/decoration') {
|
|
93
|
+
return respond(config, { data: [] });
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (method === 'get' && path === '/api/cms/account/permission/i') {
|
|
97
|
+
return respond(config, { data: { permission: [{ action: 'manage_boxcoin_bbs' }] } });
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (method === 'get' && path.match(/^\/api\/next2\/user\/\d+\/medals$/)) {
|
|
101
|
+
return respond(config, { data: mockMedals });
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (method === 'get' && path === '/api/team/relation/public') {
|
|
105
|
+
return respond(config, { data: mockTeams });
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (method === 'get' && path.match(/^\/api\/next2\/rss\/overview\/author\/\d+$/)) {
|
|
109
|
+
return respond(config, { data: { total: 128, subscribed: false } });
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (method === 'get' && path.match(/^\/api\/inspire\/article\/.+\/boxcoin\/limit$/)) {
|
|
113
|
+
return respond(config, { data: mockBoxcoinConfig });
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (method === 'get' && path.match(/^\/api\/inspire\/article\/.+\/history$/)) {
|
|
117
|
+
return respond(config, { data: mockBoxcoinRecords });
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (method === 'get' && path.match(/^\/api\/next2\/comment\/.+\/i-am-author$/)) {
|
|
121
|
+
return respond(config, mockCommentPower);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (method === 'get' && path.match(/^\/api\/next2\/comment\/.+\/comment\/page\/\d+$/)) {
|
|
125
|
+
return respond(config, mockCommentPage);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (method === 'get' && path.match(/^\/api\/next2\/comment\/.+\/comment\/\d+\/reply\/page\/\d+$/)) {
|
|
129
|
+
return respond(config, mockCommentPage);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (method === 'get' && path.match(/^\/api\/next2\/userdata\/commit-history\/content-meta\/\d+\/commit\/history$/)) {
|
|
133
|
+
return respond(config, {
|
|
134
|
+
data: {
|
|
135
|
+
list: mockCommitHistories.map(({ content, ...item }) => item),
|
|
136
|
+
page: {
|
|
137
|
+
total: mockCommitHistories.length,
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (method === 'get' && path.match(/^\/api\/next2\/userdata\/commit-history\/content-meta\/\d+\/commit\/by-hash\/.+$/)) {
|
|
144
|
+
const hash = path.split('/').pop();
|
|
145
|
+
const matched = mockCommitHistories.find((item) => item.commit_hash === hash) || mockCommitHistories[0];
|
|
146
|
+
return respond(config, {
|
|
147
|
+
data: {
|
|
148
|
+
content: matched?.content || '',
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (['post', 'put', 'delete'].includes(method) && path.startsWith('/api/next2/comment/')) {
|
|
154
|
+
return respond(config, { code: 0, data: {} });
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (['post', 'delete'].includes(method) && path.startsWith('/api/next2/rss/')) {
|
|
158
|
+
return respond(config, { code: 0, data: { subscribed: method === 'post' } });
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (['post', 'delete', 'get'].includes(method) && path.startsWith('/api/article/favorites/')) {
|
|
162
|
+
return respond(config, { code: 0, data: { id: 1, totalFavorites: 12 } });
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (method === 'get' && path === '/api/vip/i') {
|
|
166
|
+
return respond(config, {
|
|
167
|
+
data: {
|
|
168
|
+
was_vip: 0,
|
|
169
|
+
expire_date: '1970-02-02T16:00:00.000Z',
|
|
170
|
+
total_day: 0,
|
|
171
|
+
was_pro: 0,
|
|
172
|
+
pro_expire_date: '1970-02-02T16:00:00.000Z',
|
|
173
|
+
pro_total_day: 0,
|
|
174
|
+
rename_card_count: 0,
|
|
175
|
+
had_renamed: 0,
|
|
176
|
+
namespace_card_count: 0,
|
|
177
|
+
box_coin: 300,
|
|
178
|
+
points: 16800,
|
|
179
|
+
experience: 16800,
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (method === 'post' && path === '/api/next2/userdata/watch-later/item') {
|
|
185
|
+
return respond(config, { code: 0, data: {} });
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { resolveAdapter };
|
package/README.md
CHANGED
|
@@ -25,10 +25,13 @@
|
|
|
25
25
|
- PostHeader 创作信息
|
|
26
26
|
- Creators 联合创作
|
|
27
27
|
- Collection 小册
|
|
28
|
-
- Article 文章内容
|
|
29
28
|
- Thx 交互组件
|
|
30
29
|
- SimpleThx 交互组件简化版(仅PVP栏目使用,需要手动引入)
|
|
31
30
|
- Comment 评论
|
|
31
|
+
- RightAffix 固钉
|
|
32
|
+
- PostGuide 快速跳转至上下篇
|
|
33
|
+
- PostVersion 修改历史
|
|
34
|
+
- PostCollection 关联小册
|
|
32
35
|
|
|
33
36
|
### 筛选模块 list
|
|
34
37
|
|
|
@@ -43,21 +46,5 @@
|
|
|
43
46
|
- versionBy 版本筛选
|
|
44
47
|
- zlpBy 资料片筛选
|
|
45
48
|
|
|
46
|
-
###
|
|
47
|
-
|
|
48
|
-
一般用于文章详情的左侧边栏,个人主页等
|
|
49
|
-
|
|
50
|
-
- Avatar 头像
|
|
51
|
-
- AuthorFans 粉丝榜
|
|
52
|
-
- AuthorFollow 关注用户(区分rss,此处用户更新不会收到消息)
|
|
53
|
-
- AuthorGift 打赏用户
|
|
54
|
-
- AuthorHonor 用户称号
|
|
55
|
-
- AuthorInfo 用户基础信息
|
|
56
|
-
- AuthorLink 用户绑定平台账号(微博,github,直播间)
|
|
57
|
-
- AuthorMedals 用户勋章
|
|
58
|
-
- AuthorPosts 用户作品
|
|
59
|
-
- AuthorRss 订阅用户
|
|
60
|
-
- AuthorTeams 所在团队
|
|
61
|
-
- UserPop 搜索用户弹窗
|
|
62
|
-
|
|
63
|
-
|
|
49
|
+
### 其他
|
|
50
|
+
- UserPop 搜索用户弹窗
|
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
/* assets/css/bread/admin.less */
|
|
44
44
|
margin-left: 10px;;
|
|
45
45
|
}
|
|
46
|
+
.m-status-op {
|
|
47
|
+
.flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
}
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
.c-admin-highlight-checkbox {
|
|
@@ -64,7 +68,7 @@
|
|
|
64
68
|
/* assets/css/bread/admin.less */
|
|
65
69
|
.u-banner {
|
|
66
70
|
/* assets/css/bread/admin.less */
|
|
67
|
-
.mt(
|
|
71
|
+
.mt(10px);
|
|
68
72
|
}
|
|
69
73
|
.u-btn {
|
|
70
74
|
/* assets/css/bread/admin.less */
|
|
@@ -82,6 +86,20 @@
|
|
|
82
86
|
box-sizing: border-box;
|
|
83
87
|
}
|
|
84
88
|
overflow: hidden;
|
|
89
|
+
|
|
90
|
+
background-color: #fbfdff;
|
|
91
|
+
border: 1px dashed #c0ccda;
|
|
92
|
+
border-radius: 6px;
|
|
93
|
+
box-sizing: border-box;
|
|
94
|
+
width: 148px;
|
|
95
|
+
height: 148px;
|
|
96
|
+
line-height: 146px;
|
|
97
|
+
vertical-align: top;
|
|
98
|
+
|
|
99
|
+
&:hover {
|
|
100
|
+
/* assets/css/bread/admin.less */
|
|
101
|
+
border-color: #409eff;
|
|
102
|
+
}
|
|
85
103
|
}
|
|
86
104
|
|
|
87
105
|
.c-admin-info {
|
|
@@ -116,7 +134,7 @@
|
|
|
116
134
|
}
|
|
117
135
|
.el-select {
|
|
118
136
|
/* assets/css/bread/admin.less */
|
|
119
|
-
.el-
|
|
137
|
+
.el-select__wrapper {
|
|
120
138
|
/* assets/css/bread/admin.less */
|
|
121
139
|
border-top-left-radius: 0;
|
|
122
140
|
border-bottom-left-radius: 0;
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
/* assets/css/bread/breadcrumb.less */
|
|
42
42
|
.u-title {
|
|
43
43
|
/* assets/css/bread/breadcrumb.less */
|
|
44
|
-
color:
|
|
44
|
+
color: var(--el-color-primary);
|
|
45
45
|
}
|
|
46
46
|
.u-channel-logo svg {
|
|
47
47
|
/* assets/css/bread/breadcrumb.less */
|
|
48
|
-
fill:
|
|
48
|
+
fill: var(--el-color-primary);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -122,6 +122,9 @@
|
|
|
122
122
|
/* assets/css/bread/breadcrumb.less */
|
|
123
123
|
.pa;
|
|
124
124
|
.rt(10px);
|
|
125
|
+
.flex(y);gap:10px;
|
|
126
|
+
|
|
127
|
+
.el-button{margin:0 !important;}
|
|
125
128
|
}
|
|
126
129
|
}
|
|
127
130
|
.c-breadcrumb.isOverlay {
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
/* assets/css/interact/like2.less */
|
|
13
13
|
color: #888;
|
|
14
14
|
.ml(10px);
|
|
15
|
-
.pr;
|
|
16
|
-
top: 4px;
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
&.disabled {
|
|
@@ -21,4 +19,9 @@
|
|
|
21
19
|
.tm(0.5);
|
|
22
20
|
cursor: default;
|
|
23
21
|
}
|
|
22
|
+
|
|
23
|
+
.w-like2__trigger {
|
|
24
|
+
.flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
}
|
|
24
27
|
}
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
i,
|
|
16
16
|
svg {
|
|
17
17
|
/* assets/css/single/author.less */
|
|
18
|
-
.size(
|
|
18
|
+
.size(18px);
|
|
19
19
|
.mr(5px);
|
|
20
20
|
}
|
|
21
21
|
span {
|
|
22
22
|
/* assets/css/single/author.less */
|
|
23
23
|
.fz(12px);
|
|
24
|
-
|
|
24
|
+
font-weight: 500;
|
|
25
25
|
}
|
|
26
26
|
// border-bottom: 1px solid @border;
|
|
27
27
|
}
|
|
@@ -85,6 +85,11 @@
|
|
|
85
85
|
.mt(5px);
|
|
86
86
|
display: flex;
|
|
87
87
|
align-items: center;
|
|
88
|
+
gap:8px;
|
|
89
|
+
|
|
90
|
+
.el-button{
|
|
91
|
+
margin:0;
|
|
92
|
+
}
|
|
88
93
|
}
|
|
89
94
|
.u-links {
|
|
90
95
|
/* assets/css/single/author.less */
|
|
@@ -92,16 +97,16 @@
|
|
|
92
97
|
}
|
|
93
98
|
.u-block {
|
|
94
99
|
/* assets/css/single/author.less */
|
|
95
|
-
.mt(
|
|
100
|
+
.mt(22px);
|
|
96
101
|
}
|
|
97
102
|
|
|
98
|
-
.u-btn {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
103
|
+
// .u-btn {
|
|
104
|
+
// /* assets/css/single/author.less */
|
|
105
|
+
// &:hover {
|
|
106
|
+
// /* assets/css/single/author.less */
|
|
107
|
+
// color: @primary;
|
|
108
|
+
// }
|
|
109
|
+
// }
|
|
105
110
|
}
|
|
106
111
|
|
|
107
112
|
.c-sidebar-left .c-author {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
.w-thx {
|
|
2
2
|
/* assets/css/single/thx.less */
|
|
3
|
-
.w-like2,
|
|
4
|
-
.w-fav2,
|
|
5
|
-
.w-boxcoin-user,
|
|
6
|
-
.w-share2,
|
|
7
|
-
.w-rss,
|
|
8
|
-
.w-boxcoin-admin {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
3
|
+
// .w-like2,
|
|
4
|
+
// .w-fav2,
|
|
5
|
+
// .w-boxcoin-user,
|
|
6
|
+
// .w-share2,
|
|
7
|
+
// .w-rss,
|
|
8
|
+
// .w-boxcoin-admin {
|
|
9
|
+
// /* assets/css/single/thx.less */
|
|
10
|
+
// .mr(20px);
|
|
11
|
+
// }
|
|
12
12
|
.x;
|
|
13
13
|
|
|
14
14
|
.u-record-icon {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
.flex;
|
|
27
27
|
align-items: center;
|
|
28
28
|
justify-content: center;
|
|
29
|
+
gap: 20px
|
|
29
30
|
}
|
|
30
31
|
.w-thx-copyright {
|
|
31
32
|
/* assets/css/single/thx.less */
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
|
|
68
69
|
.el-dialog__body {
|
|
69
70
|
/* assets/css/single/thx.less */
|
|
70
|
-
padding: 10px 20px;
|
|
71
|
+
//padding: 10px 20px;
|
|
71
72
|
|
|
72
73
|
.fz(14px,2);
|
|
73
74
|
|
|
@@ -148,6 +149,9 @@
|
|
|
148
149
|
}
|
|
149
150
|
|
|
150
151
|
.w-boxcoin-records-list {
|
|
152
|
+
|
|
153
|
+
--el-color-primary: @primary;
|
|
154
|
+
|
|
151
155
|
/* assets/css/single/thx.less */
|
|
152
156
|
max-width: 960px;
|
|
153
157
|
border: 1px solid #eee;
|
|
@@ -172,6 +176,10 @@
|
|
|
172
176
|
}
|
|
173
177
|
display: flex;
|
|
174
178
|
white-space: nowrap;
|
|
179
|
+
|
|
180
|
+
a {
|
|
181
|
+
color: var(--el-color-primary);
|
|
182
|
+
}
|
|
175
183
|
}
|
|
176
184
|
.u-meta {
|
|
177
185
|
/* assets/css/single/thx.less */
|
|
@@ -183,10 +191,12 @@
|
|
|
183
191
|
.w(40px);
|
|
184
192
|
.db;
|
|
185
193
|
padding-right: 10px;
|
|
194
|
+
.flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
justify-content: center;
|
|
186
197
|
svg {
|
|
187
198
|
/* assets/css/single/thx.less */
|
|
188
199
|
.size(24px);
|
|
189
|
-
.mt(4px);
|
|
190
200
|
.db;
|
|
191
201
|
.auto(x);
|
|
192
202
|
}
|
|
@@ -196,12 +206,19 @@
|
|
|
196
206
|
/* assets/css/single/thx.less */
|
|
197
207
|
.w(120px);
|
|
198
208
|
.nobreak;
|
|
209
|
+
.flex;
|
|
210
|
+
align-items: center;
|
|
199
211
|
&:hover {
|
|
200
212
|
/* assets/css/single/thx.less */
|
|
201
213
|
text-decoration: underline;
|
|
202
214
|
}
|
|
203
215
|
.mr(20px);
|
|
204
216
|
}
|
|
217
|
+
.u-default {
|
|
218
|
+
&:hover{
|
|
219
|
+
text-decoration: none;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
205
222
|
.u-user-avatar {
|
|
206
223
|
/* assets/css/single/thx.less */
|
|
207
224
|
.y;
|
|
@@ -229,6 +246,7 @@
|
|
|
229
246
|
/* assets/css/single/thx.less */
|
|
230
247
|
.nobreak;
|
|
231
248
|
.w(280px);
|
|
249
|
+
color:@color;
|
|
232
250
|
}
|
|
233
251
|
.u-time {
|
|
234
252
|
/* assets/css/single/thx.less */
|
|
@@ -253,6 +271,11 @@
|
|
|
253
271
|
margin-left: 5px;
|
|
254
272
|
color: #09f;
|
|
255
273
|
}
|
|
274
|
+
|
|
275
|
+
}
|
|
276
|
+
.w-boxcoin-records-pages {
|
|
277
|
+
justify-content: center;
|
|
278
|
+
padding-top: 2px;
|
|
256
279
|
}
|
|
257
280
|
|
|
258
281
|
@media screen and (max-width: @phone) {
|