Browse Source

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

lifanagju_citu 6 months ago
parent
commit
3f0758792c

+ 6 - 6
.env.development

@@ -6,16 +6,16 @@ VITE_VERSION = 'v24.11.07.1937'
 VITE_APP_TITLE = 门墩儿
 
 # 访问路径
-VITE_ACCESS_BASE_URL = 'http://menduner.citupro.com:7878' # 测试环境
-# VITE_ACCESS_BASE_URL = 'https://www.menduner.com' # 生产环境
+# VITE_ACCESS_BASE_URL = 'http://menduner.citupro.com:7878' # 测试环境
+VITE_ACCESS_BASE_URL = 'https://www.menduner.com' # 生产环境
 # 
 # 请求路径
-VITE_BASE_URL = 'http://menduner.citupro.com:7878' # 测试环境
-# VITE_BASE_URL = 'https://www.menduner.com' # 生产环境
+# VITE_BASE_URL = 'http://menduner.citupro.com:7878' # 测试环境
+VITE_BASE_URL = 'https://www.menduner.com' # 生产环境
 
 # 预览路径
-VITE_PREVIEW_URL = 'http://192.168.3.91:8012' # 测试环境
-# VITE_PREVIEW_URL = 'https://kkfileview.menduner.com/' # 生产环境
+# VITE_PREVIEW_URL = 'http://192.168.3.91:8012' # 测试环境
+VITE_PREVIEW_URL = 'https://kkfileview.menduner.com/' # 生产环境
 
 # 租户id
 VITE_TENANTCODE = '155'

+ 8 - 0
src/api/recruit/enterprise/jobFair.js

@@ -90,4 +90,12 @@ export const resumeInterview = async (data) => {
     url: '/app-api/flames/pracice/submit/record/student/interview',
     data
   })
+}
+
+// 修改入职时间
+export const updateJoinDate = async (data) => {
+  return await request.post({
+    url: '/app-api/flames/pracice/submit/record/update',
+    data
+  })
 }

+ 52 - 29
src/views/recruit/enterprise/jobFair/components/resume.vue

@@ -53,6 +53,7 @@
               <v-btn v-if="[21,22].includes(item.status)" color="primary " variant="text" @click="handleEliminate(item)">不合适</v-btn>
               <v-btn v-if="item.status === 22" color="primary" variant="text" @click="handleEnterByEnterprise(item)">入职</v-btn>
             </template>
+            <v-btn v-if="item.status === 2" color="primary" variant="text" @click="handleEditJoinDate(item)">修改到岗时间</v-btn>
           </template>
         </CtTable>
       </v-tabs-window-item>
@@ -71,18 +72,31 @@
       <CtForm ref="CtFormInviteRef" :items="formItems" style="height: 500px;"></CtForm>
     </CtDialog>
 
-    <!-- 邀请面试 -->
+    <!-- 入职 -->
     <CtDialog
       :visible="showAccess"
       :widthType="4"
       titleClass="text-h6"
-      title="面试信息"
+      title="入职信息"
       @close="showAccess = false"
       @submit="handleAccess"
     >
       <CtForm ref="CtFormAccessRef" :items="AccessItems" style="height: 500px;"></CtForm>
     </CtDialog>
 
+    <!-- 修改到岗时间 -->
+    <CtDialog
+      :visible="showEditJoinDate"
+      :widthType="4"
+      titleClass="text-h6"
+      title="修改到岗时间"
+      @close="showEditJoinDate = false"
+      @submit="handleSubmitEditJoinDate"
+    >
+      <DatePicker v-model="editJoinDateItems.value" :item="editJoinDateItems"></DatePicker>
+    </CtDialog>
+
+    <!-- 不合适 -->
     <CtDialog
       :visible="showReject"
       :widthType="4"
@@ -99,16 +113,18 @@
 <script setup>
 defineOptions({ name: 'jobFairResume'})
 import { computed, ref } from 'vue'
-import { useRouter, useRoute } from 'vue-router'
+import { useRoute } from 'vue-router'
 import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
-import { getResumeList, resumeCancel, resumeAccept, resumeInterview } from '@/api/recruit/enterprise/jobFair'
+import { getResumeList, resumeCancel, resumeAccept, resumeInterview, updateJoinDate } from '@/api/recruit/enterprise/jobFair'
 import { useUserStore } from '@/store/user'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { previewFile } from '@/utils'
 import { getUserAvatar } from '@/utils/avatar'
+import DatePicker from '@/components/FormUI/datePicker'
+import { timesTampChange } from '@/utils/date'
+
 const userStore = useUserStore() 
-const router = useRouter()
 const route = useRoute()
 const { t } = useI18n()
 
@@ -173,9 +189,6 @@ const tabList = ref([
       size: 10
     }
   }
-  // { label: '面试邀约', value: 1, statuss: [21, 22, 23], items: [], total: 0 },
-  // { label: '已入职', value: 2, statuss: [4], items: [], total: 0 },
-  // { label: '不合适', value: 3, statuss: [15], items: [], total: 0 },
 ])
 
 const headers = computed(() => {
@@ -195,12 +208,11 @@ const headers = computed(() => {
       },
       sortable: false
     },
-    { title: '联系电话', value: 'student.phone', sortable: false }
+    { title: '联系电话', value: 'student.phone', sortable: false },
+    { title: '到岗时间', key: 'jobJoinDate', sortable: false, value: item => timesTampChange(item.jobJoinDate, 'Y-M-D') },
+    { title: '状态', value: 'status', sortable: false },
+    { title: '操作', value: 'actions', sortable: false }
   ]
-  if (tab.value === 0 || tab.value === 1) {
-    item.push({ title: '状态', value: 'status', sortable: false },
-    { title: '操作', value: 'actions', sortable: false })
-  }
   return item
 })
 
@@ -260,11 +272,11 @@ const AccessItems = ref({
       labelWidth: 78,
       value: '',
       key: 'jobJoinDate',
-      label: '入职时间 *',
+      label: '到岗时间 *',
       format: "YYYY/MM/DD HH:mm",
       flexStyle: 'mb-7',
       disabledDate: true,
-      rules: [v => !!v || '请选择入职时间']
+      rules: [v => !!v || '请选择到岗时间']
     },
     {
       type: 'text',
@@ -284,21 +296,21 @@ const AccessItems = ref({
     }
   ]
 })
+const editJoinDateItems = ref({
+  value: '',
+  id: '',
+  mode: 'date',
+  placeholder: '请选择要修改的到岗时间',
+  teleported: true,
+  disabledDate: true
+})
 
-// const items = ref([])
 const loading = ref(false)
-
-// const pageInfo = ref({
-//   current: 1,
-//   size: 10
-// })
-
 const itemData = ref({})
 const showInvite = ref(false)
-
 const showReject = ref(false)
-
 const showAccess = ref(false)
+const showEditJoinDate = ref(false)
 
 // 状态字典
 const statusList = ref([])
@@ -317,7 +329,6 @@ const handleChange = () => {
   getList()
 }
 
-
 // 查看简历
 const handlePreviewResume = async (item) => {
   const url = item.studentInfoVo?.studentBiographicalNotes?.fileUrl
@@ -394,10 +405,8 @@ const handleEnterByEnterprise = async (item) => {
   })
   itemData.value = item
   showAccess.value = true
-  
 }
 const handleAccess = async () => {
-
   const { valid } = await CtFormAccessRef.value.formRef.validate()
   if (!valid) return
   const query = AccessItems.value.options.reduce((acc, cur) => {
@@ -416,7 +425,23 @@ const handleAccess = async () => {
   getList()
 }
 
+// 修改到岗时间
+const handleEditJoinDate = (item) => {
+  editJoinDateItems.value.id = item.practiceSubmitRecordId
+  editJoinDateItems.value.value = item.jobJoinDate
+  showEditJoinDate.value = true
+}
+
+const handleSubmitEditJoinDate = async () => {
+  if (!editJoinDateItems.value.value) return Snackbar.warning('请选择要修改的日期')
+  await updateJoinDate({ jobJoinDate: editJoinDateItems.value.value, practiceSubmitRecordId: editJoinDateItems.value.id })
 
+  Snackbar.success('修改成功')
+  editJoinDateItems.value.value = ''
+  editJoinDateItems.value.id = ''
+  showEditJoinDate.value = false
+  getList()
+}
 
 const getList = async () => {
   loading.value = true
@@ -427,10 +452,8 @@ const getList = async () => {
       enterpriseId: userStore.entBaseInfo.enterpriseId,
       statuss: tabList.value[tab.value].statuss
     })
-    // total.value = res.total
     tabList.value[tab.value].items = res.records
     tabList.value[tab.value].total = res.total
-    // items.value = res.records
   } finally {
     loading.value = false
   }