招聘会

parent a61f8e84
......@@ -8,7 +8,7 @@
"files.eol": "\n",
"typescript.tsdk": "node_modules/typescript/lib",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "octref.vetur"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
......
......@@ -8,7 +8,7 @@ export const getArticleDetailApi = id => instance.post(`/article/detail/${id}`);
export const getArticleTypesApi = type => instance.post(`/article/category/list/${type}`);
//招聘会报名状态
export const registerStatus = articleId => instance.post(`/jobFair/register/status/${articleId}`);
export const registerStatus = articleId => instance.post(`/article/jobFair/check/${articleId}`);
// 参加招聘会
......
......@@ -49,6 +49,10 @@ export const companyReviewInfo = params => instance.post("/b/company/review/info
export const companyReviewUpdate = params => instance.post("/b/company/review/update", params);
//职位列表
export const positionList = params => instance.post("/b/position/list", params);
//批量创建岗位
export const positionAddList = params => instance.post("/b/position/addList", params);
//批量更新职位
export const positionuUdateList = params => instance.post("/b/position/updateList", params);
//根据id获取反馈信息
export const feedbackById = params => instance.post(`/feedback/${params}`);
......@@ -39,6 +39,7 @@ const iconPath = new URL(`../../static/image/icon/${props.icon}.png`, import.met
font-size: 32rpx;
font-weight: 600;
line-height: 36rpx;
white-space: nowrap;
}
.icon {
position: absolute;
......
......@@ -26,10 +26,14 @@
placeholder
safeAreaInsetBottom
>
<wd-button @tap="next" :disabled="data.bmStutas || !data.bm" round="false" class="foot-btn">{{
<!-- <wd-button @tap="next" :disabled="data.bmStutas || !data.bm" round="false" class="foot-btn">{{
!data.bmStutas && data.bm ? "立即报名" : data.bmStutas ? "已报名" : "报名结束"
}}</wd-button> -->
<wd-button @tap="next" :disabled="!data.bm" round="false" class="foot-btn">{{
data.bm ? "立即报名" : "报名结束"
}}</wd-button>
</wd-tabbar>
<wd-action-sheet v-model="show" :actions="actions" @close="close" @select="select" />
</div>
</template>
......@@ -39,6 +43,15 @@ import evn from "@/utils/config.js";
import { ref } from "vue";
import dayjs from "dayjs";
const data = ref({});
const show = ref(false);
const actions = ref([
{
name: "更新岗位"
},
{
name: "新增岗位"
}
]);
let articleId = ref(null);
onLoad(({ id }) => {
articleId.value = id;
......@@ -53,12 +66,27 @@ onLoad(({ id }) => {
data.value.bm = false;
}
registerStatus(id).then(Res => {
data.value.bmStutas = Res.data;
});
// registerStatus(id).then(Res => {
// data.value.bmStutas = Res.data;
// });
});
console.log("data.value", data.value.bm, data.value.bmStutas);
});
function showActions() {}
function close() {
show.value = false;
}
function select({ item, index }) {
if (index == 0) {
xma.navigateTo({
url: `/pages/signUp/addPost?articleId=${articleId.value}&type=update`
});
} else {
xma.navigateTo({
url: `/pages/signUp/addPost?articleId=${articleId.value}&type=add`
});
}
}
onShow(() => {
const currentTime = Date.now();
getArticleDetailApi(articleId.value).then(res => {
......@@ -71,16 +99,14 @@ onShow(() => {
data.value.bm = false;
}
registerStatus(articleId.value).then(Res => {
data.value.bmStutas = Res.data;
});
// registerStatus(articleId.value).then(Res => {
// data.value.bmStutas = Res.data;
// });
});
});
const form = ref();
function next() {
xma.navigateTo({
url: `/pages/signUp/index?articleId=${articleId.value}`
});
show.value = true;
}
</script>
......
<template>
<div class="page">
<NavBar :showIcon="true" :showTitle="true" title="岗位信息" backgroundBox="#FFFFFF"></NavBar>
<wd-tabs sticky :offset-top="0" v-model="tab">
<block v-for="item in tabList" :key="item.id">
<wd-tab :title="item.name">
<view class="from-1" v-if="tab == 0">
<wd-checkbox-group v-model="value">
<view class="wd-cell-item" v-for="i in gwList" :key="i.id">
<wd-checkbox :value="i"></wd-checkbox>
<view class="right">
<view class="position-name">{{ i.name }}</view>
<view class="tip">贵阳|{{ i.workDic }}{{ i.jobTypeName }}</view>
</view>
</view>
</wd-checkbox-group>
<view class="from-1" v-if="pageType == 'update'">
<wd-checkbox-group v-model="value">
<view class="wd-cell-item" v-for="i in gwList" :key="i.id">
<wd-checkbox :modelValue="i.id"></wd-checkbox>
<view class="right">
<view class="position-name">{{ i.name }}</view>
<view class="tip">贵阳|{{ i.workDic }}{{ i.jobTypeName }}</view>
</view>
<view v-else>
<view class="from-2" v-for="(item, index) in jobForm" :key="index">
<view class="title">新增岗位信息{{ index + 1 }}</view>
<selectbox
@update="initSalaryColumns"
:options="EnumWorkMode"
label-key="text"
value-key="code"
v-model="item.workMode"
></selectbox>
<!-- 职位类型 -->
<form-row>
<form-item title="职位类型">
<wd-col-picker
v-model="positionTypeValue"
:columns="columns"
:column-change="columnChange"
@confirm="params => handleConfirm(params, item)"
label-key="name"
value-key="id"
use-default-slot
>
<view :class="`inner flex-between ${item.jobTypeName ? '' : 'placeholder'}`">
{{ item.jobTypeName || "请选择职位类型" }}
</view>
</wd-col-picker>
</form-item>
</form-row>
<!-- 职位标题 -->
<form-row>
<form-item title="职位标题" icon="arrow">
<input type="text" v-model="item.name" placeholder="输入职位标题如“财务总监”" />
</form-item>
</form-row>
<!-- 职位描述 -->
<form-row>
<form-item title="职位描述" :border="false" icon="">
<textarea v-model="item.positionDesc" placeholder="请输入你的职位描述"></textarea>
</form-item>
</form-row>
<view class="transverse">
<form-item title="职位薪资" icon="">
<view
v-if="item.settlementType == 4"
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
@click="onOpen(item, index)"
>
{{ item.salaryText || "请选择月薪范围" }}
</view>
</wd-checkbox-group>
</view>
<view v-else>
<view class="from-2" v-for="(item, index) in jobForm" :key="index">
<view class="title">新增岗位信息{{ index + 1 }}</view>
<selectbox
@update="initSalaryColumns"
:options="EnumWorkMode"
label-key="text"
value-key="code"
v-model="item.workMode"
></selectbox>
<!-- 职位类型 -->
<form-row>
<form-item title="职位类型">
<wd-col-picker
v-model="positionTypeValue"
:columns="columns"
:column-change="columnChange"
@confirm="params => handleConfirm(params, item)"
label-key="name"
value-key="id"
use-default-slot
>
<view :class="`inner flex-between ${item.jobTypeName ? '' : 'placeholder'}`">
{{ item.jobTypeName || "请选择职位类型" }}
</view>
</wd-col-picker>
</form-item>
</form-row>
<!-- 职位标题 -->
<form-row>
<form-item title="职位标题" icon="arrow">
<input type="text" v-model="item.name" placeholder="输入职位标题如“财务总监”" />
</form-item>
</form-row>
<!-- 职位描述 -->
<form-row>
<form-item title="职位描述" :border="false" icon="">
<textarea v-model="item.positionDesc" placeholder="请输入你的职位描述"></textarea>
</form-item>
</form-row>
<view class="transverse">
<form-item title="职位薪资" icon="">
<view
v-if="item.settlementType == 4"
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
@click="onOpen(item, index)"
>
{{ item.salaryText || "请选择月薪范围" }}
<!-- <view class="arrow"></view> -->
<checkbox
class="checkbox"
:value="item.negotiableSalary"
@click="onChecked(item)"
:checked="item.negotiableSalary == 1"
>面议</checkbox
>
</view>
<view
v-else
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
@click="onOpen(item, index)"
>
{{ item.salaryText || "请选择时薪范围" }}
<!-- <view class="arrow"></view> -->
<checkbox
class="checkbox"
:value="item.negotiableSalary"
@click="onChecked(item)"
:checked="item.negotiableSalary == 1"
>面议</checkbox
>
</view>
</form-item>
<form-item title="工作地址" icon="">
<wd-col-picker
v-model="cityValue"
:columns="cityOpstion"
value-key="code"
label-key="name"
:column-change="columnChangeCity"
@confirm="params => handleConfirmCity(params, item)"
use-default-slot
>
<p :class="{ placeholder: !item.cityText }" class="text-single">
{{ item.cityText || "请选择公司所在地" }}
</p>
</wd-col-picker>
</form-item>
<!-- <view class="arrow"></view> -->
<checkbox
class="checkbox"
:value="item.negotiableSalary"
@click="onChecked(item)"
:checked="item.negotiableSalary == 1"
>面议</checkbox
>
</view>
<view
v-else
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
@click="onOpen(item, index)"
>
{{ item.salaryText || "请选择时薪范围" }}
<!-- <view class="arrow"></view> -->
<checkbox
class="checkbox"
:value="item.negotiableSalary"
@click="onChecked(item)"
:checked="item.negotiableSalary == 1"
>面议</checkbox
>
</view>
</form-item>
<form-item title="工作地址" icon="">
<wd-col-picker
v-model="cityValue"
:columns="cityOpstion"
value-key="code"
label-key="name"
:column-change="columnChangeCity"
@confirm="params => handleConfirmCity(params, item)"
use-default-slot
>
<p :class="{ placeholder: !item.cityText }" class="text-single">
{{ item.cityText || "请选择公司所在地" }}
</p>
</wd-col-picker>
</form-item>
</view>
<form-item title="是否提供食宿" icon="">
<wd-radio-group v-model="item.accommodation" inline shape="dot">
<wd-radio v-for="(v, n) in radioOpstion" :value="v.code" :key="n">{{ v.text }}</wd-radio>
</wd-radio-group>
</form-item>
<form-item title="福利待遇" icon="">
<view class="welfare">
<view
v-for="(el, nl) in item.myBenefits"
:class="`t ${el.active ? 'active' : ''}`"
@tap="onChangeBenefits(el, item)"
:key="nl"
>{{ el.text }}</view
>
</view>
</form-item>
<form-item title="身份要求" icon="">
<wd-picker
:columns="identityPostion"
value-key="code"
label-key="text"
v-model="item.identityRequirement"
@confirm="params => handleConfirmIdentity(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.identityText ? '' : 'placeholder'}`">
<view class="flex-align-center">
{{ item.identityText || "请选择身份要求" }}
</view>
<form-item title="是否提供食宿" icon="">
<wd-radio-group v-model="item.accommodation" inline shape="dot">
<wd-radio v-for="(v, n) in radioOpstion" :value="v.code" :key="n">{{ v.text }}</wd-radio>
</wd-radio-group>
</form-item>
<form-item title="福利待遇" icon="">
<view class="welfare">
<view
v-for="(el, nl) in item.myBenefits"
:class="`t ${el.active ? 'active' : ''}`"
@tap="onChangeBenefits(el, item)"
:key="nl"
>{{ el.text }}</view
>
</view>
</wd-picker>
</form-item>
<view class="transverse">
<form-item title="学历要求" icon="">
<wd-picker
:columns="educationPostion"
value-key="code"
label-key="text"
v-model="item.educationRequirement"
@confirm="params => handleConfirmEducation(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.educationText ? '' : 'placeholder'}`">
<view class="flex-align-center">
{{ item.educationText || "请选择学历" }}
</view>
</form-item>
<form-item title="身份要求" icon="">
<wd-picker
:columns="identityPostion"
value-key="code"
label-key="text"
v-model="item.identityRequirement"
@confirm="params => handleConfirmIdentity(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.identityText ? '' : 'placeholder'}`">
<view class="flex-align-center">
{{ item.identityText || "请选择身份要求" }}
</view>
</view>
</wd-picker>
</form-item>
<view class="transverse">
<form-item title="学历要求" icon="">
<wd-picker
:columns="educationPostion"
value-key="code"
label-key="text"
v-model="item.educationRequirement"
@confirm="params => handleConfirmEducation(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.educationText ? '' : 'placeholder'}`">
<view class="flex-align-center">
{{ item.educationText || "请选择学历" }}
</view>
</view>
</wd-picker> </form-item
><form-item title="年龄要求" icon="">
<wd-col-picker
v-model="ageValue"
:columns="ageColumns"
:column-change="ageColumnChange"
@confirm="params => ageHandleConfirm(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.ageText ? '' : 'placeholder'}`">
{{ item.ageText || "请选择年龄范围" }}
</view>
</wd-col-picker>
</form-item>
</view>
<form-row :fill="false">
<form-item title="职业资格/技能等级证书" icon="edit">
<input type="text" v-model="certificateInputValue" placeholder="请填写职业资格" />
</form-item>
<form-item title="">
<wd-picker
:columns="levelOptions"
value-key="text"
label-key="text"
v-model="certificateSelectValue"
use-default-slot
>
<view :class="`inner flex-between ${certificateSelectValue ? '' : 'placeholder'}`">
<view class="flex-align-center" bind:tap="onShowIdentitySelect">
{{ certificateSelectValue || "请选择职业资格等级" }}
</view>
</view>
</wd-picker>
</form-item>
</form-row>
</view>
</view>
</wd-tab>
</block>
<wd-popup
v-model="salaryShow"
position="bottom"
custom-style="height:40%;border-radius: 20rpx;z-index:999;"
@close="handleClose"
>
<view class="title-box"
><view></view>
<view class="title">薪资选择</view>
<wd-icon @click="handleClose" name="close" size="30rpx"></wd-icon>
</wd-picker> </form-item
><form-item title="年龄要求" icon="">
<wd-col-picker
v-model="ageValue"
:columns="ageColumns"
:column-change="ageColumnChange"
@confirm="params => ageHandleConfirm(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${item.ageText ? '' : 'placeholder'}`">
{{ item.ageText || "请选择年龄范围" }}
</view>
</wd-col-picker>
</form-item>
</view>
<wd-picker-view
@change="params => salaryHandleConfirm(params, item)"
use-default-slot
:columns="salaryColumns"
v-if="salaryShow"
v-model="salaryValue"
></wd-picker-view>
<view style="display: flex; justify-content: center; width: 100%"
><wd-button style="width: 80%" @click="handleClose" block :round="false">确定</wd-button></view
>
</wd-popup>
</wd-tabs>
<form-row :fill="false">
<form-item title="专业技术职称" icon="edit">
<input type="text" @input="inputMajor($event, item)" v-model="majorInputValue" placeholder="请填写职称" />
</form-item>
<form-item title="">
<wd-picker
:columns="levelOptions"
value-key="text"
label-key="text"
v-model="majorSelectValue"
@confirm="params => handMajoration(params, item)"
use-default-slot
>
<view :class="`inner flex-between ${majorSelectValue ? '' : 'placeholder'}`">
<view class="flex-align-center" bind:tap="onShowIdentitySelect">
{{ majorSelectValue || "请选择职业等级" }}
</view>
</view>
</wd-picker>
</form-item>
</form-row>
<form-row :fill="false">
<form-item title="职业资格/技能等级证书" icon="edit">
<input
type="text"
@input="inputLeve($event, item)"
v-model="certificateInputValue"
placeholder="请填写职业资格"
/>
</form-item>
<form-item title="">
<wd-picker
:columns="levelOptions"
value-key="text"
label-key="text"
@confirm="params => handlelevelation(params, item)"
v-model="certificateSelectValue"
use-default-slot
>
<view :class="`inner flex-between ${certificateSelectValue ? '' : 'placeholder'}`">
<view class="flex-align-center">
{{ certificateSelectValue || "请选择职业资格等级" }}
</view>
</view>
</wd-picker>
</form-item>
</form-row>
<form-item title="特种作业证" icon="edit">
<input v-model="item.specialCertificates" type="text" placeholder="请填写特种作业证" />
</form-item>
<form-row :fill="false">
<form-item title="招聘人数" icon="edit">
<input type="number" v-model="item.recruitmentNumber" placeholder="请输入招聘人数" />
</form-item>
<form-item title="联系电话" icon="edit">
<input type="number" v-model="item.contactPhone" placeholder="请输入联系电话" />
</form-item> </form-row
><form-item title="联系人" icon="edit">
<input type="text" v-model="item.contactPerson" placeholder="请输入联系人" />
</form-item>
</view>
</view>
<wd-popup
v-model="salaryShow"
position="bottom"
custom-style="height:40%;border-radius: 20rpx;z-index:999;"
@close="handleClose"
>
<view class="title-box"
><view></view>
<view class="title">薪资选择</view>
<wd-icon @click="handleClose" name="close" size="30rpx"></wd-icon>
</view>
<wd-picker-view
@change="params => salaryHandleConfirm(params, item)"
use-default-slot
:columns="salaryColumns"
v-if="salaryShow"
v-model="salaryValue"
></wd-picker-view>
<view style="display: flex; justify-content: center; width: 100%"
><wd-button style="width: 80%" @click="handleClose" block :round="false">确定</wd-button></view
>
</wd-popup>
<wd-tabbar
v-if="tab == 0"
v-if="pageType == 'update'"
custom-style="display: flex;justify-content: center !important;z-index:1;"
fixed
placeholder
safeAreaInsetBottom
>
<view class="footer"> <button class="foot-btn" @click="openMask">下一步</button></view>
<view class="footer"> <button class="foot-btn" @click="submitFrom">提交报名</button></view>
</wd-tabbar>
<wd-tabbar
v-else
......@@ -232,7 +266,7 @@
>
<view class="footer">
<button class="foot-btn1" @click="addPost">继续添加</button>
<button class="foot-btn" @click="openMask">提交报名</button></view
<button class="foot-btn" @click="submitFrom">提交报名</button></view
>
</wd-tabbar>
</div>
......@@ -240,15 +274,16 @@
<script setup>
import { ref } from "vue";
import { positionList } from "@/api/user";
import { positionList, positionAddList, positionuUdateList } from "@/api/user";
import Selectbox from "@/components/form/selectbox.vue";
import FormItem from "@/components/form/form-item.vue";
import FormRow from "@/components/form/form-row.vue";
import { dictJobTypeApi, getTreeListApi } from "@/api/common";
import { validateForm } from "@/utils/utils";
import town from "@/assets/town.json";
import { getEumData } from "@/utils/utils";
const tab = ref(1);
const tab = ref(0);
const value = ref([]);
const gwList = ref([]);
const columns = ref([]);
......@@ -267,10 +302,16 @@ let salaryText = ref("");
const salaryColumns = ref([]);
/* 是否提供住宿 */
const radioOpstion = ref([]);
const certificateInputValue = ref("");
const certificateSelectValue = ref("");
const majorInputValue = ref("");
const majorSelectValue = ref("");
/* 职业类型 */
const positionTypeValue = ref([]);
/* 兼职全职枚举 */
const EnumWorkMode = ref([]);
const articleIds = ref("");
const pageType = ref("");
/* 等级选择项 */
const levelOptions = ref(["初级", "中级", "高级", "高级以上"]);
......@@ -290,9 +331,9 @@ const jobForm = ref([
maxSalary: null,
benefits: "",
identityRequirement: 1,
educationRequirement: null,
minAgeRequirement: null,
maxAgeRequirement: null,
educationRequirement: 0,
minAgeRequirement: 0,
maxAgeRequirement: 0,
recruitmentNumber: 1,
accommodation: 0,
provinceCode: "",
......@@ -302,10 +343,10 @@ const jobForm = ref([
address: "",
contactPerson: "",
contactPhone: "",
articleId: "",
positionalTitle: "",
professionalCertificates: "",
specialCertificates: "",
articleId: articleIds.value,
salaryText: "", //显示
myBenefits: [
{
......@@ -335,6 +376,10 @@ const jobForm = ref([
]
}
]);
onLoad(({ articleId, type }) => {
articleIds.value = articleId;
pageType.value = type;
});
const tabList = ref([
{ id: 213213, name: "选择已有岗位", type: 1 },
{ id: 1651651, name: "新增岗位", type: 2 }
......@@ -390,6 +435,9 @@ positionList({}).then(res => {
item.workDic = EnumWorkMode.value.find(v => v.code == item.workMode).text;
return item;
});
res.data = res.data.filter(item => {
return !item.articleId;
});
gwList.value = res.data;
});
const getJobType = () => {
......@@ -412,9 +460,11 @@ const columnChange = ({ selectedItem, resolve, finish }) => {
};
const handleConfirm = (params, item) => {
const { selectedItems, value } = params;
item.jobTypeName = selectedItems[1].name;
item.jobTypePid = selectedItems[1].id;
item.jobTypeParentId = selectedItems[0].id;
item.jobTypeId = selectedItems[1].id;
item.jobTypePid = selectedItems[0].id;
console.log("selectedItems", item.jobTypeName, item.jobTypeId, item.jobTypePid);
};
// 职业类型
// 地址
......@@ -438,9 +488,11 @@ const handleConfirmCity = (params, item) => {
const [city, district, street] = selectedItems;
item.address = selectedItems.map(v => v.name || "").join("");
item.provinceCode = 520000;
item.cityName = city.name;
item.cityCode = city.code;
item.districtCode = district.code;
item.street = street ? street.name : "";
console.log("item.cityName", item.cityName);
};
// 地址
......@@ -585,6 +637,99 @@ const handleConfirmEducation = (params, item) => {
const { selectedItems, value } = params;
item.educationText = selectedItems.text;
};
const inputLeve = (e, item) => {
const { value } = e.detail;
item.professionalCertificates = value + "-" + certificateSelectValue.value;
};
const handlelevelation = (params, item) => {
const { selectedItems, value } = params;
item.professionalCertificates = certificateInputValue.value + "-" + value;
};
const inputMajor = (e, item) => {
const { value } = e.detail;
item.positionalTitle = value + "-" + majorSelectValue.value;
};
const handMajoration = (params, item) => {
const { selectedItems, value } = params;
item.positionalTitle = majorInputValue.value + "-" + value;
};
const selectedJobs = ref([]);
const submitFrom = () => {
if (pageType.value == "update") {
let updateArr = gwList.value.filter(item => value.value.includes(String(item.id)));
updateArr = updateArr.map(item => {
return {
id: item.id,
articleId: articleIds.value
};
});
if (updateArr.length > 0) {
xma.showLoading({
title: "提交中...",
mask: true
});
positionuUdateList(updateArr).then(res => {
xma.hideLoading();
if (res.code == 200) {
xma.navigateBack({
delta: 1
});
}
});
} else {
xma.showToast({
title: "请选择职位",
icon: "none"
});
}
} else {
console.log("jobForm.value", jobForm.value);
const allValid =
jobForm.value.length > 0 &&
jobForm.value.every(item => {
return (
item &&
validateForm(item, [
"jobTypeId",
"jobTypeName",
"name",
"positionDesc",
"address",
"identityRequirement",
"educationRequirement",
"positionalTitle",
"professionalCertificates",
"specialCertificates",
"contactPhone",
"contactPerson"
])
);
});
if (allValid) {
xma.showLoading({
title: "提交中...",
mask: true
});
positionAddList(jobForm.value).then(res => {
xma.hideLoading();
if (res.code == 200) {
xma.navigateBack({
delta: 1
});
}
});
} else {
xma.showToast({
title: "请填写完整",
icon: "none"
});
}
}
};
function openMask() {
tab.value = 1;
}
function addPost() {
jobForm.value.push({
workMode: 1,
......@@ -611,10 +756,10 @@ function addPost() {
address: "",
contactPerson: "",
contactPhone: "",
articleId: "",
positionalTitle: "",
professionalCertificates: "",
specialCertificates: "",
articleId: articleIds.value,
salaryText: "", //显示
myBenefits: [
{
......
......@@ -38,14 +38,16 @@ import { getCompanyInfoApi } from "@/api/user";
import { useStore } from "./store";
const pinias = useStore();
const enterpriseInformation = ref({});
onLoad(options => {
const articleIds = ref("");
onLoad(({ articleId }) => {
articleIds.value = articleId;
getCompanyInfoApi().then(res => {
enterpriseInformation.value = res.data;
});
});
const next = () => {
uni.navigateTo({
url: "/pages/signUp/addPost"
url: `/pages/signUp/addPost?articleId=${articleIds.value}`
});
};
</script>
......
......@@ -71,6 +71,7 @@ export const formatTimestamp = (timestamp, formatString = "YYYY-MM-DD hh:mm:ss")
export const validateForm = (formData, requiredFields) => {
const phoneRegex = /^1[3-9]\d{9}$/; // 正则表达式匹配中国大陆手机号码
for (const field of requiredFields) {
const fieldValue = formData[field];
if (field === "contactPhone" || field === "phone") {
if (!formData[field] || !phoneRegex.test(formData[field])) {
uni.showToast({
......@@ -80,7 +81,7 @@ export const validateForm = (formData, requiredFields) => {
});
return false;
}
} else if (!formData[field]) {
} else if (fieldValue === null || fieldValue === undefined || fieldValue === "") {
console.log(field);
uni.showToast({
......
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