Compare commits

...

26 Commits

Author SHA1 Message Date
ec0c09a674 Merge pull request 'projects/mesxc-zhp' (#358) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #358
2024-04-24 14:54:40 +08:00
‘937886381’
90e9b179eb Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-24 14:52:32 +08:00
‘937886381’
8e2b332c7b 修改bug 2024-04-24 14:52:01 +08:00
f37a12d2e1 Merge pull request '修改bug' (#357) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #357
2024-04-24 14:38:13 +08:00
cb19872012 Merge pull request 'projects/mesxc-zhp' (#356) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #356
2024-04-24 14:37:05 +08:00
‘937886381’
8ba79185d4 修改bug 2024-04-24 14:36:45 +08:00
‘937886381’
104cda5a41 Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-24 14:34:08 +08:00
‘937886381’
151c5708c4 修改bug 2024-04-24 14:33:46 +08:00
837735b7e8 Merge pull request 'projects/mesxc-zhp' (#355) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #355
2024-04-24 14:25:03 +08:00
‘937886381’
e00a08385f Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-24 14:23:47 +08:00
‘937886381’
a8c3d2c585 修改bug 2024-04-24 14:23:13 +08:00
eb097e77bd Merge pull request 'projects/mesxc-zhp' (#354) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #354
2024-04-24 13:50:44 +08:00
‘937886381’
30eecb8bd1 Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-24 13:49:44 +08:00
‘937886381’
f4a6229170 修改bug 2024-04-24 13:49:23 +08:00
ab593bff20 Merge pull request 'projects/mesxc-zjl' (#353) from projects/mesxc-zjl into projects/mesxc-test
Reviewed-on: #353
2024-04-24 13:32:26 +08:00
4b01dd3ec3 merge test 2024-04-24 13:31:55 +08:00
ed3ea7dde8 Merge pull request 'projects/mesxc-dy' (#352) from projects/mesxc-dy into projects/mesxc-test
Reviewed-on: #352
2024-04-24 13:30:39 +08:00
helloDy
43c9153777 冲突 2024-04-23 17:25:39 +08:00
helloDy
c6d504583b 生产数据汇总表 2024-04-23 17:23:54 +08:00
‘937886381’
22f3c87f02 Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-23 16:47:49 +08:00
‘937886381’
1f54c9179d 修改bug 2024-04-23 16:47:27 +08:00
f7247f5161 Merge pull request 'projects/mesxc-zhp' (#351) from projects/mesxc-zhp into projects/mesxc-test
Reviewed-on: #351
2024-04-23 16:28:30 +08:00
‘937886381’
c8856f34b5 Merge branch 'projects/mesxc-test' into projects/mesxc-zhp 2024-04-23 16:19:23 +08:00
‘937886381’
42c42abc08 新增报表 2024-04-23 16:19:01 +08:00
helloDy
16186667da merge 2024-04-22 15:20:56 +08:00
helloDy
c7cd6e7b1e 部门换接口 2024-04-22 15:19:35 +08:00
28 changed files with 847 additions and 241 deletions

View File

@@ -1,8 +1,8 @@
###
# @Author: zhp
# @Date: 2024-04-12 14:30:48
# @LastEditTime: 2024-04-23 13:52:57
# @LastEditors: zhp
# @LastEditTime: 2024-04-23 17:25:25
# @LastEditors: DY
# @Description:
###
# 开发环境配置
@@ -12,10 +12,10 @@ ENV = 'development'
VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
VUE_APP_BASE_API = 'http://10.70.2.2:8080'
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.4.176:48082'
# 积木报表指向地址
VUE_APP_JIMU_API = 'http://192.168.0.33:48082'
VUE_APP_JIMU_API = 'http://192.168.1.101:48082'
# socket地址(现场)
VUE_APP_Socket_API = 'ws://10.70.2.2:8080'

View File

@@ -1,7 +1,7 @@
/*
* @Author: Do not edit
* @Date: 2023-10-21 11:50:46
* @LastEditTime: 2023-10-30 14:37:28
* @LastEditTime: 2024-04-19 17:13:24
* @LastEditors: DY
* @Description:
*/
@@ -65,4 +65,13 @@ export function getCoreDepartmentList(query) {
method: 'get',
params: query
})
}
}
// 设备获得所有列表
export function getDepartmentList(query) {
return request({
url: '/system/dept/list-all-simple',
method: 'get',
params: query
})
}

View File

@@ -2,7 +2,7 @@
<!--
* @Author: zhp
* @Date: 2023-09-21 09:06:28
* @LastEditTime: 2024-04-23 14:04:24
* @LastEditTime: 2024-04-23 15:34:56
* @LastEditors: zhp
* @Description:
-->
@@ -83,6 +83,9 @@ export default {
this.chart = null
},
methods: {
// getNumLength(num) {
// return num.toString().length;
// },
initChart(nameList, passRateList, outputNumList) {
console.log(nameList, passRateList)
let series= [
@@ -218,11 +221,10 @@ export default {
// },
yAxis: [
{
min: function() { // 取最小值向下取整为最小刻度
min: function () { // 取最小值向下取整为最小刻度
return 0
},
max: function(value) { // 取最大值向上取整为最大刻度
return Math.ceil(value.max)
max: function (value) { // 取最大值向上取整为最大刻度
},
scale: true,
type: 'value',
@@ -266,8 +268,16 @@ export default {
// },
},
{
min: 0,
max: 100000,
min: function () { // 取最小值向下取整为最小刻度
return 0
},
max: function (value) { // 取最大值向上取整为最大刻度
// console.log(value.max.toString().length)
// String(value.max)[0]
// for
// return String(value.max)[0] +
},
minInterval: 5,//间隔
scale: true,
type: 'value',

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-09-21 09:06:28
* @LastEditTime: 2024-04-23 14:06:05
* @LastEditTime: 2024-04-23 15:36:35
* @LastEditors: zhp
* @Description:
-->
@@ -217,12 +217,11 @@ export default {
// },
yAxis: [
{
// min: function() { // 取最小值向下取整为最小刻度
// return 0
// },
// max: function(value) { // 取最大值向上取整为最大刻度
// return Math.ceil(value.max)
// },
min: function () { // 取最小值向下取整为最小刻度
return 0
},
max: function (value) { // 取最大值向上取整为最大刻度
},
scale: true,
type: 'value',
name: '良品率/%',
@@ -265,8 +264,16 @@ export default {
// },
},
{
min: 0,
max: 100000,
min: function () { // 取最小值向下取整为最小刻度
return 0
},
max: function (value) { // 取最大值向上取整为最大刻度
// console.log(value.max.toString().length)
// String(value.max)[0]
// for
// return String(value.max)[0] +
},
minInterval: 5,//间隔
scale: true,
type: 'value',

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-07-19 15:18:30
* @LastEditors: zhp
* @LastEditTime: 2024-04-22 12:15:49
* @LastEditTime: 2024-04-24 14:48:00
* @Description:
-->
<template>
@@ -37,7 +37,7 @@
</el-col>
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
<base-container :show-time="true" :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'">
<base-container :show-time="false" :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'">
<div class="order" style="width: 100%; overflow: hidden scroll; height: 350px">
<el-row v-for="op in orderList" :key="op.id" style="margin-bottom: .5em;overflow: hidden;">
<!-- <el-col :span="12"> -->
@@ -749,7 +749,7 @@ export default {
item.code || ''
}</span>`,
`<span style="color:rgba(255,255,255,0.5)"><div style="${item.status == '正常' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%; background-color: #FFBD02;float:left;margin:10px 10px 0 0 '}"></div> ${item.status || ''}</span>`,
`<span style="color:rgba(255,255,255,0.5)"><div style="${item.error == 'false' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%; background-color: red;float:left;margin:10px 10px 0 0 '}"></div> ${item.error == true ?'是' :'否' || ''}</span>`,
`<span style="color:rgba(255,255,255,0.5)"><div style="${item.error == false ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%; background-color: red;float:left;margin:10px 10px 0 0 '}"></div> ${item.error == true ?'是' :'否' || ''}</span>`,
]);
this.eqConfig.data = eqArr;
// this.$nextTick(() => {

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: DY
* @LastEditTime: 2024-03-25 15:44:49
* @LastEditTime: 2024-04-22 15:04:40
* @Description:
-->
<template>
@@ -165,7 +165,7 @@ import SmallTitle from './SmallTitle';
import { parseTime } from '@/utils/ruoyi';
import attrAdd from './attr-add';
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import { getCoreDepartmentList } from "@/api/base/coreDepartment";
import { getDepartmentList } from "@/api/base/coreDepartment";
import { groupClassesListAll } from '@/api/monitoring/teamProduction'
import { getDictDataLabel } from '@/utils/dict';
@@ -289,7 +289,7 @@ export default {
return item
}) || [];
// 部门列表
const res1 = await getCoreDepartmentList();
const res1 = await getDepartmentList();
this.departmentOptions = res1.data || []
// 巡检人
let inspectorList = [];

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: DY
* @LastEditTime: 2024-03-15 18:38:52
* @LastEditTime: 2024-04-22 14:56:03
* @Description:
-->
<template>
@@ -99,7 +99,7 @@ import {
createCheckOrder,
updateCheckOrder,
} from '@/api/equipment/base/inspection/settings';
import { getCoreDepartmentList } from '@/api/base/coreDepartment';
import { getDepartmentList } from '@/api/base/coreDepartment';
import { groupClassesListAll } from '@/api/monitoring/teamProduction';
import { getDictDataLabel } from '@/utils/dict';
// import { getEquipmentAll } from '@/api/base/equipment'
@@ -195,7 +195,7 @@ export default {
},
async getDict() {
// 部门列表
const res = await getCoreDepartmentList();
const res = await getDepartmentList();
this.departmentOptions = res.data || [];
const res1 = await groupClassesListAll();
this.groupOptions =

View File

@@ -320,7 +320,7 @@ export default {
async getList(source = 'department') {
const urls = [
'/base/core-production-line/listAll',
'/base/core-department/listAll',
'/system/dept/list-all-simple',
'/base/core-worker/listAll',
];
let res;

View File

@@ -540,7 +540,7 @@ export default {
async getList(source = 'department') {
const urls = [
'/base/core-production-line/listAll',
'/base/core-department/listAll',
'system/dept/list-all-simple',
'/base/core-worker/listAll',
];
let res;

View File

@@ -609,7 +609,7 @@ export default {
async getList(source = 'department') {
const urls = [
'/base/core-production-line/listAll',
'/base/core-department/listAll',
'/system/dept/list-all-simple',
'/base/core-worker/listAll',
];
let res;

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: DY
* @LastEditTime: 2024-03-13 15:55:36
* @LastEditTime: 2024-04-19 17:13:45
* @Description:
-->
<template>
@@ -114,7 +114,7 @@
import basicAdd from '../../../../core/mixins/basic-add';
// import { getCoreProductAttrPage, deleteCoreProductAttr } from "@/api/base/coreProduct";
import { getWorkerList } from '@/api/base/worker'
import { getCoreDepartmentList } from "@/api/base/coreDepartment";
import { getDepartmentList } from "@/api/base/coreDepartment";
import { createPlan, updatePlan, getCode, getPlan } from '@/api/equipment/base/maintain/planconfig';
import { getCorePLList } from '@/api/base/coreProductionLine';
import { parseTime } from '../../../../core/mixins/code-filter';
@@ -175,7 +175,7 @@ export default {
async getDict() {
// 部门列表
this.menuOptions = []
const res = await getCoreDepartmentList();
const res = await getDepartmentList();
this.departmentlList = res.data.map(item => {
item.parentId = item.parentId ? item.parentId : 0
return item

View File

@@ -25,6 +25,14 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="重置方式" prop="resetMethod" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
<el-radio-group v-model="dataForm.resetMethod">
<el-radio :label="0">自动</el-radio>
<el-radio :label="1">手动</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="检测内容" prop="inspectionDetIdList"
:rules="[{ required: true, message: '不能为空', trigger: 'change' }]">
@@ -109,6 +117,7 @@ export default {
sectionId: null,
productionLineId: null,
inspectionDetIdList:[],
resetMethod: 0
},
disabled:false,
formLoading: true,
@@ -143,7 +152,7 @@ export default {
methods: {
init(obj) {
// console.log(productionLineId);
console.log(obj)
console.log('你好打印', obj)
this.getProductionLineList()
this.getQualityInspectionDetList()
this.visible = true
@@ -162,6 +171,7 @@ export default {
console.log(res);
this.dataForm.inspectionDetIdList = res.data
this.dataForm.productionLineId = obj.productionLineId
this.dataForm.resetMethod = obj.resetMethod
this.getWorksectionList(obj.productionLineId)
this.dataForm.sectionId = obj.sectionId
})

View File

@@ -151,7 +151,8 @@ export default {
productionLineId:item.productionLineId,
productionLineName:item.productionLineName,
sectionId: item.sectionId,
sectionName: item.sectionName
sectionName: item.sectionName,
resetMethod: item.resetMethod
}
})
this.listQuery.total = response.data.total;

View File

@@ -0,0 +1,141 @@
<!--
* @Author: Do not edit
* @Date: 2024-04-22 15:49:56
* @LastEditTime: 2024-04-23 17:06:16
* @LastEditors: DY
* @Description:
-->
<template>
<div class="weekly">
<el-form :inline="true" :model="listQuery" class="blueTip">
<el-form-item label="月" prop="reportTime">
<el-date-picker v-model="reportTime" type="month" size="small" @change="changeTime" placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" size="small" @click="search()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermiAnd(['base:report-auto-original-glass:export', 'base:report-auto-production:export'])" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<monthWeek v-if="glassWeekShow" ref="monthWeek" :product="false" :params="listQuery" />
<proMonth v-if="proWeekShow" ref="proMonth" :product="false" :params="listQuery" />
</div>
</template>
<script>
import monthWeek from '../glass/month.vue'
import proMonth from '../productionMonthReport/index.vue'
import { parseTime } from '../../core/mixins/code-filter';
export default {
components: { monthWeek, proMonth },
data() {
return {
listQuery: {
// pageSize: 10,
// pageNo: 1,
// total: 0,
reportType: 4,
reportTime: []
},
startTimeStamp: '',
endTimeStamp: '',
reportTime: '',
glassWeekShow: false,
proWeekShow: false
}
},
created() {
this.getCurrentMonthFirst()
this.glassWeekShow = true
this.proWeekShow = true
},
methods: {
getCurrentMonthFirst() {
const date = new Date();
date.setDate(1);
this.reportTime = date
// console.log(date)
this.changeTime(date)
// console.log(date.valueOf());
},
handleExport() {
this.$nextTick(() => {
this.$refs['monthWeek'].handleExport()
this.$refs['proMonth'].handleExport()
})
},
search() {
this.$nextTick(() => {
this.$refs['monthWeek'].getDataList()
this.$refs['proMonth'].getDataList()
})
},
changeTime(val) {
console.log(val)
if(val) {
const timeStamp = val.getMonth(); //标准时间转为时间戳,毫秒级别
const fullyear = val.getFullYear()
let days = 0
switch (timeStamp) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
days = 31
break
case 3:
case 4:
case 8:
case 10:
days = 30
break
case 1:
if ((fullyear % 400 === 0) || (fullyear % 4 === 0 && fullyear % 100 !== 0)) {
days = 29
} else {
days = 28
}
break
}
this.startTimeStamp = this.timeFun(new Date(fullyear, timeStamp, 1, 7, 0, 1).getTime()); //开始时间
this.endTimeStamp = this.timeFun(new Date(fullyear, timeStamp, days, 7, 0, 0).getTime()); //结束时间
console.log(this.startTimeStamp, this.endTimeStamp)
this.listQuery.reportTime[0] = parseTime(new Date(fullyear, timeStamp, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(fullyear, timeStamp, days, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
} else {
this.listQuery.reportTime = []
}
},
//时间戳转为yy-mm-dd hh:mm:ss
timeFun(unixtimestamp) {
var unixtimestamp = new Date(unixtimestamp);
var year = 1900 + unixtimestamp.getYear();
var month = "0" + (unixtimestamp.getMonth() + 1);
var date = "0" + unixtimestamp.getDate();
return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
}
}
}
</script>
<style scoped>
.weekly {
padding-top: 16px;
}
.blueTip::before{
display: inline-block;
content: '';
width: 4px;
height: 18px;
background: #0B58FF;
border-radius: 1px;
margin-right: 8PX;
margin-top: 8px;
margin-left: 16px;
}
</style>

View File

@@ -0,0 +1,171 @@
<!--
* @Author: Do not edit
* @Date: 2024-04-22 15:49:56
* @LastEditTime: 2024-04-23 15:43:36
* @LastEditors: DY
* @Description:
-->
<template>
<div class="weekly">
<el-form :inline="true" :model="listQuery" class="blueTip">
<el-form-item>
<el-date-picker v-model="reportTime" type="week" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 4}" :format="'yyyy 第 WW 周' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择周">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" size="small" @click="search()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermiAnd(['base:report-auto-original-glass:export', 'base:report-auto-production:export'])" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<glassWeek v-if="glassWeekShow" ref="glassWeek" :product="false" :params="listQuery" />
<proWeek v-if="proWeekShow" ref="proWeek" :product="false" :params="listQuery" />
</div>
</template>
<script>
import glassWeek from '../glass/weekly.vue'
import proWeek from '../productionWeekReport/index.vue'
import { parseTime } from '../../core/mixins/code-filter';
export default {
components: { glassWeek, proWeek },
data() {
return {
listQuery: {
// pageSize: 10,
// pageNo: 1,
// total: 0,
reportType: 3,
reportTime: []
},
startTimeStamp: '',
endTimeStamp: '',
reportTime: '',
glassWeekShow: false,
proWeekShow: false
}
},
created() {
this.getCurrentWeekStartTimeAndEndTime()
this.glassWeekShow = true
this.proWeekShow = true
},
methods: {
handleExport() {
this.$nextTick(() => {
this.$refs['glassWeek'].handleExport()
this.$refs['proWeek'].handleExport()
})
},
search() {
this.$nextTick(() => {
this.$refs['glassWeek'].getDataList()
this.$refs['proWeek'].getDataList()
})
},
changeTime(val) {
console.log(val);
if(val) {
let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别
this.startTimeStamp = this.timeFun(timeStamp - 24 * 60 * 60 * 1000); //开始时间
this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 6); //结束时间
console.log(this.startTimeStamp, this.endTimeStamp)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
} else {
this.listQuery.reportTime = []
}
},
getCurrentWeekStartTimeAndEndTime() {
this.reportTime = new Date()
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
// console.log(weekday[this.reportTime.getDay()]);
if (weekday[this.reportTime.getDay()] === 'Monday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 4 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() + 3 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Tuesday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 5 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() + 2 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Wednesday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 6 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() + 1 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Thursday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 7 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime())
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Friday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 8 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() - 1 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Saturday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 9 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() - 2 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
} else if (weekday[this.reportTime.getDay()] === 'Sunday') {
this.startTimeStamp = this.timeFun(new Date().getTime() - 10 * 24 * 60 * 60 * 1000)
this.endTimeStamp = this.timeFun(new Date().getTime() + 3 * 24 * 60 * 60 * 1000)
this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
// this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
// this.changeTime(reportTime)
}
},
//时间戳转为yy-mm-dd hh:mm:ss
timeFun(unixtimestamp) {
var unixtimestamp = new Date(unixtimestamp);
var year = 1900 + unixtimestamp.getYear();
var month = "0" + (unixtimestamp.getMonth() + 1);
var date = "0" + unixtimestamp.getDate();
return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
}
}
}
</script>
<style scoped>
.weekly {
padding-top: 16px;
}
.blueTip::before{
display: inline-block;
content: '';
width: 4px;
height: 18px;
background: #0B58FF;
border-radius: 1px;
margin-right: 8PX;
margin-top: 8px;
margin-left: 16px;
}
</style>

View File

@@ -0,0 +1,117 @@
<!--
* @Author: Do not edit
* @Date: 2024-04-22 15:49:56
* @LastEditTime: 2024-04-23 17:16:11
* @LastEditors: DY
* @Description:
-->
<template>
<div class="weekly">
<el-form :inline="true" :model="listQuery" class="blueTip">
<el-form-item label="年" prop="reportTime">
<el-date-picker v-model="reportTime" type="year" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 1}" :format="'yyyy 年' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择年">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" size="small" @click="search()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermiAnd(['base:report-auto-original-glass:export', 'base:report-auto-production:export'])" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<glassYear v-if="glassYearShow" ref="glassYear" :product="false" :params="listQuery" />
<proYear v-if="proYearShow" ref="proYear" :product="false" :params="listQuery" />
</div>
</template>
<script>
import glassYear from '../glass/year.vue'
import proYear from '../productionYearReport/index.vue'
import { parseTime } from '../../core/mixins/code-filter';
export default {
components: { glassYear, proYear },
data() {
return {
listQuery: {
// pageSize: 10,
// pageNo: 1,
// total: 0,
reportType: 5,
reportTime: []
},
startTimeStamp: '',
endTimeStamp: '',
reportTime: '',
glassYearShow: false,
proYearShow: false
}
},
created() {
this.getCurrentYearFirst()
this.glassYearShow = true
this.proYearShow = true
},
methods: {
handleExport() {
this.$nextTick(() => {
this.$refs['glassYear'].handleExport()
this.$refs['proYear'].handleExport()
})
},
search() {
this.$nextTick(() => {
this.$refs['glassYear'].getDataList()
this.$refs['proYear'].getDataList()
})
},
changeTime(val) {
if(val) {
// let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别
this.endTimeStamp = this.timeFun(new Date(val.getFullYear(),11, 31, 7, 0, 0).getTime()); //开始时间
this.startTimeStamp = this.timeFun(new Date(val.getFullYear(), 0, 1, 7, 0, 1).getTime()); //结束时间
this.listQuery.reportTime[0] = parseTime(new Date(val.getFullYear(), 0, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(val.getFullYear(), 11, 31, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
} else {
this.listQuery.reportTime = []
}
},
getCurrentYearFirst() {
let date = new Date();
date.setDate(1);
date.setMonth(0);
this.reportTime = date;
this.startTimeStamp = this.timeFun(new Date(new Date().getFullYear(), 0, 1,7,0,1).getTime()); //开始时间
this.endTimeStamp = this.timeFun(new Date(new Date().getFullYear(), 11, 31, 7, 0, 0).getTime()); //结束时间
this.listQuery.reportTime[0] = parseTime(new Date(new Date().getFullYear(), 0, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.listQuery.reportTime[1] = parseTime(new Date(new Date().getFullYear(), 11, 31, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 100
},
//时间戳转为yy-mm-dd hh:mm:ss
timeFun(unixtimestamp) {
var unixtimestamp = new Date(unixtimestamp);
var year = 1900 + unixtimestamp.getYear();
var month = "0" + (unixtimestamp.getMonth() + 1);
var date = "0" + unixtimestamp.getDate();
return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
},
}
}
</script>
<style scoped>
.weekly {
padding-top: 16px;
}
.blueTip::before{
display: inline-block;
content: '';
width: 4px;
height: 18px;
background: #0B58FF;
border-radius: 1px;
margin-right: 8PX;
margin-top: 8px;
margin-left: 16px;
}
</style>

View File

@@ -1,13 +1,13 @@
<!--
* @Author: Do not edit
* @Date: 2023-12-13 14:10:04
* @LastEditTime: 2024-04-12 14:21:34
* @LastEditors: zhp
* @LastEditTime: 2024-04-23 16:47:21
* @LastEditors: DY
* @Description:
-->
<template>
<div>
<el-row style="float: right; margin-bottom: 5px">
<el-row v-if="isShowEdit" style="float: right; margin-bottom: 5px">
<el-button v-if="!edit && this.$auth.hasPermi('base:report-auto-original-glass:update')" :disabled="noData"
size="small" @click="edit = true">编辑</el-button>
<el-button v-if="edit" size="small" @click="handleReturn()">返回</el-button>
@@ -152,6 +152,10 @@ const cols = [
type: {
type: Number,
default: 3,
},
isShowEdit: {
type: Boolean,
default: true
}
},
data() {
@@ -174,8 +178,9 @@ const cols = [
},
time: {
immediate: true,
deep: true,
handler(newv, oldv) {
if (newv[0] !== '') {
if (newv[0] !== '' && newv[0] !== undefined) {
this.cols[0].label = this.date + '(' + newv[0] + '-' + newv[1] + ')'
} else {
this.cols[0].label = this.date

View File

@@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-if="product">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="月" prop="reportTime">
<el-date-picker v-model="reportTime" type="month" size="small" @change="changeTime" placeholder="选择月">
@@ -14,7 +14,7 @@
</el-form-item>
</el-form>
</div>
<inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all"
<inputTable :date="date" :data="tableData" :isShowEdit="product" :time="listQuery.reportTime" :sum="all" :key="listQuery.reportTime[0]"
:type="listQuery.reportType" @refreshDataList="getDataList" />
<!-- <pagination
:limit.sync="listQuery.pageSize"
@@ -33,6 +33,16 @@ import FileSaver from 'file-saver'
// import * as XLSX from 'xlsx'
export default {
components: { inputTable },
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
urlOptions: {
@@ -40,9 +50,6 @@ export default {
exportURL: exportGlasscExcel
},
listQuery: {
pageSize: 10,
pageNo: 1,
total: 0,
reportType: 4,
reportTime: []
},
@@ -101,6 +108,9 @@ export default {
const res = await getCorePLList()
this.proLineList = res.data;
this.dataListLoading = true;
if (this?.params) {
this.listQuery = {...this.params}
}
if (this.listQuery.reportTime.length == 0) {
this.$message({
message: '请选择时间',

View File

@@ -4,7 +4,7 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" /> -->
<div>
<div v-if="product">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="周" prop="reportTime">
<el-date-picker v-model="reportTime" type="week" size="small" @change="changeTime"
@@ -21,7 +21,7 @@
</el-form-item>
</el-form>
</div>
<inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all"
<inputTable :date="date" :data="tableData" :isShowEdit="product" :time="listQuery.reportTime" :sum="all" :key="listQuery.reportTime[0]"
:type="listQuery.reportType" @refreshDataList="getDataList" />
</div>
</template>
@@ -35,6 +35,16 @@ import FileSaver from 'file-saver'
// import * as XLSX from 'xlsx'
export default {
components: { inputTable },
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
urlOptions: {
@@ -42,9 +52,6 @@ export default {
exportURL: exportGlasscExcel
},
listQuery: {
pageSize: 10,
pageNo: 1,
total: 0,
reportType: 3,
reportTime: []
},
@@ -89,11 +96,12 @@ export default {
},
created () {
// this.getDict()
this.getCurrentWeekStartTimeAndEndTime()
},
mounted() {
// const day = new Date().getDay()
// console.log('周四', day)
this.getCurrentWeekStartTimeAndEndTime()
// this.getCurrentWeekStartTimeAndEndTime()
// this.changeTime(new Date(new Date().getTime() - day * 24 * 60 * 60 * 1000))
this.getDataList()
},
@@ -190,6 +198,10 @@ export default {
const res = await getCorePLList()
this.proLineList = res.data;
this.dataListLoading = true;
if (this?.params) {
this.listQuery = {...this.params}
// this.$set(this.listQuery, 'reportTime', this.params.reportTime)
}
if (this.listQuery.reportTime.length == 0) {
this.$message({
message: '请选择时间',

View File

@@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-if="product">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="年" prop="reportTime">
<el-date-picker v-model="reportTime" type="year" size="small" @change="changeTime"
@@ -16,7 +16,7 @@
</el-form-item>
</el-form>
</div>
<inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all"
<inputTable :date="date" :data="tableData" :isShowEdit="product" :time="listQuery.reportTime" :sum="all" :key="listQuery.reportTime[0]"
:type="listQuery.reportType" @refreshDataList="getDataList" />
</div>
</template>
@@ -30,6 +30,16 @@ import FileSaver from 'file-saver'
// import * as XLSX from 'xlsx'
export default {
components: { inputTable },
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
urlOptions: {
@@ -37,9 +47,9 @@ export default {
exportURL: exportGlasscExcel
},
listQuery: {
pageSize: 10,
pageNo: 1,
total: 0,
// pageSize: 10,
// pageNo: 1,
// total: 0,
reportType: 5,
reportTime: []
},
@@ -54,11 +64,10 @@ export default {
},
created() {
// this.getDict()
this.getCurrentYearFirst()
},
mounted () {
this.getCurrentYearFirst()
this.getDataList()
;
this.getDataList();
},
methods: {
getCurrentYearFirst() {
@@ -101,6 +110,9 @@ export default {
const res = await getCorePLList()
this.proLineList = res.data;
this.dataListLoading = true;
if (this?.params) {
this.listQuery = {...this.params}
}
if (this.listQuery.reportTime.length == 0) {
this.$message({
message: '请选择时间',

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-18 14:08:46
* @LastEditTime: 2024-04-23 15:23:05
* @LastEditTime: 2024-04-24 13:52:45
* @LastEditors: zhp
* @Description:
-->
@@ -25,18 +25,20 @@
</el-table> -->
<el-table class="baseTable" :span-method="objectSpanMethod" :data="tableData" style="width: 100%">
<el-table-column label="原料样式" align="right" width="150">
<el-table-column prop="className" label="时间" width="120">
<el-table-column align="center" prop="" label="配料日报" width="120">
<el-table-column label="原料样式" align="right" width="150">
<el-table-column prop="className" label="时间" width="120">
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column prop="putType" label="" width="180">
</el-table-column>
<!-- <el-table-column prop label="参考标准及评价方法">
<el-table-column align="center" prop="putType" label="" width="180">
</el-table-column>
<!-- <el-table-column prop label="参考标准及评价方法">
<el-table-column prop="activityName"></el-table-column>
<el-table-column prop="message"></el-table-column>
</el-table-column> -->
<el-table-column v-for="(item,index) in codeList " :prop="item" :label="item">
<!-- <template slot-scope="scope">
<el-table-column align="center" style="text-align: center;" v-for="(item,index) in codeList " :prop="item"
:label="item">
<!-- <template slot-scope="scope">
<el-col :span="12">
{{ codeList[index] }}
</el-col>
@@ -49,6 +51,7 @@
</el-col>
</el-row>
</template> -->
</el-table-column>
</el-table-column>
</el-table>
<!-- <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@@ -127,7 +130,7 @@ export default {
// deleteURL: deleteQualityHotMaterial,
// exportURL: exportFactoryExcel,
},
codeList: ['sj1', 'sj2', 'sj3', 'sj4', 'sj5', 'sj7', 'sj8', 'sj10', 'sj11', 'sj12', 'sj13', 'sj14' ],
codeList: ['sj1', 'sj2', 'sj3', 'sj4', 'sj5', 'sj7', 'sj8', 'sj10', 'sj11', 'sj12', 'sj13', 'sj14'],
tableData: [],
listQuery: {
startTime: undefined,
@@ -145,7 +148,7 @@ export default {
endPlaceholder: '结束时间',
param: 'checkTime',
defaultSelect: [Date.now() - 24 * 60 * 60 - 1000, Date.now()],
width: 250
width: 350
},
{
type:'button',
@@ -157,7 +160,7 @@ export default {
type:'button',
btnName: '导出',
name: 'export',
color: 'success',
color: 'primary',
plain: true
},
],
@@ -211,14 +214,22 @@ export default {
}
}
}
if (columnIndex === 1 || columnIndex === 2 || columnIndex === 3 || columnIndex === 4 || columnIndex === 5 || columnIndex === 6) {
if (rowIndex === 1 || rowIndex === 3 || rowIndex === 5 || rowIndex === 7 || rowIndex === 9 || rowIndex === 11) {
if (columnIndex === 1) {
if (rowIndex %2 == 1) {
return {
rowspan: 1,
colspan: 2
}
}
}
if (columnIndex === 4 || columnIndex === 5 || columnIndex === 6 || columnIndex === 7 || columnIndex === 8 || columnIndex === 9 || columnIndex === 10 || columnIndex === 11 || columnIndex === 12 || columnIndex === 13) {
if (rowIndex % 2 == 0) {
return {
rowspan: 2,
colspan: 1
}
}
}
},
handleExport() {
// 处理查询参数
@@ -244,7 +255,7 @@ export default {
//返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。
new Blob([wbout], { type: "application/octet-stream" }),
//设置导出文件名称
"原片各线堆垛表.xlsx"
"切割堆垛日报表.xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, wbout);
@@ -266,8 +277,8 @@ export default {
// 获取数据列表
getDataList() {
this.dataListLoading = true;
this.listQuery.startTime = '1713197388000';
this.listQuery.endTime = '1713254961000';
// this.listQuery.startTime = '1713197388000';
// this.listQuery.endTime = '1713254961000';
this.urlOptions.getDataListURL(this.listQuery).then(res => {
// console.log(res)
// console.log(res.data)
@@ -304,6 +315,7 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2': null,
putType: ''
},
{
@@ -338,6 +350,7 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2': null,
putType: ''
},
{
@@ -372,6 +385,7 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2': null,
putType: ''
},
{
@@ -406,6 +420,7 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2': null,
putType: ''
},
{
@@ -440,6 +455,7 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2':null,
putType: ''
},
{
@@ -474,10 +490,27 @@ export default {
'sj12': null,
'sj13': null,
'sj14': null,
'sj1+sj2': null,
putType: ''
},
]
res.data.forEach((ele) => {
if(ele.classType === 1 && ele.code == 'sj1+sj2') {
arr[1]['putType'] = ele.putNum
arr[3]['putType'] = ele.useNum
// arr[1]['sj2'] = ele.putNum
// arr[3]['sj2'] = ele.useNum
} else if (ele.classType === 2 && ele.code == 'sj1+sj2') {
arr[5]['putType'] = ele.putNum
arr[7]['putType'] = ele.useNum
// arr[5]['sj2'] = ele.putNum
// arr[7]['sj2'] = ele.useNum
} else if (ele.classType === 3 && ele.code == 'sj1+sj2') {
arr[9]['putType'] = ele.putNum
arr[11]['putType'] = ele.useNum
// arr[9]['sj2'] = ele.putNum
// arr[11]['sj2'] = ele.useNum
}
this.codeList.forEach((item) => {
if (ele.classType === 1 && ele.code == item) {
// console.log(arr[0][item])
@@ -494,6 +527,7 @@ export default {
})
// console.log(arr)
this.tableData = arr
console.log(this.tableData);
this.dataListLoading = false;
});
},
@@ -527,11 +561,13 @@ export default {
background: none;
}
::v-deep.el-table thead.is-group tr:first-of-type th:first-of-type {
/* ::v-deep.el-table thead.is-group tr:first-of-type th:first-of-type {
border-bottom: none;
} */
::v-deep.el-table thead.is-group tr:nth-child(2) th:nth-child(1) {
border-bottom: none;
}
::v-deep.el-table thead.is-group tr:first-of-type th:first-of-type:before {
::v-deep.el-table thead.is-group tr:nth-child(2) th:first-of-type:before {
content: '';
position: absolute;
width: 1px;
@@ -547,7 +583,7 @@ export default {
transform-origin: top;
}
::v-deep.el-table thead.is-group tr:last-of-type th:first-of-type:before {
::v-deep.el-table thead.is-group tr:nth-child(3) th:first-of-type:before {
content: '';
position: absolute;
width: 1px;

View File

@@ -1,29 +1,31 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2024-04-12 14:22:46
* @LastEditors: zhp
* @LastEditTime: 2024-04-23 16:58:06
* @LastEditors: DY
* @Description:
-->
<template>
<div class="app-container">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item label="月" prop="reportTime">
<el-date-picker v-model="reportTime" type="month" size="small" @change="changeTime" placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
<div v-if="product">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item label="月" prop="reportTime">
<el-date-picker v-model="reportTime" type="month" size="small" @change="changeTime" placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
</div>
<el-table id="exportTable" :data="list" style="width: 100%" :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
@@ -286,6 +288,16 @@ export default {
// DialogForm,
// },
// mixins: [basicPageMixin],
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
list: [],
@@ -653,16 +665,21 @@ export default {
}
},
async getDataList() {
if (this.monthValue.length > 0) {
console.log(this.monthValue)
this.dataForm.reportTime[0] = moment(this.monthValue[0]).format('YYYY-MM-DD') + ' 07:00:01'
// this.queryParams.startTime = this.monthValue[0]
this.dataForm.reportTime[1] = moment(this.monthValue[1]).format('YYYY-MM-DD') + ' 07:00:00'
this.timeTips = moment(this.monthValue[0]).format('YYYY-MM-DD') + ' - ' + moment(this.monthValue[1]).format('YYYY-MM-DD')
console.log(this.timeTips);
if (this?.params) {
this.dataForm = {...this.params}
this.timeTips = this.dataForm.reportTime[0] + ' - ' + this.dataForm.reportTime[1]
} else {
// this.$modal.msgError('月范围不能为空')
// return false
if (this.monthValue.length > 0) {
console.log(this.monthValue)
this.dataForm.reportTime[0] = moment(this.monthValue[0]).format('YYYY-MM-DD') + ' 07:00:01'
// this.queryParams.startTime = this.monthValue[0]
this.dataForm.reportTime[1] = moment(this.monthValue[1]).format('YYYY-MM-DD') + ' 07:00:00'
this.timeTips = moment(this.monthValue[0]).format('YYYY-MM-DD') + ' - ' + moment(this.monthValue[1]).format('YYYY-MM-DD')
console.log(this.timeTips);
} else {
// this.$modal.msgError('月范围不能为空')
// return false
}
}
if (this.dataForm.reportTime.length == 0) {
this.$message({

View File

@@ -1,31 +1,33 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2024-04-12 14:22:51
* @LastEditors: zhp
* @LastEditTime: 2024-04-23 16:58:12
* @LastEditors: DY
* @Description:
-->
<template>
<div class="app-container">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item>
<el-date-picker v-model="reportTime" type="week" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 4}" :format="'yyyy 第 WW 周' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择周">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
<div v-if="product">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item>
<el-date-picker v-model="reportTime" type="week" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 4}" :format="'yyyy 第 WW 周' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择周">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
</div>
<el-table id="exportTable" :data="list" style="width: 100%" :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
@@ -292,6 +294,16 @@ export default {
// DialogForm,
// },
// mixins: [basicPageMixin],
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
list: [],
@@ -622,11 +634,16 @@ export default {
return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
},
async getDataList() {
if (this.weekValue1 && this.weekValue2) {
this.dataForm.reportTime[0] = moment(this.weekValue1).day(0).format('YYYY-MM-DD') + ' 07:00:01'
// this.queryParams.startTime = this.monthValue[0]
this.dataForm.reportTime[1] = moment(this.weekValue2).day(6).format('YYYY-MM-DD') + ' 07:00:00'
if (this?.params) {
this.dataForm = {...this.params}
this.timeTips = this.dataForm.reportTime[0] + ' - ' + this.dataForm.reportTime[1]
} else {
if (this.weekValue1 && this.weekValue2) {
this.dataForm.reportTime[0] = moment(this.weekValue1).day(0).format('YYYY-MM-DD') + ' 07:00:01'
// this.queryParams.startTime = this.monthValue[0]
this.dataForm.reportTime[1] = moment(this.weekValue2).day(6).format('YYYY-MM-DD') + ' 07:00:00'
} else {
}
}
if (this.dataForm.reportTime.length == 0) {
this.$message({

View File

@@ -1,33 +1,35 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2024-04-12 14:22:54
* @LastEditors: zhp
* @LastEditTime: 2024-04-23 17:21:04
* @LastEditors: DY
* @Description:
-->
<template>
<div class="app-container">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item>
<el-date-picker v-model="reportTime" type="year" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 1}" :format="'yyyy 年' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择年">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
<!-- <el-button type="primary" icon="el-icon-edit-outline" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" type="success" @click="saveDataList()">保存</el-button> -->
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
<div v-if="product">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item>
<el-date-picker v-model="reportTime" type="year" size="small" @change="changeTime"
:picker-options="{firstDayOfWeek: 1}" :format="'yyyy 年' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
style="width: 350px" placeholder="选择年">
</el-date-picker>
</el-form-item>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" @click="getDataList()">
查询
</el-button>
<el-button v-if="this.$auth.hasPermi('base:report-auto-production:export')" type="primary" size="small" plain
@click="handleExport">导出</el-button>
<!-- <el-button type="primary" icon="el-icon-edit-outline" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" type="success" @click="saveDataList()">保存</el-button> -->
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button v-if="!isSave && this.$auth.hasPermi('base:report-auto-production:update')" :disabled="noData"
size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</el-button>
<el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button>
</el-row>
</div>
<el-table id="exportTable" :data="list" style="width: 100%" :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
@@ -294,6 +296,16 @@ export default {
// DialogForm,
// },
// mixins: [basicPageMixin],
props: {
product: {
type: Boolean,
default: true
},
params: {
type: Object,
default: () => {}
}
},
data() {
return {
list: [],
@@ -556,15 +568,20 @@ export default {
return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
},
async getDataList() {
this.timeTips = moment(this.dataForm.reportTime[0]).format('YYYY-MM-DD') + " - " + moment(this.dataForm.reportTime[1]).format('YYYY-MM-DD')
console.log(this.yearValue1);
if (this.yearValue1 && this.yearValue2) {
if (this.yearValue2 < this.yearValue1) {
this.$modal.msgError('结束时间不能早于开始时间')
return false
} else {
// this.dataForm.reportTime[0] = this.transformYear(this.yearValue1)
// this.dataForm.reportTime[1] = this.transformYear(this.yearValue2)
if (this?.params) {
this.dataForm = {...this.params}
this.timeTips = this.dataForm.reportTime[0] + ' - ' + this.dataForm.reportTime[1]
} else {
this.timeTips = moment(this.dataForm.reportTime[0]).format('YYYY-MM-DD') + " - " + moment(this.dataForm.reportTime[1]).format('YYYY-MM-DD')
console.log(this.yearValue1);
if (this.yearValue1 && this.yearValue2) {
if (this.yearValue2 < this.yearValue1) {
this.$modal.msgError('结束时间不能早于开始时间')
return false
} else {
// this.dataForm.reportTime[0] = this.transformYear(this.yearValue1)
// this.dataForm.reportTime[1] = this.transformYear(this.yearValue2)
}
}
}
if (this.dataForm.reportTime.length == 0) {

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-18 10:01:33
* @LastEditTime: 2024-04-23 15:15:22
* @LastEditTime: 2024-04-24 09:34:36
* @LastEditors: zhp
* @Description:
-->
@@ -41,6 +41,7 @@ import {
} from '@/api/report/qcReport';
import tableHeightMixin from '@/mixins/lb/tableHeightMixin';
import FileSaver from 'file-saver'
import { parseTime } from '../../../core/mixins/code-filter';
// import { getList, } from "@/api/base/qualityScrapType";
const tableProps = [
// {
@@ -70,7 +71,7 @@ const tableProps = [
},
{
prop: 'thickness',
label: '厚度'
label: '厚度mm'
},
{
prop: 'glassCode',
@@ -79,7 +80,9 @@ const tableProps = [
{
prop: 'stackingType',
label: '堆垛方式',
filter: (val) => val == 1 ? '集装架' : '堵头箱',
// filter: (val) =>
// val != null ? ['集装架', '堵头箱'][val] : '',
// filter: ((val) => { val == 1 ? '集装架' : '堵头箱' }),
},
{
prop: 'pieces',
@@ -95,16 +98,16 @@ const tableProps = [
},
{
prop: 'dusting',
label: '堆垛情况',
label: '喷粉情况',
},
{
prop: 'palletNumber',
label: '堆垛时间',
},
{
prop: 'endTime',
label: '集装架号',
},
{
prop: 'remark',
label: '备注',
}
]
}
];
@@ -318,7 +321,23 @@ export default {
// // console.log();
// // }
// })
this.tableData = response.data
this.tableData = response.data.map((ele) => {
return {
lineName: ele.lineName,
className: ele.className,
groupName: ele.groupName,
size: ele.size,
thickness: ele.thickness,
glassCode: ele.glassCode,
stackingType: ele.stackingType == 1 ? '集装架' : '堵头箱',
pieces: ele.pieces,
originCode: ele.originCode,
endTime: parseTime(ele.endTime),
dusting: ele.dusting,
palletNumber: ele.palletNumber,
remark:ele.remark
}
})
// let obj = {}
// response.data.reduce((prev, curr) => {
// console.log(prev, curr)
@@ -405,12 +424,12 @@ export default {
},
};
</script>
<style>
.baseTable .el-table__body tr.current-row>td.el-table__cell {
<style scoped>
::v-deep.baseTable .el-table__body tr.current-row>td.el-table__cell {
background-color: #EAF1FC;
}
.baseTable .el-table .el-table__cell {
::v-deep .baseTable .el-table .el-table__cell {
padding: 0;
height: 35px;
}

View File

@@ -1,14 +1,14 @@
<!--
* @Author: zhp
* @Date: 2024-04-18 14:08:46
* @LastEditTime: 2024-04-23 15:08:44
* @LastEditTime: 2024-04-24 14:41:01
* @LastEditors: zhp
* @Description:
-->
<template>
<div class="app-container">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="" prop="startTime">
<el-form-item label="时间" prop="startTime">
<el-date-picker v-model="listQuery.startTime" value-format="timestamp" type="date" placeholder="选择日期">
</el-date-picker>
</el-form-item>
@@ -61,7 +61,12 @@
</el-table-column>
<div slot="append" v-if="this.tableData.length != 0" style="text-align: center">
<!--在此处添加你想要插入在表格最后一行的内容-->
<el-col :span="8">
人工监测人员
</el-col>
<el-col :span="8">
<!-- {{ }} -->
</el-col>
<el-col :span="8">
合计
</el-col>
@@ -205,7 +210,7 @@ export default {
prop: 'num11'
},
{
label: '合计',
label: '不良合计',
prop: 'sum'
}
],
@@ -234,7 +239,7 @@ export default {
type: 'button',
btnName: '导出',
name: 'export',
color: 'success',
color: 'primary',
plain: true
},
],
@@ -305,8 +310,9 @@ export default {
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
},
handleGetClass(e) {
this.listQuery.startTime = new Date(new Date().setHours(0, 7, 0, 0)).getTime()
let str = this.listQuery.startTime
// console.log(str);
this.listQuery.startTime = new Date(new Date(str).setHours(0, 7, 0, 0)).getTime()
// console.log(startTime1)
this.codeList = []
if (e === '早班查询') {
@@ -360,7 +366,7 @@ export default {
prop: 'num11'
},
{
label: '合计',
label: '不良合计',
prop: 'sum'
}
]
@@ -369,8 +375,9 @@ export default {
])
this.getDataList()
} else {
// this.codeList = []
this.listQuery.startTime = new Date(new Date().setHours(1, 9, 0, 0)).getTime()
let str = this.listQuery.startTime
// console.log(str);
this.listQuery.startTime = new Date(new Date(str).setHours(0, 7, 0, 0)).getTime()
let arr = [
{
label: '19:00',
@@ -422,7 +429,7 @@ export default {
prop: 'num11'
},
{
label: '合计',
label: '不良合计',
prop: 'sum'
}
]
@@ -477,6 +484,15 @@ export default {
// },
// 获取数据列表
getDataList() {
if (this.radio === '晚班查询') {
let str = this.listQuery.startTime
// console.log(str);
this.listQuery.startTime = new Date(new Date(str).setHours(1, 9, 0, 0)).getTime()
} else {
let str = this.listQuery.startTime
// console.log(str);
this.listQuery.startTime = new Date(new Date(str).setHours(0, 7, 0, 0)).getTime()
}
this.dataListLoading = true;
// this.listQuery.startTime = '1713197388000';
// this.listQuery.endTime = '1713254961000';

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-18 10:01:33
* @LastEditTime: 2024-04-23 15:15:45
* @LastEditTime: 2024-04-24 09:56:20
* @LastEditors: zhp
* @Description:
-->
@@ -11,9 +11,10 @@
<el-table :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
}" class="baseTable" :max-height="tableH" id="exportTable" :data="tableData" style="width: 100%"
}" class="baseTable" border :max-height="tableH" id="exportTable" :data="tableData" style="width: 100%"
:span-method="objectSpanMethod">
<el-table-column v-for="item in tableProps" :prop="item.prop" :label="item.label" align="center">
<el-table-column :width="item.width" v-for="item in tableProps" :prop="item.prop" :label="item.label"
align="center">
</el-table-column>
</el-table>
<!-- <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@@ -39,6 +40,7 @@ import {
getOriginalLineDataList
} from '@/api/report/qcReport';
import tableHeightMixin from '@/mixins/lb/tableHeightMixin';
import { width } from '@antv/x6-common/lib/dom/position';
import FileSaver from 'file-saver'
// import { getList, } from "@/api/base/qualityScrapType";
const tableProps = [
@@ -49,11 +51,13 @@ const tableProps = [
// },
{
prop: 'lineName',
label: '产线'
label: '产线',
width:'100'
},
{
prop: 'equipmentName',
label: ''
label: '',
width: '200'
},
{
prop: 'num',
@@ -122,7 +126,7 @@ export default {
type: 'datePicker',
label: '时间段',
dateType: 'daterange',
format: 'yyyy-MM-dd HH:mm:ss',
// format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "timestamp",
rangeSeparator: '-',
startPlaceholder: '开始时间',
@@ -154,7 +158,7 @@ export default {
type:'button',
btnName: '导出',
name: 'export',
color: 'success',
color: 'primary',
plain: true
},
],

View File

@@ -1,19 +1,19 @@
<!--
* @Author: zhp
* @Date: 2024-04-18 15:07:53
* @LastEditTime: 2024-04-23 15:15:52
* @LastEditTime: 2024-04-24 09:58:07
* @LastEditors: zhp
* @Description:
-->
<template>
<div class="app-container">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<el-table show-summary :header-cell-style="{
<el-table :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
}" class="baseTable" :max-height="tableH" id="exportTable" :data="tableData" style="width: 100%"
:span-method="objectSpanMethod">
<el-table-column v-for="item in tableProps" :prop="item.prop" :label="item.label" align="center">
}" class="baseTable" border id="exportTable" :data="tableData" style="width: 100%" :span-method="objectSpanMethod">
<el-table-column :width="item.width" v-for="item in tableProps" :prop="item.prop" :label="item.label"
align="center">
</el-table-column>
</el-table>
<!-- <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@@ -49,11 +49,13 @@ const tableProps = [
// },
{
prop: 'lineName',
label: '产线'
label: '产线',
width:'150',
},
{
prop: 'dataType',
label: ''
label: '',
width: '150',
},
{
prop: 'type',
@@ -69,7 +71,7 @@ const tableProps = [
},
{
prop: 'rate',
label: '占比',
label: '占比%',
// filter: (val) => val == false ? '不合格' : '合格',
},
// {
@@ -121,7 +123,7 @@ export default {
type: 'datePicker',
label: '时间段',
dateType: 'daterange',
format: 'yyyy-MM-dd HH:mm:ss',
// format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "timestamp",
rangeSeparator: '-',
startPlaceholder: '开始时间',
@@ -153,7 +155,7 @@ export default {
type:'button',
btnName: '导出',
name: 'export',
color: 'success',
color: 'primary',
plain: true
},
],
@@ -179,34 +181,6 @@ export default {
console.log(res)
this.formConfig[1].selectOptions = res.data
},
getSummaries(param) {
console.log(columns)
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' ';
} else {
sums[index] = '-';
}
});
return sums;
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
let spanTwoArr = [], concatTwo = 0;
@@ -276,7 +250,7 @@ export default {
//返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。
new Blob([wbout], { type: "application/octet-stream" }),
//设置导出文件名称
"原片各线堆垛表.xlsx"
"原片各线优化切割堆垛表.xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, wbout);
@@ -319,7 +293,7 @@ export default {
type: ele.type,
pieces: ele.pieces,
area: ele.area,
rate: ele.rate
rate: (ele.rate * 100).toFixed(2)
// useNum: ele.useNum,
// num: ele.num,
// size: typeof (ele.size)
@@ -412,13 +386,14 @@ export default {
},
};
</script>
<style>
.baseTable .el-table__body tr.current-row>td.el-table__cell {
<style scoped>
::v-deep.baseTable .el-table__body tr.current-row>td.el-table__cell {
background-color: #EAF1FC;
}
.baseTable .el-table .el-table__cell {
::v-deep .baseTable .el-table .el-table__cell {
padding: 0;
height: 35px;
}
</style>