Merge remote-tracking branch 'origin/dev' into dev

dev
zengchenxi 5 months ago
commit da96efcd15

@ -119,6 +119,36 @@ export default {
config: n,
});
}
} else {
var datalist = JSON.parse(item.data);
// this.productOKRateList = datalist[0];
const EachProductmock=[]
for (let i = 0; i < datalist[0].length; i++) {
const newRowmk = [];
for (let j = 0; j < datalist.length; j++) {
newRowmk.push(datalist[j][i]);
}
EachProductmock.push(newRowmk);
}
this.productOKRateList = [];
for (const item of EachProductmock) {
var n = {
data: [item[1]*1],
shape: "roundRect",
formatter: "{value}%",
waveNum: 2,
waveHeight: 10,
// 95
colors:
item[1] > 95
? ["#00FFFF", "#00B2EE"]
: ["#ff6600", "#cc0000"],
};
this.productOKRateList.push({
ProductName: item[0],
config: n,
});
}
}
}
});

@ -13,9 +13,9 @@
<span>产线合格率</span>
</div>
<div class="text3">
<p>
<!-- <p>
产品类型<span>{{ item.product_type_name }}</span>
</p>
</p> -->
<p>
当日合格数量<span>{{ item.intraday_ok_qty }}</span>
</p>
@ -117,15 +117,15 @@ export default {
var datalist = JSON.parse(item.mockData);
for (const item of datalist) {
var n = {
data: [item[3] * 1],
data: [item[2] * 1],
shape: "round",
formatter: "{value}%",
waveNum: 2,
waveHeight: 10,
colors:
item[6] == "1"
item[5] == 0
? ["#00FFFF", "#00B2EE"]
: item[6] == "3"
: item[5] == 2
? ["#ff6600", "#CD0100"]
: ["#FFE57E", "#FF6715"],
//
@ -133,10 +133,10 @@ export default {
this.reqlist.push({
eqmt_name: item[0], //
product_type_name: item[1], //
intraday_ok_qty: item[2] * 1, //
intraday_yield_rate: item[3] * 1, //
oee: item[4] * 1, //OEE
intraday_eqmt_stop_times: item[5] * 1, //
intraday_ok_qty: item[1] * 1, //
intraday_yield_rate: item[2] * 1, //
oee: item[3] * 1, //OEE
intraday_eqmt_stop_times: item[4] * 1, //
// spec: item[6],
config: n,
});
@ -145,26 +145,26 @@ export default {
var datalist = JSON.parse(item.data);
for (const item of datalist) {
var n = {
data: [item[4] * 1],
data: [item[2] * 1],
shape: "round",
formatter: "{value}%",
waveNum: 2,
waveHeight: 10,
colors:
item[6] == "1"
item[5] == 0
? ["#00FFFF", "#00B2EE"]
: item[6] == "3"
: item[5] == 2
? ["#ff6600", "#CD0100"]
: ["#FFE57E", "#FF6715"],
//
};
this.reqlist.push({
eqmt_name: item[0], //
product_type_name: item[1], //
intraday_ok_qty: item[2] * 1, //
intraday_yield_rate: item[3] * 1, //
oee: item[4] * 1, //OEE
intraday_eqmt_stop_times: item[5] * 1, //
// product_type_name: item[1], //
intraday_ok_qty: item[1] * 1, //
intraday_yield_rate: item[2] * 1, //
oee: item[3] * 1, //OEE
intraday_eqmt_stop_times: item[4] * 1, //
// spec: item[6],
config: n,
});

@ -12,11 +12,11 @@
</div>
</div>
<div class="d-flex jc-center body-box">
<dv-scroll-board class="dv-scr-board" :config="config" />
<dv-scroll-board class="dv-scr-board" :config="config" />
</div>
</div>
<el-dialog title="工单详细信息" style="font-color:#fff" :visible.sync="moDetailShow" width="50%" :append-to-body="true" >
<el-descriptions class="margin-top" :column="1" border>
<el-dialog title="工单详细信息" style="font-color:#fff" :visible.sync="moDetailShow" width="50%" :append-to-body="true">
<el-descriptions class="margin-top" :column="1" border>
<el-descriptions-item>
<template slot="label">工单号</template>{{ moInfo.FBILL_NO }}
</el-descriptions-item>
@ -141,6 +141,9 @@ export default {
moInfo: {},
};
},
created() {
this.setData();
},
mounted() {
this.setData();
this.startInterval();

@ -115,7 +115,7 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="出库仓库">
<el-form-item label="出库仓库" prop="whId">
<el-select
v-model="formData.whId"
placeholder="下拉选择"

@ -9,13 +9,13 @@
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="160px" v-loading="formLoading">
<el-card class="hl-card-info">
<template #header>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">生产单进度表</span>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">生产单进度表</span>
</template>
<el-button style="margin-bottom: 10px !important;" type="primary" @click="addProductionStateList" :disabled="formData.ProductionStateList.openMock==0?true:false">新增</el-button>
<el-table class="hl-table" :data="formData.ProductionStateList.data">
<el-table-column min-width="200" align="center">
<template #header>
<span style="color:red;">*</span>生产
<span style="color:red;">*</span>生产
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
@ -35,7 +35,7 @@
</el-table-column>
<el-table-column min-width="200" align="center">
<template #header>
<span style="color:red;">*</span>计划数量
<span style="color:red;">*</span>订单数量
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
@ -56,7 +56,7 @@
</el-table-column>
<el-table-column min-width="200" align="center">
<template #header>
<span style="color:red;">*</span>不合格数量
<span style="color:red;">*</span>剩余天数
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
@ -87,16 +87,16 @@
</el-card>
<el-card class="hl-card-info">
<template #header>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">生产订单达成率/交付</span>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">生产订单达成率/合格</span>
</template>
<el-row style="margin-top: 20px;margin-bottom:-10px">
<el-col :span="6">
<el-form-item label="生产订单达成率" label-width="160px" prop="">
<el-form-item label="订单达成率" label-width="160px" prop="">
<el-input class="!w-200px" v-model="formData.ProductionOrderState.data[0]" placeholder="请输入进度(数字)" :disabled="formData.ProductionStateList.openMock==0?true:false"><template #append>%</template></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="订单交付率" label-width="160px" prop="">
<el-form-item label="订单合格率" label-width="160px" prop="">
<el-input class="!w-200px" v-model="formData.ProductionOrderState.data[1]" placeholder="请输入进度(数字)" :disabled="formData.ProductionStateList.openMock==0?true:false"><template #append>%</template></el-input>
</el-form-item>
</el-col>
@ -293,7 +293,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column min-width="100" align="center">
<!-- <el-table-column min-width="100" align="center">
<template #header>
<span style="color:red;">*</span>产品类型
</template>
@ -302,14 +302,14 @@
<el-input class="!w-200px" v-model="row[1]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入产品类型" />
</el-form-item>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column min-width="100" align="center">
<template #header>
<span style="color:red;">*</span>当日合格数量
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[2]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入合格数量" />
<el-input class="!w-200px" v-model="row[1]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入合格数量" />
</el-form-item>
</template>
</el-table-column>
@ -318,8 +318,8 @@
<span style="color:red;">*</span>产线合格率
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[3]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入合格率(数字)"><template #append>%</template></el-input>
<el-form-item :prop="`${$index}[2]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[2]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入合格率(数字)"><template #append>%</template></el-input>
</el-form-item>
</template>
</el-table-column>
@ -328,8 +328,8 @@
<span style="color:red;">*</span>OEE
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[4]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入OEE" />
<el-form-item :prop="`${$index}[3]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[3]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入OEE" />
</el-form-item>
</template>
</el-table-column>
@ -338,8 +338,8 @@
<span style="color:red;">*</span>停机次数
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[5]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入停机次数" />
<el-form-item :prop="`${$index}[4]`" class="mb-0px!">
<el-input class="!w-200px" v-model="row[4]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入停机次数" />
</el-form-item>
</template>
</el-table-column>
@ -348,10 +348,9 @@
<span style="color:red;">*</span>设备状态
</template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}[1]`" class="mb-0px!">
<!-- <el-input class="!w-200px" v-model="row[6]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入设备状态" /> -->
<el-select v-model="row[6]" placeholder="选择设备状态" :disabled="formData.ProductionStateList.openMock==0?true:false" style="width: 100% !important">
<el-form-item :prop="`${$index}[5]`" class="mb-0px!">
<!-- <el-input class="!w-200px" v-model="row[5]" style="width: 100% !important" :disabled="formData.ProductionStateList.openMock==0?true:false" placeholder="请输入设备状态" /> -->
<el-select v-model="row[5]" placeholder="选择设备状态" :disabled="formData.ProductionStateList.openMock==0?true:false" style="width: 100% !important">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
@ -383,43 +382,44 @@ const { t } = useI18n() // 国际化
const reload: any = inject('reload')
const options = [
{
value: '1',
value: 0,
label: '开机'
},
{
value: 1,
label: '故障'
},
{
value: '2',
value: 2,
label: '关机'
},
{
value: '3',
label: '故障'
}
]
//
const mockDataSwitchChange = async () => {
if (mockDataSwitch.value == false) {
// formData.value.ProductionStateList.openMock = 0
// formData.value.ProductionOrderState.openMock = 0
// formData.value.QuantityOfEachProductProduced.openMock = 0
// formData.value.UtilizationRateOfEquipment.openMock = 0
// formData.value.QualifiedRateOfEachProduct.openMock = 0
// formData.value.EquipmentOperationState.openMock = 0
formData.value.ProductionStateList.openMock = 0
formData.value.ProductionOrderState.openMock = 0
formData.value.QuantityOfEachProductProduced.openMock = 0
formData.value.UtilizationRateOfEquipment.openMock = 0
formData.value.QualifiedRateOfEachProduct.openMock = 0
formData.value.EquipmentOperationState.openMock = 0
// formData.value.ProductionStateList.data = oldProductionStateListdata.value
// formData.value.ProductionOrderState.data = oldProductionOrderStatedata.value
// formData.value.QuantityOfEachProductProduced.data = oldQuantityOfEachProductProduceddata.value
// formData.value.UtilizationRateOfEquipment.data = oldUtilizationRateOfEquipmentdata.value
// debugger
// formData.value.QualifiedRateOfEachProduct.data = oldQualifiedRateOfEachProductdata.value
// formData.value.EquipmentOperationState.data = oldEquipmentOperationStatedata.value
// await ScreenApi.updateScreen(formData.value.ProductionStateList)
// await ScreenApi.updateScreen(formData.value.ProductionOrderState)
// await ScreenApi.updateScreen(formData.value.QuantityOfEachProductProduced)
// await ScreenApi.updateScreen(formData.value.UtilizationRateOfEquipment)
// await ScreenApi.updateScreen(formData.value.QualifiedRateOfEachProduct)
// await ScreenApi.updateScreen(formData.value.EquipmentOperationState)
// reload()
formData.value.ProductionStateList.data = oldProductionStateListdata.value
formData.value.ProductionOrderState.data = oldProductionOrderStatedata.value
formData.value.QuantityOfEachProductProduced.data = oldQuantityOfEachProductProduceddata.value
formData.value.UtilizationRateOfEquipment.data = oldUtilizationRateOfEquipmentdata.value
debugger
formData.value.QualifiedRateOfEachProduct.data = oldQualifiedRateOfEachProductdata.value
formData.value.EquipmentOperationState.data = oldEquipmentOperationStatedata.value
await ScreenApi.updateScreen(formData.value.ProductionStateList)
await ScreenApi.updateScreen(formData.value.ProductionOrderState)
await ScreenApi.updateScreen(formData.value.QuantityOfEachProductProduced)
await ScreenApi.updateScreen(formData.value.UtilizationRateOfEquipment)
await ScreenApi.updateScreen(formData.value.QualifiedRateOfEachProduct)
await ScreenApi.updateScreen(formData.value.EquipmentOperationState)
reload()
} else {
//
formData.value.ProductionStateList.openMock = 1
@ -672,7 +672,6 @@ const getlist = async () => {
} else if (datalistitem.openMock == 0) {
// console.log('')
mockDataSwitch.value = false
if (datalistitem.type == 'ProductionStateList') {
oldProductionStateListdata.value = datalistitem.data
formData.value.ProductionStateList = datalistitem
@ -715,15 +714,17 @@ const getlist = async () => {
datalistitem.data = JSON.parse(datalistitem.data)
if (datalistitem.data != null && datalistitem.data.length > 0) {
// datalistitem.data = JSON.parse(datalistitem.data)
// const Producedmock = []
// for (let i = 0; i < datalistitem.data[0].length; i++) {
// const newRowmk = []
// for (let j = 0; j < datalistitem.data.length; j++) {
// newRowmk.push( datalistitem.data[j][i])
// }
// Producedmock.push(newRowmk)
// }
// formData.value.UtilizationRateOfEquipment.data = Producedmock
const Producedmock = []
for (let i = 0; i < datalistitem.data[0].length; i++) {
const newRowmk = []
for (let j = 0; j < datalistitem.data.length; j++) {
newRowmk.push( datalistitem.data[j][i])
}
Producedmock.push(newRowmk)
}
formData.value.UtilizationRateOfEquipment.data = Producedmock
// console.log(formData.value.UtilizationRateOfEquipment.data);
} else {
formData.value.UtilizationRateOfEquipment.data = null
}
@ -734,16 +735,16 @@ const getlist = async () => {
//
datalistitem.data = JSON.parse(datalistitem.data)
if (datalistitem.data != null && datalistitem.data.length > 0) {
// const transposedData = []
// for (let i = 0; i < datalistitem.data[0].length; i++) {
// const newRow = []
// for (let j = 0; j < datalistitem.data.length; j++) {
// newRow.push(datalistitem.data[j][i])
// }
// transposedData.push(newRow)
// }
// // formData
// formData.value.QualifiedRateOfEachProduct.data = transposedData
const transposedData = []
for (let i = 0; i < datalistitem.data[0].length; i++) {
const newRow = []
for (let j = 0; j < datalistitem.data.length; j++) {
newRow.push(datalistitem.data[j][i])
}
transposedData.push(newRow)
}
// formData
formData.value.QualifiedRateOfEachProduct.data = transposedData
} else {
formData.value.QualifiedRateOfEachProduct.data = null
}
@ -805,7 +806,7 @@ const addQualifiedRateOfEachProduct = () => {
const addEquipmentOperationState = () => {
if (formData.value.EquipmentOperationState.data == null) {
formData.value.EquipmentOperationState.data = [
['', '', '', '', '', '', '1']
['', '', '', '', '', '0']
]
} else {
formData.value.EquipmentOperationState.data.push([
@ -814,8 +815,7 @@ const addEquipmentOperationState = () => {
'',
'',
'',
'',
'1'
'0'
])
}
}

Loading…
Cancel
Save