|
|
|
@ -12,14 +12,13 @@ |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> --> |
|
|
|
</el-col> --> |
|
|
|
<el-col :span="6" > |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="车间订单号:" label-width="120px"> |
|
|
|
<el-form-item label="车间订单号:" label-width="120px"> |
|
|
|
<el-input v-model="formLabelAlign.woCode" placeholder="请输入"></el-input> |
|
|
|
<el-input v-model="formLabelAlign.woCode" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="班组:"> |
|
|
|
<el-form-item label="班组:"> |
|
|
|
<!-- <el-input v-model="formLabelAlign.teamame" placeholder="请输入"></el-input> --> |
|
|
|
|
|
|
|
<el-select v-model="formLabelAlign.teamName" filterable placeholder="请选择"> |
|
|
|
<el-select v-model="formLabelAlign.teamName" filterable placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="(item, index) in selectTeamOptions" |
|
|
|
v-for="(item, index) in selectTeamOptions" |
|
|
|
@ -28,13 +27,11 @@ |
|
|
|
:key="index" |
|
|
|
:key="index" |
|
|
|
> |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
<!-- <el-option label="班组2" value="2"> </el-option> --> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" > |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="设备:"> |
|
|
|
<el-form-item label="设备:"> |
|
|
|
<!-- <el-input v-model="formLabelAlign.equipName" placeholder="请输入"></el-input> --> |
|
|
|
|
|
|
|
<el-select v-model="formLabelAlign.equipName" filterable placeholder="请选择"> |
|
|
|
<el-select v-model="formLabelAlign.equipName" filterable placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="(item, index) in selectEquipOptions" |
|
|
|
v-for="(item, index) in selectEquipOptions" |
|
|
|
@ -46,7 +43,7 @@ |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="时间:"> |
|
|
|
<el-form-item label="时间:"> |
|
|
|
<el-date-picker |
|
|
|
<el-date-picker |
|
|
|
v-model="formLabelAlign.startTime" |
|
|
|
v-model="formLabelAlign.startTime" |
|
|
|
@ -57,7 +54,7 @@ |
|
|
|
</el-date-picker> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button type="primary" icon="el-icon-search" @click="handleSubmit"> 搜索 </el-button> |
|
|
|
<el-button type="primary" icon="el-icon-search" @click="handleSubmit"> 搜索 </el-button> |
|
|
|
<el-button icon="el-icon-delete" @click="handleSubmit"> 清空 </el-button> |
|
|
|
<el-button icon="el-icon-delete" @click="handleSubmit"> 清空 </el-button> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
@ -87,45 +84,32 @@ |
|
|
|
<!-- 甘特图主体 --> |
|
|
|
<!-- 甘特图主体 --> |
|
|
|
<div class="gantt-wrapper"> |
|
|
|
<div class="gantt-wrapper"> |
|
|
|
<!-- 左侧设备列表 --> |
|
|
|
<!-- 左侧设备列表 --> |
|
|
|
<div class="device-list"> |
|
|
|
<div class="info-list"> |
|
|
|
<div |
|
|
|
<div class="info-item-title"> |
|
|
|
v-if="searchType == '1'" |
|
|
|
<div class="info-title-cell">车间订单号</div> |
|
|
|
class="device-item device-item-title" |
|
|
|
<div class="info-title-cell">零件号</div> |
|
|
|
:style="{ height: '36px' }" |
|
|
|
<div class="info-title-cell">批次号</div> |
|
|
|
> |
|
|
|
<div class="info-title-cell">数量</div> |
|
|
|
车间订单号 |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
v-if="searchType == '2'" |
|
|
|
|
|
|
|
class="device-item device-item-title" |
|
|
|
|
|
|
|
:style="{ height: '36px' }" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
班组 |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
v-if="searchType == '3'" |
|
|
|
|
|
|
|
class="device-item device-item-title" |
|
|
|
|
|
|
|
:style="{ height: '36px' }" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
设备 |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div |
|
|
|
<div |
|
|
|
v-for="(device, index) in devices" |
|
|
|
v-for="(order, index) in currentPageOrders" |
|
|
|
:key="index" |
|
|
|
:key="index" |
|
|
|
:style="{ |
|
|
|
:style="{ |
|
|
|
height: getRowHeight(device) + 'px', |
|
|
|
height: getRowHeight(order.woCode) + 'px', |
|
|
|
lineHeight: getRowHeight(device) + 'px', |
|
|
|
|
|
|
|
textAlign: 'center', |
|
|
|
|
|
|
|
borderBottom: '1px solid #ccc', |
|
|
|
borderBottom: '1px solid #ccc', |
|
|
|
}" |
|
|
|
}" |
|
|
|
:title="device" |
|
|
|
|
|
|
|
> |
|
|
|
> |
|
|
|
{{ device }} |
|
|
|
<div class="info-item"> |
|
|
|
|
|
|
|
<div class="info-cell">{{ order }}</div> |
|
|
|
|
|
|
|
<div class="info-cell">{{ order.partCode }}</div> |
|
|
|
|
|
|
|
<div class="info-cell">{{ order.batchNo }}</div> |
|
|
|
|
|
|
|
<div class="info-cell">{{ order.makeQty }}</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 右侧时间轴 (时间在上,刻度线在下) @wheel.prevent="handleWheel"--> |
|
|
|
<!-- 右侧时间轴 (时间在上,刻度线在下) @wheel.prevent="handleWheel"--> |
|
|
|
<div class="timeline-container" > |
|
|
|
<div class="timeline-container"> |
|
|
|
<!-- 图表X轴区域(时间在上,刻度线在下) --> |
|
|
|
<!-- 图表X轴区域(时间在上,刻度线在下) --> |
|
|
|
<div class="chart-axis"> |
|
|
|
<div class="chart-axis"> |
|
|
|
<!-- 时间标签 --> |
|
|
|
<!-- 时间标签 --> |
|
|
|
@ -230,7 +214,18 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 分页控件 --> |
|
|
|
|
|
|
|
<div class="pagination-container"> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
|
|
:current-page="currentPage" |
|
|
|
|
|
|
|
:page-sizes="[10, 20, 50]" |
|
|
|
|
|
|
|
:page-size="pageSize" |
|
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
|
|
|
:total="totalOrders" |
|
|
|
|
|
|
|
></el-pagination> |
|
|
|
|
|
|
|
</div> |
|
|
|
<!-- 悬浮提示框 --> |
|
|
|
<!-- 悬浮提示框 --> |
|
|
|
<div |
|
|
|
<div |
|
|
|
v-if="tooltipVisible" |
|
|
|
v-if="tooltipVisible" |
|
|
|
@ -328,15 +323,15 @@ export default { |
|
|
|
return { |
|
|
|
return { |
|
|
|
searchType: '', |
|
|
|
searchType: '', |
|
|
|
formLabelAlign: { |
|
|
|
formLabelAlign: { |
|
|
|
// type: '1', //维度类型 |
|
|
|
type: '1', //维度类型 |
|
|
|
startTime: null, //时间 |
|
|
|
startTime: null, //时间 |
|
|
|
teamName: '', //班组 |
|
|
|
teamName: '', //班组 |
|
|
|
equipName: '', //设备 |
|
|
|
equipName: '', //设备 |
|
|
|
woCode: '', //车间订单号 |
|
|
|
woCode: '', //车间订单号 |
|
|
|
}, |
|
|
|
}, |
|
|
|
rowHeight: 36, |
|
|
|
rowHeight: 36, |
|
|
|
zoomLevel: 2, // 缩放级别 (1-4) |
|
|
|
zoomLevel: 4, // 缩放级别 (1-4) |
|
|
|
minZoom: 4, |
|
|
|
minZoom: 1, |
|
|
|
maxZoom: 4, |
|
|
|
maxZoom: 4, |
|
|
|
|
|
|
|
|
|
|
|
// 设备列表 |
|
|
|
// 设备列表 |
|
|
|
@ -379,13 +374,27 @@ export default { |
|
|
|
this.formLabelAlign.startTime = new Date().toISOString().substr(0, 10); |
|
|
|
this.formLabelAlign.startTime = new Date().toISOString().substr(0, 10); |
|
|
|
this.getData(); |
|
|
|
this.getData(); |
|
|
|
this.getSelectTeam(); |
|
|
|
this.getSelectTeam(); |
|
|
|
this.getSelectEquip() |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
typeChange(){ |
|
|
|
// 分页相关方法 |
|
|
|
this.formLabelAlign.teamName = '' |
|
|
|
handleSizeChange(val) { |
|
|
|
this.formLabelAlign.equipName = '' |
|
|
|
this.pageSize = val; |
|
|
|
this.formLabelAlign.woCode = '' |
|
|
|
this.currentPage = 1; |
|
|
|
|
|
|
|
this.updateCurrentPageOrders(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
handleCurrentChange(val) { |
|
|
|
|
|
|
|
this.currentPage = val; |
|
|
|
|
|
|
|
this.updateCurrentPageOrders(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
updateCurrentPageOrders() { |
|
|
|
|
|
|
|
const start = (this.currentPage - 1) * this.pageSize; |
|
|
|
|
|
|
|
const end = start + this.pageSize; |
|
|
|
|
|
|
|
this.currentPageOrders = this.allOrders.slice(start, end); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
typeChange() { |
|
|
|
|
|
|
|
this.formLabelAlign.teamName = ''; |
|
|
|
|
|
|
|
this.formLabelAlign.equipName = ''; |
|
|
|
|
|
|
|
this.formLabelAlign.woCode = ''; |
|
|
|
}, |
|
|
|
}, |
|
|
|
getData() { |
|
|
|
getData() { |
|
|
|
getData(this.formLabelAlign).then(res => { |
|
|
|
getData(this.formLabelAlign).then(res => { |
|
|
|
@ -1007,4 +1016,43 @@ export default { |
|
|
|
background-color: #284c89 !important; |
|
|
|
background-color: #284c89 !important; |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 左侧信息列表样式 */ |
|
|
|
|
|
|
|
.info-list { |
|
|
|
|
|
|
|
width: 450px; |
|
|
|
|
|
|
|
background-color: #f8f9fa; |
|
|
|
|
|
|
|
border-right: 1px solid #eee; |
|
|
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.info-item-title { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
background: #284c89; |
|
|
|
|
|
|
|
color: #fff; |
|
|
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
|
|
height: 36px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.info-title-cell { |
|
|
|
|
|
|
|
flex: 1; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 36px; |
|
|
|
|
|
|
|
border-right: 1px solid #eee; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.info-item { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
height: 100%; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.info-cell { |
|
|
|
|
|
|
|
flex: 1; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
padding: 5px; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
border-right: 1px solid #eee; |
|
|
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
|
|
} |
|
|
|
</style> |
|
|
|
</style> |
|
|
|
|