Kaynağa Gözat

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

Xiao_123 7 ay önce
ebeveyn
işleme
3d64111e09

+ 12 - 1
src/components/Enterprise/components/positions.vue

@@ -94,6 +94,16 @@ const props = defineProps({
   }
 })
 
+import { getToken } from '@/utils/auth'
+import Snackbar from '@/plugins/snackbar'
+const showLogin = ref(false)
+// 打开快速登录
+const quickLogonOpen = () => {
+  Snackbar.warning('您还未登录,请先登录后再试')
+  showLogin.value = true
+}
+
+
 const total = ref(0)
 const pageInfo = ref({
   pageSize: 10,
@@ -126,7 +136,7 @@ const showFilterList = ref([
   { key: 'payScope', isSingle: true },
 ])
 const getProvideData = (list) => {
-  if (!list?.length) return
+  if (!list?.length) return show.value = true
   getDict('menduner_area_type', {}, 'areaList').then(({ data }) => {
     data = data?.length && data || []
     const arr = list.map(e => {
@@ -242,6 +252,7 @@ const desc = [
 
 // 立即沟通
 const toDetails = async (info) => {
+  if (!getToken()) return quickLogonOpen()
   const userId = info.contact.userId
   const enterpriseId = info.contact.enterpriseId
   const textObj = {

+ 10 - 0
src/components/Position/longStrip.vue

@@ -56,6 +56,7 @@ import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
 import { getUserAvatar } from '@/utils/avatar'
 import { useRouter } from 'vue-router'
+import { ref } from 'vue'
 import { prologue, defaultText } from '@/hooks/web/useIM'
 
 const emits = defineEmits(['refresh'])
@@ -71,6 +72,14 @@ const props = defineProps({
   }
 })
 
+import { getToken } from '@/utils/auth'
+const showLogin = ref(false)
+// 打开快速登录
+const quickLogonOpen = () => {
+  Snackbar.warning('您还未登录,请先登录后再试')
+  showLogin.value = true
+}
+
 const router = useRouter()
 
 const desc = ['industryName', 'financingName', 'scaleName']
@@ -95,6 +104,7 @@ const handleToEnterprise = (item) => {
 
 // 立即沟通
 const toDetails = async (info) => {
+  if (!getToken()) return  quickLogonOpen()
   const userId = info.contact.userId
   const enterpriseId = info.contact.enterpriseId
   const textObj = {

+ 5 - 1
src/layout/personal/navBar.vue

@@ -31,7 +31,7 @@
         </div>
         
         <div class="d-flex user-nav">
-          <div class="btns d-flex align-center" v-if="!getToken()">
+          <div class="btns d-flex align-center" v-if="!getToken() && showLoginBtn">
             <v-btn class="half-button" border color="primary" size="small" @click="handleLogin">{{ $t('login.loginOrRegister') }}</v-btn>
           </div>
           
@@ -132,6 +132,10 @@ import defineListPage from '@/views/entrances/navBar/components/defineListPage'
 defineOptions({ name: 'personal-navbar' })
 
 defineProps({
+  showLoginBtn: {
+    type: Boolean,
+    default: true
+  },
   sticky: {
     type: Boolean,
     default: true

+ 6 - 0
src/views/login/index.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="login-box">
+    <navBar :showLoginBtn="false" class="navBar"></navBar>
     <div class="login-content">
       <!-- <div class="text-end pr-5 pt-5">
         <span class="color-error cursor-pointer text-decoration-underline" @click="router.push('/register/selected')">还没有登录账户?去注册</span>
@@ -56,6 +57,7 @@ import { useI18n } from '@/hooks/web/useI18n'
 import { getEnterpriseRegisterApply } from '@/api/common'
 import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
+import navBar from '@/layout/personal/navBar.vue'
 
 const { t } = useI18n()
 const router = useRouter()
@@ -128,6 +130,10 @@ const handleLogin = async () => {
   background-image: url('https://www.mendunerhr.com/images/userfiles/92d7e4a755e2428b94aab3636d5047f3/images/recruitment/adImages/2018/11/1920x940.jpg');
   background-size: cover;
 }
+.navBar {
+  position: absolute;
+  top: 0;
+}
 .login-content {
   position: absolute;
   top: 50%;

+ 10 - 5
src/views/recruit/personal/position/components/details.vue

@@ -235,6 +235,12 @@ const formItems = ref({
   ]
 })
 
+// 打开快速登录
+const quickLogonOpen = () => {
+  Snackbar.warning('您还未登录,请先登录后再试')
+  showLogin.value = true
+}
+
 const share = ref()
 // 生成图片
 const generateAndDownloadImage = async () => {
@@ -325,11 +331,7 @@ const shareUrl = ref('')
 const userInfo = ref(localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : {})
 const handleShare = async () => {
   // 分享链接携带参数: 用户id、职位id
-  if (!getToken()) {
-    Snackbar.warning('您还未登录,请先登录后再试')
-    showLogin.value = true
-    return
-  }
+  if (!getToken()) return quickLogonOpen()
   generateAndDownloadImage()
   shareUrl.value = '/shareJob?' + new URLSearchParams({
     jobId: id,
@@ -340,6 +342,7 @@ const handleShare = async () => {
 
 // 收藏&取消收藏职位
 const handleCollection = async () => {
+  if (!getToken()) return quickLogonOpen()
   const api = isCollection.value ? getPersonJobUnfavorite : getPersonJobFavorite
   await api(isCollection.value ? id : { jobId: id })
   await getCollectionStatus()
@@ -384,6 +387,7 @@ const showResume = ref(false)
 const resumeList = ref([])
 const selectResume = ref()
 const handleDelivery = async () => {
+  if (!getToken()) return quickLogonOpen()
   if (delivery.value) return Snackbar.warning(t('resume.alreadyResume'))
   const result = await getPersonResumeCv()
   resumeList.value = result
@@ -418,6 +422,7 @@ const handleSubmit = async (val) =>{
 
 // 沟通
 const toDetails = async (info) => {
+  if (!getToken()) return quickLogonOpen()
   try {
     const userId = info.contact.userId
     const enterpriseId = info.contact.enterpriseId

+ 9 - 0
src/views/recruit/personal/position/components/dict.js

@@ -4,6 +4,9 @@ import commonPath from './conditionFilter/commonPath.vue'
 
 // toFilterDictName: 查数据回显(一维数组字典),dictShow: 用户操作的字典(用户看到的数据)
 // 当type是tree类型的数据的时候需要提供dictType
+// isSlot插槽数据
+// provideData数据不为空时使用自定义下拉数据
+
 const dictList = [
   {
     toFilterDictName: 'menduner_area_type',
@@ -20,6 +23,12 @@ const dictList = [
     path: commonPath,
     toFilterDictDataList: []
   },
+  {
+    key: 'areaIds',
+    title: '工作城市',
+    path: commonPath,
+    provideData: []
+  },
   {
     toFilterDictName: 'menduner_industry_type',
     toFilterApiType: 'industryList',

+ 1 - 1
src/views/recruit/personal/recommend/components/positionList.vue

@@ -106,7 +106,7 @@ const handleClick = (item, index) => {
   border: 1px solid #fff;
   &:hover {
     box-shadow: 0 16px 40px 0 rgba(153, 153, 153, .3);
-    .salary { color: var(--v-primary-base) !important; }
+    .salary { color: var(--v-error-base) !important; }
   }
 }
 .job-info {