添加汇总

master
huangjinysf 3 months ago
parent 2af58c38db
commit 05952b4882

@ -9,6 +9,7 @@ export const API_CONFIG = {
HELLO: '/api/hello', HELLO: '/api/hello',
PARETO_ANALYSIS: '/api/qc/pareto', PARETO_ANALYSIS: '/api/qc/pareto',
WORKBENCH_BADNESS: '/api/qc/badness/workbench', WORKBENCH_BADNESS: '/api/qc/badness/workbench',
EQUIPMENT_STATUS: '/api/plan/equipment/status/' EQUIPMENT_STATUS: '/api/plan/equipment/status/',
REPAIR_SUMMARY: '/api/eq-repair/enamelling-repair-summary'
} }
} }

@ -157,6 +157,19 @@ export const dynamicRoutes = [
meta: { title: '修改生成配置', activeMenu: '/tool/gen' } meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
} }
] ]
},
{
path: '/eq',
component: Layout,
permissions: ['equipment:repair:list'],
children: [
{
path: 'repair-summary',
component: () => import('@/views/eq/RepairSummary'),
name: 'RepairSummary',
meta: { title: '设备维修汇总', icon: 'guide' }
}
]
} }
] ]

@ -0,0 +1,108 @@
<template>
<div class="app-container">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
@click="handleSummary"
:loading="loading"
v-hasPermi="['warehouse:WmsImportResult:query']"
>获取维修汇总</el-button>
</el-col>
</el-row>
<el-table
v-loading="loading"
:data="repairSummaryList"
element-loading-text="正在加载数据..."
border
stripe
style="width: 100%"
>
<el-table-column prop="equipment_code" label="设备编号" align="center" width="120" />
<el-table-column prop="equipment_name" label="设备名称" align="center" min-width="200" />
<el-table-column prop="record_count" label="维修次数" align="center" width="100" />
<el-table-column prop="first_apply_time" label="首次维修时间" align="center" min-width="180" />
<el-table-column prop="last_apply_time" label="最近维修时间" align="center" min-width="180" />
<el-table-column label="距离上次维修天数" align="center" width="150">
<template #default="scope">
<el-tag
:type="getDaysTagType(scope.row.days_since_last_repair)"
effect="dark"
>
{{ scope.row.days_since_last_repair }}
</el-tag>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import { ref, onMounted, watch } from 'vue'
import { API_CONFIG } from "@/config/api"
// props
const props = defineProps({
selectedEquipmentType: {
type: String,
default: '漆包机'
}
})
const loading = ref(false)
const repairSummaryList = ref([])
//
watch(() => props.selectedEquipmentType, (newVal, oldVal) => {
console.log('设备类型从', oldVal, '变化为', newVal);
//
if (newVal) {
handleSummary();
}
});
//
onMounted(() => {
console.log('组件加载,设备类型:', props.selectedEquipmentType);
handleSummary();
})
//
const getDaysTagType = (days) => {
if (days > 300) return 'danger'
if (days > 180) return 'warning'
if (days > 90) return 'success'
return 'info'
}
//
function handleSummary() {
console.log('设备类型:', props.selectedEquipmentType);
loading.value = true
fetch(`${API_CONFIG.BASE_URL}/api/eq-repair/enamelling-repair-summary?equipment_type=${props.selectedEquipmentType}`)
.then(response => response.json())
.then(data => {
if (data.code === 200 && data.data) {
repairSummaryList.value = data.data
}
})
.catch(error => {
console.error('维修汇总API调用失败:', error)
})
.finally(() => {
loading.value = false
})
}
</script>
<style scoped>
.app-container {
padding: 20px;
}
.mb8 {
margin-bottom: 8px;
}
</style>

@ -3,7 +3,7 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="3"> <el-col :span="2.5">
<el-form :model="queryForm" label-width="80px"> <el-form :model="queryForm" label-width="80px">
<el-form-item label="数据范围"> <el-form-item label="数据范围">
<el-select v-model="queryForm.selectedTimeRange" placeholder="选择时间范围" style="width: 100%"> <el-select v-model="queryForm.selectedTimeRange" placeholder="选择时间范围" style="width: 100%">
@ -18,6 +18,7 @@
</el-form> </el-form>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -26,6 +27,30 @@
v-hasPermi="['warehouse:WmsImportResult:add']" v-hasPermi="['warehouse:WmsImportResult:add']"
>帕累托分析</el-button> >帕累托分析</el-button>
</el-col> </el-col>
<el-col :span="3.5">
<el-form :model="queryForm" label-width="80px">
<el-form-item label="机台机型">
<el-select v-model="queryForm.selectedEquipmentType" placeholder="选择设备类型" style="width: 100%">
<el-option
v-for="item in equipmentTypes"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
@click="handleRepairSummary"
v-hasPermi="['equipment:repair:list']"
>维修汇总</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -54,6 +79,7 @@
v-hasPermi="['warehouse:WmsImportResult:export']" v-hasPermi="['warehouse:WmsImportResult:export']"
>产品特征分析</el-button> >产品特征分析</el-button>
</el-col> </el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
@ -65,6 +91,7 @@
:is="currentComponent" :is="currentComponent"
v-if="currentComponent" v-if="currentComponent"
:selected-time-range="queryForm.selectedTimeRange" :selected-time-range="queryForm.selectedTimeRange"
:selected-equipment-type="queryForm.selectedEquipmentType"
:pareto-data="paretoData" :pareto-data="paretoData"
:date-range="dateRange" :date-range="dateRange"
@ai-analysis-complete="handleAIAnalysisComplete" @ai-analysis-complete="handleAIAnalysisComplete"
@ -95,6 +122,7 @@ import { API_CONFIG } from "@/config/api"
import ParetoAnalysis from './ParetoAnalysis.vue' import ParetoAnalysis from './ParetoAnalysis.vue'
import ItemAnalysis from './ItemAnalysis.vue' import ItemAnalysis from './ItemAnalysis.vue'
import EmptyContent from './EmptyContent.vue' import EmptyContent from './EmptyContent.vue'
import RepairSummary from './RepairSummary.vue'
const showSearch = ref(true) const showSearch = ref(true)
const single = ref(true) const single = ref(true)
@ -105,8 +133,15 @@ const timeRangeOptions = ref([
{ value: "近2年", label: "近2年" }, { value: "近2年", label: "近2年" },
{ value: "近3年", label: "近3年" } { value: "近3年", label: "近3年" }
]) ])
const equipmentTypes = ref([
{ value: '漆包机', label: '漆包机' },
{ value: '拉丝机', label: '拉丝机' }
])
const queryForm = ref({ const queryForm = ref({
selectedTimeRange: "近1年" selectedTimeRange: "近1年",
selectedEquipmentType: "漆包机"
}) })
const paretoData = ref([]) const paretoData = ref([])
const dateRange = ref({ const dateRange = ref({
@ -194,6 +229,14 @@ function handleItemAnalysis() {
currentComponent.value = ItemAnalysis; currentComponent.value = ItemAnalysis;
} }
//
function handleRepairSummary() {
//
console.log('切换到维修汇总组件,设备类型:', queryForm.value.selectedEquipmentType);
//
currentComponent.value = RepairSummary;
}
</script> </script>
<style> <style>

@ -2,8 +2,6 @@
<div class="app-container"> <div class="app-container">
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="info" type="info"

Loading…
Cancel
Save