Explorar o código

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

Xiao_123 hai 1 ano
pai
achega
cf52b86d75

+ 2 - 1
src/layout/enterprise.vue

@@ -43,7 +43,8 @@ const whiteList = [
   '/recruit/enterprise/talentPool/details',
   '/recruit/enterprise/position/details',
   '/recruit/enterprise/purchasePackage',
-  '/recruit/enterprise/systemManagement/groupAccount/addBranchOffice'
+  '/recruit/enterprise/systemManagement/groupAccount/invite/0',
+  '/recruit/enterprise/systemManagement/groupAccount/invite/1'
 ]
 // 查询是否在白名单内,在则不展示面包屑
 const isInWhiteList = (url, whiteList)=> {

+ 4 - 13
src/router/modules/components/recruit/enterprise.js

@@ -236,23 +236,14 @@ const enterprise = [
         component: () => import('@/views/recruit/enterprise/systemManagement/groupAccount/index.vue')
       },
       {
-        path: '/recruit/enterprise/systemManagement/groupAccount/addBranchOffice',
+        path: '/recruit/enterprise/systemManagement/groupAccount/invite/:type',
         show: true,
         meta: {
           hideSide: true,
-          title: '添加分支机构',
-          enName: 'Add a branch office'
+          title: '邀请',
+          enName: 'Invite'
         },
-        component: () => import('@/views/recruit/enterprise/systemManagement/groupAccount/addBranchOffice.vue')
-      },
-      {
-        path: '/recruit/enterprise/systemManagement/groupAccount/inviteNewColleagues',
-        show: true,
-        meta: {
-          title: '邀请新同事',
-          enName: 'Invite new colleagues',
-        },
-        component: () => import('@/views/recruit/enterprise/systemManagement/groupAccount/inviteNewColleagues.vue')
+        component: () => import('@/views/recruit/enterprise/systemManagement/groupAccount/invite.vue')
       },
       // {
       //   path: '/recruit/enterprise/systemManagement/userManagement',

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

@@ -4,7 +4,8 @@
     <div class="mt-5 color-777">将下面的公共邀请链接通过微信、00等任何方式发给同事,即可点击加入公司。请注意,用户同意后将自动加入到团队中,您需确保添加到的同事为同一公司招聘人员</div>
     <div class="mt-5 d-flex align-center">
       <div class="mr-5 shareUrlTxt">
-        {{ shareUrlTxt }}
+        <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="green" variant="outlined" @click="refresh()">{{ $t('common.refresh') }}</v-btn>
@@ -25,7 +26,7 @@ defineOptions({name: 'groupAccount-component-invite'})
 const props = defineProps({
   inviteType: {
     type: String,
-    default: '0' // 类型(0 邀请同事 | 1 邀请子公司),示例值(2)
+    default: '0' // 类型 (0 邀请同事 | 1 邀请子公司),示例值(2)
   }
 })
 
@@ -37,9 +38,10 @@ const shareUrlTxt = computed(() => {
   return accessUrl + '/invite?code=' + code.value
 })
 
-// 逻辑:
-// 1.页面加载时: 是否已有-> 有:直接调用获取邀请码。 没有:有生成邀请码标识->获取邀请码
-// 2.刷新: 调用刷新邀请码接口->生成邀请码标识->获取邀请码
+// 基本逻辑:是否已有邀请码?->
+//          有:直接调用获取邀请码
+//          没有:有生成邀请码标识->获取邀请码
+// 刷新: 先调用刷新邀请码接口再执行上面逻辑
 
 // 获取邀请码
 const getCode = async (type) => {
@@ -52,13 +54,13 @@ const getCode = async (type) => {
     console.err(err)
   }
 }
-getCode()
+// getCode()
 
 // 生成邀请码标识
 const getGenerateCode = async (type) => {
   try {
     const data = await enterpriseInviteGenerateCode({ type: props.inviteType, expireDay: 30 })
-    if (!data) console.err('生成邀请码标识失败')
+    if (!data) Snackbar.error('生成邀请码标识失败')
     getCode(type)
   } catch (err) {
     console.err(err)
@@ -69,7 +71,7 @@ const getGenerateCode = async (type) => {
 const refresh = async () => {
   try {
     await enterpriseInviteRefresh({ code: code.value })
-    getGenerateCode('refresh')
+    getCode('refresh')
   } catch (err) {
     console.err(err)
   }

+ 7 - 0
src/views/recruit/enterprise/systemManagement/groupAccount/components/record.vue

@@ -26,12 +26,19 @@ import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
 import { timesTampChange } from '@/utils/date'
 import { getEnterpriseUserList } from '@/api/recruit/enterprise/system/user'
 defineOptions({name: 'groupAccount-component-record'})
+const props = defineProps({
+  inviteType: {
+    type: String,
+    default: '0' // 类型 (0 邀请同事 | 1 邀请子公司),示例值(2)
+  }
+})
 const total = ref(0)
 const tableData = ref([])
 const loading = ref(false)
 const query = ref({
   pageSize: 10,
   pageNo: 1,
+  type: props.inviteType
 })
 const headers = [
   { title: t('login.username'), key: 'name' },

+ 5 - 6
src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

@@ -3,7 +3,7 @@
     <v-row no-gutters justify="space-between">
       <v-col cols="2">
         <div class="d-flex justify-start pr-3">
-          <v-btn prepend-icon="mdi-plus" variant="text" density="compact" color="primary" @click="handleAdd(0)">{{ $t('enterprise.userManagement.addBranchOffice') }}</v-btn>
+          <v-btn prepend-icon="mdi-plus" variant="text" density="compact" color="primary" @click="handleAdd(1)">{{ $t('enterprise.userManagement.addBranchOffice') }}</v-btn>
         </div>
         <v-treeview
           :items="treeData"
@@ -28,7 +28,7 @@
       <v-col class="ml-10">
         <div class="d-flex justify-space-between px-3">
           <TextInput v-model="query.name" :item="textItem" @change="getUserList"></TextInput>
-          <v-btn prepend-icon="mdi-plus" color="primary" @click="handleAdd(1)">{{ $t('enterprise.userManagement.inviteNewColleagues') }}</v-btn>
+          <v-btn prepend-icon="mdi-plus" color="primary" @click="handleAdd(0)">{{ $t('enterprise.userManagement.inviteNewColleagues') }}</v-btn>
         </div>
         <v-data-table
           :loading="loading"
@@ -192,10 +192,9 @@ const handleBinding = async (item) => {
   show.value = true
 }
 
-const handleAdd = (num) => {
-  const name = num ? 'inviteNewColleagues' : 'addBranchOffice'
-  // router.push({ path: `/recruit/enterprise/systemManagement/groupAccount/${name}` })
-  window.open(`/recruit/enterprise/systemManagement/groupAccount/${name}`)
+const handleAdd = (type) => {
+  // type: 类型(0 邀请同事 | 1 邀请子公司)
+  window.open(`/recruit/enterprise/systemManagement/groupAccount/invite/${type}`)
 }
 
 const handleClose = () => {

+ 9 - 5
src/views/recruit/enterprise/systemManagement/groupAccount/addBranchOffice.vue → src/views/recruit/enterprise/systemManagement/groupAccount/invite.vue

@@ -1,16 +1,18 @@
-<!-- 添加分支机构 -->
 <template>
   <v-card class="card-box pa-5">
     <div class="default-width">
+      <div class="resume-header mb-5">
+        <div class="resume-title">{{ inviteType ? $t('enterprise.userManagement.addBranchOffice') : $t('enterprise.userManagement.inviteNewColleagues') }}</div>
+      </div>
       <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#f7f8fa" @update:model-value="handleChangeTab">
         <v-tab v-for="val in tabList" :key="val.value" :value="val.value"> {{ val.label }}</v-tab>
       </v-tabs>
       <v-window v-model="tab" class="mt-3">
         <v-window-item :value="1">
-          <invite style="min-height: 500px;"></invite>
+          <linkPage :inviteType="inviteType" style="min-height: 500px;"></linkPage>
         </v-window-item>
         <v-window-item :value="2">
-          <record style="min-height: 500px;"></record>
+          <record :inviteType="inviteType" style="min-height: 500px;"></record>
         </v-window-item>
       </v-window>
     </div>
@@ -18,11 +20,13 @@
 </template>
 
 <script setup>
-import invite from './components/invite.vue'
+import linkPage from './components/link.vue'
 import record from './components/record.vue'
 import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
+import { useRouter } from 'vue-router'; const router = useRouter()
 import { ref } from 'vue'
-defineOptions({name: 'groupAccount-addBranchOffice'})
+defineOptions({name: 'groupAccount-invite'})
+const inviteType = ref(+router.currentRoute.value?.params?.type || 0) // 类型(0 邀请同事 | 1 邀请子公司)
 const tabList = [
   { label: t('enterprise.userManagement.initiateInvitation'), value: 1 },
   { label: t('enterprise.userManagement.invitationRecord'), value: 2 },

+ 0 - 10
src/views/recruit/enterprise/systemManagement/groupAccount/inviteNewColleagues.vue

@@ -1,10 +0,0 @@
-<!-- 邀请新同事 -->
-<template>
-  <div>vue3PageInit</div>
-</template>
-
-<script setup>
-defineOptions({name: 'groupAccount-inviteNewColleagues'})
-</script>
-<style lang="scss" scoped>
-</style>