已修改9个文件
122 ■■■■■ 文件已修改
src/views/inventoryManagement/receiptManagement/Record.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productStatistics/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/nonconformingManagement/components/formDia.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/processInspection/components/formDia.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/rawMaterialInspection/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/productionAnalysis/components/center-center.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/hazardousMaterialsControl/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/receiptManagement/Record.vue
@@ -87,6 +87,10 @@
                         prop="weighingDate"
                         v-if="type === '0'"
                         show-overflow-tooltip/>
        <el-table-column label="净重(吨)"
                         prop="netWeight"
                         v-if="type === '0'"
                         show-overflow-tooltip/>
      </el-table>
      <pagination v-show="total > 0"
                  :total="total"
src/views/productionManagement/productStatistics/index.vue
@@ -26,6 +26,12 @@
                :page="page"
                :tableLoading="tableLoading"
                @pagination="pagination">
        <template #inputQuantitySlot="{ row }">
          {{ row.inputQuantity === 0 ? '-' : row.inputQuantity }}
        </template>
        <template #outputQuantitySlot="{ row }">
          {{ row.outputQuantity === 0 ? '-' : row.inputQuantity }}
        </template>
      </PIMTable>
    </div>
  </div>
@@ -57,11 +63,15 @@
    label: "投入数量",
    prop: "inputQuantity",
    width: "140",
    dataType: 'slot',
    slot: 'inputQuantitySlot',
  },
  {
    label: "产出数量",
    prop: "outputQuantity",
    width: "140",
    dataType: 'slot',
    slot: 'outputQuantitySlot',
  }
]);
const tableData = ref([]);
@@ -118,10 +128,12 @@
<style scoped lang="scss">
.search_form {
  margin-bottom: 20px;
  .search-row {
    display: flex;
    gap: 20px;
    align-items: center;
    .search-item {
      display: flex;
      align-items: center;
@@ -141,26 +153,32 @@
  display: flex;
  gap: 20px;
  height: 350px;
  .transfer-card-info {
    flex: 1;
    overflow: auto;
    .info-group {
      width: 50%;
      float: left;
    }
    .info-item {
      display: flex;
      margin-bottom: 15px;
      .info-label {
        width: 120px;
        font-weight: bold;
        margin-right: 20px;
      }
      .info-value {
        flex: 1;
      }
    }
  }
  .transfer-card-qr {
    width: 240px;
    display: flex;
@@ -171,7 +189,7 @@
}
</style>
<style  lang="scss">
<style lang="scss">
@media print {
  @page {
    size: landscape;
@@ -219,20 +237,24 @@
  }
  .transfer-card-info {
    flex: 1;
    .info-group {
      width: 100%;
      float: none;
      margin-bottom: 20px;
    }
    .info-item {
      display: flex;
      margin-bottom: 10px;
      .info-label {
        width: 100px;
        font-weight: bold;
        margin-right: 15px;
        white-space: nowrap;
      }
      .info-value {
        flex: 1;
        word-break: break-word;
@@ -251,4 +273,4 @@
    height: 140px !important;
  }
}
</style>
</style>
src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -57,7 +57,10 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验员:" prop="checkName">
              <el-input v-model="form.checkName" placeholder="请输入" clearable/>
              <el-select v-model="form.checkName" placeholder="请选择" clearable filterable style="width: 100%">
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                           :value="item.nickName"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -91,7 +94,10 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="处理人:" prop="dealName">
              <el-input v-model="form.dealName" placeholder="请输入" clearable/>
              <el-select v-model="form.dealName" placeholder="请选择" clearable filterable style="width: 100%">
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                           :value="item.nickName"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -120,13 +126,14 @@
</template>
<script setup>
import {ref} from "vue";
import {ref, reactive, toRefs, getCurrentInstance} from "vue";
import {modelList, productTreeList} from "@/api/basicData/product.js";
import {
  getQualityUnqualifiedInfo,
  qualityUnqualifiedAdd,
  qualityUnqualifiedUpdate
} from "@/api/qualityManagement/nonconformingManagement.js";
import {userListNoPage} from "@/api/system/user.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -162,12 +169,16 @@
  },
});
const { form, rules } = toRefs(data);
const userList = ref([]);
const productOptions = ref([]);
const modelOptions = ref([])
// 打开弹框
const openDialog = (type, row) => {
  operationType.value = type;
  userListNoPage().then(res => {
    userList.value = res.data || [];
  })
  dialogFormVisible.value = true;
  form.value = {}
  getProductOptions();
src/views/qualityManagement/processInspection/components/formDia.vue
@@ -10,7 +10,10 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="工序:" prop="process">
              <el-input v-model="form.process" placeholder="请输入工序" clearable />
              <el-select v-model="form.process" placeholder="请选择工序" clearable filterable @change="getList" style="width: 100%">
                <el-option v-for="item in processOptions" :key="item.id" :label="item.processName || item.name"
                           :value="item.processName || item.name"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -136,6 +139,7 @@
import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
import {userListNoPage} from "@/api/system/user.js";
import {processList} from "@/api/productionManagement/productionProcess.js";
import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -171,6 +175,7 @@
  },
});
const userList = ref([]);
const processOptions = ref([]);
const { form, rules } = toRefs(data);
const supplierList = ref([]);
const productOptions = ref([]);
@@ -212,6 +217,9 @@
    });
    let userLists = await userListNoPage();
    userList.value = userLists.data;
    processList({}).then((res) => {
        processOptions.value = res.data || [];
    });
    // 先重置表单数据(保持字段完整,避免弹窗首次渲染时触发必填红框“闪一下”)
    form.value = {
        checkTime: "",
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -9,22 +9,6 @@
      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="供应商:" prop="supplier">
              <el-select
                  v-model="form.supplier"
                  placeholder="请选择"
                  clearable
              >
                <el-option
                    v-for="item in supplierList"
                    :key="item.id"
                    :label="item.supplierName"
                    :value="item.supplierName"
                />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="产品名称:" prop="productId">
              <el-tree-select
                  v-model="form.productId"
@@ -99,7 +83,10 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验员:" prop="checkName">
              <el-input v-model="form.checkName" placeholder="请输入" clearable/>
              <el-select v-model="form.checkName" placeholder="请选择" clearable filterable style="width: 100%">
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                           :value="item.nickName"/>
              </el-select>
            </el-form-item>
          </el-col>
@@ -144,11 +131,11 @@
<script setup>
import {ref, reactive, toRefs, getCurrentInstance, nextTick} from "vue";
import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
import {modelList, productTreeList} from "@/api/basicData/product.js";
import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
import {qualityInspectParamDel, qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
import {userListNoPage} from "@/api/system/user.js";
const {proxy} = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -211,7 +198,7 @@
const tableLoading = ref(false);
const {form, rules} = toRefs(data);
const supplierList = ref([]);
const userList = ref([]);
const productOptions = ref([]);
const currentProductId = ref(0);
const testStandardOptions = ref([]); // 指标选择下拉框数据
@@ -220,9 +207,9 @@
// 打开弹框
const openDialog = async (type, row) => {
  operationType.value = type;
  getOptions().then((res) => {
    supplierList.value = res.data;
  });
  userListNoPage().then(res => {
    userList.value = res.data || [];
  })
  // 先重置表单数据(保持字段完整,避免弹窗首次渲染时触发必填红框“闪一下”)
    form.value = {
    checkTime: "",
src/views/qualityManagement/rawMaterialInspection/index.vue
@@ -98,16 +98,6 @@
    width: 120
  },
  {
    label: "采购订单号",
    prop: "purchaseContractNo",
    width: 120
  },
  {
    label: "供应商",
    prop: "supplier",
    width: 230
  },
  {
    label: "检验员",
    prop: "checkName",
  },
src/views/reportAnalysis/productionAnalysis/components/center-center.vue
@@ -50,8 +50,8 @@
  itemHeight: 12,
  textStyle: { color: '#B8C8E0', fontSize: 14 },
  data: [
    { name: '出库', itemStyle: { color: 'rgba(11, 137, 254, 1)' } },
    { name: '入库', itemStyle: { color: 'rgba(11, 249, 254, 1)' } },
    { name: '产出', itemStyle: { color: 'rgba(11, 137, 254, 1)' } },
    { name: '投入', itemStyle: { color: 'rgba(11, 249, 254, 1)' } },
  ],
}
@@ -80,7 +80,7 @@
const lineSeries = ref([
  {
    name: '出库',
    name: '产出',
    type: 'line',
    smooth: false,
    showSymbol: true,
@@ -98,7 +98,7 @@
    emphasis: { focus: 'series' },
  },
  {
    name: '入库',
    name: '投入',
    type: 'line',
    smooth: false,
    showSymbol: true,
src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue
@@ -73,7 +73,7 @@
  formatter(params) {
    let result = params[0].axisValueLabel + '<br/>'
    params.forEach((item) => {
      result += `<div>${item.marker} ${item.seriesName}: ${item.value} 元</div>`
      result += `<div>${item.marker} ${item.seriesName}: ${item.value} 件</div>`
    })
    return result
  },
@@ -83,7 +83,7 @@
  { type: 'category', axisTick: { show: false }, axisLabel: { color: '#B8C8E0' }, data: [] },
])
const yAxis1 = [
  { type: 'value', name: '单位: 元', axisLabel: { color: '#B8C8E0' }, nameTextStyle: { color: '#B8C8E0' }, splitLine: { lineStyle: { color: 'rgba(184, 200, 224, 0.2)' } } },
  { type: 'value', name: '单位: 件', axisLabel: { color: '#B8C8E0' }, nameTextStyle: { color: '#B8C8E0' }, splitLine: { lineStyle: { color: 'rgba(184, 200, 224, 0.2)' } } },
]
const handleDateTypeChange = () => {
@@ -99,7 +99,7 @@
      // 兼容字段:有的接口返回 dateStr,有的返回 date
      xAxis1.value[0].data = items.map((d) => d.dateStr ?? d.date ?? '')
      chartSeries.value[0].data = items.map((d) => parseFloat(d.amount) || 0)
      chartSeries.value[0].data = items.map((d) => parseFloat(d.numberOfCompleted) || 0)
    })
    .catch((err) => {
      console.error('获取生产核算分析失败:', err)
src/views/safeProduction/hazardousMaterialsControl/index.vue
@@ -653,15 +653,7 @@
  // 选择变化处理
  const handleSelectionChange = selection => {
    // 主表格也只保留最后一个选中的项
    if (selection.length > 1) {
      const lastSelected = selection[selection.length - 1];
      selectedIds.value = [lastSelected.id];
    } else if (selection.length === 1) {
      selectedIds.value = [selection[0].id];
    } else {
      selectedIds.value = [];
    }
    selectedIds.value = selection.map(item => item.id);
  };
  // 打开表单