Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mp-enterprise-people-recruitment-h5
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭佳妮(贵阳日报)
mp-enterprise-people-recruitment-h5
Commits
8f9eb317
Commit
8f9eb317
authored
Nov 07, 2024
by
李明环(东信)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
需求修改
parent
d5a8dbe7
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
119 additions
and
38 deletions
+119
-38
common.js
src/api/common.js
+3
-0
form-item.vue
src/components/form/form-item.vue
+21
-2
index.vue
src/pages/dynamic/index.vue
+1
-1
index.vue
src/pages/recommend/index.vue
+2
-2
step1.vue
src/pages/recommend/releasePostion/step1.vue
+13
-7
step2.vue
src/pages/recommend/releasePostion/step2.vue
+11
-5
step3.vue
src/pages/recommend/releasePostion/step3.vue
+3
-3
step4.vue
src/pages/recommend/releasePostion/step4.vue
+56
-13
step5.vue
src/pages/recommend/releasePostion/step5.vue
+2
-2
store.js
src/pages/recommend/releasePostion/store.js
+2
-0
request.js
src/utils/request.js
+2
-2
utils.js
src/utils/utils.js
+3
-1
No files found.
src/api/common.js
View file @
8f9eb317
...
...
@@ -15,3 +15,6 @@ export const getBannerListApi = type => instance.post(`/banner/list/${type}`);
export
const
getCityNameByCodeApi
=
code
=>
instance
.
post
(
`/dict/dictProvinceCityDistrict/find/city/
${
code
}
`
);
//更具code码获取地区名称
export
const
getDistNameByCodeApi
=
code
=>
instance
.
post
(
`/dict/dictProvinceCityDistrict/find/dist/
${
code
}
`
);
// 专业目录
export
const
getMajorTreeApi
=
()
=>
instance
.
post
(
`/dict/major/tree`
);
src/components/form/form-item.vue
View file @
8f9eb317
<
template
>
<div
class=
"form-item"
:style=
"
{ borderWidth: props.border ? '2rpx' : '0' }">
<p
class=
"title"
>
{{
props
.
title
}}
</p>
<p
class=
"title"
>
{{
props
.
title
}}
<span>
{{
props
.
subTitle
}}
</span>
</p>
<div
class=
"temp"
></div>
<img
v-if=
"icon"
class=
"icon"
:src=
"iconPath"
alt=
""
/>
<slot></slot>
</div>
...
...
@@ -11,7 +14,12 @@ const props = defineProps({
// 标题
title
:
{
type
:
String
,
default
:
()
=>
"默认title"
default
:
"默认title"
},
//小标题
subTitle
:
{
type
:
String
,
default
:
""
},
// 边框
border
:
{
...
...
@@ -30,16 +38,27 @@ const iconPath = new URL(`../../static/image/icon/${props.icon}.png`, import.met
<
style
lang=
"scss"
scoped
>
.form-item
{
position
:
relative
;
padding-top
:
36rpx
;
padding-bottom
:
16rpx
;
margin-top
:
32rpx
;
border-bottom
:
2rpx
solid
rgb
(
31
35
41
/
15%
);
.title
{
position
:
absolute
;
top
:
0
;
left
:
0
;
height
:
36rpx
;
margin-bottom
:
32rpx
;
font-size
:
32rpx
;
font-weight
:
600
;
line-height
:
36rpx
;
white-space
:
nowrap
;
span
{
font-size
:
12px
;
color
:
#77818f
;
}
}
.temp
{
margin-top
:
36px
;
}
.icon
{
position
:
absolute
;
...
...
src/pages/dynamic/index.vue
View file @
8f9eb317
...
...
@@ -20,7 +20,7 @@ import { getArticleListApi, getArticleTypesApi } from "@/api/article.js";
import
{
reactive
,
ref
}
from
"vue"
;
const
contentHeight
=
ref
(
"100rpx"
);
const
active
=
ref
(
"zph"
);
const
typeList
=
ref
([{
id
:
"zph"
,
name
:
"
招聘会
"
}]);
const
typeList
=
ref
([{
id
:
"zph"
,
name
:
"
企业招聘报名
"
}]);
getArticleTypesApi
(
2
).
then
(
res
=>
{
typeList
.
value
.
push
(...
res
.
data
);
});
...
...
src/pages/recommend/index.vue
View file @
8f9eb317
...
...
@@ -265,7 +265,7 @@ onShow(() => {
});
// 城市筛选
const
valueCity
=
ref
([]);
const
cityText
=
ref
(
"全
部
"
);
const
cityText
=
ref
(
"全
国
"
);
const
columnsCity
=
ref
([]);
const
getColumnsCity
=
()
=>
{
getTreeListApi
().
then
(
res
=>
{
...
...
@@ -286,7 +286,7 @@ const getColumnsCity = () => {
});
res
.
data
.
unshift
({
code
:
""
,
name
:
"全
部
"
name
:
"全
国
"
});
columnsCity
.
value
.
push
(
res
.
data
);
});
...
...
src/pages/recommend/releasePostion/step1.vue
View file @
8f9eb317
...
...
@@ -3,11 +3,17 @@
<NavBar
:showIcon=
"true"
:showTitle=
"false"
title=
""
backgroundBox=
"#FFFFFF"
></NavBar>
<!--
<Filter
/>
-->
<view
class=
"title"
>
<view
class=
"t1"
>
1/5填写
职
位信息
</view>
<view
class=
"t2"
>
选择对应的职位并填写职
位信息
</view>
<view
class=
"t1"
>
1/5填写
岗
位信息
</view>
<view
class=
"t2"
>
新选择对应的职位类别填写岗
位信息
</view>
</view>
<view
class=
"content"
>
<selectbox
@
update=
"changeWorkMode"
:options=
"EnumWorkMode"
label-key=
"text"
value-key=
"code"
v-model=
"pinias.formData.workMode"
></selectbox>
<selectbox
@
update=
"changeWorkMode"
:options=
"EnumWorkMode"
label-key=
"text"
value-key=
"code"
v-model=
"pinias.formData.workMode"
></selectbox>
<form-row>
<form-item
title=
"职位类型"
>
<wd-col-picker
...
...
@@ -26,13 +32,13 @@
</form-item>
</form-row>
<form-row>
<form-item
title=
"
职位标题
"
icon=
"edit"
>
<input
type=
"text"
v-model=
"pinias.formData.name"
placeholder=
"输入
职位标题如“财务总监”
"
/>
<form-item
title=
"
岗位名称
"
icon=
"edit"
>
<input
type=
"text"
v-model=
"pinias.formData.name"
placeholder=
"输入
岗位名称
"
/>
</form-item>
</form-row>
<form-row>
<form-item
title=
"
职
位描述"
:border=
"false"
icon=
""
>
<textarea
v-model=
"pinias.formData.positionDesc"
placeholder=
"请输入
你的职
位描述"
maxlength=
"800"
></textarea>
<form-item
title=
"
岗
位描述"
:border=
"false"
icon=
""
>
<textarea
v-model=
"pinias.formData.positionDesc"
placeholder=
"请输入
您的岗
位描述"
maxlength=
"800"
></textarea>
</form-item>
</form-row>
</view>
...
...
src/pages/recommend/releasePostion/step2.vue
View file @
8f9eb317
...
...
@@ -3,24 +3,24 @@
<NavBar
:showIcon=
"true"
:showTitle=
"false"
title=
""
backgroundBox=
"#FFFFFF"
></NavBar>
<view
class=
"title"
>
<view
class=
"t1"
>
2/5福利待遇
</view>
<view
class=
"t2"
>
给岗位选择对应
福利待遇
</view>
<view
class=
"t2"
>
请选择岗位对应的
福利待遇
</view>
</view>
<view
class=
"content"
>
<view
class=
"form-item"
>
<view
class=
"form-item-title"
>
职
位薪资
</view>
<view
class=
"form-item-title"
>
岗
位薪资
</view>
<view
v-if=
"pinias.formData.settlementType == 4"
:class=
"`inner flex-between $
{salaryText ? '' : 'placeholder'}`"
@click="onOpen"
>
{{
salaryText
||
"请选择
月薪范围
"
}}
{{
salaryText
||
"请选择
岗位薪资待遇
"
}}
<!--
<view
class=
"arrow"
></view>
-->
<checkbox
class=
"checkbox"
@
click=
"onChecked"
:checked=
"my"
>
面议
</checkbox>
</view>
<view
v-else
:class=
"`inner flex-between $
{salaryText ? '' : 'placeholder'}`" @click="onOpen">
{{
salaryText
||
"请选择
时薪范围
"
}}
{{
salaryText
||
"请选择
岗位薪资待遇
"
}}
<!--
<view
class=
"arrow"
></view>
-->
<checkbox
class=
"checkbox"
@
click=
"onChecked"
:checked=
"my"
>
面议
</checkbox>
</view>
...
...
@@ -50,7 +50,9 @@
</view>
</view>
<view
class=
"form-item describe"
style=
"border: 0"
>
<view
class=
"form-item-title"
>
福利待遇
</view>
<view
class=
"form-item-title"
>
福利待遇
<text
style=
"font-size: 24rpx; font-weight: normal; color: #77818f"
>
(选填)
</text>
</view>
<view
class=
"welfare"
>
<view
v-for=
"(item, index) in benefits"
...
...
@@ -218,6 +220,10 @@ const benefits = ref([
{
text
:
"三险一金"
,
active
:
false
},
{
text
:
"其他"
,
active
:
false
}
]);
const
onChangeBenefits
=
e
=>
{
...
...
src/pages/recommend/releasePostion/step3.vue
View file @
8f9eb317
...
...
@@ -3,11 +3,11 @@
<div
class=
"page"
>
<view
class=
"title"
>
<view
class=
"t1"
>
3/5工作地点
</view>
<view
class=
"t2"
>
添加准确的就职工作地址
</view>
<view
class=
"t2"
>
请选择准确的岗位工作地点
</view>
</view>
<view
class=
"content"
>
<view
class=
"form-item"
>
<view
class=
"form-item-title"
>
工作地
址
</view>
<view
class=
"form-item-title"
>
工作地
点
</view>
<view
:class=
"`inner flex-between $
{address ? '' : 'placeholder'}`">
<wd-col-picker
v-model=
"cityValue"
...
...
@@ -20,7 +20,7 @@
use-default-slot
>
<p
:class=
"
{ placeholder: !cityText }" class="text-single" style="width: 100%">
{{
cityText
||
"请选择
公司所在地
"
}}
{{
cityText
||
"请选择
岗位工作地点
"
}}
</p>
</wd-col-picker>
<view
class=
"arrow"
></view>
...
...
src/pages/recommend/releasePostion/step4.vue
View file @
8f9eb317
...
...
@@ -2,12 +2,12 @@
<div
class=
"page"
>
<NavBar
:showIcon=
"true"
:showTitle=
"false"
title=
""
backgroundBox=
"#FFFFFF"
></NavBar>
<view
class=
"title"
>
<view
class=
"t1"
>
4/5填写
职位信息
</view>
<view
class=
"t2"
>
设置招聘偏好,让报名更精准
</view>
<view
class=
"t1"
>
4/5填写
岗位偏好
</view>
<view
class=
"t2"
>
请设置岗位具体要求
</view>
</view>
<view
class=
"content"
>
<form-row>
<form-item
title=
"身份
要求
"
>
<form-item
title=
"身份"
>
<wd-picker
:columns=
"identityPostion"
value-key=
"code"
...
...
@@ -18,7 +18,7 @@
>
<view
:class=
"`inner flex-between $
{identityText ? '' : 'placeholder'}`">
<view
class=
"flex-align-center"
bind:tap=
"onShowIdentitySelect"
>
{{
identityText
||
"请选择身份
要求
"
}}
{{
identityText
||
"请选择身份"
}}
</view>
</view>
</wd-picker>
...
...
@@ -26,7 +26,7 @@
</form-row>
<form-row
:fill=
"false"
>
<form-item
title=
"学历
要求
"
>
<form-item
title=
"学历"
>
<wd-picker
:columns=
"educationPostion"
value-key=
"code"
...
...
@@ -42,7 +42,7 @@
</view>
</wd-picker>
</form-item>
<form-item
title=
"年龄
要求
"
>
<form-item
title=
"年龄"
>
<!--
<wd-col-picker
v-model=
"value"
:columns=
"columns"
...
...
@@ -60,9 +60,25 @@
</view>
</form-item>
</form-row>
<form-row>
<form-item
title=
"专业"
class=
"major"
>
<wd-col-picker
v-model=
"majorValue"
:columns=
"majorOpstion"
value-key=
"name"
label-key=
"name"
:column-change=
"columnChangeMajor"
@
confirm=
"handleConfirmMajor"
use-default-slot
>
<p
:class=
"
{ placeholder: !majorText }" class="text-single" style="width: 100%">
{{
majorText
||
"请选择专业"
}}
</p>
</wd-col-picker>
</form-item>
</form-row>
<form-row
:fill=
"false"
>
<form-item
title=
"专业技术职称"
icon=
"edit"
>
<form-item
title=
"专业技术职称"
sub-title=
"(选填)"
icon=
"edit"
>
<input
type=
"text"
v-model=
"majorInputValue"
placeholder=
"请填写职称"
/>
</form-item>
<form-item
title=
""
>
...
...
@@ -75,14 +91,14 @@
>
<view
:class=
"`inner flex-between $
{majorSelectValue ? '' : 'placeholder'}`">
<view
class=
"flex-align-center"
bind:tap=
"onShowIdentitySelect"
>
{{
majorSelectValue
||
"请选择职
业
等级"
}}
{{
majorSelectValue
||
"请选择职
称
等级"
}}
</view>
</view>
</wd-picker>
</form-item>
</form-row>
<form-row
:fill=
"false"
>
<form-item
title=
"职业资格/技能等级证书"
icon=
"edit"
>
<form-item
title=
"职业资格/技能等级证书"
sub-title=
"(选填)"
icon=
"edit"
>
<input
type=
"text"
v-model=
"certificateInputValue"
placeholder=
"请填写职业资格"
/>
</form-item>
<form-item
title=
""
>
...
...
@@ -102,7 +118,7 @@
</form-item>
</form-row>
<form-row>
<form-item
title=
"特种作业证"
icon=
"edit"
>
<form-item
title=
"特种作业证"
icon=
"edit"
sub-title=
"(选填)"
>
<input
v-model=
"pinias.formData.specialCertificates"
type=
"text"
placeholder=
"请填写特种作业证"
/>
</form-item>
</form-row>
...
...
@@ -137,6 +153,7 @@ import { useReleasePostionStore } from "./store";
import
FormItem
from
"@/components/form/form-item.vue"
;
import
FormRow
from
"@/components/form/form-row.vue"
;
import
{
validateForm
}
from
"@/utils/utils"
;
import
{
getMajorTreeApi
}
from
"@/api/common"
;
/* tab */
const
pinias
=
useReleasePostionStore
();
const
identityText
=
ref
(
""
);
...
...
@@ -240,12 +257,38 @@ const initSalaryColumns = () => {
];
};
initSalaryColumns
();
/* 专业 */
const
majorValue
=
ref
([]);
const
majorOpstion
=
ref
([]);
const
columnChangeMajor
=
({
selectedItem
,
resolve
,
finish
})
=>
{
if
(
selectedItem
.
children
)
{
resolve
(
selectedItem
.
children
);
}
else
{
finish
();
}
};
const
handleConfirmMajor
=
({
value
})
=>
{
console
.
log
(
value
);
majorText
.
value
=
value
[
0
];
pinias
.
formData
.
majorRequirement
=
value
[
0
];
};
const
majorText
=
ref
(
""
);
getMajorTreeApi
().
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
===
200
)
{
majorOpstion
.
value
.
push
(
Object
.
keys
(
res
.
data
).
map
(
key
=>
({
name
:
key
,
children
:
res
.
data
[
key
]
}))
);
}
});
/* 等级选择项 */
const
levelOptions
=
ref
([
"初级"
,
"中级"
,
"高级"
,
"高级以上"
]);
const
getEnumCertificatesLevel
=
async
()
=>
{
levelOptions
.
value
=
await
getEumData
(
"EnumCertificatesLevel"
);
console
.
log
(
levelOptions
.
value
);
};
getEnumCertificatesLevel
();
/* 专业 major */
...
...
@@ -292,7 +335,7 @@ const next = () => {
if
(
certificateInputValue
.
value
&&
certificateSelectValue
.
value
)
pinias
.
formData
.
professionalCertificates
=
certificateInputValue
.
value
+
"-"
+
certificateSelectValue
.
value
;
console
.
log
(
pinias
.
formData
);
if
(
validateForm
(
pinias
.
formData
,
[
"identityRequirement"
,
"educationRequirement"
]))
{
if
(
validateForm
(
pinias
.
formData
,
[
"identityRequirement"
,
"educationRequirement"
,
"majorRequirement"
]))
{
uni
.
redirectTo
({
url
:
"/pages/recommend/releasePostion/step5"
});
...
...
src/pages/recommend/releasePostion/step5.vue
View file @
8f9eb317
...
...
@@ -2,8 +2,8 @@
<div
class=
"page"
>
<NavBar
:showIcon=
"true"
:showTitle=
"false"
title=
""
backgroundBox=
"#FFFFFF"
></NavBar>
<view
class=
"title"
>
<view
class=
"t1"
>
5/5
更多要求
</view>
<view
class=
"t2"
>
设置招聘偏好,让报名更精准
</view>
<view
class=
"t1"
>
5/5
其他信息
</view>
<view
class=
"t2"
>
请继续完善相关信息
</view>
</view>
<view
class=
"content"
>
<view
class=
"form-item"
>
...
...
src/pages/recommend/releasePostion/store.js
View file @
8f9eb317
...
...
@@ -50,6 +50,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () =
accommodation
:
0
,
provinceCode
:
""
,
cityName
:
""
,
majorRequirement
:
""
,
cityCode
:
""
,
districtCode
:
""
,
street
:
""
,
...
...
@@ -76,6 +77,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () =
settlementType
:
4
,
minSalary
:
null
,
maxSalary
:
null
,
majorRequirement
:
""
,
benefits
:
""
,
identityRequirement
:
1
,
educationRequirement
:
1
,
...
...
src/utils/request.js
View file @
8f9eb317
import
axios
from
"axios"
;
import
{
getToken
,
removeToken
}
from
"@/utils/token"
;
const
baseURL
=
"https://lygsh-api.wjzpgz.com/"
;
//
const baseURL = "http://192.168.11.48:8080/";
//
const baseURL = "https://lygsh-api.wjzpgz.com/";
const
baseURL
=
"http://192.168.11.48:8080/"
;
// 创建一个 axios 实例
const
instance
=
axios
.
create
({
baseURL
,
// 设置基础 URL
...
...
src/utils/utils.js
View file @
8f9eb317
...
...
@@ -131,7 +131,9 @@ export const validateForm = (formData, requiredFields) => {
?
"特种作业证书"
:
field
===
"avatarPath"
?
"头像"
:
"表单"
:
field
===
"majorText"
?
"专业"
:
"完岗位信息"
}
!`
,
icon
:
"none"
,
duration
:
2000
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment