sun-biz 0.0.3-beta.10 → 0.0.3-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -655,8 +655,8 @@ function useAppConfigData(name) {
655
655
  * @param params
656
656
  * @returns
657
657
  */ const queryUserList = (params)=>(0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.dictRequest)('/user/queryUserListByExample', params);
658
- function useDialog() {
659
- const visible = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
658
+ function useDialog(initialVisible = false) {
659
+ const visible = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(initialVisible);
660
660
  const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
661
661
  const openDialog = ()=>visible.value = true;
662
662
  const closeDialog = ()=>visible.value = false;
@@ -672,6 +672,7 @@ function useDialog() {
672
672
  };
673
673
  }
674
674
  const _hoisted_1 = {
675
+ key: 0,
675
676
  class: "dialog-footer"
676
677
  };
677
678
  /* ESM default export */ const pro_dialogvue_type_script_setup_true_lang_ts_name_ProDialog = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
@@ -680,6 +681,10 @@ const _hoisted_1 = {
680
681
  confirmFn: {
681
682
  type: Function
682
683
  },
684
+ showConfirmButton: {
685
+ type: Boolean,
686
+ default: true
687
+ },
683
688
  confirmDisabled: {
684
689
  type: Boolean,
685
690
  default: false
@@ -688,23 +693,35 @@ const _hoisted_1 = {
688
693
  type: Boolean,
689
694
  default: false
690
695
  },
691
- includeFooter: {
696
+ closeOnCancel: {
692
697
  type: Boolean,
693
698
  default: true
694
699
  }
695
700
  },
696
701
  emits: [
697
- "success"
702
+ "success",
703
+ "cancel"
698
704
  ],
699
705
  setup (__props, { expose: __expose, emit: __emit }) {
700
706
  const { visible, closeDialog, openDialog } = useDialog();
701
707
  const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
702
708
  const attrs = (0, __WEBPACK_EXTERNAL_MODULE_vue__.useAttrs)();
709
+ const dialogRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
703
710
  const emits = __emit;
711
+ // 纯关闭弹窗,不执行其他操作,用于左上角X
712
+ const justCloseDialog = ()=>{
713
+ closeDialog();
714
+ };
715
+ // 处理常规关闭,支持before-close钩子
704
716
  const handleClose = ()=>{
705
717
  if (attrs?.["before-close"]) (attrs?.["before-close"])(closeDialog);
706
718
  else closeDialog();
707
719
  };
720
+ // 处理取消按钮点击
721
+ const handleCancel = ()=>{
722
+ emits("cancel");
723
+ if (__props.closeOnCancel) handleClose();
724
+ };
708
725
  const handleConfirm = async ()=>{
709
726
  if (__props.confirmFn) {
710
727
  loading.value = true;
@@ -715,52 +732,66 @@ const _hoisted_1 = {
715
732
  handleClose();
716
733
  emits("success");
717
734
  }
718
- } catch (error) {
735
+ } catch {
719
736
  loading.value = false;
720
737
  }
721
738
  }
722
739
  };
723
740
  __expose({
741
+ ref: dialogRef,
724
742
  open: openDialog,
725
- close: closeDialog
743
+ close: closeDialog,
744
+ visible
726
745
  });
727
746
  return (_ctx, _cache)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, [
728
747
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElDialog), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
748
+ ref_key: "dialogRef",
749
+ ref: dialogRef
750
+ }, _ctx.$attrs, {
729
751
  modelValue: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(visible),
730
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>(0, __WEBPACK_EXTERNAL_MODULE_vue__.isRef)(visible) ? visible.value = $event : null)
731
- }, _ctx.$attrs), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createSlots)({
752
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>(0, __WEBPACK_EXTERNAL_MODULE_vue__.isRef)(visible) ? visible.value = $event : null),
753
+ onClose: justCloseDialog
754
+ }), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createSlots)({
755
+ footer: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
756
+ _ctx.$slots.footer ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderSlot)(_ctx.$slots, "footer", {
757
+ key: 1
758
+ }) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", _hoisted_1, [
759
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElButton), {
760
+ onClick: handleCancel
761
+ }, {
762
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>_cache[1] || (_cache[1] = [
763
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("取消")
764
+ ])),
765
+ _: 1
766
+ }),
767
+ _ctx.showConfirmButton ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElButton), {
768
+ key: 0,
769
+ loading: loading.value,
770
+ type: "primary",
771
+ disabled: _ctx.confirmDisabled,
772
+ onClick: handleConfirm
773
+ }, {
774
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>_cache[2] || (_cache[2] = [
775
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)(" 确认 ")
776
+ ])),
777
+ _: 1
778
+ }, 8, [
779
+ "loading",
780
+ "disabled"
781
+ ])) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true)
782
+ ]))
783
+ ]),
732
784
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
733
785
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderSlot)(_ctx.$slots, "default")
734
786
  ]),
735
787
  _: 2
736
788
  }, [
737
- _ctx.includeFooter ? {
738
- name: "footer",
739
- fn: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
740
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", _hoisted_1, [
741
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElButton), {
742
- onClick: handleClose
743
- }, {
744
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>_cache[1] || (_cache[1] = [
745
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("取消")
746
- ])),
747
- _: 1
748
- }),
749
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElButton), {
750
- loading: loading.value,
751
- type: "primary",
752
- disabled: _ctx.confirmDisabled,
753
- onClick: handleConfirm
754
- }, {
755
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>_cache[2] || (_cache[2] = [
756
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)(" 确认 ")
757
- ])),
758
- _: 1
759
- }, 8, [
760
- "loading",
761
- "disabled"
762
- ])
763
- ])
789
+ _ctx.$slots.header ? {
790
+ name: "header",
791
+ fn: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(({ titleClass })=>[
792
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderSlot)(_ctx.$slots, "header", {
793
+ titleClass: titleClass
794
+ })
764
795
  ]),
765
796
  key: "0"
766
797
  } : void 0
@@ -3064,6 +3095,7 @@ const BannerInfo_exports_ = BannerInfovue_type_script_setup_true_lang_ts_name_ba
3064
3095
  },
3065
3096
  setup (__props, { expose: __expose }) {
3066
3097
  const props = __props;
3098
+ const { templateConfirm } = createPrint();
3067
3099
  const templateModel = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)({
3068
3100
  templateId: ""
3069
3101
  });
@@ -3530,328 +3562,320 @@ var constant_DATA_SOURCE_CONTENT_TYPE_CODE = /*#__PURE__*/ function(DATA_SOURCE_
3530
3562
  // 将容器添加到 body
3531
3563
  document.body.appendChild(container);
3532
3564
  }
3533
- let defaultContext = {
3534
- printParams: void 0,
3535
- receiptInfo: void 0,
3536
- splitResult: [
3537
- {
3538
- receiptSort: 1,
3539
- receiptSplitResultId: null,
3540
- receiptSplitTypeCode: constant_RECEIPT_SPLIT_TYPE_CODE.NO_SPLIT
3565
+ const createPrint = ()=>{
3566
+ /**
3567
+ * 打印主步骤
3568
+ */ // 1.获取单据信息
3569
+ // 2.设计时标志===0弹窗询问
3570
+ // 3.打印模板选择
3571
+ // 4.分单
3572
+ // 5.组织分单结果
3573
+ // 6.票据业务
3574
+ // 7.循环分单结果,进行单据打印
3575
+ /** 初始数据 */ /** 此处是为了防止下次进入的时候存在缓存数据 */ const initData = ()=>({
3576
+ printParams: void 0,
3577
+ receiptInfo: void 0,
3578
+ splitResult: [
3579
+ {
3580
+ receiptSort: 1,
3581
+ receiptSplitResultId: null,
3582
+ receiptSplitTypeCode: constant_RECEIPT_SPLIT_TYPE_CODE.NO_SPLIT
3583
+ }
3584
+ ],
3585
+ printTemplate: void 0,
3586
+ printTemplateList: [],
3587
+ receiptAllotInfo: [],
3588
+ dataSourceContentItem: void 0,
3589
+ dataSourceContentTypeCodeItem: void 0
3590
+ });
3591
+ let defaultContext = initData();
3592
+ // 打印
3593
+ const printStart = async (params)=>{
3594
+ /** 初始化 */ defaultContext = initData();
3595
+ defaultContext.printParams = params;
3596
+ await fetchReceiptInfo();
3597
+ if (!defaultContext.receiptInfo) return;
3598
+ return await dialogAsk();
3599
+ };
3600
+ /**
3601
+ * 获取单据信息
3602
+ */ const fetchReceiptInfo = async ()=>{
3603
+ const [, res] = await queryReceiptByExample({
3604
+ receiptIds: [
3605
+ defaultContext.printParams?.receiptId
3606
+ ]
3607
+ });
3608
+ if (res?.success) defaultContext = {
3609
+ ...defaultContext,
3610
+ receiptInfo: res.data[0]
3611
+ };
3612
+ };
3613
+ /**
3614
+ * 设计时标志===0弹窗询问
3615
+ */ const dialogAsk = async ()=>{
3616
+ if (defaultContext?.printParams?.designFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES) return nextAction();
3617
+ const { receiptPrintRuleCode, receiptPrintCategCode, receiptNameDisplay, menuXReceiptList } = defaultContext.receiptInfo || {};
3618
+ // 通用
3619
+ if (receiptPrintRuleCode === constant_RECEIPT_PRINT_RULE_CODE.GENERAL) return await messageBoxAskJudge(receiptPrintCategCode, receiptNameDisplay);
3620
+ // 按菜单
3621
+ if (receiptPrintRuleCode === constant_RECEIPT_PRINT_RULE_CODE.MENU) {
3622
+ //获取菜单打印配置信息
3623
+ const menuReceiptInfo = menuXReceiptList?.find((item)=>item.sysXMenuId === defaultContext.printParams?.sysMenuId);
3624
+ const code = menuReceiptInfo?.receiptPrintCategCode ? menuReceiptInfo?.receiptPrintCategCode : receiptPrintCategCode;
3625
+ return await messageBoxAskJudge(code, receiptNameDisplay);
3626
+ // ElMessage.error(`${receiptNameDisplay} 未设置菜单打印类别.`);
3541
3627
  }
3542
- ],
3543
- printTemplate: void 0,
3544
- printTemplateList: [],
3545
- receiptAllotInfo: [],
3546
- dataSourceContentItem: void 0,
3547
- dataSourceContentTypeCodeItem: void 0
3548
- };
3549
- /**
3550
- * 打印主步骤
3551
- */ // 1.获取单据信息
3552
- // 2.设计时标志===0弹窗询问
3553
- // 3.打印模板选择
3554
- // 4.分单
3555
- // 5.组织分单结果
3556
- // 6.票据业务
3557
- // 7.循环分单结果,进行单据打印
3558
- /** 初始数据 */ /** 此处是为了防止下次进入的时候存在缓存数据 */ const print_initData = async ()=>{
3559
- defaultContext = {
3560
- printParams: void 0,
3561
- receiptInfo: void 0,
3562
- splitResult: [
3563
- {
3564
- receiptSort: 1,
3565
- receiptSplitResultId: null,
3566
- receiptSplitTypeCode: constant_RECEIPT_SPLIT_TYPE_CODE.NO_SPLIT
3567
- }
3568
- ],
3569
- printTemplate: void 0,
3570
- printTemplateList: [],
3571
- receiptAllotInfo: [],
3572
- dataSourceContentItem: void 0,
3573
- dataSourceContentTypeCodeItem: void 0
3574
3628
  };
3575
- };
3576
- // 打印
3577
- const printStart = async (params)=>{
3578
- /** 初始化 */ await print_initData();
3579
- defaultContext.printParams = params;
3580
- await fetchReceiptInfo();
3581
- if (!defaultContext.receiptInfo) return;
3582
- await dialogAsk();
3583
- };
3584
- /**
3585
- * 获取单据信息
3586
- */ const fetchReceiptInfo = async ()=>{
3587
- const [, res] = await queryReceiptByExample({
3588
- receiptIds: [
3589
- defaultContext.printParams?.receiptId
3590
- ]
3591
- });
3592
- if (res?.success) {
3593
- defaultContext.receiptInfo = res.data[0];
3594
- return true;
3595
- }
3596
- return false;
3597
- };
3598
- /**
3599
- * 设计时标志===0弹窗询问
3600
- */ const dialogAsk = async ()=>{
3601
- if (defaultContext?.printParams?.designFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES) {
3602
- nextAction();
3603
- return;
3604
- }
3605
- const { receiptPrintRuleCode, receiptPrintCategCode, receiptNameDisplay, menuXReceiptList } = defaultContext.receiptInfo || {};
3606
- // 通用
3607
- if (receiptPrintRuleCode === constant_RECEIPT_PRINT_RULE_CODE.GENERAL) await messageBoxAskJudge(receiptPrintCategCode, receiptNameDisplay);
3608
- // 按菜单
3609
- if (receiptPrintRuleCode === constant_RECEIPT_PRINT_RULE_CODE.MENU) {
3610
- //获取菜单打印配置信息
3611
- const menuReceiptInfo = menuXReceiptList?.find((item)=>item.sysXMenuId === defaultContext.printParams?.sysMenuId);
3612
- const code = menuReceiptInfo?.receiptPrintCategCode ? menuReceiptInfo?.receiptPrintCategCode : receiptPrintCategCode;
3613
- await messageBoxAskJudge(code, receiptNameDisplay);
3614
- // ElMessage.error(`${receiptNameDisplay} 未设置菜单打印类别.`);
3615
- }
3616
- };
3617
- /**
3618
- * 弹窗询问判断方法
3619
- */ const messageBoxAskJudge = async (receiptPrintCategCode, receiptNameDisplay)=>{
3620
- if (receiptPrintCategCode === constant_RECEIPT_PRINT_CATEG_CODE.ASK_PRINT || receiptPrintCategCode === constant_RECEIPT_PRINT_CATEG_CODE.ASK_ISSUE_NO_PRINT) await messageBoxAsk(receiptPrintCategCode, receiptNameDisplay);
3621
- else await nextAction();
3622
- };
3623
- /**
3624
- * ElMessageBox询问
3625
- */ const messageBoxAsk = async (code, receiptNameDisplay)=>{
3626
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessageBox.confirm(`是否${code === constant_RECEIPT_PRINT_CATEG_CODE.ASK_PRINT ? "打印" : "开具"} ${receiptNameDisplay}`, "提示", {
3627
- confirmButtonText: "确定",
3628
- cancelButtonText: "取消",
3629
- type: "warning"
3630
- }).then(async ()=>{
3631
- await nextAction();
3632
- });
3633
- };
3634
- /**
3635
- * 34567
3636
- */ const nextAction = async ()=>{
3637
- // 3.打印模板选择
3638
- await printTemplateFn();
3639
- if (!defaultContext?.printTemplate) return;
3640
- };
3641
- /**
3642
- * 打印模板选择
3643
- */ const printTemplateFn = async ()=>{
3644
- const { chooseReceiptTemplateRuleList, receiptNameDisplay } = defaultContext?.receiptInfo || {};
3645
- // 打印模板list
3646
- defaultContext.printTemplateList = chooseReceiptTemplateRuleList?.filter((item)=>item.enabledFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES) ?? [];
3647
- if (defaultContext?.printTemplateList.length > 1) createPrintTemplate({
3648
- printTemplateList: defaultContext?.printTemplateList
3649
- });
3650
- else if (defaultContext?.printTemplateList.length === 1) {
3651
- defaultContext.printTemplate = defaultContext?.printTemplateList[0];
3629
+ /**
3630
+ * 弹窗询问判断方法
3631
+ */ const messageBoxAskJudge = async (receiptPrintCategCode, receiptNameDisplay)=>{
3632
+ if (receiptPrintCategCode === constant_RECEIPT_PRINT_CATEG_CODE.ASK_PRINT || receiptPrintCategCode === constant_RECEIPT_PRINT_CATEG_CODE.ASK_ISSUE_NO_PRINT) return await messageBoxAsk(receiptPrintCategCode, receiptNameDisplay);
3633
+ return await nextAction();
3634
+ };
3635
+ /**
3636
+ * ElMessageBox询问
3637
+ */ const messageBoxAsk = async (code, receiptNameDisplay)=>{
3638
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessageBox.confirm(`是否${code === constant_RECEIPT_PRINT_CATEG_CODE.ASK_PRINT ? "打印" : "开具"} ${receiptNameDisplay}`, "提示", {
3639
+ confirmButtonText: "确定",
3640
+ cancelButtonText: "取消",
3641
+ type: "warning"
3642
+ }).then(async ()=>await nextAction());
3643
+ };
3644
+ /**
3645
+ * 34567
3646
+ */ const nextAction = async ()=>{
3647
+ // 3.打印模板选择
3648
+ const data = await printTemplateFn();
3649
+ if (!defaultContext?.printTemplate) return;
3650
+ return data;
3651
+ };
3652
+ /**
3653
+ * 打印模板选择
3654
+ */ const printTemplateFn = async ()=>{
3655
+ const { chooseReceiptTemplateRuleList, receiptNameDisplay } = defaultContext?.receiptInfo || {};
3656
+ // 打印模板list
3657
+ defaultContext.printTemplateList = chooseReceiptTemplateRuleList?.filter((item)=>item.enabledFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES) ?? [];
3658
+ if (defaultContext?.printTemplateList.length > 1) createPrintTemplate({
3659
+ printTemplateList: defaultContext?.printTemplateList
3660
+ });
3661
+ else if (defaultContext?.printTemplateList.length === 1) {
3662
+ defaultContext.printTemplate = defaultContext?.printTemplateList[0];
3663
+ await splitReceiptFn();
3664
+ return await printLoop();
3665
+ } else {
3666
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error(`${receiptNameDisplay} 没有有效的模板`);
3667
+ throw new Error(`${receiptNameDisplay} 没有有效的模板`);
3668
+ }
3669
+ };
3670
+ /**
3671
+ * 模板选择
3672
+ */ const templateConfirm = async (template)=>{
3673
+ defaultContext.printTemplate = template;
3652
3674
  await splitReceiptFn();
3653
- await printLoop();
3654
- } else {
3655
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error(`${receiptNameDisplay} 没有有效的模板`);
3656
- throw new Error(`${receiptNameDisplay} 没有有效的模板`);
3657
- }
3658
- };
3659
- /**
3660
- * 模板选择
3661
- */ const templateConfirm = async (template)=>{
3662
- defaultContext.printTemplate = template;
3663
- await splitReceiptFn();
3664
- await printLoop();
3665
- };
3666
- /**
3667
- * 分单
3668
- */ const splitReceiptFn = async ()=>{
3669
- if (defaultContext.printParams?.designFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO) {
3670
- //5
3671
- if (!defaultContext?.printParams?.dataSourceContent && (defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO || defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES && defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.ISSUE)) await receiptSplitResultFn();
3672
- //6
3673
- if (defaultContext?.printParams?.invoiceInfo?.invoiceAllotId && defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES && defaultContext?.receiptInfo?.receiptPrintCategCode !== constant_RECEIPT_PRINT_CATEG_CODE.NO_PRINT) {
3675
+ return await printLoop();
3676
+ };
3677
+ /**
3678
+ * 分单
3679
+ */ const splitReceiptFn = async ()=>{
3680
+ if (defaultContext.printParams?.designFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO) {
3681
+ //5
3682
+ if (!defaultContext?.printParams?.dataSourceContent && (defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO || defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES && defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.ISSUE)) await receiptSplitResultFn();
3683
+ //6
3684
+ if (defaultContext?.printParams?.invoiceInfo?.invoiceAllotId && defaultContext?.receiptInfo?.invoiceFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES && defaultContext?.receiptInfo?.receiptPrintCategCode !== constant_RECEIPT_PRINT_CATEG_CODE.NO_PRINT) {
3685
+ const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3686
+ interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3687
+ menuId: defaultContext?.printParams?.sysMenuId,
3688
+ tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV001,
3689
+ params: {
3690
+ receiptId: defaultContext?.printParams?.receiptId,
3691
+ invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId
3692
+ }
3693
+ });
3694
+ if (res?.success) {
3695
+ defaultContext.receiptAllotInfo = res?.data?.bizOutputParam ?? [];
3696
+ await invoiceSplitResultFn();
3697
+ }
3698
+ }
3699
+ }
3700
+ };
3701
+ /**
3702
+ * 单据分单接口
3703
+ */ const receiptSplitResultFn = async ()=>{
3704
+ const [, res] = await splitReceipt({
3705
+ receiptId: defaultContext?.printParams?.receiptId,
3706
+ bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3707
+ bizIds: defaultContext?.printParams?.bizIds
3708
+ });
3709
+ if (res?.success) defaultContext.splitResult = res.data?.receiptDataSourceList ?? [];
3710
+ };
3711
+ /**
3712
+ * 票据分单
3713
+ */ const invoiceSplitResultFn = async ()=>{
3714
+ // 票据操作类型代码---1开具
3715
+ if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.ISSUE) {
3716
+ const invoiceInfo = (defaultContext?.receiptAllotInfo ?? [])[0];
3717
+ if (invoiceInfo?.invoiceMediaTypeCode === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_MEDIA_TYPE_CODE.ELECTRONIC && (defaultContext?.splitResult?.length ?? 0) < (invoiceInfo?.residueCount ?? 0)) {
3718
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error(`当前票据数量不足,所需票据张数[${defaultContext?.splitResult?.length}],剩余张数[${invoiceInfo?.residueCount}]!`);
3719
+ throw new Error(`当前票据数量不足,所需票据张数[${defaultContext?.splitResult?.length}],剩余张数[${invoiceInfo?.residueCount}]!`);
3720
+ }
3674
3721
  const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3675
3722
  interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3676
3723
  menuId: defaultContext?.printParams?.sysMenuId,
3677
- tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV001,
3724
+ tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV101,
3678
3725
  params: {
3679
- receiptId: defaultContext?.printParams?.receiptId,
3680
- invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId
3726
+ invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3727
+ invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3728
+ orgIssueFlag: defaultContext?.printParams?.invoiceInfo?.orgIssueFlag,
3729
+ issueOrgName: defaultContext?.printParams?.invoiceInfo?.issueOrgName,
3730
+ socialCreditNo: defaultContext?.printParams?.invoiceInfo?.socialCreditNo,
3731
+ invoiceMemo: defaultContext?.printParams?.invoiceInfo?.invoiceMemo,
3732
+ invoiceList: defaultContext?.splitResult
3681
3733
  }
3682
3734
  });
3683
- if (res?.success) {
3684
- defaultContext.receiptAllotInfo = res?.data?.bizOutputParam ?? [];
3685
- await invoiceSplitResultFn();
3686
- }
3735
+ if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3687
3736
  }
3688
- }
3689
- };
3690
- /**
3691
- * 单据分单接口
3692
- */ const receiptSplitResultFn = async ()=>{
3693
- const [, res] = await splitReceipt({
3694
- receiptId: defaultContext?.printParams?.receiptId,
3695
- bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3696
- bizIds: defaultContext?.printParams?.bizIds
3697
- });
3698
- if (res?.success) defaultContext.splitResult = res.data?.receiptDataSourceList ?? [];
3699
- };
3700
- /**
3701
- * 票据分单
3702
- */ const invoiceSplitResultFn = async ()=>{
3703
- // 票据操作类型代码---1开具
3704
- if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.ISSUE) {
3705
- const invoiceInfo = (defaultContext?.receiptAllotInfo ?? [])[0];
3706
- if (invoiceInfo?.invoiceMediaTypeCode === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_MEDIA_TYPE_CODE.ELECTRONIC && (defaultContext?.splitResult?.length ?? 0) < (invoiceInfo?.residueCount ?? 0)) {
3707
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error(`当前票据数量不足,所需票据张数[${defaultContext?.splitResult?.length}],剩余张数[${invoiceInfo?.residueCount}]!`);
3708
- throw new Error(`当前票据数量不足,所需票据张数[${defaultContext?.splitResult?.length}],剩余张数[${invoiceInfo?.residueCount}]!`);
3737
+ // 票据操作类型代码---6重开
3738
+ if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.REOPEN) {
3739
+ const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3740
+ interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3741
+ menuId: defaultContext?.printParams?.sysMenuId,
3742
+ tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV104,
3743
+ params: {
3744
+ invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3745
+ invoiceIds: defaultContext?.printParams?.invoiceInfo?.invoiceIds
3746
+ }
3747
+ });
3748
+ if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3709
3749
  }
3710
- const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3711
- interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3712
- menuId: defaultContext?.printParams?.sysMenuId,
3713
- tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV101,
3714
- params: {
3715
- invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3716
- invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3717
- orgIssueFlag: defaultContext?.printParams?.invoiceInfo?.orgIssueFlag,
3718
- issueOrgName: defaultContext?.printParams?.invoiceInfo?.issueOrgName,
3719
- socialCreditNo: defaultContext?.printParams?.invoiceInfo?.socialCreditNo,
3720
- invoiceMemo: defaultContext?.printParams?.invoiceInfo?.invoiceMemo,
3721
- invoiceList: defaultContext?.splitResult
3722
- }
3723
- });
3724
- if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3725
- }
3726
- // 票据操作类型代码---6重开
3727
- if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.REOPEN) {
3728
- const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3729
- interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3730
- menuId: defaultContext?.printParams?.sysMenuId,
3731
- tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV104,
3732
- params: {
3733
- invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3734
- invoiceIds: defaultContext?.printParams?.invoiceInfo?.invoiceIds
3735
- }
3736
- });
3737
- if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3738
- }
3739
- // 票据操作类型代码---5换开
3740
- if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.CHANGE) {
3741
- const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3742
- interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3743
- menuId: defaultContext?.printParams?.sysMenuId,
3744
- tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV103,
3745
- params: {
3746
- invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3747
- invoiceIds: defaultContext?.printParams?.invoiceInfo?.invoiceIds
3748
- }
3749
- });
3750
- if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3751
- }
3752
- // 票据操作类型代码---3红冲
3753
- if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.CHANGE) {
3754
- const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3755
- interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3756
- menuId: defaultContext?.printParams?.sysMenuId,
3757
- tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV102,
3758
- params: {
3759
- invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3760
- invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3761
- bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3762
- oldBizId: defaultContext?.printParams?.invoiceInfo?.oldBizId,
3763
- redBizId: defaultContext?.printParams?.bizIds,
3764
- onlyRedFlag: defaultContext?.printParams?.invoiceInfo?.onlyRedFlag
3765
- }
3766
- });
3767
- if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3768
- }
3769
- };
3770
- /** 循环打印 */ const printLoop = async ()=>{
3771
- defaultContext?.splitResult?.forEach(async (item)=>{
3772
- await printReceiptFn(item);
3773
- });
3774
- };
3775
- /**
3776
- * 7.单据打印
3777
- */ const printReceiptFn = async (item)=>{
3778
- if (defaultContext?.receiptInfo?.printInterfaceId) {
3779
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持打印接口");
3780
- throw new Error("暂不支持打印接口");
3781
- }
3782
- if (defaultContext?.printParams?.dataSourceContent) {
3783
- defaultContext.dataSourceContentItem = defaultContext?.printParams?.dataSourceContent;
3784
- defaultContext.dataSourceContentTypeCodeItem = defaultContext?.printParams?.dataSourceContentTypeCode;
3785
- }
3786
- if (!defaultContext?.printParams?.dataSourceContent) {
3787
- if (defaultContext?.printParams?.insurInterfaceId) {
3788
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持医保单据内容获取!");
3789
- throw new Error("暂不支持医保单据内容获取!");
3750
+ // 票据操作类型代码---5换开
3751
+ if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.CHANGE) {
3752
+ const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3753
+ interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3754
+ menuId: defaultContext?.printParams?.sysMenuId,
3755
+ tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV103,
3756
+ params: {
3757
+ invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3758
+ invoiceIds: defaultContext?.printParams?.invoiceInfo?.invoiceIds
3759
+ }
3760
+ });
3761
+ if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3790
3762
  }
3791
- if ([
3792
- constant_ELECTRONIC_INVOICE_CODE.OUTPATIENT_REGISTRATION,
3793
- constant_ELECTRONIC_INVOICE_CODE.OUTPATIENT_CHARGE,
3794
- constant_ELECTRONIC_INVOICE_CODE.HOSPITALIZATION_SETTLEMENT,
3795
- constant_ELECTRONIC_INVOICE_CODE.PREPAYMENT
3796
- ].includes(defaultContext?.receiptInfo?.receiptId)) {
3797
- const [, res] = await queryInvoiceBizNos({
3798
- invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3799
- bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3800
- bizIds: defaultContext?.printParams?.bizIds,
3801
- onlyLastFlag: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO,
3802
- receiptSplitResultId: item.receiptSplitResultId
3763
+ // 票据操作类型代码---3红冲
3764
+ if (defaultContext?.printParams?.invoiceInfo?.invOperateTypeCode === constant_INV_OPERATE_TYPE_CODE.CHANGE) {
3765
+ const [, res] = await (0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.interfaceInvoke)({
3766
+ interfaceId: defaultContext?.printParams?.invoiceInfo?.invoiceInterfaceId ?? defaultContext?.receiptInfo?.invoiceInterfaceId,
3767
+ menuId: defaultContext?.printParams?.sysMenuId,
3768
+ tradeCode: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.INVOICE_CODE.INV102,
3769
+ params: {
3770
+ invoiceAllotId: defaultContext?.printParams?.invoiceInfo?.invoiceAllotId,
3771
+ invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3772
+ bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3773
+ oldBizId: defaultContext?.printParams?.invoiceInfo?.oldBizId,
3774
+ redBizId: defaultContext?.printParams?.bizIds,
3775
+ onlyRedFlag: defaultContext?.printParams?.invoiceInfo?.onlyRedFlag
3776
+ }
3803
3777
  });
3804
- if (res?.success) {
3805
- defaultContext.dataSourceContentItem = ((res.data?.bizIssueList ?? [])[0].invoiceList ?? [])[0].eInvoiceH5Url;
3806
- defaultContext.dataSourceContentTypeCodeItem = constant_DATA_SOURCE_CONTENT_TYPE_CODE.H5;
3778
+ if (res?.success) defaultContext.splitResult = res.data?.invoiceList ?? [];
3779
+ }
3780
+ };
3781
+ /** 循环打印 */ const printLoop = async ()=>{
3782
+ // 修改这里:使用 Promise.all 等待所有异步操作完成
3783
+ const results = await Promise.all((defaultContext?.splitResult || []).map(async (item)=>await printReceiptFn(item)));
3784
+ // 检查结果数组中是否所有项都是 undefined
3785
+ const allUndefined = results.every((item)=>void 0 === item);
3786
+ // 如果所有项都是 undefined,返回空数组,否则返回原结果
3787
+ return allUndefined ? [] : results;
3788
+ };
3789
+ /**
3790
+ * 7.单据打印
3791
+ */ const printReceiptFn = async (item)=>{
3792
+ if (defaultContext?.receiptInfo?.printInterfaceId) {
3793
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持打印接口");
3794
+ throw new Error("暂不支持打印接口");
3795
+ }
3796
+ if (defaultContext?.printParams?.dataSourceContent) {
3797
+ defaultContext.dataSourceContentItem = defaultContext?.printParams?.dataSourceContent;
3798
+ defaultContext.dataSourceContentTypeCodeItem = defaultContext?.printParams?.dataSourceContentTypeCode;
3799
+ }
3800
+ if (!defaultContext?.printParams?.dataSourceContent) {
3801
+ if (defaultContext?.printParams?.insurInterfaceId) {
3802
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持医保单据内容获取!");
3803
+ throw new Error("暂不支持医保单据内容获取!");
3807
3804
  }
3808
- } else {
3809
- const [, res] = await queryReceiptDataSource({
3810
- receiptId: defaultContext?.printParams?.receiptId,
3811
- designFlag: defaultContext?.printParams?.designFlag,
3812
- bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3813
- bizIds: defaultContext?.printParams?.bizIds,
3814
- receiptSplitResultId: item.receiptSplitResultId
3815
- });
3816
- if (res?.success) {
3817
- defaultContext.dataSourceContentItem = res.data?.dataSourceContent;
3818
- defaultContext.dataSourceContentTypeCodeItem = constant_DATA_SOURCE_CONTENT_TYPE_CODE.JSON;
3805
+ if ([
3806
+ constant_ELECTRONIC_INVOICE_CODE.OUTPATIENT_REGISTRATION,
3807
+ constant_ELECTRONIC_INVOICE_CODE.OUTPATIENT_CHARGE,
3808
+ constant_ELECTRONIC_INVOICE_CODE.HOSPITALIZATION_SETTLEMENT,
3809
+ constant_ELECTRONIC_INVOICE_CODE.PREPAYMENT
3810
+ ].includes(defaultContext?.receiptInfo?.receiptId)) {
3811
+ const [, res] = await queryInvoiceBizNos({
3812
+ invoiceUsageCode: defaultContext?.printParams?.invoiceInfo?.invoiceUsageCode,
3813
+ bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3814
+ bizIds: defaultContext?.printParams?.bizIds,
3815
+ onlyLastFlag: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO,
3816
+ receiptSplitResultId: item.receiptSplitResultId
3817
+ });
3818
+ if (res?.success) {
3819
+ defaultContext.dataSourceContentItem = ((res.data?.bizIssueList ?? [])[0].invoiceList ?? [])[0].eInvoiceH5Url;
3820
+ defaultContext.dataSourceContentTypeCodeItem = constant_DATA_SOURCE_CONTENT_TYPE_CODE.H5;
3821
+ }
3822
+ } else {
3823
+ const [, res] = await queryReceiptDataSource({
3824
+ receiptId: defaultContext?.printParams?.receiptId,
3825
+ designFlag: defaultContext?.printParams?.designFlag,
3826
+ bizIdTypeCode: defaultContext?.printParams?.bizIdTypeCode,
3827
+ bizIds: defaultContext?.printParams?.bizIds,
3828
+ receiptSplitResultId: item.receiptSplitResultId
3829
+ });
3830
+ if (res?.success) {
3831
+ defaultContext.dataSourceContentItem = res.data?.dataSourceContent;
3832
+ defaultContext.dataSourceContentTypeCodeItem = constant_DATA_SOURCE_CONTENT_TYPE_CODE.JSON;
3833
+ }
3819
3834
  }
3820
3835
  }
3821
- }
3822
- /** h5 */ if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.H5) location.href = defaultContext?.dataSourceContentItem;
3823
- /** base64 */ if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.BASE64) {
3824
- __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持该方式打印");
3825
- throw new Error("暂不支持该方式打印");
3826
- }
3827
- if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.JSON) {
3828
- const params = {
3829
- formOperationType: defaultContext?.printParams?.formOperationType,
3830
- printType: defaultContext?.printParams?.printType,
3831
- receiptId: defaultContext?.printParams?.receiptId,
3832
- receiptTemplateRuleId: defaultContext?.printTemplate?.receiptTemplateRuleId,
3833
- receiptTemplateName: defaultContext?.printTemplate?.receiptTemplateName,
3834
- dataSourceContentTypeCode: defaultContext?.dataSourceContentTypeCodeItem,
3835
- dataSourceContent: defaultContext?.dataSourceContentItem,
3836
- printQty: defaultContext?.receiptInfo?.printQty
3837
- };
3838
- /** 判断是否客户端打印 */ const { isLocalPrint } = use_app_config([
3839
- use_app_config_MAIN_APP_CONFIG.IS_LOCAL_PRINT
3840
- ]);
3841
- if (isLocalPrint) {
3842
- const [, res] = await designPreviewPrintReceipt(params);
3843
- if (res?.success) return res.data ?? [];
3844
- } else {
3845
- /** 调用接口 */ const [, res] = await designPreviewPrintReceiptWeb(params);
3846
- if (res?.success) {
3847
- if (defaultContext?.printParams?.formOperationType === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FORM_OPERATION_TYPE.PRINT) useWebPrint(res?.data);
3848
- else useDesignAndPreview(res?.data, defaultContext?.printParams?.formOperationType === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FORM_OPERATION_TYPE.DESIGN ? "设计" : "预览");
3836
+ /** h5 */ if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.H5) location.href = defaultContext?.dataSourceContentItem;
3837
+ /** base64 */ if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.BASE64) {
3838
+ __WEBPACK_EXTERNAL_MODULE_element_sun__.ElMessage.error("暂不支持该方式打印");
3839
+ throw new Error("暂不支持该方式打印");
3840
+ }
3841
+ if (defaultContext?.dataSourceContentTypeCodeItem === constant_DATA_SOURCE_CONTENT_TYPE_CODE.JSON) {
3842
+ const params = {
3843
+ formOperationType: defaultContext?.printParams?.formOperationType,
3844
+ printType: defaultContext?.printParams?.printType,
3845
+ receiptId: defaultContext?.printParams?.receiptId,
3846
+ receiptTemplateRuleId: defaultContext?.printTemplate?.receiptTemplateRuleId,
3847
+ receiptTemplateName: defaultContext?.printTemplate?.receiptTemplateName,
3848
+ dataSourceContentTypeCode: defaultContext?.dataSourceContentTypeCodeItem,
3849
+ dataSourceContent: defaultContext?.dataSourceContentItem,
3850
+ printQty: defaultContext?.receiptInfo?.printQty
3851
+ };
3852
+ /** 判断是否客户端打印 */ const { isLocalPrint } = use_app_config([
3853
+ use_app_config_MAIN_APP_CONFIG.IS_LOCAL_PRINT
3854
+ ]);
3855
+ if (isLocalPrint) {
3856
+ const [, res] = await designPreviewPrintReceipt(params);
3857
+ if (res?.success) return res.data ?? [];
3858
+ } else {
3859
+ /** 调用接口 */ const [, res] = await designPreviewPrintReceiptWeb(params);
3860
+ if (res?.success) {
3861
+ if (defaultContext?.printParams?.printType === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.PRINT_TYPE.GENERATE_IMAGE) return res.data;
3862
+ if (defaultContext?.printParams?.formOperationType === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FORM_OPERATION_TYPE.PRINT) useWebPrint(res?.data);
3863
+ else useDesignAndPreview(res?.data, defaultContext?.printParams?.formOperationType === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FORM_OPERATION_TYPE.DESIGN ? "设计" : "预览");
3864
+ }
3849
3865
  }
3850
3866
  }
3851
- }
3867
+ };
3868
+ return {
3869
+ printFn: async (params)=>{
3870
+ const data = await printStart(params);
3871
+ return data;
3872
+ },
3873
+ templateConfirm
3874
+ };
3852
3875
  };
3853
3876
  const print = async (params)=>{
3854
- await printStart(params);
3877
+ const { printFn } = createPrint();
3878
+ return await printFn(params);
3855
3879
  };
3856
3880
  /* ESM default export */ const printReceiptBtnvue_type_script_setup_true_lang_ts_name_printReceipt = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
3857
3881
  __name: 'printReceiptBtn',
@@ -3861,20 +3885,24 @@ const print = async (params)=>{
3861
3885
  type: Boolean,
3862
3886
  default: ()=>void 0
3863
3887
  },
3864
- printParams: {}
3888
+ printParams: {},
3889
+ isPrint: {
3890
+ type: Boolean,
3891
+ default: true
3892
+ }
3865
3893
  },
3866
3894
  emits: [
3867
3895
  "success",
3868
3896
  "fail",
3869
3897
  "selectItem"
3870
3898
  ],
3871
- setup (__props, { emit: __emit }) {
3899
+ setup (__props, { expose: __expose, emit: __emit }) {
3872
3900
  const emits = __emit;
3873
3901
  const receiptList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>__props.receiptList);
3874
3902
  const showReceipt = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>receiptList && __props.receiptList.length > 0);
3875
3903
  /** 选择单据 */ const handleCommand = async (item)=>{
3876
3904
  emits("selectItem", item);
3877
- await handlePrint(item);
3905
+ if (__props.isPrint) await handlePrint(item);
3878
3906
  };
3879
3907
  /** 打印单据 */ const handlePrint = async (item)=>{
3880
3908
  const res = await print({
@@ -3883,6 +3911,9 @@ const print = async (params)=>{
3883
3911
  });
3884
3912
  res ? emits("success", res) : emits("fail");
3885
3913
  };
3914
+ __expose({
3915
+ print: (item)=>handlePrint(item)
3916
+ });
3886
3917
  return (_ctx, _cache)=>{
3887
3918
  const _component_el_button = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-button");
3888
3919
  const _component_el_dropdown_item = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-dropdown-item");
@@ -5887,4 +5918,4 @@ const invoicevue_type_script_setup_true_lang_ts_name_proInvoice_hoisted_4 = {
5887
5918
  const invoice_exports_ = invoicevue_type_script_setup_true_lang_ts_name_proInvoice;
5888
5919
  /* ESM default export */ const invoice = invoice_exports_;
5889
5920
  var __webpack_exports__COMPONENT_CODE = __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.COMPONENT_CODE;
5890
- export { access_info as AccessInfo, BANNER_COMPONENT_CONFIG, BannerInfo, copy_text_with_tooltip as CopyTextWithTooltip, dbgrid_component_setting as DbgridComponentSetting, dict_select as DictSelect, flag_select as FlagSelect, form_design_render as FormDesignRender, FormUnit, hospital_select as HospitalSelect, patient_access as PatientAccess, PatientInfo, printReceiptBtn as PrintReceiptBtn, pro_dialog as ProDialog, pro_form as ProForm, invoice as ProInvoice, pro_table as ProTable, Title, convertToSpellNo, convertToWbNo, print, usePrintReceipt, __webpack_exports__COMPONENT_CODE as COMPONENT_CODE };
5921
+ export { access_info as AccessInfo, BANNER_COMPONENT_CONFIG, BannerInfo, copy_text_with_tooltip as CopyTextWithTooltip, constant_DATA_SOURCE_CONTENT_TYPE_CODE as DATA_SOURCE_CONTENT_TYPE_CODE, dbgrid_component_setting as DbgridComponentSetting, dict_select as DictSelect, flag_select as FlagSelect, form_design_render as FormDesignRender, FormUnit, hospital_select as HospitalSelect, patient_access as PatientAccess, PatientInfo, printReceiptBtn as PrintReceiptBtn, pro_dialog as ProDialog, pro_form as ProForm, invoice as ProInvoice, pro_table as ProTable, Title, convertToSpellNo, convertToWbNo, print, usePrintReceipt, __webpack_exports__COMPONENT_CODE as COMPONENT_CODE };