refactor: clean up codebase and add new features

Replace SCSS variable usages with explicit pixel/hex values for consistent styling across all components
Fix broken template syntax including missing class spaces and incorrect closing tags
Migrate constant and API imports to centralized @/constants and @/api modules
Add new utility classes: IdUtils, CallbackUtils, and TimerUtils
Add new chat conversation API endpoints for recent conversations and message lists
Add new Discovery page components (FindTabs, QuickQuestions, CardSwiper) and their styles
Update app store config to use environment variables for base API and WebSocket URLs
Add new selected tab icon assets
This commit is contained in:
duanshuwen
2026-05-26 23:50:37 +08:00
parent c977c485ef
commit 1a5a2ae6a9
101 changed files with 1488 additions and 745 deletions

View File

@@ -1,42 +1,27 @@
<template>
<div class="card border-box pb-12 relative mt-12">
<div
class="card-item absolute overflow-hidden"
v-for="(card, index) in list"
:key="card.__uid"
:style="[itemStyle(index, card), transformStyle(index, card)]"
@touchstart.stop="touchStart($event, index)"
@touchmove.stop.prevent="touchMove($event, index)"
@touchend.stop="touchEnd(index)"
@touchcancel.stop="touchCancel(index)"
@transitionend="onTransitionEnd(index)"
>
<div class="card-item absolute overflow-hidden" v-for="(card, index) in list" :key="card.__uid"
:style="[itemStyle(index, card), transformStyle(index, card)]" @touchstart.stop="touchStart($event, index)"
@touchmove.stop.prevent="touchMove($event, index)" @touchend.stop="touchEnd(index)"
@touchcancel.stop="touchCancel(index)" @transitionend="onTransitionEnd(index)">
<div class="inner-card bg-white">
<!-- 商品大图部分自适应剩余空间 -->
<div class="goods-image-wrapper relative">
<img
class="w-full h-full"
:src="card.commodityPhoto"
mode="aspectFill"
/>
<img class="w-full h-full" :src="card.commodityPhoto" mode="aspectFill" />
</div>
<!-- 底部价格 + 购买按钮 -->
<div
class="card-footer border-box p-12 flex flex-justify-between flex-items-center"
>
<div class="card-footer border-box p-12 flex flex-justify-between flex-items-center">
<div class="border-box">
<div class="font-size-14 font-500 color-333 ellipsis-1">
{{ card.commodityName }}
</div>
<div class="card-price-row color-333">
<spanclass="font-size-11"></text>
<spanclass="font-size-24 font-bold">
<span class="font-size-11"></span>
<span class="font-size-24 font-bold">
{{ card.specificationPrice }}
</text>
<spanclass="font-size-11 ml-2" v-if="card.stockUnitLabel"
>/{{ card.stockUnitLabel }}</text
>
</span>
<span class="font-size-11 ml-2" v-if="card.stockUnitLabel">/{{ card.stockUnitLabel }}</span>
</div>
</div>