longz
2026-07-08 700f9d0da314a4ea701fe9f68d305b67d72ec5fb
yuyueMiniProgram/src/pages/index/index.vue
@@ -50,7 +50,7 @@
    return ''
  }
  if (profile.value.userType === 'EMPLOYEE') {
    return profile.value.deptLeaderFlag ? '部门领导' : '员工'
    return '员工'
  }
  return ''
})
@@ -465,9 +465,14 @@
onShareAppMessage((res) => {
  const ticketUuid = res?.target?.dataset?.ticketUuid as string | undefined
  const visitedUserDisplay = res?.target?.dataset?.visitedUserDisplay as string | undefined
  if (!ticketUuid) {
    return {
      title: '红宇集团访客预约',
      path: '/pages/index/index',
    }
  }
  return {
    title: visitedUserDisplay ? `${visitedUserDisplay}的访客码` : '访客码分享',
    title: '访客码的分享',
    path: buildVisitorCodeSharePath(ticketUuid),
  }
})
@@ -497,15 +502,17 @@
<template>
  <view class="relative">
    <image src="/static/home/bg.png" class="absolute left-0 top-0 z-0 h-[1624rpx] w-full" mode="scaleToFill" />
    <view class="home-header-backdrop" />
    <view class="home-content-backdrop" />
    <view class="relative z-4" :style="{ paddingTop: `${safeAreaInsets?.top || 44}px` }">
      <view class="mb-[64rpx] h-[88rpx] flex items-center px-[32rpx]">
    <view class="relative z-4 pb-[160rpx]" :style="{ paddingTop: `${safeAreaInsets?.top || 44}px` }">
      <view class="mb-[24rpx] h-[88rpx] flex items-center px-[32rpx]">
        <text class="text-[36rpx] text-white font-medium">
          预约小程序
          红宇集团访客预约
        </text>
      </view>
      <view class="mb-[36rpx] flex items-center pl-[26rpx] pr-[22rpx]">
      <view class="mb-[28rpx] flex items-center pl-[26rpx] pr-[22rpx]">
        <image src="/static/home/hi.png" class="mr-[24rpx] h-[96rpx] w-[212rpx]" mode="aspectFit" />
        <view class="flex flex-col">
          <view class="welcome-title flex items-center text-[56rpx] text-white font-[600]">
@@ -516,15 +523,13 @@
      <view v-if="showEmployeeDashboard" class="mb-[32rpx] w-full pl-[26rpx] pr-[22rpx]" style="box-sizing: border-box;">
        <view
          class="rounded-[16rpx] p-[24rpx] pb-[26rpx]"
          style="background: linear-gradient(180deg, #CCE4FE 0%, #FAFCFD 40%, #FDFDFD 100%); box-shadow: 0 4rpx 8rpx 0 rgba(0, 104, 255, 0.2);border: 1rpx solid #fff;"
          class="dashboard-panel rounded-[16rpx] p-[24rpx] pb-[26rpx]"
        >
          <view class="flex gap-[30rpx]">
            <view
              class="h-[126rpx] w-[312rpx] flex rounded-[20rpx] pl-[38rpx] pt-[20rpx]"
              class="home-feature-card h-[126rpx] w-[312rpx] flex rounded-[20rpx] pl-[38rpx] pt-[20rpx]"
              style="background: url('/static/home/toDo_bg.png') no-repeat center center;
              background-size: 100%;box-sizing: border-box;
              box-shadow: 0 2rpx 8rpx 0 rgba(119, 144, 213, 0.3)"
              background-size: 100%;box-sizing: border-box;"
              @click="handleOpenApprovalTodo"
            >
              <image src="/static/home/toDo.png" class="mr-[14rpx] h-[100rpx] w-[108rpx]" />
@@ -538,10 +543,9 @@
              </view>
            </view>
            <view
              class="h-[126rpx] w-[312rpx] flex items-center rounded-[20rpx] pl-[38rpx] pt-[20rpx]"
              class="home-feature-card h-[126rpx] w-[312rpx] flex items-center rounded-[20rpx] pl-[38rpx] pt-[20rpx]"
              style="background: url('/static/home/wait_bg.png') no-repeat center center;
              background-size: 100%;box-sizing: border-box;
              box-shadow: 0 2rpx 8rpx 0 rgba(119, 144, 213, 0.3)"
              background-size: 100%;box-sizing: border-box;"
              @click="handleOpenVisitRecords"
            >
              <image src="/static/home/wait.png" class="mr-[14rpx] h-[100rpx] w-[108rpx]" />
@@ -560,8 +564,8 @@
      <view class="flex gap-[16rpx] pl-[24rpx] pr-[22rpx]">
        <view
          class="h-[240rpx] w-[344rpx] flex flex-1 flex-col items-center justify-center rounded-[20rpx]"
          style="background: linear-gradient(180deg, #DEF4FF 0%, #FFFFFF 100%);border: 1rpx solid #fff;box-shadow: 0 4rpx 10rpx 0 rgba(0, 104, 255, 0.16)"
          class="home-action-card h-[240rpx] w-[344rpx] flex flex-1 flex-col items-center justify-center rounded-[20rpx]"
          style="background: linear-gradient(180deg, #DEF4FF 0%, #FFFFFF 100%);"
          @click="ensureLoggedIn(() => { router.push({ name: 'appointment' }) })"
        >
          <image src="/static/home/appointment.png" class="mb-[12rpx] h-[96rpx] w-[96rpx]" />
@@ -571,8 +575,8 @@
        </view>
        <view class="flex flex-1 flex-col gap-[16rpx]">
          <view
            class="flex flex-1 items-center rounded-[20rpx] px-[40rpx]"
            style="background: linear-gradient(180deg, #FFF7E0 0%, #FFFFFF 100%);box-shadow: 0 4rpx 10rpx 0 rgba(0, 104, 255, 0.16)"
            class="home-action-card flex flex-1 items-center rounded-[20rpx] px-[40rpx]"
            style="background: linear-gradient(180deg, #FFF7E0 0%, #FFFFFF 100%);"
            @click="ensureLoggedIn(() => { router.push({ name: 'record' }) })"
          >
            <image src="/static/home/record.png" class="mr-[16rpx] h-[64rpx] w-[64rpx]" />
@@ -581,8 +585,8 @@
            </text>
          </view>
          <view
            class="flex flex-1 items-center rounded-[20rpx] px-[40rpx]"
            style="background: linear-gradient(180deg, #E0FAEE 0%, #FFFFFF 100%);border: 1rpx solid #fff;box-shadow: 0 4rpx 10rpx 0 rgba(0, 104, 255, 0.16)"
            class="home-action-card flex flex-1 items-center rounded-[20rpx] px-[40rpx]"
            style="background: linear-gradient(180deg, #E0FAEE 0%, #FFFFFF 100%);"
            @click="ensureLoggedIn(() => { uni.navigateTo({ url: '/pages/commonVisitors/index' }) })"
          >
            <image src="/static/home/visitor.png" class="mr-[16rpx] h-[64rpx] w-[64rpx]" />
@@ -723,7 +727,7 @@
      <view class="mt-[48rpx] flex justify-center pb-[32rpx]">
        <text class="text-[24rpx] text-[#999999]">
          备案号:2435345342
          备案号:湘ICP备2026025199号-1X
        </text>
      </view>
    </view>
@@ -740,6 +744,45 @@
</template>
<style scoped>
.home-content-backdrop {
  position: absolute;
  left: 0;
  top: 420rpx;
  z-index: 0;
  width: 100%;
  height: 924rpx;
  background:
    linear-gradient(180deg, rgba(196, 232, 249, 0) 0%, rgba(196, 232, 249, 0.72) 12%, rgba(226, 244, 250, 0.9) 38%, rgba(239, 248, 252, 0.96) 100%);
  pointer-events: none;
}
.home-header-backdrop {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 520rpx;
  background: linear-gradient(180deg, rgba(23, 145, 255, 0.96) 0%, rgba(39, 161, 255, 0.82) 62%, rgba(39, 161, 255, 0) 100%);
  pointer-events: none;
}
.dashboard-panel {
  border: 1rpx solid rgba(255, 255, 255, 0.92);
  background: linear-gradient(180deg, rgba(190, 222, 255, 0.98) 0%, rgba(245, 251, 255, 0.96) 48%, rgba(255, 255, 255, 0.98) 100%);
  box-shadow: 0 14rpx 30rpx rgba(31, 111, 206, 0.22), 0 4rpx 10rpx rgba(255, 255, 255, 0.7) inset;
}
.home-feature-card,
.home-action-card {
  border: 1rpx solid rgba(255, 255, 255, 0.92);
  box-shadow: 0 14rpx 28rpx rgba(35, 111, 205, 0.2), 0 4rpx 10rpx rgba(255, 255, 255, 0.65) inset;
}
.home-action-card {
  box-sizing: border-box;
}
.welcome-title {
  font-family: 'YouSheBiaoTiHei', sans-serif;
}