gaoluyang
2025-12-10 97a424604c39fa3e44a1cb4c84ca5010dd74d64f
src/views/basicData/product/index.vue
@@ -55,7 +55,7 @@
                >
                  编辑
                </el-button>
                <el-button type="primary" link @click="openProDia('add', data)">
                <el-button type="primary" link @click="openProDia('add', data)" :disabled="node.level >= 3">
                  添加产品
                </el-button>
                <el-button
@@ -97,10 +97,9 @@
        @selection-change="handleSelectionChange"
        :tableLoading="tableLoading"
        @pagination="pagination"
        :total="total"
      ></PIMTable>
    </div>
    <el-dialog v-model="productDia" title="产品" width="400px">
    <el-dialog v-model="productDia" title="产品" width="400px" @keydown.enter.prevent>
      <el-form
        :model="form"
        label-width="140px"
@@ -115,6 +114,7 @@
                v-model="form.productName"
                placeholder="请输入产品名称"
                clearable
                @keydown.enter.prevent
              />
            </el-form-item>
          </el-col>
@@ -132,6 +132,7 @@
      title="规格型号"
      width="400px"
      @close="closeModelDia"
      @keydown.enter.prevent
    >
      <el-form
        :model="modelForm"
@@ -145,8 +146,9 @@
            <el-form-item label="规格型号:" prop="model">
              <el-input
                v-model="modelForm.model"
                placeholder="请输入规格型号"
                placeholder="请输入规格型号(g*袋数)"
                clearable
                @keydown.enter.prevent
              />
            </el-form-item>
          </el-col>
@@ -158,7 +160,26 @@
                v-model="modelForm.unit"
                placeholder="请输入单位"
                clearable
                @keydown.enter.prevent
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="绑定机器:" prop="speculativeTradingName">
              <el-select
                v-model="modelForm.speculativeTradingName"
                placeholder="请选择绑定机器"
                multiple
                clearable
                style="width: 100%"
              >
                <el-option label="炒机1" value="炒机1" />
                <el-option label="炒机2" value="炒机2" />
                <el-option label="炒机3" value="炒机3" />
                <el-option label="炒机4" value="炒机4" />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -210,6 +231,10 @@
    prop: "unit",
  },
  {
    label: "绑定机器",
    prop: "speculativeTradingName",
  },
  {
    dataType: "action",
    label: "操作",
    align: "center",
@@ -227,11 +252,11 @@
const tableData = ref([]);
const tableLoading = ref(false);
const isShowButton = ref(false);
const total = ref(0);
const selectedRows = ref([]);
const page = reactive({
  current: 1,
  size: 10,
  total: 0,
});
const data = reactive({
  form: {
@@ -243,10 +268,19 @@
  modelForm: {
    model: "",
    unit: "",
    speculativeTradingName: [],
  },
  modelRules: {
    model: [{ required: true, message: "请输入", trigger: "blur" }],
    model: [
      { required: true, message: "请输入", trigger: "blur" },
      {
        pattern: /^[0-9*]*$/,
        message: "只能输入数字和*号",
        trigger: "blur"
      }
    ],
    unit: [{ required: true, message: "请输入", trigger: "blur" }],
    speculativeTradingName: [{ required: false, message: "请选择绑定机器", trigger: "change" }],
  },
});
const { form, rules, modelForm, modelRules } = toRefs(data);
@@ -283,10 +317,15 @@
  modelOperationType.value = type;
  modelDia.value = true;
  modelForm.value.model = "";
  modelForm.value.model = "";
  modelForm.value.unit = "";
  modelForm.value.speculativeTradingName = [];
  modelForm.value.id = "";
  if (type === "edit") {
    modelForm.value = { ...data };
    // 如果后端返回的是字符串,需要转换为数组
    if (data.speculativeTradingName && typeof data.speculativeTradingName === 'string') {
      modelForm.value.speculativeTradingName = data.speculativeTradingName.split(',');
    }
  }
};
// 提交产品名称修改
@@ -316,6 +355,7 @@
  proxy.$refs.formRef.resetFields();
  productDia.value = false;
};
// 删除产品
const remove = (node, data) => {
  let ids = [];
@@ -354,8 +394,13 @@
const submitModelForm = () => {
  proxy.$refs.modelFormRef.validate((valid) => {
    if (valid) {
      modelForm.value.productId = currentId.value;
      addOrEditProductModel(modelForm.value).then((res) => {
      // 将选中的机器数组转换为逗号分隔的字符串
      const submitData = {
        ...modelForm.value,
        productId: currentId.value,
        speculativeTradingName: modelForm.value.speculativeTradingName.join(',')
      };
      addOrEditProductModel(submitData).then((res) => {
        proxy.$modal.msgSuccess("提交成功");
        closeModelDia();
        getModelList();
@@ -388,7 +433,7 @@
  }).then((res) => {
    console.log("res", res);
    tableData.value = res.records;
    total.value = res.total;
    page.total = res.total;
    tableLoading.value = false;
  });
};