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
a8ff795e
Commit
a8ff795e
authored
Oct 25, 2024
by
李明环(东信)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建岗位步骤 3 4
parent
1573166a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
235 additions
and
18 deletions
+235
-18
address-select.vue
src/components/form/address-select.vue
+96
-0
form-row.vue
src/components/form/form-row.vue
+1
-0
step3.vue
src/pages/recommend/releasePostion/step3.vue
+61
-14
step4.vue
src/pages/recommend/releasePostion/step4.vue
+77
-4
No files found.
src/components/form/address-select.vue
0 → 100644
View file @
a8ff795e
<
template
>
<wd-tabs
v-model=
"tab"
style=
"height: 400px"
>
<wd-tab
:title=
"provinceText || '省'"
>
<wd-picker-view
:columns=
"provinceOptions"
v-model=
"provinceValue"
value-key=
"code"
label-key=
"name"
@
change=
"provinceChange"
/>
</wd-tab>
<wd-tab
:title=
"cityText || '市'"
>
<wd-picker-view
v-if=
"tab == 1"
:columns=
"cityOptions"
v-model=
"cityValue"
value-key=
"code"
label-key=
"name"
@
change=
"cityChange"
/>
</wd-tab>
<wd-tab
:title=
"districtText || '区/县'"
>
<wd-picker-view
v-if=
"tab == 2"
:columns=
"districtOptions"
v-model=
"districtValue"
value-key=
"code"
label-key=
"name"
@
change=
"districtChange"
/>
</wd-tab>
<wd-tab
title=
"详细地址"
>
<view
class=
"content"
>
详细地址
</view>
</wd-tab>
</wd-tabs>
</
template
>
<
script
setup
>
import
{
getTreeListApi
}
from
"@/api/common"
;
// 获取数据
const
getData
=
()
=>
{
getTreeListApi
().
then
(
res
=>
{
console
.
log
(
res
);
provinceOptions
.
value
=
res
.
data
;
});
};
// 激活标签索引
const
tab
=
ref
(
0
);
// 省
const
provinceOptions
=
ref
([]);
const
provinceValue
=
ref
(
""
);
const
provinceText
=
ref
(
""
);
getData
();
const
provinceChange
=
e
=>
{
const
{
children
,
name
}
=
e
.
picker
.
getSelects
();
provinceText
.
value
=
name
;
// 重置选项
districtValue
.
value
=
""
;
cityValue
.
value
=
""
;
districtText
.
value
=
""
;
cityText
.
value
=
""
;
cityOptions
.
value
=
children
;
districtOptions
.
value
=
[];
/* 如果只有一个子选项,则直接选中 */
if
(
children
.
length
==
1
)
{
cityChange
({
picker
:
{
getSelects
:
()
=>
({
children
,
name
})
}
});
cityValue
.
value
=
children
[
0
].
code
;
}
};
// 市
const
cityOptions
=
ref
([]);
const
cityValue
=
ref
(
""
);
const
cityText
=
ref
(
""
);
const
cityChange
=
e
=>
{
const
{
children
,
name
}
=
e
.
picker
.
getSelects
();
cityText
.
value
=
name
;
// 重置选项
districtValue
.
value
=
""
;
districtText
.
value
=
""
;
districtOptions
.
value
=
children
;
};
// 地区
const
districtOptions
=
ref
([]);
const
districtValue
=
ref
(
""
);
const
districtText
=
ref
(
""
);
const
districtChange
=
e
=>
{
const
{
children
,
name
}
=
e
.
picker
.
getSelects
();
districtText
.
value
=
name
;
// 重置选项
};
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/components/form/form-row.vue
View file @
a8ff795e
...
@@ -16,5 +16,6 @@ const props = defineProps({
...
@@ -16,5 +16,6 @@ const props = defineProps({
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.form-row
{
.form-row
{
display
:
grid
;
display
:
grid
;
gap
:
50rpx
;
}
}
</
style
>
</
style
>
src/pages/recommend/releasePostion/step3.vue
View file @
a8ff795e
...
@@ -5,18 +5,31 @@
...
@@ -5,18 +5,31 @@
<view
class=
"t1"
>
3/5工作地点
</view>
<view
class=
"t1"
>
3/5工作地点
</view>
<view
class=
"t2"
>
添加准确的就职工作地址
</view>
<view
class=
"t2"
>
添加准确的就职工作地址
</view>
</view>
</view>
<!--
<address-select></address-select>
-->
<view
class=
"content"
>
<view
class=
"content"
>
<view
class=
"form-item"
>
<view
class=
"form-item"
>
<view
class=
"form-item-title"
>
工作地址
</view>
<view
class=
"form-item-title"
>
工作地址
</view>
<view
:class=
"`inner flex-between $
{address ? '' : 'placeholder'}`"
@tap="getLocaltion"
>
<view
:class=
"`inner flex-between $
{address ? '' : 'placeholder'}`">
<view
class=
"flex-align-center"
>
<
!--
<
view
class=
"flex-align-center"
>
<image
src=
"@/static/image/icon/position.png"
/>
<image
src=
"@/static/image/icon/position.png"
/>
{{
address
||
pinias
.
formData
.
address
||
"请选择工作地址"
}}
{{
address
||
pinias
.
formData
.
address
||
"请选择工作地址"
}}
</view>
</view>
-->
<wd-col-picker
v-model=
"cityValue"
:columns=
"cityOpstion"
value-key=
"code"
label-key=
"name"
:column-change=
"columnChangeCity"
@
confirm=
"handleConfirmCity"
use-default-slot
>
<p
:class=
"
{ placeholder: !cityText }" class="text-single">
{{
cityText
||
"请选择公司所在地"
}}
</p>
</wd-col-picker>
<view
class=
"arrow"
></view>
<view
class=
"arrow"
></view>
</view>
</view>
</view>
</view>
</view>
</view>
<wd-tabbar
<wd-tabbar
@
tap=
"next"
@
tap=
"next"
custom-style=
"display: flex;justify-content: center !important;"
custom-style=
"display: flex;justify-content: center !important;"
...
@@ -31,7 +44,8 @@
...
@@ -31,7 +44,8 @@
<
script
setup
>
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
{
ref
}
from
"vue"
;
import
AddressSelect
from
"@/components/form/address-select.vue"
;
import
{
getTreeListApi
}
from
"@/api/common"
;
import
{
useReleasePostionStore
}
from
"./store"
;
import
{
useReleasePostionStore
}
from
"./store"
;
/* tab */
/* tab */
const
pinias
=
useReleasePostionStore
();
const
pinias
=
useReleasePostionStore
();
...
@@ -63,6 +77,38 @@ const getLocaltion = () => {
...
@@ -63,6 +77,38 @@ const getLocaltion = () => {
});
});
};
};
// 地区选择
/* 获取省市区 */
const
cityOpstion
=
ref
([]);
const
cityValue
=
ref
([]);
const
cityText
=
ref
(
""
);
let
citySelectedItems
=
[];
getTreeListApi
().
then
(
res
=>
{
cityOpstion
.
value
.
push
(
res
.
data
);
});
const
columnChangeCity
=
({
selectedItem
,
resolve
,
finish
})
=>
{
if
(
selectedItem
.
children
)
{
resolve
(
selectedItem
.
children
);
}
else
{
finish
();
}
};
const
handleConfirmCity
=
({
selectedItems
})
=>
{
cityText
.
value
=
selectedItems
.
map
(
v
=>
v
.
name
).
join
(
"-"
);
citySelectedItems
=
selectedItems
;
const
[
province
,
city
,
district
]
=
selectedItems
;
console
.
log
([
province
,
city
,
district
]);
/* params.provinceCode = province.code;
params.provinceName = province.name;
params.cityCode = city.code;
params.cityName = city.name;
params.districtCode = district.code;
params.districtName = district.name;
console.log(cityValue); */
};
const
next
=
()
=>
{
const
next
=
()
=>
{
if
(
validateForm
(
pinias
.
formData
,
[
"address"
]))
{
if
(
validateForm
(
pinias
.
formData
,
[
"address"
]))
{
uni
.
navigateTo
({
uni
.
navigateTo
({
...
@@ -78,26 +124,27 @@ image {
...
@@ -78,26 +124,27 @@ image {
width
:
12px
;
width
:
12px
;
height
:
13px
;
height
:
13px
;
}
}
:deep
(
#u-a-c
)
{
:deep
(
#u-a-c
.uni-system-choose-location
.nav
)
{
.uni-system-choose-location
.nav
{
top
:
20px
!
important
;
top
:
20px
!
important
;
background-image
:
none
;
background-image
:
none
;
}
}
:deep
(
#u-a-c
.uni-system-choose-location
.nav-btn
)
{
.uni-system-choose-location
.nav-btn
{
background-color
:
#007aff
;
border-radius
:
10px
;
}
:deep
(
#u-a-c
.uni-system-choose-location
.nav-btn.back
)
{
background-color
:
#007aff
;
background-color
:
#007aff
;
border-radius
:
10px
;
border-radius
:
10px
;
}
.uni-system-choose-location
.nav-btn.back
{
top
:
50px
;
top
:
50px
;
left
:
10px
;
left
:
10px
;
}
:deep
(
#u-a-c
.uni-system-choose-location
.nav-btn.confirm
)
{
background-color
:
#007aff
;
background-color
:
#007aff
;
border-radius
:
10px
;
border-radius
:
10px
;
}
.uni-system-choose-location
.nav-btn.confirm
{
top
:
50px
;
top
:
50px
;
right
:
10px
;
right
:
10px
;
background-color
:
#007aff
;
border-radius
:
10px
;
}
}
}
.foot-btn
{
.foot-btn
{
position
:
fixed
;
position
:
fixed
;
...
...
src/pages/recommend/releasePostion/step4.vue
View file @
a8ff795e
...
@@ -6,7 +6,56 @@
...
@@ -6,7 +6,56 @@
<view
class=
"t2"
>
设置招聘偏好,让报名更精准
</view>
<view
class=
"t2"
>
设置招聘偏好,让报名更精准
</view>
</view>
</view>
<view
class=
"content"
>
<view
class=
"content"
>
<view
class=
"form-item"
>
<form-row>
<form-item
title=
"身份要求"
>
<wd-picker
:columns=
"identityPostion"
value-key=
"code"
label-key=
"text"
v-model=
"pinias.formData.identityRequirement"
@
confirm=
"handleConfirmIdentity"
use-default-slot
>
<view
:class=
"`inner flex-between $
{identityText ? '' : 'placeholder'}`">
<view
class=
"flex-align-center"
bind:tap=
"onShowIdentitySelect"
>
{{
identityText
||
"请选择身份要求"
}}
</view>
</view>
</wd-picker>
</form-item>
</form-row>
<form-row
:fill=
"false"
>
<form-item
title=
"学历要求"
>
<wd-picker
:columns=
"educationPostion"
value-key=
"code"
label-key=
"text"
v-model=
"pinias.formData.educationRequirement"
@
confirm=
"handleConfirmEducation"
use-default-slot
>
<view
:class=
"`inner flex-between $
{educationText ? '' : 'placeholder'}`">
<view
class=
"flex-align-center"
bind:tap=
"onShowIdentitySelect"
>
{{
educationText
||
"请选择学历要求"
}}
</view>
</view>
</wd-picker>
</form-item>
<form-item
title=
"学历要求"
>
<wd-col-picker
v-model=
"value"
:columns=
"columns"
:column-change=
"columnChange"
@
confirm=
"handleConfirm"
use-default-slot
>
<view
:class=
"`inner flex-between $
{ageText ? '' : 'placeholder'}`" bind:tap="onOpen">
{{
ageText
||
"请选择年龄要求"
}}
</view>
</wd-col-picker>
</form-item>
</form-row>
<!--
<view
class=
"form-item"
>
<view
class=
"form-item-title"
>
身份要求
</view>
<view
class=
"form-item-title"
>
身份要求
</view>
<wd-picker
<wd-picker
:columns=
"identityPostion"
:columns=
"identityPostion"
...
@@ -23,8 +72,8 @@
...
@@ -23,8 +72,8 @@
<view
class=
"arrow"
></view>
<view
class=
"arrow"
></view>
</view>
</view>
</wd-picker>
</wd-picker>
</view>
</view>
-->
<view
class=
"form-item"
>
<
!--
<
view
class=
"form-item"
>
<view
class=
"form-item-title"
>
学历要求
</view>
<view
class=
"form-item-title"
>
学历要求
</view>
<wd-picker
<wd-picker
:columns=
"educationPostion"
:columns=
"educationPostion"
...
@@ -57,7 +106,24 @@
...
@@ -57,7 +106,24 @@
<view
class=
"arrow"
></view>
<view
class=
"arrow"
></view>
</view>
</view>
</wd-col-picker>
</wd-col-picker>
</view>
</view>
-->
<form-row
:fill=
"false"
>
<form-item
title=
"专业技术职称"
icon=
"edit"
>
<input
type=
"text"
/>
</form-item>
<form-item
title=
""
>
</form-item>
</form-row>
<form-row
:fill=
"false"
>
<form-item
title=
"职业资格/技能等级证书"
icon=
"edit"
>
<input
type=
"text"
/>
</form-item>
<form-item
title=
""
>
</form-item>
</form-row>
<form-row>
<form-item
title=
"特种作业证"
icon=
"edit"
>
<input
type=
"text"
/>
</form-item>
</form-row>
</view>
</view>
<wd-tabbar
<wd-tabbar
@
tap=
"next"
@
tap=
"next"
...
@@ -75,6 +141,8 @@
...
@@ -75,6 +141,8 @@
import
{
ref
}
from
"vue"
;
import
{
ref
}
from
"vue"
;
import
{
getEumData
,
getEnumText
}
from
"@/utils/utils"
;
import
{
getEumData
,
getEnumText
}
from
"@/utils/utils"
;
import
{
useReleasePostionStore
}
from
"./store"
;
import
{
useReleasePostionStore
}
from
"./store"
;
import
FormItem
from
"@/components/form/form-item.vue"
;
import
FormRow
from
"@/components/form/form-row.vue"
;
/* tab */
/* tab */
const
pinias
=
useReleasePostionStore
();
const
pinias
=
useReleasePostionStore
();
const
identityText
=
ref
(
""
);
const
identityText
=
ref
(
""
);
...
@@ -172,6 +240,11 @@ initViewData();
...
@@ -172,6 +240,11 @@ initViewData();
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
@import
"./common.scss"
;
@import
"./common.scss"
;
.content
{
.form-item
{
padding-top
:
0
;
}
}
.foot-btn
{
.foot-btn
{
position
:
fixed
;
position
:
fixed
;
display
:
flex
;
display
:
flex
;
...
...
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