Explorar o código

调整会议记录明细,数字输入框范围限制改为规则控制

Zimo hai 4 días
pai
achega
27c1222a6b
Modificáronse 1 ficheiros con 33 adicións e 15 borrados
  1. 33 15
      src/views/pms/operation-meeting/meeting-form.vue

+ 33 - 15
src/views/pms/operation-meeting/meeting-form.vue

@@ -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>({
   meetingDate: [{ required: true, message: '请选择会议日期', trigger: 'change' }],
   meetingSeries: [
@@ -246,15 +272,15 @@ const operationMeetingRules = reactive<FormRules>({
 
 const detailRules = reactive<FormRules>({
   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('请输入计划工作量'),
   actualCompletion: requiredTextRule('请输入实际完成'),
-  equipmentUtilizationRate: requiredNumberRule('请输入设备利用率'),
+  equipmentUtilizationRate: numberRangeRule('请输入设备利用率', '设备利用率', 0, 100),
   keyWorkCompletion: requiredTextRule('请输入重点工作及完成情况'),
   problemsAnalysis: requiredTextRule('请输入存在问题及分析'),
   nextPlannedWorkload: requiredTextRule('请输入下期计划工作量'),
@@ -797,7 +823,6 @@ onMounted(() => {
                 v-model="detailForm.currentRevenue"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -806,7 +831,6 @@ onMounted(() => {
                 v-model="detailForm.cumulativeRevenue"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -815,7 +839,6 @@ onMounted(() => {
                 v-model="detailForm.currentOnAccount"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -824,7 +847,6 @@ onMounted(() => {
                 v-model="detailForm.cumulativeOnAccount"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -833,7 +855,6 @@ onMounted(() => {
                 v-model="detailForm.currentPayment"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -842,7 +863,6 @@ onMounted(() => {
                 v-model="detailForm.cumulativePayment"
                 class="w-full!"
                 :controls="false"
-                :min="0"
                 :precision="2"
               />
             </el-form-item>
@@ -873,8 +893,6 @@ onMounted(() => {
                 v-model="detailForm.equipmentUtilizationRate"
                 class="w-full!"
                 :controls="false"
-                :min="0"
-                :max="100"
                 :precision="2"
               />
             </el-form-item>