各周报的校验添加
This commit is contained in:
parent
943a2a05ee
commit
304b56beb4
@ -7,7 +7,7 @@
|
||||
<div class="page-content">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<el-form :model="formAll" label-width="100px" ref="formName">
|
||||
<el-form :model="formAll" :rules="rules" label-width="100px" ref="formName">
|
||||
|
||||
<el-form-item label="项目编号" prop="projectNo">
|
||||
<el-select class="form-input" filterable placeholder="请选择" v-model="formAll.ls[0].projectNo" :disabled="true">
|
||||
@ -26,7 +26,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="本周进展" prop="thisWeek">
|
||||
<el-form-item label="本周进展" prop="ls[0].thisWeek">
|
||||
<el-input
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
@ -36,7 +36,7 @@
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="下周计划" prop="nextWeek">
|
||||
<el-form-item label="下周计划" prop="ls[0].nextWeek">
|
||||
<el-input
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
@ -88,6 +88,14 @@ export default {
|
||||
projectNo: '',
|
||||
NowUserId: '',
|
||||
draftManId: '',
|
||||
rules: {
|
||||
'ls[0].thisWeek': [
|
||||
{ required: true, message: '本周进展不能为空', trigger: 'blur' }
|
||||
],
|
||||
'ls[0].nextWeek': [
|
||||
{ required: true, message: '下周计划不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
projectManagerData: '',
|
||||
expandRight: false,
|
||||
app: app,
|
||||
|
@ -34,6 +34,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model="formModel.workload"
|
||||
@change="validateWorkload"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -267,6 +268,17 @@ export default {
|
||||
}
|
||||
return dest
|
||||
},
|
||||
// 判断工作量是否是0.5的倍数
|
||||
validateWorkload() {
|
||||
if (this.formModel.workload !== null) {
|
||||
const value = parseFloat(this.formModel.workload);
|
||||
if (value % 0.5 !== 0) {
|
||||
// Adjust value to the nearest multiple of 0.5
|
||||
this.formModel.workload = Math.round(value * 2) / 2;
|
||||
this.$message.error('工作量必须是0.5的倍数');
|
||||
}
|
||||
}
|
||||
},
|
||||
addFile () {
|
||||
this.formModel.reimburseDetail.push({
|
||||
time: '',
|
||||
|
@ -245,6 +245,40 @@ export default {
|
||||
},
|
||||
]
|
||||
},
|
||||
validateMultipleOfHalf(rule, value, callback) {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return callback(new Error('请输入一个值'));
|
||||
}
|
||||
|
||||
const num = parseFloat(value);
|
||||
|
||||
if (isNaN(num)) {
|
||||
return callback(new Error('工作量必须为数字值'));
|
||||
}
|
||||
|
||||
if ((num * 2) % 1 !== 0) {
|
||||
return callback(new Error('工作量必须是 0.5 的倍数'));
|
||||
}
|
||||
|
||||
callback(); // 通过验证
|
||||
},
|
||||
validateMultipleOfHalf1(rule, value, callback) {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return callback(new Error('请输入一个值'));
|
||||
}
|
||||
|
||||
const num = parseFloat(value);
|
||||
|
||||
if (isNaN(num)) {
|
||||
return callback(new Error('周数必须为数字值'));
|
||||
}
|
||||
|
||||
if (num <= 0 || num % 1 !== 0) {
|
||||
return callback(new Error('周数必须是正整数'));
|
||||
}
|
||||
|
||||
callback(); // 通过验证
|
||||
},
|
||||
initFormSchema () {
|
||||
this.formSchema = [
|
||||
{
|
||||
@ -287,16 +321,22 @@ export default {
|
||||
title: '项目名称',
|
||||
model: 'projectName',
|
||||
span: 7,
|
||||
// rules: [
|
||||
// {type: 'number', message: '序号必须为数字值'}
|
||||
// ],
|
||||
rules: [
|
||||
{required: true, message: '项目名称不能为空'}
|
||||
],
|
||||
externalValue: {}
|
||||
},
|
||||
{
|
||||
type: 'custom-input',
|
||||
title: '工作量(人日)',
|
||||
title: '工作量',
|
||||
model: 'workload',
|
||||
span: 5,
|
||||
rules: [
|
||||
{ required: true, message: '工作量不能为空' },
|
||||
{ type: 'number',
|
||||
validator: this.validateMultipleOfHalf,
|
||||
trigger: 'blur'}
|
||||
],
|
||||
externalValue: {}
|
||||
},
|
||||
{
|
||||
@ -304,6 +344,12 @@ export default {
|
||||
title: '周数',
|
||||
model: 'week',
|
||||
span: 5,
|
||||
rules: [
|
||||
{required: true, message: '周数不能为空'},
|
||||
{ type: 'number',
|
||||
validator: this.validateMultipleOfHalf1,
|
||||
trigger: 'blur'}
|
||||
],
|
||||
externalValue: {}
|
||||
},
|
||||
{
|
||||
@ -311,6 +357,9 @@ export default {
|
||||
title: '本周进展',
|
||||
model: 'thisWeek',
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: '本周进展不能为空'}
|
||||
],
|
||||
externalValue: {}
|
||||
},
|
||||
{
|
||||
@ -318,6 +367,9 @@ export default {
|
||||
title: '下周计划',
|
||||
model: 'nextWeek',
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: '下周计划不能为空'}
|
||||
],
|
||||
externalValue: {}
|
||||
},
|
||||
{
|
||||
|
@ -18,7 +18,7 @@
|
||||
<div class="page-content">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<el-form :model="formModel" label-width="100px" ref="formName">
|
||||
<el-form :model="formModel" :rules="rules" label-width="100px" ref="formName">
|
||||
<el-form-item label="部门" prop="deptId">
|
||||
<el-select class="form-input" filterable placeholder="请选择" v-model="formModel.deptId" :disabled="true">
|
||||
<el-option
|
||||
@ -48,6 +48,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model="formModel.projectNo"
|
||||
:disabled="true"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -59,6 +60,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model="formModel.projectName"
|
||||
:disabled="true"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -103,7 +105,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model.number="formModel.workload"
|
||||
@change="moneyChange"
|
||||
@change="validateWorkload"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -174,6 +176,14 @@ export default {
|
||||
nextWeek: '',
|
||||
userId: '',
|
||||
workload: '',
|
||||
rules: {
|
||||
thisWeek: [
|
||||
{ required: true, message: '本周进展不能为空', trigger: 'blur' }
|
||||
],
|
||||
nextWeek: [
|
||||
{ required: true, message: '下周计划不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
projectName: '',
|
||||
money: '',
|
||||
projectNo: '',
|
||||
@ -417,6 +427,17 @@ export default {
|
||||
fileList: [] // 文件列表
|
||||
})
|
||||
},
|
||||
// 判断工作量是否是0.5的倍数
|
||||
validateWorkload() {
|
||||
if (this.formModel.workload !== null) {
|
||||
const value = parseFloat(this.formModel.workload);
|
||||
if (value % 0.5 !== 0) {
|
||||
// Adjust value to the nearest multiple of 0.5
|
||||
this.formModel.workload = Math.round(value * 2) / 2;
|
||||
this.$message.error('工作量必须是0.5的倍数');
|
||||
}
|
||||
}
|
||||
},
|
||||
deleteFile (index) {
|
||||
if (this.formModel.reimburseDetail.length === 1) {
|
||||
this.$message.warning('报销明细不能为空!')
|
||||
|
@ -18,7 +18,7 @@
|
||||
<div class="page-content">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<el-form :model="formModel" label-width="100px" ref="formName">
|
||||
<el-form :model="formModel" :rules="rules" label-width="100px" ref="formName">
|
||||
<el-form-item label="项目编号" prop="projectNo">
|
||||
<el-input
|
||||
class="form-input"
|
||||
@ -60,6 +60,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model="formModel.execute"
|
||||
@change="validateExecute"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -293,6 +294,17 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 判断是否为正整数
|
||||
validateExecute() {
|
||||
if (this.formModel.execute !== null) {
|
||||
const value = parseFloat(this.formModel.execute);
|
||||
if (value <= 0 || !Number.isInteger(value)) {
|
||||
this.$message.error('必须是正整数');
|
||||
} else {
|
||||
this.formModel.execute = value;
|
||||
}
|
||||
}
|
||||
},
|
||||
//请求所有人员
|
||||
getAllPeople () {
|
||||
// Api.PersonnelManagement.personListNew(1, 10000).then((result) => {
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div class="page-content">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<el-form :model="formAll" label-width="100px" ref="formName">
|
||||
<el-form :model="formAll" :rules="rules" label-width="100px" ref="formName">
|
||||
|
||||
<el-form-item label="执行部门" prop="ext.deptName">
|
||||
<el-select class="form-input" filterable placeholder="请选择" v-model="formAll.ls[0].ext.deptName" :disabled="true">
|
||||
@ -31,7 +31,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="本周进展" prop="thisWeek">
|
||||
<el-form-item label="本周进展" prop="ls[0].thisWeek">
|
||||
<el-input
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
@ -41,7 +41,7 @@
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="下周计划" prop="nextWeek">
|
||||
<el-form-item label="下周计划" prop="ls[0].nextWeek">
|
||||
<el-input
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
@ -92,6 +92,14 @@ export default {
|
||||
money: '',
|
||||
projectNo: '',
|
||||
NowUserId: '',
|
||||
rules: {
|
||||
'ls[0].thisWeek': [
|
||||
{ required: true, message: '本周进展不能为空', trigger: 'blur' }
|
||||
],
|
||||
'ls[0].nextWeek': [
|
||||
{ required: true, message: '下周计划不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
draftManId: '',
|
||||
projectManagerData: '',
|
||||
expandRight: false,
|
||||
|
@ -39,6 +39,7 @@
|
||||
class="form-input"
|
||||
placeholder="请输入内容"
|
||||
v-model="formModel.workload"
|
||||
@change="validateWorkload"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -255,6 +256,17 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 判断工作量是否是0.5的倍数
|
||||
validateWorkload() {
|
||||
if (this.formModel.workload !== null) {
|
||||
const value = parseFloat(this.formModel.workload);
|
||||
if (value % 0.5 !== 0) {
|
||||
// Adjust value to the nearest multiple of 0.5
|
||||
this.formModel.workload = Math.round(value * 2) / 2;
|
||||
this.$message.error('工作量必须是0.5的倍数');
|
||||
}
|
||||
}
|
||||
},
|
||||
//递归组装部门级联选择器数据源
|
||||
assembleOrgData (source) {
|
||||
let dest = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user