Explorar el Código

✨ feat(日报汇总): 非生产时效跳转

Zimo hace 2 semanas
padre
commit
47dfc5ccff

+ 12 - 5
src/views/pms/iotrhdailyreport/index.vue

@@ -22,7 +22,7 @@
           :model="queryParams"
           ref="queryFormRef"
           :inline="true"
-          label-width="68px"
+          label-width="80px"
         >
           <el-form-item label="项目" prop="contractName">
             <el-input
@@ -54,6 +54,9 @@
               class="!w-220px"
             />
           </el-form-item>
+          <el-form-item label="非生产时效" prop="nonProductFlag">
+            <el-switch v-model="queryParams.nonProductFlag" active-value="Y" inactive-value="N" />
+          </el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"
               ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
@@ -491,7 +494,8 @@ let queryParams = reactive({
   auditStatus: undefined,
   createTime: [
     ...rangeShortcuts[2].value().map((item) => dayjs(item).format('YYYY-MM-DD HH:mm:ss'))
-  ]
+  ],
+  nonProductFlag: 'N'
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
@@ -982,9 +986,12 @@ let resizeObserver: ResizeObserver | null = null
 /** 初始化 **/
 onMounted(() => {
   if (Object.keys(route.query).length > 0) {
-    queryParams.deptId = Number(route.query.deptId) as any
-    queryParams.createTime = route.query.createTime as string[]
-    handleQuery()
+    nextTick(() => {
+      queryParams.deptId = Number(route.query.deptId) as any
+      queryParams.createTime = route.query.createTime as string[]
+      queryParams.nonProductFlag = route.query.nonProductFlag as string
+      handleQuery()
+    })
   } else getList()
   // 创建 ResizeObserver 监听表格容器尺寸变化
   if (tableContainerRef.value?.$el) {

+ 25 - 4
src/views/pms/iotrhdailyreport/summary.vue

@@ -504,14 +504,15 @@ const openUnfilledDialog = () => {
 
 const router = useRouter()
 
-const tolist = (id: number) => {
+const tolist = (id: number, non: boolean = false) => {
   const { pageNo, pageSize, ...rest } = query.value
 
   router.push({
     path: '/iotdayilyreport/IotRhDailyReport',
     query: {
       ...rest,
-      deptId: id
+      deptId: id,
+      ...(non ? { nonProductFlag: 'Y' } : {})
     }
   })
 }
@@ -642,19 +643,39 @@ const tolist = (id: number) => {
                 >
                   <template v-for="item in columns(type)" :key="item.prop">
                     <el-table-column
-                      v-if="item.prop !== 'name'"
+                      v-if="item.prop !== 'name' && item.prop !== 'nonProductiveTime'"
                       :label="item.label"
                       :prop="item.prop"
                       align="center"
                       :formatter="formatter"
                     />
-                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                    <el-table-column
+                      v-else-if="item.prop === 'name'"
+                      :label="item.label"
+                      :prop="item.prop"
+                      align="center"
+                    >
                       <template #default="{ row }">
                         <el-button text type="primary" @click.prevent="tolist(row.id)">{{
                           row.name
                         }}</el-button>
                       </template>
                     </el-table-column>
+                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                      <template #default="{ row }">
+                        <el-button
+                          v-if="row.nonProductiveTime > 0"
+                          text
+                          type="primary"
+                          @click.prevent="tolist(row.id, true)"
+                        >
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </el-button>
+                        <span v-else>
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </span>
+                      </template>
+                    </el-table-column>
                   </template>
                 </el-table>
                 <div

+ 12 - 5
src/views/pms/iotrydailyreport/index.vue

@@ -21,7 +21,7 @@
           :model="queryParams"
           ref="queryFormRef"
           :inline="true"
-          label-width="68px"
+          label-width="80px"
         >
           <el-form-item label="项目" prop="contractName">
             <el-input
@@ -53,6 +53,9 @@
               :shortcuts="rangeShortcuts"
             />
           </el-form-item>
+          <el-form-item label="非生产时效" prop="nonProductFlag">
+            <el-switch v-model="queryParams.nonProductFlag" active-value="Y" inactive-value="N" />
+          </el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"
               ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
@@ -506,7 +509,8 @@ let queryParams = reactive({
   auditStatus: undefined,
   createTime: [
     ...rangeShortcuts[2].value().map((item) => dayjs(item).format('YYYY-MM-DD HH:mm:ss'))
-  ]
+  ],
+  nonProductFlag: 'N'
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
@@ -928,9 +932,12 @@ const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
   if (Object.keys(route.query).length > 0) {
-    queryParams.deptId = Number(route.query.deptId) as any
-    queryParams.createTime = route.query.createTime as string[]
-    handleQuery()
+    nextTick(() => {
+      queryParams.deptId = Number(route.query.deptId) as any
+      queryParams.createTime = route.query.createTime as string[]
+      queryParams.nonProductFlag = route.query.nonProductFlag as string
+      handleQuery()
+    })
   } else getList()
   // 创建 ResizeObserver 监听表格容器尺寸变化
   if (tableContainerRef.value?.$el) {

+ 25 - 4
src/views/pms/iotrydailyreport/summary.vue

@@ -458,14 +458,15 @@ const openUnfilledDialog = () => {
 
 const router = useRouter()
 
-const tolist = (id: number) => {
+const tolist = (id: number, non: boolean = false) => {
   const { pageNo, pageSize, ...rest } = query.value
 
   router.push({
     path: '/iotdayilyreport/IotRyDailyReport',
     query: {
       ...rest,
-      deptId: id
+      deptId: id,
+      ...(non ? { nonProductFlag: 'Y' } : {})
     }
   })
 }
@@ -596,19 +597,39 @@ const tolist = (id: number) => {
                 >
                   <template v-for="item in columns(type)" :key="item.prop">
                     <el-table-column
-                      v-if="item.prop !== 'name'"
+                      v-if="item.prop !== 'name' && item.prop !== 'nonProductiveTime'"
                       :label="item.label"
                       :prop="item.prop"
                       align="center"
                       :formatter="formatter"
                     />
-                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                    <el-table-column
+                      v-else-if="item.prop === 'name'"
+                      :label="item.label"
+                      :prop="item.prop"
+                      align="center"
+                    >
                       <template #default="{ row }">
                         <el-button text type="primary" @click.prevent="tolist(row.id)">{{
                           row.name
                         }}</el-button>
                       </template>
                     </el-table-column>
+                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                      <template #default="{ row }">
+                        <el-button
+                          v-if="row.nonProductiveTime > 0"
+                          text
+                          type="primary"
+                          @click.prevent="tolist(row.id, true)"
+                        >
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </el-button>
+                        <span v-else>
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </span>
+                      </template>
+                    </el-table-column>
                   </template>
                 </el-table>
                 <div

+ 12 - 5
src/views/pms/iotrydailyreport/xjindex.vue

@@ -21,7 +21,7 @@
           :model="queryParams"
           ref="queryFormRef"
           :inline="true"
-          label-width="68px"
+          label-width="80px"
         >
           <el-form-item label="项目" prop="contractName">
             <el-input
@@ -53,6 +53,9 @@
               :shortcuts="rangeShortcuts"
             />
           </el-form-item>
+          <el-form-item label="非生产时效" prop="nonProductFlag">
+            <el-switch v-model="queryParams.nonProductFlag" active-value="Y" inactive-value="N" />
+          </el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"
               ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
@@ -463,7 +466,8 @@ let queryParams = reactive({
   auditStatus: undefined,
   createTime: [
     ...rangeShortcuts[2].value().map((item) => dayjs(item).format('YYYY-MM-DD HH:mm:ss'))
-  ]
+  ],
+  nonProductFlag: 'N'
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
@@ -941,9 +945,12 @@ const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
   if (Object.keys(route.query).length > 0) {
-    queryParams.deptId = Number(route.query.deptId) as any
-    queryParams.createTime = route.query.createTime as string[]
-    handleQuery()
+    nextTick(() => {
+      queryParams.deptId = Number(route.query.deptId) as any
+      queryParams.createTime = route.query.createTime as string[]
+      queryParams.nonProductFlag = route.query.nonProductFlag as string
+      handleQuery()
+    })
   } else getList()
   // 创建 ResizeObserver 监听表格容器尺寸变化
   if (tableContainerRef.value?.$el) {

+ 25 - 4
src/views/pms/iotrydailyreport/xsummary.vue

@@ -456,14 +456,15 @@ const openUnfilledDialog = () => {
 
 const router = useRouter()
 
-const tolist = (id: number) => {
+const tolist = (id: number, non: boolean = false) => {
   const { pageNo, pageSize, ...rest } = query.value
 
   router.push({
     path: '/iotdayilyreport/IotRyXjDailyReport',
     query: {
       ...rest,
-      deptId: id
+      deptId: id,
+      ...(non ? { nonProductFlag: 'Y' } : {})
     }
   })
 }
@@ -594,19 +595,39 @@ const tolist = (id: number) => {
                 >
                   <template v-for="item in columns(type)" :key="item.prop">
                     <el-table-column
-                      v-if="item.prop !== 'name'"
+                      v-if="item.prop !== 'name' && item.prop !== 'nonProductiveTime'"
                       :label="item.label"
                       :prop="item.prop"
                       align="center"
                       :formatter="formatter"
                     />
-                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                    <el-table-column
+                      v-else-if="item.prop === 'name'"
+                      :label="item.label"
+                      :prop="item.prop"
+                      align="center"
+                    >
                       <template #default="{ row }">
                         <el-button text type="primary" @click.prevent="tolist(row.id)">{{
                           row.name
                         }}</el-button>
                       </template>
                     </el-table-column>
+                    <el-table-column v-else :label="item.label" :prop="item.prop" align="center">
+                      <template #default="{ row }">
+                        <el-button
+                          v-if="row.nonProductiveTime > 0"
+                          text
+                          type="primary"
+                          @click.prevent="tolist(row.id, true)"
+                        >
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </el-button>
+                        <span v-else>
+                          {{ (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%' }}
+                        </span>
+                      </template>
+                    </el-table-column>
                   </template>
                 </el-table>
                 <div