lyflowchart 1.0.115 → 1.0.133

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 (198) hide show
  1. package/dist/ActionsConfig-BuvSvRbv.js +395 -0
  2. package/dist/ActionsConfig-BuvSvRbv.js.map +1 -0
  3. package/dist/ApprovalEditorModal-suKPJ-vN.js +48 -0
  4. package/dist/ApprovalEditorModal-suKPJ-vN.js.map +1 -0
  5. package/dist/CancelModal-BUi3ieI8.js +61 -0
  6. package/dist/CancelModal-BUi3ieI8.js.map +1 -0
  7. package/dist/Cell_click_approve-Dr83RkI-.js +244 -0
  8. package/dist/Cell_click_approve-Dr83RkI-.js.map +1 -0
  9. package/dist/JsonTags-BbWLqghI.js +66 -0
  10. package/dist/JsonTags-BbWLqghI.js.map +1 -0
  11. package/dist/MyProcess-FWGEwQcv.js +26434 -0
  12. package/dist/MyProcess-FWGEwQcv.js.map +1 -0
  13. package/dist/MyProcess.vue.d.ts +991 -0
  14. package/dist/approval-BW2WjPxY.js +167 -0
  15. package/dist/approval-BW2WjPxY.js.map +1 -0
  16. package/dist/approval-BaVHder3.js +18 -0
  17. package/dist/approval-BaVHder3.js.map +1 -0
  18. package/dist/approvalHistory-B2gpQbFC.js +868 -0
  19. package/dist/approvalHistory-B2gpQbFC.js.map +1 -0
  20. package/dist/approvalHistoryViewModal-DgLpv2ot.js +114 -0
  21. package/dist/approvalHistoryViewModal-DgLpv2ot.js.map +1 -0
  22. package/dist/approvalPageConfig-D0zPXOUf.js +2437 -0
  23. package/dist/approvalPageConfig-D0zPXOUf.js.map +1 -0
  24. package/dist/approveLeftConfig-BOU_UgHp.js +136 -0
  25. package/dist/approveLeftConfig-BOU_UgHp.js.map +1 -0
  26. package/dist/codeHistoryViewModal-BfSjIbEU.js +103 -0
  27. package/dist/codeHistoryViewModal-BfSjIbEU.js.map +1 -0
  28. package/dist/columnTables-DLwtgcC7.js +1272 -0
  29. package/dist/columnTables-DLwtgcC7.js.map +1 -0
  30. package/dist/components/Cell_click_approve.vue.d.ts +5 -0
  31. package/dist/components/Cell_click_data_source.vue.d.ts +6 -0
  32. package/dist/components/Process/common/bpmnUtils.d.ts +8 -0
  33. package/dist/components/Process/common/global.d.ts +16 -0
  34. package/dist/components/Process/common/index.d.ts +5 -0
  35. package/dist/components/Process/component/JsonTags2.vue.d.ts +60 -0
  36. package/dist/components/Process/component/ValueInput2.vue.d.ts +74 -0
  37. package/dist/components/Process/component/columnNameField2.vue.d.ts +51 -0
  38. package/dist/components/Process/component/data.d.ts +157 -0
  39. package/dist/components/Process/customPanel/CustomContextPad.d.ts +31 -0
  40. package/dist/components/Process/customPanel/CustomPalette.d.ts +89 -0
  41. package/dist/components/Process/customPanel/customTranslate.d.ts +1 -0
  42. package/dist/components/Process/customPanel/index.d.ts +8 -0
  43. package/dist/components/Process/designer.vue.d.ts +589 -0
  44. package/dist/components/Process/flowable/init.d.ts +1 -0
  45. package/dist/components/Process/index.vue.d.ts +812 -0
  46. package/dist/components/Process/lang/zh.d.ts +249 -0
  47. package/dist/components/Process/panel/ButtonsPanel.vue.d.ts +24 -0
  48. package/dist/components/Process/panel/PropertiesPanel.vue.d.ts +24 -0
  49. package/dist/components/Process/panel/commonPanel.vue.d.ts +40 -0
  50. package/dist/components/Process/panel/conditionPanel.vue.d.ts +271 -0
  51. package/dist/components/Process/panel/executionListener.vue.d.ts +66 -0
  52. package/dist/components/Process/panel/formPanel.vue.d.ts +7 -0
  53. package/dist/components/Process/panel/multiInstance.vue.d.ts +33 -0
  54. package/dist/components/Process/panel/otherPanel.vue.d.ts +17 -0
  55. package/dist/components/Process/panel/taskListener.vue.d.ts +64 -0
  56. package/dist/components/Process/panel/taskPanel.vue.d.ts +254 -0
  57. package/dist/components/Process/viewer/index.vue.d.ts +41 -0
  58. package/dist/components/approval/ApprovalEditorModal.vue.d.ts +26 -0
  59. package/dist/components/approval/CostCompanySelect.vue.d.ts +29 -0
  60. package/dist/components/approval/CostDepartmentSelect.vue.d.ts +35 -0
  61. package/dist/components/approval/CreateByCascader.vue.d.ts +27 -0
  62. package/dist/components/approval/CreateBySelect.vue.d.ts +35 -0
  63. package/dist/components/approval/PostionCascader.vue.d.ts +26 -0
  64. package/dist/components/approval/SystemTime.vue.d.ts +38 -0
  65. package/dist/components/approval/approvalViewId.d.ts +36 -0
  66. package/dist/components/approval/components/CancelModal.vue.d.ts +25 -0
  67. package/dist/components/approval/components/FormCodeInput.vue.d.ts +33 -0
  68. package/dist/components/approval/components/FormContextInput.vue.d.ts +33 -0
  69. package/dist/components/approval/components/FormFlowOrgInput.vue.d.ts +40 -0
  70. package/dist/components/approval/components/actionsBar.vue.d.ts +17 -0
  71. package/dist/components/approval/components/approvalHistory/approvalHistoryViewModal.vue.d.ts +41 -0
  72. package/dist/components/approval/components/approvalHistory/dataStoreSettingHistory.vue.d.ts +55 -0
  73. package/dist/components/approval/components/approvalHistory/dataStoreSettingHistoryViewModal.vue.d.ts +41 -0
  74. package/dist/components/approval/components/approvalHistory/flowHistoryViewModal.vue.d.ts +41 -0
  75. package/dist/components/approval/components/approvalHistory/flowSettingHistory.vue.d.ts +55 -0
  76. package/dist/components/approval/components/approvalHistory/index.vue.d.ts +212 -0
  77. package/dist/components/approval/components/approvalHistory/pageSettingHistory.vue.d.ts +55 -0
  78. package/dist/components/approval/components/approvalPageConfig/ActionsConfig.vue.d.ts +112 -0
  79. package/dist/components/approval/components/approvalPageConfig/BaseConditions.vue.d.ts +205 -0
  80. package/dist/components/approval/components/approvalPageConfig/CodeEditorWraper.vue.d.ts +51 -0
  81. package/dist/components/approval/components/approvalPageConfig/ColumnConfig.vue.d.ts +145 -0
  82. package/dist/components/approval/components/approvalPageConfig/ConditionFieldMulType.vue.d.ts +137 -0
  83. package/dist/components/approval/components/approvalPageConfig/JsonInput.vue.d.ts +38 -0
  84. package/dist/components/approval/components/approvalPageConfig/JsonTags.vue.d.ts +26 -0
  85. package/dist/components/approval/components/approvalPageConfig/JsonText.vue.d.ts +36 -0
  86. package/dist/components/approval/components/approvalPageConfig/approveLeftConfig.vue.d.ts +6 -0
  87. package/dist/components/approval/components/approvalPageConfig/baseConfig.vue.d.ts +10 -0
  88. package/dist/components/approval/components/approvalPageConfig/cellEdit.vue.d.ts +23 -0
  89. package/dist/components/approval/components/approvalPageConfig/configSync.vue.d.ts +76 -0
  90. package/dist/components/approval/components/approvalPageConfig/confirmInput.vue.d.ts +26 -0
  91. package/dist/components/approval/components/approvalPageConfig/defaultOperatorSelect.vue.d.ts +18 -0
  92. package/dist/components/approval/components/approvalPageConfig/index.vue.d.ts +11 -0
  93. package/dist/components/approval/components/approvalPageConfig/jsonConfig.vue.d.ts +16 -0
  94. package/dist/components/approval/components/approvalPageConfig/layoutSetting.vue.d.ts +9 -0
  95. package/dist/components/approval/components/approvalPageConfig/leftColumn.vue.d.ts +1184 -0
  96. package/dist/components/approval/components/approvalPageConfig/middleColumn.vue.d.ts +145 -0
  97. package/dist/components/approval/components/approvalPageConfig/operatorSelect.vue.d.ts +18 -0
  98. package/dist/components/approval/components/approvalPageConfig/searchConfig.vue.d.ts +166 -0
  99. package/dist/components/approval/components/approvalPageConfig/tableConfig.vue.d.ts +802 -0
  100. package/dist/components/approval/components/codeHistory/codeHistory.vue.d.ts +53 -0
  101. package/dist/components/approval/components/codeHistory/codeHistoryViewModal.vue.d.ts +32 -0
  102. package/dist/components/approval/components/columnDataList.vue.d.ts +454 -0
  103. package/dist/components/approval/components/columnForm.vue.d.ts +26 -0
  104. package/dist/components/approval/components/columnTables.vue.d.ts +502 -0
  105. package/dist/components/approval/components/columnUnknown.vue.d.ts +2 -0
  106. package/dist/components/approval/components/dataStoreConfig/ConditionConfig.vue.d.ts +199 -0
  107. package/dist/components/approval/components/dataStoreConfig/ValueInput.vue.d.ts +37 -0
  108. package/dist/components/approval/components/dataStoreConfig/dataSourceDetial.vue.d.ts +22 -0
  109. package/dist/components/approval/components/dataStoreConfig/dataStoreConfig.vue.d.ts +554 -0
  110. package/dist/components/approval/components/dataStoreConfig/dataStoreConfigItem.vue.d.ts +434 -0
  111. package/dist/components/approval/components/dataStoreConfig/dataStoreTest.vue.d.ts +39 -0
  112. package/dist/components/approval/components/dataStoreConfig/dataStoreTestsItem.vue.d.ts +17 -0
  113. package/dist/components/approval/components/dataStoreConfig/formField.vue.d.ts +28 -0
  114. package/dist/components/approval/components/dataStoreConfig/formFieldMulType.vue.d.ts +96 -0
  115. package/dist/components/approval/components/dataStoreConfig/selectExcelColumn.vue.d.ts +26 -0
  116. package/dist/components/approval/components/dataStoreConfig/selectExcelType.vue.d.ts +28 -0
  117. package/dist/components/approval/components/debugCode/debugCode.vue.d.ts +214 -0
  118. package/dist/components/approval/components/drawerDataList.vue.d.ts +504 -0
  119. package/dist/components/approval/components/drawerTablesList.vue.d.ts +551 -0
  120. package/dist/components/approval/components/flowConfig/flowConfig.vue.d.ts +1097 -0
  121. package/dist/components/approval/components/flowConfig/selectCcGroup.vue.d.ts +9 -0
  122. package/dist/components/approval/components/flowConfig/selectUsers.vue.d.ts +9 -0
  123. package/dist/components/approval/components/modelTablesList.vue.d.ts +551 -0
  124. package/dist/components/approval/components/pageConfigHistory.vue.d.ts +2 -0
  125. package/dist/components/approval/components/search.vue.d.ts +238 -0
  126. package/dist/components/approval/components/searchSummary.vue.d.ts +100 -0
  127. package/dist/components/approval/components/table.vue.d.ts +416 -0
  128. package/dist/components/approval/components/tableModal.vue.d.ts +84 -0
  129. package/dist/components/approval/configs/approval/default.d.ts +11 -0
  130. package/dist/components/approval/configs/approval/recordActions.d.ts +22 -0
  131. package/dist/components/approval/core.vue.d.ts +53 -0
  132. package/dist/components/approval/example_code/example_code.d.ts +11 -0
  133. package/dist/components/approval/index.d.ts +18 -0
  134. package/dist/components/approval/index.vue.d.ts +2 -0
  135. package/dist/components/approval/migrate/index.d.ts +1 -0
  136. package/dist/components/approval/migrate/v0001.d.ts +2 -0
  137. package/dist/components/approval/store/context.d.ts +48 -0
  138. package/dist/components/approval/store/debugCode.d.ts +7 -0
  139. package/dist/components/approval/store/settingsState.d.ts +15 -0
  140. package/dist/components/approval/typing.d.ts +210 -0
  141. package/dist/components/approval/useApprovalRecordActions.d.ts +83 -0
  142. package/dist/components/approval/utils.d.ts +164 -0
  143. package/dist/components/approval_for_details.vue.d.ts +9 -0
  144. package/dist/components/flow/ElInputTag/index.vue.d.ts +46 -0
  145. package/dist/components/flow/Expression/index.vue.d.ts +48 -0
  146. package/dist/components/flow/Role/index.vue.d.ts +68 -0
  147. package/dist/components/flow/User/index.vue.d.ts +76 -0
  148. package/dist/config/packed-config.d.ts +26 -0
  149. package/dist/constants.d.ts +1 -0
  150. package/dist/core-BOc9ch_5.js +1631 -0
  151. package/dist/core-BOc9ch_5.js.map +1 -0
  152. package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js +114 -0
  153. package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js.map +1 -0
  154. package/dist/debugCode-Cm9-WiUG.js +565 -0
  155. package/dist/debugCode-Cm9-WiUG.js.map +1 -0
  156. package/dist/debugCode-dD1YnQSD.js +11 -0
  157. package/dist/debugCode-dD1YnQSD.js.map +1 -0
  158. package/dist/default-VdDMlY4e.js +560 -0
  159. package/dist/default-VdDMlY4e.js.map +1 -0
  160. package/dist/example_code-C_xF8RRG.js +129 -0
  161. package/dist/example_code-C_xF8RRG.js.map +1 -0
  162. package/dist/flowHistoryViewModal-D8DJP7Te.js +109 -0
  163. package/dist/flowHistoryViewModal-D8DJP7Te.js.map +1 -0
  164. package/dist/index.d.ts +81 -0
  165. package/dist/index.js +507 -26691
  166. package/dist/index.js.map +1 -1
  167. package/dist/init-plugin-fQTSQzui.js +48 -0
  168. package/dist/init-plugin-fQTSQzui.js.map +1 -0
  169. package/dist/init-plugin.d.ts +57 -0
  170. package/dist/leftColumn-CsPjufue.js +209 -0
  171. package/dist/leftColumn-CsPjufue.js.map +1 -0
  172. package/dist/lyflowchart.css +1 -1
  173. package/dist/middleColumn-C7M6-eVo.js +107 -0
  174. package/dist/middleColumn-C7M6-eVo.js.map +1 -0
  175. package/dist/recordActions-BgFlNsGU.js +51 -0
  176. package/dist/recordActions-BgFlNsGU.js.map +1 -0
  177. package/dist/settingsState-CI81PG-i.js +19 -0
  178. package/dist/settingsState-CI81PG-i.js.map +1 -0
  179. package/dist/style.d.ts +3 -0
  180. package/dist/styles.d.ts +7 -0
  181. package/dist/tableConfig-uLXue-BS.js +2408 -0
  182. package/dist/tableConfig-uLXue-BS.js.map +1 -0
  183. package/dist/tableModal-BcYfVL02.js +124 -0
  184. package/dist/tableModal-BcYfVL02.js.map +1 -0
  185. package/dist/useApprovalRecordActions-BQ6MgV2L.js +843 -0
  186. package/dist/useApprovalRecordActions-BQ6MgV2L.js.map +1 -0
  187. package/dist/utils/StrUtil.d.ts +52 -0
  188. package/dist/utils/function.d.ts +8 -0
  189. package/dist/utils-CLet2gLV.js +420 -0
  190. package/dist/utils-CLet2gLV.js.map +1 -0
  191. package/dist/v0001-OaBeBCXI.js +4 -0
  192. package/dist/v0001-OaBeBCXI.js.map +1 -0
  193. package/dist/{Cell_click_data_source-C8WEsBGB.js → viewer-Dv3kQsMf.js} +1839 -2724
  194. package/dist/viewer-Dv3kQsMf.js.map +1 -0
  195. package/dist/vue-print-next-HRweUmNi.js +683 -0
  196. package/dist/vue-print-next-HRweUmNi.js.map +1 -0
  197. package/package.json +39 -8
  198. package/dist/Cell_click_data_source-C8WEsBGB.js.map +0 -1
@@ -0,0 +1,395 @@
1
+ import { v as e } from "./init-plugin-fQTSQzui.js";
2
+ import { o as t } from "./utils-CLet2gLV.js";
3
+ import { t as n } from "./example_code-C_xF8RRG.js";
4
+ import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, openBlock as f, ref as p, renderList as m, resolveComponent as h, toDisplayString as g, withCtx as _ } from "vue";
5
+ import { Modal as v } from "ant-design-vue";
6
+ //#region src/components/approval/components/approvalPageConfig/JsonText.vue?vue&type=script&lang.ts
7
+ var y = d({
8
+ name: "JsonTags",
9
+ props: {
10
+ value: {
11
+ type: Object,
12
+ required: !0
13
+ },
14
+ placeholder: {
15
+ type: String,
16
+ required: !1
17
+ },
18
+ rows: {
19
+ type: Number,
20
+ default: 3
21
+ }
22
+ },
23
+ emits: ["update:value"],
24
+ setup(e, { emit: t }) {
25
+ return {
26
+ _value: i(() => typeof e.value == "string" ? e.value : JSON.stringify(e.value)),
27
+ handleChange: (e) => {
28
+ let n = null;
29
+ try {
30
+ n = JSON.parse(e);
31
+ } catch {
32
+ n = e;
33
+ }
34
+ t("update:value", n);
35
+ },
36
+ valueType: i(() => typeof e.value)
37
+ };
38
+ }
39
+ });
40
+ //#endregion
41
+ //#region src/components/approval/components/approvalPageConfig/JsonText.vue
42
+ function b(e, t, n, i, a, o) {
43
+ let c = h("a-textarea"), d = h("a-tag");
44
+ return f(), s(r, null, [u(c, {
45
+ value: e._value,
46
+ placeholder: e.placeholder,
47
+ rows: e.rows,
48
+ "onUpdate:value": e.handleChange
49
+ }, null, 8, [
50
+ "value",
51
+ "placeholder",
52
+ "rows",
53
+ "onUpdate:value"
54
+ ]), u(d, null, {
55
+ default: _(() => [l(g(e.valueType), 1)]),
56
+ _: 1
57
+ })], 64);
58
+ }
59
+ var x = /* @__PURE__ */ e(y, [["render", b], ["__scopeId", "data-v-43e40d82"]]), S = "click", C = d({
60
+ name: "CodeEditorWraper",
61
+ components: {},
62
+ props: {
63
+ value: {
64
+ type: String,
65
+ default: ""
66
+ },
67
+ editType: {
68
+ type: String,
69
+ default: ""
70
+ },
71
+ action: {
72
+ type: String,
73
+ default: ""
74
+ }
75
+ },
76
+ emits: ["update:value"],
77
+ setup(e, { emit: t }) {
78
+ let r = p(!1), a = p("");
79
+ return {
80
+ update: (e) => {
81
+ t("update:value", e);
82
+ },
83
+ isCodeVisible: r,
84
+ exampleCode: a,
85
+ filterExampleCodeList: i(() => n.filter((t) => e.editType === S ? t.types.includes(S) && t.actions.includes(e.action || null) : t.types.includes(e.editType))),
86
+ handleAppendCode: () => {
87
+ a.value && t("update:value", `${e.value || ""}\n${a.value}`);
88
+ },
89
+ handleReplaceCode: () => {
90
+ a.value && (e.value ? v.confirm({
91
+ title: "提示",
92
+ content: "是否确认要替换现有代码",
93
+ onOk() {
94
+ t("update:value", a.value);
95
+ },
96
+ onCancel() {}
97
+ }) : t("update:value", a.value));
98
+ }
99
+ };
100
+ }
101
+ }), w = { key: 0 };
102
+ function T(e, t, n, i, d, p) {
103
+ let v = h("a-button"), y = h("a-tooltip"), b = h("a-select-option"), x = h("a-select"), S = h("a-col"), C = h("a-button-group"), T = h("a-row"), E = h("a-form-item"), D = h("a-form"), O = h("code-editor");
104
+ return f(), s("div", null, [c("div", null, [u(v, {
105
+ type: "link",
106
+ onClick: t[0] ||= (t) => e.isCodeVisible = !e.isCodeVisible
107
+ }, {
108
+ default: _(() => [l(g(e.isCodeVisible ? "隐藏代码" : "显示代码"), 1)]),
109
+ _: 1
110
+ })]), e.isCodeVisible ? (f(), s("div", w, [u(D, null, {
111
+ default: _(() => [u(E, { label: "示例代码" }, {
112
+ default: _(() => [u(T, { gutter: 10 }, {
113
+ default: _(() => [u(S, { span: 20 }, {
114
+ default: _(() => [u(x, {
115
+ value: e.exampleCode,
116
+ "onUpdate:value": t[1] ||= (t) => e.exampleCode = t,
117
+ "show-search": ""
118
+ }, {
119
+ default: _(() => [(f(!0), s(r, null, m(e.filterExampleCodeList, (e) => (f(), a(b, {
120
+ value: e.value,
121
+ key: e.value
122
+ }, {
123
+ default: _(() => [u(y, {
124
+ overlayClassName: "debug-code-code-view",
125
+ color: "blue"
126
+ }, {
127
+ title: _(() => [c("pre", null, g(e.value), 1)]),
128
+ default: _(() => [l(" " + g(e.label), 1)]),
129
+ _: 2
130
+ }, 1024)]),
131
+ _: 2
132
+ }, 1032, ["value"]))), 128))]),
133
+ _: 1
134
+ }, 8, ["value"])]),
135
+ _: 1
136
+ }), u(S, { span: 4 }, {
137
+ default: _(() => [u(C, null, {
138
+ default: _(() => [u(v, {
139
+ type: "primary",
140
+ onClick: e.handleAppendCode
141
+ }, {
142
+ default: _(() => [...t[2] ||= [l(" 附加 ", -1)]]),
143
+ _: 1
144
+ }, 8, ["onClick"]), u(v, {
145
+ type: "primary",
146
+ onClick: e.handleReplaceCode
147
+ }, {
148
+ default: _(() => [...t[3] ||= [l(" 替换 ", -1)]]),
149
+ _: 1
150
+ }, 8, ["onClick"])]),
151
+ _: 1
152
+ })]),
153
+ _: 1
154
+ })]),
155
+ _: 1
156
+ })]),
157
+ _: 1
158
+ })]),
159
+ _: 1
160
+ }), u(O, {
161
+ editorValue: e.value,
162
+ "onUpdate:editorValue": e.update,
163
+ mode: "javascript",
164
+ lineWrapping: !0
165
+ }, null, 8, ["editorValue", "onUpdate:editorValue"])])) : o("", !0)]);
166
+ }
167
+ var E = /* @__PURE__ */ e(C, [["render", T]]), D = "async function run(params) {\n console.log(JSON.stringify(params));\n // try {\n // const res = await self.callHost('getApiData')({}, '/test/');\n // } catch (e) {\n // console.error('call error', JSON.stringify(e));\n // }\n return { name: 'test' };\n}\n", O = d({
168
+ name: "ActionsConfig",
169
+ components: {
170
+ JsonText: x,
171
+ CodeEditorWraper: E
172
+ },
173
+ props: { dataSource: {
174
+ type: Object,
175
+ required: !0
176
+ } },
177
+ emits: ["update:dataSource"],
178
+ setup(e, { emit: n }) {
179
+ return {
180
+ addButton: () => {
181
+ n("update:dataSource", [...e.dataSource || [], {
182
+ label: "",
183
+ type: "primary",
184
+ action: "process",
185
+ danger: !1,
186
+ settings: {},
187
+ code: D
188
+ }]);
189
+ },
190
+ removeButton: (t) => {
191
+ e.dataSource.splice(t, 1);
192
+ },
193
+ typeList: [
194
+ "primary",
195
+ "default",
196
+ "dashed",
197
+ "link",
198
+ "text"
199
+ ],
200
+ actionTypes: t,
201
+ showCodeEnableChange: (e, t) => {
202
+ e.showCode = {
203
+ ...e.showCode || { code: "async function run({ context, settings }) {\n console.log('context', JSON.stringify(context));\n console.log('settings', JSON.stringify(settings));\n const { tables, formModel } = context;\n // const table = tables['approve-approve_record'];\n // const { searchConditions, selectedRowKeys, selectedRecord, datasource } = table;\n\n // try {\n // const res = await self.callHost('getApiData')({}, '/test/');\n // } catch (e) {\n // console.error('call error', JSON.stringify(e));\n // }\n return true;\n}\n" },
204
+ enable: t
205
+ };
206
+ },
207
+ disableCodeEnableChange: (e, t) => {
208
+ e.disableCode = {
209
+ ...e.showCode || { code: "async function run({ context, settings }) {\n console.log('context', JSON.stringify(context));\n console.log('settings', JSON.stringify(settings));\n const { tables, formModel } = context;\n // const table = tables['approve-approve_record'];\n // const { searchConditions, selectedRowKeys, selectedRecord, datasource } = table;\n\n // try {\n // const res = await self.callHost('getApiData')({}, '/test/');\n // } catch (e) {\n // console.error('call error', JSON.stringify(e));\n // }\n return true;\n}\n" },
210
+ enable: t
211
+ };
212
+ }
213
+ };
214
+ }
215
+ }), k = { class: "item-index" }, A = { class: "config-body" }, j = { class: "config-actions" };
216
+ function M(e, t, n, i, d, p) {
217
+ let v = h("a-input"), y = h("a-col"), b = h("a-switch"), x = h("a-button"), S = h("a-select-option"), C = h("a-select"), w = h("a-row"), T = h("json-text"), E = h("code-editor-wraper"), D = h("delete-outlined");
218
+ return f(), s("div", null, [(f(!0), s(r, null, m(e.dataSource, (n, i) => (f(), s("div", {
219
+ key: i,
220
+ class: "button-config-item"
221
+ }, [
222
+ c("div", k, "(" + g(i + 1) + ")", 1),
223
+ c("div", A, [
224
+ u(w, {
225
+ gutter: 16,
226
+ align: "top"
227
+ }, {
228
+ default: _(() => [
229
+ u(y, { span: 5 }, {
230
+ default: _(() => [t[0] ||= c("label", null, "名称", -1), u(v, {
231
+ value: n.label,
232
+ "onUpdate:value": (e) => n.label = e
233
+ }, null, 8, ["value", "onUpdate:value"])]),
234
+ _: 2
235
+ }, 1024),
236
+ u(y, { span: 3 }, {
237
+ default: _(() => [t[1] ||= c("label", null, "下拉菜单", -1), c("div", null, [u(b, {
238
+ checked: n.is_dropdown,
239
+ "onUpdate:checked": (e) => n.is_dropdown = e
240
+ }, null, 8, ["checked", "onUpdate:checked"])])]),
241
+ _: 2
242
+ }, 1024),
243
+ n.is_dropdown ? (f(), a(y, {
244
+ key: 1,
245
+ span: 5
246
+ }, {
247
+ default: _(() => [t[4] ||= c("label", null, "组名", -1), u(v, {
248
+ value: n.group_name,
249
+ "onUpdate:value": (e) => n.group_name = e
250
+ }, null, 8, ["value", "onUpdate:value"])]),
251
+ _: 2
252
+ }, 1024)) : (f(), s(r, { key: 0 }, [u(y, { span: 3 }, {
253
+ default: _(() => [t[2] ||= c("label", null, "危险按钮", -1), c("div", null, [u(b, {
254
+ checked: n.danger,
255
+ "onUpdate:checked": (e) => n.danger = e
256
+ }, null, 8, ["checked", "onUpdate:checked"])])]),
257
+ _: 2
258
+ }, 1024), u(y, { span: 5 }, {
259
+ default: _(() => [t[3] ||= c("label", null, "显示类型", -1), u(C, {
260
+ value: n.type,
261
+ "onUpdate:value": (e) => n.type = e,
262
+ class: "w-full"
263
+ }, {
264
+ default: _(() => [(f(!0), s(r, null, m(e.typeList, (e, t) => (f(), a(S, {
265
+ value: e,
266
+ key: t
267
+ }, {
268
+ default: _(() => [u(x, {
269
+ size: "small",
270
+ type: e,
271
+ danger: n.danger
272
+ }, {
273
+ default: _(() => [l(g(e), 1)]),
274
+ _: 2
275
+ }, 1032, ["type", "danger"])]),
276
+ _: 2
277
+ }, 1032, ["value"]))), 128))]),
278
+ _: 2
279
+ }, 1032, ["value", "onUpdate:value"])]),
280
+ _: 2
281
+ }, 1024)], 64))
282
+ ]),
283
+ _: 2
284
+ }, 1024),
285
+ u(w, { gutter: 16 }, {
286
+ default: _(() => [u(y, { span: 24 }, {
287
+ default: _(() => [t[5] ||= c("label", null, "操作类型", -1), u(C, {
288
+ value: n.action,
289
+ "onUpdate:value": (e) => n.action = e,
290
+ class: "w-full",
291
+ options: e.actionTypes
292
+ }, null, 8, [
293
+ "value",
294
+ "onUpdate:value",
295
+ "options"
296
+ ])]),
297
+ _: 2
298
+ }, 1024)]),
299
+ _: 2
300
+ }, 1024),
301
+ u(w, {
302
+ gutter: 16,
303
+ class: "mt-4"
304
+ }, {
305
+ default: _(() => [u(y, { span: 24 }, {
306
+ default: _(() => [t[6] ||= c("label", null, "配置", -1), u(T, {
307
+ value: n.settings,
308
+ "onUpdate:value": (e) => n.settings = e,
309
+ rows: 3
310
+ }, null, 8, ["value", "onUpdate:value"])]),
311
+ _: 2
312
+ }, 1024)]),
313
+ _: 2
314
+ }, 1024),
315
+ u(w, {
316
+ gutter: 16,
317
+ class: "mt-4"
318
+ }, {
319
+ default: _(() => [u(y, { span: 24 }, {
320
+ default: _(() => [t[7] ||= c("label", null, "点击事件代码", -1), u(E, {
321
+ value: n.code,
322
+ "onUpdate:value": (e) => n.code = e,
323
+ "edit-type": "click",
324
+ action: n.action
325
+ }, null, 8, [
326
+ "value",
327
+ "onUpdate:value",
328
+ "action"
329
+ ])]),
330
+ _: 2
331
+ }, 1024)]),
332
+ _: 2
333
+ }, 1024),
334
+ u(w, {
335
+ gutter: 16,
336
+ class: "mt-4"
337
+ }, {
338
+ default: _(() => [u(y, { span: 2 }, {
339
+ default: _(() => [t[8] ||= c("label", null, "显示控制", -1), u(b, {
340
+ checked: n.showCode?.enable,
341
+ onChange: (t) => e.showCodeEnableChange(n, t)
342
+ }, null, 8, ["checked", "onChange"])]),
343
+ _: 2
344
+ }, 1024), n.showCode?.enable ? (f(), a(y, {
345
+ key: 0,
346
+ span: 22
347
+ }, {
348
+ default: _(() => [t[9] ||= c("label", null, "显示控制代码", -1), u(E, {
349
+ value: n.showCode.code,
350
+ "onUpdate:value": (e) => n.showCode.code = e,
351
+ "edit-type": "show"
352
+ }, null, 8, ["value", "onUpdate:value"])]),
353
+ _: 2
354
+ }, 1024)) : o("", !0)]),
355
+ _: 2
356
+ }, 1024),
357
+ u(w, {
358
+ gutter: 16,
359
+ class: "mt-4"
360
+ }, {
361
+ default: _(() => [u(y, { span: 2 }, {
362
+ default: _(() => [t[10] ||= c("label", null, "禁用控制", -1), u(b, {
363
+ checked: n.disableCode?.enable,
364
+ onChange: (t) => e.disableCodeEnableChange(n, t)
365
+ }, null, 8, ["checked", "onChange"])]),
366
+ _: 2
367
+ }, 1024), n.disableCode?.enable ? (f(), a(y, {
368
+ key: 0,
369
+ span: 22
370
+ }, {
371
+ default: _(() => [t[11] ||= c("label", null, "禁用制代码", -1), u(E, {
372
+ value: n.disableCode.code,
373
+ "onUpdate:value": (e) => n.disableCode.code = e,
374
+ "edit-type": "disable"
375
+ }, null, 8, ["value", "onUpdate:value"])]),
376
+ _: 2
377
+ }, 1024)) : o("", !0)]),
378
+ _: 2
379
+ }, 1024)
380
+ ]),
381
+ c("div", j, [u(D, {
382
+ onClick: (t) => e.removeButton(i),
383
+ class: "delete-icon"
384
+ }, null, 8, ["onClick"])])
385
+ ]))), 128)), u(x, {
386
+ type: "link",
387
+ onClick: e.addButton
388
+ }, {
389
+ default: _(() => [...t[12] ||= [l(" 添加按钮 ", -1)]]),
390
+ _: 1
391
+ }, 8, ["onClick"])]);
392
+ }
393
+ var N = /* @__PURE__ */ e(O, [["render", M], ["__scopeId", "data-v-b55f534d"]]);
394
+ //#endregion
395
+ export { x as n, N as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsConfig-BuvSvRbv.js","names":[],"sources":["../src/components/approval/components/approvalPageConfig/JsonText.vue","../src/components/approval/components/approvalPageConfig/JsonText.vue","../src/components/approval/components/approvalPageConfig/CodeEditorWraper.vue","../src/components/approval/components/approvalPageConfig/CodeEditorWraper.vue","../src/components/approval/components/approvalPageConfig/default_action_code.js?raw","../src/components/approval/components/approvalPageConfig/ActionsConfig.vue","../src/components/approval/components/approvalPageConfig/ActionsConfig.vue"],"sourcesContent":["<template>\n <a-textarea\n :value=\"_value\"\n :placeholder=\"placeholder\"\n :rows=\"rows\"\n @update:value=\"handleChange\"\n />\n <a-tag>{{ valueType }}</a-tag>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref, watch } from 'vue';\n\nexport default defineComponent({\n name: 'JsonTags',\n props: {\n value: {\n type: Object,\n required: true,\n },\n placeholder: {\n type: String,\n required: false,\n },\n rows: {\n type: Number,\n default: 3,\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const _value = computed(() => {\n if (typeof props.value === 'string') {\n return props.value;\n } else {\n return JSON.stringify(props.value);\n }\n });\n const handleChange = value => {\n let res = null;\n try {\n res = JSON.parse(value);\n } catch {\n res = value;\n }\n emit('update:value', res);\n };\n const valueType = computed(() => {\n return typeof props.value;\n });\n return {\n _value,\n handleChange,\n valueType,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.type {\n color: #1890ff;\n}\n</style>\n","<template>\n <a-textarea\n :value=\"_value\"\n :placeholder=\"placeholder\"\n :rows=\"rows\"\n @update:value=\"handleChange\"\n />\n <a-tag>{{ valueType }}</a-tag>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref, watch } from 'vue';\n\nexport default defineComponent({\n name: 'JsonTags',\n props: {\n value: {\n type: Object,\n required: true,\n },\n placeholder: {\n type: String,\n required: false,\n },\n rows: {\n type: Number,\n default: 3,\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const _value = computed(() => {\n if (typeof props.value === 'string') {\n return props.value;\n } else {\n return JSON.stringify(props.value);\n }\n });\n const handleChange = value => {\n let res = null;\n try {\n res = JSON.parse(value);\n } catch {\n res = value;\n }\n emit('update:value', res);\n };\n const valueType = computed(() => {\n return typeof props.value;\n });\n return {\n _value,\n handleChange,\n valueType,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.type {\n color: #1890ff;\n}\n</style>\n","<template>\n <div>\n <div>\n <a-button\n type=\"link\"\n @click=\"isCodeVisible = !isCodeVisible\"\n >\n {{ isCodeVisible ? '隐藏代码' : '显示代码' }}\n </a-button>\n </div>\n <div v-if=\"isCodeVisible\">\n <a-form>\n <a-form-item label=\"示例代码\">\n <a-row :gutter=\"10\">\n <a-col :span=\"20\">\n <a-select\n v-model:value=\"exampleCode\"\n show-search\n >\n <a-select-option\n v-for=\"item in filterExampleCodeList\"\n :value=\"item.value\"\n :key=\"item.value\"\n >\n <a-tooltip\n overlayClassName=\"debug-code-code-view\"\n color=\"blue\"\n >\n <template #title>\n <pre>{{ item.value }}</pre>\n </template>\n {{ item.label }}\n </a-tooltip>\n </a-select-option>\n </a-select>\n </a-col>\n <a-col :span=\"4\">\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleAppendCode\"\n >\n 附加\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"handleReplaceCode\"\n >\n 替换\n </a-button>\n </a-button-group>\n </a-col>\n </a-row>\n </a-form-item>\n </a-form>\n <code-editor\n :editorValue=\"value\"\n @update:editorValue=\"update\"\n mode=\"javascript\"\n :lineWrapping=\"true\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { exampleCodeList } from '../../example_code/example_code';\nimport { Modal } from 'ant-design-vue';\nconst EDIT_TYPE_CLICK = 'click';\nconst EDIT_TYPE_SHOW = 'show';\nconst EDIT_TYPE_DISABLE = 'disable';\nconst EDIT_TYPE_VALUE = 'value';\nexport default defineComponent({\n name: 'CodeEditorWraper',\n components: {\n },\n props: {\n value: {\n type: String,\n default: '',\n },\n editType: {\n type: String,\n default: '',\n },\n action: {\n type: String,\n default: '',\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const isCodeVisible = ref(false);\n const exampleCode = ref('');\n const update = value => {\n emit('update:value', value);\n };\n const filterExampleCodeList = computed(() => {\n return exampleCodeList.filter(item => {\n if (props.editType === EDIT_TYPE_CLICK) {\n return (\n item.types.includes(EDIT_TYPE_CLICK) && item.actions.includes(props.action || null)\n );\n } else {\n return item.types.includes(props.editType);\n }\n });\n });\n const handleAppendCode = () => {\n if (!exampleCode.value) {\n return;\n }\n const value = `${props.value || ''}\\n${exampleCode.value}`;\n emit('update:value', value);\n };\n\n const handleReplaceCode = () => {\n if (!exampleCode.value) {\n return;\n }\n if (props.value) {\n Modal.confirm({\n title: '提示',\n content: '是否确认要替换现有代码',\n onOk() {\n emit('update:value', exampleCode.value);\n },\n onCancel() {},\n });\n } else {\n emit('update:value', exampleCode.value);\n }\n };\n return {\n update,\n isCodeVisible,\n exampleCode,\n filterExampleCodeList,\n handleAppendCode,\n handleReplaceCode,\n };\n },\n});\n</script>\n\n<style scoped lang=\"less\"></style>\n","<template>\n <div>\n <div>\n <a-button\n type=\"link\"\n @click=\"isCodeVisible = !isCodeVisible\"\n >\n {{ isCodeVisible ? '隐藏代码' : '显示代码' }}\n </a-button>\n </div>\n <div v-if=\"isCodeVisible\">\n <a-form>\n <a-form-item label=\"示例代码\">\n <a-row :gutter=\"10\">\n <a-col :span=\"20\">\n <a-select\n v-model:value=\"exampleCode\"\n show-search\n >\n <a-select-option\n v-for=\"item in filterExampleCodeList\"\n :value=\"item.value\"\n :key=\"item.value\"\n >\n <a-tooltip\n overlayClassName=\"debug-code-code-view\"\n color=\"blue\"\n >\n <template #title>\n <pre>{{ item.value }}</pre>\n </template>\n {{ item.label }}\n </a-tooltip>\n </a-select-option>\n </a-select>\n </a-col>\n <a-col :span=\"4\">\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleAppendCode\"\n >\n 附加\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"handleReplaceCode\"\n >\n 替换\n </a-button>\n </a-button-group>\n </a-col>\n </a-row>\n </a-form-item>\n </a-form>\n <code-editor\n :editorValue=\"value\"\n @update:editorValue=\"update\"\n mode=\"javascript\"\n :lineWrapping=\"true\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { exampleCodeList } from '../../example_code/example_code';\nimport { Modal } from 'ant-design-vue';\nconst EDIT_TYPE_CLICK = 'click';\nconst EDIT_TYPE_SHOW = 'show';\nconst EDIT_TYPE_DISABLE = 'disable';\nconst EDIT_TYPE_VALUE = 'value';\nexport default defineComponent({\n name: 'CodeEditorWraper',\n components: {\n },\n props: {\n value: {\n type: String,\n default: '',\n },\n editType: {\n type: String,\n default: '',\n },\n action: {\n type: String,\n default: '',\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const isCodeVisible = ref(false);\n const exampleCode = ref('');\n const update = value => {\n emit('update:value', value);\n };\n const filterExampleCodeList = computed(() => {\n return exampleCodeList.filter(item => {\n if (props.editType === EDIT_TYPE_CLICK) {\n return (\n item.types.includes(EDIT_TYPE_CLICK) && item.actions.includes(props.action || null)\n );\n } else {\n return item.types.includes(props.editType);\n }\n });\n });\n const handleAppendCode = () => {\n if (!exampleCode.value) {\n return;\n }\n const value = `${props.value || ''}\\n${exampleCode.value}`;\n emit('update:value', value);\n };\n\n const handleReplaceCode = () => {\n if (!exampleCode.value) {\n return;\n }\n if (props.value) {\n Modal.confirm({\n title: '提示',\n content: '是否确认要替换现有代码',\n onOk() {\n emit('update:value', exampleCode.value);\n },\n onCancel() {},\n });\n } else {\n emit('update:value', exampleCode.value);\n }\n };\n return {\n update,\n isCodeVisible,\n exampleCode,\n filterExampleCodeList,\n handleAppendCode,\n handleReplaceCode,\n };\n },\n});\n</script>\n\n<style scoped lang=\"less\"></style>\n","export default \"async function run(params) {\\n console.log(JSON.stringify(params));\\n // try {\\n // const res = await self.callHost('getApiData')({}, '/test/');\\n // } catch (e) {\\n // console.error('call error', JSON.stringify(e));\\n // }\\n return { name: 'test' };\\n}\\n\"","<template>\n <div>\n <div\n v-for=\"(button, index) in dataSource\"\n :key=\"index\"\n class=\"button-config-item\"\n >\n <div class=\"item-index\">({{ index + 1 }})</div>\n <div class=\"config-body\">\n <a-row\n :gutter=\"16\"\n align=\"top\"\n >\n <a-col :span=\"5\">\n <label>名称</label>\n <a-input v-model:value=\"button.label\" />\n </a-col>\n <a-col :span=\"3\">\n <label>下拉菜单</label>\n <div>\n <a-switch v-model:checked=\"button.is_dropdown\" />\n </div>\n </a-col>\n <template v-if=\"!button.is_dropdown\">\n <a-col :span=\"3\">\n <label>危险按钮</label>\n <div>\n <a-switch v-model:checked=\"button.danger\" />\n </div>\n </a-col>\n <a-col :span=\"5\">\n <label>显示类型</label>\n <a-select\n v-model:value=\"button.type\"\n class=\"w-full\"\n >\n <a-select-option\n v-for=\"(item, index) in typeList\"\n :value=\"item\"\n :key=\"index\"\n >\n <a-button\n size=\"small\"\n :type=\"item as any\"\n :danger=\"button.danger\"\n >\n {{ item }}\n </a-button>\n </a-select-option>\n </a-select>\n </a-col>\n </template>\n <template v-else>\n <a-col :span=\"5\">\n <label>组名</label>\n <a-input v-model:value=\"button.group_name\" />\n </a-col>\n </template>\n </a-row>\n <a-row :gutter=\"16\">\n <a-col :span=\"24\">\n <label>操作类型</label>\n <a-select\n v-model:value=\"button.action\"\n class=\"w-full\"\n :options=\"actionTypes\"\n ></a-select>\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"24\">\n <label>配置</label>\n <json-text\n v-model:value=\"button.settings\"\n :rows=\"3\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"24\">\n <label>点击事件代码</label>\n <code-editor-wraper\n v-model:value=\"button.code\"\n :edit-type=\"'click'\"\n :action=\"button.action\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"2\">\n <label>显示控制</label>\n <a-switch\n :checked=\"button.showCode?.enable\"\n @change=\"showCodeEnableChange(button, $event)\"\n ></a-switch>\n </a-col>\n <a-col\n :span=\"22\"\n v-if=\"button.showCode?.enable\"\n >\n <label>显示控制代码</label>\n <code-editor-wraper\n v-model:value=\"button.showCode.code\"\n :edit-type=\"'show'\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"2\">\n <label>禁用控制</label>\n <a-switch\n :checked=\"button.disableCode?.enable\"\n @change=\"disableCodeEnableChange(button, $event)\"\n ></a-switch>\n </a-col>\n <a-col\n :span=\"22\"\n v-if=\"button.disableCode?.enable\"\n >\n <label>禁用制代码</label>\n <code-editor-wraper\n v-model:value=\"button.disableCode.code\"\n :edit-type=\"'disable'\"\n />\n </a-col>\n </a-row>\n </div>\n <div class=\"config-actions\">\n <delete-outlined\n @click=\"removeButton(index)\"\n class=\"delete-icon\"\n />\n </div>\n </div>\n <a-button\n type=\"link\"\n @click=\"addButton\"\n >\n 添加按钮\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, ref } from 'vue';\nimport { Action } from '../../typing';\nimport JsonText from './JsonText.vue';\nimport { actionTypes } from '../../utils';\nimport CodeEditorWraper from './CodeEditorWraper.vue';\nimport default_action_cdoe from './default_action_code.js?raw';\nimport form_bottom_show from '../../example_code/form_bottom_show.js?raw';\nimport form_bottom_disable from '../../example_code/form_bottom_disable.js?raw';\n\nexport default defineComponent({\n name: 'ActionsConfig',\n components: {\n JsonText,\n CodeEditorWraper,\n },\n props: {\n dataSource: {\n type: Object as PropType<Array<Action>>,\n required: true,\n },\n },\n emits: ['update:dataSource'],\n setup(props, { emit }) {\n const addButton = () => {\n const data = props.dataSource || [];\n emit('update:dataSource', [\n ...data,\n {\n label: '',\n type: 'primary',\n action: 'process',\n danger: false,\n settings: {},\n code: default_action_cdoe,\n },\n ]);\n };\n const showCodeEnableChange = (item: Action, enable) => {\n item.showCode = {\n ...(item.showCode || { code: form_bottom_show }),\n enable: enable,\n };\n };\n const disableCodeEnableChange = (item: Action, enable) => {\n item.disableCode = {\n ...(item.showCode || { code: form_bottom_disable }),\n enable: enable,\n };\n };\n\n const removeButton = (index: number) => {\n props.dataSource.splice(index, 1);\n };\n const typeList = ['primary', 'default', 'dashed', 'link', 'text'];\n\n return {\n addButton,\n removeButton,\n typeList,\n actionTypes,\n showCodeEnableChange,\n disableCodeEnableChange,\n };\n },\n});\n</script>\n\n<style scoped lang=\"less\">\n.button-config-item {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: 10px;\n border-bottom: 1px solid #f0f0f0;\n padding-bottom: 16px;\n margin-bottom: 16px;\n\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n }\n}\n\n.config-body {\n flex: 1;\n}\n\n.delete-icon {\n font-size: 18px;\n color: #ff4d4f;\n cursor: pointer;\n}\n\nlabel {\n display: block;\n margin-bottom: 4px;\n}\n\n.w-full {\n width: 100%;\n}\n</style>\n","<template>\n <div>\n <div\n v-for=\"(button, index) in dataSource\"\n :key=\"index\"\n class=\"button-config-item\"\n >\n <div class=\"item-index\">({{ index + 1 }})</div>\n <div class=\"config-body\">\n <a-row\n :gutter=\"16\"\n align=\"top\"\n >\n <a-col :span=\"5\">\n <label>名称</label>\n <a-input v-model:value=\"button.label\" />\n </a-col>\n <a-col :span=\"3\">\n <label>下拉菜单</label>\n <div>\n <a-switch v-model:checked=\"button.is_dropdown\" />\n </div>\n </a-col>\n <template v-if=\"!button.is_dropdown\">\n <a-col :span=\"3\">\n <label>危险按钮</label>\n <div>\n <a-switch v-model:checked=\"button.danger\" />\n </div>\n </a-col>\n <a-col :span=\"5\">\n <label>显示类型</label>\n <a-select\n v-model:value=\"button.type\"\n class=\"w-full\"\n >\n <a-select-option\n v-for=\"(item, index) in typeList\"\n :value=\"item\"\n :key=\"index\"\n >\n <a-button\n size=\"small\"\n :type=\"item as any\"\n :danger=\"button.danger\"\n >\n {{ item }}\n </a-button>\n </a-select-option>\n </a-select>\n </a-col>\n </template>\n <template v-else>\n <a-col :span=\"5\">\n <label>组名</label>\n <a-input v-model:value=\"button.group_name\" />\n </a-col>\n </template>\n </a-row>\n <a-row :gutter=\"16\">\n <a-col :span=\"24\">\n <label>操作类型</label>\n <a-select\n v-model:value=\"button.action\"\n class=\"w-full\"\n :options=\"actionTypes\"\n ></a-select>\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"24\">\n <label>配置</label>\n <json-text\n v-model:value=\"button.settings\"\n :rows=\"3\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"24\">\n <label>点击事件代码</label>\n <code-editor-wraper\n v-model:value=\"button.code\"\n :edit-type=\"'click'\"\n :action=\"button.action\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"2\">\n <label>显示控制</label>\n <a-switch\n :checked=\"button.showCode?.enable\"\n @change=\"showCodeEnableChange(button, $event)\"\n ></a-switch>\n </a-col>\n <a-col\n :span=\"22\"\n v-if=\"button.showCode?.enable\"\n >\n <label>显示控制代码</label>\n <code-editor-wraper\n v-model:value=\"button.showCode.code\"\n :edit-type=\"'show'\"\n />\n </a-col>\n </a-row>\n <a-row\n :gutter=\"16\"\n class=\"mt-4\"\n >\n <a-col :span=\"2\">\n <label>禁用控制</label>\n <a-switch\n :checked=\"button.disableCode?.enable\"\n @change=\"disableCodeEnableChange(button, $event)\"\n ></a-switch>\n </a-col>\n <a-col\n :span=\"22\"\n v-if=\"button.disableCode?.enable\"\n >\n <label>禁用制代码</label>\n <code-editor-wraper\n v-model:value=\"button.disableCode.code\"\n :edit-type=\"'disable'\"\n />\n </a-col>\n </a-row>\n </div>\n <div class=\"config-actions\">\n <delete-outlined\n @click=\"removeButton(index)\"\n class=\"delete-icon\"\n />\n </div>\n </div>\n <a-button\n type=\"link\"\n @click=\"addButton\"\n >\n 添加按钮\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, ref } from 'vue';\nimport { Action } from '../../typing';\nimport JsonText from './JsonText.vue';\nimport { actionTypes } from '../../utils';\nimport CodeEditorWraper from './CodeEditorWraper.vue';\nimport default_action_cdoe from './default_action_code.js?raw';\nimport form_bottom_show from '../../example_code/form_bottom_show.js?raw';\nimport form_bottom_disable from '../../example_code/form_bottom_disable.js?raw';\n\nexport default defineComponent({\n name: 'ActionsConfig',\n components: {\n JsonText,\n CodeEditorWraper,\n },\n props: {\n dataSource: {\n type: Object as PropType<Array<Action>>,\n required: true,\n },\n },\n emits: ['update:dataSource'],\n setup(props, { emit }) {\n const addButton = () => {\n const data = props.dataSource || [];\n emit('update:dataSource', [\n ...data,\n {\n label: '',\n type: 'primary',\n action: 'process',\n danger: false,\n settings: {},\n code: default_action_cdoe,\n },\n ]);\n };\n const showCodeEnableChange = (item: Action, enable) => {\n item.showCode = {\n ...(item.showCode || { code: form_bottom_show }),\n enable: enable,\n };\n };\n const disableCodeEnableChange = (item: Action, enable) => {\n item.disableCode = {\n ...(item.showCode || { code: form_bottom_disable }),\n enable: enable,\n };\n };\n\n const removeButton = (index: number) => {\n props.dataSource.splice(index, 1);\n };\n const typeList = ['primary', 'default', 'dashed', 'link', 'text'];\n\n return {\n addButton,\n removeButton,\n typeList,\n actionTypes,\n showCodeEnableChange,\n disableCodeEnableChange,\n };\n },\n});\n</script>\n\n<style scoped lang=\"less\">\n.button-config-item {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: 10px;\n border-bottom: 1px solid #f0f0f0;\n padding-bottom: 16px;\n margin-bottom: 16px;\n\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n }\n}\n\n.config-body {\n flex: 1;\n}\n\n.delete-icon {\n font-size: 18px;\n color: #ff4d4f;\n cursor: pointer;\n}\n\nlabel {\n display: block;\n margin-bottom: 4px;\n}\n\n.w-full {\n width: 100%;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { t as e } from "./core-BOc9ch_5.js";
2
+ import { createBlock as t, createCommentVNode as n, defineComponent as r, mergeModels as i, openBlock as a, resolveComponent as o, useModel as s, withCtx as c } from "vue";
3
+ //#endregion
4
+ //#region src/components/approval/ApprovalEditorModal.vue
5
+ var l = /* @__PURE__ */ r({
6
+ name: "ApprovalEditorModal",
7
+ __name: "ApprovalEditorModal",
8
+ props: /* @__PURE__ */ i({
9
+ modelType: {},
10
+ approveRecordId: {},
11
+ title: {}
12
+ }, {
13
+ open: {
14
+ type: Boolean,
15
+ default: !1
16
+ },
17
+ openModifiers: {}
18
+ }),
19
+ emits: /* @__PURE__ */ i(["saved", "cancel"], ["update:open"]),
20
+ setup(r, { emit: i }) {
21
+ let l = i, u = s(r, "open"), d = () => {
22
+ u.value = !1, l("cancel");
23
+ };
24
+ return (i, s) => {
25
+ let f = o("a-modal");
26
+ return a(), t(f, {
27
+ open: u.value,
28
+ "onUpdate:open": s[1] ||= (e) => u.value = e,
29
+ title: r.title,
30
+ width: "100%",
31
+ footer: null,
32
+ "mask-closable": !1,
33
+ "wrap-class-name": "approve-editor-full-modal",
34
+ onCancel: d
35
+ }, {
36
+ default: c(() => [u.value ? (a(), t(e, {
37
+ key: 0,
38
+ "model-type": r.modelType,
39
+ "approve-record-id": r.approveRecordId,
40
+ onSaved: s[0] ||= (e) => l("saved", e)
41
+ }, null, 8, ["model-type", "approve-record-id"])) : n("", !0)]),
42
+ _: 1
43
+ }, 8, ["open", "title"]);
44
+ };
45
+ }
46
+ });
47
+ //#endregion
48
+ export { l as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalEditorModal-suKPJ-vN.js","names":[],"sources":["../src/components/approval/ApprovalEditorModal.vue","../src/components/approval/ApprovalEditorModal.vue"],"sourcesContent":["<template>\n <a-modal\n v-model:open=\"open\"\n :title=\"title\"\n :width=\"'100%'\"\n :footer=\"null\"\n :mask-closable=\"false\"\n wrap-class-name=\"approve-editor-full-modal\"\n @cancel=\"handleCancel\"\n >\n <!--\n `v-if=\"open\"` 是必须的:审批上下文(useContextStore)按 modelType 存,\n 每次打开都要重新 initConfig + 按 approveRecordId 重新进入编辑态。\n 配合 a-modal 默认的 destroyOnClose,关闭即销毁,避免上一次的编辑态残留。\n -->\n <ApprovalCore\n v-if=\"open\"\n :model-type=\"modelType\"\n :approve-record-id=\"approveRecordId\"\n @saved=\"emit('saved', $event)\"\n />\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport ApprovalCore from './core.vue';\n\n/**\n * 审批「左中右三栏」的**全屏模态框** —— 详情页/列表单元格上的「修改」用它打开。\n *\n * 与路由页面(`approval/index.vue`)共用同一个 `core.vue`,所以两边行为天然一致;\n * 本文件只负责「全屏容器 + 关闭语义」这两件事:\n * - `modelType`:菜单标识,由调用方给(详情场景从权威记录的 `menu_flag` 取);\n * - `approveRecordId`:传了就**打开即进入编辑态**。编辑态的**种类**(普通编辑 / 修改已通过 /\n * 再次编辑修改单)由记录字段自动派生,调用方不需要判断,见 `core.vue::applyApproveRecord`。\n *\n * ⚠️ 不要写 `import { defineProps, defineEmits, defineModel } from 'vue'`:\n * 它们是**编译器宏**,不是 vue 的运行时导出,`@vue/compiler-sfc` 会直接报\n * \"is a compiler macro and no longer needs to be imported\"。\n *\n * ⚠️ 另一个真实踩过的坑:`defineProps<{...}>` 后面必须跟**调用括号** —— 写成 `}>);`\n * (漏掉 `(`)时,babel 会把 `<` 当成**比较运算符**,报错位置指向 `>` 且信息是\n * `Missing semicolon`,极具误导性。改这里时请连同 `}>();` 一起核对。\n */\ndefineOptions({ name: 'ApprovalEditorModal' });\n\ndefineProps<{\n /** 页面配置的菜单标识(menu_flag) */\n modelType: string;\n /** 打开即进入编辑态的审批记录 id */\n approveRecordId?: number | null;\n /** 模态框标题 */\n title?: string;\n}>();\n\nconst emit = defineEmits<{\n /** 转发 core 的保存成功事件(payload.isEdit 为真表示这是一次「修改」而非「新建」)。\n * 外壳**不**因此关闭 —— 保存只是暂存,用户还要在右侧继续「提交」;关闭只走右上角关闭按钮。 */\n (e: 'saved', payload: { isEdit?: boolean }): void;\n (e: 'cancel'): void;\n}>();\n\nconst open = defineModel<boolean>('open', { default: false });\n\nconst handleCancel = () => {\n open.value = false;\n emit('cancel');\n};\n</script>\n\n<!--\n 非 scoped:模态框会被 teleport 到 body,scoped 选择器命中不到。\n 这里靠唯一的 wrap-class-name(approve-editor-full-modal)收敛作用域,\n 与 tableModal.vue 的 approve-table-full-modal 是同一套做法。\n-->\n<style>\n.approve-editor-full-modal {\n .ant-modal {\n top: 0;\n margin: 0 auto;\n padding-bottom: 0;\n max-width: 100vw;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: 100vh;\n border-radius: 0;\n padding: 46px 10px 4px 10px !important;\n }\n .ant-modal-header {\n flex: 0 0 auto;\n margin-bottom: 0;\n }\n .ant-modal-body {\n flex: 1;\n padding: 25px;\n overflow: hidden;\n }\n\n .approval-view {\n position: relative;\n height: 100%;\n\n .drawer-tables-list {\n top: 0;\n left: -23px;\n }\n .drawer-data-list {\n top: 0;\n right: -23px;\n }\n }\n}\n</style>\n","<template>\n <a-modal\n v-model:open=\"open\"\n :title=\"title\"\n :width=\"'100%'\"\n :footer=\"null\"\n :mask-closable=\"false\"\n wrap-class-name=\"approve-editor-full-modal\"\n @cancel=\"handleCancel\"\n >\n <!--\n `v-if=\"open\"` 是必须的:审批上下文(useContextStore)按 modelType 存,\n 每次打开都要重新 initConfig + 按 approveRecordId 重新进入编辑态。\n 配合 a-modal 默认的 destroyOnClose,关闭即销毁,避免上一次的编辑态残留。\n -->\n <ApprovalCore\n v-if=\"open\"\n :model-type=\"modelType\"\n :approve-record-id=\"approveRecordId\"\n @saved=\"emit('saved', $event)\"\n />\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport ApprovalCore from './core.vue';\n\n/**\n * 审批「左中右三栏」的**全屏模态框** —— 详情页/列表单元格上的「修改」用它打开。\n *\n * 与路由页面(`approval/index.vue`)共用同一个 `core.vue`,所以两边行为天然一致;\n * 本文件只负责「全屏容器 + 关闭语义」这两件事:\n * - `modelType`:菜单标识,由调用方给(详情场景从权威记录的 `menu_flag` 取);\n * - `approveRecordId`:传了就**打开即进入编辑态**。编辑态的**种类**(普通编辑 / 修改已通过 /\n * 再次编辑修改单)由记录字段自动派生,调用方不需要判断,见 `core.vue::applyApproveRecord`。\n *\n * ⚠️ 不要写 `import { defineProps, defineEmits, defineModel } from 'vue'`:\n * 它们是**编译器宏**,不是 vue 的运行时导出,`@vue/compiler-sfc` 会直接报\n * \"is a compiler macro and no longer needs to be imported\"。\n *\n * ⚠️ 另一个真实踩过的坑:`defineProps<{...}>` 后面必须跟**调用括号** —— 写成 `}>);`\n * (漏掉 `(`)时,babel 会把 `<` 当成**比较运算符**,报错位置指向 `>` 且信息是\n * `Missing semicolon`,极具误导性。改这里时请连同 `}>();` 一起核对。\n */\ndefineOptions({ name: 'ApprovalEditorModal' });\n\ndefineProps<{\n /** 页面配置的菜单标识(menu_flag) */\n modelType: string;\n /** 打开即进入编辑态的审批记录 id */\n approveRecordId?: number | null;\n /** 模态框标题 */\n title?: string;\n}>();\n\nconst emit = defineEmits<{\n /** 转发 core 的保存成功事件(payload.isEdit 为真表示这是一次「修改」而非「新建」)。\n * 外壳**不**因此关闭 —— 保存只是暂存,用户还要在右侧继续「提交」;关闭只走右上角关闭按钮。 */\n (e: 'saved', payload: { isEdit?: boolean }): void;\n (e: 'cancel'): void;\n}>();\n\nconst open = defineModel<boolean>('open', { default: false });\n\nconst handleCancel = () => {\n open.value = false;\n emit('cancel');\n};\n</script>\n\n<!--\n 非 scoped:模态框会被 teleport 到 body,scoped 选择器命中不到。\n 这里靠唯一的 wrap-class-name(approve-editor-full-modal)收敛作用域,\n 与 tableModal.vue 的 approve-table-full-modal 是同一套做法。\n-->\n<style>\n.approve-editor-full-modal {\n .ant-modal {\n top: 0;\n margin: 0 auto;\n padding-bottom: 0;\n max-width: 100vw;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: 100vh;\n border-radius: 0;\n padding: 46px 10px 4px 10px !important;\n }\n .ant-modal-header {\n flex: 0 0 auto;\n margin-bottom: 0;\n }\n .ant-modal-body {\n flex: 1;\n padding: 25px;\n overflow: hidden;\n }\n\n .approval-view {\n position: relative;\n height: 100%;\n\n .drawer-tables-list {\n top: 0;\n left: -23px;\n }\n .drawer-data-list {\n top: 0;\n right: -23px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAuDA,IAAM,IAAO,GAOP,IAAO,EAAoB,GAAC,OAA2B,EAEvD,UAAqB;AAEzB,GADA,EAAK,QAAQ,IACb,EAAK,SAAS;;;;eAjEd,EAoBU,GAAA;IAnBA,MAAM,EAAA;uCAAI,QAAA;IACjB,OAAO,EAAA;IACP,OAAO;IACP,QAAQ;IACR,iBAAe;IAChB,mBAAgB;IACf,UAAQ;;qBAYP,CAJM,EAAA,SAAA,GAAA,EADR,EAKE,GAAA;;KAHC,cAAY,EAAA;KACZ,qBAAmB,EAAA;KACnB,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,SAAU,EAAM"}
@@ -0,0 +1,61 @@
1
+ import { o as e } from "./init-plugin-fQTSQzui.js";
2
+ import { createBlock as t, createVNode as n, defineComponent as r, mergeModels as i, openBlock as a, reactive as o, ref as s, resolveComponent as c, useModel as l, withCtx as u } from "vue";
3
+ import { message as d } from "ant-design-vue";
4
+ //#endregion
5
+ //#region src/components/approval/components/CancelModal.vue
6
+ var f = /* @__PURE__ */ r({
7
+ name: "ApprovalCancelModal",
8
+ __name: "CancelModal",
9
+ props: /* @__PURE__ */ i({
10
+ id: { default: null },
11
+ eventBus: { default: null }
12
+ }, {
13
+ cancelModalShow: {},
14
+ cancelModalShowModifiers: {}
15
+ }),
16
+ emits: /* @__PURE__ */ i(["done"], ["update:cancelModalShow"]),
17
+ setup(r, { emit: i }) {
18
+ let f = r, p = i, m = l(r, "cancelModalShow"), h = o({ bz: "" }), g = s(null), _ = async () => {
19
+ if (!f.id) {
20
+ d.error("未获取到要作废的审批记录");
21
+ return;
22
+ }
23
+ await g.value.validate(), await e({
24
+ approve_record_id: f.id,
25
+ bz: h.bz
26
+ }, "/approve/cancel_agree_approve_record"), f.eventBus?.emit("reload_table"), p("done"), d.success("作废成功"), m.value = !1;
27
+ };
28
+ return (e, r) => {
29
+ let i = c("a-textarea"), o = c("a-form-item"), s = c("a-form"), l = c("a-modal");
30
+ return a(), t(l, {
31
+ open: m.value,
32
+ "onUpdate:open": r[1] ||= (e) => m.value = e,
33
+ title: "审批作废",
34
+ onOk: _
35
+ }, {
36
+ default: u(() => [n(s, {
37
+ model: h,
38
+ ref_key: "formRef",
39
+ ref: g
40
+ }, {
41
+ default: u(() => [n(o, {
42
+ name: "bz",
43
+ rules: [{ required: !0 }],
44
+ label: "作废原因"
45
+ }, {
46
+ default: u(() => [n(i, {
47
+ placeholder: "请输入作废原因",
48
+ value: h.bz,
49
+ "onUpdate:value": r[0] ||= (e) => h.bz = e
50
+ }, null, 8, ["value"])]),
51
+ _: 1
52
+ })]),
53
+ _: 1
54
+ }, 8, ["model"])]),
55
+ _: 1
56
+ }, 8, ["open"]);
57
+ };
58
+ }
59
+ });
60
+ //#endregion
61
+ export { f as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CancelModal-BUi3ieI8.js","names":[],"sources":["../src/components/approval/components/CancelModal.vue","../src/components/approval/components/CancelModal.vue"],"sourcesContent":["<template>\n <a-modal\n v-model:open=\"cancelModalShow\"\n title=\"审批作废\"\n @ok=\"commit\"\n >\n <a-form\n :model=\"cancelModal\"\n ref=\"formRef\"\n >\n <a-form-item\n name=\"bz\"\n :rules=\"[{ required: true }]\"\n label=\"作废原因\"\n >\n <a-textarea\n placeholder=\"请输入作废原因\"\n v-model:value=\"cancelModal.bz\"\n />\n </a-form-item>\n </a-form>\n </a-modal>\n</template>\n<script setup lang=\"ts\">\nimport { message } from 'ant-design-vue';\nimport { getApiData } from '@/init-plugin';\nimport { reactive, ref } from 'vue';\n/**\n * 审批作废(= 详情页/列表页的「删除」动作):\n * 填作废原因 → `/approve/cancel_agree_approve_record`。\n *\n * 两种调用方,所以 `eventBus` 是**可选**的:\n * 1. 审批页面(columnForm.vue):传页面 eventBus,成功后广播 `reload_table` 刷新列表;\n * 2. 详情场景(useApprovalRecordActions → removeProps):**没有页面 eventBus**,\n * 改由本组件的 `done` 事件回调,让外壳刷新详情。\n */\ndefineOptions({ name: 'ApprovalCancelModal' });\n\nconst props = withDefaults(\n defineProps<{\n /** 要作废的审批记录 id */\n id?: number | null;\n /** 审批页面的事件总线;详情场景不传 */\n eventBus?: { emit: (event: string, payload?: any) => void } | null;\n }>(),\n {\n id: null,\n eventBus: null,\n },\n);\n\nconst emit = defineEmits<{\n /** 作废成功(详情场景用来刷新详情与列表) */\n (e: 'done'): void;\n}>();\n\nconst cancelModalShow = defineModel('cancelModalShow');\nconst cancelModal = reactive({\n bz: '',\n});\nconst formRef = ref(null);\nconst commit = async () => {\n if (!props.id) {\n message.error('未获取到要作废的审批记录');\n return;\n }\n await formRef.value.validate();\n await getApiData(\n { approve_record_id: props.id, bz: cancelModal.bz },\n '/approve/cancel_agree_approve_record',\n );\n // 列表页:广播刷新表格;详情页:走 done 事件(两者可以同时存在,互不影响)\n props.eventBus?.emit('reload_table');\n emit('done');\n message.success('作废成功');\n cancelModalShow.value = false;\n};\n</script>\n","<template>\n <a-modal\n v-model:open=\"cancelModalShow\"\n title=\"审批作废\"\n @ok=\"commit\"\n >\n <a-form\n :model=\"cancelModal\"\n ref=\"formRef\"\n >\n <a-form-item\n name=\"bz\"\n :rules=\"[{ required: true }]\"\n label=\"作废原因\"\n >\n <a-textarea\n placeholder=\"请输入作废原因\"\n v-model:value=\"cancelModal.bz\"\n />\n </a-form-item>\n </a-form>\n </a-modal>\n</template>\n<script setup lang=\"ts\">\nimport { message } from 'ant-design-vue';\nimport { getApiData } from '@/init-plugin';\nimport { reactive, ref } from 'vue';\n/**\n * 审批作废(= 详情页/列表页的「删除」动作):\n * 填作废原因 → `/approve/cancel_agree_approve_record`。\n *\n * 两种调用方,所以 `eventBus` 是**可选**的:\n * 1. 审批页面(columnForm.vue):传页面 eventBus,成功后广播 `reload_table` 刷新列表;\n * 2. 详情场景(useApprovalRecordActions → removeProps):**没有页面 eventBus**,\n * 改由本组件的 `done` 事件回调,让外壳刷新详情。\n */\ndefineOptions({ name: 'ApprovalCancelModal' });\n\nconst props = withDefaults(\n defineProps<{\n /** 要作废的审批记录 id */\n id?: number | null;\n /** 审批页面的事件总线;详情场景不传 */\n eventBus?: { emit: (event: string, payload?: any) => void } | null;\n }>(),\n {\n id: null,\n eventBus: null,\n },\n);\n\nconst emit = defineEmits<{\n /** 作废成功(详情场景用来刷新详情与列表) */\n (e: 'done'): void;\n}>();\n\nconst cancelModalShow = defineModel('cancelModalShow');\nconst cancelModal = reactive({\n bz: '',\n});\nconst formRef = ref(null);\nconst commit = async () => {\n if (!props.id) {\n message.error('未获取到要作废的审批记录');\n return;\n }\n await formRef.value.validate();\n await getApiData(\n { approve_record_id: props.id, bz: cancelModal.bz },\n '/approve/cancel_agree_approve_record',\n );\n // 列表页:广播刷新表格;详情页:走 done 事件(两者可以同时存在,互不影响)\n props.eventBus?.emit('reload_table');\n emit('done');\n message.success('作废成功');\n cancelModalShow.value = false;\n};\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;EAsCA,IAAM,IAAQ,GAaR,IAAO,GAKP,IAAkB,EAAW,GAAC,kBAAkB,EAChD,IAAc,EAAS,EAC3B,IAAI,IACL,CAAC,EACI,IAAU,EAAI,KAAK,EACnB,IAAS,YAAY;AACzB,OAAI,CAAC,EAAM,IAAI;AACb,MAAQ,MAAM,eAAe;AAC7B;;AAWF,GATA,MAAM,EAAQ,MAAM,UAAU,EAC9B,MAAM,EACJ;IAAE,mBAAmB,EAAM;IAAI,IAAI,EAAY;IAAI,EACnD,uCACD,EAED,EAAM,UAAU,KAAK,eAAe,EACpC,EAAK,OAAO,EACZ,EAAQ,QAAQ,OAAO,EACvB,EAAgB,QAAQ;;;;eA1ExB,EAoBU,GAAA;IAnBA,MAAM,EAAA;uCAAe,QAAA;IAC7B,OAAM;IACL,MAAI;;qBAgBI,CAdT,EAcS,GAAA;KAbN,OAAO;cACJ;KAAJ,KAAI;;sBAWU,CATd,EASc,GAAA;MARZ,MAAK;MACJ,OAAO,CAAA,EAAA,UAAA,IAAA,CAAoB;MAC5B,OAAM;;uBAKJ,CAHF,EAGE,GAAA;OAFA,aAAY;OACJ,OAAO,EAAY;2CAAA,KAAE"}