| | |
| | | style="font-size: 35px; font-weight: 600" |
| | | class="color_green" |
| | | > |
| | | {{ taskData.finishNumber || 0 }}{{ taskData.Order.unit }} |
| | | {{ processingStatistics(taskData).finishNumber }}{{ taskData.Order.unit }} |
| | | </dd> |
| | | </dl> |
| | | </div> |
| | |
| | | style="font-size: 35px; font-weight: 600" |
| | | class="color_green" |
| | | > |
| | | {{ taskData.Order.amount || 0 }}{{ taskData.Order.unit }} |
| | | {{ processingStatistics(taskData).totalNumber }}{{ taskData.Order.unit }} |
| | | </dd> |
| | | </dl> |
| | | </div> |
| | |
| | | text-color="#fff" |
| | | :text-inside="true" |
| | | :stroke-width="30" |
| | | :percentage=" |
| | | (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount) |
| | | ? parseInt( |
| | | (taskData.finishNumber / taskData.Order.amount) * |
| | | 100 |
| | | )>100?100:parseInt( |
| | | (taskData.finishNumber / taskData.Order.amount) * |
| | | 100 |
| | | ): 0 |
| | | " |
| | | :percentage="calculateProgress(processingStatistics(taskData))" |
| | | ></el-progress> |
| | | </el-descriptions-item> |
| | | <!-- <el-descriptions-item label="合格率" style="width: 100%"> |
| | |
| | | </div> |
| | | <div class="card_top-3"> |
| | | <span class="card-top-r-t" |
| | | >完成进度:{{ |
| | | (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount) |
| | | ? parseInt( |
| | | (taskData.finishNumber / |
| | | taskData.Order.amount) * |
| | | 100 |
| | | ) |
| | | : 0 |
| | | }}</span |
| | | >完成进度:{{calculateProgress(processingStatistics(taskData))}}</span |
| | | > |
| | | <span class="card-top-r-b"> |
| | | <el-progress |
| | |
| | | text-color="#fff" |
| | | :text-inside="true" |
| | | :stroke-width="10" |
| | | :percentage=" |
| | | (taskData.Order && taskData.finishNumber != 0) |
| | | ? parseInt( |
| | | (taskData.finishNumber / |
| | | taskData.Order.amount) * |
| | | 100 |
| | | )>100?100:parseInt( |
| | | (taskData.finishNumber / |
| | | taskData.Order.amount) * |
| | | 100 |
| | | ) |
| | | : 0 |
| | | " |
| | | :percentage="calculateProgress(processingStatistics(taskData))" |
| | | :show-text="false" |
| | | ></el-progress> |
| | | </span> |
| | |
| | | // } |
| | | }, |
| | | methods: { |
| | | processingStatistics(taskData){ |
| | | const status = taskData?.Procedure?.Status; |
| | | // 如果status = 2 加工中, 则加工数和目标数应取轮询接口中的 finishNumber 和 totalNumber |
| | | // 如果status = 1 未开始, 目标数 取 taskData.Order.amount 加工数取 0 |
| | | // 如果status = 3 已完成, 目标数和加工数都取 amount |
| | | let finishNumber = 0; |
| | | let totalNumber = 0; |
| | | if (status === 1){ |
| | | totalNumber = taskData?.Order?.amount ?? 0 |
| | | finishNumber = 0 |
| | | }else if (status === 2){ |
| | | totalNumber = taskData?.totalNumber ?? 0 |
| | | finishNumber = taskData?.finishNumber ?? 0 |
| | | }else if (status === 3){ |
| | | totalNumber = taskData?.Order?.amount ?? 0 |
| | | finishNumber = taskData?.Order?.amount ?? 0 |
| | | } |
| | | |
| | | console.log({ |
| | | /** 目标数 */ |
| | | totalNumber: +totalNumber, |
| | | /** 加工数 */ |
| | | finishNumber: +finishNumber, |
| | | }) |
| | | |
| | | return { |
| | | /** 目标数 */ |
| | | totalNumber: +totalNumber, |
| | | /** 加工数 */ |
| | | finishNumber: +finishNumber, |
| | | } |
| | | }, |
| | | /** |
| | | * 计算生产进度 |
| | | * @param statistics |
| | | * @return {number} 进度,0~100 |
| | | */ |
| | | calculateProgress(statistics){ |
| | | if (statistics.finishNumber === statistics.totalNumber){ |
| | | return 100 |
| | | } |
| | | |
| | | const result = Math.floor(statistics.finishNumber / statistics.totalNumber * 100) |
| | | return result > 100 ? 100 : result |
| | | }, |
| | | deduplicateWorkers(workers){ |
| | | return _.uniqBy(workers,ele=>ele.workerName) |
| | | }, |
| | |
| | | this.TasksCopy[i].inputMaterials = []; |
| | | this.TasksCopy[i].outputMaterials = []; |
| | | this.TasksCopy[i].finishNumber = 0; |
| | | this.TasksCopy[i].totalNumber = 0; |
| | | this.TasksCopy[i].number=0; |
| | | this.TasksCopy[i].isUpdateIcon=false; |
| | | this.finishShow['finishShow&'+i]=false |
| | |
| | | procedureId: this.TasksCopy[i].Procedure.ID, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.TasksCopy[i].finishNumber = res.data.finishNumber |
| | | ? res.data.finishNumber |
| | | : 0; |
| | | this.plcStatus=res.data.plcStatus?res.data.plcStatus:0 |
| | | this.TasksCopy[i].finishNumber = res.data?.finishNumber ?? 0; |
| | | this.TasksCopy[i].totalNumber = res.data?.totalNumber ?? 0; |
| | | this.plcStatus = res.data?.plcStatus ?? 0 |
| | | } |
| | | this.resprocInfoTimer=res; |
| | | }); |