gaoluyang
2026-04-15 f6c198c774f1278f97f2d6b01fcf8fca6bfaf815
src/views/qualityManagement/metricMaintenance/index.vue
@@ -1,7 +1,9 @@
<template>
  <div class="app-container metric-maintenance">
    <!-- 左侧:检测标准列表 -->
    <div class="left-panel">
    <el-row :gutter="16" class="metric-maintenance-row">
      <!-- 左侧:检测标准列表 -->
      <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" class="left-col">
        <div class="left-panel">
      <div class="toolbar">
        <div class="toolbar-left"></div>
        <div class="toolbar-right">
@@ -82,10 +84,12 @@
          </el-select>
        </template>
      </PIMTable>
    </div>
        </div>
      </el-col>
    <!-- 右侧:标准参数列表 -->
    <div class="right-panel">
      <!-- 右侧:标准参数列表 -->
      <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" class="right-col">
        <div class="right-panel">
      <div class="right-header">
        <div class="title">标准参数</div>
        <div class="desc" v-if="currentStandard">
@@ -123,16 +127,18 @@
        <el-table-column prop="defaultValue" label="默认值" min-width="120" />
        <el-table-column label="操作" width="140" fixed="right" align="center">
          <template #default="{ row }">
            <el-button link type="primary" size="small" :disabled="isStandardReadonly" @click="openParamDialog('edit', row)">
            <el-button link type="primary" :disabled="isStandardReadonly" @click="openParamDialog('edit', row)">
              编辑
            </el-button>
            <el-button link type="danger" size="small" :disabled="isStandardReadonly" @click="handleParamDelete(row)">
            <el-button link type="danger" :disabled="isStandardReadonly" @click="handleParamDelete(row)">
              删除
            </el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
        </div>
      </el-col>
    </el-row>
    <!-- 新增 / 编辑检测标准 -->
    <StandardFormDialog
@@ -277,14 +283,14 @@
    prop: 'standardNo',
    dataType: 'slot',
    slot: 'standardNoCell',
    minWidth: 160,
    width: 120,
    align: 'center',
    headerSlot: 'standardNoHeader'
  },
  {
    label: '标准名称',
    prop: 'standardName',
    minWidth: 180,
      width: 120,
    align: 'center',
    headerSlot: 'standardNameHeader'
  },
@@ -292,6 +298,7 @@
    label: '类别',
    prop: 'inspectType',
    headerSlot: 'inspectTypeHeader',
      width: 120,
    align: 'center',
    dataType: 'tag',
    formatData: (val) => {
@@ -303,21 +310,22 @@
      return map[val] || val
    }
  },
  {
    label: '工序',
    prop: 'processId',
    align: 'center',
    dataType: 'tag',
    formatData: (val) => {
      const target = processOptions.value.find(
        (item) => String(item.value) === String(val)
      )
      return target?.label || val
    }
  },
  // {
  //   label: '工序',
  //   prop: 'processId',
  //   align: 'center',
  //   dataType: 'tag',
  //   formatData: (val) => {
  //     const target = processOptions.value.find(
  //       (item) => String(item.value) === String(val)
  //     )
  //     return target?.label || val
  //   }
  // },
  {
    label: '状态',
    prop: 'state',
      width: 120,
    headerSlot: 'stateHeader',
    align: 'center',
    dataType: 'tag',
@@ -426,6 +434,18 @@
const handleSelectionChange = (selection) => {
  selectedRows.value = selection
  if (!selection.length) {
    currentStandard.value = null
    detailTableData.value = []
    return
  }
  const nextStandard = selection[selection.length - 1]
  if (currentStandard.value?.id === nextStandard.id) return
  currentStandard.value = nextStandard
  loadDetail(nextStandard.id)
}
// 批量审核:状态 1=批准,2=撤销
@@ -692,40 +712,27 @@
</script>
<style scoped>
.metric-maintenance {
  display: flex;
  gap: 16px;
  min-width: 0; /* 允许 flex 子元素收缩 */
.metric-maintenance-row {
  width: 100%;
}
.metric-maintenance-row .left-col,
.metric-maintenance-row .right-col {
  margin-bottom: 16px;
}
.left-panel,
.right-panel {
  flex: 1;
  min-width: 0; /* 允许 flex 子元素收缩 */
  min-width: 0;
  background: #ffffff;
  padding: 16px;
  box-sizing: border-box;
  overflow: hidden; /* 防止内容溢出 */
}
/* 低分辨率适配 */
@media (max-width: 1400px) {
  .metric-maintenance {
    flex-direction: column;
  }
  .left-panel,
  .right-panel {
    width: 100%;
    min-width: 0;
  }
  overflow: hidden;
  height: 100%;
  min-height: 400px;
}
@media (max-width: 768px) {
  .metric-maintenance {
    gap: 12px;
  }
  .left-panel,
  .right-panel {
    padding: 12px;
@@ -831,4 +838,4 @@
  width: 100%;
  margin-top: 4px;
}
</style>
</style>