zhengyiming
2025-02-20 703c46d17731d1b437509f326c050d1d36838f74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<template>
  <MainCell :title="title" class="online-result">
    <template #icon>
      <img :src="icon" class="icon-main" />
    </template>
    <div :class="['online-sign-result-content-title', status]">{{ contentTitle }}</div>
    <div class="online-sign-result-content">
      <div class="online-sign-result-content-item" v-for="(text, index) in items" :key="index">
        {{ text }}
      </div>
    </div>
    <slot name="actions"></slot>
  </MainCell>
</template>
 
<script setup lang="ts">
defineOptions({
  name: 'OnlineResult',
});
 
type Props = {
  icon?: string;
  title?: string;
  contentTitle?: string;
  items?: string[];
  status?: 'primary' | 'error';
};
 
const props = withDefaults(defineProps<Props>(), {
  status: 'primary',
});
</script>
 
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
 
.online-result {
  .icon-main {
    margin-bottom: 20px;
    width: 201px;
    height: 180px;
  }
 
  .online-sign-result-content-title {
    margin-bottom: 8px;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    color: getCssVar('color', 'primary');
    line-height: 24px;
 
    &.error {
      color: #ff3e28;
    }
  }
 
  .online-sign-result-content {
    margin-bottom: 50px;
 
    .online-sign-result-content-item {
      font-size: 14px;
      font-weight: 500;
      text-align: center;
      color: getCssVar('text-color', 'primary');
      line-height: 22px;
    }
  }
}
</style>