zhengyiming
3 天以前 9c2cb0c24dabf68ca5f4703340ed2b1f13ddf969
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<template>
  <ContentScrollView>
    <Cell :show-title="false">
      <CellChunk title="求职意向">
        <div class="curriculum-list">
          <CurriculumViewItem label="期望岗位:">
            <div class="curriculum-position-list">
              <div
                v-for="userExpectJob in userExpectJobs"
                :key="userExpectJob.expectJobCode"
                class="curriculum-position-list-item"
              >
                {{ userExpectJob.expectJobContent }}
              </div>
            </div>
          </CurriculumViewItem>
          <CurriculumViewItem label="空闲时间:" :text="EnumPersonalFreeTimeText[freeTime]">
          </CurriculumViewItem>
          <CurriculumViewItem
            label="求职状态:"
            :text="EnumPersonalJobSeekingStatusText[jobSeekingStatus]"
          >
          </CurriculumViewItem>
        </div>
      </CellChunk>
      <CellChunk title="资格证书">
        <nut-grid
          square
          :column-num="3"
          :border="false"
          :gutter="20"
          v-if="_userCredentials.length > 0"
          class="pro-img-grid"
        >
          <nut-grid-item
            v-for="(item, index) in _userCredentials"
            :key="item"
            class="pro-img-grid-item"
          >
            <div class="pro-img-grid-img-item">
              <PreviewImage :src="item" class="pro-img-grid-img" :urls="_userCredentials" />
            </div>
          </nut-grid-item>
        </nut-grid>
      </CellChunk>
      <CellChunk title="工作经验">
        <CurriculumViewItem label="工作年限:" :text="workSeniority ? `${workSeniority}年` : ''">
        </CurriculumViewItem>
        <CurriculumViewItem label="工作经验:" :text="workExperience"> </CurriculumViewItem>
      </CellChunk>
      <CellChunk title="详细信息">
        <CurriculumViewItem
          label="身高:"
          :text="`${height} cm`"
          :label-width="labelWidth"
        ></CurriculumViewItem>
        <CurriculumViewItem
          label="体重:"
          :text="`${weight} kg`"
          :label-width="labelWidth"
        ></CurriculumViewItem>
        <CurriculumViewItem label="个人照片:">
          <nut-grid
            square
            :column-num="2"
            :border="false"
            :gutter="20"
            v-if="_photos.length > 0"
            class="pro-img-grid"
          >
            <nut-grid-item v-for="(item, index) in _photos" :key="item" class="pro-img-grid-item">
              <div class="pro-img-grid-img-item">
                <PreviewImage :src="item" class="pro-img-grid-img" :urls="_photos" />
              </div>
            </nut-grid-item>
          </nut-grid>
        </CurriculumViewItem>
      </CellChunk>
    </Cell>
  </ContentScrollView>
</template>
 
<script setup lang="ts">
import CurriculumViewItem from './CurriculumViewItem.vue';
import { PreviewImage } from '@12333/components';
import Taro from '@tarojs/taro';
import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@12333/constants';
import { setOSSLink } from '@12333/utils';
 
defineOptions({
  name: 'curriculumView',
});
 
type Props = {
  userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
  freeTime?: API.EnumPersonalFreeTime;
  jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
  userCredentials?: API.GetUserResumeQueryResultCredential[];
  workSeniority?: string;
  workExperience?: string;
  photos?: string[];
  /** 身高 */
  height?: number;
  /** 体重 */
  weight?: number;
};
 
const props = withDefaults(defineProps<Props>(), {
  userExpectJobs: () => [],
  userCredentials: () => [],
  photos: () => [],
});
 
const _userCredentials = computed(() => props.userCredentials.map((x) => setOSSLink(x.img)));
const _photos = computed(() => props.photos.map((x) => setOSSLink(x)));
 
const labelWidth = Taro.pxTransform(120);
</script>
 
<style lang="scss">
@import '@/styles/common.scss';
 
.job-detail-content-tabs {
  .curriculum-position-list {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    column-gap: 24px;
    row-gap: 16px;
 
    .curriculum-position-list-item {
      font-weight: 500;
      font-size: 24px;
      color: boleGetCssVar('color', 'warning');
      line-height: 36px;
    }
  }
}
</style>