zjk
2026-07-10 7e08a783a6fe9826fc13127d58b9b82b19d08c8d
feat: 修改图片引入
6个文件已修改
95 ■■■■■ 已修改文件
components/StepProgress.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/admin/AdminShell.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/admin-more-actions/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/appointment-scan/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/index.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/StepProgress.vue
@@ -70,6 +70,8 @@
<script setup>
import { computed } from 'vue';
import stepArrowActiveImage from '../static/step-arrow-active.png';
import stepArrowInactiveImage from '../static/step-arrow-inactive.png';
const props = defineProps({
  currentStep: {
@@ -128,9 +130,9 @@
const getArrowSrc = (stepNum) => {
  if (stepNum < props.currentStep) {
    return '../../static/step-arrow-active.png';
    return stepArrowActiveImage;
  }
  return '../../static/step-arrow-inactive.png';
  return stepArrowInactiveImage;
};
</script>
components/admin/AdminShell.vue
@@ -4,12 +4,12 @@
    <view class="header-bar">
      <view class="title-zone">
        <image src="../../static/admin-home/PpVQg.png" class="title-icon" mode="aspectFit"></image>
        <image :src="titleIcon" class="title-icon" mode="aspectFit"></image>
        <text class="page-title">{{ title }}</text>
      </view>
      <view class="back-btn" @click="goHome">
        <image src="../../static/admin-home/Dgd7x.png" class="back-arrow" mode="aspectFit"></image>
        <image :src="backArrowIcon" class="back-arrow" mode="aspectFit"></image>
        <text class="back-btn-text">返回预约端</text>
      </view>
    </view>
@@ -25,21 +25,21 @@
    <view v-if="showBottomNav" class="bottom-nav">
      <view class="nav-item" :class="{ active: activeTab === 'home' }" @click="goAdminHome">
        <view class="nav-icon-box" :class="{ active: activeTab === 'home' }">
          <image src="../../static/admin-home/myhDj3.png" class="nav-icon" mode="aspectFit"></image>
          <image :src="homeNavIcon" class="nav-icon" mode="aspectFit"></image>
        </view>
        <text class="nav-text">首页</text>
      </view>
      <view class="nav-item" :class="{ active: activeTab === 'records' }" @click="goRecords">
        <view class="nav-icon-box" :class="{ active: activeTab === 'records' }">
          <image src="../../static/admin-home/v4oODO.png" class="nav-icon" mode="aspectFit"></image>
          <image :src="recordsNavIcon" class="nav-icon" mode="aspectFit"></image>
        </view>
        <text class="nav-text">历史记录</text>
      </view>
      <view class="nav-item" :class="{ active: activeTab === 'config' }" @click="goConfig">
        <view class="nav-icon-box" :class="{ active: activeTab === 'config' }">
          <image src="../../static/admin-home/iRGV0L.png" class="nav-icon" mode="aspectFit"></image>
          <image :src="configNavIcon" class="nav-icon" mode="aspectFit"></image>
        </view>
        <text class="nav-text">配置管理</text>
      </view>
@@ -48,6 +48,12 @@
</template>
<script setup>
import titleIcon from '../../static/admin-home/PpVQg.png';
import backArrowIcon from '../../static/admin-home/Dgd7x.png';
import homeNavIcon from '../../static/admin-home/myhDj3.png';
import recordsNavIcon from '../../static/admin-home/v4oODO.png';
import configNavIcon from '../../static/admin-home/iRGV0L.png';
const props = defineProps({
  title: {
    type: String,
pages/admin-more-actions/index.vue
@@ -6,24 +6,28 @@
        <view class="dialog-placeholder"></view>
        <text class="dialog-title">更多操作</text>
        <view class="dialog-close-btn" @click="goBack">
          <image src="../../static/admin-pages/pDMhJ.png" class="dialog-close" mode="aspectFit"></image>
          <image :src="dialogCloseIcon" class="dialog-close" mode="aspectFit"></image>
        </view>
      </view>
      <view class="action-item" @click="openUnregisterDialog">
        <view class="action-item-left">
          <view class="action-icon-box">
            <image src="../../static/admin-pages/uZNeV.png" class="action-icon" mode="aspectFit"></image>
            <image :src="logoutActionIcon" class="action-icon" mode="aspectFit"></image>
          </view>
          <text class="action-text">注销设备</text>
        </view>
        <image src="../../static/admin-pages/Bmn5y.png" class="action-arrow" mode="aspectFit"></image>
        <image :src="actionArrowIcon" class="action-arrow" mode="aspectFit"></image>
      </view>
    </view>
  </view>
</template>
<script setup>
import dialogCloseIcon from '../../static/admin-pages/pDMhJ.png';
import logoutActionIcon from '../../static/admin-pages/uZNeV.png';
import actionArrowIcon from '../../static/admin-pages/Bmn5y.png';
const goBack = () => {
  uni.navigateBack({
    delta: 1,
pages/appointment-scan/index.vue
@@ -25,7 +25,7 @@
        <text class="main-desc">保持二维码完整、清晰,距离扫码口约 10-20 厘米</text>
        <view class="device-area">
          <image src="../../static/device-scan.png" class="device-img" mode="aspectFit"></image>
          <image :src="deviceScanImage" class="device-img" mode="aspectFit"></image>
        </view>
        <text class="helper-text">若识别失败,请调整手机亮度、避免反光,或联系工作人员协助</text>
@@ -84,7 +84,7 @@
          </view>
          <view class="device-area">
            <image src="../../static/device-id-scan.png" class="device-img" mode="aspectFit"></image>
            <image :src="deviceIdScanImage" class="device-img" mode="aspectFit"></image>
          </view>
          <text class="helper-text">若识别失败,请联系工作人员协助</text>
@@ -426,7 +426,7 @@
        <text class="main-title">请等待打印凭条</text>
        <view class="print-demo-card">
          <image src="../../static/print-ticket-demo.png" class="print-demo-img" mode="aspectFit"></image>
          <image :src="printTicketDemoImage" class="print-demo-img" mode="aspectFit"></image>
        </view>
      </view>
@@ -645,6 +645,9 @@
import { onLoad } from '@dcloudio/uni-app';
import StepProgress from '../../components/StepProgress.vue';
import { HardwareAPI } from '../../utils/visitorDevice';
import deviceScanImage from '../../static/device-scan.png';
import deviceIdScanImage from '../../static/device-id-scan.png';
import printTicketDemoImage from '../../static/print-ticket-demo.png';
const showMissingEntryDialog = ref(false);
const dialogCountdown = ref(5);
pages/home/index.vue
@@ -1,8 +1,28 @@
<script setup>
import { ref } from 'vue';
import adminIcon from '../../static/avatar.png';
import operationImage from '../../static/operation.png';
import appointmentIcon from '../../static/appointment.png';
import registerIcon from '../../static/register.png';
import signOutIcon from '../../static/sign-out.png';
import homeBgImage from '../../static/home-bg.png';
import adminBtnBgImage from '../../static/admin-btn-bg.png';
import welcomeBgImage from '../../static/welcome-bg.png';
// 模拟后台配置:是否显示管理员入口,默认为 true
const showAdminEntry = ref(true);
const screenStyle = {
  backgroundImage: `url(${homeBgImage})`,
};
const adminBtnStyle = {
  backgroundImage: `url(${adminBtnBgImage})`,
};
const welcomeBadgeStyle = {
  backgroundImage: `url(${welcomeBgImage})`,
};
let pressTimer = null;
@@ -45,11 +65,12 @@
</script>
<template>
    <view class="screen">
    <view class="screen" :style="screenStyle">
        <view class="top-bar">
            <text class="logo">LOGO</text>
            <view
                class="admin-btn"
            <view
                class="admin-btn"
                :style="showAdminEntry ? adminBtnStyle : null"
                :class="{ 'hidden-entry': !showAdminEntry }"
                @touchstart="handleTouchStart"
                @touchend="handleTouchEnd"
@@ -57,38 +78,38 @@
                @click="goToAdminHome"
            >
                <template v-if="showAdminEntry">
                    <img class="admin-icon" src="/static/avatar.png" alt="admin-icon" />
                    <image class="admin-icon" :src="adminIcon" mode="aspectFit" />
                    <text class="admin-text">管理员登录</text>
                </template>
            </view>
        </view>
        <view class="hero">
            <view class="hero-copy">
                <view class="welcome-badge">
                <view class="welcome-badge" :style="welcomeBadgeStyle">
                    <view class="welcome-text">欢迎到访</view>
                </view>
                <view class="company-name">成都喜望科技有限公司</view>
            </view>
            <view class="hero-figure">
                <img class="operation" src="/static/operation.png" alt="operation" />
                <image class="operation" :src="operationImage" mode="aspectFit" />
            </view>
        </view>
        <view class="entry-panel">
            <view class="entry-card blue" @click="goAppointment">
                <text class="entry-title">预约登记</text>
                <img class="entry-icon" src="/static/appointment.png" alt="calendar-icon" />
                <image class="entry-icon" :src="appointmentIcon" mode="aspectFit" />
            </view>
            <view class="entry-card purple" @click="goOnline">
                <text class="entry-title">现场登记</text>
               <img class="entry-icon" src="/static/register.png" alt="calendar-icon" />
               <image class="entry-icon" :src="registerIcon" mode="aspectFit" />
            </view>
            <view class="entry-card orange" @click="goSignOut">
                <text class="entry-title">签离</text>
                <img class="entry-icon" src="/static/sign-out.png" alt="calendar-icon" />
                <image class="entry-icon" :src="signOutIcon" mode="aspectFit" />
            </view>
        </view>
    </view>
@@ -103,7 +124,7 @@
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: url('/static/home-bg.png') no-repeat center center;
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center;
    padding-top: 140rpx;
@@ -134,7 +155,8 @@
    display: flex;
    align-items: center;
    justify-content: center;
    background: url('/static/admin-btn-bg.png') no-repeat center center;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}
@@ -175,7 +197,8 @@
    display: flex;
    align-items: center;
    padding-left: 80rpx;
    background: url('/static/welcome-bg.png') no-repeat center center;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}
pages/index/index.vue
@@ -1,6 +1,6 @@
<template>
    <view class="content">
        <image class="logo" src="/static/logo.png"></image>
        <image class="logo" :src="logoImage"></image>
        <view class="text-area">
            <text class="title">{{title}}</text>
        </view>
@@ -8,10 +8,13 @@
</template>
<script>
    import logoImage from '../../static/logo.png';
    export default {
        data() {
            return {
                title: 'Hello'
                title: 'Hello',
                logoImage
            }
        },
        onLoad() {