From 3548f02fa8cf8848f49bddf5799f486f7e682ef7 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 27 三月 2026 16:04:05 +0800
Subject: [PATCH] 成品检页面修改
---
src/views/qualityManagement/finalInspection/components/ratioDialog.vue | 193 ++++++++++++++++++++++++++++-------------------
src/assets/images/ratioup.png | 0
src/assets/images/ratiodown.png | 0
src/views/qualityManagement/finalInspection/index.vue | 8 +-
4 files changed, 118 insertions(+), 83 deletions(-)
diff --git a/src/assets/images/ratiodown.png b/src/assets/images/ratiodown.png
new file mode 100644
index 0000000..394ccc5
--- /dev/null
+++ b/src/assets/images/ratiodown.png
Binary files differ
diff --git a/src/assets/images/ratioup.png b/src/assets/images/ratioup.png
new file mode 100644
index 0000000..dfb7d4b
--- /dev/null
+++ b/src/assets/images/ratioup.png
Binary files differ
diff --git a/src/views/qualityManagement/finalInspection/components/ratioDialog.vue b/src/views/qualityManagement/finalInspection/components/ratioDialog.vue
index 23e23a0..ba24712 100644
--- a/src/views/qualityManagement/finalInspection/components/ratioDialog.vue
+++ b/src/views/qualityManagement/finalInspection/components/ratioDialog.vue
@@ -4,86 +4,54 @@
title="鏍囧噯鎶曞叆浜у嚭姣斾緥"
width="1000px"
@close="closeDialog">
- <!-- <el-card class="detail-card">
- <template #header>
- <div class="card-header">
- <span>鐢熶骇璁㈠崟淇℃伅</span>
- </div>
- </template>
- <div class="detail-info">
- <div class="info-row">
- <div class="info-item">
- <span class="info-label">鐢熶骇璁㈠崟鍙凤細</span>
- <span class="info-value">{{ orderInfo.npsNo }}</span>
+ <div class="ratio-cards">
+ <el-card v-for="(item, index) in ratioData"
+ :key="index"
+ class="ratio-card">
+ <template #header>
+ <div class="card-header">
+ <span>{{ item.productName }}<span v-if="item.model">-</span>{{ item.model || '' }}</span>
+ <span class="material-code">{{ item.materialCode }}</span>
</div>
- <div class="info-item">
- <span class="info-label">浜у搧鍚嶇О锛�</span>
- <span class="info-value">{{ orderInfo.productName }}</span>
+ </template>
+ <div class="ratio-info">
+ <div class="info-row">
+ <div class="info-item">
+ <span class="info-label">瀹為檯鎶曞叆閲忥細</span>
+ <span class="info-value">{{ item.actualInputQuantity }} {{ item.unit }}</span>
+ </div>
+ <div class="info-item">
+ <span class="info-label">瀹為檯浜у嚭閲忥細</span>
+ <span class="info-value">{{ item.actualOutputQuantity }} {{ item.unit }}</span>
+ </div>
</div>
- <div class="info-item">
- <span class="info-label">瑙勬牸锛�</span>
- <span class="info-value">{{ orderInfo.model }}</span>
+ <div class="info-row">
+ <div class="info-item">
+ <span class="info-label">瀹為檯鎶曞叆浜у嚭姣斾緥锛�</span>
+ <span class="info-value actual-ratio">{{ item.actualInputOutputRatio }}</span>
+ </div>
+ <div class="info-item">
+ <span class="info-label">鏍囧噯鎶曞叆浜у嚭姣斾緥锛�</span>
+ <span class="info-value standard-ratio">{{ item.standardInputOutputRatio }}</span>
+ </div>
</div>
- <div class="info-item">
- <span class="info-label">浜у搧绫诲瀷锛�</span>
- <span class="info-value">{{ orderInfo.strength }}</span>
+ <div class="info-row">
+ <div class="info-item">
+ <span class="info-label">鍋忓樊鐜囷細</span>
+ <span :class="['info-value', 'deviation-rate', item.deviationRate >= 0 ? 'positive' : 'negative']">
+ {{ item.deviationRate >= 0 ? '+' : '' }}{{ (item.deviationRate * 100).toFixed(2) }}%
+ </span>
+ </div>
</div>
</div>
- </div>
- </el-card> -->
- <el-card class="detail-card"
- style="margin-top: 20px;">
- <template #header>
- <div class="card-header">
- <span>鎶曞叆浜у嚭姣斾緥鏄庣粏</span>
- </div>
- </template>
- <el-table :data="ratioData"
- style="width: 100%">
- <el-table-column prop="materialCode"
- label="浜у搧缂栫爜"
- width="120" />
- <el-table-column prop="productName"
- label="浜у搧鍚嶇О"
- width="150" />
- <el-table-column prop="model"
- label="瑙勬牸"
- width="100" />
- <!-- <el-table-column prop="unit"
- label="鍗曚綅"
- width="80" /> -->
- <el-table-column prop="actualInputQuantity"
- label="瀹為檯鎶曞叆閲�"
- width="120">
- <template #default="scope">
- <span style="color: #409eff;">{{ scope.row.actualInputQuantity }}</span> {{ scope.row.unit }}
- </template>
- </el-table-column>
- <el-table-column prop="actualOutputQuantity"
- label="瀹為檯浜у嚭閲�"
- width="120">
- <template #default="scope">
- <span style="color: #409eff;">{{ scope.row.actualOutputQuantity }}</span> {{ scope.row.unit }}
- </template>
- </el-table-column>
- <el-table-column prop="standardInputOutputRatio"
- label="鏍囧噯鎶曞叆浜у嚭姣斾緥"
- width="150">
- <template #default="scope">
- <span style="color: #f68f00;">{{ scope.row.standardInputOutputRatio }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="deviationRate"
- label="鍋忓樊鐜�"
- width="120">
- <template #default="scope">
- <span :style="{ color: scope.row.deviationRate >= 0 ? '#67c23a' : '#f56c6c' }">
- {{ scope.row.deviationRate >= 0 ? '+' : '' }}{{ scope.row.deviationRate.toFixed(2) }}%
- </span>
- </template>
- </el-table-column>
- </el-table>
- </el-card>
+ <img v-if="item.deviationRate < 0"
+ src="@/assets/images/ratiodown.png"
+ class="chart-image" />
+ <img v-else
+ src="@/assets/images/ratioup.png"
+ class="chart-imageUp" />
+ </el-card>
+ </div>
<template #footer>
<div class="dialog-footer">
<el-button @click="closeDialog">鍏抽棴</el-button>
@@ -146,26 +114,54 @@
font-size: 16px;
font-weight: bold;
color: #333;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ .material-code {
+ font-size: 14px;
+ font-weight: normal;
+ color: #909399;
}
.detail-info {
padding: 10px 0;
}
+ .ratio-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
+ gap: 20px;
+ }
+
+ .ratio-card {
+ border: 1px solid #ebeef5;
+ border-radius: 4px;
+ overflow: hidden;
+ position: relative;
+ }
+
+ .ratio-info {
+ padding: 15px;
+ display: flex;
+ flex-direction: column;
+ }
+
.info-row {
display: flex;
flex-wrap: wrap;
- margin-bottom: 10px;
+ margin-bottom: 12px;
}
.info-item {
- width: 25%;
- margin-bottom: 10px;
+ width: 50%;
+ margin-bottom: 8px;
}
.info-label {
display: inline-block;
- width: 120px;
+ width: 100%;
font-weight: bold;
color: #666;
}
@@ -174,7 +170,46 @@
color: #333;
}
+ .actual-ratio {
+ color: #409eff;
+ font-weight: bold;
+ }
+
+ .standard-ratio {
+ color: #f68f00;
+ font-weight: bold;
+ }
+
+ .deviation-rate {
+ font-weight: bold;
+ }
+
+ .deviation-rate.positive {
+ color: #67c23a;
+ }
+
+ .deviation-rate.negative {
+ color: #f56c6c;
+ }
+
.dialog-footer {
text-align: center;
}
+ .chart-image {
+ position: absolute;
+ bottom: 30px;
+ right: 20px;
+ width: 60px;
+ height: 80px;
+ opacity: 0.8;
+ }
+ .chart-imageUp {
+ position: absolute;
+ bottom: 30px;
+ right: 20px;
+ width: 60px;
+ height: 80px;
+ opacity: 0.8;
+ transform: rotate(180deg);
+ }
</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/finalInspection/index.vue b/src/views/qualityManagement/finalInspection/index.vue
index bc91722..050b2a8 100644
--- a/src/views/qualityManagement/finalInspection/index.vue
+++ b/src/views/qualityManagement/finalInspection/index.vue
@@ -2,10 +2,10 @@
<div class="app-container">
<div class="search_form">
<div>
- <span class="search_title">鐢熶骇宸ュ崟鍙凤細</span>
+ <span class="search_title">鐢熶骇璁㈠崟鍙凤細</span>
<el-input v-model="searchForm.npsNo"
style="width: 200px"
- placeholder="璇疯緭鍏ョ敓浜у伐鍗曞彿鎼滅储"
+ placeholder="璇疯緭鍏ョ敓浜ц鍗曞彿鎼滅储"
@change="handleQuery"
clearable
:prefix-icon="Search" />
@@ -77,7 +77,7 @@
const { searchForm } = toRefs(data);
const tableColumn = ref([
{
- label: "鐢熶骇宸ュ崟鍙�",
+ label: "鐢熶骇璁㈠崟鍙�",
prop: "npsNo",
width: 140,
},
@@ -153,7 +153,7 @@
width: 180,
operation: [
{
- name: "鏌ョ湅鏍囧噯鎶曞叆浜у嚭姣斾緥",
+ name: "鎶曞叆浜у嚭姣斾緥",
type: "text",
clickFun: row => {
openFilesFormDia(row);
--
Gitblit v1.9.3