| | |
| | | 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() |
| | |
| | | lineNo: '', |
| | | yieldvalue: null |
| | | }) |
| | | const yieldTargetValue1 = ref() // 一线目标值 |
| | | const yieldTargetValue2 = ref() // 二线目标值 |
| | | const yieldData = ref([]) |
| | | const yieldLoading = ref(false) |
| | | |
| | |
| | | lineNo: '', |
| | | utilizationRate: null |
| | | }) |
| | | const utilizationTargetValue1 = ref() // 标准线目标值 |
| | | const utilizationTargetValue2 = ref() // 定制线目标值 |
| | | const utilizationData = ref([]) |
| | | const utilizationLoading = ref(false) |
| | | |
| | |
| | | locationCode: '', |
| | | quantity: null |
| | | }) |
| | | const quantityTargetValue1 = ref(4000) // 半成品目标值 |
| | | const quantityTargetValue2 = ref(4000) // 7014目标值 |
| | | const quantityTargetValue3 = ref(4000) // 7016目标值 |
| | | const quantityData = ref([]) |
| | | const quantityLoading = ref(false) |
| | | |
| | |
| | | } |
| | | |
| | | 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: { |
| | |
| | | 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) |
| | |
| | | } |
| | | |
| | | 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: { |
| | |
| | | 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) |
| | |
| | | } |
| | | |
| | | 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: { |
| | |
| | | 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) |
| | |
| | | // 重置表单 |
| | | const resetYieldForm = () => { |
| | | yieldFormData.value = { |
| | | recordDate: yieldFormData.value.recordDate, // 保持当前选择的日期 |
| | | recordDate: yieldFormData.value.recordDate, |
| | | lineNo: '', |
| | | yieldvalue: null |
| | | } |
| | |
| | | |
| | | const resetUtilizationForm = () => { |
| | | utilizationFormData.value = { |
| | | recordDate: utilizationFormData.value.recordDate, // 保持当前选择的日期 |
| | | recordDate: utilizationFormData.value.recordDate, |
| | | lineNo: '', |
| | | utilizationRate: null |
| | | } |
| | |
| | | |
| | | const resetQuantityForm = () => { |
| | | quantityFormData.value = { |
| | | recordDate: quantityFormData.value.recordDate, // 保持当前选择的日期 |
| | | recordDate: quantityFormData.value.recordDate, |
| | | locationCode: '', |
| | | quantity: null |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | // 修改设置目标值的方法 |
| | | 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> |
| | |
| | | <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 |
| | |
| | | |
| | | <!-- 利用率标签页 --> |
| | | <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 |
| | |
| | | |
| | | <!-- 在制量标签页 --> |
| | | <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 |
| | |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .target-setting { |
| | | margin-bottom: 20px; |
| | | background-color: #f5f7fa; |
| | | padding: 20px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .form-container { |
| | | margin-bottom: 20px; |
| | | background-color: #f5f7fa; |