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

需求修改

parent d5a8dbe7
......@@ -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`);
<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;
......
......@@ -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);
});
......
......@@ -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);
});
......
......@@ -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>
......
......@@ -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 => {
......
......@@ -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>
......
......@@ -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"
});
......
......@@ -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">
......
......@@ -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,
......
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
......
......@@ -131,7 +131,9 @@ export const validateForm = (formData, requiredFields) => {
? "特种作业证书"
: field === "avatarPath"
? "头像"
: "表单"
: field === "majorText"
? "专业"
: "完岗位信息"
}!`,
icon: "none",
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