charles
2024-04-29 b95cf940af8e01e4eca30b2599b029c2f645bd1e
src/views/dashboard/components/TaskControl.vue
@@ -46,7 +46,7 @@
          icon-color="red"
          :hide-after="0"
          :teleported="false"
          title="请确认是否已完成此生产任务?"
          :title="Number(processingPercent) < 100 ? '进度未完成,是否提前完成任务?' : '请确认是否已完成此生产任务?'"
          placement="top"
          @confirm="finishTaskProduce"
        >
@@ -78,7 +78,7 @@
</template>
<script setup lang="ts">
import type { Task, Worker } from '@/api/task'
import { ref, toRefs } from 'vue'
import { ref, toRefs, computed } from 'vue'
import BigButton from '@/views/dashboard/components/BigButton.vue'
import { useDateFormat } from '@vueuse/core'
import TaskControlModal from '@/views/dashboard/components/TaskControlModal.vue'
@@ -183,6 +183,7 @@
// 报工
const showReportModal1 = ref(false)
const reprotIds = ref([])
const passCount = ref(0)
function openReportModal() {
  // 有人员才可以报工
  if (!workers.value || workers.value.length == 0) {
@@ -214,11 +215,12 @@
    modelTitle.value = '生产报工'
    if (task?.value?.ShowCheck) {
      getQualityInspection({
        procedureId: task.value?.Procedure.ID,
        procedureId: task.value?.Procedure?.procedure.procedureId,
        workOrderId: task.value?.Order.workOrderId
      }).then((res: any) => {
        console.log(res, '999999')
        passAmount.value = res.data.passAmount
        passCount.value = res.data.passAmount
        reworkAmount.value = res.data.reworkAmount
        scrappedAmount.value = res.data.scrappedAmount
        reprotIds.value = res.data.ids || []
@@ -298,7 +300,7 @@
  if (workers.value[0].workerId) {
    bulletinReport({
      workOrderProcedureID: Number(task.value?.Procedure.ID),
      reportAmount: amount,
      reportAmount: passCount.value,
      workerID: workers.value[0].workerId,
      workerName: workers.value[0].workerName,
      ids: reprotIds.value
@@ -310,7 +312,7 @@
            type: 'success',
            duration: 2000
          })
          showReportModal.value = false
          showReportModal1.value = false
        } else {
          ElMessage({
            message: '报工失败',
@@ -324,6 +326,44 @@
      })
  }
}
export interface Statistics {
  totalNumber: number
  finishNumber: number
}
/**
 * 计算生产进度
 * @param statistics
 * @return 进度,0~100
 */
function calculateProgress(statistics: Statistics): number {
  if (!statistics) {
    return 0
  }
  if (statistics.finishNumber === 0) {
    return 0
  }
  if (statistics.finishNumber === statistics.totalNumber) {
    return 100
  }
  const result = Math.floor((statistics.finishNumber / statistics.totalNumber) * 100)
  return result > 100 ? 100 : result
}
const processingPercent = computed(() => {
  // if (task?.value?.Procedure?.Status === 1) {
  //   return 0
  // }
  if (task?.value?.Procedure?.Status === 3) {
    return 100
  }
  // if (task?.value?.Procedure?.Status === 2 || task?.value?.Procedure?.Status === 1) {
  //   return calculateProgress(plcStore.plcInfo as Statistics)
  // }
  return calculateProgress(plcStore.plcInfo as Statistics)
})
</script>
<style scoped lang="scss">
$title-text-color: #9599af;