diff --git a/kehui-oa-front/src/pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue b/kehui-oa-front/src/pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue index 5f6d9c8..cc177a1 100644 --- a/kehui-oa-front/src/pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue +++ b/kehui-oa-front/src/pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue @@ -7,7 +7,7 @@
- + @@ -26,7 +26,7 @@ - + - + @@ -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: '', diff --git a/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyAddList.vue b/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyAddList.vue index 9124f7f..6475a1c 100644 --- a/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyAddList.vue +++ b/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyAddList.vue @@ -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: {} }, { diff --git a/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyDetail.vue b/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyDetail.vue index 3a906dd..11d2312 100644 --- a/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyDetail.vue +++ b/kehui-oa-front/src/pages/projectManagements/weekly/ExpenseClaimApplyDetail.vue @@ -18,7 +18,7 @@
- + @@ -59,6 +60,7 @@ class="form-input" placeholder="请输入内容" v-model="formModel.projectName" + :disabled="true" > @@ -103,7 +105,7 @@ class="form-input" placeholder="请输入内容" v-model.number="formModel.workload" - @change="moneyChange" + @change="validateWorkload" > @@ -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('报销明细不能为空!') diff --git a/kehui-oa-front/src/pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue b/kehui-oa-front/src/pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue index c3b9a5d..3d87ad8 100644 --- a/kehui-oa-front/src/pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue +++ b/kehui-oa-front/src/pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue @@ -18,7 +18,7 @@
- + @@ -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) => { diff --git a/kehui-oa-front/src/pages/projectManagements/wholeFirmWeekly/WholeFirmWeeklyEdit.vue b/kehui-oa-front/src/pages/projectManagements/wholeFirmWeekly/WholeFirmWeeklyEdit.vue index 2686e11..69cca89 100644 --- a/kehui-oa-front/src/pages/projectManagements/wholeFirmWeekly/WholeFirmWeeklyEdit.vue +++ b/kehui-oa-front/src/pages/projectManagements/wholeFirmWeekly/WholeFirmWeeklyEdit.vue @@ -7,7 +7,7 @@
- + @@ -31,7 +31,7 @@ - + - + @@ -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 = []