Browse Source

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

lifanagju_citu 10 months ago
parent
commit
b2dd2776a4
42 changed files with 161 additions and 155 deletions
  1. 23 0
      src/api/recruit/personal/personalCenter/index.js
  2. 1 1
      src/components/AreaSelect/index.vue
  3. 1 1
      src/components/CtDialog/index.vue
  4. 1 1
      src/components/CtForm/index copy.vue
  5. 1 1
      src/components/CtForm/index.vue
  6. 1 1
      src/components/CtPagination/index.vue
  7. 1 1
      src/components/FormUI/TextInput/index.vue
  8. 1 1
      src/components/FormUI/autocomplete/index.vue
  9. 19 16
      src/components/FormUI/checkbox/index.vue
  10. 1 1
      src/components/FormUI/combobox/index.vue
  11. 1 1
      src/components/FormUI/comboboxZhAndEn/index.vue
  12. 1 1
      src/components/FormUI/datePicker/index.vue
  13. 1 1
      src/components/FormUI/nestedListGroup/index.vue
  14. 1 1
      src/components/FormUI/radioGroup/index.vue
  15. 1 1
      src/components/FormUI/textArea/index.vue
  16. 1 1
      src/components/VerificationCode/index.vue
  17. 1 1
      src/components/jobTypeCard/index.vue
  18. 1 1
      src/views/login/components/passwordPage.vue
  19. 1 0
      src/views/recruit/enterprise/informationManagement/informationSettingsComponents/authentication.vue
  20. 19 11
      src/views/recruit/enterprise/interview/index.vue
  21. 1 1
      src/views/recruit/enterprise/personnelManagement/components/screen.vue
  22. 8 1
      src/views/recruit/enterprise/positionManagement/components/add.vue
  23. 38 78
      src/views/recruit/enterprise/positionManagement/components/baseInfo.vue
  24. 1 1
      src/views/recruit/enterprise/positionManagement/components/item.vue
  25. 10 10
      src/views/recruit/enterprise/systemManagement/groupAccount/components/link.vue
  26. 0 1
      src/views/recruit/enterprise/systemManagement/groupAccount/index.vue
  27. 1 1
      src/views/recruit/enterprise/talentPool/components/details/baseInfo.vue
  28. 1 1
      src/views/recruit/enterprise/talentPool/components/details/jobIntention.vue
  29. 1 1
      src/views/recruit/enterprise/talentPool/components/details/projectExperience.vue
  30. 1 1
      src/views/recruit/enterprise/talentPool/components/details/workExperience.vue
  31. 4 3
      src/views/recruit/personal/PersonalCenter/components/interview/index.vue
  32. 1 1
      src/views/recruit/personal/PersonalCenter/dynamic/left.vue
  33. 1 1
      src/views/recruit/personal/position/components/conditionFilter/JobType.vue
  34. 1 1
      src/views/recruit/personal/position/components/conditionFilter/areaType.vue
  35. 1 1
      src/views/recruit/personal/position/components/conditionFilter/educationType.vue
  36. 1 1
      src/views/recruit/personal/position/components/conditionFilter/expType.vue
  37. 1 1
      src/views/recruit/personal/position/components/conditionFilter/financingStatus.vue
  38. 1 1
      src/views/recruit/personal/position/components/conditionFilter/payScope.vue
  39. 1 1
      src/views/recruit/personal/position/components/conditionFilter/scale.vue
  40. 7 3
      src/views/recruit/personal/position/components/details.vue
  41. 1 1
      src/views/recruit/personal/position/components/jobDetails/promptToUpload.vue
  42. 1 1
      src/views/recruit/personal/position/components/jobDetails/selectResumeDialog.vue

+ 23 - 0
src/api/recruit/personal/personalCenter/index.js

@@ -7,4 +7,27 @@ export const getInterestedMePage = async (params) => {
     url: '/app-api/menduner/system/job-cv-rel/get/job/cv/look/page',
     params
   })
+}
+
+// 获取面试日程分页
+export const getUserInterviewInvitePage = async (params) => {
+  return await request.get({
+    url: '/app-api/menduner/system/interview-invite/page',
+    params
+  })
+}
+
+// 同意邀约面试
+export const userInterviewInviteConsent = async (data) => {
+  return await request.post({
+    url: '/app-api/menduner/system/interview-invite/consent',
+    data
+  })
+}
+
+// 拒绝邀约面试
+export const userInterviewInviteReject = async (id) => {
+  return await request.post({
+    url: `/app-api/menduner/system/interview-invite/reject?id=${id}`
+  })
 }

+ 1 - 1
src/components/AreaSelect/index.vue

@@ -41,7 +41,7 @@
 
 <script setup>
 import { getDict } from '@/hooks/web/useDictionaries'
-import { reactive, ref, defineEmits } from 'vue';
+import { reactive, ref } from 'vue';
 defineOptions({ name:'common-components-jobTypeCard'})
 
 const emits = defineEmits(['handleAreaClick'])

+ 1 - 1
src/components/CtDialog/index.vue

@@ -57,7 +57,7 @@
 </template>
 
 <script setup>
-import { ref, defineEmits, computed, watch  } from 'vue'
+import { ref, computed, watch  } from 'vue'
 defineOptions({ name: 'components-ct-dialog' })
 const emits = defineEmits(['update:visible', 'close', 'submit'])
 

+ 1 - 1
src/components/CtForm/index copy.vue

@@ -246,7 +246,7 @@
 
 <script setup>
 // import DatePicker from '@/components/Form/datePicker.vue'
-import { ref, defineEmits  } from 'vue'
+import { ref  } from 'vue'
 defineOptions({ name: 'components-ct-form-copy' })
 const props = defineProps({items: Object})
 const inputUpdateValue = ref('')

+ 1 - 1
src/components/CtForm/index.vue

@@ -115,7 +115,7 @@ import checkboxUI from './../FormUI/checkbox'
 import textareaUI from './../FormUI/textArea'
 import nestedListGroupUI from './../FormUI/nestedListGroup'
 import DatePicker from '@/components/DatePicker'
-import { ref, defineEmits, defineExpose } from 'vue'
+import { ref, defineExpose } from 'vue'
 const emit = defineEmits(['change', 'inputUpdateAutocomplete'])// 定义一个或多个自定义事件
 const props = defineProps({items: Object})
 const valid = ref(false)

+ 1 - 1
src/components/CtPagination/index.vue

@@ -30,7 +30,7 @@
 </template>
 
 <script setup>
-import { computed, watch, ref, defineEmits } from 'vue'
+import { computed, watch, ref } from 'vue'
 defineOptions({ name: 'components-ct-pagnation' })
 const props = defineProps({
   total: {

+ 1 - 1
src/components/FormUI/TextInput/index.vue

@@ -35,7 +35,7 @@
 </template>
 <script setup>
 import { debounce } from 'lodash'
-import { defineEmits, ref, watch } from 'vue';
+import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-text-field'})
 
 const props = defineProps({item: Object, modelValue: [String, Number]})

+ 1 - 1
src/components/FormUI/autocomplete/index.vue

@@ -27,7 +27,7 @@
 </template>
 <script setup>
 import { debounce } from 'lodash'
-import { ref, defineEmits, watch } from 'vue';
+import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-autocomplete'})
 
 const props = defineProps({item: Object, modelValue: [String, Number, Boolean]})

+ 19 - 16
src/components/FormUI/checkbox/index.vue

@@ -1,24 +1,27 @@
 <template>
-  <v-checkbox
-    v-model="value"
-    v-for="k in item.items"
-    :key="k.key"
-    :label="k.label"
-    :value="k.value"
-    :disabled="k.disabled"
-    :color="item.color || 'primary'"
-    :density="k.density || 'compact'"
-    :multiple="k.multiple === false ? false : true"
-    class="mr-3"
-    hide-details
-    @update:modelValue="modelValueUpDate"
-  ></v-checkbox>
+  <div class="d-flex align-center">
+    <div class="mr-5 color-999" :style="`width: ${item.width || 120}px;`">{{ item.label }}</div>
+    <v-checkbox
+      v-model="value"
+      v-for="k in item.items"
+      :key="k.key"
+      :label="k.label"
+      :value="k.value"
+      :disabled="k.disabled"
+      :color="item.color || 'primary'"
+      :density="k.density || 'compact'"
+      :multiple="k.multiple === false ? false : true"
+      class="mr-3"
+      hide-details
+      @update:modelValue="modelValueUpDate"
+    ></v-checkbox>
+  </div>
 </template>
 <script setup>
-import { ref, defineEmits } from 'vue';
+import { ref } from 'vue';
 defineOptions({ name:'FormUI-v-checkbox'})
 
-const props = defineProps({item: Object, modelValue: [String, Number, Boolean]})
+const props = defineProps({item: Object, modelValue: Array})
 const emit = defineEmits(['update:modelValue', 'change'])
 const item = props.item
 const value = ref(props.modelValue)

+ 1 - 1
src/components/FormUI/combobox/index.vue

@@ -21,7 +21,7 @@
 </template>
 <script setup>
 import { debounce } from 'lodash'
-import { ref, defineEmits } from 'vue';
+import { ref } from 'vue';
 defineOptions({ name:'FormUI-v-combobox'})
 
 const props = defineProps({item: Object, modelValue: [String, Number]})

+ 1 - 1
src/components/FormUI/comboboxZhAndEn/index.vue

@@ -20,7 +20,7 @@
   </div>
 </template>
 <script setup>
-import { ref, defineEmits } from 'vue';
+import { ref } from 'vue';
 defineOptions({ name:'FormUI-v-combobox'})
 
 const props = defineProps({item: Object, modelValue: [String, Number]})

+ 1 - 1
src/components/FormUI/datePicker/index.vue

@@ -17,7 +17,7 @@
   </div>
 </template>
 <script setup>
-import { defineEmits, ref, watch } from 'vue';
+import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-date-input'})
 
 const props = defineProps({item: Object, modelValue: String})

+ 1 - 1
src/components/FormUI/nestedListGroup/index.vue

@@ -56,7 +56,7 @@
 
 <script setup>
 import listGroup from './components/listGroup'
-import { defineEmits, ref } from 'vue';
+import { ref } from 'vue';
 defineOptions({ name:'FormUI-nestedListGroup'})
 const propsData = defineProps({item: Object, modelValue: [String, Number]})
 const item = propsData.item

+ 1 - 1
src/components/FormUI/radioGroup/index.vue

@@ -25,7 +25,7 @@
 </template>
 
 <script setup>
-import { ref, defineEmits, watch } from 'vue';
+import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-radio-group'})
 
 const props = defineProps({item: Object, modelValue: [String, Number, Boolean]})

+ 1 - 1
src/components/FormUI/textArea/index.vue

@@ -21,7 +21,7 @@
   </div>
 </template>
 <script setup>
-import { defineEmits, ref, watch } from 'vue';
+import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-textarea'})
 
 const props = defineProps({item: Object, modelValue: [String, Number]})

+ 1 - 1
src/components/VerificationCode/index.vue

@@ -40,7 +40,7 @@
 
 <script setup>
 defineOptions({ name: 'verification-code' })
-import { ref, reactive, defineExpose, defineEmits } from 'vue'
+import { ref, reactive, defineExpose } from 'vue'
 import { setCodeTime } from '@/utils/code'
 import { sendSmsCode } from '@/api/common/index'
 import { useI18n } from '@/hooks/web/useI18n'

+ 1 - 1
src/components/jobTypeCard/index.vue

@@ -44,7 +44,7 @@
 <script setup>
 import { getDict } from '@/hooks/web/useDictionaries'
 import { buryingPoint } from '@/hooks/web/buryingPoint'
-import { reactive, ref, defineEmits } from 'vue';
+import { reactive, ref } from 'vue';
 defineOptions({ name:'common-components-jobTypeCard'})
 
 const emits = defineEmits(['handleJobClick', 'jobClick'])// 定义一个或多个自定义事件

+ 1 - 1
src/views/login/components/passwordPage.vue

@@ -35,7 +35,7 @@
 </template>
 
 <script setup name="passwordPage">
-import { ref, reactive, defineExpose, defineEmits } from 'vue'
+import { ref, reactive, defineExpose } from 'vue'
 defineOptions({ name: 'password-form' })
 import { useI18n } from '@/hooks/web/useI18n'
 const { t } = useI18n()

+ 1 - 0
src/views/recruit/enterprise/informationManagement/informationSettingsComponents/authentication.vue

@@ -68,6 +68,7 @@ const formItems = ref({
     }
   ]
 })
+
 </script>
 
 <style scoped lang="scss">

+ 19 - 11
src/views/recruit/enterprise/interview/index.vue

@@ -96,14 +96,15 @@
                 <span>{{ statusList.find(e => e.value === item.status)?.label }}</span>
               </div>
               <div>
-                <span v-if="editStatus.indexOf(item.status)" class="font-size-15 color-primary" @click="handleActionClick(2, item)">修改面试</span>
+                <span v-if="editStatus.indexOf(item.status) !== -1" class="font-size-15 color-primary" @click="handleActionClick(2, item)">修改面试</span>
+                <span v-if="againStatus.indexOf(item.status) !== -1" class="font-size-15 color-primary" @click="handleActionClick(2, item)">重新邀约</span>
                 <v-menu>
                   <template v-slot:activator="{ props }">
                     <v-icon v-bind="props" class="mx-3" size="20" color="primary">mdi-dots-horizontal</v-icon>
                   </template>
                   <v-list>
                     <v-list-item
-                      v-for="(k, index) in actionItems"
+                      v-for="(k, index) in actionItems(item.status)"
                       :key="index"
                       :value="index"
                       color="primary"
@@ -130,7 +131,7 @@
   </v-card>
 
   <!-- 修改面试 -->
-  <CtDialog :visible="showInvite" :widthType="2" titleClass="text-h6" title="面试邀请" @close="handleClose" @submit="handleSubmit">
+  <CtDialog :visible="showInvite" :widthType="2" titleClass="text-h6" title="面试信息" @close="handleClose" @submit="handleSubmit">
     <InvitePage v-if="showInvite" ref="inviteRef" :itemData="itemData" :position="positionItems"></InvitePage>
   </CtDialog>
 
@@ -149,6 +150,7 @@ import Snackbar from '@/plugins/snackbar'
 import { getJobAdvertised } from '@/api/enterprise'
 import { dealDictArrayData } from '@/utils/position'
 import { timesTampChange, getStartAndEndOfDay } from '@/utils/date'
+import cloneDeep from 'lodash/cloneDeep'
 
 const cancelInvite = ref(false)
 const showInvite = ref(false)
@@ -158,15 +160,13 @@ const cancelQuery = ref({
   id: null,
   reason: null
 })
-const editStatus = ['99', '1', '0']
+const editStatus = ['1', '0'] // 修改面试状态
+const againStatus = ['98', '99'] // 重新邀约状态
 const statusList = ref()
 const itemData = ref({})
-// 状态
-const actionItems = ref([
-  // { title: '沟通', value: 1 },
-  // { title: '修改面试', value: 2 },
-  { title: '取消面试', value: 3 },
-  // { title: '面试记录', value: 4 }
+const actions = ref([
+  { title: '沟通', value: 1 },
+  { title: '面试记录', value: 4 }
 ])
 const total = ref(0)
 const query = ref({
@@ -182,6 +182,14 @@ const textItems = ref({
   clearable: true
 })
 
+// 操作状态
+// status:0待接受 1待面试 2即将面试 3已完成 4已反馈 5未能爽约 98拒绝 99已取消
+const actionItems = (status) => {
+  const data = cloneDeep(actions.value)
+  if (status === '0') data.splice(-1, 0, { title: '取消面试', value: 3 })
+  return data
+}
+
 // 状态字典
 const getStatusList = async () => {
   const { data } = await getDict('menduner_interview_invite_status')
@@ -251,7 +259,7 @@ getPositionList()
 
 // 操作按钮
 const handleActionClick = (value, item) => {
-  // 修改
+  // 修改、重新邀约
   if (value === 2) {
     itemData.value = item
     showInvite.value = true

+ 1 - 1
src/views/recruit/enterprise/personnelManagement/components/screen.vue

@@ -26,7 +26,7 @@
 
 <script setup>
 defineOptions({ name: 'screen-page'})
-import { ref, defineProps, defineEmits, watch } from 'vue'
+import { ref, watch } from 'vue'
 import { getJobAdvertised } from '@/api/enterprise'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { dealDictArrayData } from '@/utils/position'

+ 8 - 1
src/views/recruit/enterprise/positionManagement/components/add.vue

@@ -98,8 +98,15 @@ const handleSave = async () => {
   const baseInfo = await baseInfoRef.value[0].getQuery()
   const requirement = await jobRequirementsRef.value[0].getQuery()
   if (!baseInfo || !requirement) return Snackbar.warning('请将信息填写完整')
+  // 判断是否有选择众聘岗位,选择了是否有填赏金或积分
+  if (baseInfo.hire) {
+    if (!baseInfo.hirePrice && !baseInfo.hirePoint) return Snackbar.warning('您选择的是众聘岗位,请填写奖励赏金或积分!')
+    if (Number(baseInfo.hirePrice) === 0 && Number(baseInfo.hirePoint) === 0) return Snackbar.warning('填写的赏金/积分不得小于1')
+  }
+
   const query = Object.assign(baseInfo, requirement)
-  // 有id则为编辑
+
+  // // 有id则为编辑
   if (route.query && route.query.id) query.id = route.query.id
   try {
     await saveJobAdvertised(query)

+ 38 - 78
src/views/recruit/enterprise/positionManagement/components/baseInfo.vue

@@ -1,15 +1,21 @@
 <template>
   <div>
-    <CtForm ref="formPageRef" :items="items" style="width: 600px;">
+    <CtForm ref="formPageRef" :items="items" style="width: 650px;">
       <template #explain>
-        <span style="color: var(--v-error-base); cursor: pointer;" @click="handleViewRule">
-          <v-icon size="25" color="error">mdi-help-circle-outline</v-icon>
-          众聘岗位规则说明
-        </span>
+        <div class="d-flex align-center font-size-13">
+          <div style="color: var(--v-error-base); cursor: pointer;" @click="handleViewRule">
+            <v-icon size="20" color="error">mdi-help-circle-outline</v-icon>
+            众聘岗位规则说明;
+          </div>
+          <div class=" ml-5" style="color: var(--v-error-base);">
+            众聘岗位分配比例:推荐人占比{{ ratio.recommendRate }}%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 平台占比{{ ratio.headhuntRate }}%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 投递人占比{{ ratio.cvRate }}%
+          </div>
+        </div>
       </template>
-      <template #ratio>
-        <div class="font-size-13 mb-3" style="color: red;">
-          众聘岗位分配比例:平台占比{{ ratio.headhuntRate }}%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 推荐人占比{{ ratio.recommendRate }}%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 投递人占比{{ ratio.cvRate }}%
+      <template #numericalValue>
+        <div class="font-size-14 color-error my-1">
+          <div>按众聘岗位分配比例计算后的赏金: 推荐人{{ calculation('hirePrice', 1) }}元、平台{{ calculation('hirePrice', 0) }}元、投递人{{ calculation('hirePrice', 2) }}元</div>
+          <div>按众聘岗位分配比例计算后的积分: 推荐人{{ calculation('hirePoint', 1) }}点、平台{{ calculation('hirePoint', 0) }}点、投递人{{ calculation('hirePoint', 2) }}点</div>
         </div>
       </template>
       <template #positionId="{ item }">
@@ -40,6 +46,7 @@ import { reactive, ref, defineExpose, watch } from 'vue'
 import textUI from '@/components/FormUI/TextInput'
 import jobTypeCard from '@/components/jobTypeCard'
 import RulePage from './rule.vue'
+import { commissionCalculation } from '@/utils/position'
 import { getPublicRatio } from '@/api/recruit/enterprise/position'
 
 const props = defineProps({
@@ -49,42 +56,26 @@ const props = defineProps({
 const show = ref(false)
 const ratio = ref({})
 
-const getValue = (key) => {
-  return items.value.options.find(e => e.key === key)
+// 按分配比例计算金额积分
+const calculation = (key, type) => {
+  const value = items.value.options.find(e => e.key === key).value
+  return commissionCalculation(value, type)
 }
 
-// 众聘奖励类型
-const handleChangeHireType = () => {
-  const hireType = getValue('hireType')
-  let hirePrice = getValue('hirePrice')
-  let hirePoint = getValue('hirePoint')
-  if (hireType.value) {
-    hirePrice.hide = false
-    hirePoint.hide = true
-    hirePoint.value = null
-  } else {
-    hirePoint.hide = false
-    hirePrice.hide = true
-    hirePrice.value = null
-  }
+const getValue = (key) => {
+  return items.value.options.find(e => e.key === key)
 }
 
 // 是否众聘岗位
 const handleChangePublic = (val) => {
-  let hireType
   items.value.options.forEach(e => {
     if (!val && Object.prototype.hasOwnProperty.call(e, 'hide')) {
       e.hide = true
       e.value = null
       return
     }
-    if (e.key === 'hireType') {
-      e.hide = !val
-      e.value = props.itemData && props.itemData.hirePoint ? false : true
-      hireType = e
-    }
-    if (Object.prototype.hasOwnProperty.call(e, 'show')) {
-      if (hireType.value === e.show) e.hide = false
+    if (val && Object.prototype.hasOwnProperty.call(e, 'show')) {
+      e.hide = false
       return
     }
     if (e.slotName === 'explain') e.hide = val ? false : true
@@ -118,68 +109,37 @@ const items = ref({
       hide: true,
       flexStyle: 'mb-3'
     },
-    {
-      type: 'ifRadio',
-      key: 'hireType',
-      value: null,
-      label: '众聘奖励类型 *',
-      width: 120,
-      hide: true,
-      disabled: false,
-      noParam: true,
-      hideDetails: true,
-      items: [
-        { label: '赏金', value: true },
-        { label: '积分', value: false }
-      ],
-      change: handleChangeHireType
-    },
-    {
-      slotName: 'ratio',
-      noParam: true,
-      show: true,
-      hide: true
-    },
     {
       type: 'number',
       key: 'hirePrice',
       value: null,
-      label: '众聘赏金 *',
+      label: '众聘赏金',
       suffix: '元',
       hide: true,
       show: true,
-      rules: [
-        value => {
-          if (value) return true
-          return '请填写众聘赏金'
-        },
-        value => {
-          if (value >= 1) return true
-          return '赏金金额不得小于1'
-        }
-      ]
+      disabled: false,
+      hideDetails: true,
+      col: 6,
+      flexStyle: 'mr-3'
     },
     {
       type: 'number',
       key: 'hirePoint',
       value: null,
-      label: '众聘奖励积分数 *',
+      label: '众聘奖励积分数',
       suffix: '点',
       hide: true,
+      col: 6,
       disabled: false,
-      show: false,
-      rules: [
-        value => {
-          if (value) return true
-          return '请填写众聘众聘奖励积分数'
-        },
-        value => {
-          if (value >= 1) return true
-          return '积分数不得小于1'
-        }
-      ]
+      hideDetails: true,
+      show: false
+    },
+    {
+      slotName: 'numericalValue',
+      noParam: true,
+      show: true,
+      hide: true
     },
-    
     {
       type: 'text',
       key: 'name',

+ 1 - 1
src/views/recruit/enterprise/positionManagement/components/item.vue

@@ -75,7 +75,7 @@
 <script setup>
 import { commissionCalculation } from '@/utils/position'
 defineOptions({ name: 'enterprise-position-item'})
-import { defineEmits, ref, watch } from 'vue'
+import { ref, watch } from 'vue'
 import { useRouter } from 'vue-router'
 import { timesTampChange } from '@/utils/date'
 import { useI18n } from '@/hooks/web/useI18n'

+ 10 - 10
src/views/recruit/enterprise/systemManagement/groupAccount/components/link.vue

@@ -7,10 +7,10 @@
         <span v-if="code">{{ shareUrlTxt }}</span>
         <span v-else class="color-666">点击刷新生成邀请链接</span>
       </div>
-      <v-btn color="primary" class="mr-3" @click="copy()">{{ $t('common.copy') }}</v-btn>
+      <!-- <v-btn color="primary" class="mr-3" @click="copy()">{{ $t('common.copy') }}</v-btn> -->
       <v-btn color="green" variant="outlined" @click="refresh()">{{ $t('common.refresh') }}</v-btn>
     </div>
-    <div class="mt-5 color-777">链接{{ day }}天内有效</div>
+    <div class="mt-5 color-777">请复制链接进行分享,链接{{ day }}天内有效</div>
   </div>
 </template>
 
@@ -78,14 +78,14 @@ const refresh = async () => {
   }
 }
 
-const copy = async () => {
-  try {
-    await navigator.clipboard.writeText(shareUrlTxt.value)
-    Snackbar.success('复制成功')
-  } catch (err) {
-    Snackbar.error('复制失败,请手动复制。')
-  }
-}
+// const copy = async () => {
+//   try {
+//     await navigator.clipboard.writeText(shareUrlTxt.value)
+//     Snackbar.success('复制成功')
+//   } catch (err) {
+//     Snackbar.error('复制失败,请手动复制。')
+//   }
+// }
 
 </script>
 <style lang="scss" scoped>

+ 0 - 1
src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

@@ -214,5 +214,4 @@ const handleSubmit = async () => {
 </script>
 
 <style scoped lang="scss">
-
 </style>

+ 1 - 1
src/views/recruit/enterprise/talentPool/components/details/baseInfo.vue

@@ -65,7 +65,7 @@
 
 <script setup>
 defineOptions({name: 'enterprise-talentPool-details-baseInfo'})
-import { ref, defineProps } from 'vue'
+import { ref } from 'vue'
 import { timesTampChange } from '@/utils/date'
 import { dealDictObjData } from '@/utils/position'
 

+ 1 - 1
src/views/recruit/enterprise/talentPool/components/details/jobIntention.vue

@@ -21,7 +21,7 @@
 </template>
 
 <script setup>
-import { ref, defineProps } from 'vue'
+import { ref } from 'vue'
 import { dealJobData } from './dict'
 defineOptions({name: 'enterprise-talentPool-details-jobIntention'})
 

+ 1 - 1
src/views/recruit/enterprise/talentPool/components/details/projectExperience.vue

@@ -22,7 +22,7 @@
 <script setup>
 defineOptions({name: 'enterprise-talentPool-details-projectExperience'})
 import { timesTampChange } from '@/utils/date'
-import { ref, defineProps } from 'vue'
+import { ref } from 'vue'
 
 const props = defineProps({
   data: Array

+ 1 - 1
src/views/recruit/enterprise/talentPool/components/details/workExperience.vue

@@ -28,7 +28,7 @@
 <script setup>
 defineOptions({name: 'enterprise-talentPool-details-workExperience'})
 import { timesTampChange } from '@/utils/date'
-import { ref, defineProps } from 'vue'
+import { ref } from 'vue'
 
 const props = defineProps({
   data: Array

+ 4 - 3
src/views/recruit/personal/PersonalCenter/components/interview/index.vue

@@ -2,9 +2,9 @@
   <div>
     <v-divider></v-divider>
       <v-tabs v-model="tabVal" align-tabs="start" color="primary" bg-color="#fff">
-        <v-tab :value="0">待面试</v-tab>
-        <v-tab :value="1">已完成</v-tab>
-        <v-tab :value="2">未面试</v-tab>
+        <v-tab :value="0">待接受</v-tab>
+        <v-tab :value="1">待面试</v-tab>
+        <v-tab :value="2">已完成</v-tab>
         <v-tab :value="3">已取消</v-tab>
       </v-tabs>
       <Empty class="mt-3"></Empty>
@@ -15,6 +15,7 @@
 // 面试
 defineOptions({ name: 'interview-index'})
 import { ref } from 'vue'
+// import { getUserInterviewInvitePage } from '@/api/recruit/personal/personalCenter'
 
 const tabVal = ref(0)
 </script>

+ 1 - 1
src/views/recruit/personal/PersonalCenter/dynamic/left.vue

@@ -83,7 +83,7 @@ const list = [
   { title: t('position.interested'), path: interested },
   { title: t('position.haveSeenMe'), path: seenMe }
 ]
-const tab = ref(1)
+const tab = ref(2)
 const selectVal = ref('0')
 const items = ref([])
 const userStore = useUserStore()

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/JobType.vue

@@ -18,7 +18,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 
 defineOptions({name: 'conditionFilter-JobType'})
 const emits = defineEmits(['inputChange'])

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/areaType.vue

@@ -19,7 +19,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 
 defineOptions({name: 'conditionFilter-area-type'})
 const emits = defineEmits(['inputChange'])

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/educationType.vue

@@ -18,7 +18,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 defineOptions({name: 'conditionFilter-educationType'})
 const emits = defineEmits(['inputChange'])
 const query = inject('routeQuery')

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/expType.vue

@@ -18,7 +18,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 
 defineOptions({name: 'conditionFilter-expType'})
 const emits = defineEmits(['inputChange'])

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/financingStatus.vue

@@ -18,7 +18,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 defineOptions({name: 'conditionFilter-financingStatus'})
 const emits = defineEmits(['inputChange'])
 const query = inject('routeQuery')

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/payScope.vue

@@ -18,7 +18,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 defineOptions({name: 'conditionFilter-payScope'})
 const emits = defineEmits(['inputChange'])
 const query = inject('routeQuery')

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter/scale.vue

@@ -19,7 +19,7 @@
 <script setup>
 import commonStyle from './commonStyle.vue'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref, defineEmits, inject } from 'vue';
+import { ref, inject } from 'vue';
 defineOptions({name: 'conditionFilter-scale'})
 const emits = defineEmits(['inputChange'])
 const query = inject('routeQuery')

+ 7 - 3
src/views/recruit/personal/position/components/details.vue

@@ -22,8 +22,11 @@
       </div>
       <div class="d-flex justify-space-between mb-5">
         <div>
-          <v-chip v-if="info.hire && info.hirePrice && info.hirePrice > 0" label color="primary">赏金:{{ commissionCalculation(info.hirePrice, 1) }}元</v-chip>
-          <v-chip v-if="info.hire && info.hirePoint && info.hirePoint > 0" label color="primary" class="ml-1">积分:{{ commissionCalculation(info.hirePoint, 1) }}点</v-chip>
+          <div>
+            <v-chip v-if="info.hire && info.hirePrice && info.hirePrice > 0" label color="primary">赏金:{{ commissionCalculation(info.hirePrice, 1) }}元</v-chip>
+            <v-chip v-if="info.hire && info.hirePoint && info.hirePoint > 0" label color="primary" class="ml-1">积分:{{ commissionCalculation(info.hirePoint, 1) }}点</v-chip>
+          </div>
+          <div v-if="info?.hire" class="font-size-14 mt-3 color-error">推荐好友入职成功即可获得赏金</div>
         </div>
         <div class="banner-tools-btns">
           <v-btn
@@ -32,10 +35,11 @@
             color="error"
             prepend-icon="mdi-share-outline"
             style="height: 36px;"
-            v-if="info?.hire && info?.hirePrice && info?.hirePrice > 0"
+            v-if="info?.hire"
             @click="handleShare"
           >我要赏金</v-btn>
           <v-btn
+            v-else
             class="radius mr-2 button-item"
             variant="outlined"
             color="error"

+ 1 - 1
src/views/recruit/personal/position/components/jobDetails/promptToUpload.vue

@@ -15,7 +15,7 @@
 </template>
 
 <script setup>
-import { defineEmits, watch, computed } from 'vue'
+import { watch, computed } from 'vue'
 defineOptions({name: 'position-details-promptToUpload'})
 
 const props = defineProps({ modelValue: [Boolean, Number] })

+ 1 - 1
src/views/recruit/personal/position/components/jobDetails/selectResumeDialog.vue

@@ -17,7 +17,7 @@
 
 <script setup>
 import Dialog from '@/components/CtDialog'
-import { defineEmits, watch, computed, ref } from 'vue'
+import { watch, computed, ref } from 'vue'
 defineOptions({name: 'position-details-selectResumeDialog'})
 
 const props = defineProps({