huang
2025-05-20 2c2413760b6467bf62402dba7338bd3bbcbd7341
UI-Project/src/views/KanbanData/kanbanData.vue
@@ -2,9 +2,25 @@
import { ref, onMounted, onBeforeUnmount } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import request from '@/utils/request'
import { useRoute, useRouter } from 'vue-router'
const router = useRouter()
const route = useRoute()
// 加载初始数据
onMounted(() => {
  // 从localStorage获取存储的目标值
  yieldTargetValue1.value = localStorage.getItem('yieldTarget1') ? Number(localStorage.getItem('yieldTarget1')) : 0
  yieldTargetValue2.value = localStorage.getItem('yieldTarget2') ? Number(localStorage.getItem('yieldTarget2')) : 0
  utilizationTargetValue1.value = localStorage.getItem('utilizationTarget1') ? Number(localStorage.getItem('utilizationTarget1')) : 0
  utilizationTargetValue2.value = localStorage.getItem('utilizationTarget2') ? Number(localStorage.getItem('utilizationTarget2')) : 0
  quantityTargetValue1.value = localStorage.getItem('quantityTarget1') ? Number(localStorage.getItem('quantityTarget1')) : 0
  quantityTargetValue2.value = localStorage.getItem('quantityTarget2') ? Number(localStorage.getItem('quantityTarget2')) : 0
  quantityTargetValue3.value = localStorage.getItem('quantityTarget3') ? Number(localStorage.getItem('quantityTarget3')) : 0
  // 加载其他数据
  loadYieldData()
  loadUtilizationData()
  loadQuantityData()
@@ -54,6 +70,8 @@
  lineNo: '',
  yieldvalue: null
})
const yieldTargetValue1 = ref() // 一线目标值
const yieldTargetValue2 = ref() // 二线目标值
const yieldData = ref([])
const yieldLoading = ref(false)
@@ -63,6 +81,8 @@
  lineNo: '',
  utilizationRate: null
})
const utilizationTargetValue1 = ref() // 标准线目标值
const utilizationTargetValue2 = ref() // 定制线目标值
const utilizationData = ref([])
const utilizationLoading = ref(false)
@@ -79,6 +99,9 @@
  locationCode: '',
  quantity: null
})
const quantityTargetValue1 = ref(4000) // 半成品目标值
const quantityTargetValue2 = ref(4000) // 7014目标值
const quantityTargetValue3 = ref(4000) // 7016目标值
const quantityData = ref([])
const quantityLoading = ref(false)
@@ -235,9 +258,9 @@
  }
  try {
    const recordTimeStr = `${yieldFormData.value.recordDate} 00:00:00`;
    const recordTimeStr = `${yieldFormData.value.recordDate} 00:00:00`
    
    await request({
    const res = await request({
      url: '/deviceInteraction/yield/addYield',
      method: 'post',
      data: {
@@ -245,9 +268,14 @@
        recordTime: recordTimeStr
      }
    })
    ElMessage.success('添加成功')
    resetYieldForm()
    loadYieldData() // 刷新数据
    if (res.code === 200) {
      ElMessage.success('添加成功')
      resetYieldForm()
      loadYieldData() // 刷新数据
    } else {
      ElMessage.error(res.message || '添加失败')
    }
  } catch (error) {
    ElMessage.error('添加失败')
    console.error(error)
@@ -266,9 +294,9 @@
  }
  try {
    const recordTimeStr = `${utilizationFormData.value.recordDate} 00:00:00`;
    const recordTimeStr = `${utilizationFormData.value.recordDate} 00:00:00`
    
    await request({
    const res = await request({
      url: '/deviceInteraction/utilization/addUtilization',
      method: 'post',
      data: {
@@ -276,9 +304,14 @@
        recordTime: recordTimeStr
      }
    })
    ElMessage.success('添加成功')
    resetUtilizationForm()
    loadUtilizationData() // 刷新数据
    if (res.code === 200) {
      ElMessage.success('添加成功')
      resetUtilizationForm()
      loadUtilizationData() // 刷新数据
    } else {
      ElMessage.error(res.message || '添加失败')
    }
  } catch (error) {
    ElMessage.error('添加失败')
    console.error(error)
@@ -297,14 +330,9 @@
  }
  try {
    // 拼接日期时间字符串,确保是当天的00:00:00
    const dateStr = quantityFormData.value.recordDate;
    const recordTimeStr = `${dateStr} 00:00:00`;
    const recordTimeStr = `${quantityFormData.value.recordDate} 00:00:00`
    
    const locationCode = quantityFormData.value.locationCode;
    await request({
    const res = await request({
      url: '/deviceInteraction/quantity/addQuantity',
      method: 'post',
      data: {
@@ -312,9 +340,14 @@
        recordTime: recordTimeStr
      }
    })
    ElMessage.success('添加成功')
    resetQuantityForm()
    loadQuantityData() // 刷新数据
    if (res.code === 200) {
      ElMessage.success('添加成功')
      resetQuantityForm()
      loadQuantityData() // 刷新数据
    } else {
      ElMessage.error(res.message || '添加失败')
    }
  } catch (error) {
    ElMessage.error('添加失败')
    console.error(error)
@@ -358,7 +391,7 @@
// 重置表单
const resetYieldForm = () => {
  yieldFormData.value = {
    recordDate: yieldFormData.value.recordDate, // 保持当前选择的日期
    recordDate: yieldFormData.value.recordDate,
    lineNo: '',
    yieldvalue: null
  }
@@ -366,7 +399,7 @@
const resetUtilizationForm = () => {
  utilizationFormData.value = {
    recordDate: utilizationFormData.value.recordDate, // 保持当前选择的日期
    recordDate: utilizationFormData.value.recordDate,
    lineNo: '',
    utilizationRate: null
  }
@@ -374,7 +407,7 @@
const resetQuantityForm = () => {
  quantityFormData.value = {
    recordDate: quantityFormData.value.recordDate, // 保持当前选择的日期
    recordDate: quantityFormData.value.recordDate,
    locationCode: '',
    quantity: null
  }
@@ -621,6 +654,30 @@
    }
  }
}
// 修改设置目标值的方法
const setYieldTarget = () => {
  // 更新产量目标值并保存到localStorage
  localStorage.setItem('yieldTarget1', yieldTargetValue1.value.toString())
  localStorage.setItem('yieldTarget2', yieldTargetValue2.value.toString())
  ElMessage.success('目标值设置成功')
}
const setUtilizationTarget = () => {
  // 更新利用率目标值并保存到localStorage
  localStorage.setItem('utilizationTarget1', utilizationTargetValue1.value.toString())
  localStorage.setItem('utilizationTarget2', utilizationTargetValue2.value.toString())
  ElMessage.success('目标值设置成功')
}
const setQuantityTarget = () => {
  // 更新在制量目标值并保存到localStorage
  localStorage.setItem('quantityTarget1', quantityTargetValue1.value.toString())
  localStorage.setItem('quantityTarget2', quantityTargetValue2.value.toString())
  localStorage.setItem('quantityTarget3', quantityTargetValue3.value.toString())
  ElMessage.success('目标值设置成功')
}
</script>
<template>
@@ -629,6 +686,34 @@
      <el-tabs v-model="activeTab">
        <!-- 单小时产量标签页 -->
        <el-tab-pane label="单小时产量" name="yield">
          <!-- 添加目标值设置部分 -->
          <div class="target-setting">
            <el-form :inline="true" label-width="100px">
              <el-form-item label="一线目标值">
                <el-input-number
                  v-model="yieldTargetValue1"
                  :precision="0"
                  :step="100"
                  :min="0"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item label="二线目标值">
                <el-input-number
                  v-model="yieldTargetValue2"
                  :precision="0"
                  :step="100"
                  :min="0"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item>
                <el-button type="primary" @click="setYieldTarget">设置目标值</el-button>
              </el-form-item>
            </el-form>
          </div>
          <el-form :inline="true" :model="yieldFormData" label-width="100px" class="form-container">
            <el-form-item label="日期">
              <el-date-picker
@@ -732,6 +817,36 @@
        <!-- 利用率标签页 -->
        <el-tab-pane label="利用率" name="utilization">
          <!-- 添加目标值设置部分 -->
          <div class="target-setting">
            <el-form :inline="true" label-width="100px">
              <el-form-item label="标准线目标值">
                <el-input-number
                  v-model="utilizationTargetValue1"
                  :precision="2"
                  :step="0.1"
                  :min="0"
                  :max="100"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item label="定制线目标值">
                <el-input-number
                  v-model="utilizationTargetValue2"
                  :precision="2"
                  :step="0.1"
                  :min="0"
                  :max="100"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item>
                <el-button type="primary" @click="setUtilizationTarget">设置目标值</el-button>
              </el-form-item>
            </el-form>
          </div>
          <el-form :inline="true" :model="utilizationFormData" label-width="100px" class="form-container">
            <el-form-item label="日期">
              <el-date-picker
@@ -835,6 +950,44 @@
        <!-- 在制量标签页 -->
        <el-tab-pane label="在制量" name="quantity">
          <!-- 添加目标值设置部分 -->
          <div class="target-setting">
            <el-form :inline="true" label-width="100px">
              <el-form-item label="半成品目标值">
                <el-input-number
                  v-model="quantityTargetValue1"
                  :precision="0"
                  :step="100"
                  :min="0"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item label="7014目标值">
                <el-input-number
                  v-model="quantityTargetValue2"
                  :precision="0"
                  :step="100"
                  :min="0"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item label="7016目标值">
                <el-input-number
                  v-model="quantityTargetValue3"
                  :precision="0"
                  :step="100"
                  :min="0"
                  controls-position="right"
                  style="width: 180px"
                />
              </el-form-item>
              <el-form-item>
                <el-button type="primary" @click="setQuantityTarget">设置目标值</el-button>
              </el-form-item>
            </el-form>
          </div>
          <el-form :inline="true" :model="quantityFormData" label-width="100px" class="form-container">
            <el-form-item label="日期">
              <el-date-picker
@@ -1047,6 +1200,13 @@
</template>
<style scoped>
.target-setting {
  margin-bottom: 20px;
  background-color: #f5f7fa;
  padding: 20px;
  border-radius: 4px;
}
.form-container {
  margin-bottom: 20px;
  background-color: #f5f7fa;