|
|
|
<template>
|
|
|
|
<el-container>
|
|
|
|
<el-header style="width: 100%; height: 35px;font-size: 12px">
|
|
|
|
<el-form :inline="true" label-width="65px" label-position="left">
|
|
|
|
<el-row>
|
|
|
|
<el-col :span="4">
|
|
|
|
<el-form-item label="月份:">
|
|
|
|
<el-date-picker v-model="queryParam.beginTime" value-format="yyyy/MM" type="month"/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-col>
|
|
|
|
<el-col :span="20" style="text-align: right">
|
|
|
|
<el-button type="success" @click="initList">查询</el-button>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</el-form>
|
|
|
|
</el-header>
|
|
|
|
<el-container style="padding-top: 3px">
|
|
|
|
<el-main>
|
|
|
|
<div class="mytable">
|
|
|
|
<vxe-grid
|
|
|
|
id="id"
|
|
|
|
ref="xGrid"
|
|
|
|
border
|
|
|
|
resizable
|
|
|
|
keep-source
|
|
|
|
:align="'center'"
|
|
|
|
:height="height"
|
|
|
|
:auto-resize="true"
|
|
|
|
:columns="tableColumn"
|
|
|
|
:data="list"
|
|
|
|
:custom-config="{ storage: true }"
|
|
|
|
highlight-current-row
|
|
|
|
highlight-hover-row
|
|
|
|
show-overflow
|
|
|
|
:span-method="rowspanMethod"
|
|
|
|
:scroll-y="{enabled: true}"
|
|
|
|
>
|
|
|
|
<template #default="{row,column}">
|
|
|
|
<el-progress
|
|
|
|
type="line"
|
|
|
|
define-back-color="white"
|
|
|
|
:show-text="false"
|
|
|
|
:stroke-width="15"
|
|
|
|
:percentage="row[column.property]"
|
|
|
|
:color="row.gx==='计划'?'blue':'green'"
|
|
|
|
></el-progress>
|
|
|
|
</template>
|
|
|
|
</vxe-grid>
|
|
|
|
</div>
|
|
|
|
</el-main>
|
|
|
|
</el-container>
|
|
|
|
</el-container>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import {mapGetters} from 'vuex'
|
|
|
|
import XEUtils from 'xe-utils'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'Gjtj',
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
list: [],
|
|
|
|
queryParam: {
|
|
|
|
beginTime: '',
|
|
|
|
},
|
|
|
|
days: [],
|
|
|
|
sunDays: [],
|
|
|
|
height: '800px',
|
|
|
|
tableColumn: [
|
|
|
|
{field: 'dcCh', title: '船号', minWidth: "70",},
|
|
|
|
{field: 'gx', title: '工序', minWidth: "70",},
|
|
|
|
],
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
...mapGetters(['name', 'bmbm'])
|
|
|
|
},
|
|
|
|
created() {
|
|
|
|
this.queryParam.beginTime = new Date();
|
|
|
|
window.addEventListener('resize', this.getHeight)
|
|
|
|
this.getHeight()
|
|
|
|
// this.initTable()
|
|
|
|
this.initList()
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
initList() {
|
|
|
|
this.initTable()
|
|
|
|
const list = []
|
|
|
|
const gx = ['计划', '技术准备', '上料', '抛丸', '理料', '划线', '切割', '曲面', '坡口', '打磨', '预配盘', '配盘']
|
|
|
|
for (const item of gx) {
|
|
|
|
const column = {dcCh: 'TK110-4', gx: item}
|
|
|
|
this.days.forEach(day => {
|
|
|
|
if (!this.sunDays.includes(day)) {
|
|
|
|
column[day] = XEUtils.random(0, 100)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
list.push(column)
|
|
|
|
}
|
|
|
|
this.list = list
|
|
|
|
},
|
|
|
|
initTable() {
|
|
|
|
const date = this.queryParam.beginTime||new Date();
|
|
|
|
const days = XEUtils.getDayOfMonth(date);
|
|
|
|
const _columns=[
|
|
|
|
{field: 'dcCh', title: '船号', minWidth: "70",},
|
|
|
|
{field: 'gx', title: '工序', minWidth: "70",},
|
|
|
|
]
|
|
|
|
for (let i = 1; i <= days; i++) {
|
|
|
|
const _day = XEUtils.getWhatMonth(date, 0, i);
|
|
|
|
const day = XEUtils.toDateString(_day, 'yyyy/MM/dd')
|
|
|
|
_columns.push({
|
|
|
|
field: day, title: day, width: "150",
|
|
|
|
slots: {
|
|
|
|
// 使用插槽模板渲染
|
|
|
|
default: 'default',
|
|
|
|
}
|
|
|
|
// cellRender: {
|
|
|
|
// name: 'bar',
|
|
|
|
// props: {
|
|
|
|
// bar: {
|
|
|
|
// max: 100
|
|
|
|
// },
|
|
|
|
// colors: ['blue', 'green'],
|
|
|
|
// label: {
|
|
|
|
// formatter: '{value}'
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
})
|
|
|
|
this.days.push(day)
|
|
|
|
const _sunday6 = XEUtils.getWhatWeek(day, 0, 6, 0)
|
|
|
|
const sunday6 = XEUtils.toDateString(_sunday6, 'yyyy/MM/dd');
|
|
|
|
if (!this.sunDays.includes(sunday6)) {
|
|
|
|
this.sunDays.push(sunday6)
|
|
|
|
}
|
|
|
|
const _sunday7 = XEUtils.getWhatWeek(day, 0, 7, 0)
|
|
|
|
const sunday7 = XEUtils.toDateString(_sunday7, 'yyyy/MM/dd');
|
|
|
|
if (!this.sunDays.includes(sunday7)) {
|
|
|
|
this.sunDays.push(sunday7)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.tableColumn=_columns
|
|
|
|
},
|
|
|
|
rowspanMethod({row, _rowIndex, column, visibleData}) {
|
|
|
|
let fields = ["dcCh"];
|
|
|
|
const cellValue = row[column.property];
|
|
|
|
if (cellValue && fields.includes(column.property)) {
|
|
|
|
const prevRow = visibleData[_rowIndex - 1];
|
|
|
|
let nextRow = visibleData[_rowIndex + 1];
|
|
|
|
if (prevRow && prevRow[column.property] === cellValue) {
|
|
|
|
return {rowspan: 0, colspan: 0};
|
|
|
|
} else {
|
|
|
|
let countRowspan = 1;
|
|
|
|
while (nextRow && nextRow[column.property] === cellValue) {
|
|
|
|
nextRow = visibleData[++countRowspan + _rowIndex];
|
|
|
|
}
|
|
|
|
if (countRowspan > 1) {
|
|
|
|
return {rowspan: countRowspan, colspan: 1};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getHeight() {
|
|
|
|
this.height = window.innerHeight - 122
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
|
|
::v-deep .el-progress__text{
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-header {
|
|
|
|
margin: 0;
|
|
|
|
padding: 5px;
|
|
|
|
height: auto;
|
|
|
|
|
|
|
|
.el-input {
|
|
|
|
width: 140px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-select {
|
|
|
|
width: 140px;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-container {
|
|
|
|
padding: 0;
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-main {
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-col {
|
|
|
|
padding: 0;
|
|
|
|
height: 32px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-aside {
|
|
|
|
background: #fff;
|
|
|
|
padding: 0
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-container {
|
|
|
|
padding: 0
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-row {
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-row:last-child {
|
|
|
|
margin-bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tableStyles {
|
|
|
|
background: #0a76a4;
|
|
|
|
}
|
|
|
|
|
|
|
|
.my-dropdown {
|
|
|
|
width: 400px;
|
|
|
|
height: 400px;
|
|
|
|
background-color: #fff;
|
|
|
|
border: 1px solid #dcdfe6;
|
|
|
|
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.mytable1 {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.borderClass {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.vxe-input {
|
|
|
|
display: inline-block !important;
|
|
|
|
position: relative !important;
|
|
|
|
width: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-input {
|
|
|
|
display: inline-block !important;
|
|
|
|
position: relative !important;
|
|
|
|
width: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.keyword-lighten {
|
|
|
|
color: #000;
|
|
|
|
background-color: #FFFF00;
|
|
|
|
}
|
|
|
|
|
|
|
|
.vxe-textarea--inner {
|
|
|
|
line-height: inherit;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-form-item__label-wrap {
|
|
|
|
margin-left: 0px !important;
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
.fontClass {
|
|
|
|
font-size: 12px;
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|