|
|
|
@ -8,6 +8,8 @@
|
|
|
|
<text class="point">.</text>
|
|
|
|
<text class="point">.</text>
|
|
|
|
<text class="title">报工报表</text>
|
|
|
|
<text class="title">报工报表</text>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<uni-data-select v-if="auth.hasPermi('mes:produce-report-detail:replace')" class="select" v-model="userId" :localdata="userList" placement="top" @change="handleChange()">
|
|
|
|
|
|
|
|
</uni-data-select>
|
|
|
|
<view class="top_desc">
|
|
|
|
<view class="top_desc">
|
|
|
|
<view>
|
|
|
|
<view>
|
|
|
|
<view class="text">上月报工汇总</view>
|
|
|
|
<view class="text">上月报工汇总</view>
|
|
|
|
@ -104,6 +106,8 @@ import useUserStore from "@/store/modules/user";
|
|
|
|
import Config from '@/pages/js/config'
|
|
|
|
import Config from '@/pages/js/config'
|
|
|
|
import { ref } from 'vue';
|
|
|
|
import { ref } from 'vue';
|
|
|
|
import { onLoad } from "@dcloudio/uni-app";
|
|
|
|
import { onLoad } from "@dcloudio/uni-app";
|
|
|
|
|
|
|
|
import auth from "@/plugins/auth";
|
|
|
|
|
|
|
|
import {getOtherPersonalUser} from "@/api/mes/organization";
|
|
|
|
|
|
|
|
|
|
|
|
const now = new Date();
|
|
|
|
const now = new Date();
|
|
|
|
const nowTime = {
|
|
|
|
const nowTime = {
|
|
|
|
@ -116,7 +120,6 @@ const useStore = useUserStore()
|
|
|
|
const userId = ref(useStore.userId)
|
|
|
|
const userId = ref(useStore.userId)
|
|
|
|
const isCanvas2d = ref(Config.ISCANVAS2D)
|
|
|
|
const isCanvas2d = ref(Config.ISCANVAS2D)
|
|
|
|
|
|
|
|
|
|
|
|
let expendCount = 0;
|
|
|
|
|
|
|
|
let delayload = ref(false);
|
|
|
|
let delayload = ref(false);
|
|
|
|
let historyData = ref({});
|
|
|
|
let historyData = ref({});
|
|
|
|
const reportTime = ref([])
|
|
|
|
const reportTime = ref([])
|
|
|
|
@ -128,98 +131,118 @@ const detailList = ref([]);
|
|
|
|
const historyBtn = ref([
|
|
|
|
const historyBtn = ref([
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "总数",
|
|
|
|
name: "总数",
|
|
|
|
state: 1,
|
|
|
|
state: true,
|
|
|
|
type: "sumNumber"
|
|
|
|
type: "sumNumber"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "合格数",
|
|
|
|
name: "合格数",
|
|
|
|
state: 0,
|
|
|
|
state: false,
|
|
|
|
type: "totalQualityNumber"
|
|
|
|
type: "totalQualityNumber"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "废品数",
|
|
|
|
name: "废品数",
|
|
|
|
state: 0,
|
|
|
|
state: false,
|
|
|
|
type: "totalWasteNumber"
|
|
|
|
type: "totalWasteNumber"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
const filterHistoryData = () => {
|
|
|
|
const userList = ref([])
|
|
|
|
getReportTimeList()
|
|
|
|
|
|
|
|
let type = historyBtn.value.filter(x => x.state === 1)[0].type;
|
|
|
|
const getUserList = ()=> {
|
|
|
|
switch (type) {
|
|
|
|
getOtherPersonalUser().then(response => {
|
|
|
|
case "sumNumber":
|
|
|
|
userList.value = response.data
|
|
|
|
historyData.value = dataOne.sumNumber;
|
|
|
|
})
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "totalQualityNumber":
|
|
|
|
|
|
|
|
historyData.value = dataOne.totalQualityNumber;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "totalWasteNumber":
|
|
|
|
|
|
|
|
historyData.value = dataOne.totalWasteNumber;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const handleChange = ()=>{
|
|
|
|
|
|
|
|
getLastMonthSumList()
|
|
|
|
|
|
|
|
getThisMonthSumList()
|
|
|
|
|
|
|
|
getReportTimeList()
|
|
|
|
|
|
|
|
getSumReportTimeList()
|
|
|
|
|
|
|
|
getDayReportTimeList()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const changeHistoryBtn = (type) => {
|
|
|
|
const changeHistoryBtn = (type) => {
|
|
|
|
|
|
|
|
historyBtn.value.forEach(btn => {
|
|
|
|
|
|
|
|
btn.state = false;
|
|
|
|
|
|
|
|
});
|
|
|
|
for (let i = 0; i < historyBtn.value.length; i++) {
|
|
|
|
for (let i = 0; i < historyBtn.value.length; i++) {
|
|
|
|
if (historyBtn.value[i].type === type) {
|
|
|
|
historyBtn.value[i].state = historyBtn.value[i].type === type;
|
|
|
|
historyBtn.value[i].state = 1;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
historyBtn.value[i].state = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
filterHistoryData();
|
|
|
|
if(type === 'sumNumber') {
|
|
|
|
}
|
|
|
|
|
|
|
|
// 30天报工数据
|
|
|
|
|
|
|
|
const getReportTimeList = ()=>{
|
|
|
|
|
|
|
|
getReportTime(userId.value).then(response => {
|
|
|
|
|
|
|
|
reportTime.value = response.data;
|
|
|
|
|
|
|
|
dataOne.sumNumber.categories = []
|
|
|
|
dataOne.sumNumber.categories = []
|
|
|
|
dataOne.sumNumber.series[0].data = []
|
|
|
|
dataOne.sumNumber.series[0].data = []
|
|
|
|
dataOne.totalQualityNumber.categories = []
|
|
|
|
|
|
|
|
dataOne.totalQualityNumber.series[0].data = []
|
|
|
|
|
|
|
|
dataOne.totalWasteNumber.categories = []
|
|
|
|
|
|
|
|
dataOne.totalWasteNumber.series[0].data = []
|
|
|
|
|
|
|
|
reportTime.value.forEach(item => {
|
|
|
|
reportTime.value.forEach(item => {
|
|
|
|
dataOne.sumNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.sumNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.sumNumber.series[0].data.push(item.sumNumber)
|
|
|
|
dataOne.sumNumber.series[0].data.push(item.sumNumber)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
historyData.value = dataOne.sumNumber
|
|
|
|
|
|
|
|
} else if (type === 'totalQualityNumber') {
|
|
|
|
|
|
|
|
dataOne.totalQualityNumber.categories = []
|
|
|
|
|
|
|
|
dataOne.totalQualityNumber.series[0].data = []
|
|
|
|
|
|
|
|
reportTime.value.forEach(item => {
|
|
|
|
dataOne.totalQualityNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.totalQualityNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.totalQualityNumber.series[0].data.push(item.totalQualityNumber)
|
|
|
|
dataOne.totalQualityNumber.series[0].data.push(item.totalQualityNumber)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
historyData.value = dataOne.totalQualityNumber
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
dataOne.totalWasteNumber.categories = []
|
|
|
|
|
|
|
|
dataOne.totalWasteNumber.series[0].data = []
|
|
|
|
|
|
|
|
reportTime.value.forEach(item => {
|
|
|
|
dataOne.totalWasteNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.totalWasteNumber.categories.push(`${new Date(item.reportDay).getMonth() + 1}月${new Date(item.reportDay).getDate()}日`)
|
|
|
|
dataOne.totalWasteNumber.series[0].data.push(item.totalWasteNumber)
|
|
|
|
dataOne.totalWasteNumber.series[0].data.push(item.totalWasteNumber)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
historyData.value = dataOne.totalWasteNumber
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 30天报工数据
|
|
|
|
|
|
|
|
const defaultBtnIndex = ref(0)
|
|
|
|
|
|
|
|
const getReportTimeList = async () => {
|
|
|
|
|
|
|
|
defaultBtnIndex.value = 0;
|
|
|
|
|
|
|
|
historyBtn.value.forEach((btn, index) => {
|
|
|
|
|
|
|
|
btn.state = (index === defaultBtnIndex.value);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
historyData.value= {}
|
|
|
|
|
|
|
|
reportTime.value = []
|
|
|
|
|
|
|
|
dataOne.sumNumber.categories = [];
|
|
|
|
|
|
|
|
dataOne.sumNumber.series[0].data = [];
|
|
|
|
|
|
|
|
const response = await getReportTime(userId.value);
|
|
|
|
|
|
|
|
reportTime.value = response.data;
|
|
|
|
|
|
|
|
reportTime.value.forEach(item => {
|
|
|
|
|
|
|
|
const month = new Date(item.reportDay).getMonth() + 1;
|
|
|
|
|
|
|
|
const day = new Date(item.reportDay).getDate();
|
|
|
|
|
|
|
|
dataOne.sumNumber.categories.push(`${month}月${day}日`);
|
|
|
|
|
|
|
|
dataOne.sumNumber.series[0].data.push(item.sumNumber);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
historyData.value = dataOne.sumNumber;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上月报工汇总
|
|
|
|
// 上月报工汇总
|
|
|
|
const getLastMonthSumList = ()=>{
|
|
|
|
const getLastMonthSumList = async () => {
|
|
|
|
getLastMonthSum(userId.value).then(response => {
|
|
|
|
const response = await getLastMonthSum(userId.value);
|
|
|
|
lastMonthSum.value = response.data;
|
|
|
|
lastMonthSum.value = response.data;
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 本月报工汇总
|
|
|
|
// 本月报工汇总
|
|
|
|
const getThisMonthSumList = ()=>{
|
|
|
|
const getThisMonthSumList = async () => {
|
|
|
|
getThisMonthSum(userId.value).then(response => {
|
|
|
|
const response = await getThisMonthSum(userId.value);
|
|
|
|
thisMonthSum.value = response.data;
|
|
|
|
thisMonthSum.value = response.data;
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 本月上月计时汇总
|
|
|
|
// 本月上月计时汇总
|
|
|
|
const getSumReportTimeList = ()=>{
|
|
|
|
const getSumReportTimeList = async () => {
|
|
|
|
getSumReportTime(userId.value).then(response => {
|
|
|
|
const response = await getSumReportTime(userId.value);
|
|
|
|
sumReportTime.value = response.data;
|
|
|
|
sumReportTime.value = response.data;
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 最近30天计时列表
|
|
|
|
// 最近30天计时列表
|
|
|
|
const getDayReportTimeList = ()=>{
|
|
|
|
const getDayReportTimeList = async () => {
|
|
|
|
getDayReportTime(userId.value).then(response => {
|
|
|
|
const response = await getDayReportTime(userId.value);
|
|
|
|
detailList.value = response.data;
|
|
|
|
detailList.value = response.data;
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
onLoad(() => {
|
|
|
|
onLoad(() => {
|
|
|
|
filterHistoryData()
|
|
|
|
getUserList()
|
|
|
|
getReportTimeList()
|
|
|
|
getReportTimeList()
|
|
|
|
getLastMonthSumList()
|
|
|
|
getLastMonthSumList()
|
|
|
|
getThisMonthSumList()
|
|
|
|
getThisMonthSumList()
|
|
|
|
@ -382,12 +405,24 @@ onLoad(() => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top_head {
|
|
|
|
.top_head {
|
|
|
|
|
|
|
|
position: relative;
|
|
|
|
height: 495rpx;
|
|
|
|
height: 495rpx;
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
padding: 110rpx 10rpx 0 10rpx;
|
|
|
|
padding: 110rpx 10rpx 0 10rpx;
|
|
|
|
background: url('@/static/images/icon/background.png') no-repeat center 0;
|
|
|
|
background: url('@/static/images/icon/background.png') no-repeat center 0;
|
|
|
|
box-sizing: border-box;
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.select {
|
|
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
width: 240rpx;
|
|
|
|
|
|
|
|
top: 155rpx;
|
|
|
|
|
|
|
|
right: 30rpx;
|
|
|
|
|
|
|
|
:deep(.uni-select__input-text) {
|
|
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top_desc {
|
|
|
|
.top_desc {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
border-radius: 20rpx;
|
|
|
|
border-radius: 20rpx;
|
|
|
|
@ -433,6 +468,7 @@ onLoad(() => {
|
|
|
|
font-weight: 900;
|
|
|
|
font-weight: 900;
|
|
|
|
position: relative;
|
|
|
|
position: relative;
|
|
|
|
margin-left: 60rpx;
|
|
|
|
margin-left: 60rpx;
|
|
|
|
|
|
|
|
margin-bottom: 40rpx;
|
|
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
text {
|
|
|
|
display: inline-block;
|
|
|
|
display: inline-block;
|
|
|
|
@ -464,4 +500,5 @@ onLoad(() => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|
|