-
+
@@ -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 = []