浏览代码

Merge remote-tracking branch 'origin/stable' into stable

徐展城 6 天之前
父节点
当前提交
1ec2f0ffac

+ 33 - 1
yudao-ui-admin-vue3/src/views/pressure2/boilerReportPreparationList/BoilerReportList.vue

@@ -36,6 +36,10 @@
 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
 import {useRouter} from "vue-router";
 import { WarningFilled } from '@element-plus/icons-vue'
+import {
+  PressureTaskOrderTaskStatus
+} from '@/utils/constants'
+import {useUserStore} from "@/store/modules/user";
 
 interface ReportItem {
   id: string
@@ -52,7 +56,7 @@ const props = defineProps<{
 }>()
 
 const PartTypeList = getStrDictOptions(DICT_TYPE.PRESSURE2_BOILER_PART_TYPE)
-
+const userStore = useUserStore()
 const getTypeName = (item) => {
   const type = props?.row?.idToPartName?.[item?.itemPartId]
   return type ? type : ''
@@ -82,12 +86,40 @@ const handleClick = (row, item: ReportItem) => {
   if (row.isClaim === false) {
     return
   }
+
+  if (!canCheckInput(row)){
+    return
+  }
+
+  //判断报告编制时是否有结束检验日期
+  if (row.taskStatus >= PressureTaskOrderTaskStatus.REPORT_INPUT){
+    if (!row.endCheckDate) {
+      ElMessage.error('请添加结束检验时间再进行编制!')
+      return
+    }
+  }
+
   localStorage.setItem('activeBoilerDetailItemId', item.id)
   router.push({
     name: 'BoilerCheckerTaskDetail',
     query: {id: row.id, type: 'BoilerMyTask'},
   })
 }
+
+// 判断是否可以检验录入:当前用户是检验员或主检人
+const canCheckInput = (row: PipeTaskOrderOrderItemVO) => {
+  const userId = userStore.user.id
+  // 检查是否是主检人
+  if (row.mainCheckerUser && row.mainCheckerUser.id === userId) {
+    return true
+  }
+  // 检查是否是检验员
+  if (row.checkUsers && row.checkUsers.length > 0) {
+    return row.checkUsers.some(user => user.id === userId)
+  }
+  return false
+}
+
 </script>
 
 <style lang="scss" scoped>

+ 26 - 3
yudao-ui-admin-vue3/src/views/pressure2/boilerchecker/myTask.vue

@@ -490,7 +490,7 @@
             >
               设备认领
             </el-button>
-            <el-button v-else link type="primary" @click="handleCheckInput(scope.row.id)">
+            <el-button v-else link type="primary" :disabled="!canCheckInput(scope.row)" @click="handleCheckInput(scope.row)">
               检验录入
             </el-button>
             <el-button link type="primary" @click="printProject(scope.row.reportDOList)">
@@ -763,9 +763,32 @@ const resetQuery = () => {
   handleQuery()
 }
 
+// 判断是否可以检验录入:当前用户是检验员或主检人
+const canCheckInput = (row: BoilerTaskOrderOrderItemVO) => {
+  const userId = userStore.user.id
+  // 检查是否是主检人
+  if (row.mainCheckerUser && row.mainCheckerUser.id === userId) {
+    return true
+  }
+  // 检查是否是检验员
+  if (row.checkUsers && row.checkUsers.length > 0) {
+    return row.checkUsers.some(user => user.id === userId)
+  }
+  return false
+}
+
 // 检验录入
-const handleCheckInput = (id: string) => {
-  router.push({ name: 'BoilerCheckerTaskDetail', query: { id, type: 'BoilerMyTask' } })
+const handleCheckInput = (row: any) => {
+
+  //判断报告编制时是否有结束检验日期
+  if (row.taskStatus >= PressureTaskOrderTaskStatus.REPORT_INPUT){
+    if (!row.endCheckDate) {
+      ElMessage.error('请添加结束检验时间再进行编制!')
+      return
+    }
+  }
+
+  router.push({ name: 'BoilerCheckerTaskDetail', query: { id:row.id, type: 'BoilerMyTask' } })
 }
 
 // 添加结束检验时间

+ 34 - 1
yudao-ui-admin-vue3/src/views/pressure2/pipeReportPreparationList/PipeReportList.vue

@@ -36,6 +36,11 @@
 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
 import {useRouter} from "vue-router";
 import { WarningFilled } from '@element-plus/icons-vue'
+import {
+  PressureTaskOrderTaskStatus
+} from '@/utils/constants'
+import {PipeTaskOrderOrderItemVO} from "@/api/pressure2/pipetaskorder";
+import {useUserStore} from "@/store/modules/user";
 
 interface ReportItem {
   id: string
@@ -52,7 +57,7 @@ const props = defineProps<{
 }>()
 
 const PartTypeList = getStrDictOptions(DICT_TYPE.PRESSURE2_BOILER_PART_TYPE)
-
+const userStore = useUserStore()
 const getTypeName = (type: string) => {
   const item = PartTypeList.find(item => item.value === type)
   return item ? item.label : ''
@@ -82,12 +87,40 @@ const handleClick = (row, item: ReportItem) => {
   if (row.isClaim === false) {
     return
   }
+
+  if (!canCheckInput(row)){
+    return
+  }
+
+  //判断报告编制时是否有结束检验日期
+  if (row.taskStatus >= PressureTaskOrderTaskStatus.REPORT_INPUT){
+    if (!row.endCheckDate) {
+      ElMessage.error('请添加结束检验时间再进行编制!')
+      return
+    }
+  }
+
   localStorage.setItem('activePipeDetailItemId', item.id)
   router.push({
     name: 'PipeCheckerTaskDetail',
     query: {id: row.id, type: 'PipeMyTask'},
   })
 }
+
+// 判断是否可以检验录入:当前用户是检验员或主检人
+const canCheckInput = (row: PipeTaskOrderOrderItemVO) => {
+  const userId = userStore.user.id
+  // 检查是否是主检人
+  if (row.mainCheckerUser && row.mainCheckerUser.id === userId) {
+    return true
+  }
+  // 检查是否是检验员
+  if (row.checkUsers && row.checkUsers.length > 0) {
+    return row.checkUsers.some(user => user.id === userId)
+  }
+  return false
+}
+
 </script>
 
 <style lang="scss" scoped>

+ 13 - 4
yudao-ui-admin-vue3/src/views/pressure2/pipechecker/myTask.vue

@@ -489,9 +489,9 @@
 <!--            </el-button>-->
             <el-button 
               link 
-              type="primary" 
+              type="primary"
               :disabled="!canCheckInput(scope.row)"
-              @click="handleCheckInput(scope.row.id,scope.row.orderId)">
+              @click="handleCheckInput(scope.row)">
               检验录入
             </el-button>
             <el-button
@@ -747,8 +747,17 @@ const canCheckInput = (row: PipeTaskOrderOrderItemVO) => {
 }
 
 // 检验录入
-const handleCheckInput = (id: string,orderId: string) => {
-  router.push({ name: 'PipeCheckerTaskDetail', query: { id, orderId:orderId, type: 'PipeMyTask' } })
+const handleCheckInput = (row: PipeTaskOrderOrderItemVO) => {
+
+  //判断报告编制时是否有结束检验日期
+  if (row.taskStatus >= PressureTaskOrderTaskStatus.REPORT_INPUT){
+    if (!row.endCheckDate) {
+      ElMessage.error('请添加结束检验时间再进行编制!')
+      return
+    }
+  }
+
+  router.push({ name: 'PipeCheckerTaskDetail', query: { id:row.id, orderId:row.orderId, type: 'PipeMyTask' } })
 }
 
 // 添加结束检验时间