diff --git a/404.php b/404.php index 12bf0c8c..b4376599 100644 --- a/404.php +++ b/404.php @@ -43,7 +43,7 @@ $top_cats = get_terms([

404

diff --git a/archive-resources.php b/archive-resources.php index fc37256f..6be35693 100644 --- a/archive-resources.php +++ b/archive-resources.php @@ -152,7 +152,7 @@ $has_filter = $current_orderby !== 'date' || $current_price !== 'all' || $price_ - + diff --git a/assets/admin/src/api/modules/page-display.js b/assets/admin/src/api/modules/page-display.js index 998b912e..ef29ca6e 100644 --- a/assets/admin/src/api/modules/page-display.js +++ b/assets/admin/src/api/modules/page-display.js @@ -9,22 +9,20 @@ export const pageDisplayApiMethods = { getCategoryRecommendSettings() { return this.request('/settings/category-recommend') }, saveCategoryRecommendSettings(data) { return this.request('/settings/category-recommend', { method: 'POST', body: JSON.stringify(data) }) }, - getCategories() { return this.request('/categories') }, + getCategories(taxonomy = 'category') { + const value = Array.isArray(taxonomy) ? taxonomy.join(',') : taxonomy + return this.request(`/categories?taxonomy=${encodeURIComponent(value || 'category')}`) + }, updateCategoryMeta(id, data) { return this.request(`/categories/${id}/meta`, { method: 'POST', body: JSON.stringify(data) }) }, searchUsers(search = '', number = 20) { return this.request(`/users/search?search=${encodeURIComponent(search)}&number=${number}`) }, - getBanners(kind = 'hero') { return this.request(`/banners?kind=${encodeURIComponent(kind)}`) }, + getBanners() { return this.request('/banners') }, createBanner(data) { return this.request('/banners', { method: 'POST', body: JSON.stringify(data) }) }, updateBanner(id, data) { return this.request(`/banners/${id}`, { method: 'PUT', body: JSON.stringify(data) }) }, deleteBanner(id) { return this.request(`/banners/${id}`, { method: 'DELETE' }) }, - getHeroes() { return this.getBanners('hero') }, - createHero(data) { return this.createBanner({ ...data, kind: 'hero' }) }, - updateHero(id, data) { return this.updateBanner(id, { ...data, kind: 'hero' }) }, - deleteHero(id) { return this.deleteBanner(id) }, - - getHomepageBanners() { return this.getBanners('banner') }, - createHomepageBanner(data) { return this.createBanner({ ...data, kind: 'banner' }) }, - updateHomepageBanner(id, data) { return this.updateBanner(id, { ...data, kind: 'banner' }) }, + getHomepageBanners() { return this.getBanners() }, + createHomepageBanner(data) { return this.createBanner(data) }, + updateHomepageBanner(id, data) { return this.updateBanner(id, data) }, deleteHomepageBanner(id) { return this.deleteBanner(id) }, } diff --git a/assets/admin/src/components/DeferredPage.vue b/assets/admin/src/components/DeferredPage.vue index 10f5e1d6..0bbbe289 100644 --- a/assets/admin/src/components/DeferredPage.vue +++ b/assets/admin/src/components/DeferredPage.vue @@ -25,7 +25,7 @@ :key="i" class="aksrt-deferred-page__feature" > - + {{ feat }}
@@ -63,7 +63,7 @@ const route = useRoute() /** Merge direct props with route meta deferredProps */ const resolvedTitle = computed(() => props.title || route.meta?.deferredProps?.title || '功能开发中') const resolvedDesc = computed(() => props.description || route.meta?.deferredProps?.description || '此功能正在规划开发中,将在后续版本上线。') -const resolvedIcon = computed(() => props.icon || route.meta?.deferredProps?.icon || 'fas fa-rocket') +const resolvedIcon = computed(() => props.icon || route.meta?.deferredProps?.icon || 'fa fas fa-rocket') const resolvedStatus = computed(() => props.status || route.meta?.deferredProps?.status || 'deferred') const resolvedPhase = computed(() => props.phase || route.meta?.deferredProps?.phase || '') const resolvedDependsOn = computed(() => { diff --git a/assets/admin/src/components/EmptyState.vue b/assets/admin/src/components/EmptyState.vue index f092d1c4..b83bc2f0 100644 --- a/assets/admin/src/components/EmptyState.vue +++ b/assets/admin/src/components/EmptyState.vue @@ -12,7 +12,7 @@ defineProps({ title: { type: String, default: '功能开发中' }, desc: { type: String, default: '此功能模块正在规划中,后续版本将逐步开放。' }, - icon: { type: String, default: 'fas fa-hourglass-half' }, + icon: { type: String, default: 'fa fas fa-hourglass-half' }, }) diff --git a/assets/admin/src/components/form/AksArrayTable.vue b/assets/admin/src/components/form/AksArrayTable.vue index d60de64f..bfd35b6a 100644 --- a/assets/admin/src/components/form/AksArrayTable.vue +++ b/assets/admin/src/components/form/AksArrayTable.vue @@ -15,7 +15,7 @@ class="aksrt-array-table__add" @click="addItem" > - + {{ addText || '添加行' }} @@ -105,13 +105,13 @@ const tableColumns = computed(() => { render(row, rowIndex) { return h('div', { style: 'display:flex;gap:2px' }, [ rowIndex > 0 ? h(NButton, { size: 'tiny', quaternary: true, onClick: () => moveUp(rowIndex) }, { - default: () => h(FaIcon, { icon: 'fas fa-arrow-up', size: 12 }), + default: () => h(FaIcon, { icon: 'fa fas fa-arrow-up', size: 12 }), }) : null, rowIndex < (props.modelValue?.length || 0) - 1 ? h(NButton, { size: 'tiny', quaternary: true, onClick: () => moveDown(rowIndex) }, { - default: () => h(FaIcon, { icon: 'fas fa-arrow-down', size: 12 }), + default: () => h(FaIcon, { icon: 'fa fas fa-arrow-down', size: 12 }), }) : null, h(NButton, { size: 'tiny', quaternary: true, type: 'error', onClick: () => removeItem(rowIndex) }, { - default: () => h(FaIcon, { icon: 'fas fa-trash', size: 12 }), + default: () => h(FaIcon, { icon: 'fa fas fa-trash-alt', size: 12 }), }), ]) }, diff --git a/assets/admin/src/components/form/AksField.vue b/assets/admin/src/components/form/AksField.vue index cdacf063..3318d8b7 100644 --- a/assets/admin/src/components/form/AksField.vue +++ b/assets/admin/src/components/form/AksField.vue @@ -7,7 +7,7 @@ {{ schema.help }} @@ -353,7 +353,7 @@ >
- +
{{ opt.label }} @@ -386,7 +386,7 @@ :disabled="schema.disabled" @click="removeRepeaterItem(index)" > - +
@@ -406,7 +406,7 @@ :disabled="schema.disabled" @click="addRepeaterItem" > - + {{ schema.addText || '添加一项' }}
@@ -427,7 +427,7 @@ :disabled="schema.disabled" @click="moveRepeaterItem(index, -1)" > - + - + - + 编辑 - + 删除 @@ -467,7 +467,7 @@ v-html="getRepeaterPreviewCustomIcon(item)" />