@fecp/designer 5.5.101 → 5.5.102

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 (87) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/components/DocumentParam.vue.mjs +1 -1
  3. package/es/designer/src/components/ParamsConfig.vue2.mjs +1 -1
  4. package/es/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +1 -1
  5. package/es/designer/src/packages/advancedFilter/ValueInput.vue2.mjs +1 -1
  6. package/es/designer/src/packages/dataLinkage/index.vue.mjs +1 -1
  7. package/es/designer/src/packages/dialogGlobal/index.vue.mjs +1 -1
  8. package/es/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.mjs +1 -1
  9. package/es/designer/src/packages/form/property/approvalHistory.vue.mjs +1 -1
  10. package/es/designer/src/packages/form/property/contract.vue.mjs +1 -1
  11. package/es/designer/src/packages/form/property/subForm.vue.mjs +1 -1
  12. package/es/designer/src/packages/prod/index.vue.mjs +1 -1
  13. package/es/designer/src/packages/table/headerBtn.vue.mjs +1 -1
  14. package/es/designer.css +357 -68
  15. package/es/packages/mobile/index.mjs +4 -0
  16. package/es/packages/mobile/src/components/all.mjs +4 -0
  17. package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +30 -7
  18. package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +191 -0
  19. package/es/packages/mobile/src/components/custom/approvalBar/index.mjs +10 -0
  20. package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +391 -0
  21. package/es/packages/mobile/src/components/custom/approvalList/index.mjs +10 -0
  22. package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +2 -18
  23. package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +41 -9
  24. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +38 -26
  25. package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +4 -2
  26. package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +1 -1
  27. package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +1 -1
  28. package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +1 -1
  29. package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +1 -1
  30. package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +38 -27
  31. package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +58 -41
  32. package/es/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.mjs +1 -1
  33. package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +8 -3
  34. package/es/packages/mobile/src/composables/usePageEvents.mjs +80 -0
  35. package/es/packages/mobile/src/index.vue.mjs +8 -5
  36. package/es/packages/mobile/src/page.vue.mjs +150 -19
  37. package/es/packages/mobile/src/utils/datasource.mjs +12 -1
  38. package/es/packages/mobile/src/utils/eventFlow/actionHandlers.mjs +852 -0
  39. package/es/packages/mobile/src/utils/eventFlow/eventFlowHandler.mjs +94 -0
  40. package/es/packages/mobile/src/utils/eventFlowParser.mjs +396 -0
  41. package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -0
  42. package/es/packages/mobile/src/utils/parseFilterConfig.mjs +98 -0
  43. package/es/packages/vue/src/components/table/Table.vue.mjs +11 -1
  44. package/lib/designer/package.json.js +1 -1
  45. package/lib/designer/src/components/DocumentParam.vue.js +1 -1
  46. package/lib/designer/src/components/ParamsConfig.vue2.js +1 -1
  47. package/lib/designer/src/layout/aside/HiddenFieldDialog.vue.js +1 -1
  48. package/lib/designer/src/packages/advancedFilter/ValueInput.vue2.js +1 -1
  49. package/lib/designer/src/packages/dataLinkage/index.vue.js +1 -1
  50. package/lib/designer/src/packages/dialogGlobal/index.vue.js +1 -1
  51. package/lib/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.js +1 -1
  52. package/lib/designer/src/packages/form/property/approvalHistory.vue.js +1 -1
  53. package/lib/designer/src/packages/form/property/contract.vue.js +1 -1
  54. package/lib/designer/src/packages/form/property/subForm.vue.js +1 -1
  55. package/lib/designer/src/packages/prod/index.vue.js +1 -1
  56. package/lib/designer/src/packages/table/headerBtn.vue.js +1 -1
  57. package/lib/designer.css +357 -68
  58. package/lib/packages/mobile/index.js +6 -2
  59. package/lib/packages/mobile/src/components/all.js +4 -0
  60. package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +29 -6
  61. package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +191 -0
  62. package/lib/packages/mobile/src/components/custom/approvalBar/index.js +10 -0
  63. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +391 -0
  64. package/lib/packages/mobile/src/components/custom/approvalList/index.js +10 -0
  65. package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +2 -18
  66. package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +41 -9
  67. package/lib/packages/mobile/src/components/form/field/Field.vue.js +37 -25
  68. package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +4 -2
  69. package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +1 -1
  70. package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +1 -1
  71. package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +1 -1
  72. package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +1 -1
  73. package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +37 -26
  74. package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +57 -40
  75. package/lib/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.js +1 -1
  76. package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +8 -3
  77. package/lib/packages/mobile/src/composables/usePageEvents.js +80 -0
  78. package/lib/packages/mobile/src/index.vue.js +8 -5
  79. package/lib/packages/mobile/src/page.vue.js +149 -18
  80. package/lib/packages/mobile/src/utils/datasource.js +14 -3
  81. package/lib/packages/mobile/src/utils/eventFlow/actionHandlers.js +852 -0
  82. package/lib/packages/mobile/src/utils/eventFlow/eventFlowHandler.js +94 -0
  83. package/lib/packages/mobile/src/utils/eventFlowParser.js +396 -0
  84. package/lib/packages/mobile/src/utils/formatterUtil.js +1 -0
  85. package/lib/packages/mobile/src/utils/parseFilterConfig.js +98 -0
  86. package/lib/packages/vue/src/components/table/Table.vue.js +11 -1
  87. package/package.json +1 -1
@@ -0,0 +1,391 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ ;/* empty css */
4
+ ;/* empty css */
5
+ ;/* empty css */
6
+ ;/* empty css */
7
+ ;/* empty css */
8
+ ;/* empty css */
9
+ ;/* empty css */
10
+ ;/* empty css */
11
+ ;/* empty css */
12
+ ;/* empty css */
13
+ const Vue = require("vue");
14
+ ;/* empty css */
15
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
16
+ const index = require("../../../../node_modules/vant/es/tabs/index.js");
17
+ const index$1 = require("../../../../node_modules/vant/es/tab/index.js");
18
+ const index$2 = require("../../../../node_modules/vant/es/icon/index.js");
19
+ const index$3 = require("../../../../node_modules/vant/es/button/index.js");
20
+ const _hoisted_1 = { class: "fec-mobile-approval-list" };
21
+ const _hoisted_2 = { class: "fec-tab-content" };
22
+ const _hoisted_3 = { class: "fec-list" };
23
+ const _hoisted_4 = { class: "fec-card-header" };
24
+ const _hoisted_5 = { class: "fec-card-title" };
25
+ const _hoisted_6 = { class: "fec-card-body" };
26
+ const _hoisted_7 = { class: "fec-card-message" };
27
+ const _hoisted_8 = { class: "fec-card-sn" };
28
+ const _hoisted_9 = { class: "fec-card-value" };
29
+ const _hoisted_10 = { class: "fec-card-footer" };
30
+ const _hoisted_11 = { class: "fec-card-time" };
31
+ const _hoisted_12 = { class: "fec-card-actions" };
32
+ const _hoisted_13 = { class: "fec-tab-content" };
33
+ const _hoisted_14 = { class: "fec-list" };
34
+ const _hoisted_15 = { class: "fec-card-header" };
35
+ const _hoisted_16 = { class: "fec-card-title" };
36
+ const _hoisted_17 = { class: "fec-card-body" };
37
+ const _hoisted_18 = { class: "fec-card-message" };
38
+ const _hoisted_19 = { class: "fec-card-sn" };
39
+ const _hoisted_20 = { class: "fec-card-value" };
40
+ const _hoisted_21 = { class: "fec-card-footer" };
41
+ const _hoisted_22 = { class: "fec-card-time" };
42
+ const _hoisted_23 = { class: "fec-card-actions" };
43
+ const _hoisted_24 = { class: "fec-tab-content" };
44
+ const _hoisted_25 = { class: "fec-list" };
45
+ const _hoisted_26 = { class: "fec-card-header" };
46
+ const _hoisted_27 = { class: "fec-card-title" };
47
+ const _hoisted_28 = { class: "fec-card-body" };
48
+ const _hoisted_29 = { class: "fec-card-message" };
49
+ const _hoisted_30 = { class: "fec-card-sn" };
50
+ const _hoisted_31 = { class: "fec-card-value" };
51
+ const _hoisted_32 = { class: "fec-card-footer" };
52
+ const _hoisted_33 = { class: "fec-card-time" };
53
+ const _hoisted_34 = { class: "fec-card-actions" };
54
+ const _sfc_main = {
55
+ __name: "ApprovalList",
56
+ props: {},
57
+ setup(__props) {
58
+ const currentInstance = Vue.getCurrentInstance();
59
+ const ctx = currentInstance.proxy;
60
+ ctx.route;
61
+ const activeName = Vue.ref("todo");
62
+ const todoList = [
63
+ {
64
+ id: 1,
65
+ title: "项目立项申请",
66
+ message: "客户李四提交了一笔新办公设备采购项目立项,请您审批。",
67
+ sn: "1100202406150001",
68
+ arriveTime: "30分钟前",
69
+ statusText: "待处理",
70
+ statusColor: "#fa8c16",
71
+ statusIcon: "clock-o",
72
+ actionText: "同意",
73
+ actionColor: "#52c41a"
74
+ },
75
+ {
76
+ id: 2,
77
+ title: "合同审批",
78
+ message: "客户王五提交了一份销售合同,请您审批。",
79
+ sn: "1100202406150002",
80
+ arriveTime: "2小时前",
81
+ statusText: "已打回",
82
+ statusColor: "#722ed1",
83
+ statusIcon: "close",
84
+ actionText: "同意",
85
+ actionColor: "#52c41a"
86
+ },
87
+ {
88
+ id: 3,
89
+ title: "付款申请",
90
+ message: "客户赵六提交了一笔供应商付款申请,请您审批。",
91
+ sn: "1100202406150003",
92
+ arriveTime: "2026-06-07 09:30:00",
93
+ statusText: "待处理",
94
+ statusColor: "#fa8c16",
95
+ statusIcon: "clock-o",
96
+ actionText: "同意",
97
+ actionColor: "#52c41a"
98
+ }
99
+ ];
100
+ const doneList = [
101
+ {
102
+ id: 4,
103
+ title: "采购申请",
104
+ message: "客户孙七提交了一笔办公用品采购申请,处理中。",
105
+ sn: "1100202406140004",
106
+ arriveTime: "2026-06-06 14:30:00",
107
+ statusText: "处理中",
108
+ statusColor: "#1890ff",
109
+ statusIcon: "edit"
110
+ },
111
+ {
112
+ id: 5,
113
+ title: "用车申请",
114
+ message: "客户周八提交了一笔商务用车申请,已完成。",
115
+ sn: "1100202406130005",
116
+ arriveTime: "2026-06-05 10:15:00",
117
+ statusText: "已完成",
118
+ statusColor: "#52c41a",
119
+ statusIcon: "checked"
120
+ }
121
+ ];
122
+ const ccList = [
123
+ {
124
+ id: 6,
125
+ title: "会议通知",
126
+ message: "客户吴九提交了周一例会,请您知悉。",
127
+ sn: "1100202406150006",
128
+ arriveTime: "1小时前",
129
+ statusText: "处理中",
130
+ statusColor: "#1890ff",
131
+ statusIcon: "edit"
132
+ },
133
+ {
134
+ id: 7,
135
+ title: "制度变更",
136
+ message: "客户郑十提交了新的考勤制度变更,请您知悉。",
137
+ sn: "1100202406140007",
138
+ arriveTime: "2026-06-07 16:45:00",
139
+ statusText: "已完成",
140
+ statusColor: "#52c41a",
141
+ statusIcon: "checked"
142
+ }
143
+ ];
144
+ function formatTime(timeStr) {
145
+ if (!timeStr) return "";
146
+ if (timeStr.includes(":")) {
147
+ const time = new Date(timeStr.replace(/\-/g, "/"));
148
+ const now = /* @__PURE__ */ new Date();
149
+ const diff = now - time;
150
+ const oneDay = 24 * 60 * 60 * 1e3;
151
+ if (diff > oneDay) {
152
+ return timeStr;
153
+ }
154
+ const hours = Math.floor(diff / (60 * 60 * 1e3));
155
+ if (hours >= 1) {
156
+ return `${hours}小时前`;
157
+ }
158
+ const minutes = Math.floor(diff / (60 * 1e3));
159
+ return `${minutes}分钟前`;
160
+ }
161
+ return timeStr;
162
+ }
163
+ function onView(item) {
164
+ console.log("查看:", item);
165
+ }
166
+ function onApprove(item) {
167
+ console.log("同意:", item);
168
+ }
169
+ function onRevoke(item) {
170
+ console.log("撤销:", item);
171
+ }
172
+ return (_ctx, _cache) => {
173
+ const _component_van_icon = index$2.Icon;
174
+ const _component_van_button = index$3.Button;
175
+ const _component_van_tab = index$1.Tab;
176
+ const _component_van_tabs = index.Tabs;
177
+ return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
178
+ Vue.createVNode(_component_van_tabs, {
179
+ sticky: "",
180
+ class: "fec-tabs",
181
+ active: Vue.unref(activeName),
182
+ "onUpdate:active": _cache[0] || (_cache[0] = ($event) => Vue.isRef(activeName) ? activeName.value = $event : null),
183
+ swipeable: "",
184
+ "lazy-render": ""
185
+ }, {
186
+ default: Vue.withCtx(() => [
187
+ Vue.createVNode(_component_van_tab, {
188
+ title: "待办",
189
+ name: "todo",
190
+ replace: "",
191
+ "show-zero-badge": false
192
+ }, {
193
+ default: Vue.withCtx(() => [
194
+ Vue.createElementVNode("div", _hoisted_2, [
195
+ Vue.createElementVNode("div", _hoisted_3, [
196
+ (Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(todoList, (item) => {
197
+ return Vue.createElementVNode("div", {
198
+ key: item.id,
199
+ class: "fec-card"
200
+ }, [
201
+ Vue.createElementVNode("div", _hoisted_4, [
202
+ Vue.createElementVNode("span", _hoisted_5, Vue.toDisplayString(item.title), 1),
203
+ Vue.createElementVNode("span", {
204
+ class: "fec-card-status",
205
+ style: Vue.normalizeStyle({ background: item.statusColor })
206
+ }, [
207
+ Vue.createVNode(_component_van_icon, {
208
+ name: item.statusIcon,
209
+ size: "12"
210
+ }, null, 8, ["name"]),
211
+ Vue.createTextVNode(" " + Vue.toDisplayString(item.statusText), 1)
212
+ ], 4)
213
+ ]),
214
+ Vue.createElementVNode("div", _hoisted_6, [
215
+ Vue.createElementVNode("div", _hoisted_7, Vue.toDisplayString(item.message), 1),
216
+ Vue.createElementVNode("div", _hoisted_8, [
217
+ _cache[1] || (_cache[1] = Vue.createElementVNode("span", { class: "fec-card-label" }, "业务流水号:", -1)),
218
+ Vue.createElementVNode("span", _hoisted_9, Vue.toDisplayString(item.sn), 1)
219
+ ])
220
+ ]),
221
+ Vue.createElementVNode("div", _hoisted_10, [
222
+ Vue.createElementVNode("span", _hoisted_11, Vue.toDisplayString(formatTime(item.arriveTime)), 1),
223
+ Vue.createElementVNode("div", _hoisted_12, [
224
+ Vue.createVNode(_component_van_button, {
225
+ plain: "",
226
+ hairline: "",
227
+ round: "",
228
+ size: "small",
229
+ onClick: ($event) => onView(item)
230
+ }, {
231
+ default: Vue.withCtx(() => _cache[2] || (_cache[2] = [
232
+ Vue.createTextVNode(" 查看 ")
233
+ ])),
234
+ _: 2
235
+ }, 1032, ["onClick"]),
236
+ Vue.createVNode(_component_van_button, {
237
+ type: "primary",
238
+ round: "",
239
+ size: "small",
240
+ onClick: ($event) => onApprove(item)
241
+ }, {
242
+ default: Vue.withCtx(() => [
243
+ Vue.createTextVNode(Vue.toDisplayString(item.actionText || "同意"), 1)
244
+ ]),
245
+ _: 2
246
+ }, 1032, ["onClick"])
247
+ ])
248
+ ])
249
+ ]);
250
+ }), 64))
251
+ ])
252
+ ])
253
+ ]),
254
+ _: 1
255
+ }),
256
+ Vue.createVNode(_component_van_tab, {
257
+ title: "已办",
258
+ name: "done",
259
+ replace: "",
260
+ "show-zero-badge": false
261
+ }, {
262
+ default: Vue.withCtx(() => [
263
+ Vue.createElementVNode("div", _hoisted_13, [
264
+ Vue.createElementVNode("div", _hoisted_14, [
265
+ (Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(doneList, (item) => {
266
+ return Vue.createElementVNode("div", {
267
+ key: item.id,
268
+ class: "fec-card"
269
+ }, [
270
+ Vue.createElementVNode("div", _hoisted_15, [
271
+ Vue.createElementVNode("span", _hoisted_16, Vue.toDisplayString(item.title), 1),
272
+ Vue.createElementVNode("span", {
273
+ class: "fec-card-status",
274
+ style: Vue.normalizeStyle({ background: item.statusColor })
275
+ }, [
276
+ Vue.createVNode(_component_van_icon, {
277
+ name: item.statusIcon,
278
+ size: "12"
279
+ }, null, 8, ["name"]),
280
+ Vue.createTextVNode(" " + Vue.toDisplayString(item.statusText), 1)
281
+ ], 4)
282
+ ]),
283
+ Vue.createElementVNode("div", _hoisted_17, [
284
+ Vue.createElementVNode("div", _hoisted_18, Vue.toDisplayString(item.message), 1),
285
+ Vue.createElementVNode("div", _hoisted_19, [
286
+ _cache[3] || (_cache[3] = Vue.createElementVNode("span", { class: "fec-card-label" }, "业务流水号:", -1)),
287
+ Vue.createElementVNode("span", _hoisted_20, Vue.toDisplayString(item.sn), 1)
288
+ ])
289
+ ]),
290
+ Vue.createElementVNode("div", _hoisted_21, [
291
+ Vue.createElementVNode("span", _hoisted_22, Vue.toDisplayString(formatTime(item.arriveTime)), 1),
292
+ Vue.createElementVNode("div", _hoisted_23, [
293
+ Vue.createVNode(_component_van_button, {
294
+ plain: "",
295
+ hairline: "",
296
+ round: "",
297
+ size: "small",
298
+ onClick: ($event) => onView(item)
299
+ }, {
300
+ default: Vue.withCtx(() => _cache[4] || (_cache[4] = [
301
+ Vue.createTextVNode(" 查看 ")
302
+ ])),
303
+ _: 2
304
+ }, 1032, ["onClick"]),
305
+ Vue.createVNode(_component_van_button, {
306
+ type: "warning",
307
+ round: "",
308
+ size: "small",
309
+ onClick: ($event) => onRevoke(item)
310
+ }, {
311
+ default: Vue.withCtx(() => _cache[5] || (_cache[5] = [
312
+ Vue.createTextVNode(" 撤销 ")
313
+ ])),
314
+ _: 2
315
+ }, 1032, ["onClick"])
316
+ ])
317
+ ])
318
+ ]);
319
+ }), 64))
320
+ ])
321
+ ])
322
+ ]),
323
+ _: 1
324
+ }),
325
+ Vue.createVNode(_component_van_tab, {
326
+ title: "抄送",
327
+ name: "cc",
328
+ replace: "",
329
+ "show-zero-badge": false
330
+ }, {
331
+ default: Vue.withCtx(() => [
332
+ Vue.createElementVNode("div", _hoisted_24, [
333
+ Vue.createElementVNode("div", _hoisted_25, [
334
+ (Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(ccList, (item) => {
335
+ return Vue.createElementVNode("div", {
336
+ key: item.id,
337
+ class: "fec-card"
338
+ }, [
339
+ Vue.createElementVNode("div", _hoisted_26, [
340
+ Vue.createElementVNode("span", _hoisted_27, Vue.toDisplayString(item.title), 1),
341
+ Vue.createElementVNode("span", {
342
+ class: "fec-card-status",
343
+ style: Vue.normalizeStyle({ background: item.statusColor })
344
+ }, [
345
+ Vue.createVNode(_component_van_icon, {
346
+ name: item.statusIcon,
347
+ size: "12"
348
+ }, null, 8, ["name"]),
349
+ Vue.createTextVNode(" " + Vue.toDisplayString(item.statusText), 1)
350
+ ], 4)
351
+ ]),
352
+ Vue.createElementVNode("div", _hoisted_28, [
353
+ Vue.createElementVNode("div", _hoisted_29, Vue.toDisplayString(item.message), 1),
354
+ Vue.createElementVNode("div", _hoisted_30, [
355
+ _cache[6] || (_cache[6] = Vue.createElementVNode("span", { class: "fec-card-label" }, "业务流水号:", -1)),
356
+ Vue.createElementVNode("span", _hoisted_31, Vue.toDisplayString(item.sn), 1)
357
+ ])
358
+ ]),
359
+ Vue.createElementVNode("div", _hoisted_32, [
360
+ Vue.createElementVNode("span", _hoisted_33, Vue.toDisplayString(formatTime(item.arriveTime)), 1),
361
+ Vue.createElementVNode("div", _hoisted_34, [
362
+ Vue.createVNode(_component_van_button, {
363
+ plain: "",
364
+ hairline: "",
365
+ round: "",
366
+ size: "small",
367
+ onClick: ($event) => onView(item)
368
+ }, {
369
+ default: Vue.withCtx(() => _cache[7] || (_cache[7] = [
370
+ Vue.createTextVNode(" 查看 ")
371
+ ])),
372
+ _: 2
373
+ }, 1032, ["onClick"])
374
+ ])
375
+ ])
376
+ ]);
377
+ }), 64))
378
+ ])
379
+ ])
380
+ ]),
381
+ _: 1
382
+ })
383
+ ]),
384
+ _: 1
385
+ }, 8, ["active"])
386
+ ]);
387
+ };
388
+ }
389
+ };
390
+ const _ApprovalList = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-5cd7ed05"]]);
391
+ exports.default = _ApprovalList;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const ApprovalList = require("./ApprovalList.vue.js");
4
+ const install = require("../../../utils/install.js");
5
+ const MobileApprovalList = install.default.withInstall(
6
+ "MobileApprovalList",
7
+ ApprovalList.default
8
+ );
9
+ exports.MobileApprovalList = MobileApprovalList;
10
+ exports.default = MobileApprovalList;
@@ -17,9 +17,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
17
17
  compId: {
18
18
  type: String
19
19
  },
20
- currentPage: {
21
- type: Object
22
- },
23
20
  modelValue: {
24
21
  type: Array,
25
22
  default: []
@@ -83,22 +80,9 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
83
80
  const ctx = currentInstance.proxy;
84
81
  const listRef = Vue.ref();
85
82
  Vue.onMounted(() => {
86
- var _a, _b, _c, _d, _e;
83
+ var _a, _b;
87
84
  (_b = (_a = listRef.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.closest(".device-content");
88
85
  initDataSourceManager();
89
- if (props.compId) {
90
- if (props.autoHeight) {
91
- const component = (_c = props.currentPage.layoutData) == null ? void 0 : _c.find(
92
- (f) => {
93
- var _a2;
94
- return ((_a2 = f.component) == null ? void 0 : _a2.id) == props.compId;
95
- }
96
- );
97
- const wrapperDom = (_e = (_d = listRef.value) == null ? void 0 : _d.$el) == null ? void 0 : _e.closest(".grid-wrapper");
98
- const wrapperHeight = wrapperDom.offsetHeight;
99
- component.h = wrapperHeight / 10;
100
- }
101
- }
102
86
  });
103
87
  function eventHandler(funcName, rowData) {
104
88
  console.log("🚀 ~ eventHandler ~ funcName, rowData:", funcName, rowData);
@@ -221,5 +205,5 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
221
205
  };
222
206
  }
223
207
  });
224
- const _CardList = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-20941c4a"]]);
208
+ const _CardList = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-38039905"]]);
225
209
  exports.default = _CardList;
@@ -9,6 +9,7 @@ const vxeTable = require("vxe-table");
9
9
  const datasource = require("../../../utils/datasource.js");
10
10
  ;/* empty css */
11
11
  const formatterUtil = require("../../../utils/formatterUtil.js");
12
+ const optionUtil = require("../../../utils/optionUtil.js");
12
13
  ;/* empty css */
13
14
  ;/* empty css */
14
15
  ;/* empty css */
@@ -98,6 +99,14 @@ const _sfc_main = {
98
99
  type: Array,
99
100
  default: () => []
100
101
  },
102
+ formData: {
103
+ type: Object,
104
+ default: {}
105
+ },
106
+ fields: {
107
+ type: Array,
108
+ default: () => []
109
+ },
101
110
  pageSize: {
102
111
  type: Number,
103
112
  default: 10
@@ -156,8 +165,22 @@ const _sfc_main = {
156
165
  const compHeight = Vue.computed(() => {
157
166
  return "100%";
158
167
  });
159
- const columnOptions = Vue.computed(() => {
160
- return props.columns.map((col) => {
168
+ const columnOptions = Vue.ref([]);
169
+ async function initColumnOptions() {
170
+ const columns = [...props.columns];
171
+ for (const col of columns) {
172
+ if (col.dataType == "select" || col.dataType == "multiple") {
173
+ const options = await optionUtil.getOptions({
174
+ ctx,
175
+ dataSources: props.dataSources,
176
+ formData: props.formData,
177
+ fields: props.fields,
178
+ ...col.optionConfig
179
+ });
180
+ col.options = options;
181
+ }
182
+ }
183
+ columns.forEach((col) => {
161
184
  const newCol = { ...col };
162
185
  switch (newCol.dataType) {
163
186
  case "select":
@@ -210,9 +233,10 @@ const _sfc_main = {
210
233
  newCol.showOverflow = true;
211
234
  newCol.showHeaderOverflow = true;
212
235
  newCol.showFooterOverflow = true;
213
- return newCol;
236
+ columnOptions.value.push(newCol);
214
237
  });
215
- });
238
+ }
239
+ initColumnOptions();
216
240
  function isEmpty(cellValue) {
217
241
  return !cellValue && cellValue !== 0;
218
242
  }
@@ -326,6 +350,12 @@ const _sfc_main = {
326
350
  const error = Vue.ref(false);
327
351
  const listError = Vue.ref(false);
328
352
  let pageNo = 1;
353
+ const pageSize = Vue.computed(() => {
354
+ if (props.scrollLoad) {
355
+ return props.pageSize;
356
+ }
357
+ return -1;
358
+ });
329
359
  function initDataSourceManager() {
330
360
  dataSourceManager.value = datasource.createDataSource({
331
361
  http: ctx.$http,
@@ -333,8 +363,10 @@ const _sfc_main = {
333
363
  currentDataSourceId: props.dataSourceValue,
334
364
  pagination: {
335
365
  pageNo,
336
- pageSize: props.pageSize
337
- }
366
+ pageSize: pageSize.value
367
+ },
368
+ data: props.formData,
369
+ fields: props.fields
338
370
  // data: hiddenFormData.value,
339
371
  // fields: fieldsData.value,
340
372
  // sortRules: localConfig.value.sortRules,
@@ -375,11 +407,11 @@ const _sfc_main = {
375
407
  async function call() {
376
408
  var _a;
377
409
  try {
378
- dataSourceManager.value.updatePagination(pageNo, props.pageSize);
410
+ dataSourceManager.value.updatePagination(pageNo, pageSize.value);
379
411
  await dataSourceManager.value.fetch();
380
412
  const data = ((_a = dataSourceManager.value) == null ? void 0 : _a.getData().list) || [];
381
413
  tableData.value.push(...data);
382
- if (data.length < props.pageSize) {
414
+ if (data.length < pageSize.value) {
383
415
  if (props.isFixedHead) {
384
416
  finished.value = true;
385
417
  } else {
@@ -576,5 +608,5 @@ const _sfc_main = {
576
608
  };
577
609
  }
578
610
  };
579
- const _Table = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-16d68bd3"]]);
611
+ const _Table = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-77c6ee76"]]);
580
612
  exports.default = _Table;
@@ -39,42 +39,44 @@ const _sfc_main = {
39
39
  showUnit: {
40
40
  type: Boolean,
41
41
  default: true
42
- }
42
+ },
43
+ maxlength: {
44
+ type: Number,
45
+ default: 0
46
+ },
47
+ formData: Object
43
48
  },
44
49
  emits: ["openPicker", "update:modelValue"],
45
50
  setup(__props, { emit: __emit }) {
46
51
  const props = __props;
52
+ const instance = Vue.getCurrentInstance();
53
+ const ctx = instance.proxy;
54
+ const realMaxLength = Vue.computed(() => {
55
+ return Math.floor(props.maxLength / (ctx.$dbFieldLengthRatio || 1)) || "-";
56
+ });
47
57
  const unit = Vue.ref("");
48
58
  const fieldInputRef = Vue.ref();
49
59
  const [recordCursor, setCursor] = useCursor.useCursor();
50
60
  const emit = __emit;
51
61
  const textValue = Vue.ref("");
52
62
  const compValue = Vue.computed({
53
- get: () => {
54
- if (!props.fieldType || props.fieldType == "text") {
55
- unit.value = formatterUtil.getUnit(props.dataFormatter);
56
- if (props.readonly) {
57
- textValue.value = formatterUtil.textFormatter(props.modelValue, props.dataFormatter);
58
- } else {
59
- textValue.value = formatterUtil.textFormatter4Input(
60
- props.modelValue,
61
- props.dataFormatter
62
- );
63
- }
64
- } else {
65
- textValue.value = props.modelValue;
66
- }
67
- return props.modelValue;
68
- },
63
+ get: () => props.modelValue,
69
64
  set: (val) => {
70
65
  emit("update:modelValue", val);
71
66
  }
72
67
  });
73
- Vue.watch(textValue, (val) => {
74
- if (!val) {
75
- emit("update:modelValue", val);
76
- }
77
- });
68
+ Vue.watch(
69
+ () => props.modelValue,
70
+ (newVal) => {
71
+ unit.value = formatterUtil.getUnit(props.dataFormatter);
72
+ if (!props.fieldType || props.fieldType === "text") {
73
+ textValue.value = formatterUtil.textFormatter(newVal, props.dataFormatter);
74
+ } else {
75
+ textValue.value = newVal;
76
+ }
77
+ },
78
+ { immediate: true, flush: "post" }
79
+ );
78
80
  const compClickable = Vue.computed(() => {
79
81
  if (props.disabled || props.readonly) {
80
82
  return false;
@@ -122,8 +124,10 @@ const _sfc_main = {
122
124
  const _component_van_field = index.Field;
123
125
  return Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, [
124
126
  Vue.createVNode(_component_van_field, Vue.mergeProps(_ctx.$attrs, {
127
+ type: _ctx.$attrs.type == "number" ? "text" : _ctx.$attrs.type,
125
128
  modelValue: Vue.unref(textValue),
126
129
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => Vue.isRef(textValue) ? textValue.value = $event : null),
130
+ maxlength: Vue.unref(realMaxLength),
127
131
  disabled: __props.disabled,
128
132
  readonly: __props.readonly,
129
133
  clearable: "",
@@ -134,7 +138,8 @@ const _sfc_main = {
134
138
  ref: fieldInputRef,
135
139
  onInput: handleInput,
136
140
  onCompositionstart: handleCompositionStart,
137
- onCompositionend: handleCompositionEnd
141
+ onCompositionend: handleCompositionEnd,
142
+ "input-align": "right"
138
143
  }), Vue.createSlots({ _: 2 }, [
139
144
  Vue.renderList(_ctx.$slots, (item, key) => {
140
145
  return {
@@ -144,14 +149,21 @@ const _sfc_main = {
144
149
  ])
145
150
  };
146
151
  }),
152
+ __props.disabled ? {
153
+ name: "input",
154
+ fn: Vue.withCtx(() => [
155
+ Vue.createElementVNode("div", null, Vue.toDisplayString(Vue.unref(textValue)), 1)
156
+ ]),
157
+ key: "0"
158
+ } : void 0,
147
159
  __props.showUnit && Vue.unref(unit) ? {
148
160
  name: "button",
149
161
  fn: Vue.withCtx(() => [
150
162
  Vue.createTextVNode(Vue.toDisplayString(Vue.unref(unit)), 1)
151
163
  ]),
152
- key: "0"
164
+ key: "1"
153
165
  } : void 0
154
- ]), 1040, ["modelValue", "disabled", "readonly", "clickable"]),
166
+ ]), 1040, ["type", "modelValue", "maxlength", "disabled", "readonly", "clickable"]),
155
167
  Vue.withDirectives(Vue.createElementVNode("input", {
156
168
  type: "hidden",
157
169
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => Vue.isRef(compValue) ? compValue.value = $event : null)