zhangwencui
2 天以前 65c6a24024ad223ba2bdffee2c4c3d47b2d3f456
下发流程修改、产品维护增加拉取数据
已修改3个文件
80 ■■■■■ 文件已修改
src/api/basicData/newProduct.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/product/index.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionPlan/productionPlan/index.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/basicData/newProduct.js
@@ -123,4 +123,11 @@
        method: 'get',
        params: query
    })
}
// 拉取数据
export function loadData() {
    return request({
        url: '/productMaterial/loadData',
        method: 'get',
    })
}
src/views/basicData/product/index.vue
@@ -12,6 +12,9 @@
        <el-button type="primary"
                   @click="openProDia1('addOne')"
                   style="margin-left: 10px">新增产品大类</el-button>
        <el-button type="primary"
                   @click="getloadData"
                   style="margin-left: 10px">拉取数据</el-button>
      </div>
      <div ref="containerRef">
        <el-tree ref="tree"
@@ -280,6 +283,7 @@
    addOrEditProductConfig,
    updateOrEditProductConfig,
    delProductConfig,
    loadData,
  } from "@/api/basicData/newProduct.js";
  import ImportExcel from "./ImportExcel/index.vue";
@@ -301,6 +305,20 @@
  const expandedKeys = ref([]);
  const inventoryCategoryList = ref([]);
  const materialTypeList = ref([]);
  const getloadData = () => {
    loadData()
      .then(res => {
        getInventoryCategoryList();
        getMaterialTypeList();
        getProductTreeList();
        tableData.value = [];
        isShowButton.value = false;
      })
      .catch(err => {
        console.error("拉取失败:", err);
      });
  };
  // 获取存货类别列表
  const getInventoryCategoryList = () => {
@@ -772,8 +790,8 @@
    gap: 20px;
  }
  .left {
    width: 450px;
    min-width: 450px;
    width: 465px;
    min-width: 465px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
src/views/productionPlan/productionPlan/index.vue
@@ -244,7 +244,6 @@
                          @change="handleProductChange"
                          style="width: 100%" />
        </el-form-item>
        <el-form-item label="产品规格"
                      prop="productMaterialSkuId">
          <el-select v-model="form.productMaterialSkuId"
@@ -343,7 +342,7 @@
    productionPlanCombine,
  } from "@/api/productionPlan/productionPlan.js";
  import PIMTable from "./components/PIMTable.vue";
  import {modelListPage, productTreeList} from "@/api/basicData/newProduct.js";
  import { modelListPage, productTreeList } from "@/api/basicData/newProduct.js";
  const { proxy } = getCurrentInstance();
@@ -491,6 +490,7 @@
          clickFun: row => {
            // 单独下发操作
            // 设置表单数据
            mergeForm.ids = [row.id];
            mergeForm.materialCode = row.materialCode;
            mergeForm.productName = row.productName || "";
            mergeForm.specification = row.specification || "";
@@ -566,8 +566,8 @@
  // 新增/编辑相关
  const dialogVisible = ref(false);
  const operationType = ref("add"); // add | edit
  const productOptions = ref([])
  const specificationOptions = ref([])
  const productOptions = ref([]);
  const specificationOptions = ref([]);
  const formRef = ref(null);
  const form = reactive({
    id: undefined,
@@ -630,10 +630,10 @@
      productOptions.value = convertIdToValue(res.data);
      return res;
    });
  }
  };
  const convertIdToValue = (data) => {
    return data.map((item) => {
  const convertIdToValue = data => {
    return data.map(item => {
      const newItem = {
        value: `config_${item.configId}`, // 使用config_前缀确保唯一性
        label: item.configName,
@@ -648,29 +648,31 @@
      return newItem;
    });
  }
  };
  const handleProductChange = (value) => {
    form.productMaterialSkuId = undefined
    fetchSpecificationOptions(value)
  }
  const handleProductChange = value => {
    form.productMaterialSkuId = undefined;
    fetchSpecificationOptions(value);
  };
  const fetchSpecificationOptions = (materialId) => {
    specificationOptions.value = []
  const fetchSpecificationOptions = materialId => {
    specificationOptions.value = [];
    if (materialId) {
      modelListPage({ materialId: materialId}).then(res => {
      modelListPage({ materialId: materialId }).then(res => {
        specificationOptions.value = res.data;
      });
    }
  }
  };
  const handleChangeSpecification = (value) => {
    form.materialCode = undefined
    const selectedModel = specificationOptions.value.find((item) => item.id === value)
  const handleChangeSpecification = value => {
    form.materialCode = undefined;
    const selectedModel = specificationOptions.value.find(
      item => item.id === value
    );
    if (selectedModel) {
      form.materialCode = selectedModel.materialCode
      form.materialCode = selectedModel.materialCode;
    }
  }
  };
  // 生成模拟进度详情数据
  const generateProgressDetails = status => {
@@ -887,6 +889,7 @@
    mergeForm.height = firstRow.height || 0;
    mergeForm.totalAssignedQuantity = totalAssignedQuantity;
    mergeForm.planCompleteTime = firstRow.planCompleteTime || "";
    mergeForm.ids = selectedRows.value.map(row => row.id);
    // 打开弹窗
    isShowNewModal.value = true;
@@ -906,16 +909,16 @@
      return;
    }
    mergeForm.ids = selectedRows.value.map(row => row.id);
    console.log(mergeForm, "mergeForm");
    productionPlanCombine(mergeForm)
      .then(res => {
        if (res.code === 200) {
          ElMessage.success("合并下发成功");
          ElMessage.success("下发成功");
          getList();
          isShowNewModal.value = false;
          // 可以选择刷新列表或其他操作
        } else {
          ElMessage.error(res.message || "合并下发失败");
          ElMessage.error(res.message || "下发失败");
        }
      })
      .catch(err => {