yuan
5 天以前 9ea5ff67655241271bdf04bb50ca3a8d60c4e22a
src/views/inventoryManagement/stockManagement/Record.vue
@@ -1,22 +1,23 @@
<template>
  <div>
    <div class="search_form mb10">
      <el-form ref="searchFormRef"
      <el-form
          ref="searchFormRef"
               :model="searchForm"
               class="demo-form-inline">
          class="demo-form-inline"
      >
        <el-row :gutter="20">
          <el-col :span="4">
            <el-form-item label="产品大类"
                          prop="productName">
            <el-form-item label="产品大类" prop="productName">
              <el-input v-model="searchForm.productName"
                        style="width: 240px"
                        placeholder="请输入"
                        clearable />
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item label="规格型号"
                          prop="model">
            <el-form-item label="产品规格" prop="model">
              <el-input v-model="searchForm.model"
                        style="width: 240px"
                        placeholder="请输入"
@@ -24,42 +25,46 @@
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item label="批号"
                          prop="batchNo">
            <el-form-item label="批号" prop="batchNo">
              <el-input v-model="searchForm.batchNo"
                        style="width: 240px"
                        placeholder="请输入"
                        clearable />
            </el-form-item>
          </el-col>
          <!-- 按钮 -->
          <el-col :span="4">
          <el-col :span="24" :sm="24" :md="12" :lg="12">
            <el-form-item>
              <el-button type="primary"
                         @click="getList">
              <div style="display: flex; align-items: center; gap: 4px; width: 100%; flex-wrap: wrap;">
                <el-button type="primary" @click="getList">
                搜索
              </el-button>
              <el-button @click="resetSearch">
                重置
              </el-button>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div style="display: flex; gap: 10px; flex-wrap: nowrap;">
        <el-button type="primary"
                   @click="isShowNewModal = true">新增库存</el-button>
        <el-button type="info"
                <div style="display: flex; gap: 4px; margin-left: auto;">
                  <el-button type="primary" @click="isShowNewModal = true">
                    新增库存
                  </el-button>
                  <el-button
                    type="info"
                   plain
                   icon="Upload"
                   @click="isShowImportModal = true">
                    @click="isShowImportModal = true"
                  >
          导入库存
        </el-button>
        <el-button @click="handleOut">导出</el-button>
      </div>
    </div>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <div class="table_list">
      <el-table :data="tableData"
      <el-table
        :data="tableData"
                border
                v-loading="tableLoading"
                @selection-change="handleSelectionChange"
@@ -67,92 +72,112 @@
                :row-key="(row, index) => index"
                style="width: 100%"
                :row-class-name="tableRowClassName"
                height="calc(100vh - 18.5em)">
        <el-table-column align="center"
                         type="selection"
                         width="55" />
        <el-table-column align="center"
                         label="序号"
                         type="index"
                         width="60" />
        <el-table-column label="产品名称"
        height="calc(100vh - 18.5em)"
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column
          label="产品名称"
                         prop="productName"
                         show-overflow-tooltip />
        <el-table-column label="规格型号"
                         prop="model"
                         show-overflow-tooltip />
        <el-table-column label="单位"
                         prop="unit"
                         show-overflow-tooltip />
        <el-table-column label="批号"
                         prop="batchNo"
                         show-overflow-tooltip />
        <el-table-column label="合格库存数量"
          show-overflow-tooltip
        />
        <el-table-column label="规格型号" prop="model" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" show-overflow-tooltip />
        <!-- <el-table-column label="批号" prop="batchNo" show-overflow-tooltip /> -->
        <el-table-column
          label="合格库存数量"
                         prop="qualifiedQuantity"
                         show-overflow-tooltip />
        <el-table-column label="不合格库存数量"
          show-overflow-tooltip
        />
        <!-- <el-table-column
          label="不合格库存数量"
                         prop="unQualifiedQuantity"
                         show-overflow-tooltip />
        <el-table-column label="合格冻结数量"
          show-overflow-tooltip
        /> -->
        <!-- <el-table-column
          label="合格冻结数量"
                         prop="qualifiedLockedQuantity"
                         show-overflow-tooltip />
        <el-table-column label="不合格冻结数量"
          show-overflow-tooltip
        />
        <el-table-column
          label="不合格冻结数量"
                         prop="unQualifiedLockedQuantity"
                         show-overflow-tooltip />
        <el-table-column label="库存预警数量"
          show-overflow-tooltip
        /> -->
       <el-table-column
          label="库存预警数量"
                         prop="warnNum"
                         show-overflow-tooltip />
        <el-table-column label="备注"
                         prop="remark"
                         show-overflow-tooltip />
        <el-table-column label="最近更新时间"
          show-overflow-tooltip
        />
        <el-table-column label="备注" prop="remark" show-overflow-tooltip />
        <el-table-column
          label="最近更新时间"
                         prop="updateTime"
                         show-overflow-tooltip />
        <el-table-column fixed="right"
          show-overflow-tooltip
        />
        <el-table-column
          fixed="right"
                         label="操作"
                         min-width="80"
                         align="center">
          align="center"
        >
          <template #default="scope">
            <el-button link
            <el-button
              link
                       type="primary"
                       @click="showDetailModal(scope.row)">详情</el-button>
              @click="showDetailModal(scope.row)"
              >详情</el-button
            >
          </template>
        </el-table-column>
      </el-table>
      <pagination v-show="total > 0"
      <pagination
        v-show="total > 0"
                  :total="total"
                  layout="total, sizes, prev, pager, next, jumper"
                  :page="page.current"
                  :limit="page.size"
                  @pagination="paginationChange" />
        @pagination="paginationChange"
      />
    </div>
    <batch-no-qty-detail v-if="isShowDetailModal"
    <batch-no-qty-detail
      v-if="isShowDetailModal"
                         v-model:visible="isShowDetailModal"
                         :record="record"
                         @subtract="handleDetailSubtract"
                         @frozen="handleDetailFrozen"
                         @thaw="handleDetailThaw" />
    <new-stock-inventory v-if="isShowNewModal"
      @thaw="handleDetailThaw"
    />
    <new-stock-inventory
      v-if="isShowNewModal"
                         v-model:visible="isShowNewModal"
                         :top-product-parent-id="props.productId"
                         @completed="handleQuery" />
    <subtract-stock-inventory v-if="isShowSubtractModal"
      @completed="handleQuery"
    />
    <subtract-stock-inventory
      v-if="isShowSubtractModal"
                              v-model:visible="isShowSubtractModal"
                              :record="record"
                              :type="record.stockType"
                              @completed="handleQuery" />
      @completed="handleQuery"
    />
    <!-- 导入库存-->
    <import-stock-inventory v-if="isShowImportModal"
    <import-stock-inventory
      v-if="isShowImportModal"
                            v-model:visible="isShowImportModal"
                            type="qualified"
                            @uploadSuccess="handleQuery" />
      @uploadSuccess="handleQuery"
    />
    <!-- 冻结/解冻库存-->
    <frozen-and-thaw-stock-inventory v-if="isShowFrozenAndThawModal"
    <frozen-and-thaw-stock-inventory
      v-if="isShowFrozenAndThawModal"
                                     v-model:visible="isShowFrozenAndThawModal"
                                     :record="record"
                                     :operation-type="operationType"
                                     :type="record.stockType"
                                     @completed="handleQuery" />
      @completed="handleQuery"
    />
  </div>
</template>
@@ -221,7 +246,7 @@
    searchFormRef.value?.resetFields();
    page.current = 1;
    getList();
  };
}
  // 查询列表
  /** 搜索按钮操作 */
@@ -229,7 +254,7 @@
    page.current = 1;
    getList();
  };
  const paginationChange = obj => {
const paginationChange = (obj) => {
    page.current = obj.page;
    page.size = obj.limit;
    getList();
@@ -237,7 +262,7 @@
  const getList = () => {
    tableLoading.value = true;
    getStockInventoryListPageCombined({ ...searchForm.value, ...page })
      .then(res => {
    .then((res) => {
        tableLoading.value = false;
        tableData.value = res.data.records;
        total.value = res.data.total;
@@ -249,7 +274,7 @@
      });
  };
  const handleFileSuccess = response => {
const handleFileSuccess = (response) => {
    const { code, msg } = response;
    if (code == 200) {
      ElMessage({ message: "导入成功", type: "success" });
@@ -261,13 +286,13 @@
  };
  // 点击领用
  const showSubtractModal = row => {
const showSubtractModal = (row) => {
    record.value = row;
    isShowSubtractModal.value = true;
  };
  // 点击详情
  const showDetailModal = row => {
const showDetailModal = (row) => {
    if (!row?.productId || !row?.productModelId) {
      proxy.$modal.msgError("当前数据缺少产品ID或规格型号ID");
      return;
@@ -276,39 +301,39 @@
    isShowDetailModal.value = true;
  };
  const handleDetailSubtract = row => {
const handleDetailSubtract = (row) => {
    isShowDetailModal.value = false;
    showSubtractModal(row);
  };
  const handleDetailFrozen = row => {
const handleDetailFrozen = (row) => {
    isShowDetailModal.value = false;
    showFrozenModal(row);
  };
  const handleDetailThaw = row => {
const handleDetailThaw = (row) => {
    isShowDetailModal.value = false;
    showThawModal(row);
  };
  // 点击冻结
  const showFrozenModal = row => {
const showFrozenModal = (row) => {
    record.value = row;
    isShowFrozenAndThawModal.value = true;
    operationType.value = "frozen";
  };
  // 点击解冻
  const showThawModal = row => {
const showThawModal = (row) => {
    record.value = row;
    isShowFrozenAndThawModal.value = true;
    operationType.value = "thaw";
  };
  // 表格选择数据
  const handleSelectionChange = selection => {
const handleSelectionChange = (selection) => {
    // 过滤掉子数据
    selectedRows.value = selection.filter(item => item.id);
  selectedRows.value = selection.filter((item) => item.id);
    console.log("selection", selectedRows.value);
  };
  const expandedRowKeys = ref([]);