Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mp-customer-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-customer-people-recruitment-h5
Commits
8728794d
Commit
8728794d
authored
Nov 01, 2024
by
陈宗胤(贵阳日报)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
改
parent
d8849108
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
224 additions
and
84 deletions
+224
-84
user.js
src/api/user.js
+1
-1
index.vue
src/pages/messageList/index.vue
+11
-5
index.vue
src/pages/postionList/index.vue
+20
-4
index.vue
src/pages/postionList/positionDetails/index.vue
+7
-5
index.vue
src/pages/user/feedbackDetails/index.vue
+5
-3
index.vue
src/pages/user/resume/educationExperience/index.vue
+4
-4
index.vue
src/pages/user/resume/essentialInformation/index.vue
+82
-13
index.vue
src/pages/user/resume/index.vue
+70
-34
index.vue
src/pages/user/resume/introduce/index.vue
+3
-1
index.vue
src/pages/user/resume/workExperience/index.vue
+10
-5
request.js
src/utils/request.js
+2
-0
utils.js
src/utils/utils.js
+9
-9
No files found.
src/api/user.js
View file @
8728794d
...
...
@@ -4,7 +4,7 @@ import instance from "@/utils/request";
export
const
testLogin
=
params
=>
instance
.
post
(
"/user/smsLogin"
,
params
);
export
const
getSmsCode
=
params
=>
instance
.
postForm
(
"/user/getSmsCode"
,
params
);
// 新华登录
export
const
xinhuaMpLogin
=
params
=>
instance
.
post
(
"/user/
appUser/
xinhua/mpLogin"
,
params
);
export
const
xinhuaMpLogin
=
params
=>
instance
.
post
(
"/user/xinhua/mpLogin"
,
params
);
// 获取用户简历
export
const
getUserResumeApi
=
()
=>
instance
.
post
(
"/user/resume/info"
);
// 获取等用户信息
...
...
src/pages/messageList/index.vue
View file @
8728794d
...
...
@@ -4,7 +4,7 @@
<div
class=
"message-list"
>
<scroll-view
:scroll-y=
"true"
@
scrolltolower=
"getList"
>
<view
class=
"system"
>
<view
class=
"item flex-between"
v-for=
"(v, i) in list"
:key=
"i"
@
tap=
"toDetail(v
.id
)"
>
<view
class=
"item flex-between"
v-for=
"(v, i) in list"
:key=
"i"
@
tap=
"toDetail(v)"
>
<img
src=
"@/static/image/user/default-avatar.png"
alt=
""
/>
<view
class=
"content"
>
<view
class=
"name-date flex-between"
>
...
...
@@ -64,10 +64,16 @@ const getList = () => {
});
};
const
toDetail
=
id
=>
{
uni
.
navigateTo
({
url
:
`/pages/user/feedbackDetails/index?id=
${
id
}
`
});
const
toDetail
=
data
=>
{
if
(
data
.
type
==
1
)
{
uni
.
navigateTo
({
url
:
`/pages/user/deliveryFeedback/index?id=
${
data
.
targetId
}
`
});
}
else
{
uni
.
navigateTo
({
url
:
`/pages/user/feedbackDetails/index?id=
${
data
.
targetId
}
`
});
}
};
onReachBottom
(()
=>
{
pageNo
++
;
...
...
src/pages/postionList/index.vue
View file @
8728794d
...
...
@@ -100,13 +100,19 @@
<view
class=
"right"
>
<view
class=
"title"
>
{{
active
===
0
?
'薪酬要求'
:
selectionTitle
}}
</view>
<view
v-if=
"active===0"
class=
"list"
>
<view
class=
"item"
:class=
"
{'light-two':active
Two
===index}" v-for="(item,index) in salary" :key="index" @tap="choiceDetails(item,index)">
{{
item
.
text
}}
</view>
<view
class=
"item"
:class=
"
{'light-two':active
One
===index}" v-for="(item,index) in salary" :key="index" @tap="choiceDetails(item,index)">
{{
item
.
text
}}
</view>
</view>
<view
v-if=
"active
!==0 && active!==4
"
class=
"list"
>
<view
v-if=
"active
===1
"
class=
"list"
>
<view
class=
"item"
:class=
"
{'light-two':activeTwo===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">
{{
item
.
text
}}
</view>
</view>
<view
v-if=
"active==2"
class=
"list"
>
<view
class=
"item"
:class=
"
{'light-two':activeThree===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">
{{
item
.
text
}}
</view>
</view>
<view
v-if=
"active==3"
class=
"list"
>
<view
class=
"item"
:class=
"
{'light-two':activeFour===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">
{{
item
.
text
}}
</view>
</view>
<view
v-if=
"active===4"
class=
"list"
>
<view
class=
"item"
:class=
"
{'light-two':active
Two
===index}" v-for="(item,index) in dataList" :key="item.id" @tap="choiceDetails(item,index)">
{{
item
.
name
}}
</view>
<view
class=
"item"
:class=
"
{'light-two':active
Five
===index}" v-for="(item,index) in dataList" :key="item.id" @tap="choiceDetails(item,index)">
{{
item
.
name
}}
</view>
</view>
</view>
</view>
...
...
@@ -168,7 +174,11 @@ let contentHeight = ref(null);
let
showDoubt
=
ref
(
false
);
let
showInvalid
=
ref
(
false
);
let
active
=
ref
(
0
);
let
activeOne
=
ref
(
-
1
);
let
activeTwo
=
ref
(
-
1
);
let
activeThree
=
ref
(
-
1
);
let
activeFour
=
ref
(
-
1
);
let
activeFive
=
ref
(
-
1
);
let
salary
=
ref
([{
text
:
'不限'
,
min
:
null
,
max
:
null
},{
text
:
'3k以下'
,
min
:
0
,
max
:
3000
},{
text
:
'3-5k'
,
min
:
3000
,
max
:
5000
},{
text
:
'5-10k'
,
min
:
5000
,
max
:
10000
},{
text
:
'10-20k'
,
min
:
10000
,
max
:
20000
},{
text
:
'20-50k'
,
min
:
20000
,
max
:
50000
},{
text
:
'50k以上'
,
min
:
50000
,
max
:
100000
}])
onShow
(()
=>
{
...
...
@@ -413,28 +423,34 @@ const choice = (index) => {
}
}
const
choiceDetails
=
(
data
,
index
)
=>
{
activeTwo
.
value
=
index
*
1
pageNo
=
1
;
positionListData
.
value
=
[];
switch
(
active
.
value
)
{
case
0
:
activeOne
.
value
=
index
*
1
minSalary
=
data
.
min
;
maxSalary
=
data
.
max
;
getListData
();
break
;
case
1
:
activeTwo
.
value
=
index
*
1
educationRequirement
=
data
.
code
;
if
(
data
.
code
==
'0'
)
educationRequirement
=
null
getListData
();
break
;
case
2
:
activeThree
.
value
=
index
*
1
accommodation
=
data
.
code
;
getListData
();
break
;
case
3
:
activeFour
.
value
=
index
*
1
identityRequirement
=
data
.
code
;
if
(
data
.
code
==
'0'
)
identityRequirement
=
null
getListData
();
break
;
default
:
activeFive
.
value
=
index
*
1
jobTypePid
=
data
.
id
;
getListData
();
}
...
...
src/pages/postionList/positionDetails/index.vue
View file @
8728794d
...
...
@@ -67,10 +67,11 @@
<view
class=
"pos-int"
>
<text
class=
"pos-label"
v-for=
"(item, index) in partTimeJobData.benefits"
:key=
"index"
>
{{
item
}}
</text>
</view>
<view
class=
"pos-duty"
:class=
"
{ activeClass: dutyFlag }">
{{
partTimeJobData
.
positionDesc
}}
</view>
<view
class=
"duty-more"
@
tap=
"moreClick"
v-if=
"partTimeJobData.jobDesc?.length > 150 && dutyFlag === false"
>
<!--
<view
class=
"pos-duty"
:class=
"
{ activeClass: dutyFlag }">
{{
partTimeJobData
.
positionDesc
}}
</view>
-->
<rich-text
class=
"pos-duty"
:nodes=
"partTimeJobData.positionDesc"
></rich-text>
<!--
<view
class=
"duty-more"
@
tap=
"moreClick"
v-if=
"partTimeJobData.positionDesc?.length > 125 && dutyFlag === false"
>
<text>
查看全部
</text>
</view>
</view>
-->
</view>
<!-- 公司信息 -->
<view
class=
"cos-info margin-top24"
>
...
...
@@ -216,6 +217,7 @@ const markers = reactive([
const
getJobDetail
=
id
=>
{
getJobDetailApi
(
id
).
then
(
async
({
data
})
=>
{
data
.
id
=
id
;
data
.
position
.
positionDesc
=
data
.
position
.
positionDesc
.
replace
(
/
\n
/g
,
'<br>'
)
partTimeJobData
.
value
=
data
.
position
;
partTimeJobData
.
value
.
companyInfo
=
data
.
companyInfo
;
partTimeJobData
.
value
.
application
=
data
.
application
;
...
...
@@ -786,8 +788,8 @@ onLoad(({ id }) => {
color
:
#1b2026
;
letter-spacing
:
0
;
word-break
:
break-all
;
-webkit-line-clamp
:
5
;
-webkit-box-orient
:
vertical
;
//
-webkit-line-clamp: 5;
//
-webkit-box-orient: vertical;
}
}
.cos-info
{
...
...
src/pages/user/feedbackDetails/index.vue
View file @
8728794d
...
...
@@ -22,7 +22,7 @@
</view>
</view>
<view
class=
"tip"
v-if=
"!id"
>
上传图片(可上传0-3张图片)
</view>
<view
class=
"msg"
>
<view
class=
"msg"
v-if=
"id"
>
<view
class=
"title"
>
平台回复
</view>
<view
class=
"hf"
>
{{
detail
.
replyMessage
||
"暂无回复"
}}
</view>
</view>
...
...
@@ -54,8 +54,10 @@ const params = reactive({
imagesPath
:
""
});
onLoad
(
option
=>
{
id
.
value
=
option
.
id
;
feedbackByIdFn
(
option
.
id
);
if
(
option
.
id
)
{
id
.
value
=
option
.
id
;
feedbackByIdFn
(
option
.
id
);
}
});
const
feedbackByIdFn
=
id
=>
{
feedbackById
(
id
).
then
(
feedback
=>
{
...
...
src/pages/user/resume/educationExperience/index.vue
View file @
8728794d
...
...
@@ -4,14 +4,14 @@
<view
class=
"label"
>
学校名称
</view>
<input
v-model=
"params.schoolName"
placeholder-style=
"font-size: 24rpx;"
placeholder=
"请输入
用户名
"
placeholder-style=
"font-size: 24rpx;
color: #77818f;
"
placeholder=
"请输入
学校名称
"
border=
"
{{
false
}}
"
/>
</view>
<view
class=
"item"
>
<view
class=
"label"
>
专业名称
</view>
<input
v-model=
"params.major"
placeholder-style=
"font-size: 24rpx;
"
placeholder=
"请输入用户名
"
border=
"
{{
false
}}
" />
<input
v-model=
"params.major"
placeholder-style=
"font-size: 24rpx;
color: #77818f;"
placeholder=
"请输入专业名称
"
border=
"
{{
false
}}
" />
</view>
<view
class=
"item"
>
...
...
@@ -42,7 +42,7 @@
class=
"my-datetime-picker"
>
<view
:class=
"`inner $
{params.endDate ? '' : 'placeholder'}`">
{{
format
(
params
.
endDate
)
||
"结束时间"
}}
{{
format
(
params
.
endDate
)
||
"
选择
结束时间"
}}
</view>
</wd-datetime-picker>
</view>
...
...
src/pages/user/resume/essentialInformation/index.vue
View file @
8728794d
...
...
@@ -80,7 +80,26 @@
</wd-checkbox-group>
</view>
<!-- 户籍地* -->
<wd-col-picker
custom-class=
"col-picker"
label=
"户籍地"
v-model=
"value"
:columns=
"area"
:column-change=
"columnChange"
@
confirm=
"handleConfirm"
></wd-col-picker>
<view
class=
"my-info-list flex-between"
>
<view
class=
"my-info-title label"
>
<text>
户籍地
</text>
</view>
<wd-col-picker
v-model=
"value"
:columns=
"area"
:column-change=
"columnChange"
@
confirm=
"handleConfirm"
use-default-slot
style=
"flex: 1"
>
<div
style=
"flex: 1"
class=
"flex-between"
>
<view
:class=
"['my-info-form', !provinceCityDistrict ? 'placeholder-style' : '']"
>
{{
provinceCityDistrict
?
provinceCityDistrict
:
"选择户籍地"
}}
</view
>
<view
class=
"arrow"
></view>
</div>
</wd-col-picker>
</view>
<!-- 户籍详细地址 -->
<view
class=
"my-info-list flex-column"
>
<view
class=
"my-info-title label"
>
...
...
@@ -94,7 +113,26 @@
/>
</view>
<!-- 常驻地* -->
<wd-col-picker
custom-class=
"col-picker"
label=
"常驻地"
v-model=
"value2"
:columns=
"area"
:column-change=
"columnChange"
@
confirm=
"handleConfirm2"
></wd-col-picker>
<view
class=
"my-info-list flex-between"
>
<view
class=
"my-info-title label"
>
<text>
常驻地
</text>
</view>
<wd-col-picker
v-model=
"value2"
:columns=
"area"
:column-change=
"columnChange2"
@
confirm=
"handleConfirm2"
use-default-slot
style=
"flex: 1"
>
<div
style=
"flex: 1"
class=
"flex-between"
>
<view
:class=
"['my-info-form', !provinceCityDistrict2 ? 'placeholder-style' : '']"
>
{{
provinceCityDistrict2
?
provinceCityDistrict2
:
"选择常住地"
}}
</view
>
<view
class=
"arrow"
></view>
</div>
</wd-col-picker>
</view>
<!-- 常驻详细地址 -->
<view
class=
"my-info-list flex-column"
>
<view
class=
"my-info-title label"
>
...
...
@@ -332,8 +370,33 @@ onMounted(() => {
getData
();
});
const
columnChange
=
({
selectedItem
,
resolve
,
finish
})
=>
{
const
areaData
=
findChildrenByCode
(
colPickerData
,
selectedItem
.
value
)
// 户籍地
const
provinceCityDistrict
=
ref
(
""
)
const
provinceCityDistrictArray
=
[]
const
columnChange
=
({
selectedItem
,
index
,
resolve
,
finish
})
=>
{
provinceCityDistrictArray
.
splice
(
index
,
1
,
selectedItem
.
label
)
const
areaData
=
findChildrenByCode
(
colPickerData
,
selectedItem
.
value
)
if
(
areaData
&&
areaData
.
length
)
{
resolve
(
areaData
.
map
((
item
)
=>
{
return
{
value
:
item
.
value
,
label
:
item
.
text
}
})
)
}
else
{
finish
()
provinceCityDistrict
.
value
=
provinceCityDistrictArray
.
join
(
''
)
}
}
// 常住地
const
provinceCityDistrict2
=
ref
(
""
)
const
provinceCityDistrictArray2
=
[]
const
columnChange2
=
({
selectedItem
,
index
,
resolve
,
finish
})
=>
{
provinceCityDistrictArray2
.
splice
(
index
,
1
,
selectedItem
.
label
)
const
areaData
=
findChildrenByCode
(
colPickerData
,
selectedItem
.
value
)
if
(
areaData
&&
areaData
.
length
)
{
resolve
(
areaData
.
map
((
item
)
=>
{
...
...
@@ -341,15 +404,17 @@ const columnChange = ({ selectedItem, resolve, finish }) => {
value
:
item
.
value
,
label
:
item
.
text
}
})
)
}
else
{
finish
()
})
)
}
else
{
finish
()
provinceCityDistrict2
.
value
=
provinceCityDistrictArray2
.
join
(
''
)
}
}
let
residenceCodes
=
ref
(
''
);
function
handleConfirm
({
value
})
{
console
.
log
(
value
)
residenceCodes
.
value
=
value
.
join
()
}
...
...
@@ -445,6 +510,8 @@ const getData = async () => {
return
;
}
userInfo
.
value
=
data
;
const
residence
=
data
.
residenceAddress
.
split
(
'-'
)
const
birth
=
data
.
birthAddress
.
split
(
'-'
)
residenceCodes
.
value
=
data
.
residenceCodes
birthCodes
.
value
=
data
.
birthCodes
userInfo
.
value
.
identityTypes
=
data
.
identityTypes
.
split
(
','
).
map
(
item
=>
item
*
1
);
...
...
@@ -452,8 +519,10 @@ const getData = async () => {
userInfo
.
value
.
positionalTitleTwo
=
data
.
positionalTitle
.
split
(
'-'
)[
1
]
userInfo
.
value
.
professionalCertificatesOne
=
data
.
professionalCertificates
.
split
(
'-'
)[
1
]
userInfo
.
value
.
professionalCertificatesTwo
=
data
.
professionalCertificates
.
split
(
'-'
)[
1
]
value
.
value
=
data
.
residenceCodes
.
split
(
','
);
value2
.
value
=
data
.
birthCodes
.
split
(
','
);
provinceCityDistrict
.
value
=
residence
[
0
]
provinceCityDistrict2
.
value
=
birth
[
0
]
userInfo
.
value
.
residenceAddress
=
residence
[
1
]
userInfo
.
value
.
birthAddress
=
birth
[
1
]
educationText
.
value
=
educationOpstion
.
value
[
data
.
education
-
1
].
text
;
}
};
...
...
@@ -466,8 +535,8 @@ const submit = () => {
saveUserInfoApi
({
residenceCodes
:
residenceCodes
.
value
,
birthCodes
:
birthCodes
.
value
,
residenceAddress
,
birthAddress
,
residenceAddress
:
provinceCityDistrict
.
value
+
"-"
+
residenceAddress
,
birthAddress
:
provinceCityDistrict2
.
value
+
"-"
+
birthAddress
,
major
,
positionalTitle
:
positionalTitleOne
+
'-'
+
positionalTitleTwo
,
professionalCertificates
:
professionalCertificatesOne
+
'-'
+
professionalCertificatesTwo
,
...
...
src/pages/user/resume/index.vue
View file @
8728794d
...
...
@@ -2,7 +2,7 @@
<NavBar
:showIcon=
"true"
backgroundBox=
"#ffffff"
:showTitle=
"true"
title=
"我的简历"
></NavBar>
<div
class=
"resume-page"
>
<!-- 个人信息 -->
<view
class=
"user-info flex-between"
@
click=
"navigateTo('/pages/user/resume/essentialInformation/index')"
>
<view
class=
"user-info flex-between"
@
click=
"navigateTo('/pages/user/resume/essentialInformation/index')"
>
<view>
<view
class=
"name"
>
{{
resumeData
.
realName
||
"未实名"
}}
...
...
@@ -16,7 +16,7 @@
<image
v-else
class=
"avatar"
src=
"@/static/image/user/default-avatar.png"
mode=
""
/>
</view>
<!-- 个人信息 -->
<view
class=
"basics"
>
<view
class=
"basics"
v-if=
"userInfoActive"
>
<text
class=
"gradient-title"
>
个人信息
</text>
<view
class=
"basics-top"
>
<view
class=
"item"
>
...
...
@@ -55,11 +55,11 @@
</view>
<view
class=
"information"
>
<text
class=
"label"
>
户籍地
</text>
<text
class=
"value"
>
{{
resumeData
.
residence
Code
s
}}
</text>
<text
class=
"value"
>
{{
resumeData
.
residence
Addres
s
}}
</text>
</view>
<view
class=
"information"
>
<text
class=
"label"
>
常住地
</text>
<text
class=
"value"
>
{{
resumeData
.
birth
Code
s
}}
</text>
<text
class=
"value"
>
{{
resumeData
.
birth
Addres
s
}}
</text>
</view>
</view>
<!-- 求职状态 -->
...
...
@@ -75,12 +75,12 @@
>
<view
class=
"flex-between"
>
<text>
{{
resumeData
.
jobStatusText
}}
</text>
<view
class=
"arrow"
bind:tap=
"onOpenStateSelect"
></view>
<view
class=
"arrow"
></view>
</view>
</wd-picker>
</view>
<!-- 个人优势 -->
<view
class=
"advantage"
@
click=
"
navigateTo(`/pages/user/resume/introduce/index?data=$
{resumeData.personalAdvantage}`
)">
<view
class=
"advantage"
@
click=
"
toPage(0
)"
>
<view
class=
"flex-between"
>
<text
class=
"gradient-title"
>
个人优势
</text>
<view
class=
"arrow"
bind:tap=
"navigateTo"
></view>
...
...
@@ -92,7 +92,7 @@
<!-- 求职意向 -->
<view
class=
"intention"
@
click=
"
navigateTo(`/pages/user/resume/jobIntention/index?data=$
{encodeURIComponent(JSON.stringify(resumeData))}`
)"
@
click=
"
toPage(1
)"
>
<view
class=
"flex-between"
>
<text
class=
"gradient-title"
>
求职意向
</text>
...
...
@@ -104,7 +104,7 @@
>
{{
resumeData
.
minSalary
}}{{
resumeData
.
minSalary
?
"-"
:
""
}}{{
resumeData
.
maxSalary
}}{{
resumeData
.
districtCode
?
" | "
:
""
}}
{{
resumeData
.
districtCode
}}
</view
>
<text
class=
"text"
>
{{
resumeData
.
needAccommodation
===
1
?
'需提供住宿'
:
'不需提供住宿'
}}
</text>
<text
class=
"text"
>
{{
resumeData
.
needAccommodation
Text
}}
</text>
</view>
</view>
<!-- 工作经历 -->
...
...
@@ -114,13 +114,7 @@
<wd-icon
name=
"add"
size=
"24rpx"
@
click=
"
navigateTo(
`/pages/user/resume/workExperience/index?data=$
{encodeURIComponent(
JSON.stringify(resumeData.workExperience)
)}`
)
"
@
click=
"toPage(2)"
></wd-icon>
</view>
<view
class=
"list"
>
...
...
@@ -157,13 +151,7 @@
<wd-icon
name=
"add"
size=
"24rpx"
@
click=
"
navigateTo(
`/pages/user/resume/educationExperience/index?data=$
{encodeURIComponent(
JSON.stringify(resumeData.educationExperience)
)}`
)
"
@
click=
"toPage(3)"
></wd-icon>
</view>
<view
class=
"list"
>
...
...
@@ -213,6 +201,7 @@ import { useToast } from "wot-design-uni";
import
{
navigateTo
}
from
"@/utils/utils.js"
;
import
evn
from
"@/utils/config.js"
;
const
toast
=
useToast
();
const
userInfoActive
=
ref
(
null
)
const
resumeData
=
reactive
({
preferredCityName
:
""
,
personalAdvantage
:
""
,
...
...
@@ -248,9 +237,9 @@ function formatTimestamp(timestampInMilliseconds) {
// 创建日期对象
var
date
=
new
Date
(
timestampInMilliseconds
);
// 获取年月日
var
year
=
date
.
get
UTC
FullYear
();
var
month
=
(
"0"
+
(
date
.
get
UTC
Month
()
+
1
)).
slice
(
-
2
);
// 月份是从0开始的,所以加1,并确保两位数
var
day
=
(
"0"
+
date
.
get
UTC
Date
()).
slice
(
-
2
);
// 确保两位数
var
year
=
date
.
getFullYear
();
var
month
=
(
"0"
+
(
date
.
getMonth
()
+
1
)).
slice
(
-
2
);
// 月份是从0开始的,所以加1,并确保两位数
var
day
=
(
"0"
+
date
.
getDate
()).
slice
(
-
2
);
// 确保两位数
return
`
${
year
}
.
${
month
}
.
${
day
}
`
;
}
// 数据回显
...
...
@@ -284,6 +273,13 @@ const getUserResume = () => {
getCityNameByCodeApi
(
districtCode
).
then
(
res
=>
{
resumeData
.
districtCode
=
res
.
data
.
cityName
;
})
if
(
needAccommodation
===
1
)
{
resumeData
.
needAccommodationText
=
'需提供住宿'
}
else
if
(
needAccommodation
===
0
)
{
resumeData
.
needAccommodationText
=
'不需提供住宿'
}
else
{
resumeData
.
needAccommodationText
=
''
}
resumeData
.
needAccommodation
=
needAccommodation
resumeData
.
maxSalary
=
maxSalary
&&
maxSalary
/
1000
+
"k"
;
resumeData
.
minSalary
=
minSalary
&&
minSalary
/
1000
+
"k"
;
...
...
@@ -292,8 +288,9 @@ const getUserResume = () => {
});
// 获取用户基本信息
getLoginUserApi
().
then
(
async
res
=>
{
userInfoActive
.
value
=
res
.
data
if
(
res
.
code
===
200
)
{
const
{
residence
Codes
,
birthCode
s
,
specialCertificates
,
positionalTitle
,
professionalCertificates
,
major
,
identityTypes
,
sex
,
workAge
,
education
,
name
,
username
,
avatarPath
,
birthday
,
jobStatus
}
=
res
.
data
;
const
{
residence
Address
,
birthAddres
s
,
specialCertificates
,
positionalTitle
,
professionalCertificates
,
major
,
identityTypes
,
sex
,
workAge
,
education
,
name
,
username
,
avatarPath
,
birthday
,
jobStatus
}
=
res
.
data
;
/* this.setData({
realName,
workExperienceYear: workExperience,
...
...
@@ -311,17 +308,19 @@ const getUserResume = () => {
resumeData
.
age
=
calculateAge
(
birthday
);
resumeData
.
sex
=
sex
;
resumeData
.
identityTypes
=
await
getEnumText2
(
"EnumIdentityType"
,
identityTypes
.
split
(
","
));;
resumeData
.
birthday
=
formatTimestamp
(
28800000
);
resumeData
.
birthday
=
formatTimestamp
(
birthday
);
resumeData
.
major
=
major
;
resumeData
.
positionalTitle
=
positionalTitle
;
resumeData
.
professionalCertificates
=
professionalCertificates
;
resumeData
.
specialCertificates
=
specialCertificates
;
getCityNameByCodeApi
(
residenceCodes
.
split
(
","
)[
2
]).
then
(
res
=>
{
resumeData
.
residenceCodes
=
res
.
data
.
provinceName
+
res
.
data
.
cityName
+
res
.
data
.
districtName
;
})
getCityNameByCodeApi
(
birthCodes
.
split
(
","
)[
2
]).
then
(
res
=>
{
resumeData
.
birthCodes
=
res
.
data
.
provinceName
+
res
.
data
.
cityName
+
res
.
data
.
districtName
;
})
resumeData
.
residenceAddress
=
residenceAddress
;
resumeData
.
birthAddress
=
birthAddress
;
// getCityNameByCodeApi(residenceCodes.split(",")[2]).then(res => {
// resumeData.residenceCodes = res.data.provinceName+res.data.cityName+res.data.districtName;
// })
// getCityNameByCodeApi(birthCodes.split(",")[2]).then(res => {
// resumeData.birthCodes = res.data.provinceName+res.data.cityName+res.data.districtName;
// })
}
});
};
...
...
@@ -336,8 +335,45 @@ const getOpstion = async () => {
jobStatusColumns
.
value
=
await
getEumData
(
"EnumUserJobStatus"
);
console
.
log
(
jobStatusColumns
.
value
);
};
const
toPage
=
(
index
)
=>
{
if
(
!
userInfoActive
.
value
)
{
uni
.
showToast
({
title
:
"请先完善个人基本信息"
,
icon
:
"none"
});
return
}
switch
(
index
)
{
case
0
:
navigateTo
(
`/pages/user/resume/introduce/index?data=
${
resumeData
.
personalAdvantage
}
`
)
break
;
case
1
:
navigateTo
(
`/pages/user/resume/jobIntention/index?data=
${
encodeURIComponent
(
JSON
.
stringify
(
resumeData
))}
`
)
break
;
case
2
:
navigateTo
(
`/pages/user/resume/workExperience/index?data=
${
encodeURIComponent
(
JSON
.
stringify
(
resumeData
.
workExperience
)
)}
`
)
break
;
case
3
:
navigateTo
(
`/pages/user/resume/educationExperience/index?data=
${
encodeURIComponent
(
JSON
.
stringify
(
resumeData
.
educationExperience
)
)}
`
)
break
;
}
}
const
changeJobStatus
=
async
e
=>
{
console
.
log
(
e
.
selectedItems
.
text
);
if
(
!
userInfoActive
.
value
)
{
uni
.
showToast
({
title
:
"请先完善个人基本信息"
,
icon
:
"none"
});
return
}
const
{
code
,
message
}
=
await
saveJobStatusApi
({
jobStatus
:
e
.
value
});
if
(
code
==
200
)
{
resumeData
.
jobStatusText
=
e
.
selectedItems
.
text
;
...
...
src/pages/user/resume/introduce/index.vue
View file @
8728794d
...
...
@@ -21,7 +21,9 @@ import { saveAdvantageApi } from "@/api/user.js";
const
inputvalue
=
ref
(
""
);
onLoad
(
options
=>
{
inputvalue
.
value
=
options
.
data
;
if
(
options
.
data
)
{
inputvalue
.
value
=
options
.
data
;
}
});
const
save
=
()
=>
{
saveAdvantageApi
({
personalAdvantage
:
inputvalue
.
value
}).
then
(
res
=>
{
...
...
src/pages/user/resume/workExperience/index.vue
View file @
8728794d
...
...
@@ -10,7 +10,7 @@
<view
class=
"form-item"
>
<view
class=
"form-info"
>
<view
class=
"label"
>
公司名称
</view>
<input
type=
"text"
v-model=
"params.companyName"
placeholder=
"请输入"
/>
<input
type=
"text"
v-model=
"params.companyName"
placeholder=
"请输入"
placeholder-class=
"placeholder"
/>
</view>
</view>
<!-- 在职时间 -->
...
...
@@ -34,6 +34,7 @@
type=
"year-month"
v-model=
"params.endDate"
:formatter=
"formatter"
class=
"my-datetime-picker"
/>
</view>
</view>
...
...
@@ -64,7 +65,7 @@
<view
class=
"form-item"
>
<view
class=
"form-info"
>
<view
class=
"label"
>
工作内容
</view>
<textarea
:maxlength=
"500"
v-model=
"params.content"
placeholder=
"请输入"
/>
<textarea
:maxlength=
"500"
v-model=
"params.content"
placeholder=
"请输入"
placeholder-class=
"placeholder"
/>
</view>
</view>
</view>
...
...
@@ -213,9 +214,13 @@ const save = () => {
}
.form-item
.form-info
.cont
{
font-size
:
28rpx
;
font-weight
:
600
;
//
font-weight: 600;
color
:
#213452
;
}
.placeholder
{
color
:
#bfbfbf
;
font-size
:
28rpx
;
}
/* 保存按钮 */
.btn-wrapper
{
...
...
@@ -253,8 +258,8 @@ const save = () => {
color
:
#a0afc3
;
}
.placeholder-style
{
font-size
:
28rpx
!
important
;
color
:
#a0afc3
!
important
;
color
:
#bfbfbf
!
important
;
font-size
:
28rpx
;
}
.flex-r-c
{
display
:
flex
;
...
...
src/utils/request.js
View file @
8728794d
...
...
@@ -43,6 +43,8 @@ instance.interceptors.response.use(
});
}
if
(
response
.
data
.
code
===
9
)
{
const
path
=
getCurrentPages
()[
0
].
$page
.
path
if
(
path
===
'/pages/user/resume/essentialInformation/index'
)
return
uni
.
showModal
({
title
:
"提示"
,
content
:
"请先完善基本信息!"
,
...
...
src/utils/utils.js
View file @
8728794d
...
...
@@ -10,15 +10,15 @@ import { getDictDataApi } from "@/api/common";
export
const
getEumData
=
type
=>
{
const
storage
=
getStorageSync
(
type
);
return
new
Promise
(
resolve
=>
{
if
(
storage
)
{
resolve
(
storage
);
}
else
{
getDictDataApi
([
type
]).
then
(
res
=>
{
const
data
=
res
.
data
[
type
];
setStorageSync
(
type
,
data
);
resolve
(
data
);
});
}
//
if (storage) {
//
resolve(storage);
//
} else {
getDictDataApi
([
type
]).
then
(
res
=>
{
const
data
=
res
.
data
[
type
];
setStorageSync
(
type
,
data
);
resolve
(
data
);
});
//
}
});
};
export
const
getEnumText
=
async
(
type
,
code
)
=>
{
...
...
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