Преглед на файлове

✨ feat(日报): 钻井填写校验上次填写值

Zimo преди 4 дни
родител
ревизия
b2ad372e9d
променени са 3 файла, в които са добавени 35 реда и са изтрити 9 реда
  1. 19 6
      src/views/pms/iotrydailyreport/approval.vue
  2. 15 2
      src/views/pms/iotrydailyreport/fill.vue
  3. 1 1
      src/views/pms/iotrydailyreport/xapproval.vue

+ 19 - 6
src/views/pms/iotrydailyreport/approval.vue

@@ -70,6 +70,7 @@ interface List {
   completedWells: number
   equipmentType: string
   transitTime: number
+  lastCurrentDepth: number
 }
 
 interface Column {
@@ -454,7 +455,8 @@ const FORM_KEYS = [
   'waitingStopTime',
   'winterBreakTime',
   'drillingWorkingTime',
-  'otherProductionTime'
+  'otherProductionTime',
+  'lastCurrentDepth'
 ] as const
 
 type FormKey = (typeof FORM_KEYS)[number]
@@ -562,13 +564,24 @@ const validateTotalTime = (_rule: any, _value: any, callback: any) => {
 //   }
 // }
 
+const validateLastCurrentDepth = (_rule: any, value: any, callback: any) => {
+  if (value && value >= (form.value.lastCurrentDepth ?? 0)) {
+    callback(new Error('当前深度需大于上一次填报深度'))
+  } else {
+    callback()
+  }
+}
+
 const timeRuleItem = [
   { required: true, message: '请输入时间', trigger: 'blur' },
   { validator: validateTotalTime, trigger: 'blur' }
 ]
 
 const rules = reactive<FormRules>({
-  currentDepth: [{ required: true, message: '请输入当前深度', trigger: ['change', 'blur'] }],
+  currentDepth: [
+    { required: true, message: '请输入当前深度', trigger: ['change', 'blur'] },
+    { validator: validateLastCurrentDepth, trigger: ['change', 'blur'] }
+  ],
   productionStatus: [{ required: true, message: '请输入生产动态', trigger: ['change', 'blur'] }],
 
   // 复用规则
@@ -906,7 +919,7 @@ const submitForm = async (auditStatus: 20 | 30) => {
             autosize
           />
         </el-form-item>
-        <el-form-item label="生产动态" prop="productionStatus">
+        <!-- <el-form-item label="生产动态" prop="productionStatus">
           <el-input
             v-model="form.productionStatus"
             placeholder="请输入生产动态"
@@ -915,8 +928,8 @@ const submitForm = async (auditStatus: 20 | 30) => {
             :max-length="1000"
             disabled
           />
-        </el-form-item>
-        <!-- <el-form-item label="人员情况" prop="personnel">
+        </el-form-item> -->
+        <el-form-item label="人员情况" prop="personnel">
           <el-input
             v-model="form.personnel"
             placeholder="请输入人员情况"
@@ -926,7 +939,7 @@ const submitForm = async (auditStatus: 20 | 30) => {
             disabled
           />
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
+        <!-- <el-form-item label="备注" prop="remark">
           <el-input
             v-model="form.remark"
             placeholder="请输入备注"

+ 15 - 2
src/views/pms/iotrydailyreport/fill.vue

@@ -70,6 +70,7 @@ interface List {
   completedWells: number
   equipmentType: string
   transitTime: number
+  lastCurrentDepth: number
 }
 
 interface Column {
@@ -523,7 +524,8 @@ const FORM_KEYS = [
   'waitingStopTime',
   'winterBreakTime',
   'drillingWorkingTime',
-  'otherProductionTime'
+  'otherProductionTime',
+  'lastCurrentDepth'
 ] as const
 
 type FormKey = (typeof FORM_KEYS)[number]
@@ -631,13 +633,24 @@ const validateTotalTime = (_rule: any, _value: any, callback: any) => {
 //   }
 // }
 
+const validateLastCurrentDepth = (_rule: any, value: any, callback: any) => {
+  if (value && value >= (form.value.lastCurrentDepth ?? 0)) {
+    callback(new Error('当前深度需大于上一次填报深度'))
+  } else {
+    callback()
+  }
+}
+
 const timeRuleItem = [
   { required: true, message: '请输入时间', trigger: 'blur' },
   { validator: validateTotalTime, trigger: 'blur' }
 ]
 
 const rules = reactive<FormRules>({
-  currentDepth: [{ required: true, message: '请输入当前深度', trigger: ['change', 'blur'] }],
+  currentDepth: [
+    { required: true, message: '请输入当前深度', trigger: ['change', 'blur'] },
+    { validator: validateLastCurrentDepth, trigger: ['change', 'blur'] }
+  ],
   productionStatus: [{ required: true, message: '请输入生产动态', trigger: ['change', 'blur'] }],
 
   // 复用规则

+ 1 - 1
src/views/pms/iotrydailyreport/xapproval.vue

@@ -457,7 +457,7 @@ async function loadDetail(id: number) {
     })
     form.value.id = id
 
-    if (res.status !== 0) {
+    if (res.auditStatus !== 10) {
       formType.value = 'readonly'
     }
   } finally {