@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.
- package/es/designer/package.json.mjs +1 -1
- package/es/designer/src/components/DocumentParam.vue.mjs +1 -1
- package/es/designer/src/components/ParamsConfig.vue2.mjs +1 -1
- package/es/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +1 -1
- package/es/designer/src/packages/advancedFilter/ValueInput.vue2.mjs +1 -1
- package/es/designer/src/packages/dataLinkage/index.vue.mjs +1 -1
- package/es/designer/src/packages/dialogGlobal/index.vue.mjs +1 -1
- package/es/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.mjs +1 -1
- package/es/designer/src/packages/form/property/approvalHistory.vue.mjs +1 -1
- package/es/designer/src/packages/form/property/contract.vue.mjs +1 -1
- package/es/designer/src/packages/form/property/subForm.vue.mjs +1 -1
- package/es/designer/src/packages/prod/index.vue.mjs +1 -1
- package/es/designer/src/packages/table/headerBtn.vue.mjs +1 -1
- package/es/designer.css +357 -68
- package/es/packages/mobile/index.mjs +4 -0
- package/es/packages/mobile/src/components/all.mjs +4 -0
- package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +30 -7
- package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +191 -0
- package/es/packages/mobile/src/components/custom/approvalBar/index.mjs +10 -0
- package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +391 -0
- package/es/packages/mobile/src/components/custom/approvalList/index.mjs +10 -0
- package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +2 -18
- package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +41 -9
- package/es/packages/mobile/src/components/form/field/Field.vue.mjs +38 -26
- package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +4 -2
- package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +38 -27
- package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +58 -41
- package/es/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +8 -3
- package/es/packages/mobile/src/composables/usePageEvents.mjs +80 -0
- package/es/packages/mobile/src/index.vue.mjs +8 -5
- package/es/packages/mobile/src/page.vue.mjs +150 -19
- package/es/packages/mobile/src/utils/datasource.mjs +12 -1
- package/es/packages/mobile/src/utils/eventFlow/actionHandlers.mjs +852 -0
- package/es/packages/mobile/src/utils/eventFlow/eventFlowHandler.mjs +94 -0
- package/es/packages/mobile/src/utils/eventFlowParser.mjs +396 -0
- package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -0
- package/es/packages/mobile/src/utils/parseFilterConfig.mjs +98 -0
- package/es/packages/vue/src/components/table/Table.vue.mjs +11 -1
- package/lib/designer/package.json.js +1 -1
- package/lib/designer/src/components/DocumentParam.vue.js +1 -1
- package/lib/designer/src/components/ParamsConfig.vue2.js +1 -1
- package/lib/designer/src/layout/aside/HiddenFieldDialog.vue.js +1 -1
- package/lib/designer/src/packages/advancedFilter/ValueInput.vue2.js +1 -1
- package/lib/designer/src/packages/dataLinkage/index.vue.js +1 -1
- package/lib/designer/src/packages/dialogGlobal/index.vue.js +1 -1
- package/lib/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.js +1 -1
- package/lib/designer/src/packages/form/property/approvalHistory.vue.js +1 -1
- package/lib/designer/src/packages/form/property/contract.vue.js +1 -1
- package/lib/designer/src/packages/form/property/subForm.vue.js +1 -1
- package/lib/designer/src/packages/prod/index.vue.js +1 -1
- package/lib/designer/src/packages/table/headerBtn.vue.js +1 -1
- package/lib/designer.css +357 -68
- package/lib/packages/mobile/index.js +6 -2
- package/lib/packages/mobile/src/components/all.js +4 -0
- package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +29 -6
- package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +191 -0
- package/lib/packages/mobile/src/components/custom/approvalBar/index.js +10 -0
- package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +391 -0
- package/lib/packages/mobile/src/components/custom/approvalList/index.js +10 -0
- package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +2 -18
- package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +41 -9
- package/lib/packages/mobile/src/components/form/field/Field.vue.js +37 -25
- package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +4 -2
- package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +37 -26
- package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +57 -40
- package/lib/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +8 -3
- package/lib/packages/mobile/src/composables/usePageEvents.js +80 -0
- package/lib/packages/mobile/src/index.vue.js +8 -5
- package/lib/packages/mobile/src/page.vue.js +149 -18
- package/lib/packages/mobile/src/utils/datasource.js +14 -3
- package/lib/packages/mobile/src/utils/eventFlow/actionHandlers.js +852 -0
- package/lib/packages/mobile/src/utils/eventFlow/eventFlowHandler.js +94 -0
- package/lib/packages/mobile/src/utils/eventFlowParser.js +396 -0
- package/lib/packages/mobile/src/utils/formatterUtil.js +1 -0
- package/lib/packages/mobile/src/utils/parseFilterConfig.js +98 -0
- package/lib/packages/vue/src/components/table/Table.vue.js +11 -1
- 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
|
|
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-
|
|
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.
|
|
160
|
-
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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 <
|
|
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-
|
|
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(
|
|
74
|
-
|
|
75
|
-
|
|
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: "
|
|
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)
|