@steedos-labs/plugin-workflow 3.0.1-beta.6 → 3.0.1-beta.7
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/main/default/methods/trace_approve_cc.js +79 -72
- package/main/default/objects/instances/buttons/instance_delete.button.yml +1 -1
- package/main/default/objects/instances/buttons/instance_save.button.yml +1 -1
- package/main/default/routes/api_cc_submit.router.js +7 -34
- package/main/default/routes/flow_form_design.ejs +10 -4
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
const { getCollection, _makeNewID } = require('../utils/collection');
|
|
3
3
|
const UUFlowManager = require('../manager/uuflow_manager.js');
|
|
4
4
|
const pushManager = require('../manager/push_manager.js');
|
|
5
|
+
const approveManager = require('../manager/approve_manager.js');
|
|
5
6
|
const {
|
|
6
7
|
update_instance_tasks,
|
|
7
8
|
insert_instance_tasks,
|
|
@@ -106,7 +107,7 @@ module.exports = {
|
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
setObj.modified = new Date();
|
|
109
|
-
setObj.modified_by =
|
|
110
|
+
setObj.modified_by = ctx.userId;
|
|
110
111
|
|
|
111
112
|
await instancesCollection.updateOne({
|
|
112
113
|
_id: ins_id,
|
|
@@ -191,15 +192,19 @@ module.exports = {
|
|
|
191
192
|
return true;
|
|
192
193
|
},
|
|
193
194
|
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
cc_submit: async function (ins_id, description, myApprove, ccHasEditPermission, ctx = {}) {
|
|
196
|
+
const db = {
|
|
197
|
+
instances: await getCollection('instances'),
|
|
198
|
+
forms: await getCollection('forms'),
|
|
199
|
+
users: await getCollection('users')
|
|
200
|
+
};
|
|
196
201
|
var setObj = {};
|
|
197
202
|
|
|
198
|
-
var instance = db.instances.findOne(ins_id);
|
|
203
|
+
var instance = await db.instances.findOne({_id: ins_id});
|
|
199
204
|
var traces = instance.traces;
|
|
200
|
-
var current_user_id =
|
|
205
|
+
var current_user_id = ctx.userId;
|
|
201
206
|
|
|
202
|
-
var flow =
|
|
207
|
+
var flow = await UUFlowManager.getFlow(instance.flow);
|
|
203
208
|
var values = myApprove.values || {};
|
|
204
209
|
|
|
205
210
|
var approve_id = myApprove._id;
|
|
@@ -223,20 +228,13 @@ module.exports = {
|
|
|
223
228
|
'judge': "submitted",
|
|
224
229
|
'cost_time': new Date() - a.start_date,
|
|
225
230
|
}
|
|
226
|
-
// upobj[key_str + 'is_finished'] = true;
|
|
227
|
-
// upobj[key_str + 'is_read'] = true;
|
|
228
|
-
// upobj[key_str + 'finish_date'] = new Date();
|
|
229
|
-
// upobj[key_str + 'judge'] = "submitted";
|
|
230
|
-
// upobj[key_str + 'cost_time'] = new Date() - a.start_date;
|
|
231
231
|
if (approve_id == a._id && !t.is_finished && ccHasEditPermission) {
|
|
232
232
|
myTrace = t;
|
|
233
|
-
var step =
|
|
234
|
-
|
|
235
|
-
approveDoc['values'] = uuflowManager.getApproveValues(values, step["permissions"], instance.form, instance.form_version)
|
|
233
|
+
var step = await UUFlowManager.getStep(instance, flow, t.step);
|
|
234
|
+
approveDoc['values'] = await UUFlowManager.getApproveValues(values, step["permissions"], instance.form, instance.form_version)
|
|
236
235
|
}
|
|
237
236
|
//设置意见,意见只添加到最后一条approve中
|
|
238
237
|
if (approve_id == a._id) {
|
|
239
|
-
// upobj[key_str + 'description'] = description;
|
|
240
238
|
approveDoc['description'] = description
|
|
241
239
|
}
|
|
242
240
|
for (const key in approveDoc) {
|
|
@@ -244,14 +242,14 @@ module.exports = {
|
|
|
244
242
|
upobj[key_str + key] = approveDoc[key]
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
|
-
db.instances.
|
|
245
|
+
await db.instances.updateOne({
|
|
248
246
|
_id: ins_id,
|
|
249
247
|
'traces._id': t._id
|
|
250
248
|
}, {
|
|
251
249
|
$set: upobj
|
|
252
250
|
})
|
|
253
251
|
// 更新
|
|
254
|
-
update_instance_tasks(ins_id, a.trace, a._id, approveDoc)
|
|
252
|
+
await update_instance_tasks(ins_id, a.trace, a._id, approveDoc)
|
|
255
253
|
is_finished = true;
|
|
256
254
|
}
|
|
257
255
|
}
|
|
@@ -262,19 +260,19 @@ module.exports = {
|
|
|
262
260
|
if (myApprove && is_finished) {
|
|
263
261
|
|
|
264
262
|
setObj.modified = new Date();
|
|
265
|
-
setObj.modified_by =
|
|
263
|
+
setObj.modified_by = ctx.userId;
|
|
266
264
|
|
|
267
265
|
if (ccHasEditPermission && myApprove && !myTrace.is_finished) {
|
|
268
|
-
var ins =
|
|
269
|
-
var updated_values =
|
|
266
|
+
var ins = await UUFlowManager.getInstance(ins_id);
|
|
267
|
+
var updated_values = await UUFlowManager.getUpdatedValues(ins, approve_id);
|
|
270
268
|
setObj.values = updated_values;
|
|
271
|
-
setObj.name =
|
|
269
|
+
setObj.name = await UUFlowManager.getInstanceName(instance);
|
|
272
270
|
// 计算extras
|
|
273
|
-
var form = db.forms.findOne(instance.form);
|
|
274
|
-
setObj.extras =
|
|
271
|
+
var form = await db.forms.findOne({ _id : instance.form});
|
|
272
|
+
setObj.extras = await UUFlowManager.caculateExtras(setObj.values, form, instance.form_version);
|
|
275
273
|
}
|
|
276
274
|
|
|
277
|
-
db.instances.
|
|
275
|
+
await db.instances.updateOne({
|
|
278
276
|
_id: ins_id,
|
|
279
277
|
cc_users: current_user_id
|
|
280
278
|
}, {
|
|
@@ -289,7 +287,7 @@ module.exports = {
|
|
|
289
287
|
}
|
|
290
288
|
});
|
|
291
289
|
|
|
292
|
-
db.instances.
|
|
290
|
+
await db.instances.updateOne({
|
|
293
291
|
_id: ins_id,
|
|
294
292
|
}, {
|
|
295
293
|
$pull: {
|
|
@@ -297,31 +295,35 @@ module.exports = {
|
|
|
297
295
|
}
|
|
298
296
|
});
|
|
299
297
|
|
|
300
|
-
|
|
298
|
+
await UUFlowManager.updateCCcount(ins_id)
|
|
301
299
|
|
|
302
|
-
instance = db.instances.findOne(ins_id);
|
|
300
|
+
const instance = await db.instances.findOne({ _id: ins_id});
|
|
303
301
|
|
|
304
|
-
current_user_info = db.users.findOne(current_user_id);
|
|
302
|
+
const current_user_info = await db.users.findOne({ _id: current_user_id});
|
|
305
303
|
//传阅提交不通知传阅者
|
|
306
304
|
if (false && description && myApprove && myApprove.from_user) {
|
|
307
|
-
pushManager.send_instance_notification("trace_approve_cc_submit", instance, "", current_user_info, [myApprove.from_user]);
|
|
305
|
+
await pushManager.send_instance_notification("trace_approve_cc_submit", instance, "", current_user_info, [myApprove.from_user]);
|
|
308
306
|
}
|
|
309
307
|
|
|
310
|
-
pushManager.send_message_to_specifyUser("current_user", current_user_id);
|
|
308
|
+
await pushManager.send_message_to_specifyUser("current_user", current_user_id);
|
|
311
309
|
|
|
312
|
-
flow_id = instance.flow;
|
|
310
|
+
const flow_id = instance.flow;
|
|
313
311
|
// 如果已经配置webhook并已激活则触发
|
|
314
|
-
pushManager.triggerWebhook(flow_id, instance, myApprove, 'cc_submit', current_user_id, []);
|
|
312
|
+
await pushManager.triggerWebhook(flow_id, instance, myApprove, 'cc_submit', current_user_id, []);
|
|
315
313
|
}
|
|
316
314
|
|
|
317
315
|
return true;
|
|
318
316
|
},
|
|
319
317
|
|
|
320
|
-
cc_remove: function (instanceId, approveId) {
|
|
318
|
+
cc_remove: async function (instanceId, approveId) {
|
|
319
|
+
const db = {
|
|
320
|
+
instances: await getCollection('instances'),
|
|
321
|
+
};
|
|
322
|
+
|
|
321
323
|
var setObj = {};
|
|
322
324
|
|
|
323
|
-
var instance = db.instances.findOne(instanceId, {
|
|
324
|
-
|
|
325
|
+
var instance = await db.instances.findOne({_id: instanceId}, {
|
|
326
|
+
projection: {
|
|
325
327
|
traces: 1,
|
|
326
328
|
cc_users: 1
|
|
327
329
|
}
|
|
@@ -360,17 +362,17 @@ module.exports = {
|
|
|
360
362
|
})
|
|
361
363
|
|
|
362
364
|
setObj.modified = new Date();
|
|
363
|
-
setObj.modified_by =
|
|
365
|
+
setObj.modified_by = ctx.userId;
|
|
364
366
|
|
|
365
367
|
if (multi > 1) {
|
|
366
|
-
db.instances.
|
|
368
|
+
await db.instances.updateOne({
|
|
367
369
|
_id: instanceId,
|
|
368
370
|
'traces._id': trace_id
|
|
369
371
|
}, {
|
|
370
372
|
$set: setObj
|
|
371
373
|
});
|
|
372
374
|
} else {
|
|
373
|
-
db.instances.
|
|
375
|
+
await db.instances.updateOne({
|
|
374
376
|
_id: instanceId,
|
|
375
377
|
'traces._id': trace_id
|
|
376
378
|
}, {
|
|
@@ -381,23 +383,24 @@ module.exports = {
|
|
|
381
383
|
});
|
|
382
384
|
}
|
|
383
385
|
|
|
384
|
-
|
|
386
|
+
await UUFlowManager.updateCCcount(instanceId)
|
|
385
387
|
|
|
386
|
-
remove_instance_tasks(approveId)
|
|
388
|
+
await remove_instance_tasks(approveId)
|
|
387
389
|
|
|
388
390
|
|
|
389
|
-
pushManager.send_message_to_specifyUser("current_user", remove_user_id);
|
|
391
|
+
await pushManager.send_message_to_specifyUser("current_user", remove_user_id);
|
|
390
392
|
return true;
|
|
391
393
|
},
|
|
392
394
|
|
|
393
|
-
batch_cancel_cc: function (instance_id, approve_ids) {
|
|
394
|
-
|
|
395
|
-
|
|
395
|
+
batch_cancel_cc: async function (instance_id, approve_ids) {
|
|
396
|
+
const db = {
|
|
397
|
+
instances: await getCollection('instances'),
|
|
398
|
+
};
|
|
396
399
|
|
|
397
400
|
var setObj = {};
|
|
398
401
|
|
|
399
|
-
var instance = db.instances.findOne(instance_id, {
|
|
400
|
-
|
|
402
|
+
var instance = await db.instances.findOne(instance_id, {
|
|
403
|
+
projection: {
|
|
401
404
|
traces: 1,
|
|
402
405
|
cc_users: 1
|
|
403
406
|
}
|
|
@@ -426,15 +429,15 @@ module.exports = {
|
|
|
426
429
|
return;
|
|
427
430
|
|
|
428
431
|
setObj.modified = new Date();
|
|
429
|
-
setObj.modified_by =
|
|
432
|
+
setObj.modified_by = ctx.userId;
|
|
430
433
|
|
|
431
|
-
db.instances.
|
|
434
|
+
await db.instances.updateOne({
|
|
432
435
|
_id: instance_id
|
|
433
436
|
}, {
|
|
434
437
|
$set: setObj,
|
|
435
438
|
});
|
|
436
439
|
for (const ruId of remove_user_ids) {
|
|
437
|
-
db.instances.
|
|
440
|
+
await db.instances.updateOne({
|
|
438
441
|
_id: instance_id,
|
|
439
442
|
cc_users: ruId
|
|
440
443
|
}, {
|
|
@@ -443,7 +446,7 @@ module.exports = {
|
|
|
443
446
|
}
|
|
444
447
|
});
|
|
445
448
|
}
|
|
446
|
-
db.instances.
|
|
449
|
+
await db.instances.updateOne({
|
|
447
450
|
_id: instance_id,
|
|
448
451
|
}, {
|
|
449
452
|
$pull: {
|
|
@@ -451,23 +454,27 @@ module.exports = {
|
|
|
451
454
|
}
|
|
452
455
|
});
|
|
453
456
|
|
|
454
|
-
|
|
457
|
+
await UUFlowManager.updateCCcount(instance_id)
|
|
455
458
|
|
|
456
|
-
direct_remove_many_instance_tasks(removeApproveIds)
|
|
459
|
+
await direct_remove_many_instance_tasks(removeApproveIds)
|
|
457
460
|
|
|
458
|
-
|
|
459
|
-
pushManager.send_message_to_specifyUser("current_user", u_id);
|
|
460
|
-
}
|
|
461
|
+
for (const u_id of remove_user_ids) {
|
|
462
|
+
await pushManager.send_message_to_specifyUser("current_user", u_id);
|
|
463
|
+
}
|
|
461
464
|
return true;
|
|
462
465
|
},
|
|
463
466
|
|
|
464
|
-
cc_save: function (ins_id, description, myApprove, ccHasEditPermission) {
|
|
467
|
+
cc_save: async function (ins_id, description, myApprove, ccHasEditPermission) {
|
|
468
|
+
const db = {
|
|
469
|
+
instances: await getCollection('instances'),
|
|
470
|
+
forms: await getCollection('forms'),
|
|
471
|
+
};
|
|
465
472
|
var setObj = {};
|
|
466
473
|
const approveDoc = {}
|
|
467
474
|
|
|
468
|
-
var instance = db.instances.findOne(ins_id);
|
|
475
|
+
var instance = await db.instances.findOne({ _id: ins_id});
|
|
469
476
|
var traces = instance.traces;
|
|
470
|
-
var current_user_id =
|
|
477
|
+
var current_user_id = ctx.userId;
|
|
471
478
|
|
|
472
479
|
var trace_id = myApprove.trace;
|
|
473
480
|
var approve_id = myApprove._id;
|
|
@@ -481,14 +488,14 @@ module.exports = {
|
|
|
481
488
|
|
|
482
489
|
var myTrace;
|
|
483
490
|
|
|
484
|
-
|
|
491
|
+
for (const t of traces) {
|
|
485
492
|
if (t.approves) {
|
|
486
|
-
t.approves.
|
|
493
|
+
for (const [idx, a] of t.approves.entries()) {
|
|
487
494
|
if (a.handler == current_user_id && a.type == 'cc' && a.is_finished == false) {
|
|
488
495
|
var upobj = {};
|
|
489
496
|
upobj['traces.$.approves.' + idx + '.judge'] = "submitted";
|
|
490
497
|
upobj['traces.$.approves.' + idx + '.read_date'] = new Date();
|
|
491
|
-
db.instances.update({
|
|
498
|
+
await db.instances.update({
|
|
492
499
|
_id: ins_id,
|
|
493
500
|
'traces._id': t._id
|
|
494
501
|
}, {
|
|
@@ -496,9 +503,9 @@ module.exports = {
|
|
|
496
503
|
})
|
|
497
504
|
|
|
498
505
|
}
|
|
499
|
-
}
|
|
506
|
+
};
|
|
500
507
|
}
|
|
501
|
-
}
|
|
508
|
+
}
|
|
502
509
|
|
|
503
510
|
var index = 0;
|
|
504
511
|
var currentStepId;
|
|
@@ -527,18 +534,18 @@ module.exports = {
|
|
|
527
534
|
|
|
528
535
|
var key_str = 'traces.$.approves.' + index + '.';
|
|
529
536
|
|
|
530
|
-
var flow =
|
|
537
|
+
var flow = await UUFlowManager.getFlow(instance.flow);
|
|
531
538
|
|
|
532
|
-
var step =
|
|
539
|
+
var step = UUFlowManager.getStep(instance, flow, currentStepId);
|
|
533
540
|
|
|
534
|
-
var permissions_values =
|
|
541
|
+
var permissions_values = await UUFlowManager.getApproveValues(myApprove.values, step.permissions, instance.form, instance.form_version);
|
|
535
542
|
|
|
536
543
|
var change_values = approveManager.getChangeValues(instance.values, permissions_values);
|
|
537
544
|
|
|
538
545
|
setObj.values = _.extend((instance.values || {}), permissions_values);
|
|
539
546
|
// 计算extras
|
|
540
|
-
var form = db.forms.findOne(instance.form);
|
|
541
|
-
setObj.extras =
|
|
547
|
+
var form = await db.forms.findOne({ _id: instance.form });
|
|
548
|
+
setObj.extras = await UUFlowManager.caculateExtras(setObj.values, form, instance.form_version);
|
|
542
549
|
approveDoc['extras'] = setObj.extras
|
|
543
550
|
|
|
544
551
|
if (!_.isEmpty(change_values)) {
|
|
@@ -554,18 +561,18 @@ module.exports = {
|
|
|
554
561
|
approveDoc['values_history'] = values_history
|
|
555
562
|
}
|
|
556
563
|
|
|
557
|
-
setObj.name =
|
|
564
|
+
setObj.name = await UUFlowManager.getInstanceName(instance)
|
|
558
565
|
approveDoc['instance_name'] = setObj.name
|
|
559
566
|
}
|
|
560
567
|
|
|
561
568
|
updateObj.$set = setObj;
|
|
562
569
|
|
|
563
|
-
db.instances.
|
|
570
|
+
await db.instances.updateOne({
|
|
564
571
|
_id: ins_id,
|
|
565
572
|
'traces._id': myApprove.trace
|
|
566
573
|
}, updateObj);
|
|
567
|
-
update_instance_tasks(ins_id, myApprove.trace, myApprove._id, approveDoc)
|
|
574
|
+
await update_instance_tasks(ins_id, myApprove.trace, myApprove._id, approveDoc)
|
|
568
575
|
return true;
|
|
569
576
|
}
|
|
570
|
-
|
|
577
|
+
|
|
571
578
|
}
|
|
@@ -58,7 +58,7 @@ amis_schema: |-
|
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"confirmText": "${'CustomLabels.confirm_delete' | t}",
|
|
61
|
-
"hiddenOn": "!(
|
|
61
|
+
"hiddenOn": "!(record.box == 'draft' || (record.box == 'monitor' && context.user.is_space_admin) \n || (_.includes(record.flow.perms.users_can_admin, context.user.userId) \n || _.intersection(record.flow.perms.orgs_can_admin, context.user.organizations_parents) > 0)\n ) \n || (record.box == 'inbox' && record.state == 'draft' && record.forward_from_instance))"
|
|
62
62
|
}
|
|
63
63
|
],
|
|
64
64
|
"regions": [
|
|
@@ -17,7 +17,7 @@ amis_schema: |-
|
|
|
17
17
|
"url": "/api/workflow/v2/instance/save",
|
|
18
18
|
"method": "post",
|
|
19
19
|
"sendOn": "",
|
|
20
|
-
"requestAdaptor": "var _SteedosUI$getRef$get, _approveValues$next_s;\nconst formValues = context._scoped.getComponentById(\"instance_form\").getValues()
|
|
20
|
+
"requestAdaptor": "var _SteedosUI$getRef$get, _approveValues$next_s;\nconst formValues = context._scoped.getComponentById(\"instance_form\").getValues();const _formValues = JSON.parse(JSON.stringify(formValues)); if(_formValues){delete _formValues.__applicant} \nconst approveValues = (_SteedosUI$getRef$get = context._scoped.getComponentById(\"instance_approval\")) === null || _SteedosUI$getRef$get === void 0 ? void 0 : _SteedosUI$getRef$get.getValues();\nlet nextUsers = approveValues === null || approveValues === void 0 ? void 0 : approveValues.next_users;\nif (_.isString(nextUsers)) {\n nextUsers = [approveValues.next_users];\n}\nconst instance = context.record;\nconst body = {\n instance: {\n _id: instance._id,\n applicant: formValues.applicant.user,\n submitter: formValues.submitter,\n traces: [{\n _id: instance.trace._id,\n step: instance.step._id,\n approves: [{\n _id: instance.approve._id,\n next_steps: [{\n step: approveValues === null || approveValues === void 0 || (_approveValues$next_s = approveValues.next_step) === null || _approveValues$next_s === void 0 ? void 0 : _approveValues$next_s._id,\n users: nextUsers\n }],\n description: approveValues === null || approveValues === void 0 ? void 0 : approveValues.suggestion,\n values: _formValues\n }]\n }]\n }\n};\napi.data = body;\nreturn api;",
|
|
21
21
|
"adaptor": "if (payload.instance == \"upgraded\") { window.setTimeout(function(){ window.location.reload(); }, 2000); return {...payload, status: 1, msg: t('instance_action_instance_save_msg_upgraded')}; } \n return payload.instance === true ? {...payload, status: 0, msg: t('instance_action_instance_save_msg_success')} : {...payload, status: 1, msg: t('instance_action_instance_save_msg_failed')};",
|
|
22
22
|
"headers": {
|
|
23
23
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -1,53 +1,26 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: baozhoutao@steedos.com
|
|
3
3
|
* @Date: 2023-02-11 14:50:02
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime:
|
|
4
|
+
* @LastEditors: 孙浩林 sunhaolin@steedos.com
|
|
5
|
+
* @LastEditTime: 2025-12-04 09:45:50
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
const express = require("express");
|
|
9
9
|
const router = express.Router();
|
|
10
10
|
const { requireAuthentication } = require("@steedos/auth");
|
|
11
11
|
const objectql = require('@steedos/objectql')
|
|
12
|
-
const _ = require('lodash');
|
|
13
|
-
const Fiber = function(fun){console.log('TODO Fiber...')}
|
|
14
12
|
|
|
15
|
-
const {
|
|
13
|
+
const { cc_submit } = require('../methods/trace_approve_cc');
|
|
16
14
|
|
|
17
15
|
router.post('/api/workflow/v2/cc_submit', requireAuthentication, async function (req, res) {
|
|
18
16
|
try {
|
|
19
17
|
let userSession = req.user;
|
|
20
18
|
const { instanceId, traceId, approveId, description } = req.body;
|
|
21
|
-
const approve = await objectql.getSteedosSchema().broker.call('instance.getApprove', {instanceId, traceId, approveId});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// Meteor.call('cc_submit', instanceId, description, myApprove, ccHasEditPermission, function (error, result) {})
|
|
25
|
-
//TODO
|
|
26
|
-
console.log('======cc_submit=====', instanceId, description, approve);
|
|
27
|
-
const ccHasEditPermission = false;
|
|
28
|
-
const result = workflowMethods.cc_submit.apply({
|
|
29
|
-
userId: userSession.userId
|
|
30
|
-
}, [
|
|
31
|
-
instanceId, description, approve, ccHasEditPermission])
|
|
32
|
-
res.status(200).send(result);
|
|
33
|
-
// Meteor.call('cc_submit', instanceId, description, approve, ccHasEditPermission, (error, result)=>{
|
|
34
|
-
// if(error){
|
|
35
|
-
// res.status(200).send({
|
|
36
|
-
// error: error.message
|
|
37
|
-
// });
|
|
38
|
-
// }else{
|
|
39
|
-
// res.status(200).send(result);
|
|
40
|
-
// }
|
|
41
|
-
// })
|
|
42
|
-
} catch (error) {
|
|
43
|
-
console.error(error);
|
|
44
|
-
res.status(200).send({
|
|
45
|
-
error: error.message
|
|
46
|
-
});
|
|
47
|
-
}
|
|
19
|
+
const approve = await objectql.getSteedosSchema().broker.call('instance.getApprove', { instanceId, traceId, approveId });
|
|
20
|
+
const ccHasEditPermission = false;
|
|
21
|
+
const result = await cc_submit(instanceId, description, approve, ccHasEditPermission, {userId: userSession.userId})
|
|
48
22
|
|
|
49
|
-
|
|
50
|
-
|
|
23
|
+
res.status(200).send(result);
|
|
51
24
|
} catch (error) {
|
|
52
25
|
console.error(error);
|
|
53
26
|
res.status(200).send({
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
const tpl = {
|
|
284
|
-
label: field.name,
|
|
284
|
+
label: field.name || field.code,
|
|
285
285
|
name: field.code,
|
|
286
286
|
required: field.is_required,
|
|
287
287
|
multiple: field.is_multiselect,
|
|
@@ -290,8 +290,8 @@
|
|
|
290
290
|
(field.is_searchable ? ' is_searchable' : '')
|
|
291
291
|
};
|
|
292
292
|
|
|
293
|
-
if(field.
|
|
294
|
-
tpl.value =
|
|
293
|
+
if(field.default_value){
|
|
294
|
+
tpl.value = field.default_value;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
297
|
switch (field.type) {
|
|
@@ -301,10 +301,16 @@
|
|
|
301
301
|
} else {
|
|
302
302
|
tpl.type = "input-text";
|
|
303
303
|
}
|
|
304
|
+
if(field.formula){
|
|
305
|
+
tpl.value = `$${field.formula}`;
|
|
306
|
+
}
|
|
304
307
|
break;
|
|
305
308
|
case "number":
|
|
306
309
|
tpl.type = "input-number";
|
|
307
|
-
tpl.precision=
|
|
310
|
+
tpl.precision=field.digits || 0;
|
|
311
|
+
if(field.formula){
|
|
312
|
+
tpl.value = `$${field.formula}`;
|
|
313
|
+
}
|
|
308
314
|
break;
|
|
309
315
|
case "date":
|
|
310
316
|
tpl.type = "input-date";
|