spring
4 天以前 3639cc3129fe3433f110a18d53b1cae2c4f4ff8e
src/views/inventoryManagement/receiptManagement/Record.vue
@@ -15,6 +15,16 @@
                  style="width: 240px"
                  placeholder="请输入"
                  clearable/>
        <span class="search_title ml10">来源:</span>
        <el-select v-model="searchForm.recordType"
                  style="width: 240px"
                  placeholder="请选择"
                  clearable>
          <el-option v-for="item in stockRecordTypeOptions"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"/>
        </el-select>
        <el-button type="primary"
                   @click="handleQuery"
                   style="margin-left: 10px">搜索
@@ -63,9 +73,40 @@
        <el-table-column label="入库数量"
                         prop="stockInNum"
                         show-overflow-tooltip/>
        <el-table-column label="审批状态"
                         prop="approveStatus"
                         align="center"
                         width="120">
          <template #default="scope">
            <el-tag :type="getApproveStatusType(scope.row.approveStatus)">
              {{ getApproveStatusText(scope.row.approveStatus) }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="入库人"
                         prop="createBy"
                         show-overflow-tooltip/>
        <el-table-column label="来源"
                         prop="recordType"
                         show-overflow-tooltip>
          <template #default="scope">
            {{ getRecordType(scope.row.recordType) }}
          </template>
        </el-table-column>
        <el-table-column label="操作"
                         align="center"
                         width="200">
          <template #default="scope">
            <el-button
              v-if="scope.row.approveStatus === 3"
              type="primary"
              link
              @click="handleReApprove(scope.row)"
            >
              重新提起审批
            </el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination v-show="total > 0"
                  :total="total"
@@ -85,13 +126,16 @@
  toRefs,
  onMounted,
  getCurrentInstance,
  nextTick,
} from "vue";
import {ElMessageBox} from "element-plus";
import {
  getStockInRecordListPage,
  batchDeleteStockInRecords,
  updateStockInRecordForReApprove,
} from "@/api/inventoryManagement/stockInRecord.js";
import {
  findAllQualifiedStockInRecordTypeOptions, findAllUnQualifiedStockInRecordTypeOptions,
} from "@/api/basicData/enum.js";
const {proxy} = getCurrentInstance();
@@ -106,11 +150,11 @@
const tableData = ref([]);
const selectedRows = ref([]);
const tableLoading = ref(false);
const activeTab = ref("production"); // 当前激活的 tab
// 来源类型选项
const stockRecordTypeOptions = ref([]);
const page = reactive({
  current: 1,
  size: 100,
  size: 10,
});
const total = ref(0);
@@ -118,6 +162,7 @@
  searchForm: {
    productName: "",
    timeStr: "",
    recordType: "",
  },
});
const {searchForm} = toRefs(data);
@@ -126,6 +171,28 @@
const handleQuery = () => {
  page.current = 1;
  getList();
};
const getRecordType = (recordType) => {
  return stockRecordTypeOptions.value.find(item => item.value === recordType)?.label || ''
}
const getApproveStatusText = (status) => {
  if (status === 0) return "待审核";
  if (status === 1) return "审核中";
  if (status === 2) return "审核完成";
  if (status === 3) return "审核未通过";
  if (status === 4) return "已重新提交";
  return "-";
};
const getApproveStatusType = (status) => {
  if (status === 0) return "warning";
  if (status === 1) return "primary";
  if (status === 2) return "success";
  if (status === 3) return "danger";
  if (status === 4) return "info";
  return "";
};
const pageProductChange = obj => {
@@ -139,13 +206,30 @@
  const params = {...page, type: props.type};
  params.timeStr = searchForm.value.timeStr;
  params.productName = searchForm.value.productName;
  params.recordType = searchForm.value.recordType;
  getStockInRecordListPage(params)
      .then(res => {
        tableData.value = res.data.records;
        total.value = res.data.total || 0;
      }).finally(() => {
    tableLoading.value = false;
  })
};
// 获取来源类型选项
const fetchStockRecordTypeOptions = () => {
  if (props.type === '0') {
    findAllQualifiedStockInRecordTypeOptions()
        .then(res => {
          stockRecordTypeOptions.value = res.data;
        })
    return
  }
  findAllUnQualifiedStockInRecordTypeOptions()
      .then(res => {
        stockRecordTypeOptions.value = res.data;
      })
}
// 表格选择数据
const handleSelectionChange = selection => {
@@ -153,6 +237,34 @@
};
const expandedRowKeys = ref([]);
const handleReApprove = (row) => {
  if (!row || !row.id) {
    return;
  }
  ElMessageBox.confirm(
    "该记录审核未通过,是否重新提起入库审批?",
    "重新提起审批",
    {
      confirmButtonText: "确认",
      cancelButtonText: "取消",
      type: "warning",
    }
  )
    .then(() => {
      updateStockInRecordForReApprove({ ...row })
        .then(() => {
          proxy.$modal.msgSuccess("已重新发起审批");
          getList();
        })
        .catch(() => {
          proxy.$modal.msgError("重新发起审批失败");
        });
    })
    .catch(() => {
      proxy.$modal.msg("已取消");
    });
};
// 导出
const handleOut = () => {
@@ -163,11 +275,7 @@
  })
      .then(() => {
        // 根据不同的 tab 类型调用不同的导出接口
        let exportUrl = "/stockin/export";
        if (activeTab.value === "production") {
          exportUrl = "/stockin/exportOne";
        }
        proxy.download(exportUrl, {}, "入库台账.xlsx");
        proxy.download("/stockInRecord/exportStockInRecord", {type: props.type}, props.type === '0' ? "合格入库.xlsx" : "不合格入库.xlsx");
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
@@ -204,6 +312,7 @@
onMounted(() => {
  getList();
  fetchStockRecordTypeOptions();
});
</script>