diff --git a/src/components/Common/TableDialog.vue b/src/components/Common/TableDialog.vue new file mode 100644 index 0000000..4e3a72c --- /dev/null +++ b/src/components/Common/TableDialog.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue index 62ca76a..e85345c 100644 --- a/src/components/Pagination/index.vue +++ b/src/components/Pagination/index.vue @@ -74,7 +74,8 @@ const pageSize = computed({ }); function handleSizeChange(val: number) { - emit('pagination', { page: currentPage, limit: val }); + emit('update:page', 1); + emit('pagination', { page: 1, limit: val }); if (props.autoScroll) { scrollTo(0, 800); } diff --git a/src/components/Store/StoreAccountDialog.vue b/src/components/Store/StoreAccountDialog.vue new file mode 100644 index 0000000..0945b5d --- /dev/null +++ b/src/components/Store/StoreAccountDialog.vue @@ -0,0 +1,147 @@ + + + diff --git a/src/components/User/UserArchiveDialog.vue b/src/components/User/UserArchiveDialog.vue new file mode 100644 index 0000000..c0dc898 --- /dev/null +++ b/src/components/User/UserArchiveDialog.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/components/User/UserAuthStoreDialog.vue b/src/components/User/UserAuthStoreDialog.vue new file mode 100644 index 0000000..c31ffce --- /dev/null +++ b/src/components/User/UserAuthStoreDialog.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue index 98e5ce8..1de36c0 100644 --- a/src/layout/components/TagsView/ScrollPane.vue +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -38,19 +38,23 @@ onMounted(() => { // scrollWrapper.value.addEventListener('scroll', emitScroll, true); }); onBeforeUnmount(() => { - scrollWrapper.value.removeEventListener('scroll', emitScroll); + scrollWrapper.value?.removeEventListener('scroll', emitScroll); }); function handleScroll(e: WheelEvent) { + const wrap = scrollWrapper.value; + if (!wrap) return; const eventDelta = (e as any).wheelDelta || -e.deltaY * 40; - scrollWrapper.value.scrollLeft = - scrollWrapper.value.scrollLeft + eventDelta / 4; + wrap.scrollLeft = wrap.scrollLeft + eventDelta / 4; } function moveToTarget(currentTag: TagView) { - const $container = proxy.$refs.scrollContainer.$el; - const $containerWidth = $container.offsetWidth; const $scrollWrapper = scrollWrapper.value; + if (!$scrollWrapper) return; + + const $container = proxy.$refs.scrollContainer?.$el; + if (!$container) return; + const $containerWidth = $container.offsetWidth; let firstTag = null; let lastTag = null; diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue index e7efed8..39053cb 100644 --- a/src/layout/components/TagsView/index.vue +++ b/src/layout/components/TagsView/index.vue @@ -160,7 +160,7 @@ function moveToCurrentTag() { nextTick(() => { for (const r of visitedViews.value) { if (r.path === route.path) { - scrollPaneRef.value.moveToTarget(r); + scrollPaneRef.value?.moveToTarget(r); // when query is different then update if (r.fullPath !== route.fullPath) { tagsView.updateVisitedView(route); diff --git a/src/styles/element-plus.scss b/src/styles/element-plus.scss index ac96595..dbe38db 100644 --- a/src/styles/element-plus.scss +++ b/src/styles/element-plus.scss @@ -50,39 +50,29 @@ } -// fix: 内核较旧的浏览器不支持:not(selector list) -.el-button:not(.is-text), -.el-button:not(.is-link), -.el-button:not(.el-button--text) { +// 仅对「实心按钮」补边框/背景;text、link 需同时排除(逗号分隔的 :not 会误伤 link) +.el-button:not(.is-text):not(.is-link):not(.el-button--text) { background-color: var(--el-button-bg-color); border: var(--el-border); border-color: var(--el-button-border-color) } -.el-button:not(.is-text):focus, -.el-button:not(.is-link):focus, -.el-button:not(.el-button--text):focus, -.el-button:not(.is-text):hover, -.el-button:not(.is-link):hover, -.el-button:not(.el-button--text):hover { +.el-button:not(.is-text):not(.is-link):not(.el-button--text):focus, +.el-button:not(.is-text):not(.is-link):not(.el-button--text):hover { color: var(--el-button-hover-text-color); border-color: var(--el-button-hover-border-color); background-color: var(--el-button-hover-bg-color); outline: 0 } -.el-button:not(.is-text):active, -.el-button:not(.is-link):active, -.el-button:not(.el-button--text):active { +.el-button:not(.is-text):not(.is-link):not(.el-button--text):active { color: var(--el-button-active-text-color); border-color: var(--el-button-active-border-color); background-color: var(--el-button-active-bg-color); outline: 0 } -.el-button:not(.is-text):focus-visible, -.el-button:not(.is-link):focus-visible, -.el-button:not(.el-button--text):focus-visible { +.el-button:not(.is-text):not(.is-link):not(.el-button--text):focus-visible { border-color: transparent; outline: 2px solid var(--el-button-border-color); outline-offset: 1px diff --git a/src/views/store/index.vue b/src/views/store/index.vue deleted file mode 100644 index f3c676d..0000000 --- a/src/views/store/index.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - - - diff --git a/src/views/store/storeAccountList.vue b/src/views/store/storeAccountList.vue index 7ed745b..3aebbcc 100644 --- a/src/views/store/storeAccountList.vue +++ b/src/views/store/storeAccountList.vue @@ -4,11 +4,11 @@ + @keyup.enter="loadList" /> - 搜索 - 添加 + 搜索 + 添加 重置 @@ -23,81 +23,76 @@ - + - + - - - - - - - - - - - - - - - - - - - - + + - - - - - + + + + + - - - - - - - - - - + + 搜索 + 重置 - + + + + + + + + + + + + \ No newline at end of file + +.op-links { + display: flex; + justify-content: center; + align-items: center; + gap: 8px; +} + +.image-slot { + display: inline-flex; + align-items: center; + justify-content: center; + width: 50px; + height: 50px; + font-size: 12px; + color: var(--el-text-color-placeholder); + background: var(--el-fill-color-light); +} + + + diff --git a/src/views/user/index.vue b/src/views/user/index.vue index b57c5ca..ed236dc 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -4,22 +4,20 @@ + @keyup.enter="loadList" /> - - 搜索 - - - 重置 - + 搜索 + 重置 - - - + + + diff --git a/src/views/user/userAnalysis.vue b/src/views/user/userAnalysis.vue new file mode 100644 index 0000000..662bf92 --- /dev/null +++ b/src/views/user/userAnalysis.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/user/userDetection.vue b/src/views/user/userDetection.vue index 7104386..702cfe4 100644 --- a/src/views/user/userDetection.vue +++ b/src/views/user/userDetection.vue @@ -4,258 +4,96 @@ - - - - - - + @keyup.enter="loadList" /> - - 搜索 - - - 重置 - + 搜索 + 重置 - + + + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/views/user/userQuestion.vue b/src/views/user/userQuestion.vue new file mode 100644 index 0000000..793a885 --- /dev/null +++ b/src/views/user/userQuestion.vue @@ -0,0 +1,124 @@ + + + + +