Commit 8f9eb317 authored by 李明环(东信)'s avatar 李明环(东信)

需求修改

parent d5a8dbe7
...@@ -15,3 +15,6 @@ export const getBannerListApi = type => instance.post(`/banner/list/${type}`); ...@@ -15,3 +15,6 @@ export const getBannerListApi = type => instance.post(`/banner/list/${type}`);
export const getCityNameByCodeApi = code => instance.post(`/dict/dictProvinceCityDistrict/find/city/${code}`); export const getCityNameByCodeApi = code => instance.post(`/dict/dictProvinceCityDistrict/find/city/${code}`);
//更具code码获取地区名称 //更具code码获取地区名称
export const getDistNameByCodeApi = code => instance.post(`/dict/dictProvinceCityDistrict/find/dist/${code}`); export const getDistNameByCodeApi = code => instance.post(`/dict/dictProvinceCityDistrict/find/dist/${code}`);
// 专业目录
export const getMajorTreeApi = () => instance.post(`/dict/major/tree`);
<template> <template>
<div class="form-item" :style="{ borderWidth: props.border ? '2rpx' : '0' }"> <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="" /> <img v-if="icon" class="icon" :src="iconPath" alt="" />
<slot></slot> <slot></slot>
</div> </div>
...@@ -11,7 +14,12 @@ const props = defineProps({ ...@@ -11,7 +14,12 @@ const props = defineProps({
// 标题 // 标题
title: { title: {
type: String, type: String,
default: () => "默认title" default: "默认title"
},
//小标题
subTitle: {
type: String,
default: ""
}, },
// 边框 // 边框
border: { border: {
...@@ -30,16 +38,27 @@ const iconPath = new URL(`../../static/image/icon/${props.icon}.png`, import.met ...@@ -30,16 +38,27 @@ const iconPath = new URL(`../../static/image/icon/${props.icon}.png`, import.met
<style lang="scss" scoped> <style lang="scss" scoped>
.form-item { .form-item {
position: relative; position: relative;
padding-top: 36rpx;
padding-bottom: 16rpx; padding-bottom: 16rpx;
margin-top: 32rpx; margin-top: 32rpx;
border-bottom: 2rpx solid rgb(31 35 41 / 15%); border-bottom: 2rpx solid rgb(31 35 41 / 15%);
.title { .title {
position: absolute;
top: 0;
left: 0;
height: 36rpx; height: 36rpx;
margin-bottom: 32rpx; margin-bottom: 32rpx;
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
line-height: 36rpx; line-height: 36rpx;
white-space: nowrap; white-space: nowrap;
span {
font-size: 12px;
color: #77818f;
}
}
.temp {
margin-top: 36px;
} }
.icon { .icon {
position: absolute; position: absolute;
......
...@@ -20,7 +20,7 @@ import { getArticleListApi, getArticleTypesApi } from "@/api/article.js"; ...@@ -20,7 +20,7 @@ import { getArticleListApi, getArticleTypesApi } from "@/api/article.js";
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
const contentHeight = ref("100rpx"); const contentHeight = ref("100rpx");
const active = ref("zph"); const active = ref("zph");
const typeList = ref([{ id: "zph", name: "招聘会" }]); const typeList = ref([{ id: "zph", name: "企业招聘报名" }]);
getArticleTypesApi(2).then(res => { getArticleTypesApi(2).then(res => {
typeList.value.push(...res.data); typeList.value.push(...res.data);
}); });
......
...@@ -265,7 +265,7 @@ onShow(() => { ...@@ -265,7 +265,7 @@ onShow(() => {
}); });
// 城市筛选 // 城市筛选
const valueCity = ref([]); const valueCity = ref([]);
const cityText = ref("全"); const cityText = ref("全");
const columnsCity = ref([]); const columnsCity = ref([]);
const getColumnsCity = () => { const getColumnsCity = () => {
getTreeListApi().then(res => { getTreeListApi().then(res => {
...@@ -286,7 +286,7 @@ const getColumnsCity = () => { ...@@ -286,7 +286,7 @@ const getColumnsCity = () => {
}); });
res.data.unshift({ res.data.unshift({
code: "", code: "",
name: "全" name: "全"
}); });
columnsCity.value.push(res.data); columnsCity.value.push(res.data);
}); });
......
...@@ -3,11 +3,17 @@ ...@@ -3,11 +3,17 @@
<NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar> <NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar>
<!-- <Filter /> --> <!-- <Filter /> -->
<view class="title"> <view class="title">
<view class="t1">1/5填写位信息</view> <view class="t1">1/5填写位信息</view>
<view class="t2">选择对应的职位并填写职位信息</view> <view class="t2">新选择对应的职位类别填写岗位信息</view>
</view> </view>
<view class="content"> <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-row>
<form-item title="职位类型"> <form-item title="职位类型">
<wd-col-picker <wd-col-picker
...@@ -26,13 +32,13 @@ ...@@ -26,13 +32,13 @@
</form-item> </form-item>
</form-row> </form-row>
<form-row> <form-row>
<form-item title="职位标题" icon="edit"> <form-item title="岗位名称" icon="edit">
<input type="text" v-model="pinias.formData.name" placeholder="输入职位标题如“财务总监”" /> <input type="text" v-model="pinias.formData.name" placeholder="输入岗位名称" />
</form-item> </form-item>
</form-row> </form-row>
<form-row> <form-row>
<form-item title="位描述" :border="false" icon=""> <form-item title="位描述" :border="false" icon="">
<textarea v-model="pinias.formData.positionDesc" placeholder="请输入你的职位描述" maxlength="800"></textarea> <textarea v-model="pinias.formData.positionDesc" placeholder="请输入您的岗位描述" maxlength="800"></textarea>
</form-item> </form-item>
</form-row> </form-row>
</view> </view>
......
...@@ -3,24 +3,24 @@ ...@@ -3,24 +3,24 @@
<NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar> <NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar>
<view class="title"> <view class="title">
<view class="t1">2/5福利待遇</view> <view class="t1">2/5福利待遇</view>
<view class="t2">给岗位选择对应福利待遇</view> <view class="t2">请选择岗位对应的福利待遇</view>
</view> </view>
<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 <view
v-if="pinias.formData.settlementType == 4" v-if="pinias.formData.settlementType == 4"
:class="`inner flex-between ${salaryText ? '' : 'placeholder'}`" :class="`inner flex-between ${salaryText ? '' : 'placeholder'}`"
@click="onOpen" @click="onOpen"
> >
{{ salaryText || "请选择月薪范围" }} {{ salaryText || "请选择岗位薪资待遇" }}
<!-- <view class="arrow"></view> --> <!-- <view class="arrow"></view> -->
<checkbox class="checkbox" @click="onChecked" :checked="my">面议</checkbox> <checkbox class="checkbox" @click="onChecked" :checked="my">面议</checkbox>
</view> </view>
<view v-else :class="`inner flex-between ${salaryText ? '' : 'placeholder'}`" @click="onOpen"> <view v-else :class="`inner flex-between ${salaryText ? '' : 'placeholder'}`" @click="onOpen">
{{ salaryText || "请选择时薪范围" }} {{ salaryText || "请选择岗位薪资待遇" }}
<!-- <view class="arrow"></view> --> <!-- <view class="arrow"></view> -->
<checkbox class="checkbox" @click="onChecked" :checked="my">面议</checkbox> <checkbox class="checkbox" @click="onChecked" :checked="my">面议</checkbox>
</view> </view>
...@@ -50,7 +50,9 @@ ...@@ -50,7 +50,9 @@
</view> </view>
</view> </view>
<view class="form-item describe" style="border: 0"> <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 class="welfare">
<view <view
v-for="(item, index) in benefits" v-for="(item, index) in benefits"
...@@ -218,6 +220,10 @@ const benefits = ref([ ...@@ -218,6 +220,10 @@ const benefits = ref([
{ {
text: "三险一金", text: "三险一金",
active: false active: false
},
{
text: "其他",
active: false
} }
]); ]);
const onChangeBenefits = e => { const onChangeBenefits = e => {
......
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
<div class="page"> <div class="page">
<view class="title"> <view class="title">
<view class="t1">3/5工作地点</view> <view class="t1">3/5工作地点</view>
<view class="t2">添加准确的就职工作地址</view> <view class="t2">请选择准确的岗位工作地点</view>
</view> </view>
<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'}`"> <view :class="`inner flex-between ${address ? '' : 'placeholder'}`">
<wd-col-picker <wd-col-picker
v-model="cityValue" v-model="cityValue"
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
use-default-slot use-default-slot
> >
<p :class="{ placeholder: !cityText }" class="text-single" style="width: 100%"> <p :class="{ placeholder: !cityText }" class="text-single" style="width: 100%">
{{ cityText || "请选择公司所在地" }} {{ cityText || "请选择岗位工作地点" }}
</p> </p>
</wd-col-picker> </wd-col-picker>
<view class="arrow"></view> <view class="arrow"></view>
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
<div class="page"> <div class="page">
<NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar> <NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar>
<view class="title"> <view class="title">
<view class="t1">4/5填写职位信息</view> <view class="t1">4/5填写岗位偏好</view>
<view class="t2">设置招聘偏好,让报名更精准</view> <view class="t2">请设置岗位具体要求</view>
</view> </view>
<view class="content"> <view class="content">
<form-row> <form-row>
<form-item title="身份要求"> <form-item title="身份">
<wd-picker <wd-picker
:columns="identityPostion" :columns="identityPostion"
value-key="code" value-key="code"
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
> >
<view :class="`inner flex-between ${identityText ? '' : 'placeholder'}`"> <view :class="`inner flex-between ${identityText ? '' : 'placeholder'}`">
<view class="flex-align-center" bind:tap="onShowIdentitySelect"> <view class="flex-align-center" bind:tap="onShowIdentitySelect">
{{ identityText || "请选择身份要求" }} {{ identityText || "请选择身份" }}
</view> </view>
</view> </view>
</wd-picker> </wd-picker>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</form-row> </form-row>
<form-row :fill="false"> <form-row :fill="false">
<form-item title="学历要求"> <form-item title="学历">
<wd-picker <wd-picker
:columns="educationPostion" :columns="educationPostion"
value-key="code" value-key="code"
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</view> </view>
</wd-picker> </wd-picker>
</form-item> </form-item>
<form-item title="年龄要求"> <form-item title="年龄">
<!-- <wd-col-picker <!-- <wd-col-picker
v-model="value" v-model="value"
:columns="columns" :columns="columns"
...@@ -60,9 +60,25 @@ ...@@ -60,9 +60,25 @@
</view> </view>
</form-item> </form-item>
</form-row> </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-row :fill="false">
<form-item title="专业技术职称" icon="edit"> <form-item title="专业技术职称" sub-title="(选填)" icon="edit">
<input type="text" v-model="majorInputValue" placeholder="请填写职称" /> <input type="text" v-model="majorInputValue" placeholder="请填写职称" />
</form-item> </form-item>
<form-item title=""> <form-item title="">
...@@ -75,14 +91,14 @@ ...@@ -75,14 +91,14 @@
> >
<view :class="`inner flex-between ${majorSelectValue ? '' : 'placeholder'}`"> <view :class="`inner flex-between ${majorSelectValue ? '' : 'placeholder'}`">
<view class="flex-align-center" bind:tap="onShowIdentitySelect"> <view class="flex-align-center" bind:tap="onShowIdentitySelect">
{{ majorSelectValue || "请选择职等级" }} {{ majorSelectValue || "请选择职等级" }}
</view> </view>
</view> </view>
</wd-picker> </wd-picker>
</form-item> </form-item>
</form-row> </form-row>
<form-row :fill="false"> <form-row :fill="false">
<form-item title="职业资格/技能等级证书" icon="edit"> <form-item title="职业资格/技能等级证书" sub-title="(选填)" icon="edit">
<input type="text" v-model="certificateInputValue" placeholder="请填写职业资格" /> <input type="text" v-model="certificateInputValue" placeholder="请填写职业资格" />
</form-item> </form-item>
<form-item title=""> <form-item title="">
...@@ -102,7 +118,7 @@ ...@@ -102,7 +118,7 @@
</form-item> </form-item>
</form-row> </form-row>
<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="请填写特种作业证" /> <input v-model="pinias.formData.specialCertificates" type="text" placeholder="请填写特种作业证" />
</form-item> </form-item>
</form-row> </form-row>
...@@ -137,6 +153,7 @@ import { useReleasePostionStore } from "./store"; ...@@ -137,6 +153,7 @@ import { useReleasePostionStore } from "./store";
import FormItem from "@/components/form/form-item.vue"; import FormItem from "@/components/form/form-item.vue";
import FormRow from "@/components/form/form-row.vue"; import FormRow from "@/components/form/form-row.vue";
import { validateForm } from "@/utils/utils"; import { validateForm } from "@/utils/utils";
import { getMajorTreeApi } from "@/api/common";
/* tab */ /* tab */
const pinias = useReleasePostionStore(); const pinias = useReleasePostionStore();
const identityText = ref(""); const identityText = ref("");
...@@ -240,12 +257,38 @@ const initSalaryColumns = () => { ...@@ -240,12 +257,38 @@ const initSalaryColumns = () => {
]; ];
}; };
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 levelOptions = ref(["初级", "中级", "高级", "高级以上"]);
const getEnumCertificatesLevel = async () => { const getEnumCertificatesLevel = async () => {
levelOptions.value = await getEumData("EnumCertificatesLevel"); levelOptions.value = await getEumData("EnumCertificatesLevel");
console.log(levelOptions.value);
}; };
getEnumCertificatesLevel(); getEnumCertificatesLevel();
/* 专业 major */ /* 专业 major */
...@@ -292,7 +335,7 @@ const next = () => { ...@@ -292,7 +335,7 @@ const next = () => {
if (certificateInputValue.value && certificateSelectValue.value) if (certificateInputValue.value && certificateSelectValue.value)
pinias.formData.professionalCertificates = certificateInputValue.value + "-" + certificateSelectValue.value; pinias.formData.professionalCertificates = certificateInputValue.value + "-" + certificateSelectValue.value;
console.log(pinias.formData); console.log(pinias.formData);
if (validateForm(pinias.formData, ["identityRequirement", "educationRequirement"])) { if (validateForm(pinias.formData, ["identityRequirement", "educationRequirement", "majorRequirement"])) {
uni.redirectTo({ uni.redirectTo({
url: "/pages/recommend/releasePostion/step5" url: "/pages/recommend/releasePostion/step5"
}); });
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="page"> <div class="page">
<NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar> <NavBar :showIcon="true" :showTitle="false" title="" backgroundBox="#FFFFFF"></NavBar>
<view class="title"> <view class="title">
<view class="t1">5/5 更多要求</view> <view class="t1">5/5 其他信息</view>
<view class="t2">设置招聘偏好,让报名更精准</view> <view class="t2">请继续完善相关信息</view>
</view> </view>
<view class="content"> <view class="content">
<view class="form-item"> <view class="form-item">
......
...@@ -50,6 +50,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () = ...@@ -50,6 +50,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () =
accommodation: 0, accommodation: 0,
provinceCode: "", provinceCode: "",
cityName: "", cityName: "",
majorRequirement: "",
cityCode: "", cityCode: "",
districtCode: "", districtCode: "",
street: "", street: "",
...@@ -76,6 +77,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () = ...@@ -76,6 +77,7 @@ export const useReleasePostionStore = defineStore("useReleasePostionStore", () =
settlementType: 4, settlementType: 4,
minSalary: null, minSalary: null,
maxSalary: null, maxSalary: null,
majorRequirement: "",
benefits: "", benefits: "",
identityRequirement: 1, identityRequirement: 1,
educationRequirement: 1, educationRequirement: 1,
......
import axios from "axios"; import axios from "axios";
import { getToken, removeToken } from "@/utils/token"; import { getToken, removeToken } from "@/utils/token";
const baseURL = "https://lygsh-api.wjzpgz.com/"; // const baseURL = "https://lygsh-api.wjzpgz.com/";
// const baseURL = "http://192.168.11.48:8080/"; const baseURL = "http://192.168.11.48:8080/";
// 创建一个 axios 实例 // 创建一个 axios 实例
const instance = axios.create({ const instance = axios.create({
baseURL, // 设置基础 URL baseURL, // 设置基础 URL
......
...@@ -131,7 +131,9 @@ export const validateForm = (formData, requiredFields) => { ...@@ -131,7 +131,9 @@ export const validateForm = (formData, requiredFields) => {
? "特种作业证书" ? "特种作业证书"
: field === "avatarPath" : field === "avatarPath"
? "头像" ? "头像"
: "表单" : field === "majorText"
? "专业"
: "完岗位信息"
}!`, }!`,
icon: "none", icon: "none",
duration: 2000 duration: 2000
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment