yanghao 2 giorni fa
parent
commit
9b9eae5937

+ 44 - 48
src/views/pms/qhse/monthlyReport/MonthlyReportAdd.vue

@@ -2,7 +2,7 @@
   <div class="monthly-report-add">
     <el-form
       ref="formRef"
-      :model="formData"
+      :model="reportInfo"
       :rules="formRules"
       label-width="auto"
       class="report-form">
@@ -17,18 +17,9 @@
         <el-row :gutter="16">
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
             <el-form-item label="部门名称" prop="deptId">
-              <!-- <el-input
-                v-model="deptName"
-                placeholder="请选择部门"
-                readonly
-                @click="openDeptSelect">
-                <template #suffix>
-                  <Icon icon="ep:search" class="cursor-pointer" />
-                </template>
-              </el-input> -->
               <el-tree-select
                 clearable
-                v-model="formData.deptId"
+                v-model="reportInfo.deptId"
                 :data="deptList2"
                 :props="defaultProps"
                 :check-strictly="false"
@@ -39,7 +30,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
             <el-form-item label="月报标题" prop="title">
-              <el-input v-model="formData.title" placeholder="请输入月报标题" />
+              <el-input v-model="reportInfo.title" placeholder="请输入月报标题" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -47,7 +38,7 @@
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
             <el-form-item label="年月" prop="yearMonth">
               <el-date-picker
-                v-model="formData.yearMonth"
+                v-model="reportInfo.yearMonth"
                 type="month"
                 placeholder="选择年月"
                 format="YYYY-MM"
@@ -70,7 +61,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="员工人数" prop="employee">
               <el-input-number
-                v-model="formData.employee"
+                v-model="reportInfo.employee"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -80,7 +71,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="分包商人数" prop="subcontractors">
               <el-input-number
-                v-model="formData.subcontractors"
+                v-model="reportInfo.subcontractors"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -90,7 +81,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="安全行驶里程数(公里)" prop="drivingMileage">
               <el-input-number
-                v-model="formData.drivingMileage"
+                v-model="reportInfo.drivingMileage"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -100,7 +91,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="总人工时数(小时)" prop="totalManHours">
               <el-input-number
-                v-model="formData.totalManHours"
+                v-model="reportInfo.totalManHours"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -122,7 +113,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="无事故累计天数" prop="withoutAccident">
               <el-input-number
-                v-model="formData.withoutAccident"
+                v-model="reportInfo.withoutAccident"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -132,7 +123,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="死亡事故(起)" prop="fatality">
               <el-input-number
-                v-model="formData.fatality"
+                v-model="reportInfo.fatality"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -142,7 +133,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="损失工时事故(起)" prop="injury">
               <el-input-number
-                v-model="formData.injury"
+                v-model="reportInfo.injury"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -152,7 +143,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="工作受限事件(起)" prop="restrictedCase">
               <el-input-number
-                v-model="formData.restrictedCase"
+                v-model="reportInfo.restrictedCase"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -164,7 +155,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="医疗处理事件(起)" prop="medicalCase">
               <el-input-number
-                v-model="formData.medicalCase"
+                v-model="reportInfo.medicalCase"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -174,7 +165,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="急救箱事件(起)" prop="firstAidCase">
               <el-input-number
-                v-model="formData.firstAidCase"
+                v-model="reportInfo.firstAidCase"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -184,7 +175,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="交通事故(起)" prop="vehicleAccident">
               <el-input-number
-                v-model="formData.vehicleAccident"
+                v-model="reportInfo.vehicleAccident"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -194,7 +185,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="未遂事件(起)" prop="nearMiss">
               <el-input-number
-                v-model="formData.nearMiss"
+                v-model="reportInfo.nearMiss"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -206,7 +197,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="泄漏事件(起)" prop="spill">
               <el-input-number
-                v-model="formData.spill"
+                v-model="reportInfo.spill"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -216,7 +207,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="违反保命规则的次数(次)" prop="lifeSavingRules">
               <el-input-number
-                v-model="formData.lifeSavingRules"
+                v-model="reportInfo.lifeSavingRules"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -238,7 +229,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="班前会(次)" prop="toolboxTalk">
               <el-input-number
-                v-model="formData.toolboxTalk"
+                v-model="reportInfo.toolboxTalk"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -248,7 +239,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE管理委员会会议(次)" prop="committeeMeeting">
               <el-input-number
-                v-model="formData.committeeMeeting"
+                v-model="reportInfo.committeeMeeting"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -258,7 +249,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE月度例会(次)" prop="monthlyMeeting">
               <el-input-number
-                v-model="formData.monthlyMeeting"
+                v-model="reportInfo.monthlyMeeting"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -268,7 +259,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="公司级隐患排查(次)" prop="companyHazard">
               <el-input-number
-                v-model="formData.companyHazard"
+                v-model="reportInfo.companyHazard"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -280,7 +271,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE检查(次)" prop="qhseInspection">
               <el-input-number
-                v-model="formData.qhseInspection"
+                v-model="reportInfo.qhseInspection"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -290,7 +281,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="安全观察卡(张)" prop="socCards">
               <el-input-number
-                v-model="formData.socCards"
+                v-model="reportInfo.socCards"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -301,7 +292,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="工作许可审核(份)" prop="ptwAudit">
               <el-input-number
-                v-model="formData.ptwAudit"
+                v-model="reportInfo.ptwAudit"
                 :min="0"
                 :precision="0"
                 disabled
@@ -312,7 +303,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="工作安全分析(次)" prop="jsa">
               <el-input-number
-                v-model="formData.jsa"
+                v-model="reportInfo.jsa"
                 :min="0"
                 :precision="0"
                 disabled
@@ -325,7 +316,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="演练次数" prop="drills">
               <el-input-number
-                v-model="formData.drills"
+                v-model="reportInfo.drills"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -335,7 +326,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE培训次数" prop="training">
               <el-input-number
-                v-model="formData.training"
+                v-model="reportInfo.training"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -345,7 +336,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE培训人次" prop="participantsTraining">
               <el-input-number
-                v-model="formData.participantsTraining"
+                v-model="reportInfo.participantsTraining"
                 :min="0"
                 :precision="0"
                 controls-position="right"
@@ -355,7 +346,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="QHSE培训学时数(小时)" prop="trainingsHours">
               <el-input-number
-                v-model="formData.trainingsHours"
+                v-model="reportInfo.trainingsHours"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -377,7 +368,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="水消耗(吨)" prop="waterConsumption">
               <el-input-number
-                v-model="formData.waterConsumption"
+                v-model="reportInfo.waterConsumption"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -387,7 +378,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="柴油消耗(升)" prop="dieselConsumption">
               <el-input-number
-                v-model="formData.dieselConsumption"
+                v-model="reportInfo.dieselConsumption"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -397,7 +388,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="用电量(千瓦·小时)" prop="electricityConsumption">
               <el-input-number
-                v-model="formData.electricityConsumption"
+                v-model="reportInfo.electricityConsumption"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -407,7 +398,7 @@
           <el-col :xs="24" :sm="12" :md="6" :lg="6" :xl="6">
             <el-form-item label="天然气消耗量(立方米)" prop="naturalGasConsumption">
               <el-input-number
-                v-model="formData.naturalGasConsumption"
+                v-model="reportInfo.naturalGasConsumption"
                 :min="0"
                 :precision="2"
                 controls-position="right"
@@ -444,7 +435,7 @@
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
             <el-form-item label="备注" prop="remark">
               <el-input
-                v-model="formData.remark"
+                v-model="reportInfo.remark"
                 type="textarea"
                 :rows="4"
                 placeholder="请输入备注信息" />
@@ -492,7 +483,7 @@ const formRef = ref<FormInstance>()
 const submitLoading = ref(false)
 
 // 表单数据
-const formData = reactive({
+let reportInfo = reactive({
   title: '',
   yearMonth: '',
   deptId: 0,
@@ -551,7 +542,7 @@ const userSelectFormRef = ref()
 const handleDeptConfirm = async (deptList: any[]) => {
   if (deptList && deptList.length > 0) {
     const dept = deptList[0]
-    formData.deptId = dept.id
+    reportInfo.deptId = dept.id
     deptName.value = dept.name
   }
 }
@@ -565,7 +556,7 @@ const openUserSelect = () => {
 const handleUserConfirm = (userId: any, userList: any[]) => {
   if (userList && userList.length > 0) {
     const user = userList[0]
-    formData.dutyPerson = user.id
+    reportInfo.dutyPerson = user.id
     dutyPersonName.value = user.nickname
   }
 }
@@ -580,7 +571,7 @@ const handleSubmit = async () => {
 
   submitLoading.value = true
   try {
-    await QhseMonthReportApi.createQhseMonthReport(formData)
+    await QhseMonthReportApi.createQhseMonthReport(reportInfo)
     message.success('新增成功')
     // 返回列表页或上一页
     router.back()
@@ -599,6 +590,11 @@ const handleCancel = () => {
 
 onMounted(async () => {
   deptList2.value = handleTree(await DeptApi.getSimpleDeptList())
+  const res = await QhseMonthReportApi.getQhseMonthReport(route.params.id)
+  const data = (res as any)?.data ?? res ?? {}
+
+  Object.assign(reportInfo, data)
+  dutyPersonName.value = data.personName || data.dutyPersonName || ''
 })
 </script>
 <style scoped lang="scss">

+ 25 - 152
src/views/pms/qhse/monthlyReport/index.vue

@@ -5,8 +5,8 @@
       <ContentWrap style="border: 0">
         <!-- 搜索工作栏 -->
         <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true">
-          <el-form-item label="工单填报人" prop="dutyPerson">
-            <el-input v-model="queryParams.dutyPerson" placeholder="请输入工单填报人" />
+          <el-form-item label="工单填报人" prop="personName">
+            <el-input v-model="queryParams.personName" placeholder="请输入工单填报人" />
           </el-form-item>
 
           <el-form-item label="创建日期" prop="createTime">
@@ -21,15 +21,15 @@
           </el-form-item>
 
           <el-form-item>
-            <el-button @click="handleQuery"
+            <el-button @click="handleQuery" v-hasPermi="['rq:qhse-month-report:query']"
               ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
             >
             <el-button @click="resetQuery"
               ><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
             >
-            <el-button type="primary" @click="add" color="#626aef">
+            <!-- <el-button type="primary" @click="add" color="#626aef">
               <Icon icon="ep:plus" class="mr-5px" /> 新增
-            </el-button>
+            </el-button> -->
             <el-button type="success" plain @click="handleExport" :loading="exportLoading">
               <Icon icon="ep:download" class="mr-5px" /> 导出
             </el-button>
@@ -51,159 +51,18 @@
             align="center"
             fixed="left"
             show-overflow-tooltip />
-          <zm-table-column prop="dutyPerson" label="工单填报人" align="center" width="100" />
+          <zm-table-column prop="personName" label="工单填报人" align="center" width="100" />
           <zm-table-column label="创建日期" prop="createTime" width="160" align="center">
             <template #default="{ row }">
               {{ formatDate(row.createTime) }}
             </template>
           </zm-table-column>
 
-          <!-- <zm-table-column label="人员统计" align="center">
-            <zm-table-column prop="employee" label="员工人数" align="center" width="100" />
-            <zm-table-column prop="subcontractors" label="分包商人数" align="center" width="100" />
-          </zm-table-column>
-
-          <zm-table-column label="安全指标" align="center">
-            <zm-table-column
-              prop="drivingMileage"
-              label="安全行驶里程(公里)"
-              align="center"
-              width="140" />
-            <zm-table-column
-              prop="totalManHours"
-              label="总人工时数(小时)"
-              align="center"
-              width="140" />
-            <zm-table-column
-              prop="withoutAccident"
-              label="无事故累计天数"
-              align="center"
-              width="120" />
-          </zm-table-column>
-
-          <zm-table-column label="事故统计" align="center">
-            <zm-table-column prop="fatality" label="死亡事故(起)" align="center" width="110" />
-            <zm-table-column prop="injury" label="损失工时事故(起)" align="center" width="130" />
-            <zm-table-column
-              prop="restrictedCase"
-              label="工作受限事件(起)"
-              align="center"
-              width="130" />
-            <zm-table-column
-              prop="medicalCase"
-              label="医疗处理事件(起)"
-              align="center"
-              width="130" />
-            <zm-table-column
-              prop="firstAidCase"
-              label="急救箱事件(起)"
-              align="center"
-              width="120" />
-            <zm-table-column
-              prop="vehicleAccident"
-              label="交通事故(起)"
-              align="center"
-              width="110" />
-            <zm-table-column prop="nearMiss" label="未遂事件(起)" align="center" width="110" />
-            <zm-table-column prop="spill" label="泄漏事件(起)" align="center" width="110" />
-            <zm-table-column
-              prop="lifeSavingRules"
-              label="违反保命规则(次)"
-              align="center"
-              width="130" />
-          </zm-table-column>
-
-          <zm-table-column label="会议与检查" align="center">
-            <zm-table-column prop="toolboxTalk" label="班前会(次)" align="center" width="100" />
-            <zm-table-column
-              prop="committeeMeeting"
-              label="QHSE管委会会议(次)"
-              align="center"
-              width="150" />
-            <zm-table-column
-              prop="monthlyMeeting"
-              label="QHSE月度例会(次)"
-              align="center"
-              width="140" />
-            <zm-table-column
-              prop="companyHazard"
-              label="公司级隐患排查(次)"
-              align="center"
-              width="150" />
-            <zm-table-column
-              prop="qhseInspection"
-              label="QHSE检查(次)"
-              align="center"
-              width="120" />
-          </zm-table-column>
-
-          <zm-table-column label="安全管理" align="center">
-            <zm-table-column prop="socCards" label="安全观察卡(张)" align="center" width="120" />
-            <zm-table-column prop="ptwAudit" label="工作许可审核(份)" align="center" width="130" />
-            <zm-table-column prop="jsa" label="工作安全分析(次)" align="center" width="130" />
-          </zm-table-column>
-
-          <zm-table-column label="培训与演练" align="center">
-            <zm-table-column prop="drills" label="演练次数" align="center" width="100" />
-            <zm-table-column prop="training" label="QHSE培训次数" align="center" width="120" />
-            <zm-table-column
-              prop="participantsTraining"
-              label="QHSE培训人次"
-              align="center"
-              width="120" />
-            <zm-table-column
-              prop="trainingsHours"
-              label="QHSE培训学时(小时)"
-              align="center"
-              width="140" />
-          </zm-table-column>
-
-          <zm-table-column label="能源消耗" align="center">
-            <zm-table-column
-              prop="waterConsumption"
-              label="水消耗(吨)"
-              align="center"
-              width="110" />
-            <zm-table-column
-              prop="dieselConsumption"
-              label="柴油消耗(升)"
-              align="center"
-              width="120" />
-            <zm-table-column
-              prop="electricityConsumption"
-              label="用电量(千瓦·时)"
-              align="center"
-              width="130" />
-            <zm-table-column
-              prop="naturalGasConsumption"
-              label="天然气消耗(立方米)"
-              align="center"
-              width="140" />
-          </zm-table-column>
-
-          <zm-table-column
-            prop="remark"
-            label="备注"
-            align="center"
-            show-overflow-tooltip
-            width="150" /> -->
-
           <zm-table-column label="操作" width="150" align="center" fixed="right" action>
             <template #default="{ row }">
-              <div class="flex gap-3 justify-center">
-                <!-- <el-link :underline="false" size="small" type="primary" @click="handleEdit(row)">
-                  编辑
-                </el-link>
-                <el-link :underline="false" size="small" type="danger" @click="deleteRow(row)">
-                  删除
-                </el-link> -->
-
-                <el-link :underline="false" size="small" type="primary" @click="add(row)">
-                  填报
-                </el-link>
-                <el-link :underline="false" size="small" type="success" @click="detail(row)">
-                  查看
-                </el-link>
+              <div class="flex gap-1 justify-center">
+                <el-button text type="primary" @click="add(row)"> 填报 </el-button>
+                <el-button text size="small" type="success" @click="detail(row)"> 查看 </el-button>
               </div>
             </template>
           </zm-table-column>
@@ -231,6 +90,7 @@ import { QhseMonthReportApi } from '@/api/pms/qhse'
 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
 import DeptTree from '@/views/system/user/DeptTree2.vue'
 import { useUserStore } from '@/store/modules/user'
+import { getUserProfile } from '@/api/system/user/profile'
 import { useRouter } from 'vue-router'
 import { formatDate } from '@/utils/formatTime'
 
@@ -242,7 +102,8 @@ const router = useRouter()
 const queryParams = reactive({
   createTime: null,
   dutyPerson: '',
-  deptId: ''
+  deptId: '',
+  personName: ''
 })
 
 let queryFormRef = ref(null)
@@ -354,6 +215,10 @@ const handleCurrentChange = (val) => {
 }
 
 const add = (row) => {
+  if (row.dutyPerson !== userInfo.value.id) {
+    ElMessage.error('您没有权限进行此操作')
+    return
+  }
   router.push({
     name: 'MonthlyReportAdd',
     params: {
@@ -388,6 +253,7 @@ const loadTableData = async () => {
       pageSize: pagination.pageSize,
       createTime: queryParams.createTime,
       dutyPerson: queryParams.dutyPerson,
+      personName: queryParams.personName,
       deptId: queryParams.deptId
     }
     const res = await QhseMonthReportApi.getQhseMonthReportPage(params)
@@ -398,9 +264,16 @@ const loadTableData = async () => {
   }
 }
 
+let userInfo = ref({})
+
 // 页面挂载后加载数据
-onMounted(() => {
+onMounted(async () => {
   loadTableData()
+
+  const users = await getUserProfile()
+  userInfo.value = users
+
+  console.log('xxxxxxxxxxxxxxxxxx', userInfo.value)
 })
 </script>