@steedos-labs/content-compliance 1.0.0 → 1.0.2
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/dist/index.js +1 -1
- package/lib/actions/contentHubFillOnSave.d.ts +5 -0
- package/lib/actions/contentHubFillOnSave.js +49 -0
- package/lib/actions/contentHubFillOnSave.js.map +1 -0
- package/lib/actions/contentHubMaterialGroups.js +19 -35
- package/lib/actions/contentHubMaterialGroups.js.map +1 -1
- package/lib/actions/contentHubSyncPreview.js +23 -19
- package/lib/actions/contentHubSyncPreview.js.map +1 -1
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +1 -1
- package/lib/methods/__tests__/contentHubFormFill.test.d.ts +1 -0
- package/lib/methods/__tests__/contentHubFormFill.test.js +274 -0
- package/lib/methods/__tests__/contentHubFormFill.test.js.map +1 -0
- package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js +43 -6
- package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js.map +1 -1
- package/lib/methods/__tests__/contentHubPush.test.js +503 -9
- package/lib/methods/__tests__/contentHubPush.test.js.map +1 -1
- package/lib/methods/approval_engine.js +9 -6
- package/lib/methods/approval_engine.js.map +1 -1
- package/lib/methods/consts.d.ts +1 -0
- package/lib/methods/consts.js.map +1 -1
- package/lib/methods/content_hub.d.ts +1 -0
- package/lib/methods/content_hub.js +203 -25
- package/lib/methods/content_hub.js.map +1 -1
- package/lib/methods/content_hub_copyright.d.ts +15 -0
- package/lib/methods/content_hub_copyright.js +223 -0
- package/lib/methods/content_hub_copyright.js.map +1 -0
- package/lib/methods/content_hub_form_fill.d.ts +2 -0
- package/lib/methods/content_hub_form_fill.js +75 -0
- package/lib/methods/content_hub_form_fill.js.map +1 -0
- package/lib/methods/content_hub_material_group.d.ts +1 -0
- package/lib/methods/content_hub_material_group.js +14 -1
- package/lib/methods/content_hub_material_group.js.map +1 -1
- package/lib/methods/content_hub_material_group_rule.d.ts +17 -1
- package/lib/methods/content_hub_material_group_rule.js +77 -4
- package/lib/methods/content_hub_material_group_rule.js.map +1 -1
- package/lib/methods/content_hub_sync_rule.d.ts +4 -0
- package/lib/methods/content_hub_sync_rule.js +29 -1
- package/lib/methods/content_hub_sync_rule.js.map +1 -1
- package/lib/methods/content_hub_uploader.d.ts +24 -0
- package/lib/methods/content_hub_uploader.js +281 -0
- package/lib/methods/content_hub_uploader.js.map +1 -0
- package/lib/methods/pls.d.ts +3 -0
- package/lib/methods/pls.js +39 -35
- package/lib/methods/pls.js.map +1 -1
- package/main/default/objects/pepesio_ch__c/fields/media_type.field.yml +2 -0
- package/main/default/objects/pepesio_ch__c/fields/pepsico_material_approval.field.yml +6 -0
- package/main/default/objects/pepesio_ch__c/fields/push_status.field.yml +11 -0
- package/main/default/objects/pepesio_ch__c/fields/type.field.yml +48 -8
- package/main/default/objects/pepesio_ch__c/listviews/all.listview.yml +2 -0
- package/main/default/objects/pepsico_ch_material_group_rule/fields/classification.field.yml +1 -1
- package/main/default/objects/pepsico_ch_material_group_rule/fields/priority.field.yml +10 -0
- package/main/default/objects/pepsico_ch_material_group_rule/fields/query_mode.field.yml +12 -0
- package/main/default/objects/pepsico_ch_material_group_rule/listviews/all.listview.yml +4 -2
- package/main/default/objects/pepsico_ch_material_group_rule/pepsico_ch_material_group_rule.object.yml +2 -1
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_confirm_online.button.yml +78 -1
- package/main/default/objects/pepsico_material_approval/fields/available_channels.field.yml +2 -0
- package/main/default/objects/pepsico_material_approval/fields/ch_material_group.field.yml +5 -12
- package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml +5 -3
- package/main/default/objects/pepsico_material_approval/fields/ch_sync_enabled.field.yml +10 -0
- package/main/default/objects/pepsico_material_approval/fields/ch_sync_manual.field.yml +12 -0
- package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +4 -12
- package/main/default/objects/pepsico_material_approval/fields/ch_uploader_notified_group.field.yml +11 -0
- package/main/default/objects/pepsico_material_approval/fields/content_rule.field.yml +2 -0
- package/main/default/objects/pepsico_material_approval/fields/effective_date.field.yml +2 -0
- package/main/default/objects/pepsico_material_approval/fields/expiry_date.field.yml +2 -0
- package/main/default/objects/pepsico_material_approval/fields/material_editable.field.yml +78 -0
- package/main/default/objects/pepsico_material_approval/fields/material_type.field.yml +2 -0
- package/main/default/objects/pepsico_material_approval_data/fields/guding_pass.field.yml +9 -1
- package/main/default/objects/pepsico_material_data/fields/guding_pass.field.yml +9 -1
- package/main/default/triggers/pepsico_material_approval_content_hub.trigger.yml +26 -0
- package/package.json +1 -1
|
@@ -5,20 +5,60 @@ data_type: text
|
|
|
5
5
|
group: 通用
|
|
6
6
|
label: 文件类型
|
|
7
7
|
options:
|
|
8
|
-
- label: jfif
|
|
9
|
-
value: jfif
|
|
10
|
-
- label: jpeg
|
|
11
|
-
value: jpeg
|
|
12
8
|
- label: jpg
|
|
13
9
|
value: jpg
|
|
14
|
-
- label:
|
|
15
|
-
value:
|
|
16
|
-
- label:
|
|
17
|
-
value:
|
|
10
|
+
- label: jpeg
|
|
11
|
+
value: jpeg
|
|
12
|
+
- label: jfif
|
|
13
|
+
value: jfif
|
|
18
14
|
- label: png
|
|
19
15
|
value: png
|
|
20
16
|
- label: gif
|
|
21
17
|
value: gif
|
|
18
|
+
- label: bmp
|
|
19
|
+
value: bmp
|
|
20
|
+
- label: tiff
|
|
21
|
+
value: tiff
|
|
22
|
+
- label: tif
|
|
23
|
+
value: tif
|
|
24
|
+
- label: svg
|
|
25
|
+
value: svg
|
|
26
|
+
- label: webp
|
|
27
|
+
value: webp
|
|
28
|
+
- label: ico
|
|
29
|
+
value: ico
|
|
30
|
+
- label: heif
|
|
31
|
+
value: heif
|
|
32
|
+
- label: heic
|
|
33
|
+
value: heic
|
|
34
|
+
- label: psd
|
|
35
|
+
value: psd
|
|
36
|
+
- label: mp4
|
|
37
|
+
value: mp4
|
|
38
|
+
- label: avi
|
|
39
|
+
value: avi
|
|
40
|
+
- label: mov
|
|
41
|
+
value: mov
|
|
42
|
+
- label: wmv
|
|
43
|
+
value: wmv
|
|
44
|
+
- label: flv
|
|
45
|
+
value: flv
|
|
46
|
+
- label: mkv
|
|
47
|
+
value: mkv
|
|
48
|
+
- label: webm
|
|
49
|
+
value: webm
|
|
50
|
+
- label: mpeg
|
|
51
|
+
value: mpeg
|
|
52
|
+
- label: mpg
|
|
53
|
+
value: mpg
|
|
54
|
+
- label: 3gp
|
|
55
|
+
value: 3gp
|
|
56
|
+
- label: m4v
|
|
57
|
+
value: m4v
|
|
58
|
+
- label: qt
|
|
59
|
+
value: qt
|
|
60
|
+
- label: zip
|
|
61
|
+
value: zip
|
|
22
62
|
required: true
|
|
23
63
|
sort_no: 150
|
|
24
64
|
type: select
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
name: all
|
|
2
2
|
columns:
|
|
3
3
|
- field: name
|
|
4
|
+
- field: pepsico_material_approval
|
|
4
5
|
- field: file_name
|
|
5
6
|
- field: type
|
|
6
7
|
- field: media_type
|
|
7
8
|
- field: product
|
|
8
9
|
- field: material_type
|
|
10
|
+
- field: push_status
|
|
9
11
|
- field: time
|
|
10
12
|
crud_mode: table
|
|
11
13
|
filter_scope: space
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
name: query_mode
|
|
2
|
+
description: 命中这条规则时, 调 Content Hub 素材组接口传的 Sales 参数。Sales = true 返回接口默认的销售目录; Sales = false 按申请单上选的品牌/产品查素材组
|
|
3
|
+
group: 查询方式
|
|
4
|
+
label: 素材组查询方式
|
|
5
|
+
options:
|
|
6
|
+
- label: 传品牌/产品信息(Sales = false)
|
|
7
|
+
value: product
|
|
8
|
+
- label: 接口默认销售目录(Sales = true)
|
|
9
|
+
value: sales
|
|
10
|
+
required: true
|
|
11
|
+
sort_no: 300
|
|
12
|
+
type: select
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
name: all
|
|
2
2
|
columns:
|
|
3
|
+
- field: priority
|
|
3
4
|
- field: name
|
|
4
5
|
wrap: true
|
|
5
6
|
- field: orgs
|
|
6
7
|
wrap: true
|
|
7
8
|
- field: classification
|
|
8
9
|
wrap: true
|
|
10
|
+
- field: query_mode
|
|
9
11
|
- field: active
|
|
10
12
|
filter_scope: space
|
|
11
13
|
filters: []
|
|
@@ -14,5 +16,5 @@ label: 所有
|
|
|
14
16
|
shared: true
|
|
15
17
|
shared_to: space
|
|
16
18
|
sort:
|
|
17
|
-
- field_name:
|
|
18
|
-
order:
|
|
19
|
+
- field_name: priority
|
|
20
|
+
order: asc
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: pepsico_ch_material_group_rule
|
|
2
2
|
custom: true
|
|
3
|
-
description: 决定填单时「Content Hub
|
|
3
|
+
description: 决定填单时「Content Hub 素材组」下拉怎么查。按优先级取第一条命中(发起人部门 + 分类)的启用规则, 按规则上选的查询方式查; 都不命中时按品牌/产品查。
|
|
4
4
|
enable_api: true
|
|
5
5
|
enable_audit: true
|
|
6
6
|
enable_dataloader: true
|
|
@@ -12,6 +12,7 @@ enable_trash: false
|
|
|
12
12
|
field_groups:
|
|
13
13
|
- group_name: 通用
|
|
14
14
|
- group_name: 匹配条件
|
|
15
|
+
- group_name: 查询方式
|
|
15
16
|
icon: hierarchy
|
|
16
17
|
is_enable: true
|
|
17
18
|
label: Content Hub 素材组查询规则
|
package/main/default/objects/pepsico_material_approval/buttons/pepsico_confirm_online.button.yml
CHANGED
|
@@ -32,6 +32,82 @@ amis_schema: |-
|
|
|
32
32
|
"click": {
|
|
33
33
|
"weight": 0,
|
|
34
34
|
"actions": [
|
|
35
|
+
{
|
|
36
|
+
"actionType": "dialog",
|
|
37
|
+
"expression": "${form_version == 'v3'}",
|
|
38
|
+
"ignoreError": false,
|
|
39
|
+
"dialog": {
|
|
40
|
+
"type": "dialog",
|
|
41
|
+
"title": "上线确认",
|
|
42
|
+
"id": "u:pepsico_confirm_online_v3",
|
|
43
|
+
"body": [
|
|
44
|
+
{
|
|
45
|
+
"type": "tpl",
|
|
46
|
+
"tpl": "确认立即上线吗?",
|
|
47
|
+
"id": "u:pepsico_confirm_online_v3_msg"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"actions": [
|
|
51
|
+
{
|
|
52
|
+
"type": "button",
|
|
53
|
+
"actionType": "cancel",
|
|
54
|
+
"label": "取消",
|
|
55
|
+
"id": "u:pepsico_confirm_online_v3_cancel"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "button",
|
|
59
|
+
"actionType": "confirm",
|
|
60
|
+
"label": "确定",
|
|
61
|
+
"primary": true,
|
|
62
|
+
"id": "u:pepsico_confirm_online_v3_ok",
|
|
63
|
+
"onEvent": {
|
|
64
|
+
"click": {
|
|
65
|
+
"weight": 0,
|
|
66
|
+
"actions": [
|
|
67
|
+
{
|
|
68
|
+
"ignoreError": false,
|
|
69
|
+
"actionType": "disabled",
|
|
70
|
+
"componentId": "u:pepsico_confirm_online_v3_ok"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"actionType": "ajax",
|
|
74
|
+
"ignoreError": false,
|
|
75
|
+
"outputVar": "responseResult",
|
|
76
|
+
"options": {},
|
|
77
|
+
"api": {
|
|
78
|
+
"url": "/api/pepsico-content/approve/confirm-deployment/${recordId}",
|
|
79
|
+
"method": "post",
|
|
80
|
+
"data": {},
|
|
81
|
+
"messages": {}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"actionType": "broadcast",
|
|
86
|
+
"args": {
|
|
87
|
+
"eventName": "@data.changed.pepsico_material_approval"
|
|
88
|
+
},
|
|
89
|
+
"data": {
|
|
90
|
+
"objectName": "pepsico_material_approval"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"ignoreError": false,
|
|
95
|
+
"actionType": "enabled",
|
|
96
|
+
"componentId": "u:pepsico_confirm_online_v3_ok"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"showCloseButton": true,
|
|
104
|
+
"closeOnOutside": false,
|
|
105
|
+
"closeOnEsc": false,
|
|
106
|
+
"showErrorMsg": true,
|
|
107
|
+
"showLoading": true,
|
|
108
|
+
"size": "sm"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
35
111
|
{
|
|
36
112
|
"actionType": "dialog",
|
|
37
113
|
"ignoreError": false,
|
|
@@ -223,7 +299,8 @@ amis_schema: |-
|
|
|
223
299
|
"draggable": false,
|
|
224
300
|
"size": "md",
|
|
225
301
|
"actionType": "dialog"
|
|
226
|
-
}
|
|
302
|
+
},
|
|
303
|
+
"expression": "${form_version != 'v3'}"
|
|
227
304
|
}
|
|
228
305
|
]
|
|
229
306
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
name: ch_material_group
|
|
2
2
|
amis:
|
|
3
3
|
id: 'u:ch_material_group'
|
|
4
|
+
# 只在编辑时显示; 只读时不渲染(也就不去查 Content Hub), 改由「Content Hub 素材组路径」显示存下的全路径
|
|
5
|
+
visibleOn: "form_version == 'v3' && ch_sync_enabled == true && global.mode !== 'read'"
|
|
4
6
|
type: tree-select
|
|
5
7
|
label: Content Hub 素材组
|
|
6
8
|
multiple: false
|
|
9
|
+
# 只存素材组 ID 字符串, 不存整个选项对象(否则推送时素材组会变成 [object Object])
|
|
10
|
+
joinValues: false
|
|
11
|
+
extractValue: true
|
|
7
12
|
clearable: true
|
|
8
13
|
searchable: true
|
|
9
14
|
onlyLeaf: false
|
|
@@ -34,16 +39,6 @@ amis:
|
|
|
34
39
|
api.query = query;
|
|
35
40
|
return api;
|
|
36
41
|
messages: {}
|
|
37
|
-
onEvent:
|
|
38
|
-
change:
|
|
39
|
-
weight: 0
|
|
40
|
-
actions:
|
|
41
|
-
# 同时把选中节点的完整名称路径存下来, Content Hub 那边目录改名 / 删除后历史单据照样能看
|
|
42
|
-
- ignoreError: true
|
|
43
|
-
actionType: setValue
|
|
44
|
-
componentId: 'u:ch_material_group_path'
|
|
45
|
-
args:
|
|
46
|
-
value: '${event.data.item.materialGroupPath || ""}'
|
|
47
42
|
data_type: text
|
|
48
43
|
description: 素材同步到 Content Hub 后存放的位置
|
|
49
44
|
group: 素材标签
|
|
@@ -52,5 +47,3 @@ label: Content Hub 素材组
|
|
|
52
47
|
required: false
|
|
53
48
|
sort_no: 1370
|
|
54
49
|
type: select
|
|
55
|
-
# 只在 Content Hub 改版后的新版表单(form_version 见 content_hub_sync_rule.ts 的 CONTENT_HUB_FORM_VERSIONS)显示, 存量单据不受影响
|
|
56
|
-
visible_on: form_version == 'v3' && ch_sync_enabled == true
|
package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml
CHANGED
|
@@ -2,7 +2,11 @@ name: ch_material_group_path
|
|
|
2
2
|
amis:
|
|
3
3
|
id: 'u:ch_material_group_path'
|
|
4
4
|
static: true
|
|
5
|
-
|
|
5
|
+
# 只读时代替素材组下拉显示存下的全路径, 不再查 Content Hub; 编辑时不显示
|
|
6
|
+
label: Content Hub 素材组
|
|
7
|
+
description: 素材同步到 Content Hub 后存放的位置
|
|
8
|
+
visibleOn: "form_version == 'v3' && ch_sync_enabled == true && global.mode === 'read'"
|
|
9
|
+
description: 保存时按所选素材组自动带出完整路径
|
|
6
10
|
group: 素材标签
|
|
7
11
|
is_wide: true
|
|
8
12
|
label: Content Hub 素材组路径
|
|
@@ -10,5 +14,3 @@ readonly: true
|
|
|
10
14
|
required: false
|
|
11
15
|
sort_no: 1380
|
|
12
16
|
type: text
|
|
13
|
-
# 只在 Content Hub 改版后的新版表单(form_version 见 content_hub_sync_rule.ts 的 CONTENT_HUB_FORM_VERSIONS)显示, 存量单据不受影响
|
|
14
|
-
visible_on: form_version == 'v3' && ch_sync_enabled == true
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
name: ch_sync_enabled
|
|
2
2
|
amis:
|
|
3
3
|
id: 'u:ch_sync_enabled'
|
|
4
|
+
onEvent:
|
|
5
|
+
# 只有用户点选才会触发 change(规则带出用的 setValue 不会), 记下「手动设置过」
|
|
6
|
+
change:
|
|
7
|
+
weight: 0
|
|
8
|
+
actions:
|
|
9
|
+
- ignoreError: true
|
|
10
|
+
actionType: setValue
|
|
11
|
+
componentId: 'u:ch_sync_manual'
|
|
12
|
+
args:
|
|
13
|
+
value: true
|
|
4
14
|
description: 系统会根据填写的信息自动勾选。如果这批素材不需要同步到 Content Hub,可以取消勾选。
|
|
5
15
|
group: 素材标签
|
|
6
16
|
label: 同步到 Content Hub
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
name: ch_sync_manual
|
|
2
|
+
# 辅助字段: 用户在页面上手动勾选 / 取消过「同步到 Content Hub」就记为 true, 之后不再按同步规则自动改开关
|
|
3
|
+
amis:
|
|
4
|
+
id: 'u:ch_sync_manual'
|
|
5
|
+
className: hidden
|
|
6
|
+
description: 用户手动改过「同步到 Content Hub」后为是, 之后不再按同步规则自动带出
|
|
7
|
+
group: 素材标签
|
|
8
|
+
label: 已手动设置同步开关
|
|
9
|
+
required: false
|
|
10
|
+
sort_no: 1367
|
|
11
|
+
type: boolean
|
|
12
|
+
visible_on: form_version == 'v3'
|
|
@@ -3,6 +3,8 @@ name: ch_sync_rule_check
|
|
|
3
3
|
amis:
|
|
4
4
|
type: service
|
|
5
5
|
className: hidden
|
|
6
|
+
# 只在编辑时预判; 只读查看时不请求, 也不改开关
|
|
7
|
+
visibleOn: "form_version == 'v3' && global.mode !== 'read'"
|
|
6
8
|
api:
|
|
7
9
|
# url 里引用这几个字段, 任一变化时 service 会重新请求
|
|
8
10
|
url: '/api/pepsico-content/content-hub/sync-preview?owner_department=${owner_department}&classification=${classification}&product=${product}&kol_classification=${kol_classification}'
|
|
@@ -32,16 +34,8 @@ amis:
|
|
|
32
34
|
if (event.data.responseStatus !== 0) {
|
|
33
35
|
return;
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const key = _.map(['owner_department', 'classification', 'product', 'kol_classification'], (k) => str(event.data[k])).join('|');
|
|
38
|
-
const store = window.__chSyncRuleKeys || (window.__chSyncRuleKeys = {});
|
|
39
|
-
const recordId = event.data._id || 'new';
|
|
40
|
-
const prevKey = store[recordId];
|
|
41
|
-
store[recordId] = key;
|
|
42
|
-
const current = event.data.ch_sync_enabled;
|
|
43
|
-
// 打开已有单据时保留已存的选择(用户可能手动关过); 之后这几个字段变了再按规则重新带出
|
|
44
|
-
if ((current === true || current === false) && (prevKey === undefined || prevKey === key)) {
|
|
37
|
+
// 用户手动设置过开关就以用户为准; 否则按当前填写的内容和同步规则带出(保存时服务端还会再算一次)
|
|
38
|
+
if (event.data.ch_sync_manual === true) {
|
|
45
39
|
return;
|
|
46
40
|
}
|
|
47
41
|
doAction({ actionType: 'setValue', componentId: 'u:ch_sync_enabled', args: { value: !!event.data.needSync } });
|
|
@@ -51,5 +45,3 @@ label: 同步规则预判
|
|
|
51
45
|
required: false
|
|
52
46
|
sort_no: 1366
|
|
53
47
|
type: text
|
|
54
|
-
# 只在 Content Hub 改版后的新版表单(form_version 见 content_hub_sync_rule.ts 的 CONTENT_HUB_FORM_VERSIONS)显示, 存量单据不受影响
|
|
55
|
-
visible_on: form_version == 'v3'
|
package/main/default/objects/pepsico_material_approval/fields/ch_uploader_notified_group.field.yml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
name: ch_uploader_notified_group
|
|
2
|
+
# 系统字段: 推送成功后已经为哪个素材组开通过上传权限、发过通知邮件, 同一素材组不重复处理
|
|
3
|
+
description: 已开通 Content Hub 上传权限并通知发起人 / Agency 的素材组, 系统自动记录
|
|
4
|
+
group: 素材标签
|
|
5
|
+
hidden: true
|
|
6
|
+
label: 已通知上传的素材组
|
|
7
|
+
omit: true
|
|
8
|
+
readonly: true
|
|
9
|
+
required: false
|
|
10
|
+
sort_no: 1390
|
|
11
|
+
type: text
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: material_editable
|
|
2
|
+
# 选项与素材授权规则(content_rule)相同, 动态读取 picklist 223321022150011 的启用选项
|
|
3
|
+
amis:
|
|
4
|
+
id: 'u:material_editable'
|
|
5
|
+
type: tree-select
|
|
6
|
+
label: 是否可以进行素材编辑
|
|
7
|
+
multiple: false
|
|
8
|
+
enableNodePath: true
|
|
9
|
+
showIcon: true
|
|
10
|
+
initiallyOpen: false
|
|
11
|
+
hideRoot: true
|
|
12
|
+
clearable: true
|
|
13
|
+
onlyLeaf: true
|
|
14
|
+
searchable: true
|
|
15
|
+
autoCheckChildren: true
|
|
16
|
+
joinValues: true
|
|
17
|
+
delimiter: 、
|
|
18
|
+
source:
|
|
19
|
+
url: /graphql
|
|
20
|
+
method: post
|
|
21
|
+
requestAdaptor: |-
|
|
22
|
+
api.data = { query:`
|
|
23
|
+
query{
|
|
24
|
+
picklists(filters: [["code", "=", "223321022150011"]]){
|
|
25
|
+
options: _related_picklist_options_picklist(filters: [["enable", "=", true]], sort: "sort_no desc"){
|
|
26
|
+
label: name, value, , parent: parent__expand{ value }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`}
|
|
31
|
+
adaptor: |+
|
|
32
|
+
const pOptions = payload.data.picklists[0].options;
|
|
33
|
+
let depth = 0;
|
|
34
|
+
function getChildren(value) {
|
|
35
|
+
depth++;
|
|
36
|
+
// 控制递归次数;
|
|
37
|
+
if (depth > 2000) {
|
|
38
|
+
console.log('递归次数过多,请检查数据:', depth, pOptions)
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
return _.map(_.filter(pOptions, (op) => {
|
|
42
|
+
if (value == null) {
|
|
43
|
+
return op.parent == null
|
|
44
|
+
}
|
|
45
|
+
return op.parent && op.parent.value === value;
|
|
46
|
+
}), item => {
|
|
47
|
+
return {
|
|
48
|
+
...item,
|
|
49
|
+
children: getChildren(item.value || item.label)
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const options = getChildren(null);
|
|
54
|
+
return { options }
|
|
55
|
+
|
|
56
|
+
messages: {}
|
|
57
|
+
sendOn: ''
|
|
58
|
+
cache: 86400000
|
|
59
|
+
showOutline: false
|
|
60
|
+
cascade: true
|
|
61
|
+
description: ''
|
|
62
|
+
pathSeparator: '-'
|
|
63
|
+
unfoldedLevel: 2
|
|
64
|
+
data_type: text
|
|
65
|
+
description: ''
|
|
66
|
+
enable_thousands: true
|
|
67
|
+
group: 素材标签
|
|
68
|
+
inlineHelpText: ''
|
|
69
|
+
is_wide: true
|
|
70
|
+
label: 是否可以进行素材编辑
|
|
71
|
+
options:
|
|
72
|
+
- label: '1'
|
|
73
|
+
value: '1'
|
|
74
|
+
required: true
|
|
75
|
+
sort_no: 1625
|
|
76
|
+
type: select
|
|
77
|
+
# 只在 Content Hub 改版后的新版表单(v3)且勾选「同步到 Content Hub」时显示, 存量 v1/v2 单据不受影响
|
|
78
|
+
visible_on: form_version == 'v3' && ch_sync_enabled == true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: pepsico_material_approval_content_hub
|
|
2
|
+
listenTo: pepsico_material_approval
|
|
3
|
+
when:
|
|
4
|
+
- beforeInsert
|
|
5
|
+
- beforeUpdate
|
|
6
|
+
isEnabled: true
|
|
7
|
+
handler: |-
|
|
8
|
+
// 新版表单(v3)保存时补算「同步到 Content Hub」开关(用户没手动改过时按同步规则)和「Content Hub 素材组路径」,
|
|
9
|
+
// 不依赖页面联动是否生效。逻辑在 src/methods/content_hub_form_fill.ts; 存量单据在那边直接跳过。
|
|
10
|
+
// 只是补算, 任何异常都不能挡住保存(系统已上线, 存量单据照常可改)
|
|
11
|
+
const { doc } = ctx.params;
|
|
12
|
+
try {
|
|
13
|
+
if (!ctx.broker || !doc) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const result = await ctx.broker.call('@steedos-labs/content-compliance.contentHubFillOnSave', {
|
|
17
|
+
doc,
|
|
18
|
+
id: ctx.params.isInsert === true ? null : ctx.params.id
|
|
19
|
+
});
|
|
20
|
+
Object.assign(doc, (result && result.patch) || {});
|
|
21
|
+
} catch (e) {
|
|
22
|
+
console.error('[Content Hub]保存时补算失败, 不影响保存', ctx.params && ctx.params.id, e && e.message);
|
|
23
|
+
}
|
|
24
|
+
authentication_type: none
|
|
25
|
+
locked: false
|
|
26
|
+
type: code
|