liding
10 天以前 de544ce8cfa5c95ae38bed31404df3650b2022aa
feat(salesLedger): 添加批量操作按钮的禁用逻辑

- 为审核、反审、入库、发货、导出、删除、打印等批量按钮添加禁用状态
- 根据选中行的审核状态控制按钮可用性
- 未审核状态下只允许审核、删除、编辑操作
- 已审核状态下允许反审、入库、发货、导出、打印等操作
- 未选中任何行时所有批量按钮禁用
- 编辑按钮根据审核状态控制可编辑性
已修改1个文件
56 ■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue
@@ -105,15 +105,19 @@
                                       @confirm="handleProcessFlowSelectConfirm" />
        <el-space wrap>
          <el-button type="primary"
                     @click="handleAudit">审核</el-button>
                     @click="handleAudit"
                     :disabled="isBatchButtonDisabled('audit')">审核</el-button>
          <el-button type="primary"
                     @click="handleReverseAudit">反审</el-button>
                     @click="handleReverseAudit"
                     :disabled="isBatchButtonDisabled('reverseAudit')">反审</el-button>
          <el-button type="primary"
                     @click="handleSalesStock">入库</el-button>
                     @click="handleSalesStock"
                     :disabled="isBatchButtonDisabled('stock')">入库</el-button>
          <el-button type="primary"
                     @click="openForm('add')">新增台账</el-button>
          <el-button type="primary"
                     @click="handleBulkDelivery">发货</el-button>
                     @click="handleBulkDelivery"
                     :disabled="isBatchButtonDisabled('delivery')">发货</el-button>
          <el-button type="primary"
                     plain
                     @click="handleImport">导入</el-button>
@@ -131,13 +135,16 @@
              </el-dropdown-menu>
            </template>
          </el-dropdown>
          <el-button @click="handleOut">导出</el-button>
          <el-button @click="handleOut"
                     :disabled="isBatchButtonDisabled('export')">导出</el-button>
          <el-button type="danger"
                     plain
                     @click="handleDelete">删除</el-button>
                     @click="handleDelete"
                     :disabled="isBatchButtonDisabled('delete')">删除</el-button>
          <el-dropdown @command="handlePrintCommand">
            <el-button type="primary"
                       plain>
                       plain
                       :disabled="isBatchButtonDisabled('print')">
              打印单据<el-icon class="el-icon--right">
                <ArrowDown />
              </el-icon>
@@ -152,7 +159,8 @@
          </el-dropdown>
          <el-button type="primary"
                     plain
                     @click="handlePrintLabel">打印标签</el-button>
                     @click="handlePrintLabel"
                     :disabled="isBatchButtonDisabled('print')">打印标签</el-button>
        </el-space>
      </div>
      <el-table :data="tableData"
@@ -445,7 +453,7 @@
            <el-button link
                       type="primary"
                       @click="openForm('edit', scope.row)"
                       :disabled="!scope.row.isEdit">编辑</el-button>
                       :disabled="Number(scope.row.reviewStatus) === 1">编辑</el-button>
            <el-button link
                       type="primary"
                       @click="openProcessFlowSelect(scope.row)"
@@ -2985,6 +2993,36 @@
    handleQuery();
  };
  /** 批量按钮禁用判断:根据选中行的审核状态控制按钮可用性
   *  未审核(0):只能审核、删除、编辑
   *  已审核(1):可以反审、入库、发货、导出、打印、工艺路线
   *  未选中任何行时所有批量按钮禁用
   */
  const isBatchButtonDisabled = (action) => {
    if (selectedRows.value.length === 0) return true;
    const statuses = selectedRows.value.map(r => Number(r.reviewStatus));
    const allUnreviewed = statuses.every(s => s === 0);
    const allReviewed = statuses.every(s => s === 1);
    switch (action) {
      case 'audit':
        return !allUnreviewed;
      case 'reverseAudit':
        return !allReviewed;
      case 'stock':
        return !allReviewed;
      case 'delivery':
        return !allReviewed;
      case 'export':
        return !allReviewed;
      case 'delete':
        return !allUnreviewed;
      case 'print':
        return !allReviewed;
      default:
        return false;
    }
  };
  // 查询列表
  /** 搜索按钮操作 */
  const handleQuery = () => {