소스 검색

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 11 달 전
부모
커밋
4f9af35598
3개의 변경된 파일110개의 추가작업 그리고 5개의 파일을 삭제
  1. 6 0
      src/locales/en.js
  2. 6 0
      src/locales/zh-CN.js
  3. 98 5
      src/views/enterprise/interview/index.vue

+ 6 - 0
src/locales/en.js

@@ -96,6 +96,12 @@ export default {
     loginFailed: 'Login failed, And no enterprise was found under this user'
   },
   form: {},
+  interview: {
+    waitingForAcceptance: 'Waiting for acceptance',
+    canceled: 'Canceled',
+    offlineInterview: 'Offline Interview',
+    onlineInterview: 'Online Interview',
+  },
   position: {
     moreBtn: 'View More Positions',
     recommend: 'Recommended Positions',

+ 6 - 0
src/locales/zh-CN.js

@@ -96,6 +96,12 @@ export default {
     loginFailed: '登录失败 未查询到该用户下存在企业'
   },
   form: {},
+  interview: {
+    waitingForAcceptance: '待接受',
+    canceled: '已取消',
+    offlineInterview: '线下面试',
+    onlineInterview: '线上面试',
+  },
   position: {
     moreBtn: '查看更多职位',
     recommend: '推荐职位',

+ 98 - 5
src/views/enterprise/interview/index.vue

@@ -1,16 +1,109 @@
 <!-- 面试 -->
 <template>
-  <v-card class="card-box pa-5">
-    <v-date-picker
-      show-adjacent-months
-    ></v-date-picker>
+  <v-card class="pa-5" style="height: 100%;font-size: 14px;">
+    <div>123</div>
+    <div class="d-flex">
+      <v-date-picker
+        v-model="value1"
+        color="primary"
+        show-adjacent-months
+        :hide-header="true"
+        @update:modelValue="handleCurrentChange"
+        class="mr-3"
+      ></v-date-picker>
+      <v-divider style="height: auto;" class="mr-5" vertical></v-divider>
+      <div style="flex: 1;">
+        <div
+          class="listItem d-flex align-center justify-space-between pa-3 mb-3"
+          style="width: 100%;height: 76px;border: 1px solid #e5e6eb;border-radius: 5px;"
+          v-for="(item, index) in dataList" :key="'item_' + index"
+        >
+          <div class="d-flex align-center">
+            <span class="mr-2">{{ item.date }}</span>
+            <span class="mr-5 fz16" style="color: orange;">{{ item.time }}</span>
+            <v-avatar class="mr-2" size=50 :image="item?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
+            <div class="d-flex flex-column mr-3" style="width: 110px;">
+              <span class="ellipsis mb-1">{{ item?.name }}</span>
+              <span class="ellipsis" style="color: #999;">{{ item?.job }}</span>
+            </div>
+            <span style="min-width: 100px;">离职-随时到岗</span>
+          </div>
+          <span style="min-width: 120px;text-align: center;">
+            <v-icon v-if="item?.phone" class="mx-1" size="20" color="primary">mdi-phone-outline</v-icon>
+            <span>{{ item?.phone || '-' }}</span>
+          </span>
+          <!-- 面试类型: 线下面试 -->
+          <span v-if="item.interviewType === 1">
+            <v-icon class="mx-3" size="20" color="primary">mdi-account-multiple-outline</v-icon>
+            <span>{{ $t('interview.offlineInterview') }}</span>
+          </span>
+          <!-- 面试类型: 线上面试 -->
+          <span class="d-flex" v-else>
+            <v-icon class="mx-3 mt-2" size="20" color="primary">mdi mdi-video-account</v-icon>
+            <span class="d-flex flex-column">
+              <span>{{ $t('interview.onlineInterview') }}</span>
+              <span style="color: #999;">腾讯会议</span>
+            </span>
+          </span>
+          <!-- 面试状态: '待接受'/'已取消' -->
+           <span :style="{ 'color': item.interviewStatus ? 'orange' :'#999'}">
+            <v-icon size="30">mdi mdi-circle-small</v-icon>
+            <span>{{ $t(item.interviewStatus ? 'interview.waitingForAcceptance' :'interview.canceled') }}</span>
+           </span>
+          <span>
+            <span class="fz15 primaryColor">{{ item.interviewStatus ? '修改面试' :'重新邀请' }}</span>
+            <v-icon class="ml-3 mr-8" size="20" color="primary">mdi-dots-horizontal</v-icon>
+          </span>
+        </div>
+      </div>
+    </div>
   </v-card>
 </template>
 
 <script setup>
+import { ref } from 'vue';
+
 defineOptions({ name: 'enterprise-interview'})
+
+const dataList = ref([
+  {
+    avatar: 'http://menduner.citupro.com:6868/admin-api/infra/file/24/get/241e594d4473872eabb312673f42241a2e9598298cb7d9d791cc9c8cb65fb058.jpg',
+    name: '王瑶',
+    job: '软件测试',
+    phone: '18406571583',
+    date: '2024-06-14',
+    time: '11:00',
+    interviewType: 1,
+    interviewStatus: 1,
+  },
+  {
+    name: '黄小姐',
+    job: '软件测试-实习岗位',
+    phone: '',
+    date: '2024-06-14',
+    time: '15:00',
+    interviewType: 2,
+    interviewStatus: 0,
+  },
+])
+
+const value1 = ref(null) // new Date(); new Date('2018-03-02')
+const handleCurrentChange = (val, val1) => {
+  console.log('1', val, val1)
+}
+
 </script>
 
 <style scoped lang="scss">
-
+.fz14 { font-size: 14px; }
+.fz15 { font-size: 15px; }
+.fz16 { font-size: 16px; }
+.primaryColor { color: var(--v-primary-base); }
+.listItem {
+  cursor: pointer;
+  
+  &:hover {
+    background-color: #f8f8f8;
+  }
+}
 </style>