Просмотр исходного кода

refactor(product): 移除供应商和采购信息相关功能

- 删除了主供应商选择下拉框及相关表单验证规则
- 移除了采购信息卡片组件,包括产品经理和采购人员字段
- 清理了供应商选项和员工选项相关的响应式变量
- 移除了供应商和采购相关的数据获取方法
- 在商品审核页面增加了批量审核按钮和价格字段
- 修复了商品状态标签中数值类型的比较问题
- 删除了首页统计卡片中的方案数量相关展示
肖路 1 день назад
Родитель
Сommit
1a41b4ce75

+ 15 - 0
src/api/product/baseAudit/types.ts

@@ -167,6 +167,21 @@ export interface ProductAuditForm {
    * 驳回原因
    */
   auditReason?: string;
+
+  /**
+   * 最高采购价(营销审核时使用)
+   */
+  maxPurchasePrice?: number;
+
+  /**
+   * 最低售价(营销审核时使用)
+   */
+  minSellingPrice?: number;
+
+  /**
+   * 采购价(营销审核时使用)
+   */
+  purchasingPrice?: number;
 }
 
 

+ 0 - 8
src/views/index.vue

@@ -40,14 +40,6 @@
             <div class="stat-label">精选商品池</div>
             <div class="stat-value">{{ metrics.poolFeatured }}</div>
           </el-card>
-          <el-card shadow="hover" class="stat-card">
-            <div class="stat-label">方案数量</div>
-            <div class="stat-value">{{ metrics.programTotal }}</div>
-          </el-card>
-          <el-card shadow="hover" class="stat-card">
-            <div class="stat-label">今日方案新增</div>
-            <div class="stat-value">{{ metrics.programTodayNew }}</div>
-          </el-card>
         </div>
       </el-col>
 

+ 2 - 96
src/views/product/base/add.vue

@@ -188,7 +188,7 @@
               <div class="form-item-tip">A10产品名称由系统自动拼接:品牌 + 规格型号 + 【描述】 + (单位:单位),无需手动填写</div>
             </el-form-item>
 
-            
+
             <!-- 商品描述 -->
             <el-form-item label="商品描述:">
               <el-input
@@ -389,18 +389,6 @@
               />
             </el-form-item>
 
-            <!-- 主供应商 -->
-            <el-form-item label="主供应商:" prop="supplierNo" required>
-              <el-select v-model="(productForm as any).supplierNo" placeholder="请选择" clearable class="w-full" value-key="id">
-                <el-option
-                  v-for="option in supplierOptions"
-                  :key="option.id"
-                  :label="`${option.supplierNo},${option.enterpriseName}`"
-                  :value="String(option.id)"
-                />
-              </el-select>
-            </el-form-item>
-
             <!-- 售后服务 -->
             <el-form-item label="售后服务:">
               <el-select v-model="productForm.afterSalesService" placeholder="请选择" clearable class="w-full">
@@ -520,41 +508,6 @@
           </el-form>
         </el-card>
 
-        <!-- 采购信息 -->
-        <el-card v-show="currentStep === 1" shadow="never" class="step-card mt-3">
-          <template #header>
-            <span class="text-lg font-bold">采购信息</span>
-          </template>
-
-          <el-form ref="purchaseInfoFormRef" :model="productForm" :rules="productRules" label-width="120px" class="product-info-form">
-            <el-row :gutter="20">
-              <el-col :span="12">
-                <el-form-item label="产品经理:" prop="purchaseManagerNo" required>
-                  <el-select v-model="productForm.purchaseManagerNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="采购人员:" prop="purchaseNo" required>
-                  <el-select v-model="productForm.purchaseNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-card>
         <!-- 自定义属性 -->
         <el-card v-show="currentStep === 1" shadow="never" class="step-card mt-3">
           <template #header>
@@ -1089,7 +1042,6 @@ const productRules = {
   // productNo: [{ required: true, message: '商品编号不能为空', trigger: 'blur' }],
   itemName: [{ required: true, message: '商品名称不能为空', trigger: 'blur' }],
   brandId: [{ required: true, message: '商品品牌不能为空', trigger: 'change' }],
-  supplierNo: [{ required: true, message: '主供应商不能为空', trigger: 'change' }],
   marketPrice: [{ required: true, message: '市场价不能为空', trigger: 'blur' }],
   memberPrice: [{ required: true, message: '官网价不能为空', trigger: 'blur' }],
   minSellingPrice: [{ required: true, message: '最低售价不能为空', trigger: 'blur' }],
@@ -1108,8 +1060,6 @@ const productRules = {
       trigger: 'blur'
     }
   ],
-  purchaseNo: [{ required: true, message: '采购人员不能为空', trigger: 'change' }],
-  purchaseManagerNo: [{ required: true, message: '产品经理不能为空', trigger: 'change' }],
   taxRate: [{ required: true, message: '税率不能为空', trigger: 'change' }],
   minOrderQuantity: [{ required: true, message: '最低起订量不能为空', trigger: 'blur' }]
 };
@@ -1131,8 +1081,6 @@ const serviceGuaranteeOptions = ref<any[]>([]);
 // 单位选项
 const unitOptions = ref<any[]>([]);
 
-// 主供应商选项
-const supplierOptions = ref<InfoVO[]>([]);
 
 // 自定义属性列表
 const diyAttributesList = ref<ClassificationDiyForm[]>([]);
@@ -1147,8 +1095,6 @@ const removeDiyAttribute = (index: number) => {
   diyAttributesList.value.splice(index, 1);
 };
 
-// 采购人员选项
-const staffOptions = ref<ComStaffVO[]>([]);
 
 // 搜索关键词
 const searchLevel1 = ref('');
@@ -1299,8 +1245,6 @@ const selectLevel3 = async (item: categoryTreeVO) => {
   categoryForm.bottomCategoryId = item.id;
   selectedLevel3Name.value = item.label;
 
-  // 联动填充产品经理与采购人员(从三级分类详情获取)
-  await fillPurchaseFromCategory(item.id);
 
   // 加载该分类下的属性列表
   await loadCategoryAttributes(item.id);
@@ -1320,7 +1264,7 @@ const fillPurchaseFromCategory = async (categoryId: string | number, category?:
     productForm.purchaseManagerNo = detail.purchaseManagerNo || undefined;
     productForm.purchaseManagerName = detail.purchaseManagerName || undefined;
 
-  
+
   } catch (e) {
     console.error('获取三级分类采购信息失败:', e);
   }
@@ -1804,41 +1748,7 @@ const getUnitOptions = async () => {
   }
 };
 
-// 获取主供应商列表
-const getSupplierOptions = async () => {
-  try {
-    const res = await listInfo();
-    console.log('供应商接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    supplierOptions.value = dataList;
-    console.log('供应商列表:', supplierOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (supplierOptions.value.length > 0 && !(productForm as any).supplierNo) {
-      (productForm as any).supplierNo = String(supplierOptions.value[0].id);
-    }
-  } catch (error) {
-    console.error('获取主供应商列表失败:', error);
-  }
-};
 
-// 获取采购人员列表
-const getStaffOptions = async () => {
-  try {
-    const res = await listComStaff();
-    console.log('采购人员接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    staffOptions.value = dataList;
-    console.log('采购人员列表:', staffOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (staffOptions.value.length > 0 && !productForm.purchasingPersonnel) {
-      productForm.purchasingPersonnel = String(staffOptions.value[0].staffId);
-    }
-  } catch (error) {
-    console.error('获取采购人员列表失败:', error);
-  }
-};
 
 // 加载分类属性列表
 const loadCategoryAttributes = async (categoryId: string | number) => {
@@ -1902,10 +1812,6 @@ const loadProductDetail = async () => {
       const res = await getBase(id as string);
       Object.assign(productForm, res.data);
 
-      // 回显产品经理 - 确保转换为字符串类型以匹配下拉框的value
-      if (res.data.productNature !== undefined && res.data.productNature !== null) {
-        productForm.productNature = String(res.data.productNature);
-      }
 
       // 回显采购人员 - 确保转换为字符串类型以匹配下拉框的value
       if (res.data.purchasingPersonnel !== undefined && res.data.purchasingPersonnel !== null) {

+ 2 - 99
src/views/product/baseAudit/add.vue

@@ -192,7 +192,7 @@
             <el-form-item label="商品描述:">
               <el-input
                 v-model="productForm.productDescription"
-              
+
                 :rows="3"
                 placeholder="请输入商品描述"
                 maxlength="30"
@@ -395,17 +395,6 @@
             </el-form-item>
 
 
-            <!-- 主供应商 -->
-            <el-form-item label="主供应商:" prop="supplierNo" required>
-              <el-select v-model="(productForm as any).supplierNo" placeholder="请选择" clearable class="w-full" value-key="id">
-                <el-option
-                  v-for="option in supplierOptions"
-                  :key="option.id"
-                  :label="`${option.supplierNo},${option.enterpriseName}`"
-                  :value="String(option.id)"
-                />
-              </el-select>
-            </el-form-item>
 
             <!-- 售后服务 -->
             <el-form-item label="售后服务:">
@@ -526,41 +515,6 @@
           </el-form>
         </el-card>
 
-        <!-- 采购信息 -->
-        <el-card v-show="currentStep === 1" shadow="never" class="step-card mt-3">
-          <template #header>
-            <span class="text-lg font-bold">采购信息</span>
-          </template>
-
-          <el-form ref="purchaseInfoFormRef" :model="productForm" :rules="productRules" label-width="120px" class="product-info-form">
-            <el-row :gutter="20">
-              <el-col :span="12">
-                <el-form-item label="产品经理:" prop="purchaseManagerNo" required>
-                  <el-select v-model="productForm.purchaseManagerNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="采购人员:" prop="purchaseNo" required>
-                  <el-select v-model="productForm.purchaseNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-card>
         <!-- 自定义属性 -->
         <el-card v-show="currentStep === 1" shadow="never" class="step-card mt-3">
           <template #header>
@@ -1092,7 +1046,6 @@ const productRules = {
   // productNo: [{ required: true, message: '商品编号不能为空', trigger: 'blur' }],
   itemName: [{ required: true, message: '商品名称不能为空', trigger: 'blur' }],
   brandId: [{ required: true, message: '商品品牌不能为空', trigger: 'change' }],
-  // mainLibraryIntro: [{ required: true, message: '主供应商不能为空', trigger: 'change' }],
   referenceLink: [
     { required: true, message: '参考链接不能为空', trigger: 'blur' },
     {
@@ -1111,8 +1064,6 @@ const productRules = {
   minSellingPrice: [{ required: true, message: '最低售价不能为空', trigger: 'blur' }],
   purchasingPrice: [{ required: true, message: '采购价不能为空', trigger: 'blur' }],
   maxPurchasePrice: [{ required: true, message: '最高采购价不能为空', trigger: 'blur' }],
-  purchaseManagerNo: [{ required: true, message: '产品经理不能为空', trigger: 'change' }],
-  purchaseNo: [{ required: true, message: '采购人员不能为空', trigger: 'change' }],
   taxRate: [{ required: true, message: '税率不能为空', trigger: 'change' }],
   minOrderQuantity: [{ required: true, message: '最低起订量不能为空', trigger: 'blur' }]
 };
@@ -1134,8 +1085,6 @@ const serviceGuaranteeOptions = ref<any[]>([]);
 // 单位选项
 const unitOptions = ref<any[]>([]);
 
-// 主供应商选项
-const supplierOptions = ref<InfoVO[]>([]);
 
 // 自定义属性列表
 const diyAttributesList = ref<ClassificationDiyForm[]>([]);
@@ -1150,8 +1099,6 @@ const removeDiyAttribute = (index: number) => {
   diyAttributesList.value.splice(index, 1);
 };
 
-// 采购人员选项
-const staffOptions = ref<ComStaffVO[]>([]);
 
 // 搜索关键词
 const searchLevel1 = ref('');
@@ -1482,7 +1429,7 @@ const handleSubmit = async () => {
       return;
     }
 
-    
+
     // 将主图ossId转为url
     let productImageUrl = '';
     if (productForm.productImage) {
@@ -1799,41 +1746,7 @@ const getUnitOptions = async () => {
   }
 };
 
-// 获取主供应商列表
-const getSupplierOptions = async () => {
-  try {
-    const res = await listInfo();
-    console.log('供应商接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    supplierOptions.value = dataList;
-    console.log('供应商列表:', supplierOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (supplierOptions.value.length > 0 && !productForm.mainLibraryIntro) {
-      productForm.mainLibraryIntro = String(supplierOptions.value[0].id);
-    }
-  } catch (error) {
-    console.error('获取主供应商列表失败:', error);
-  }
-};
 
-// 获取采购人员列表
-const getStaffOptions = async () => {
-  try {
-    const res = await listComStaff();
-    console.log('采购人员接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    staffOptions.value = dataList;
-    console.log('采购人员列表:', staffOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (staffOptions.value.length > 0 && !productForm.purchaseNo) {
-      productForm.purchaseNo = String(staffOptions.value[0].staffId);
-    }
-  } catch (error) {
-    console.error('获取采购人员列表失败:', error);
-  }
-};
 
 
 
@@ -1899,16 +1812,6 @@ const loadProductDetail = async () => {
       const res = await getBaseAudit(id as string);
       Object.assign(productForm, res.data.productBaseVo);
 
-      // 回显产品经理 - 确保转换为字符串类型以匹配下拉框的value
-      if (res.data.productBaseVo.purchaseManagerNo !== undefined && res.data.productBaseVo.purchaseManagerNo !== null) {
-        productForm.purchaseManagerNo = String(res.data.productBaseVo.purchaseManagerNo);
-      }
-
-      // 回显采购人员 - 确保转换为字符串类型以匹配下拉框的value
-      if (res.data.productBaseVo.purchaseNo !== undefined && res.data.productBaseVo.purchaseNo !== null) {
-        productForm.purchaseNo = String(res.data.productBaseVo.purchaseNo);
-      }
-
       // 回显税率编码显示值
       const rawData = res.data.productBaseVo as any;
       // 通过 taxationId 调接口获取中文名称回显

+ 98 - 4
src/views/product/baseAudit/index.vue

@@ -119,6 +119,16 @@
         >
         <div class="ml-auto flex gap-2">
           <el-button v-if="queryParams.auditStatus === 0" type="primary" icon="Plus" @click="handleAdd">商品新增</el-button>
+          <el-button
+            v-if="queryParams.auditStatus === 1 || queryParams.auditStatus === 4 || queryParams.auditStatus === 5"
+            type="warning"
+            plain
+            icon="Select"
+            :disabled="ids.length === 0"
+            @click="handleBatchAudit"
+          >
+            批量审核
+          </el-button>
           <el-button plain icon="Download" @click="handleExport">导出</el-button>
           <el-button circle icon="Refresh" @click="getList"></el-button>
         </div>
@@ -241,14 +251,46 @@
       />
     </el-card>
     <!-- 审核弹框 -->
-    <el-dialog v-model="auditDialog.visible" title="商品审核" width="480px" :close-on-click-modal="false">
-      <el-form ref="auditFormRef" :model="auditForm" :rules="auditRules" label-width="90px">
+    <el-dialog v-model="auditDialog.visible" title="商品审核" width="540px" :close-on-click-modal="false">
+      <el-form ref="auditFormRef" :model="auditForm" :rules="auditRules" label-width="120px">
         <el-form-item label="审核结果" prop="auditStatus">
           <el-radio-group v-model="auditForm.auditStatus">
             <el-radio value="2">审核通过</el-radio>
             <el-radio value="3">驳回</el-radio>
           </el-radio-group>
         </el-form-item>
+        <template v-if="currentAuditRow?.auditStatus === 4">
+          <el-form-item label="最高采购价" prop="maxPurchasePrice">
+            <el-input-number
+              v-model="auditForm.maxPurchasePrice"
+              :min="0"
+              :precision="2"
+              controls-position="right"
+              style="width: 100%"
+              placeholder="请输入最高采购价"
+            />
+          </el-form-item>
+          <el-form-item label="最低售价" prop="minSellingPrice">
+            <el-input-number
+              v-model="auditForm.minSellingPrice"
+              :min="0"
+              :precision="2"
+              controls-position="right"
+              style="width: 100%"
+              placeholder="请输入最低售价"
+            />
+          </el-form-item>
+          <el-form-item label="采购价" prop="purchasingPrice">
+            <el-input-number
+              v-model="auditForm.purchasingPrice"
+              :min="0"
+              :precision="2"
+              controls-position="right"
+              style="width: 100%"
+              placeholder="请输入采购价"
+            />
+          </el-form-item>
+        </template>
         <el-form-item v-if="auditForm.auditStatus === '3'" label="驳回原因" prop="auditReason">
           <el-input
             v-model="auditForm.auditReason"
@@ -322,6 +364,7 @@ const buttonLoading = ref(false);
 const loading = ref(true);
 const showSearch = ref(true);
 const ids = ref<Array<string | number>>([]);
+const selectedRows = ref<BaseAuditVO[]>([]);
 const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
@@ -491,8 +534,9 @@ const resetQuery = () => {
 };
 
 /** 多选框选中数据 */
-const handleSelectionChange = (selection: BaseVO[]) => {
+const handleSelectionChange = (selection: BaseAuditVO[]) => {
   ids.value = selection.map((item) => item.id);
+  selectedRows.value = selection;
   single.value = selection.length != 1;
   multiple.value = !selection.length;
 };
@@ -698,10 +742,16 @@ const auditDialog = reactive({
 
 const auditFormRef = ref<ElFormInstance>();
 
+/** 当前正在审核的行数据(用于判断 auditStatus === 4 时显示价格字段) */
+const currentAuditRow = ref<BaseAuditVO | null>(null);
+
 const auditForm = reactive<ProductAuditForm>({
   ids: [],
   auditStatus: undefined,
-  auditReason: undefined
+  auditReason: undefined,
+  maxPurchasePrice: undefined,
+  minSellingPrice: undefined,
+  purchasingPrice: undefined
 });
 
 const auditRules = {
@@ -723,10 +773,20 @@ const handleCommitAudit = async (row: BaseAuditVO) => {
 
 /** 打开审核弹框 */
 const handleAudit = (row: BaseAuditVO) => {
+  currentAuditRow.value = row;
   auditForm.ids = [row.id];
   auditForm.auditStatus = undefined;
   auditForm.auditReason = undefined;
+  auditForm.maxPurchasePrice = undefined;
+  auditForm.minSellingPrice = undefined;
+  auditForm.purchasingPrice = undefined;
   auditFormRef.value?.resetFields();
+  // auditStatus === 4(营销审核)时回显价格字段
+  if (row.auditStatus === 4) {
+    auditForm.maxPurchasePrice = row.productBaseVo?.maxPurchasePrice;
+    auditForm.minSellingPrice = row.productBaseVo?.minSellingPrice;
+    auditForm.purchasingPrice = row.productBaseVo?.purchasingPrice;
+  }
   auditDialog.visible = true;
 };
 
@@ -746,6 +806,40 @@ const submitAudit = async () => {
   }
 };
 
+/** 批量审核 */
+const handleBatchAudit = async () => {
+  if (ids.value.length === 0) {
+    proxy?.$modal.msgWarning('请先选择要审核的商品');
+    return;
+  }
+
+  // 检查选中的行审核状态是否一致
+  const auditStatusSet = new Set(selectedRows.value.map((r) => r.auditStatus));
+  if (auditStatusSet.size > 1) {
+    proxy?.$modal.msgWarning('只能批量审核相同审核状态的商品');
+    return;
+  }
+
+  const firstStatus = selectedRows.value[0]?.auditStatus;
+
+  // auditStatus=4(营销审核)时提示价格信息
+  if (firstStatus === 4) {
+    await proxy?.$modal.confirm('批量价格审核后最低售价=官网价,最高采购价=采购价');
+  } else {
+    await proxy?.$modal.confirm(`确认批量审核通过所选 ${ids.value.length} 个商品吗?`);
+  }
+
+  try {
+    await auditBaseAudit({
+      ids: [...ids.value],
+      auditStatus: '2'
+    });
+    proxy?.$modal.msgSuccess(`批量审核通过成功(共 ${ids.value.length} 条)`);
+    await getList();
+  } catch (error) {
+    console.error('批量审核失败:', error);
+  }
+};
 /** 修改库存(占位,避免TS报错) */
 const handleSupply = (row: BaseAuditVO) => {
   console.log('修改库存', row);

+ 0 - 98
src/views/product/baseAudit/view.vue

@@ -226,17 +226,6 @@
             </el-form-item>
 
 
-            <!-- 主供应商 -->
-            <el-form-item label="主供应商:" prop="supplierNo" required>
-              <el-select v-model="(productForm as any).supplierNo" placeholder="请选择" clearable class="w-full" value-key="id">
-                <el-option
-                  v-for="option in supplierOptions"
-                  :key="option.id"
-                  :label="`${option.supplierNo},${option.enterpriseName}`"
-                  :value="String(option.id)"
-                />
-              </el-select>
-            </el-form-item>
 
             <!-- 售后服务 -->
             <el-form-item label="售后服务:">
@@ -393,41 +382,6 @@
           </el-form>
         </el-card>
 
-        <!-- 采购信息 -->
-        <el-card shadow="never" class="step-card mt-3">
-          <template #header>
-            <span class="text-lg font-bold">采购信息</span>
-          </template>
-
-          <el-form ref="purchaseInfoFormRef" :model="productForm" :rules="productRules" label-width="120px" class="product-info-form" disabled>
-            <el-row :gutter="20">
-              <el-col :span="12">
-                <el-form-item label="产品经理:" prop="purchaseManagerNo" required>
-                  <el-select v-model="productForm.purchaseManagerNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="采购人员:" prop="purchaseNo" required>
-                  <el-select v-model="productForm.purchaseNo" placeholder="请选择" clearable class="w-full" value-key="staffId">
-                    <el-option
-                      v-for="option in staffOptions"
-                      :key="option.staffId"
-                      :label="`${option.staffCode},${option.staffName}`"
-                      :value="String(option.staffId)"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-card>
         <!-- 自定义属性 -->
         <el-card shadow="never" class="step-card mt-3">
           <template #header>
@@ -910,13 +864,10 @@ const productRules = {
   // productNo: [{ required: true, message: '商品编号不能为空', trigger: 'blur' }],
   itemName: [{ required: true, message: '商品名称不能为空', trigger: 'blur' }],
   brandId: [{ required: true, message: '商品品牌不能为空', trigger: 'change' }],
-  // mainLibraryIntro: [{ required: true, message: '主供应商不能为空', trigger: 'change' }],
   marketPrice: [{ required: true, message: '市场价不能为空', trigger: 'blur' }],
   memberPrice: [{ required: true, message: '平台售价不能为空', trigger: 'blur' }],
   minSellingPrice: [{ required: true, message: '最低售价不能为空', trigger: 'blur' }],
   purchasingPrice: [{ required: true, message: '采购价不能为空', trigger: 'blur' }],
-  purchaseManagerNo: [{ required: true, message: '产品经理不能为空', trigger: 'change' }],
-  purchaseNo: [{ required: true, message: '采购人员不能为空', trigger: 'change' }],
   taxRate: [{ required: true, message: '税率不能为空', trigger: 'change' }],
   minOrderQuantity: [{ required: true, message: '最低起订量不能为空', trigger: 'blur' }]
 };
@@ -938,9 +889,6 @@ const serviceGuaranteeOptions = ref<any[]>([]);
 // 单位选项
 const unitOptions = ref<any[]>([]);
 
-// 主供应商选项
-const supplierOptions = ref<InfoVO[]>([]);
-
 // 自定义属性列表
 const diyAttributesList = ref<ClassificationDiyForm[]>([]);
 
@@ -954,8 +902,6 @@ const removeDiyAttribute = (index: number) => {
   diyAttributesList.value.splice(index, 1);
 };
 
-// 采购人员选项
-const staffOptions = ref<ComStaffVO[]>([]);
 
 // 搜索关键词
 const searchLevel1 = ref('');
@@ -1417,41 +1363,7 @@ const getUnitOptions = async () => {
   }
 };
 
-// 获取主供应商列表
-const getSupplierOptions = async () => {
-  try {
-    const res = await listInfo();
-    console.log('供应商接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    supplierOptions.value = dataList;
-    console.log('供应商列表:', supplierOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (supplierOptions.value.length > 0 && !productForm.mainLibraryIntro) {
-      productForm.mainLibraryIntro = String(supplierOptions.value[0].id);
-    }
-  } catch (error) {
-    console.error('获取主供应商列表失败:', error);
-  }
-};
 
-// 获取采购人员列表
-const getStaffOptions = async () => {
-  try {
-    const res = await listComStaff();
-    console.log('采购人员接口返回:', res);
-    // 处理可能的数据结构: res.data 或 res.rows
-    const dataList = res.data || res.rows || [];
-    staffOptions.value = dataList;
-    console.log('采购人员列表:', staffOptions.value);
-    // 如果有选项且当前没有选中值,设置第一个为默认值
-    if (staffOptions.value.length > 0 && !productForm.purchaseNo) {
-      productForm.purchaseNo = String(staffOptions.value[0].staffId);
-    }
-  } catch (error) {
-    console.error('获取采购人员列表失败:', error);
-  }
-};
 
 // 获取税率列表
 const getTaxRateOptions = async () => {
@@ -1525,16 +1437,6 @@ const loadProductDetail = async () => {
       const res = await getBaseAudit(id as string);
       Object.assign(productForm, res.data.productBaseVo);
 
-      // 回显产品经理 - 确保转换为字符串类型以匹配下拉框的value
-      if (res.data.productBaseVo.purchaseManagerNo !== undefined && res.data.productBaseVo.purchaseManagerNo !== null) {
-        productForm.purchaseManagerNo = String(res.data.productBaseVo.purchaseManagerNo);
-      }
-
-      // 回显采购人员 - 确保转换为字符串类型以匹配下拉框的value
-      if (res.data.productBaseVo.purchaseNo !== undefined && res.data.productBaseVo.purchaseNo !== null) {
-        productForm.purchaseNo = String(res.data.productBaseVo.purchaseNo);
-      }
-
       // 回显税率编码显示值
       const rawData = res.data.productBaseVo as any;
       // 通过 taxationId 调接口获取中文名称回显

+ 1 - 1
src/views/product/poolAuditReview/index.vue

@@ -90,7 +90,7 @@
         </el-table-column>
         <el-table-column label="商品状态" align="center" width="80">
           <template #default="scope">
-            <el-tag v-if="scope.row.productStatus === '1'" type="success">上架</el-tag>
+            <el-tag v-if="scope.row.productStatus === 1" type="success">上架</el-tag>
             <el-tag v-else type="warning">下架</el-tag>
           </template>
         </el-table-column>

+ 1 - 1
src/views/product/poolLink/index.vue

@@ -172,7 +172,7 @@
         <!-- <el-table-column label="项目官网价" align="center" prop="platformPrice" width="100" /> -->
         <el-table-column label="商品状态" align="center" width="80">
           <template #default="scope">
-            <el-tag v-if="scope.row.productStatus === '1'" type="success">上架</el-tag>
+            <el-tag v-if="scope.row.productStatus === 1" type="success">上架</el-tag>
             <el-tag v-else type="warning">下架</el-tag>
           </template>
         </el-table-column>

+ 1 - 1
src/views/product/protocolInfo/productManage.vue

@@ -124,7 +124,7 @@
         <!-- <el-table-column label="项目官网价" align="center" prop="platformPrice" width="100" /> -->
         <el-table-column label="商品状态" align="center" width="80">
           <template #default="scope">
-            <el-tag v-if="scope.row.productStatus === '1'" type="success">上架</el-tag>
+            <el-tag v-if="scope.row.productStatus === 1" type="success">上架</el-tag>
             <el-tag v-else type="warning">下架</el-tag>
           </template>
         </el-table-column>