Xiao_123 7 tháng trước cách đây
mục cha
commit
a49721abbd

+ 10 - 10
api/resume.js

@@ -118,16 +118,16 @@ export const getResumeWorkExp = async () => {
 // }
 
 // 获取项目经历
-export const getResumeProjectExp = async () => {
-  return request({
-    url: '/app-api/menduner/system/person/resume/get/project/exp',
-    method: 'GET',
-    custom: {
-      showLoading: false,
-      auth: true
-    }
-  })
-}
+// export const getResumeProjectExp = async () => {
+//   return request({
+//     url: '/app-api/menduner/system/person/resume/get/project/exp',
+//     method: 'GET',
+//     custom: {
+//       showLoading: false,
+//       auth: true
+//     }
+//   })
+// }
 
 // // 获取-技能树形
 // export const getSkillTree = async () => {

+ 14 - 3
hooks/useDictionaries.js

@@ -10,10 +10,20 @@ import {
   getPositionData
 } from '@/api/common'
 
-const setDict = (type, val, cacheTime = 7200) => {
+// const setDict = (type, val, cacheTime = 7200) => {
+const setDict = (type, val) => {
+  if (type === 'areaTreeData') {
+    const obj = val.data.find(e => e.name === '中国')
+    val = obj?.children ? obj.children : []
+  }
+  // 一小时过期
+  const currentTime = new Date()
+  currentTime.setTime(currentTime.getTime() + 3600 * 1000)
+  
   uni.setStorageSync(type, JSON.stringify({
     data: val,
-    expire: Date.now() + cacheTime * 1000
+    // expire: Date.now() + cacheTime * 1000
+    expire: currentTime.getTime()
   }))
 }
 
@@ -41,7 +51,8 @@ export const getDict = (type, params, apiType = 'dict') => {
         positionData: getPositionData
       }
       apiFn[apiType](query).then(data => {
-        setDict(type, data, Date.now())
+        // setDict(type, data, Date.now())
+        setDict(type, data)
         resolve({ data })
       })
     })

+ 1 - 1
layout/components/authModal/login/index.vue

@@ -143,7 +143,7 @@ const current = ref(0)
 const accountLoginRef = ref()
 const smsLoginRef = ref()
 const registerForm = ref()
-const protocol = ref(false)
+const protocol = ref(true)
 const state = ref({
   isMobileEnd: false, // 手机号输入完毕
   codeText: '获取验证码',

+ 1 - 2
pages/index/position.vue

@@ -122,8 +122,7 @@ const loadingMore = () => { // 加载更多
   z-index: 1;
   position: sticky;
   box-shadow: 0px 10rpx 12rpx 0px rgba(195, 195, 195, .25);
-  top: 112rpx;
-
+  top: 100rpx;
 }
 .px-0 { padding-left: 0 !important; padding-right: 0 !important; }
 .pb-10 {

+ 6 - 21
pagesA/info/index.vue

@@ -18,16 +18,16 @@
       <uni-forms-item label="性别" name="sex" required>
 				<uni-data-checkbox v-model="formData.sex" :localdata="sexData" />
 			</uni-forms-item>
-      <uni-forms-item label="电话号码" name="phone">
+      <uni-forms-item label="联系电话" name="phone">
         <uni-easyinput v-model="formData.phone" placeholder="请输入电话号码" />
 			</uni-forms-item>
-      <uni-forms-item required label="常用邮箱" name="email">
+      <uni-forms-item label="常用邮箱" name="email">
         <uni-easyinput v-model="formData.email" placeholder="请输入常用邮箱" />
 			</uni-forms-item>
       <uni-forms-item required label="出生日期" name="birthday">
         <uni-datetime-picker type="date" return-type="timestamp" v-model="formData.birthday" />
 			</uni-forms-item>
-      <uni-forms-item required label="首次工作时间" name="firstWorkTime">
+      <uni-forms-item label="首次工作时间" name="firstWorkTime">
         <uni-datetime-picker type="date" return-type="timestamp" v-model="formData.firstWorkTime" />
 			</uni-forms-item>
 			<uni-forms-item required label="工作年限" name="expType" >
@@ -42,13 +42,13 @@
       <uni-forms-item required label="求职状态" name="jobStatus" >
 				<uni-data-picker v-model="formData.jobStatus" :localdata="dictObj.jobStatus" :clear-icon="false" popup-title="请选择求职状态" :map="map"></uni-data-picker>
 			</uni-forms-item>
-      <uni-forms-item required label="婚姻状况" name="maritalStatus" >
+      <uni-forms-item label="婚姻状况" name="maritalStatus" >
 				<uni-data-picker v-model="formData.maritalStatus" :localdata="dictObj.marital" :clear-icon="false" popup-title="请选择婚姻状况" :map="map"></uni-data-picker>
 			</uni-forms-item>
-      <uni-forms-item required label="所在城市" name="areaId" >
+      <uni-forms-item label="所在城市" name="areaId" >
 				<uni-data-picker v-model="formData.areaId" :localdata="dictObj.areaTreeData" :clear-icon="false" popup-title="请选择所在城市" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
 			</uni-forms-item>
-      <uni-forms-item required label="户籍地" name="regId" >
+      <uni-forms-item label="户籍地" name="regId" >
 				<uni-data-picker v-model="formData.regId" :localdata="dictObj.areaTreeData" :clear-icon="false" popup-title="请选择户籍所在地" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
 			</uni-forms-item>
 			<view class="f-horizon-center">
@@ -134,15 +134,9 @@ const rules = {
 	sex : {
 		rules: [{required: true, errorMessage: '请选择您的性别' }]
 	},
-	email: {
-		rules: [{required: true, errorMessage: '请输入您的常用邮箱' }]
-	},
 	birthday: {
 		rules: [{required: true, errorMessage: '请选择您的出生日期' }]
 	},
-  firstWorkTime: {
-		rules: [{required: true, errorMessage: '请选择您的首次工作时间' }]
-	},
   expType: {
 		rules: [{required: true, errorMessage: '请选择您的工作年限' }]
 	},
@@ -154,15 +148,6 @@ const rules = {
 	},
   jobStatus: {
 		rules: [{required: true, errorMessage: '请选择您的求职状态' }]
-	},
-  maritalStatus: {
-		rules: [{required: true, errorMessage: '请选择您的婚姻状况' }]
-	},
-  areaId: {
-		rules: [{required: true, errorMessage: '请选择您的所在城市' }]
-	},
-  regId: {
-		rules: [{required: true, errorMessage: '请选择您的户籍所在地' }]
 	}
 }
 

+ 1 - 2
pagesA/resumeOnline/dict.js

@@ -45,7 +45,7 @@ const dictList = [
     apiType: 'areaList', 
     key: 'interestedAreaIdList', 
     label: 'interestedArea', 
-    params: { type: undefined },
+    // params: { type: undefined },
     isArray: true, 
     value: 'areaTypeData', 
     itemKey: 'id', 
@@ -57,7 +57,6 @@ const dictList = [
 const getDictList = async () => {
   dictList.forEach(async (val) => {
     const { data } = await getDict(val.type, val.params, val.apiType)
-    console.log(val.type, val.params, val.apiType,data)
     if (!data?.data) {
       dictObj[val.value] = []
       return

+ 2 - 56
pagesA/resumeOnline/index.vue

@@ -12,7 +12,7 @@
           ></uni-icons>
         </view>
         <view class="baseInfo-desc">{{ baseInfo.jobStatusText }}</view>
-        <view class="baseInfo-desc">{{ baseInfo.expTypeText }} - {{ baseInfo.age }}岁 - {{ baseInfo.eduTypeText }}</view>
+        <view class="baseInfo-desc">{{ baseInfo.expTypeText ? baseInfo.expTypeText + ' - ' : '' }}{{ baseInfo.age ? baseInfo.age + '岁' : '' }}{{ baseInfo.eduTypeText ? ' - ' + baseInfo.eduTypeText : '' }}</view>
         <view class="baseInfo-phone">
           <uni-icons
             type="icon-Phone"
@@ -156,38 +156,6 @@
         </view>
       </view>
     </view>
-    <view class="projectExp workExp borderLine">
-      <view class="titleBox">
-        <text class="title">项目经历</text>
-        <uni-icons
-          type="icon-add"
-          color="#666"
-          custom-prefix="iconfont"
-          size="18"
-        ></uni-icons>
-      </view>
-      <view class="content">
-        <view
-          v-for="project in projectExp"
-          :key="project.id"
-          class="content-item"
-        >
-          <view class="content-title">
-            <view class="name">{{ project.name }}</view>
-            <view class="time">
-              {{ project.time }}
-              <uni-icons
-                class="icon"
-                type="right"
-                color="#aaa"
-                size="16"
-              />
-            </view>
-          </view>
-          <view class="content-main ellipsis-2">描述:{{ project.content }}</view>
-        </view>
-      </view>
-    </view>
     <view class="workExp trainExp borderLine">
       <view class="titleBox">
         <text class="title">培训经历</text>
@@ -251,7 +219,6 @@ import {
   getResumeJobInterested,
   getResumeEduExp,
   getResumeWorkExp,
-  getResumeProjectExp,
   getResumeTrainExp,
   getResumePersonSkill
 } from '@/api/resume'
@@ -259,6 +226,7 @@ import { getText } from '@/utils/getText'
 import { getDict } from '@/hooks/useDictionaries'
 import { userStore } from '@/store/user'
 import { dealJobData } from './dict'
+import layoutPage from '@/layout'
 
 const useUserStore = userStore()
 
@@ -266,7 +234,6 @@ const baseInfo = ref({})
 const intention = ref([])
 const educationExp = ref([])
 const workExp = ref([])
-const projectExp = ref([])
 const trainExp = ref([])
 const skillExp = ref([])
 
@@ -274,9 +241,6 @@ function handleTo (str) {
   uni.navigateTo({ url: `/pagesA/resumeOnline/${str}` })
 }
 
-
-
-
 // 获取基础信息
 function getBaseInfo () {
   const { name, phone, ...obj } = useUserStore.baseInfo
@@ -340,22 +304,6 @@ async function getWorkExp () {
   })
 }
 
-// 项目经历
-async function getProjectExpData () {
-  const { data } = await getResumeProjectExp()
-  if (!data || !data.length) {
-    return
-  }
-  // 完成度展示
-  // emit('complete', { status: Boolean(data?.length), id: 'projectExperience' })
-  projectExp.value = data.map(e => {
-    return {
-      ...e,
-      time: `${timesTampChange(e.startTime ,'Y')}-${e.endTime ? timesTampChange(e.endTime ,'Y') : '至今'} `
-    }
-  })
-}
-
 // 培训经历
 async function getTrainExpData () {
   const { data } = await getResumeTrainExp()
@@ -410,8 +358,6 @@ getJobInterested()
 getEduExp()
 // 获取工作经验
 getWorkExp()
-// 项目经历
-getProjectExpData()
 // 培训经历
 getTrainExpData()
 // 职业技能

+ 9 - 9
pagesB/agreement/privacy.vue

@@ -1,20 +1,20 @@
 <template>
   <view class="wrap">
     <view class="wrap-box">
-      <view class="text-center font-weight-bold font-size-20">门墩儿隐私政策</view>
+      <view class="text-center font-weight-bold font-size-20">门墩儿招聘隐私政策</view>
       <view class="my tac">(本协议于2024年9月20日最新修订)</view>
       <view>尊敬的用户: </view>
-      <view class="my">在您成为门墩儿注册用户前,请您仔细阅读下面条款内容</view>
+      <view class="my">在您成为门墩儿招聘注册用户前,请您仔细阅读下面条款内容</view>
       <view>版本更新提示: </view>
       <view class="my">1、按照产品功能和业务场景重新梳理、归类了个人信息收集和使用情况。</view>
       <view>正文: </view>
       <view class="my">
-        门墩儿非常重视用户的隐私和个人信息保护。您在使用我们服务时(如进行找工作、招聘、职业技能学习及职业问答活动等),我们可能会收集和使用您的相关信息。我们希望通过《门墩儿隐私政策》(以下简称“本隐私政策”)帮助您了解我们会收集哪些信息、
-        为什么收集这些信息,会利用这些信息做些什么及如何保护这些信息。了解这些内容对于您行使隐私权及保护您的个人信息至关重要。请您在使用我们服务前仔细阅读此《门墩儿隐私政策》并充分理解本隐私政策的全部内容,确定了解我们对您个人信息的处理规则。阅读过程中,如您有任何疑问,可联系我们进行咨询;一旦您继续访问或使用门墩儿,
-        即表示您同意此等隐私政策,授权并接受我们按照本隐私政策的规定收集、保存、使用、共享、披露您的信息。如您不同意协议中的任何条款,您应立即停止访问门墩儿及使用相关服务。
+        门墩儿招聘非常重视用户的隐私和个人信息保护。您在使用我们服务时(如进行找工作、招聘、职业技能学习及职业问答活动等),我们可能会收集和使用您的相关信息。我们希望通过《门墩儿招聘隐私政策》(以下简称“本隐私政策”)帮助您了解我们会收集哪些信息、
+        为什么收集这些信息,会利用这些信息做些什么及如何保护这些信息。了解这些内容对于您行使隐私权及保护您的个人信息至关重要。请您在使用我们服务前仔细阅读此《门墩儿招聘隐私政策》并充分理解本隐私政策的全部内容,确定了解我们对您个人信息的处理规则。阅读过程中,如您有任何疑问,可联系我们进行咨询;一旦您继续访问或使用门墩儿招聘
+        即表示您同意此等隐私政策,授权并接受我们按照本隐私政策的规定收集、保存、使用、共享、披露您的信息。如您不同意协议中的任何条款,您应立即停止访问门墩儿招聘及使用相关服务。
       </view>
-      <view>本隐私政策适用于您通过任何方式(包括但不限于微信公众号、微信小程序等)对门墩儿各项服务的访问和使用。另外,若您通过使用第三方产品和/或服务(如第三方账号)来使用门墩儿服务,您的信息还应当适用该第三方的隐私政策。</view>
-      <view class="mt">本隐私政策的相关术语,在未作特别说明的情况下可参照《门墩儿用户协议》。</view>
+      <view>本隐私政策适用于您通过任何方式(包括但不限于微信公众号、微信小程序等)对门墩儿招聘各项服务的访问和使用。另外,若您通过使用第三方产品和/或服务(如第三方账号)来使用门墩儿招聘服务,您的信息还应当适用该第三方的隐私政策。</view>
+      <view class="mt">本隐私政策的相关术语,在未作特别说明的情况下可参照《门墩儿招聘用户协议》。</view>
 
       <view v-for="(item,index) in data" :key="index">
         <uni-title type="h1" :title="item.title" color="#000"></uni-title>
@@ -56,7 +56,7 @@ const data = [
       },
       {
         text: '(二)为使用基本功能/服务用户须提供并授权平台收集、使用的信息',
-        subText: '在您使用平台基本功能/服务的过程中,我们可能会收集、保存和使用下列与您有关的信息。如果您不提供相关信息,您将无法使用平台的服务/具体功能。请您注意,您在使用平台服务/功能时所提供的所有个人信息,除非您删除或通过系统设置拒绝我们收集,否则将在您使用我们的产品与/或服务期间持续授权我们使用。部分个人信息的收集,需要您同意调取所使用设备的相应系统权限,具体参见第本条款第(五)部分需要您授权同意调取系统权限的情形。我们收集的您的个人信息类型会因产品/服务的内容不同而有所区别,具体以产品/服务实际提供为准。点击查看《门墩儿已收集个人信息清单》。这些服务/功能包括但不限于:',
+        subText: '在您使用平台基本功能/服务的过程中,我们可能会收集、保存和使用下列与您有关的信息。如果您不提供相关信息,您将无法使用平台的服务/具体功能。请您注意,您在使用平台服务/功能时所提供的所有个人信息,除非您删除或通过系统设置拒绝我们收集,否则将在您使用我们的产品与/或服务期间持续授权我们使用。部分个人信息的收集,需要您同意调取所使用设备的相应系统权限,具体参见第本条款第(五)部分需要您授权同意调取系统权限的情形。我们收集的您的个人信息类型会因产品/服务的内容不同而有所区别,具体以产品/服务实际提供为准。这些服务/功能包括但不限于:',
         content: [
           { 
             text: '1. 用户注册',
@@ -115,7 +115,7 @@ const data = [
       },
       {
         text: '(四) 从第三方获取您的个人信息',
-        subText: '我们可能从第三方获取您授权共享的账户信息(头像、昵称),并在您同意本隐私政策后将您的第三方账户与您的门墩儿账户绑定,使您可以通过第三方账户直接登录并使用我们的产品与/或服务。我们会将依据与第三方的约定、对个人 信息来源的合法性进行确认后,在符合相关法律和法规规定的前提下,使用您的这些个人信息。',
+        subText: '我们可能从第三方获取您授权共享的账户信息(头像、昵称),并在您同意本隐私政策后将您的第三方账户与您的门墩儿招聘账户绑定,使您可以通过第三方账户直接登录并使用我们的产品与/或服务。我们会将依据与第三方的约定、对个人 信息来源的合法性进行确认后,在符合相关法律和法规规定的前提下,使用您的这些个人信息。',
         content: [],
         endText: ''
       },

+ 4 - 4
pagesB/agreement/user.vue

@@ -1,14 +1,14 @@
 <template>
   <view class="wrap">
     <view class="wrap-box">
-      <view class="text-center font-weight-bold font-size-20">门墩儿用户协议</view>
+      <view class="text-center font-weight-bold font-size-20">门墩儿招聘用户协议</view>
       <view class="my tac">(本协议于2024年9月20日最新修订)</view>
-      <text>尊敬的用户,我们对《门墩儿用户协议》进行了更新,此版本主要更新内容涉及门墩儿企业账号身份和资质认证、推广营销相关规则等内容,请您仔细阅读更新后的条款。</text>
+      <text>尊敬的用户,我们对《门墩儿招聘用户协议》进行了更新,此版本主要更新内容涉及门墩儿招聘企业账号身份和资质认证、推广营销相关规则等内容,请您仔细阅读更新后的条款。</text>
       <view class="my">正文: </view>
       <view>
-        《门墩儿用户协议》(以下简称“本协议”)作为门墩儿(以下简称“本网站”)提供服务的依据,确定用户在何种条件、以何种方式使用本网站及本网站的服务(具体载体包括但不限于微信公众号平台、微信小程序等)。
+        《门墩儿招聘用户协议》(以下简称“本协议”)作为门墩儿招聘(以下简称“本网站”)提供服务的依据,确定用户在何种条件、以何种方式使用本网站及本网站的服务(具体载体包括但不限于微信公众号平台、微信小程序等)。
         请您认真阅读本协议(尤其是字体加粗及/或下划线的内容),当您点击“注册”或者“登录”或其他方式确认即表示您已经仔细阅读并完全理解、同意本协议项下的全部条款;如您对本协议的任何条款表示异议,您应当立即停止访问门墩儿及使用相关服务。
-        用户根据自身需求可以向本平台购买付费服务/产品,相关服务/产品的部分或全部利用本网站所提供的互联网信息业务和增值业务,在遵守本用户协议的规定基础上还需遵守《门墩儿在线增值服务协议》
+        用户根据自身需求可以向本平台购买付费服务/产品,相关服务/产品的部分或全部利用本网站所提供的互联网信息业务和增值业务,在遵守本用户协议的规定基础上还需遵守《门墩儿招聘在线增值服务协议》
         (适用于在线支付购买的产品)、服务合同等付费服务涉及的特殊条款;您应当在购买前认真阅读,一旦购买付费服务即视为接受相关条款。
       </view>
       <view class="mb">

+ 1 - 1
utils/getText.js

@@ -15,7 +15,7 @@ export const getBaseInfoDictOfName = async (index = 0, baseInfo, value, addKeyNa
     { dictType: 'menduner_exp_type', itemText: 'label', itemValue: 'value' },
     { dictType: 'menduner_sex', itemText: 'label', itemValue: 'value' },
     { dictType: 'menduner_job_type', itemText: 'label', itemValue: 'value' },
-    { dictType: 'menduner_job_status', itemText: 'label', itemValue: 'value' },
+    { dictType: 'menduner_job_seek_status', itemText: 'label', itemValue: 'value' },
     { dictType: 'menduner_marital_status', itemText: 'label', itemValue: 'value' },
   ]
   const e = test[index]