gaoluyang
2026-04-27 b52c08544fd4ab1e8ff0f09efaac160608fd90ce
src/views/basicData/product/index.vue
@@ -12,6 +12,7 @@
          prefix-icon="Search"
        />
        <el-button
          v-if="false"
          type="primary"
          @click="openProDia('addOne')"
          style="margin-left: 10px"
@@ -49,6 +50,7 @@
                <el-button
                  type="primary"
                  link
                  :disabled="isTopLevelNode(data, node)"
                  @click="openProDia('edit', data)"
                >
                  编辑
@@ -61,6 +63,7 @@
                  style="margin-left: 4px"
                  type="danger"
                  link
                  :disabled="isTopLevelNode(data, node)"
                  @click="remove(node, data)"
                >
                  删除
@@ -74,7 +77,7 @@
    <div class="right">
      <div style="margin-bottom: 10px" v-if="isShowButton">
        <el-button type="primary" @click="openModelDia('add')">
          新增规格型号
          新增尺寸
        </el-button>
        <ImportExcel :product-id="currentId" @uploadSuccess="getModelList" />
        <el-button
@@ -129,7 +132,7 @@
    </el-dialog>
    <el-dialog
      v-model="modelDia"
      title="规格型号"
      title="尺寸"
      width="400px"
      @close="closeModelDia"
      @keydown.enter.prevent
@@ -143,10 +146,10 @@
      >
        <el-row>
          <el-col :span="24">
            <el-form-item label="规格型号:" prop="model">
            <el-form-item label="尺寸:" prop="model">
              <el-input
                v-model="modelForm.model"
                placeholder="请输入规格型号"
                placeholder="请输入尺寸"
                clearable
                @keydown.enter.prevent
              />
@@ -291,7 +294,7 @@
const expandedKeys = ref([]);
const tableColumn = ref([
  {
    label: "规格型号",
    label: "尺寸",
    prop: "model",
  },
  {
@@ -375,8 +378,18 @@
const searchFilter = () => {
  proxy.$refs.tree.filter(search.value);
};
const isTopLevelNode = (data, node) => {
  if (node?.level !== undefined) {
    return node.level === 1;
  }
  return [null, undefined, "", 0, "0"].includes(data?.parentId);
};
// 打开产品弹框
const openProDia = (type, data) => {
  if (data && type === "edit" && isTopLevelNode(data)) {
    proxy.$modal.msgWarning("一级节点不能编辑或删除");
    return;
  }
  operationType.value = type;
  productDia.value = true;
  form.value.productName = "";
@@ -384,7 +397,7 @@
    form.value.productName = data.productName;
  }
};
// 打开规格型号弹框
// 打开尺寸弹框
const openModelDia = (type, data) => {
  modelOperationType.value = type;
  modelDia.value = true;
@@ -425,6 +438,10 @@
// 删除产品
const remove = (node, data) => {
  if (isTopLevelNode(data, node)) {
    proxy.$modal.msgWarning("一级节点不能编辑或删除");
    return;
  }
  let ids = [];
  ids.push(data.id);
  ElMessageBox.confirm("选中的内容将被删除,是否确认删除?", "删除提示", {
@@ -457,7 +474,7 @@
  getModelList();
};
// 提交规格型号修改
// 提交尺寸修改
const submitModelForm = () => {
  proxy.$refs.modelFormRef.validate((valid) => {
    if (valid) {
@@ -480,7 +497,7 @@
  selectedRows.value = selection;
};
// 查询规格型号
// 查询尺寸
const pagination = (obj) => {
  page.current = obj.page;
  page.size = obj.limit;
@@ -499,7 +516,7 @@
    tableLoading.value = false;
  });
};
// 删除规格型号
// 删除尺寸
const handleDelete = () => {
  let ids = [];
  if (selectedRows.value.length > 0) {