lifanagju_citu 7 miesięcy temu
rodzic
commit
32ee34aa45

+ 13 - 7
api/resume.js

@@ -163,13 +163,19 @@ export const getResumePersonSkill = async () => {
 //   })
 // }
 
-// // 保存求职意向
-// export const saveResumeJobInterested = async (data) => {
-//   return await request.post({
-//     url: '/app-api/menduner/system/person/resume/job/interested/save',
-//     data
-//   })
-// }
+// 保存求职意向
+export const saveResumeJobInterested = async (data) => {
+  return request({
+    url: '/app-api/menduner/system/person/resume/job/interested/save',
+    method: 'POST',
+    data,
+    custom: {
+      showLoading: false,
+      auth: true
+    }
+  })
+}
+
 
 // // 删除求职意向
 // export const deleteResumeJobInterested = async (id) => {

+ 4 - 4
pages.json

@@ -55,15 +55,15 @@
 					}
 				},
 				{
-					"path": "resumeOnline/advantage",
+					"path": "resumeOnline/portrait",
 					"style": {
-						"navigationBarTitleText": "个人优势"
+						"navigationBarTitleText": "个人画像标签选择"
 					}
 				},
 				{
-					"path": "resumeOnline/portrait",
+					"path": "resumeOnline/advantage",
 					"style": {
-						"navigationBarTitleText": "个人画像标签选择"
+						"navigationBarTitleText": "个人优势"
 					}
 				},
 				{

+ 9 - 0
pagesA/resumeOnline/educationExp.vue

@@ -0,0 +1,9 @@
+<!--  -->
+<template>
+  <view>教育经历</view>
+</template>
+
+<script setup>
+</script>
+<style lang="scss" scoped>
+</style>

+ 42 - 0
pagesA/resumeOnline/index.vue

@@ -72,6 +72,7 @@
           color="#666"
           custom-prefix="iconfont"
           size="18"
+          @tap="popupOpen('jobIntention')"
         ></uni-icons>
       </view>
       <view class="content">
@@ -211,6 +212,18 @@
         </view>
       </view>
     </view>
+    <!-- 底部弹出 Popup -->
+    <uni-popup ref="popupRef" type="bottom" :mask-click="true" background-color="#fff">
+      <view class="popupBox">
+        <view class="handleBtnBox borderLine">
+          <view class="close" @click="popupRef.close()">取消</view>
+          <view class="save" @click="null">保存</view>
+        </view>
+        <view class="popupContent">
+          <jobIntention></jobIntention>
+        </view>
+      </view>
+    </uni-popup>
   </layout-page>
 </template>
 
@@ -230,6 +243,7 @@ import { userStore } from '@/store/user'
 import { dealJobData } from './dict'
 import layoutPage from '@/layout'
 import { onShow } from '@dcloudio/uni-app'
+import jobIntention from './jobIntention.vue'
 
 const useUserStore = userStore()
 
@@ -351,6 +365,11 @@ async function getSkillExpData () {
   })
 }
 
+const popupRef = ref()
+const popupOpen = (type) => {
+  popupRef.value.open()
+}
+
 // 求职状态字典
 // getJobStatus()
 // 获取基础信息
@@ -559,4 +578,27 @@ $px: 30rpx;
     }
   }
 }
+
+.popupBox {
+  height: 90vh;
+  .handleBtnBox {
+    // padding: 0 $px;
+    display: flex;
+    justify-content: space-between;
+    view {
+      padding: $px/2;
+      margin-bottom: $px/2;
+    }
+    .save {
+      color: #008978;
+    }
+    .close {
+      color: gray;
+    }
+  }
+  .popupContent {
+    padding: $px;
+    padding-bottom: 100rpx;
+  }
+}
 </style>

+ 72 - 0
pagesA/resumeOnline/jobIntention.vue

@@ -0,0 +1,72 @@
+<!--  -->
+<template>
+  <view>
+    <uni-forms ref="form" :modelValue="formData" :rules="rules" validateTrigger="bind" label-width="100%" label-align="left" label-position="top">
+      <uni-forms-item label="期望岗位" name="positionId">
+				<uni-data-picker popup-title="请选择期望岗位" v-model="formData.positionId" :localdata="dictObj?.positionTreeData || []" :clear-icon="false" :map="{ text: 'nameCn', value: 'id'}"></uni-data-picker>
+			</uni-forms-item>
+      <uni-forms-item label="期望行业" name="industryIdList">
+				<uni-data-picker popup-title="请选择期望行业" v-model="formData.industryIdList" :localdata="dictObj?.industryTreeData || []" :clear-icon="false" :map="{ text: 'nameCn', value: 'id'}"></uni-data-picker>
+			</uni-forms-item>
+      <uni-forms-item label="期望薪资(最低要求)" name="payFrom">
+        <uni-number-box v-model="formData.payFrom" :min="1" :max="999999999" :step="100" :width="150" @change="payChange"></uni-number-box>
+			</uni-forms-item>
+      <uni-forms-item label="期望薪资(最高要求)" name="payTo">
+        <uni-number-box v-model="formData.payTo" :min="payToMin" :max="999999999" :step="100" :width="150"></uni-number-box>
+			</uni-forms-item>
+      <uni-forms-item label="求职类型" name="jobType">
+				<uni-data-picker popup-title="请选择求职类型" v-model="formData.jobType" :localdata="dictObj?.jobType || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
+			</uni-forms-item>
+      <uni-forms-item label="工作城市" name="workAreaProvinceId">
+				<uni-data-picker popup-title="请选择工作城市" v-model="formData.workAreaProvinceId" :localdata="dictObj?.areaTreeData || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
+			</uni-forms-item>
+      <uni-forms-item label="其它感兴趣的城市" name="interestedAreaIdList">
+				<uni-data-picker popup-title="其它感兴趣的城市" v-model="formData.interestedAreaIdList" :localdata="dictObj?.areaTreeData || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
+			</uni-forms-item>
+    </uni-forms>
+    <!-- <view style="text-align: center; font-size: 13px; color: gray;">已加载全部</view> -->
+  </view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue'
+import { dictObj } from '@/utils/position.js'
+
+const formData = reactive({ positionId: '', payFrom: 0, payTo: 0 })
+const form = ref()
+const getValues = async () => {
+  const valid = await unref(form).validate()
+  return valid ? formData.value : false
+}
+
+defineExpose({
+  getValues
+})
+
+const rules = {
+	positionId:{
+		rules: [{required: true, errorMessage: '请选择期望岗位' }]
+	},
+	payFrom:{
+		rules: [{required: true, errorMessage: '请输入薪资最低要求' }]
+	},
+	payTo:{
+		rules: [{required: true, errorMessage: '请输入薪资最高要求' }]
+	},
+	jobType:{
+		rules: [{required: true, errorMessage: '请选择求职类型' }]
+	},
+	workAreaProvinceId:{
+		rules: [{required: true, errorMessage: '请选择工作城市' }]
+	},
+}
+
+const payToMin = ref(1)
+const payChange = (val) => {
+  payToMin.value = val
+  if (val > formData.payTo) formData.payTo = val
+}
+
+</script>
+<style lang="scss" scoped>
+</style>

+ 9 - 0
pagesA/resumeOnline/trainingExperience.vue

@@ -0,0 +1,9 @@
+<!--  -->
+<template>
+  <view>培训经历</view>
+</template>
+
+<script setup>
+</script>
+<style lang="scss" scoped>
+</style>

+ 9 - 0
pagesA/resumeOnline/vocationalSkills.vue

@@ -0,0 +1,9 @@
+<!--  -->
+<template>
+  <view>职业技能</view>
+</template>
+
+<script setup>
+</script>
+<style lang="scss" scoped>
+</style>

+ 9 - 0
pagesA/resumeOnline/workExperience.vue

@@ -0,0 +1,9 @@
+<!--  -->
+<template>
+  <view>工作经历</view>
+</template>
+
+<script setup>
+</script>
+<style lang="scss" scoped>
+</style>

+ 3 - 1
utils/position.js

@@ -29,7 +29,9 @@ const dictList = ref([
   { type: 'menduner_exp_type', value: 'exp', key: 'expType', label: 'expName' },
   { type: 'menduner_area_type', value: 'area', key: 'areaId', label: 'areaName', params: {}, apiType: 'areaList', nameKey: 'name', valueKey: 'id' },
   { type: 'positionData', value: 'position', key: 'positionId', label: 'positionName', params: {}, apiType: 'positionData', nameKey: 'nameCn', valueKey: 'id' },
-  { type: 'areaTreeData', value: 'areaTreeData', key: 'areaId', label: 'areaName', params: {}, apiType: 'areaTreeData', nameKey: 'name', valueKey: 'id' }
+  { type: 'areaTreeData', value: 'areaTreeData', key: 'areaId', label: 'areaName', params: {}, apiType: 'areaTreeData', nameKey: 'name', valueKey: 'id' },
+  { type: 'positionTreeData', value: 'positionTreeData', key: 'positionTreeId', label: 'positionName', params: {}, apiType: 'positionTreeData', nameKey: 'nameCn', valueKey: 'id' },
+  { type: 'industryTreeData', value: 'industryTreeData', key: 'industryTreeId', label: 'industryName', params: {}, apiType: 'industryTreeData', nameKey: 'nameCn', valueKey: 'id' },
 ])
 
 // 字典