yyb
5 天以前 203cf783a18b2a5e85ba4e80505c4a49d4ccc4a5
feat(销售台账): 新增打印销售标签功能

- 在salesLedger.js中添加getSalesLabel函数以获取销售标签数据
- 在index.vue中新增打印标签按钮和相关逻辑,支持单条销售台账数据的标签打印
- 增强用户体验,提供打印标签的反馈和错误处理
已修改2个文件
40 ■■■■■ 文件已修改
src/api/salesManagement/salesLedger.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/salesLedger.js
@@ -196,3 +196,11 @@
    data,
  });
}
// 打印销售标签
export function getSalesLabel(salesLedgerId) {
  return request({
    url: `/sales/ledger/salesLabel/${salesLedgerId}`,
    method: "get",
  });
}
src/views/salesManagement/salesLedger/index.vue
@@ -57,6 +57,7 @@
              </el-dropdown-menu>
            </template>
          </el-dropdown>
          <el-button type="primary" plain @click="handlePrintLabel">打印标签</el-button>
        </div>
      </div>
      <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
@@ -894,6 +895,7 @@
    getProcessCard,
    getSalesOrder,
    getSalesInvoices,
    getSalesLabel,
} from "@/api/salesManagement/salesLedger.js";
import { modelList, productTreeList } from "@/api/basicData/product.js";
import useFormData from "@/hooks/useFormData.js";
@@ -902,6 +904,7 @@
import { printFinishedProcessCard } from "./components/processCardPrint.js";
import { printSalesOrder } from "./components/salesOrderPrint.js";
import { printSalesDeliveryNote } from "./components/salesDeliveryPrint.js";
import { printSalesLabel } from "./components/salesLabelPrint.js";
// import { salesLedgerProductSetProcessFlowConfig } from "@/api/salesManagement/salesProcessFlowConfig.js";
const userStore = useUserStore();
@@ -2113,6 +2116,35 @@
    }
};
const handlePrintLabel = async () => {
    if (selectedRows.value.length !== 1) {
        proxy.$modal.msgWarning("请选择一条销售台账数据进行标签打印");
        return;
    }
    const selectedId = selectedRows.value[0]?.id;
    if (!selectedId) {
        proxy.$modal.msgWarning("当前选择数据缺少ID,无法打印标签");
        return;
    }
    proxy.$modal.loading("正在获取标签数据,请稍候...");
    try {
        const res = await getSalesLabel(selectedId);
        const labelList = res?.data ?? [];
        if (!Array.isArray(labelList) || labelList.length === 0) {
            proxy.$modal.msgWarning("暂无可打印标签数据");
            return;
        }
        printSalesLabel(labelList);
    } catch (error) {
        console.error("打印标签失败:", error);
        proxy.$modal.msgError("打印标签失败,请稍后重试");
    } finally {
        proxy.$modal.closeLoading();
    }
};
const mathNum = () => {
    console.log("productForm.value", productForm.value);
    if (!productForm.value.taxInclusiveUnitPrice) {