@steedos-labs/plugin-workflow 3.0.8 → 3.0.9
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/client/instance.client.js +4 -0
- package/main/default/client/socket.client.js +3 -2
- package/main/default/objects/instances/buttons/instance_new.button.yml +5 -1
- package/main/default/pages/instances_list.page.amis.json +1 -1
- package/main/default/routes/am.router.js +6 -2
- package/main/default/triggers/amis_form_design.trigger.js +15 -1
- package/package.json +1 -1
- package/public/workflow/index.css +1 -1
|
@@ -16,6 +16,7 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
16
16
|
fields.forEach(function (field) {
|
|
17
17
|
if (field.is_list_display) {
|
|
18
18
|
crudDataFilter = crudDataFilter + `
|
|
19
|
+
if (data.display !== 'split'){
|
|
19
20
|
crud.columns.push({
|
|
20
21
|
"name": "instance__expand.values.${field.code}",
|
|
21
22
|
"label": "${field.name || field.code}",
|
|
@@ -25,6 +26,7 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
25
26
|
"static": true,
|
|
26
27
|
"options": null
|
|
27
28
|
});\r\n
|
|
29
|
+
}\r\n
|
|
28
30
|
`;
|
|
29
31
|
}
|
|
30
32
|
})
|
|
@@ -85,6 +87,7 @@ window.SteedosWorkflow.Instance = {
|
|
|
85
87
|
fields.forEach(function (field) {
|
|
86
88
|
if (field.is_list_display) {
|
|
87
89
|
crudDataFilter = crudDataFilter + `
|
|
90
|
+
if (data.display !== 'split'){
|
|
88
91
|
crud.columns.push({
|
|
89
92
|
"name": "instance__expand.values.${field.code}",
|
|
90
93
|
"label": "${field.name || field.code}",
|
|
@@ -94,6 +97,7 @@ window.SteedosWorkflow.Instance = {
|
|
|
94
97
|
"static": true,
|
|
95
98
|
"options": null
|
|
96
99
|
});\r\n
|
|
100
|
+
}\r\n
|
|
97
101
|
`;
|
|
98
102
|
}
|
|
99
103
|
})
|
|
@@ -36,17 +36,18 @@ window.waitForThing(window, 'socket').then(()=>{
|
|
|
36
36
|
});
|
|
37
37
|
})
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
let isFirstRun = true;
|
|
40
40
|
socket.on(SocketEvents.badgeChange, (data)=>{
|
|
41
41
|
window.postMessage({ type: "page.dataProvider.setData", data: { badges: data }}, "*")
|
|
42
42
|
const shouldReloadView = () => {
|
|
43
43
|
const pathname = window.location.pathname;
|
|
44
44
|
return pathname.endsWith(`/instances`) || pathname.includes(`/instances/view`) || pathname.includes(`/instances/grid`) || pathname.endsWith(`/instance_tasks`) || pathname.includes(`/instance_tasks/view`) || pathname.includes(`/instance_tasks/grid`);
|
|
45
45
|
};
|
|
46
|
-
if (shouldReloadView()) {
|
|
46
|
+
if (isFirstRun === false && shouldReloadView()) {
|
|
47
47
|
window.$(".list-view-btn-reload").click()
|
|
48
48
|
window.$(".instance-nav-reload").click()
|
|
49
49
|
}
|
|
50
|
+
isFirstRun = false;
|
|
50
51
|
});
|
|
51
52
|
|
|
52
53
|
socket.on(SocketEvents.instanceRecordChange, (data)=>{
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"listName": "completed",
|
|
203
203
|
"rebuildOn": "${flowId || categoryId}",
|
|
204
204
|
"adaptor": "//在列表上加流程表单字段时,group和user需要特殊处理\nif (api.body.self.listName == \"monitor\") {\n _.each(payload.data.rows, function (item, index) {\n if (item.values) {\n const form_fields = api.body.self.form_fields;\n _.each(item.values, function (field, field_code) {\n const form_field = _.find(form_fields, { code: field_code });\n if (form_field && form_field.type == \"group\") {\n if (form_field.is_multiselect) {\n item.values[field_code] = field && field.length > 0 ? _.map(field, 'fullname').toString() : \"\";\n } else {\n item.values[field_code] = field ? field.fullname : \"\";\n }\n } else if (form_field && form_field.type == \"user\") {\n if (form_field.is_multiselect) {\n item.values[field_code] = field && field.length > 0 ? _.map(field, 'name').toString() : \"\";\n } else {\n item.values[field_code] = field ? field.name : \"\";\n }\n }\n })\n }\n })\n}\n",
|
|
205
|
-
"crudDataFilter": "if (data && data.flowId && (data.listName == 'inbox' || 'monitor') && window.innerWidth > 768) {\r\n var api = {\r\n url: \"${context.rootUrl}/graphql\",\r\n method: \"post\",\r\n dataType: \"json\",\r\n data: {\r\n \"query\": '{flow: flows__findOne(id:\"' + data.flowId + '\"){form__expand{current}}}'\r\n },\r\n headers: {\r\n Authorization:\r\n \"Bearer ${context.tenantId},${context.authToken}\",\r\n },\r\n };\r\n return env.fetcher(api).then((result) => {\r\n if (result.data && result.data.flow && result.data.flow.form__expand.current.fields && result.data.flow.form__expand.current.fields.length > 0) {\r\n let fields = result.data.flow.form__expand.current.fields;\r\n fields.forEach(function (field) {\r\n if (field.is_list_display) {\r\n crud.columns.push({\r\n \"name\": \"values.\" + field.code,\r\n \"label\": field.name || field.code,\r\n \"width\": \"unset\",\r\n \"type\": \"text\",\r\n \"className\": \" whitespace-nowrap\",\r\n \"static\": true,\r\n \"options\": null\r\n });\r\n }\r\n })\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ form_fields: fields, isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n }\r\n return crud;\r\n });\r\n} else {\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n return crud;\r\n}\r\n"
|
|
205
|
+
"crudDataFilter": "if (data && data.flowId && (data.listName == 'inbox' || 'monitor') && window.innerWidth > 768) {\r\n var api = {\r\n url: \"${context.rootUrl}/graphql\",\r\n method: \"post\",\r\n dataType: \"json\",\r\n data: {\r\n \"query\": '{flow: flows__findOne(id:\"' + data.flowId + '\"){form__expand{current}}}'\r\n },\r\n headers: {\r\n Authorization:\r\n \"Bearer ${context.tenantId},${context.authToken}\",\r\n },\r\n };\r\n return env.fetcher(api).then((result) => {\r\n if (result.data && result.data.flow && result.data.flow.form__expand.current.fields && result.data.flow.form__expand.current.fields.length > 0) {\r\n let fields = result.data.flow.form__expand.current.fields;\r\n fields.forEach(function (field) {\r\n if (field.is_list_display && data.display !== 'split') {\r\n crud.columns.push({\r\n \"name\": \"values.\" + field.code,\r\n \"label\": field.name || field.code,\r\n \"width\": \"unset\",\r\n \"type\": \"text\",\r\n \"className\": \" whitespace-nowrap\",\r\n \"static\": true,\r\n \"options\": null\r\n });\r\n }\r\n })\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ form_fields: fields, isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n }\r\n return crud;\r\n });\r\n} else {\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n return crud;\r\n}\r\n"
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
"type": "service",
|
|
@@ -537,8 +537,12 @@ router.put('/am/flows', async function (req, res) {
|
|
|
537
537
|
}
|
|
538
538
|
});
|
|
539
539
|
updateObj.$set.category = form['category'];
|
|
540
|
-
|
|
541
|
-
|
|
540
|
+
const updateData = { ...updateObj.$set };
|
|
541
|
+
if (updateObj.$push) {
|
|
542
|
+
updateData.$push = updateObj.$push;
|
|
543
|
+
}
|
|
544
|
+
await objectql.getObject('flows').update(flowId, updateData);
|
|
545
|
+
console.log('update', flowId, 'end');
|
|
542
546
|
updatedFlows.push(await flowCollection.findOne({_id: flowId}));
|
|
543
547
|
}
|
|
544
548
|
|
|
@@ -199,7 +199,8 @@ function transformFormFields(amisField) {
|
|
|
199
199
|
is_searchable: _.includes(amisField.className, "is_searchable"),
|
|
200
200
|
visibleOn: amisField.visibleOn,
|
|
201
201
|
requiredOn: amisField.requiredOn,
|
|
202
|
-
description: amisField.description
|
|
202
|
+
description: amisField.description,
|
|
203
|
+
_amisField: amisField
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
// console.log('formFieldsItem', formFieldsItem)
|
|
@@ -563,6 +564,19 @@ module.exports = {
|
|
|
563
564
|
await desingerManager.checkSpaceUserBeforeUpdate(spaceId, userId, roles);
|
|
564
565
|
// 更新表单
|
|
565
566
|
await desingerManager.updateForm(this.id, form, updatedForms, updatedFlows, userId);
|
|
567
|
+
|
|
568
|
+
const flows = await objectql.getObject('flows').directFind({
|
|
569
|
+
filters: ['form', '=', this.id],
|
|
570
|
+
fields: ['_id']
|
|
571
|
+
});
|
|
572
|
+
|
|
573
|
+
for (const flow of flows) {
|
|
574
|
+
await objectql.getObject('flows').directUpdate(flow._id, {
|
|
575
|
+
modified: new Date(),
|
|
576
|
+
modified_by: userId
|
|
577
|
+
})
|
|
578
|
+
}
|
|
579
|
+
|
|
566
580
|
}
|
|
567
581
|
|
|
568
582
|
},
|
package/package.json
CHANGED