From 6911d61025b8e8e15c66eccfaab5db42e28e5bd5 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sat, 20 Dec 2025 00:36:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20=E5=90=88=E6=88=90=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=85=B7=E6=9C=89=E6=9D=90=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/styles/utils.scss | 19 +++ src/components/pageBag/pb-materialItem.vue | 1 + .../pageBag/pbo-convert-material.vue | 135 ++++++++++++++++++ src/components/pageBag/pbo-convert.vue | 57 ++++++++ src/components/pageBag/pbo-material.vue | 33 ++--- src/pages/common/PageBagMaterial.vue | 2 +- src/types/App/Material.d.ts | 90 ++++++------ 7 files changed, 268 insertions(+), 69 deletions(-) create mode 100644 src/assets/styles/utils.scss create mode 100644 src/components/pageBag/pbo-convert-material.vue create mode 100644 src/components/pageBag/pbo-convert.vue diff --git a/src/assets/styles/utils.scss b/src/assets/styles/utils.scss new file mode 100644 index 00000000..a2a29d59 --- /dev/null +++ b/src/assets/styles/utils.scss @@ -0,0 +1,19 @@ +/** + * 一些功能集合 + * @since Beta v0.9.0 + */ +@use "sass:map"; +/** 根据传入星级返回颜色 */ +@function get-od-star-color($star:0) { + $star-color-map: ( + 1:#abb2bfff, + 2:#98c379ff, + 3:#61afefff, + 4:#c678ddff, + 5:#d19a66ff + ); + @if map.has-key($star-color-map, $star) { + @return map.get($star-color-map, $star); + } + @return #e06c75ff; +} diff --git a/src/components/pageBag/pb-materialItem.vue b/src/components/pageBag/pb-materialItem.vue index 80d74207..9c78b2b1 100644 --- a/src/components/pageBag/pb-materialItem.vue +++ b/src/components/pageBag/pb-materialItem.vue @@ -63,6 +63,7 @@ $pb-mi-base: v-bind(idColor); /* stylelint-disable-line value-keyword-case */ display: flex; overflow: hidden; height: 48px; + box-sizing: border-box; align-items: center; justify-content: flex-start; padding-right: 8px; diff --git a/src/components/pageBag/pbo-convert-material.vue b/src/components/pageBag/pbo-convert-material.vue new file mode 100644 index 00000000..00ffd27a --- /dev/null +++ b/src/components/pageBag/pbo-convert-material.vue @@ -0,0 +1,135 @@ + + + + diff --git a/src/components/pageBag/pbo-convert.vue b/src/components/pageBag/pbo-convert.vue new file mode 100644 index 00000000..14d2abd8 --- /dev/null +++ b/src/components/pageBag/pbo-convert.vue @@ -0,0 +1,57 @@ + + + + diff --git a/src/components/pageBag/pbo-material.vue b/src/components/pageBag/pbo-material.vue index 5b80c121..9d129612 100644 --- a/src/components/pageBag/pbo-material.vue +++ b/src/components/pageBag/pbo-material.vue @@ -11,10 +11,9 @@
bg icon - {{ dbInfo.count }}
{{ props.data.info.name }}
-
{{ props.data.info.type }}
+
持有{{ dbInfo.count }}·{{ props.data.info.type }}
@@ -22,10 +21,11 @@
-
@@ -53,7 +53,6 @@ import TOverlay from "@comp/app/t-overlay.vue"; import showDialog from "@comp/func/dialog.js"; import showSnackbar from "@comp/func/snackbar.js"; -import TwoConvert from "@comp/pageWiki/two-convert.vue"; import TwoSource from "@comp/pageWiki/two-source.vue"; import TSUserBagMaterial from "@Sqlm/userBagMaterial.js"; import { getVersion } from "@tauri-apps/api/app"; @@ -61,9 +60,11 @@ import { generateShareImg } from "@utils/TGShare.js"; import { parseHtmlText, timestampToDate } from "@utils/toolFunc.js"; import { onMounted, ref, shallowRef, watch } from "vue"; +import PboConvert from "./pbo-convert.vue"; + import type { MaterialInfo } from "@/pages/common/PageBagMaterial.vue"; -type PboMaterialProps = { data: MaterialInfo; uid: string }; +type PboMaterialProps = { data: MaterialInfo; uid: number }; type PboMaterialEmits = (e: "updateDB", v: MaterialInfo) => void; const props = defineProps(); @@ -141,7 +142,7 @@ async function tryEdit(): Promise { flex-direction: column; padding: 10px; border-radius: 10px; - background: var(--box-bg-1); + background: var(--app-page-bg); overflow-y: auto; row-gap: 10px; } @@ -193,20 +194,6 @@ async function tryEdit(): Promise { width: 56px; height: 56px; } - - .cnt { - @include github-styles.github-tag-dark-gen(#ffcd0c); - - position: absolute; - bottom: -4px; - left: 40px; - width: fit-content; - padding: 0 4px; - border-radius: 12px; - backdrop-filter: blur(5px); - font-size: 10px; - text-align: center; - } } .pbom-name { @@ -234,8 +221,8 @@ async function tryEdit(): Promise { .pbom-convert { padding: 8px; border-radius: 4px; - background: var(--box-bg-2); - color: var(--box-text-2); + background: var(--box-bg-1); + color: var(--box-text-1); } .pbom-desc { @@ -268,7 +255,7 @@ async function tryEdit(): Promise { justify-content: flex-start; padding: 8px; border-radius: 4px; - background: var(--box-bg-2); + background: var(--box-bg-1); row-gap: 8px; } diff --git a/src/pages/common/PageBagMaterial.vue b/src/pages/common/PageBagMaterial.vue index d4862563..c9a6653f 100644 --- a/src/pages/common/PageBagMaterial.vue +++ b/src/pages/common/PageBagMaterial.vue @@ -84,7 +84,7 @@ v-if="curMaterial" v-model="showOverlay" :data="curMaterial" - :uid="`${curUid}`" + :uid="curUid" @updateDB="handleUpdate" >