@gct-paas/excel 0.1.40-beta.13 → 0.1.40-beta.17

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.
Files changed (149) hide show
  1. package/README.md +3 -4
  2. package/dist/{BaseComponent-BNYlBwRp.js → BaseComponent-CCne4pQR.js} +2 -2
  3. package/dist/{VueVideoPlayer-CA8iKJQb.js → VueVideoPlayer-2S5BFaL_.js} +2 -2
  4. package/dist/{align-editor-BLoPPjyE.js → align-editor-ClmAs0I2.js} +1 -1
  5. package/dist/{barcode-design-Dqvxi5NV.js → barcode-design-DCKN2kXs.js} +2 -2
  6. package/dist/base/index.es.js +196 -181
  7. package/dist/{diagonal-design-DG-Dx4ts.js → diagonal-design-DgL_knX1.js} +2 -2
  8. package/dist/{dynamic-table-action-Bank1QhA.js → dynamic-table-action-PCfL4kn8.js} +356 -213
  9. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CMUJIaqF.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-DNH0HQ7d.js} +1427 -322
  10. package/dist/{edit.utils-CXmmCnxE-CjdKEddt.js → edit.utils-CXmmCnxE-eEvfPyLJ.js} +1 -1
  11. package/dist/excel.css +5943 -5155
  12. package/dist/{exceljs.min-UvFp3sV4.js → exceljs.min-CoCfKi-7.js} +2 -2
  13. package/dist/{font-editor-DnMEr3MH.js → font-editor-U4uNllXl.js} +3 -3
  14. package/dist/{image-design-CwtJAv3F.js → image-design-9F6prQTp.js} +3 -8
  15. package/dist/{index-BQYnbcBb.js → index-0igALLOR.js} +1 -1
  16. package/dist/{index-CaT3CiHe.js → index-6OopHjlb.js} +1 -1
  17. package/dist/{index-3MWFMn8S.js → index-B-xjIbiI.js} +3 -3
  18. package/dist/{index-CJiS8qwY.js → index-BD266iSg.js} +2 -2
  19. package/dist/{index-BggSZyva.js → index-BDxVLxSI.js} +2 -2
  20. package/dist/{index-B_XnofhV.js → index-BGm-MVKB.js} +2 -2
  21. package/dist/{index-B9lsZxiJ.js → index-BLWe4Vz0.js} +1 -1
  22. package/dist/{index-Cd_mJxU6.js → index-BLvlOZ2D.js} +3 -3
  23. package/dist/{index-B5OUUXeo.js → index-BOk29nnL.js} +1 -1
  24. package/dist/{index-D_SKDlr_.js → index-BPN7XFwR.js} +2 -2
  25. package/dist/{index-bu7pivuw.js → index-BQnLQV0A.js} +2 -2
  26. package/dist/{index-DyW4nBh7.js → index-BRDf6SKK.js} +2 -2
  27. package/dist/{index-XT4AMdYd.js → index-BWSegp47.js} +4 -4
  28. package/dist/{index-C_Yhjehy.js → index-BY_qQ37w.js} +2 -2
  29. package/dist/{index-CGZ_QXnT.js → index-BbiyVhS-.js} +2 -2
  30. package/dist/{index-BPY-u_dg.js → index-BiMaezbB.js} +3 -3
  31. package/dist/{index-Aza4NNmK.js → index-Bns57FNX.js} +2 -2
  32. package/dist/{index-C5Ldbkko.js → index-BsiUX7YD.js} +2 -2
  33. package/dist/{index-BqKnOPo_.js → index-Bt91J3fW.js} +1 -1
  34. package/dist/{index-BeVxjuh9.js → index-CDEmNgZo.js} +1 -1
  35. package/dist/{index-VbBHe0-r.js → index-CDrtUoUX.js} +3 -3
  36. package/dist/{index-BKQuT0fA.js → index-CE2DJqcE.js} +1 -1
  37. package/dist/{index-CKRFb60x.js → index-CnK65t9M.js} +2 -2
  38. package/dist/{index-D29NlAJu.js → index-CqKBqL3p.js} +2 -2
  39. package/dist/{index-CszU9umD.js → index-Cr-9RN_m.js} +1 -1
  40. package/dist/{index-d8vCiBu7.js → index-Cv7MTDYJ.js} +1 -1
  41. package/dist/{index-CHKEoI0-.js → index-DNaJ9kfU.js} +3 -3
  42. package/dist/{index-BBn6MJSx.js → index-DNxZxXFS.js} +2 -2
  43. package/dist/{index-BtRVxr4g.js → index-DohyZRFn.js} +2 -2
  44. package/dist/{index-CwADS2FU.js → index-FO_jC7SK.js} +1 -1
  45. package/dist/{index-DFSzmsEj.js → index-WFLjE8W5.js} +2 -2
  46. package/dist/{index-DLjQtnue.js → index-WWyJn_DL.js} +43141 -36530
  47. package/dist/{index-D5aotGHm.js → index-ku7ct8PU.js} +2 -2
  48. package/dist/{index-Cq-XyRHo.js → index-tdchiGpE.js} +2 -2
  49. package/dist/index.es.js +50 -48
  50. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-Mtk2wCxy.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-CpcHJZof.js} +26 -3
  51. package/dist/{pagination-design-BEykgAvG.js → pagination-design-Br4MXfw1.js} +2 -2
  52. package/dist/paper-widget-design-DTlDdmYc.js +4 -0
  53. package/dist/{print-runtime-instance-4ZDfLM5V.js → print-runtime-instance-CfWuydpH.js} +1 -1
  54. package/dist/{print-snapshot-renderer-zOa_XHc0.js → print-snapshot-renderer-CJy_9TnN.js} +3 -3
  55. package/dist/{qrcode-design-CvYHvmMW.js → qrcode-design-BdMl2NKL.js} +1 -1
  56. package/dist/{revo-grid.entry-CAz8pEMB.js → revo-grid.entry-teEsaxO_.js} +1 -1
  57. package/dist/{revogr-attribution_7.entry-RBj_kk6o.js → revogr-attribution_7.entry-CZUc_246.js} +3 -3
  58. package/dist/{revogr-clipboard_3.entry-B_WeVhDK.js → revogr-clipboard_3.entry-25oO7inv.js} +2 -2
  59. package/dist/{revogr-data_4.entry-VaYdG5rT.js → revogr-data_4.entry-BzB9qFPe.js} +2 -2
  60. package/dist/{revogr-filter-panel.entry-BCwmMUrv.js → revogr-filter-panel.entry-BGrVTJ1g.js} +1 -1
  61. package/dist/seal-design-mfWFp1C2.js +4 -0
  62. package/dist/{serialnumber-design-DHQVyTpR.js → serialnumber-design-CXxSkCLn.js} +1 -1
  63. package/dist/shared/index.es.js +29 -28
  64. package/dist/{single-field-drop-D9h6cfEW.js → single-field-drop-BmzX-Z8I.js} +2 -3
  65. package/dist/{size-editor-CYH_vGEJ.js → size-editor-CspaebYh.js} +1 -1
  66. package/dist/src/adapter/adapter.d.ts +1 -1
  67. package/dist/src/adapter/index.d.ts +2 -0
  68. package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/inventory-scan-columns.d.ts +1 -1
  69. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance/mb-web-render.d.ts → adapter/web/material-balance-render.d.ts} +1 -1
  70. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance → adapter/web}/material-consume-modal.vue.d.ts +1 -1
  71. package/dist/src/adapter/web/material-consume-render.d.ts +25 -0
  72. package/dist/src/{nocode-web-render/src/render/common → adapter/web}/open-util.d.ts +1 -1
  73. package/dist/src/{nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts → adapter/web/stocktake-render.d.ts} +2 -2
  74. package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/sub-table-render.d.ts +2 -5
  75. package/dist/src/nocode-base/src/components/document-sub-table-action/dynamic-table-action.vue.d.ts +0 -2
  76. package/dist/src/nocode-base/src/components/document-sub-table-action/sub-table-action.vue.d.ts +0 -3
  77. package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +0 -4
  78. package/dist/src/nocode-base/src/components/material-consume/types.d.ts +1 -5
  79. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +0 -4
  80. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +0 -12
  81. package/dist/src/nocode-base/src/hooks/material-consume/mc-render.d.ts +1 -28
  82. package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +3 -1
  83. package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +1 -1
  84. package/dist/src/nocode-base/src/types/render/mc-render.d.ts +2 -15
  85. package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +0 -10
  86. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/base-vxe-table.vue.d.ts +1 -1
  87. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/default-value-rdo-editor.vue.d.ts +4 -4
  88. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/rdo-table-dropdown.vue.d.ts +3 -3
  89. package/dist/src/{nocode-web-render/src/render/parse-rule → online-form/src/views/designer/modules/panel/sub-table/comps}/add-rule-btn.vue.d.ts +1 -1
  90. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/panel-check-table/select-check-ds-modal.vue.d.ts +3 -3
  91. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +2 -2
  92. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +2 -2
  93. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +2 -2
  94. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +2 -2
  95. package/dist/src/online-form/src/views/render/__components__/_field_/trace/common/base-vxe-table.vue.d.ts +1 -1
  96. package/dist/src/shared/components/ColorPicker/src/ColorPicker.vue.d.ts +1 -1
  97. package/dist/src/{nocode-web-render/src → shared}/hooks/useWebUpload.d.ts +1 -1
  98. package/dist/src/shared/index.d.ts +1 -0
  99. package/dist/src/shared/types/index.d.ts +1 -0
  100. package/dist/src/shared/types/upload.d.ts +11 -0
  101. package/dist/{sub-table-factory-B0zWW-QG.js → sub-table-factory-BI9zILxh.js} +2 -2
  102. package/dist/{text-design-DOQAiCNS.js → text-design-B_MucoKI.js} +2 -2
  103. package/dist/{throttle-Cpk1LoGk-CMJVKhfH.js → throttle-Cpk1LoGk-CAjnQv90.js} +1 -1
  104. package/dist/{timediff-design-BpVtGq2d.js → timediff-design-DeOjrlwW.js} +1 -1
  105. package/dist/{trace-like-wrapper-CfQ-z7OG.js → trace-like-wrapper-dM7TzPyV.js} +2 -2
  106. package/dist/{value-editor.vue_vue_type_style_index_0_lang-dI4Svbwa.js → value-editor.vue_vue_type_style_index_0_lang-CIn45Z8Q.js} +2 -2
  107. package/dist/{widget-barcode-Q35uB5iK.js → widget-barcode-lWGbOIin.js} +4 -4
  108. package/dist/{widget-diagonal-DqhdnkvW.js → widget-diagonal-BHu_oZPc.js} +3 -4
  109. package/dist/{widget-image-BXD0sEE3.js → widget-image-ky181dVc.js} +5 -7
  110. package/dist/{widget-line-DH-692Ln.js → widget-line-Bmx-OCDG.js} +2 -2
  111. package/dist/{widget-pagination-fIAO2QPA.js → widget-pagination-CmUiNeCs.js} +5 -5
  112. package/dist/{widget-power-DWVhbXTd.js → widget-power-DOgb24Gq.js} +3 -4
  113. package/dist/{widget-qrcode-Bo1KSkKG.js → widget-qrcode-TLKTPfMv.js} +3 -3
  114. package/dist/{widget-rangelimit-BFKtZq_w.js → widget-rangelimit-DfdOkk1r.js} +3 -4
  115. package/dist/{widget-serialnumber-DZqKmj9h.js → widget-serialnumber-Bqayj0OA.js} +1 -1
  116. package/dist/{widget-text-CY_4aox8.js → widget-text-BGdFlv3o.js} +5 -5
  117. package/dist/{widget-timediff-CPMbymXT.js → widget-timediff-CxIXuLZd.js} +2 -2
  118. package/package.json +2 -6
  119. package/dist/AntdIcon-DCIaV352.js +0 -1108
  120. package/dist/index-BVs40sek.js +0 -4353
  121. package/dist/mb-render-CAIFQRQe.js +0 -276
  122. package/dist/paper-widget-design-ooxHgZry.js +0 -4
  123. package/dist/seal-design-CG41_ii2.js +0 -4
  124. package/dist/src/nocode-web-render/src/components/print-fill-background-selector.vue.d.ts +0 -2
  125. package/dist/src/nocode-web-render/src/hooks/index.d.ts +0 -2
  126. package/dist/src/nocode-web-render/src/hooks/userFormPrint.d.ts +0 -15
  127. package/dist/src/nocode-web-render/src/index.d.ts +0 -6
  128. package/dist/src/nocode-web-render/src/logic/index.d.ts +0 -1
  129. package/dist/src/nocode-web-render/src/render/common/index.d.ts +0 -2
  130. package/dist/src/nocode-web-render/src/render/common/modal-manager.d.ts +0 -20
  131. package/dist/src/nocode-web-render/src/render/index.d.ts +0 -10
  132. package/dist/src/nocode-web-render/src/render/parse-rule/index.d.ts +0 -3
  133. package/dist/src/nocode-web-render/src/render/parse-rule/parse-rule-modal.vue.d.ts +0 -15
  134. package/dist/src/nocode-web-render/src/render/sub-table/allocate/allocate-web-render.d.ts +0 -4
  135. package/dist/src/nocode-web-render/src/render/sub-table/allocate/index.d.ts +0 -1
  136. package/dist/src/nocode-web-render/src/render/sub-table/common/multi-rows-modal.vue.d.ts +0 -15
  137. package/dist/src/nocode-web-render/src/render/sub-table/common/scan-modal.vue.d.ts +0 -19
  138. package/dist/src/nocode-web-render/src/render/sub-table/index.d.ts +0 -3
  139. package/dist/src/nocode-web-render/src/render/sub-table/material-balance/index.d.ts +0 -1
  140. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/bom-modal.vue.d.ts +0 -11
  141. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/index.d.ts +0 -4
  142. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +0 -42
  143. package/dist/src/nocode-web-render/src/render/sub-table/stocktake/index.d.ts +0 -2
  144. package/dist/src/nocode-web-render/src/types/hooks/index.d.ts +0 -1
  145. package/dist/src/nocode-web-render/src/types/index.d.ts +0 -1
  146. package/dist/web-render/index.d.ts +0 -1
  147. package/dist/web-render/index.es.js +0 -596
  148. /package/dist/src/{nocode-web-render/src/adapter/index.d.ts → adapter/web/setup.d.ts} +0 -0
  149. /package/dist/src/{nocode-web-render/src/logic/utils.d.ts → adapter/web/upload.d.ts} +0 -0
@@ -1,596 +0,0 @@
1
- import { M as ModalWrapper, _ as _sfc_main$3 } from "../index-BVs40sek.js";
2
- import { A, B, P, S, j, h, i, u } from "../index-BVs40sek.js";
3
- import { message } from "ant-design-vue";
4
- import { K as useModal, a8 as _export_sfc, p as api, c3 as getParseRuleConfig, b0 as getParseRuleValue, bT as calcFillData, aX as getLotLockedReason } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CMUJIaqF.js";
5
- import { defineComponent, ref, resolveComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, Fragment, renderList, normalizeClass, createVNode, createTextVNode, reactive, onMounted, createBlock, unref, withCtx, withKeys, withDirectives, createCommentVNode, vShow, computed, mergeProps, toHandlers } from "vue";
6
- import { cloneDeep } from "lodash-es";
7
- import "dayjs";
8
- import "@gct-paas/form-base";
9
- import { VxeGrid } from "vxe-table";
10
- const _hoisted_1$2 = { class: "print-fill-background-selector" };
11
- const _hoisted_2$1 = { class: "selector-title" };
12
- const _hoisted_3$1 = { class: "selector-options" };
13
- const _hoisted_4$1 = ["onClick"];
14
- const _hoisted_5$1 = { class: "preview-card" };
15
- const _hoisted_6$1 = { class: "preview-sheet" };
16
- const _hoisted_7$1 = { class: "radio-label" };
17
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
18
- __name: "print-fill-background-selector",
19
- setup(__props) {
20
- const selected = ref(false);
21
- const options = [
22
- { label: $t("sys.printFillAreaBgYes"), value: true },
23
- { label: $t("sys.printFillAreaBgNo"), value: false }
24
- ];
25
- useModal(async () => ({ ok: true, data: [{ showPrintFieldBg: selected.value }] }));
26
- return (_ctx, _cache) => {
27
- const _component_a_radio = resolveComponent("a-radio");
28
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
29
- createElementVNode("div", _hoisted_2$1, toDisplayString(_ctx.$t("sys.printFillAreaBg")), 1),
30
- createElementVNode("div", _hoisted_3$1, [
31
- (openBlock(), createElementBlock(Fragment, null, renderList(options, (option) => {
32
- return createElementVNode("button", {
33
- key: String(option.value),
34
- type: "button",
35
- class: normalizeClass(["selector-option", selected.value === option.value && "is-selected"]),
36
- onClick: ($event) => selected.value = option.value
37
- }, [
38
- createElementVNode("span", _hoisted_5$1, [
39
- createElementVNode("span", _hoisted_6$1, [
40
- createElementVNode("span", {
41
- class: normalizeClass(["preview-value", option.value && "with-background"])
42
- }, "aaa", 2)
43
- ])
44
- ]),
45
- createElementVNode("span", _hoisted_7$1, [
46
- createVNode(_component_a_radio, {
47
- checked: selected.value === option.value
48
- }, null, 8, ["checked"]),
49
- createTextVNode(" " + toDisplayString(option.label), 1)
50
- ])
51
- ], 10, _hoisted_4$1);
52
- }), 64))
53
- ])
54
- ]);
55
- };
56
- }
57
- });
58
- const PrintFillBackgroundSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-a96546b6"]]);
59
- var PrintModeEnum = /* @__PURE__ */ ((PrintModeEnum2) => {
60
- PrintModeEnum2["ASYNC"] = "async";
61
- PrintModeEnum2["SYNC"] = "sync";
62
- return PrintModeEnum2;
63
- })(PrintModeEnum || {});
64
- var FileModeEnum = /* @__PURE__ */ ((FileModeEnum2) => {
65
- FileModeEnum2["ZIP"] = "zip";
66
- FileModeEnum2["UN_ZIP"] = "unZip";
67
- return FileModeEnum2;
68
- })(FileModeEnum || {});
69
- const printPolling = useSingletonPolling();
70
- async function formPrint(tmplInstantId, printConfig) {
71
- if (!printConfig) {
72
- const result = await window.NocodeAdapter.utils.overlay.modal(
73
- PrintFillBackgroundSelector,
74
- {},
75
- {
76
- title: $t("sys.onlineForm.singlePrint"),
77
- width: 640,
78
- okText: $t("sys.okText"),
79
- showFooter: true
80
- }
81
- );
82
- if (!result.ok) return;
83
- printConfig = {
84
- apiMode: "sync",
85
- fileMode: "unZip",
86
- showPrintFieldBg: result.data?.[0]?.showPrintFieldBg ?? false
87
- };
88
- }
89
- const key = await api.apaas.fileTask.postSubmit({
90
- tmplInstantId,
91
- type: "FORM",
92
- showPrintFieldBg: printConfig?.showPrintFieldBg
93
- });
94
- if (!key) return;
95
- const hide = message.loading("打印中...", 0);
96
- printPolling.start((signal) => pollPrintStatus(key, signal)).then(async (content) => {
97
- hide();
98
- message.success(content.message);
99
- const url = `/minio/${content.appId}/${content.url}`;
100
- switch (printConfig?.fileMode) {
101
- case "zip":
102
- downloadByUrl({ url });
103
- break;
104
- case "unZip":
105
- await unzipUrl({ url: `/${content.url}`, appId: content.appId });
106
- break;
107
- default:
108
- downloadByUrl({ url });
109
- break;
110
- }
111
- }).catch((err) => {
112
- hide();
113
- if (err?.name === "AbortError") return;
114
- message.error(err.message);
115
- });
116
- }
117
- async function pollPrintStatus(id, signal) {
118
- let retry = 0;
119
- while (retry < 100) {
120
- if (signal?.aborted) {
121
- throw new DOMException("轮询已中断", "AbortError");
122
- }
123
- const { status, url, appId } = await api.platform.fileTask.getInfo({ id }) || {};
124
- if (status === "SUCCEED" && url && appId) {
125
- return { message: "打印成功", url, appId };
126
- }
127
- if (status === "FAIL") {
128
- throw new Error("打印失败");
129
- }
130
- retry++;
131
- await sleep(3e3, signal);
132
- }
133
- throw new Error("打印超时");
134
- }
135
- function sleep(ms, signal) {
136
- return new Promise((resolve, reject) => {
137
- const timer = setTimeout(resolve, ms);
138
- if (signal) {
139
- signal.addEventListener(
140
- "abort",
141
- () => {
142
- clearTimeout(timer);
143
- reject(new DOMException("Aborted", "AbortError"));
144
- },
145
- { once: true }
146
- );
147
- }
148
- });
149
- }
150
- function useSingletonPolling() {
151
- let controller = null;
152
- async function start(task) {
153
- if (controller) {
154
- controller.abort();
155
- }
156
- const currentController = new AbortController();
157
- controller = currentController;
158
- try {
159
- return await task(currentController.signal);
160
- } finally {
161
- if (controller === currentController) {
162
- controller = null;
163
- }
164
- }
165
- }
166
- function stop() {
167
- if (controller) {
168
- controller.abort();
169
- controller = null;
170
- }
171
- }
172
- return { start, stop };
173
- }
174
- function downloadByUrl({
175
- url,
176
- target = "_blank",
177
- fileName
178
- }) {
179
- const isChrome = window.navigator.userAgent.toLowerCase().indexOf("chrome") > -1;
180
- const isSafari = window.navigator.userAgent.toLowerCase().indexOf("safari") > -1;
181
- if (/(iP)/g.test(window.navigator.userAgent)) {
182
- console.error("Your browser does not support download!");
183
- return false;
184
- }
185
- if (isChrome || isSafari) {
186
- const link = document.createElement("a");
187
- link.href = url;
188
- link.target = target;
189
- if (link.download !== void 0) {
190
- link.download = fileName || url.substring(url.lastIndexOf("/") + 1, url.length);
191
- }
192
- if (document.createEvent) {
193
- const e = document.createEvent("MouseEvents");
194
- e.initEvent("click", true, true);
195
- link.dispatchEvent(e);
196
- return true;
197
- }
198
- }
199
- if (url.indexOf("?") === -1) {
200
- url += "?download";
201
- }
202
- window.open(url, target);
203
- return true;
204
- }
205
- async function unzipUrl({ url, appId }) {
206
- const unzipUrl2 = await window.NocodeAdapter.apis?.postMedproFileUnzip?.({ url }, { url });
207
- const path = /^https?:\/\//.test(unzipUrl2) ? unzipUrl2 : /^\/w/.test(unzipUrl2) ? `${window.NocodeAdapter.minioPath}/${appId}/${unzipUrl2}` : `${window.NocodeAdapter.minioPath}/${appId}/${unzipUrl2}`;
208
- console.log("unzipUrl", unzipUrl2);
209
- const newWindow = window.open(`${path}`, "_blank", "noopener,noreferrer");
210
- if (newWindow) newWindow.opener = null;
211
- }
212
- const IconScan = "data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_401_32653)'%3e%3cpath%20d='M8.41026%205.53845H6.03849C5.76236%205.53845%205.5385%205.7623%205.5385%206.03844L5.53847%207.26153V8.41025'%20stroke='%231A1D23'%20stroke-width='1.5'%20stroke-linecap='square'/%3e%3cpath%20d='M8.41026%2018.4615H6.03849C5.76236%2018.4615%205.5385%2018.2377%205.5385%2017.9616L5.53847%2016.7385V15.5898'%20stroke='%231A1D23'%20stroke-width='1.5'%20stroke-linecap='square'/%3e%3cpath%20d='M15.5897%205.53845H17.9615C18.2376%205.53845%2018.4615%205.76231%2018.4615%206.03845L18.4615%208.41025'%20stroke='%231A1D23'%20stroke-width='1.5'%20stroke-linecap='square'/%3e%3cpath%20d='M15.5897%2018.4615H17.9615C18.2376%2018.4615%2018.4615%2018.2377%2018.4615%2017.9616L18.4615%2016.7385V15.5898'%20stroke='%231A1D23'%20stroke-width='1.5'%20stroke-linecap='square'/%3e%3cpath%20d='M23.8461%2012H0.153809'%20stroke='url(%23paint0_linear_401_32653)'%20stroke-width='2'%20stroke-linecap='square'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_401_32653'%20x1='0.153809'%20y1='12.5'%20x2='23.8461'%20y2='12.5'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23026AC8'%20stop-opacity='0'/%3e%3cstop%20offset='0.5'%20stop-color='%23026AC8'/%3e%3cstop%20offset='1'%20stop-color='%23026AC8'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_401_32653'%3e%3crect%20width='24'%20height='24'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
213
- const _hoisted_1$1 = {
214
- class: /* @__PURE__ */ normalizeClass(["scan-modal__content"])
215
- };
216
- const _hoisted_2 = ["src"];
217
- const _hoisted_3 = { class: "scan-modal__rule-control" };
218
- const _hoisted_4 = { class: "scan-modal__subtitle" };
219
- const _hoisted_5 = {
220
- key: 0,
221
- class: "mb12px"
222
- };
223
- const _hoisted_6 = { class: "scan-modal__map" };
224
- const _hoisted_7 = {
225
- key: 0,
226
- class: "scan-modal__row scan-modal__row--header"
227
- };
228
- const _hoisted_8 = { class: "scan-modal__barcodeField scan-modal__col-label is-required" };
229
- const _hoisted_9 = { class: "scan-modal__formFields scan-modal__col-label is-required" };
230
- const _hoisted_10 = { class: "scan-modal__row--content" };
231
- const _hoisted_11 = { class: "scan-modal__actions" };
232
- const _hoisted_12 = ["onClick", "title"];
233
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
234
- __name: "scan-modal",
235
- props: {
236
- modal: {},
237
- scanParam: {},
238
- scanRules: {},
239
- formFieldOptions: {},
240
- onScan: { type: Function },
241
- ruleTip: {}
242
- },
243
- setup(__props) {
244
- const modalOptions = reactive({
245
- width: 460,
246
- draggable: true,
247
- showFooter: false,
248
- canFullscreen: false,
249
- wrapClassName: "gct-draggable-modal",
250
- mask: false,
251
- maskClosable: false,
252
- title: "扫码录入"
253
- });
254
- const props = __props;
255
- const formState = ref({
256
- parsingRuleId: props.scanRules?.parsingRuleId,
257
- fillMapArr: cloneDeep(props.scanRules?.fillMapArr) ?? []
258
- });
259
- const scanRuleInfo = ref();
260
- const configExpanded = ref(false);
261
- onMounted(async () => {
262
- if (formState.value.parsingRuleId) {
263
- initRuleFieldOptions(formState.value.parsingRuleId);
264
- scanRuleInfo.value = await getParseRuleConfig(formState.value.parsingRuleId);
265
- }
266
- });
267
- const ruleFieldOptions = ref([]);
268
- const onEnter = (...args) => {
269
- console.log("onEnter", args, formState.value);
270
- let parsedValue, transformedData = {};
271
- const fillMaps = formState.value.fillMapArr;
272
- if (scanRuleInfo.value) {
273
- parsedValue = getParseRuleValue(formState.value.str, JSON.stringify(scanRuleInfo.value));
274
- } else if (props.scanParam) {
275
- parsedValue = { [props.scanParam]: formState.value.str };
276
- }
277
- if (fillMaps?.length) transformedData = calcFillData(parsedValue, fillMaps);
278
- props.onScan({ str: formState.value.str, parsedValue, transformedData });
279
- formState.value.str = "";
280
- };
281
- const initRuleFieldOptions = async (id) => {
282
- if (!id) {
283
- ruleFieldOptions.value = [];
284
- return;
285
- }
286
- const config = await getParseRuleConfig(id);
287
- if (!config) {
288
- ruleFieldOptions.value = [];
289
- return;
290
- }
291
- scanRuleInfo.value = config;
292
- ruleFieldOptions.value = config.fieldList.map((field) => {
293
- return {
294
- label: field.alias ?? $t(`sys.edhr.labelConfigFields.${field.type}`),
295
- value: field.key
296
- };
297
- });
298
- };
299
- const onRuleChange = (rule) => {
300
- if (rule === formState.value.parsingRuleId) {
301
- return;
302
- }
303
- formState.value.parsingRuleId = rule;
304
- formState.value.fillMapArr = [];
305
- initRuleFieldOptions(rule);
306
- };
307
- const addFieldMap = () => {
308
- if (!formState.value.fillMapArr) {
309
- formState.value.fillMapArr = [];
310
- }
311
- formState.value.fillMapArr.push({});
312
- };
313
- const removeField = (index) => {
314
- formState.value.fillMapArr?.splice(index, 1);
315
- };
316
- const filterFormFieldOption = (input, option) => {
317
- return option.label.toLowerCase().includes(input.toLowerCase());
318
- };
319
- return (_ctx, _cache) => {
320
- const _component_a_input = resolveComponent("a-input");
321
- const _component_a_form_item = resolveComponent("a-form-item");
322
- const _component_a_divider = resolveComponent("a-divider");
323
- const _component_a_alert = resolveComponent("a-alert");
324
- const _component_a_select = resolveComponent("a-select");
325
- const _component_a_button = resolveComponent("a-button");
326
- const _component_a_form = resolveComponent("a-form");
327
- return openBlock(), createBlock(unref(ModalWrapper), {
328
- opts: modalOptions,
329
- class: normalizeClass(["scan-modal"])
330
- }, {
331
- default: withCtx(() => [
332
- createElementVNode("div", _hoisted_1$1, [
333
- createVNode(_component_a_form_item, {
334
- required: "",
335
- class: "scan-form-item"
336
- }, {
337
- default: withCtx(() => [
338
- createVNode(_component_a_input, {
339
- value: formState.value.str,
340
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => formState.value.str = $event),
341
- size: "large",
342
- placeholder: "请扫码录入",
343
- onKeyup: withKeys(onEnter, ["enter"])
344
- }, {
345
- prefix: withCtx(() => [
346
- createElementVNode("img", {
347
- src: unref(IconScan),
348
- width: "24",
349
- height: "24"
350
- }, null, 8, _hoisted_2)
351
- ]),
352
- _: 1
353
- }, 8, ["value"])
354
- ]),
355
- _: 1
356
- }),
357
- createVNode(_component_a_divider, { style: { "width": "calc(100% + 48px)", "margin": "28px 0 16px -24px" } }),
358
- createVNode(_component_a_form_item, {
359
- class: "scan-modal__rule",
360
- label: _ctx.$t("sys.edhr.mcTable.parseRule") + ":",
361
- name: "parsingRuleId"
362
- }, {
363
- default: withCtx(() => [
364
- createElementVNode("div", _hoisted_3, [
365
- createVNode(_sfc_main$3, {
366
- "model-value": formState.value.parsingRuleId,
367
- "onUpdate:modelValue": onRuleChange,
368
- modelKey: "em_barcode_parsing_rules"
369
- }, null, 8, ["model-value"]),
370
- createElementVNode("div", {
371
- class: "primary-gct cursor-pointer whitespace-nowrap",
372
- onClick: _cache[1] || (_cache[1] = ($event) => configExpanded.value = !configExpanded.value)
373
- }, [
374
- createTextVNode(toDisplayString(configExpanded.value ? _ctx.$t("sys.collapseConfig") : _ctx.$t("sys.expandConfig")) + " ", 1),
375
- createElementVNode("i", {
376
- class: normalizeClass(["iconfont ml4px", configExpanded.value ? "icon-arrow_up_pad" : "icon-arrow_down_pad"])
377
- }, null, 2)
378
- ])
379
- ])
380
- ]),
381
- _: 1
382
- }, 8, ["label"]),
383
- withDirectives(createElementVNode("div", null, [
384
- createElementVNode("div", _hoisted_4, toDisplayString(_ctx.$t("sys.onlineForm.fieldMapping")), 1),
385
- __props.ruleTip ? (openBlock(), createElementBlock("div", _hoisted_5, [
386
- createVNode(_component_a_alert, {
387
- message: __props.ruleTip,
388
- type: "info",
389
- "show-icon": ""
390
- }, null, 8, ["message"])
391
- ])) : createCommentVNode("", true),
392
- createElementVNode("div", _hoisted_6, [
393
- createVNode(_component_a_form, {
394
- ref: "formRef",
395
- model: formState.value,
396
- layout: "vertical"
397
- }, {
398
- default: withCtx(() => [
399
- formState.value.fillMapArr?.length ? (openBlock(), createElementBlock("div", _hoisted_7, [
400
- createElementVNode("div", _hoisted_8, toDisplayString(_ctx.$t("sys.onlineForm.barcodeField")), 1),
401
- createElementVNode("div", _hoisted_9, toDisplayString(_ctx.$t("sys.onlineForm.formFields")), 1)
402
- ])) : createCommentVNode("", true),
403
- createElementVNode("div", _hoisted_10, [
404
- (openBlock(true), createElementBlock(Fragment, null, renderList(formState.value.fillMapArr, (item, i2) => {
405
- return openBlock(), createElementBlock("div", {
406
- class: "scan-modal__row",
407
- key: i2
408
- }, [
409
- createVNode(_component_a_form_item, {
410
- class: "scan-modal__barcodeField",
411
- name: ["fillMapArr", i2, "barcodeField"],
412
- rules: [{ required: true, message: _ctx.$t("sys.chooseText") }]
413
- }, {
414
- default: withCtx(() => [
415
- createVNode(_component_a_select, {
416
- value: item.barcodeField,
417
- "onUpdate:value": ($event) => item.barcodeField = $event,
418
- placeholder: _ctx.$t("sys.chooseText"),
419
- options: ruleFieldOptions.value
420
- }, null, 8, ["value", "onUpdate:value", "placeholder", "options"])
421
- ]),
422
- _: 2
423
- }, 1032, ["name", "rules"]),
424
- _cache[2] || (_cache[2] = createElementVNode("div", { class: "scan-modal__divider" }, [
425
- createElementVNode("i", { class: "gct-iconfont icon-lianjie text-[#8B8B8B] text-12px" })
426
- ], -1)),
427
- createVNode(_component_a_form_item, {
428
- class: "scan-modal__formFields",
429
- name: ["fillMapArr", i2, "formFields"],
430
- rules: [{ required: true, message: _ctx.$t("sys.chooseText") }]
431
- }, {
432
- default: withCtx(() => [
433
- createVNode(_component_a_select, {
434
- value: item.formFields,
435
- "onUpdate:value": ($event) => item.formFields = $event,
436
- mode: "multiple",
437
- "allow-clear": "",
438
- "show-search": "",
439
- placeholder: _ctx.$t("sys.chooseText"),
440
- options: __props.formFieldOptions,
441
- "filter-option": filterFormFieldOption
442
- }, null, 8, ["value", "onUpdate:value", "placeholder", "options"])
443
- ]),
444
- _: 2
445
- }, 1032, ["name", "rules"]),
446
- createElementVNode("div", _hoisted_11, [
447
- createElementVNode("i", {
448
- onClick: ($event) => removeField(i2),
449
- class: "scan-modal__remove-btn iconfont icon-shanchu1 text-[#8B8B8B]",
450
- title: _ctx.$t("sys.delete")
451
- }, null, 8, _hoisted_12)
452
- ])
453
- ]);
454
- }), 128))
455
- ]),
456
- createVNode(_component_a_button, {
457
- class: "scan-modal__add-btn",
458
- type: "link",
459
- onClick: addFieldMap
460
- }, {
461
- default: withCtx(() => [
462
- _cache[3] || (_cache[3] = createElementVNode("i", { class: "iconfont icon-tianjia" }, null, -1)),
463
- createTextVNode(" " + toDisplayString(_ctx.$t("sys.onlineForm.addFieldMapping")), 1)
464
- ]),
465
- _: 1
466
- })
467
- ]),
468
- _: 1
469
- }, 8, ["model"])
470
- ])
471
- ], 512), [
472
- [vShow, configExpanded.value]
473
- ])
474
- ])
475
- ]),
476
- _: 1
477
- }, 8, ["opts"]);
478
- };
479
- }
480
- });
481
- const scanModal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-168f8868"]]);
482
- const _hoisted_1 = {
483
- class: /* @__PURE__ */ normalizeClass(["multi-rows-modal__content"])
484
- };
485
- const _sfc_main = /* @__PURE__ */ defineComponent({
486
- __name: "multi-rows-modal",
487
- props: {
488
- modal: {},
489
- rows: {}
490
- },
491
- setup(__props) {
492
- const modalOptions = reactive({
493
- width: 800,
494
- draggable: true,
495
- showFooter: true,
496
- canFullscreen: false,
497
- title: $t("sys.kit.selectMaterial"),
498
- wrapClassName: "gct-draggable-modal"
499
- });
500
- const props = __props;
501
- const selectedRow = ref();
502
- const tableData = computed(
503
- () => (props.rows ?? []).map((row, index) => ({
504
- ...row,
505
- _rowKey: `${row.materialId ?? ""}_${row.productionIdentificationId ?? ""}_${index}`
506
- }))
507
- );
508
- const gridOptions = reactive({
509
- round: true,
510
- maxHeight: 420,
511
- rowConfig: {
512
- isHover: true,
513
- keyField: "_rowKey"
514
- },
515
- radioConfig: {
516
- trigger: "row",
517
- highlight: true
518
- },
519
- columns: [
520
- { type: "radio", width: 48 },
521
- {
522
- field: "productId",
523
- title: $t("sys.model.product"),
524
- showOverflow: "tooltip",
525
- minWidth: 140
526
- },
527
- {
528
- field: "materialNo",
529
- title: $t("sys.edhr.materialNo"),
530
- showOverflow: "tooltip",
531
- minWidth: 160
532
- }
533
- ]
534
- });
535
- const gridEvents = {
536
- radioChange({ row }) {
537
- selectedRow.value = row;
538
- }
539
- };
540
- const doOk = async () => {
541
- if (!selectedRow.value) {
542
- message.error($t("请选择一条数据"));
543
- return false;
544
- }
545
- const {
546
- _rowKey: _,
547
- productionIdentificationIsLocked,
548
- productionIdentificationId,
549
- ...rest
550
- } = selectedRow.value;
551
- if (productionIdentificationIsLocked) {
552
- const msg = await getLotLockedReason(productionIdentificationId);
553
- message.error(msg);
554
- throw new Error("物料批次已被锁定");
555
- }
556
- return {
557
- ok: true,
558
- data: rest
559
- };
560
- };
561
- return (_ctx, _cache) => {
562
- return openBlock(), createBlock(unref(ModalWrapper), {
563
- opts: modalOptions,
564
- class: normalizeClass(["multi-rows-modal"]),
565
- "do-ok": doOk
566
- }, {
567
- default: withCtx(() => [
568
- createElementVNode("div", _hoisted_1, [
569
- createVNode(unref(VxeGrid), mergeProps({
570
- class: "multi-rows-modal__grid default vxetable",
571
- data: tableData.value,
572
- "max-height": "420px"
573
- }, gridOptions, toHandlers(gridEvents)), null, 16, ["data"])
574
- ])
575
- ]),
576
- _: 1
577
- }, 8, ["opts"]);
578
- };
579
- }
580
- });
581
- const multiRowsModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f7a49d08"]]);
582
- export {
583
- A as AddRuleBtn,
584
- B as BomViewerModal,
585
- scanModal as CommonScanModal,
586
- FileModeEnum,
587
- multiRowsModal as MultiRowsModal,
588
- P as ParseRuleModal,
589
- PrintModeEnum,
590
- S as StocktakeWebRender,
591
- formPrint,
592
- j as initRenderToAdapter,
593
- h as initWebNocodeAdapter,
594
- i as initWebPaasUploadApis,
595
- u as useWebUpload
596
- };