chengxiangling
2025-05-12 fa232ea0ad5fd67b8efe15972e75d45ef6b821ac
src/views/basicData/bom/index.vue
@@ -1,72 +1,71 @@
<template>
  <div class="app-container">
    <el-row :gutter="20">
      <el-form
        :model="queryParams"
        ref="queryRef"
        :rules="rules"
        :inline="true"
        v-show="showSearch"
        :label-width="locale === 'zh' ? '90px' : '160px'"
      >
        <!-- <el-row :gutter="20">
          <el-col :span="10"> -->
        <el-form-item :label="$t('plan.query.itemNumber')" prop="itemCode">
          <el-input
            style="width: 210px"
            v-model="queryParams.itemCode"
            :placeholder="`${$t('common.common.placeholder')}${$t(
              'plan.query.itemNumber'
            )}`"
            clearable
            @keyup.enter="handleQuery"
          />
        </el-form-item>
        <!-- </el-col>
          <el-col :span="10"> -->
        <el-form-item
          :label="$t('plan.table.applicableFactories')"
          prop="orgCode"
        >
          <el-select
            clearable
            v-model="queryParams.orgCode"
            style="width: 160px"
            :placeholder="`${$t('common.common.placeholder')}${$t(
              'plan.table.applicableFactories'
            )}`"
    <el-form
      :model="queryParams"
      ref="queryRef"
      :rules="rules"
      :inline="true"
      v-show="showSearch"
      :label-width="locale === 'zh' ? '90px' : '160px'"
    >
      <el-row :gutter="20">
        <el-col :span="locale === 'zh' ? 5 : 9">
          <el-form-item :label="$t('plan.query.itemNumber')" prop="itemCode">
            <el-input
              :style="{ width: locale === 'zh' ? '140px' : '220px' }"
              v-model="queryParams.itemCode"
              :placeholder="`${$t('common.common.placeholder')}${$t(
                'plan.query.itemNumber'
              )}`"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="locale === 'zh' ? 7 : 9">
          <el-form-item
            :label="$t('plan.table.applicableFactories')"
            prop="orgCode"
          >
            <el-option
              v-for="plant in plantList"
              :key="plant.id"
              :label="plant.plantName"
              :value="plant.plantCode"
            <el-select
              clearable
              v-model="queryParams.orgCode"
              :style="{ width: locale === 'zh' ? '180px' : '240px' }"
              :placeholder="`${$t('common.common.placeholder')}${$t(
                'plan.table.applicableFactories'
              )}`"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <!-- </el-col>
          <el-col :span="4" style="text-align: right"> -->
        <el-form-item>
          <el-button type="primary" icon="Search" @click="handleQuery">{{
            $t("common.common.query")
          }}</el-button>
          <el-button icon="Refresh" @click="resetQuery">{{
            $t("common.common.reset")
          }}</el-button>
        </el-form-item>
        <!-- </el-col>
        </el-row> -->
      </el-form>
    </el-row>
              <el-option
                v-for="plant in plantList"
                :key="plant.id"
                :label="plant.plantName"
                :value="plant.plantCode"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="locale === 'zh' ? 11 : 6" style="text-align: right">
          <el-form-item class="column-with-margin">
            <el-button type="primary" icon="Search" @click="handleQuery">{{
              $t("common.common.query")
            }}</el-button>
            <el-button icon="Refresh" @click="resetQuery">{{
              $t("common.common.reset")
            }}</el-button>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="Refresh"
          :disabled="loadingRefresh"
          @click="handleRefresh"
          v-hasPermi="['apsPartRouteStat:edit']"
          v-hasPermi="['Aps:ApsBomHeader:refreshBomData']"
          >{{ $t("common.common.update") }}</el-button
        >
      </el-col>
@@ -94,8 +93,8 @@
          type="primary"
          link
          @click="handleCheckView(row)"
          v-hasPermi="['aps:calendar:update']"
          >查看</el-button
          v-hasPermi="['Aps:apsBom:list']"
          >{{$t("common.common.view")}}</el-button
        >
      </template>
    </HxlhTable>
@@ -104,19 +103,20 @@
      v-model="openDialog"
      width="900px"
      append-to-body
      style="height: 400px; overflow: hidden"
    >
      <HxlhTable
        style="width: 100%"
        :columns="subGridOptions"
        :data="subList"
        :loading="loadingSub"
        :height="heightSub"
        :height="'280px;'"
      >
      </HxlhTable>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="openDialog = false">{{
            $t("common.common.cancel")
            $t("common.common.close")
          }}</el-button>
        </span>
      </template>
@@ -124,14 +124,15 @@
  </div>
</template>
<script setup name="ApsPlatePlan">
<script setup name="Bom">
import {
  listApsBomHeaderList,
  listApsBomLineList,
  listApsBomRefreshBomDataList,
} from "@/api/basicData/bom/bom.js";
import { listAll_plant } from "@/api/basicData/plant";
import HxlhTable from "@/components/HxlhTable/index.vue";
import { ElMessage } from "element-plus";
// import { ElMessage } from "element-plus";
import { useI18n } from "vue-i18n"; //要在js中使用国际化
const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
@@ -146,6 +147,7 @@
const subList = ref([]);
const loading = ref(false);
const loadingSub = ref(false);
const loadingRefresh = ref(false);
const showSearch = ref(true);
const total = ref(0);
const height = ref(document.documentElement.clientHeight - 210 + "px;");
@@ -226,7 +228,7 @@
        },
      },
      {
        title: "操作",
        title: t("common.common.operate"),
        width: 100,
        fixed: "right",
        slots: { default: "buttons" },
@@ -301,7 +303,20 @@
  },
  { immediate: true, deep: true }
);
async function handleRefresh() {
  loadingRefresh.value = true;
  const res = await listApsBomRefreshBomDataList();
  if (res.code == 200) {
    ElMessage({
      message: t("plan.message.update"),
      type: "success",
    });
    loadingRefresh.value = false;
    getList();
  } else {
    loadingRefresh.value = false;
  }
}
function changePageNo(currentPage) {
  queryParams.value.pageNum = currentPage;
  page.value.current = currentPage;