src/views/productionManagement/productionProcess/index.vue
@@ -1,17 +1,38 @@
// 工序
<template>
  <div class="app-container">
    <div class="search_form">
      <el-form :model="searchForm"
               :inline="true">
        <el-form-item label="工序名称:">
        <el-form-item label="产品名称:">
          <el-input v-model="searchForm.name"
                    placeholder="请输入"
                    placeholder="请输入产品名称"
                    clearable
                    prefix-icon="Search"
                    style="width: 200px;"
                    @change="handleQuery" />
        </el-form-item>
        <el-form-item label="工序编号:">
        <el-form-item label="部件类型:">
          <el-select v-model="searchForm.type"
                     placeholder="请选择"
                     clearable
                     style="width: 200px;"
                     @change="handleQuery">
            <el-option label="加工"
                       :value="1" />
            <el-option label="刮板冷芯制作"
                       :value="2" />
            <el-option label="管路组对"
                       :value="3" />
            <el-option label="罐体连接及调试"
                       :value="4" />
            <el-option label="测试打压"
                       :value="5" />
            <el-option label="其他"
                       :value="6" />
          </el-select>
        </el-form-item>
        <el-form-item label="部件编号:">
          <el-input v-model="searchForm.no"
                    placeholder="请输入"
                    clearable
@@ -29,14 +50,14 @@
      <div style="text-align: right"
           class="mb10">
        <el-button type="primary"
                   @click="showNewModal">新增工序</el-button>
                   @click="showNewModal">新增部件</el-button>
        <el-button type="info"
                   plain
                   @click="handleImport">导入</el-button>
        <el-button type="danger"
                   @click="handleDelete"
                   :disabled="selectedRows.length === 0"
                   plain>删除工序</el-button>
                   plain>删除部件</el-button>
      </div>
      <PIMTable rowKey="id"
                :column="tableColumn"
@@ -57,10 +78,13 @@
                  @completed="getList" />
    <ImportDialog ref="importDialogRef"
                  v-model="importDialogVisible"
                  title="导入工序"
                  title="导入部件"
                  :action="importAction"
                  :headers="importHeaders"
                  :loading="importLoading"
                  :disabled="importLoading"
                  :auto-upload="false"
                  :on-progress="handleImportProgress"
                  :on-success="handleImportSuccess"
                  :on-error="handleImportError"
                  @confirm="handleImportConfirm"
@@ -85,26 +109,36 @@
  const data = reactive({
    searchForm: {
      name: "",
      type: undefined,
      no: "",
    },
  });
  const { searchForm } = toRefs(data);
  const tableColumn = ref([
    {
      label: "工序编号",
      prop: "no",
    },
    {
      label: "工序名称",
      label: "产品名称",
      prop: "name",
    },
    {
      label: "工序类型",
      label: "产品规格",
      prop: "productModel",
    },
    {
      label: "部件编号",
      prop: "no",
    },
    {
      label: "部件类型",
      prop: "typeText",
    },
    {
      label: "工资定额",
      label: "计划工时(小时)",
      prop: "salaryQuota",
    },
    {
      label: "计划人员",
      prop: "plannerName",
    },
    {
      label: "是否质检",
@@ -145,6 +179,7 @@
  const isShowEditModal = ref(false);
  const record = ref({});
  const importDialogVisible = ref(false);
  const importLoading = ref(false);
  const importDialogRef = ref(null);
  const page = reactive({
    current: 1,
@@ -152,6 +187,7 @@
    total: 0,
  });
  const { proxy } = getCurrentInstance();
  // 导入相关配置
  const importAction =
@@ -179,7 +215,7 @@
        tableLoading.value = false;
        tableData.value = res.data.records.map(item => ({
          ...item,
          typeText: item.type !== undefined ? (item.type === 0 ? "计时" : "计件") : "",
          typeText: item.type !== undefined && item.type !== null ? (item.type === 1 ? "加工" : item.type === 2 ? "刮板冷芯制作" : item.type === 3 ? "管路组对" : item.type === 4 ? "罐体连接及调试" : item.type === 5 ? "测试打压" : "其他") : "",
        }));
        page.total = res.data.total;
      })
@@ -209,7 +245,7 @@
    if (no.length > 2) {
      proxy.$modal
        .confirm(
          '是否确认删除工序编号为"' +
          '是否确认删除部件编号为"' +
            no[0] +
            "、" +
            no[1] +
@@ -227,7 +263,7 @@
        .catch(() => {});
    } else {
      proxy.$modal
        .confirm('是否确认删除工序编号为"' + no + '"的数据项?')
        .confirm('是否确认删除部件编号为"' + no + '"的数据项?')
        .then(function () {
          return del(ids);
        })
@@ -251,8 +287,14 @@
    }
  };
  // 导入中
  const handleImportProgress = () => {
    importLoading.value = true;
  };
  // 导入成功
  const handleImportSuccess = response => {
    importLoading.value = false;
    if (response.code === 200) {
      proxy.$modal.msgSuccess("导入成功");
      importDialogVisible.value = false;
@@ -267,11 +309,13 @@
  // 导入失败
  const handleImportError = error => {
    importLoading.value = false;
    proxy.$modal.msgError("导入失败:" + (error.message || "未知错误"));
  };
  // 关闭导入弹窗
  const handleImportClose = () => {
    importLoading.value = false;
    if (importDialogRef.value) {
      importDialogRef.value.clearFiles();
    }
@@ -287,7 +331,7 @@
      const url = window.URL.createObjectURL(blob);
      const link = document.createElement("a");
      link.href = url;
      link.download = "工序导入模板.xlsx";
      link.download = "部件导入模板.xlsx";
      link.click();
      window.URL.revokeObjectURL(url);
      proxy.$modal.msgSuccess("模板下载成功");
@@ -304,7 +348,7 @@
  //       type: "warning",
  //    })
  //       .then(() => {
  //          proxy.download("/salesLedger/scheduling/exportTwo", {}, "工序排产.xlsx");
  //          proxy.download("/salesLedger/scheduling/exportTwo", {}, "部件排产.xlsx");
  //       })
  //       .catch(() => {
  //          proxy.$modal.msg("已取消");