<template>
|
<view >
|
<uni-datetime-picker
|
@change='changeTime'
|
v-model="datetimerange"
|
type="datetimerange"
|
rangeSeparator="/" />
|
</view>
|
<view>
|
<uni-table border stripe style='width:100%;max-height: 100%;overflow-y: auto;'>
|
<uni-tr>
|
<uni-th v-for='(item,keys,index) in list' :width='index==0?70:45' align="center">{{item}}</uni-th>
|
</uni-tr>
|
<uni-tr>
|
<uni-th v-for='(item,keys,index) in filterList' :width='index==0?70:45' align="center">
|
<input @blur="filterInfo" type="text" size='mini' v-model.trim="filterList[keys]" />
|
</uni-th>
|
</uni-tr>
|
<uni-tr v-for="items in reportingWorkList">
|
<uni-td style="text-align: center;" v-for='(item,keys) in list'>{{items[keys]}}</uni-td>
|
</uni-tr>
|
<uni-tr>
|
<uni-td style="text-align: center;" v-for='(item,keys,index) in list'>{{sum(keys,index)}}</uni-td>
|
</uni-tr>
|
</uni-table>
|
</view>
|
</template>
|
|
<script setup>
|
import { computed, onMounted,ref, watch } from 'vue'
|
import userInfo from '@/stores/userInfo'
|
import request from '../../utils/request'
|
const store=userInfo()
|
const list = ref({
|
'order_id':'订/序/片',
|
'child_width':'宽',
|
'child_height':'高',
|
'completed_quantity':'完工',
|
'breakage_quantity':'破损',
|
'finish_area':'完工面积',
|
'breakage_area':"次破面积"
|
})
|
const filterList = ref({
|
'order_id':null,
|
'child_width':null,
|
'child_height':null,
|
'completed_quantity':null,
|
'breakage_quantity':null
|
})
|
const datetimerange = ref([null,null])
|
const reportingWorkList = ref([])
|
const reportingWorkListAll = ref([])
|
const getReportingWorkList = async () => {
|
const obj = {
|
userId:store.user.userId,
|
process:store.user.address,
|
searchDate:datetimerange.value
|
}
|
await request.post(`/reportingWork/selectShiftQuantity`,obj).then(res => {
|
if(res.code ==='200'){
|
reportingWorkList.value = res.data.data
|
reportingWorkListAll.value = res.data.data
|
datetimerange.value = res.data.date
|
}
|
}).catch(err => {
|
uni.showModal({
|
title: '提示',
|
content: err,
|
showCancel:false
|
});
|
})
|
}
|
onMounted( async ()=>{
|
await getReportingWorkList()
|
})
|
const changeTime = () => {
|
getReportingWorkList()
|
}
|
const sum = (val,index)=>{
|
if(index===0){
|
return '合计:'
|
}
|
const arr = ['completed_quantity','breakage_quantity','finish_area','breakage_area']
|
if(arr.includes(val)){
|
let sum = 0
|
reportingWorkList.value.forEach(item => {
|
sum=Number(item[val]) +Number(sum)
|
})
|
return sum.toFixed(2).toString().replace(/\.?0+$/, '')
|
}else{
|
return null
|
}
|
}
|
const filterInfo = () => {
|
let filter = Object.fromEntries(
|
Object.entries(filterList.value).filter(([_, value]) => value !== null && value !== '')
|
)
|
if(JSON.stringify(filter) === '{}'){
|
reportingWorkList.value = reportingWorkListAll.value
|
|
}else{
|
reportingWorkList.value = reportingWorkListAll.value.filter(item => {
|
return Object.keys(filter).every(key => {
|
return item[key].toString().includes( filter[key])
|
})
|
})
|
}
|
|
|
}
|
</script>
|
|
<style>
|
|
</style>
|