|
|
|
@ -22,13 +22,14 @@
|
|
|
|
|
<!-- <option :key="index" :value="x.seriesName" v-for="(x, index) in ceshib">{{ x.seriesName }}</option> -->
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
<!--
|
|
|
|
|
<div class="selectborder selectborder1">
|
|
|
|
|
<select v-model="selectxtclasses" class="select1" @change="selectline2(selectxtclasses)">
|
|
|
|
|
<option :key="index" :value="x.ymdType" v-for="(x, index) in dictDatatype">
|
|
|
|
|
{{ x.ymdTypeName }}
|
|
|
|
|
</option>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>-->
|
|
|
|
|
</div>
|
|
|
|
|
<div class="timebox">
|
|
|
|
|
<div class="time">
|
|
|
|
@ -41,6 +42,26 @@
|
|
|
|
|
<div class="item-table item-table1">
|
|
|
|
|
<div class="titlebox" style="margin-bottom: 14px;">
|
|
|
|
|
<div class="titlename">订单异常信息</div>
|
|
|
|
|
<el-date-picker
|
|
|
|
|
style="
|
|
|
|
|
position: absolute;
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
background-color: rgb(20, 41, 69);
|
|
|
|
|
color: rgb(255, 255, 255);
|
|
|
|
|
left: 370px;
|
|
|
|
|
width: 250px;
|
|
|
|
|
top: 68px;
|
|
|
|
|
font-size: 5px;
|
|
|
|
|
"
|
|
|
|
|
v-model="ymdArray1"
|
|
|
|
|
type="daterange"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
@change="getdatalist"
|
|
|
|
|
>
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="table-tbody">
|
|
|
|
|
<div class="item">
|
|
|
|
@ -96,6 +117,27 @@
|
|
|
|
|
<div class="item-table item-table1">
|
|
|
|
|
<div class="titlebox" style="margin-bottom: 14px;">
|
|
|
|
|
<div class="titlename">异常原因分布</div>
|
|
|
|
|
<!--
|
|
|
|
|
<el-date-picker
|
|
|
|
|
style="
|
|
|
|
|
position: absolute;
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
background-color: rgb(20, 41, 69);
|
|
|
|
|
color: rgb(255, 255, 255);
|
|
|
|
|
right: 688px;
|
|
|
|
|
width: 227px;
|
|
|
|
|
top: 165px;
|
|
|
|
|
font-size: 5px;
|
|
|
|
|
"
|
|
|
|
|
v-model="ymdArray2"
|
|
|
|
|
type="daterange"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
@change="noOkTimeChange"
|
|
|
|
|
>
|
|
|
|
|
</el-date-picker>-->
|
|
|
|
|
</div>
|
|
|
|
|
<div id="echart2" style="margin: auto; width: 610px; height:296.4px;"></div>
|
|
|
|
|
</div>
|
|
|
|
@ -115,42 +157,70 @@
|
|
|
|
|
<div class="item-table item-table1">
|
|
|
|
|
<div class="titlebox2" style="margin-bottom: 14px;">
|
|
|
|
|
<div class="titlename">订单异常明细</div>
|
|
|
|
|
<!--<el-date-picker
|
|
|
|
|
style="
|
|
|
|
|
position: absolute;
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
background-color: rgb(20, 41, 69);
|
|
|
|
|
color: rgb(255, 255, 255);
|
|
|
|
|
right: 680px;
|
|
|
|
|
width: 227px;
|
|
|
|
|
top: 600px;
|
|
|
|
|
font-size: 5px;
|
|
|
|
|
"
|
|
|
|
|
v-model="ymdArray4"
|
|
|
|
|
type="daterange"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
@change="noOkRadioTimeChange"
|
|
|
|
|
>
|
|
|
|
|
</el-date-picker>-->
|
|
|
|
|
</div>
|
|
|
|
|
<table class="table-thead" border="0" cellpadding="0" cellspacing="0">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr style="height: 44px;">
|
|
|
|
|
<td style="width: 8%;">序号</td>
|
|
|
|
|
<!-- <td style="width: 8%;">异常单号</td> -->
|
|
|
|
|
<td style="width: 8%;">物料名称</td>
|
|
|
|
|
<td style="width: 8%;">订单号</td>
|
|
|
|
|
<td style="width: 12%;">物料名称</td>
|
|
|
|
|
<td style="width: 11%;">订单号</td>
|
|
|
|
|
<td style="width: 8%;">来料时间</td>
|
|
|
|
|
<td style="width: 8%;">质检确认时间</td>
|
|
|
|
|
<td style="width: 8%;">质检数量</td>
|
|
|
|
|
<td style="width: 6%;">质检单位</td>
|
|
|
|
|
<td style="width: 8%;">检验人</td>
|
|
|
|
|
<td style="width: 8%;">质检不合格</td>
|
|
|
|
|
<td style="width: 7%;">质检不合格</td>
|
|
|
|
|
<td style="width: 8%;">不良描述</td>
|
|
|
|
|
<td style="width: 7%;">不良类型</td>
|
|
|
|
|
<td style="width: 8%;">不良数量</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
</table>
|
|
|
|
|
<div class="table-tbody">
|
|
|
|
|
<!-- <vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll"> -->
|
|
|
|
|
<vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll">
|
|
|
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
|
|
|
|
|
v-for="(n, index) in orderdetail">
|
|
|
|
|
<td style="width: 8%;">{{ index + 1 }}</td>
|
|
|
|
|
<!-- <td style="width: 8%;">{{ n.orderNo }}</td> -->
|
|
|
|
|
<td style="width: 8%;">{{ n.materialName }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.orderNo }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.checkTime }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.materialName }}</td>
|
|
|
|
|
<td style="width: 11%;">{{ n.orderNo }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.incomeTime }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.checkTime }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.quality }}</td>
|
|
|
|
|
<td style="width: 6%;">{{ n.unit }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.checkManName }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.checkResult }}</td>
|
|
|
|
|
<td style="width: 7%;">{{ n.checkResult }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.className }}</td>
|
|
|
|
|
<td style="width: 7%;">{{ n.defectSubclass }}</td>
|
|
|
|
|
<td style="width: 8%;">{{ n.noOkQuality }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<!-- </vue-seamless-scroll> -->
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@ -244,9 +314,21 @@ export default {
|
|
|
|
|
],
|
|
|
|
|
RefreshTime:null,
|
|
|
|
|
dictDatatype:[],
|
|
|
|
|
classOption: {
|
|
|
|
|
direction: 1,
|
|
|
|
|
hoverstop: true,
|
|
|
|
|
step: 0.1,
|
|
|
|
|
openNatch: true,
|
|
|
|
|
limitMoveNum: 7,
|
|
|
|
|
},
|
|
|
|
|
ymdArray1:[],
|
|
|
|
|
ymdStart1: null,
|
|
|
|
|
ymdEnd1: null
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
created() { },
|
|
|
|
|
created() {
|
|
|
|
|
this.getDate();
|
|
|
|
|
},
|
|
|
|
|
destroyed() {
|
|
|
|
|
clearInterval(this.time1);
|
|
|
|
|
this.time1 = null;
|
|
|
|
@ -260,6 +342,24 @@ export default {
|
|
|
|
|
this.gettime();
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
/**获取默认查询时间段**/
|
|
|
|
|
getDate() {
|
|
|
|
|
let start = this.Fungetdate(0);
|
|
|
|
|
let end = this.Fungetdate(1);
|
|
|
|
|
this.ymdArray1.push(start, end);
|
|
|
|
|
|
|
|
|
|
this.ymdStart1 = moment(this.ymdArray1[0]).format("YYYY-MM-DD");
|
|
|
|
|
this.ymdEnd1 = moment(this.ymdArray1[1]).format("YYYY-MM-DD");
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
Fungetdate(num) {
|
|
|
|
|
var dd = new Date();
|
|
|
|
|
dd.setDate(dd.getDate());
|
|
|
|
|
var y = dd.getFullYear();
|
|
|
|
|
var m = dd.getMonth() + 1 + num; //获取当前月份的日期
|
|
|
|
|
var d = dd.getDate();
|
|
|
|
|
return y + "-" + m + "-" + d;
|
|
|
|
|
},
|
|
|
|
|
back() {
|
|
|
|
|
this.$router.push({ path: "/index" });
|
|
|
|
|
},
|
|
|
|
@ -293,6 +393,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
getDictData() {
|
|
|
|
|
const _this = this;
|
|
|
|
|
getDictData(
|
|
|
|
@ -308,13 +409,17 @@ export default {
|
|
|
|
|
_this.getDeviceRefreshTime()
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
},**/
|
|
|
|
|
getdatalist() {
|
|
|
|
|
const _this = this;
|
|
|
|
|
this.ymdStart1 = moment(this.ymdArray1[0]).format("YYYY-MM-DD");
|
|
|
|
|
this.ymdEnd1 = moment(this.ymdArray1[1]).format("YYYY-MM-DD");
|
|
|
|
|
getOverallInfo({
|
|
|
|
|
ymdType: _this.selectxtclasses,
|
|
|
|
|
typeCode: 'material',
|
|
|
|
|
factoryCode: 'ds_' + _this.selectxt,
|
|
|
|
|
productDateStart: this.ymdStart1,
|
|
|
|
|
productDateEnd: this.ymdEnd1
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
_this.ordermessage = response;
|
|
|
|
@ -324,6 +429,8 @@ export default {
|
|
|
|
|
ymdType: _this.selectxtclasses,
|
|
|
|
|
typeCode: 'material',
|
|
|
|
|
factoryCode: 'ds_' + _this.selectxt,
|
|
|
|
|
productDateStart: this.ymdStart1,
|
|
|
|
|
productDateEnd: this.ymdEnd1
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
_this.optionDatalist2 = []
|
|
|
|
@ -340,6 +447,8 @@ export default {
|
|
|
|
|
ymdType: _this.selectxtclasses,
|
|
|
|
|
typeCode: 'material',
|
|
|
|
|
factoryCode: 'ds_' + _this.selectxt,
|
|
|
|
|
productDateStart: this.ymdStart1,
|
|
|
|
|
productDateEnd: this.ymdEnd1
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
_this.optionDatalist3 = []
|
|
|
|
@ -369,11 +478,14 @@ export default {
|
|
|
|
|
ymdType: _this.selectxtclasses,
|
|
|
|
|
typeCode: 'material',
|
|
|
|
|
factoryCode: 'ds_' + _this.selectxt,
|
|
|
|
|
productDateStart: this.ymdStart1,
|
|
|
|
|
productDateEnd: this.ymdEnd1
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
this.orderdetail = response
|
|
|
|
|
this.orderdetail.forEach((item) => {
|
|
|
|
|
item.incomeTime = moment(item.incomeTime).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
|
item.incomeTime = moment(item.incomeTime).format('YYYY-MM-DD')
|
|
|
|
|
item.checkTime = moment(item.checkTime).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -1342,22 +1454,22 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.titlebox {
|
|
|
|
|
width: 431px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
background: url("../../../assets/images/bg-title.png") no-repeat;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
// text-align: center;
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
line-height: 38px;
|
|
|
|
|
letter-spacing: 2px;
|
|
|
|
|
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
|
|
|
|
|
padding-left: 60px;
|
|
|
|
|
// .titlename{
|
|
|
|
|
// position: relative;
|
|
|
|
|
// left: 24px;
|
|
|
|
|
// }
|
|
|
|
|
width: 431px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
background: url("../../../assets/images/bg-title.png") no-repeat;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
// text-align: center;
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
line-height: 38px;
|
|
|
|
|
letter-spacing: 2px;
|
|
|
|
|
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
|
|
|
|
|
padding-left: 60px;
|
|
|
|
|
// .titlename{
|
|
|
|
|
// position: relative;
|
|
|
|
|
// left: 24px;
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.titlebox2 {
|
|
|
|
@ -1392,7 +1504,7 @@ export default {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
width: 350px;
|
|
|
|
|
width: 300px;
|
|
|
|
|
margin-left: 50px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|