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