flat:校验++

This commit is contained in:
Apcallover
2024-04-09 21:24:25 +08:00
parent caf55a7ff2
commit 928bc34838
3 changed files with 290 additions and 179 deletions

View File

@@ -3,7 +3,7 @@
<view>
<view class="u-demo-block__content">
<!-- 注意如果需要兼容微信小程序最好通过setRules方法设置rules规则 -->
<u--form labelPosition="left" :model="info" ref="form1">
<u--form labelPosition="left" :model="info" ref="form1" :rules="rules">
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">任务信息</view>
<u-form-item label="任务名称" prop="jobName" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.jobName" border="none" placeholder="请输入任务名称"></u--input>
@@ -22,12 +22,13 @@
</u-form-item>
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">任务要求</view>
<u-form-item label="招聘人数" prop="peopleNum" borderBottom labelWidth="80" ref="item3">
<u--input v-model="info.peopleNum" border="none" placeholder="请输入招聘人数"></u--input>
<u--input type="number" v-model="info.peopleNum" border="none" placeholder="请输入招聘人数">
</u--input>
</u-form-item>
<u-form-item label="参考工资" prop="jobName" borderBottom labelWidth="80" ref="item1">
<u-form-item label="参考工资" prop="wage" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.wage" border="none" placeholder="请输入参考工资">
<template slot="suffix">
<u-form-item class="wageunitLeft" prop="wage" labelWidth="0" border="surround"
<u-form-item class="wageunitLeft" prop="wageUnitCategory" labelWidth="0" border="surround"
@click="showWage = true; hideKeyboard()" ref="item4">
<u--input
v-model="info.wageUnitCategoryName"
@@ -58,16 +59,13 @@
border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item label="任务描述" prop="jobDescription" borderBottom labelWidth="80" ref="item1">
<!-- <u--textarea v-model="info.jobDescription" placeholder="请输入任务描述"></u--textarea> -->
<!-- <u--input v-model="info.jobDescription" border="none" placeholder="请输入任务描述"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> -->
</u-form-item>
<u-form-item label="任务描述" labelWidth="80" ref="item1"></u-form-item>
<view>
<u--textarea v-model="info.jobDescription"
placeholder="参考示例:任务名称:保姆 工作内容: 一日三餐,卫生打扫 工资: 200元/天 年龄要求: 25-40岁 工作经验要求: 有过住家保姆经验, 会做饭,受过高等教育的优先"
count height="100" maxlength="200"></u--textarea>
</view>
</view>
<u-form-item prop="jobDescription" borderBottom labelWidth="80" ref="item1"></u-form-item>
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">人员要求</view>
<!-- <u-form-item label="人员属性" prop="userNature" labelWidth="80" borderBottom
@click="showNature = true; hideKeyboard()" ref="item7">
@@ -106,14 +104,12 @@
<u-form-item label="企业性质" prop="jobCompanyNature" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.jobCompanyNature" border="none" placeholder="请输入企业性质"></u--input>
</u-form-item>
<u-form-item label="企业介绍" prop="jobCompanyDescription" borderBottom labelWidth="80" ref="item1">
<!-- <u--input v-model="info.jobCompanyDescription" border="none" placeholder="请输入企业介绍"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> -->
</u-form-item>
<u-form-item label="企业介绍"labelWidth="80" ref="item1"></u-form-item>
<view>
<u--textarea v-model="info.jobCompanyDescription" placeholder="请输入企业介绍" count height="100"
maxlength="200"></u--textarea>
</view>
</view>
<u-form-item prop="jobCompanyDescription" borderBottom labelWidth="80" ref="item1"></u-form-item>
<u-form-item label="联系人" prop="callName" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.callName" border="none" placeholder="请输入联系人"></u--input>
</u-form-item>
@@ -199,9 +195,10 @@ export default {
skillNames: '', // 工种二级名称
jobDescription: '', // 任务描述
// userNature: '', // 人员属性
ageDesc: '', // 年龄要求
education: '', // 学历要求
experienceDesc: '', // 经验要求
educationLabel: dic.eduArr[0][0].label, // 学历要求前端显示
ageDesc: dic.ageArr[0][0].label, // 年龄要求
education: dic.eduArr[0][0].value, // 学历要求
experienceDesc: dic.expeArr[0][0].label, // 经验要求
jobCompanyName: '', // 企业名称
jobCompanyScale: '', // 企业信用代码
jobCompanyIndustry: '', // 所属行业
@@ -238,69 +235,121 @@ export default {
eduColumns: dic.eduArr,
expeColumns: dic.expeArr,
rules: {
'userInfo.name': [{
jobName: {
type: 'string',
required: true,
message: '请填写姓名',
trigger: ['blur', 'change']
}, {
// 此为同步验证可以直接返回true或者false如果是异步验证稍微不同见下方说明
validator: (rule, value, callback) => {
// 调用uView自带的js验证规则详见https://www.uviewui.com/js/test.html
return uni.$u.test.chinese(value);
},
message: "姓名必须为中文",
// 触发器可以同时用blur和change二者之间用英文逗号隔开
trigger: ["change", "blur"],
}],
code: {
type: 'string',
required: true,
len: 4,
message: '请填写4位验证码',
trigger: ['blur']
},
'userInfo.sex': {
type: 'string',
max: 1,
required: true,
message: '请选择男或女',
trigger: ['blur', 'change']
},
radiovalue1: {
type: 'string',
min: 1,
max: 2,
message: '橙子有毒',
trigger: ['change']
},
checkboxValue1: {
type: 'array',
min: 2,
required: true,
message: '不能太宅,至少选两项',
trigger: ['change']
},
intro: {
type: 'string',
min: 3,
required: true,
message: '不低于3个字',
trigger: ['change']
},
hotel: {
type: 'string',
min: 2,
required: true,
message: '请选择住店时间',
trigger: ['change']
},
'userInfo.birthday': {
type: 'string',
required: true,
message: '请选择生日',
message: '请输入招工名称',
trigger: ['change']
},
stime: {
type: 'string',
required: true,
message: '请输入开始时间',
trigger: ['change']
},
etime: {
type: 'string',
required: true,
message: '请选择结束时间',
trigger: ['change']
},
peopleNum: {
type: 'number',
required: true,
message: '请输入招聘人数',
trigger: ['change']
},
wage: {
type: 'string',
required: true,
message: '请输入参考工资',
trigger: ['change']
},
tradeNames: {
type: 'string',
required: true,
message: '请选择行业类型',
trigger: ['change']
},
skillNames: {
type: 'string',
required: true,
message: '请选择工种',
trigger: ['change']
},
jobDescription: {
type: 'string',
min: 20,
required: true,
message: '请输入任务描述最少20个字符',
trigger: ['change']
},
ageDesc:{
type: 'string',
required: true,
message: '请选择年龄',
trigger: ['change']
},
educationLabel:{
type: 'string',
required: true,
message: '请选择学历',
trigger: ['change']
},
experienceDesc:{
type: 'string',
required: true,
message: '请选择经验要求',
trigger: ['change']
},
jobCompanyName: {
type: 'string',
required: true,
message: '请输入企业名称',
trigger: ['change']
},
jobCompanyScale: {
type: 'string',
required: true,
message: '请输入企业信用代码',
trigger: ['change']
},
jobCompanyIndustry: {
type: 'string',
required: true,
message: '请输入所属行业',
trigger: ['change']
},
jobCompanyNature: {
type: 'string',
required: true,
message: '请输入企业性质',
trigger: ['change']
},
jobCompanyDescription: {
type: 'string',
required: true,
message: '请输入企业介绍',
trigger: ['change']
},
callName: {
type: 'string',
required: true,
message: '请输入联系人',
trigger: ['change']
},
callTel: {
type: 'string',
required: true,
message: '请输入手机号',
trigger: ['change']
},
address: {
type: 'string',
required: true,
message: '请输入详细地址',
trigger: ['change']
},
},
}
},
@@ -476,7 +525,8 @@ export default {
// uni.$u.toast('校验通过')
// }).catch(errors => {
// uni.$u.toast('校验失败')
// })
// })
let vali = ['']
const names = this.getSkilDataNameWhereId(this.skillColumnsIndex, true)
const ids = this.getSkilDataNameWhereId(this.skillColumnsIndex, false)
this.info.jobType = 0
@@ -486,14 +536,19 @@ export default {
skillIds: ids[1], // 工种二级id
worktypeNames: names[0], // 工种名称
skillNames: names[1], // 工种二级名称
}
let that = this
submitInfo(params).then(res => {
if (res.data.code == 200) {
that.reset()
uni.$u.toast('发布成功')
}
})
}
let that = this
this.$refs.form1.validate().then(res => {
if(!this.info.wageUnitCategory) {return this.$api.msg('请选择参考工资单位')}
submitInfo(params).then(res => {
if (res.data.code == 200) {
that.reset()
uni.$u.toast('发布成功')
}
})
}).catch(errors => {
uni.$u.toast('校验失败')
})
},
reset() {
// jobCompanyName: '', // 企业名称
@@ -531,7 +586,8 @@ export default {
this.$refs.form1.resetFields()
this.$refs.form1.clearValidate()
setTimeout(() => {
this.$refs.form1.clearValidate(validateList)
this.$refs.form1.clearValidate(validateList)
this.backfill(this.company)
// 或者使用 this.$refs.form1.clearValidate()
}, 10)
},

View File

@@ -3,7 +3,7 @@
<view>
<view class="u-demo-block__content">
<!-- 注意如果需要兼容微信小程序最好通过setRules方法设置rules规则 -->
<u--form labelPosition="left" :model="info" ref="form1">
<u--form labelPosition="left" :model="info" ref="form1" :rules="rules">
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">岗位信息</view>
<u-form-item label="岗位名称" prop="jobName" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.jobName" border="none" placeholder="请输入岗位名称"></u--input>
@@ -22,7 +22,7 @@
</u-form-item>
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">岗位要求</view>
<u-form-item label="招聘人数" prop="peopleNum" borderBottom labelWidth="80" ref="item3">
<u--input v-model="info.peopleNum" border="none" placeholder="请输入招聘人数"></u--input>
<u--input type="number" v-model="info.peopleNum" border="none" placeholder="请输入招聘人数"></u--input>
</u-form-item>
<!-- <u-form-item label="参考工资" prop="wage" labelWidth="80" borderBottom
@click="showWage = true; hideKeyboard()" ref="item4">
@@ -30,10 +30,10 @@
border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> -->
<u-form-item label="参考工资" prop="jobName" borderBottom labelWidth="80" ref="item1">
<u-form-item label="参考工资" prop="wage" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.wage" border="none" placeholder="请输入参考工资">
<template slot="suffix">
<u-form-item class="wageunitLeft" prop="wage" labelWidth="0" border="surround"
<u-form-item class="wageunitLeft" prop="wageUnitCategory" labelWidth="0" border="surround"
@click="showWage = true; hideKeyboard()" ref="item4">
<u--input
v-model="info.wageUnitCategoryName"
@@ -60,16 +60,15 @@
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item label="岗位描述" prop="jobDescription" borderBottom labelWidth="80" ref="item1">
<!-- <u--textarea v-model="info.jobDescription" placeholder="请输入岗位描述"></u--textarea> -->
<!-- <u--input v-model="info.jobDescription" border="none" placeholder="请输入任务描述"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> -->
<u-form-item label="岗位描述" labelWidth="80" ref="item1">
</u-form-item>
<view>
<u--textarea v-model="info.jobDescription"
placeholder="参考示例:岗位名称:保姆 工作内容: 一日三餐,卫生打扫 工资: 200元/天 年龄要求: 25-40岁 工作经验要求: 有过住家保姆经验, 会做饭,受过高等教育的优先"
count height="100" maxlength="200"></u--textarea>
</view>
</view>
<u-form-item prop="jobDescription" borderBottom labelWidth="80" ref="item1">
</u-form-item>
<view style="font-size: 30rpx;font-weight: bold;padding: 20rpx 0 0;">人员要求</view>
<!-- <u-form-item label="人员属性" prop="userNature" labelWidth="80" borderBottom
@click="showNature = true; hideKeyboard()" ref="item4">
@@ -108,14 +107,12 @@
<u-form-item label="企业性质" prop="jobCompanyNature" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.jobCompanyNature" border="none" placeholder="请输入企业性质"></u--input>
</u-form-item>
<u-form-item label="企业介绍" prop="jobCompanyDescription" borderBottom labelWidth="80" ref="item1">
<!-- <u--input v-model="info.jobCompanyDescription" border="none" placeholder="请输入企业介绍"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> -->
</u-form-item>
<u-form-item label="企业介绍" labelWidth="80" ref="item1"></u-form-item>
<view>
<u--textarea v-model="info.jobCompanyDescription" placeholder="请输入企业介绍" count height="100"
maxlength="200"></u--textarea>
</view>
</view>
<u-form-item prop="jobCompanyDescription" borderBottom labelWidth="80" ref="item1"></u-form-item>
<u-form-item label="联系人" prop="callName" borderBottom labelWidth="80" ref="item1">
<u--input v-model="info.callName" border="none" placeholder="请输入联系人"></u--input>
</u-form-item>
@@ -201,11 +198,11 @@ export default {
skillNames: '', // 工种二级名称
jobDescription: '', // 任务描述
// userNature: '', // 人员属性
ageDesc: '', // 年龄要求
education: '', // 学历要求
educationLabel: '', // 学历要求前端显示
experienceDesc: '', // 经验要求
jobCompanyName: '', // 企业名称
educationLabel: dic.eduArr[0][0].label, // 学历要求前端显示
ageDesc: dic.ageArr[0][0].label, // 年龄要求
education: dic.eduArr[0][0].value, // 学历要求
experienceDesc: dic.expeArr[0][0].label, // 经验要求
jobCompanyName: '', // 企业名称
jobCompanyScale: '', // 企业信用代码
jobCompanyIndustry: '', // 所属行业
jobCompanyNature: '', // 企业性质
@@ -240,70 +237,122 @@ export default {
ageColumns: dic.ageArr,
eduColumns: dic.eduArr,
expeColumns: dic.expeArr,
rules: {
'userInfo.name': [{
type: 'string',
required: true,
message: '请填写姓名',
trigger: ['blur', 'change']
}, {
// 此为同步验证可以直接返回true或者false如果是异步验证稍微不同见下方说明
validator: (rule, value, callback) => {
// 调用uView自带的js验证规则详见https://www.uviewui.com/js/test.html
return uni.$u.test.chinese(value);
},
message: "姓名必须为中文",
// 触发器可以同时用blur和change二者之间用英文逗号隔开
trigger: ["change", "blur"],
}],
code: {
type: 'string',
required: true,
len: 4,
message: '请填写4位验证码',
trigger: ['blur']
},
'userInfo.sex': {
type: 'string',
max: 1,
required: true,
message: '请选择男或女',
trigger: ['blur', 'change']
},
radiovalue1: {
type: 'string',
min: 1,
max: 2,
message: '橙子有毒',
trigger: ['change']
},
checkboxValue1: {
type: 'array',
min: 2,
required: true,
message: '不能太宅,至少选两项',
trigger: ['change']
},
intro: {
type: 'string',
min: 3,
required: true,
message: '不低于3个字',
trigger: ['change']
},
hotel: {
type: 'string',
min: 2,
required: true,
message: '请选择住店时间',
trigger: ['change']
},
'userInfo.birthday': {
type: 'string',
required: true,
message: '请选择生日',
trigger: ['change']
},
rules: {
jobName: {
type: 'string',
required: true,
message: '请输入招工名称',
trigger: ['change']
},
stime: {
type: 'string',
required: true,
message: '请输入开始时间',
trigger: ['change']
},
etime: {
type: 'string',
required: true,
message: '请选择结束时间',
trigger: ['change']
},
peopleNum: {
type: 'number',
required: true,
message: '请输入招聘人数',
trigger: ['change']
},
wage: {
type: 'string',
required: true,
message: '请输入参考工资',
trigger: ['change']
},
tradeNames: {
type: 'string',
required: true,
message: '请选择行业类型',
trigger: ['change']
},
skillNames: {
type: 'string',
required: true,
message: '请选择工种',
trigger: ['change']
},
jobDescription: {
type: 'string',
min: 20,
required: true,
message: '请输入任务描述最少20个字符',
trigger: ['change']
},
ageDesc:{
type: 'string',
required: true,
message: '请选择年龄',
trigger: ['change']
},
educationLabel:{
type: 'string',
required: true,
message: '请选择学历',
trigger: ['change']
},
experienceDesc:{
type: 'string',
required: true,
message: '请选择经验要求',
trigger: ['change']
},
jobCompanyName: {
type: 'string',
required: true,
message: '请输入企业名称',
trigger: ['change']
},
jobCompanyScale: {
type: 'string',
required: true,
message: '请输入企业信用代码',
trigger: ['change']
},
jobCompanyIndustry: {
type: 'string',
required: true,
message: '请输入所属行业',
trigger: ['change']
},
jobCompanyNature: {
type: 'string',
required: true,
message: '请输入企业性质',
trigger: ['change']
},
jobCompanyDescription: {
type: 'string',
required: true,
message: '请输入企业介绍',
trigger: ['change']
},
callName: {
type: 'string',
required: true,
message: '请输入联系人',
trigger: ['change']
},
callTel: {
type: 'string',
required: true,
message: '请输入手机号',
trigger: ['change']
},
address: {
type: 'string',
required: true,
message: '请输入详细地址',
trigger: ['change']
},
},
}
},
@@ -480,14 +529,20 @@ export default {
...this.info,
worktypeIds: ids.join(','),
worktypeNames: names.join(',')
}
let that = this
submitInfo(params).then(res => {
if (res.data.code == 200) {
that.reset()
uni.$u.toast('发布成功')
}
})
}
let that = this
this.$refs.form1.validate().then(res => {
if(!this.info.wageUnitCategory) {return this.$api.msg('请选择参考工资单位')}
submitInfo(params).then(res => {
if (res.data.code == 200) {
that.reset()
uni.$u.toast('发布成功')
}
})
}).catch(errors => {
uni.$u.toast('校验失败')
})
},
getSkilDataNameWhereId(Indexs, type = true) {
if (!this.skillData) { return }

View File

@@ -3,7 +3,7 @@ module.exports = {
port: 1887,
proxy: {
'/api': {
target: 'http://192.168.1.106:8000',
target: 'http://10.165.0.173:8000',
ws: true,
pathRewrite: {
'^/api': '/'