|
@@ -225,6 +225,32 @@ const requiredNumberRule = (message: string) => [
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
|
|
+const nonNegativeNumberRule = (requiredMessage: string, fieldLabel: string) => [
|
|
|
|
|
+ ...requiredNumberRule(requiredMessage),
|
|
|
|
|
+ {
|
|
|
|
|
+ type: 'number' as const,
|
|
|
|
|
+ min: 0,
|
|
|
|
|
+ message: `${fieldLabel}不能小于0`,
|
|
|
|
|
+ trigger: ['blur', 'change']
|
|
|
|
|
+ }
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+const numberRangeRule = (
|
|
|
|
|
+ requiredMessage: string,
|
|
|
|
|
+ fieldLabel: string,
|
|
|
|
|
+ min: number,
|
|
|
|
|
+ max: number
|
|
|
|
|
+) => [
|
|
|
|
|
+ ...requiredNumberRule(requiredMessage),
|
|
|
|
|
+ {
|
|
|
|
|
+ type: 'number' as const,
|
|
|
|
|
+ min,
|
|
|
|
|
+ max,
|
|
|
|
|
+ message: `${fieldLabel}需在${min}到${max}之间`,
|
|
|
|
|
+ trigger: ['blur', 'change']
|
|
|
|
|
+ }
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
const operationMeetingRules = reactive<FormRules>({
|
|
const operationMeetingRules = reactive<FormRules>({
|
|
|
meetingDate: [{ required: true, message: '请选择会议日期', trigger: 'change' }],
|
|
meetingDate: [{ required: true, message: '请选择会议日期', trigger: 'change' }],
|
|
|
meetingSeries: [
|
|
meetingSeries: [
|
|
@@ -246,15 +272,15 @@ const operationMeetingRules = reactive<FormRules>({
|
|
|
|
|
|
|
|
const detailRules = reactive<FormRules>({
|
|
const detailRules = reactive<FormRules>({
|
|
|
projectName: requiredTextRule('请选择或者输入项目名称'),
|
|
projectName: requiredTextRule('请选择或者输入项目名称'),
|
|
|
- currentRevenue: requiredNumberRule('请输入收入-本期'),
|
|
|
|
|
- cumulativeRevenue: requiredNumberRule('请输入收入-累计'),
|
|
|
|
|
- currentOnAccount: requiredNumberRule('请输入挂帐-本期'),
|
|
|
|
|
- cumulativeOnAccount: requiredNumberRule('请输入挂帐-累计'),
|
|
|
|
|
- currentPayment: requiredNumberRule('请输入回款-本期'),
|
|
|
|
|
- cumulativePayment: requiredNumberRule('请输入回款-累计'),
|
|
|
|
|
|
|
+ currentRevenue: nonNegativeNumberRule('请输入收入-本期', '收入-本期'),
|
|
|
|
|
+ cumulativeRevenue: nonNegativeNumberRule('请输入收入-累计', '收入-累计'),
|
|
|
|
|
+ currentOnAccount: nonNegativeNumberRule('请输入挂帐-本期', '挂帐-本期'),
|
|
|
|
|
+ cumulativeOnAccount: nonNegativeNumberRule('请输入挂帐-累计', '挂帐-累计'),
|
|
|
|
|
+ currentPayment: nonNegativeNumberRule('请输入回款-本期', '回款-本期'),
|
|
|
|
|
+ cumulativePayment: nonNegativeNumberRule('请输入回款-累计', '回款-累计'),
|
|
|
plannedWorkload: requiredTextRule('请输入计划工作量'),
|
|
plannedWorkload: requiredTextRule('请输入计划工作量'),
|
|
|
actualCompletion: requiredTextRule('请输入实际完成'),
|
|
actualCompletion: requiredTextRule('请输入实际完成'),
|
|
|
- equipmentUtilizationRate: requiredNumberRule('请输入设备利用率'),
|
|
|
|
|
|
|
+ equipmentUtilizationRate: numberRangeRule('请输入设备利用率', '设备利用率', 0, 100),
|
|
|
keyWorkCompletion: requiredTextRule('请输入重点工作及完成情况'),
|
|
keyWorkCompletion: requiredTextRule('请输入重点工作及完成情况'),
|
|
|
problemsAnalysis: requiredTextRule('请输入存在问题及分析'),
|
|
problemsAnalysis: requiredTextRule('请输入存在问题及分析'),
|
|
|
nextPlannedWorkload: requiredTextRule('请输入下期计划工作量'),
|
|
nextPlannedWorkload: requiredTextRule('请输入下期计划工作量'),
|
|
@@ -797,7 +823,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.currentRevenue"
|
|
v-model="detailForm.currentRevenue"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -806,7 +831,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.cumulativeRevenue"
|
|
v-model="detailForm.cumulativeRevenue"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -815,7 +839,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.currentOnAccount"
|
|
v-model="detailForm.currentOnAccount"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -824,7 +847,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.cumulativeOnAccount"
|
|
v-model="detailForm.cumulativeOnAccount"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -833,7 +855,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.currentPayment"
|
|
v-model="detailForm.currentPayment"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -842,7 +863,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.cumulativePayment"
|
|
v-model="detailForm.cumulativePayment"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -873,8 +893,6 @@ onMounted(() => {
|
|
|
v-model="detailForm.equipmentUtilizationRate"
|
|
v-model="detailForm.equipmentUtilizationRate"
|
|
|
class="w-full!"
|
|
class="w-full!"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
- :min="0"
|
|
|
|
|
- :max="100"
|
|
|
|
|
:precision="2"
|
|
:precision="2"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|