@steedos-labs/content-compliance 0.8.36 → 1.0.1

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 (177) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/contentHubMaterialGroups.d.ts +19 -0
  3. package/lib/actions/contentHubMaterialGroups.js +70 -0
  4. package/lib/actions/contentHubMaterialGroups.js.map +1 -0
  5. package/lib/actions/contentHubSyncPreview.d.ts +21 -0
  6. package/lib/actions/contentHubSyncPreview.js +51 -0
  7. package/lib/actions/contentHubSyncPreview.js.map +1 -0
  8. package/lib/actions/contentHubTagValues.d.ts +12 -0
  9. package/lib/actions/contentHubTagValues.js +70 -0
  10. package/lib/actions/contentHubTagValues.js.map +1 -0
  11. package/lib/actions/index.d.ts +3 -0
  12. package/lib/actions/index.js +3 -0
  13. package/lib/actions/index.js.map +1 -1
  14. package/lib/actions/sendToContentHub.js +1 -1
  15. package/lib/actions/sendToContentHub.js.map +1 -1
  16. package/lib/actions/spotCheckMaterial.js +2 -1
  17. package/lib/actions/spotCheckMaterial.js.map +1 -1
  18. package/lib/index.js +173 -30
  19. package/lib/index.js.map +1 -1
  20. package/lib/methods/__tests__/contentHubMaterialGroup.test.d.ts +1 -0
  21. package/lib/methods/__tests__/contentHubMaterialGroup.test.js +97 -0
  22. package/lib/methods/__tests__/contentHubMaterialGroup.test.js.map +1 -0
  23. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.d.ts +1 -0
  24. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js +168 -0
  25. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js.map +1 -0
  26. package/lib/methods/__tests__/contentHubPush.test.d.ts +1 -0
  27. package/lib/methods/__tests__/contentHubPush.test.js +568 -0
  28. package/lib/methods/__tests__/contentHubPush.test.js.map +1 -0
  29. package/lib/methods/__tests__/contentHubSyncRule.test.d.ts +1 -0
  30. package/lib/methods/__tests__/contentHubSyncRule.test.js +130 -0
  31. package/lib/methods/__tests__/contentHubSyncRule.test.js.map +1 -0
  32. package/lib/methods/__tests__/contentHubTagSync.test.d.ts +1 -0
  33. package/lib/methods/__tests__/contentHubTagSync.test.js +743 -0
  34. package/lib/methods/__tests__/contentHubTagSync.test.js.map +1 -0
  35. package/lib/methods/__tests__/tagLabel.test.d.ts +1 -0
  36. package/lib/methods/__tests__/tagLabel.test.js +136 -0
  37. package/lib/methods/__tests__/tagLabel.test.js.map +1 -0
  38. package/lib/methods/approval_engine.js +10 -7
  39. package/lib/methods/approval_engine.js.map +1 -1
  40. package/lib/methods/consts.d.ts +4 -0
  41. package/lib/methods/consts.js.map +1 -1
  42. package/lib/methods/content_hub.d.ts +8 -1
  43. package/lib/methods/content_hub.js +278 -27
  44. package/lib/methods/content_hub.js.map +1 -1
  45. package/lib/methods/content_hub_copyright.d.ts +15 -0
  46. package/lib/methods/content_hub_copyright.js +223 -0
  47. package/lib/methods/content_hub_copyright.js.map +1 -0
  48. package/lib/methods/content_hub_material_group.d.ts +29 -0
  49. package/lib/methods/content_hub_material_group.js +268 -0
  50. package/lib/methods/content_hub_material_group.js.map +1 -0
  51. package/lib/methods/content_hub_material_group_rule.d.ts +23 -0
  52. package/lib/methods/content_hub_material_group_rule.js +58 -0
  53. package/lib/methods/content_hub_material_group_rule.js.map +1 -0
  54. package/lib/methods/content_hub_sync_rule.d.ts +51 -0
  55. package/lib/methods/content_hub_sync_rule.js +122 -0
  56. package/lib/methods/content_hub_sync_rule.js.map +1 -0
  57. package/lib/methods/content_hub_tag.d.ts +57 -0
  58. package/lib/methods/content_hub_tag.js +830 -0
  59. package/lib/methods/content_hub_tag.js.map +1 -0
  60. package/lib/methods/pls.d.ts +4 -1
  61. package/lib/methods/pls.js +60 -51
  62. package/lib/methods/pls.js.map +1 -1
  63. package/lib/methods/tag_label.d.ts +19 -0
  64. package/lib/methods/tag_label.js +192 -0
  65. package/lib/methods/tag_label.js.map +1 -0
  66. package/main/default/applications/pepsico_content_setting.app.yml +8 -0
  67. package/main/default/objects/pepesio_ch__c/fields/media_type.field.yml +2 -0
  68. package/main/default/objects/pepesio_ch__c/fields/pepsico_material_approval.field.yml +6 -0
  69. package/main/default/objects/pepesio_ch__c/fields/push_status.field.yml +11 -0
  70. package/main/default/objects/pepesio_ch__c/fields/type.field.yml +48 -8
  71. package/main/default/objects/pepesio_ch__c/listviews/all.listview.yml +2 -0
  72. package/main/default/objects/pepsico_ch_material_group_rule/fields/active.field.yml +6 -0
  73. package/main/default/objects/pepsico_ch_material_group_rule/fields/classification.field.yml +73 -0
  74. package/main/default/objects/pepsico_ch_material_group_rule/fields/name.field.yml +9 -0
  75. package/main/default/objects/pepsico_ch_material_group_rule/fields/orgs.field.yml +10 -0
  76. package/main/default/objects/pepsico_ch_material_group_rule/fields/priority.field.yml +10 -0
  77. package/main/default/objects/pepsico_ch_material_group_rule/fields/query_mode.field.yml +12 -0
  78. package/main/default/objects/pepsico_ch_material_group_rule/fields/remark.field.yml +7 -0
  79. package/main/default/objects/pepsico_ch_material_group_rule/listviews/all.listview.yml +20 -0
  80. package/main/default/objects/pepsico_ch_material_group_rule/pepsico_ch_material_group_rule.object.yml +19 -0
  81. package/main/default/objects/pepsico_ch_material_group_rule/permissions/admin.permission.yml +15 -0
  82. package/main/default/objects/pepsico_ch_material_group_rule/permissions/user.permission.yml +14 -0
  83. package/main/default/objects/pepsico_ch_sync_rule/fields/active.field.yml +6 -0
  84. package/main/default/objects/pepsico_ch_sync_rule/fields/classification.field.yml +73 -0
  85. package/main/default/objects/pepsico_ch_sync_rule/fields/kol_classification.field.yml +67 -0
  86. package/main/default/objects/pepsico_ch_sync_rule/fields/name.field.yml +9 -0
  87. package/main/default/objects/pepsico_ch_sync_rule/fields/need_sync.field.yml +11 -0
  88. package/main/default/objects/pepsico_ch_sync_rule/fields/orgs.field.yml +10 -0
  89. package/main/default/objects/pepsico_ch_sync_rule/fields/priority.field.yml +10 -0
  90. package/main/default/objects/pepsico_ch_sync_rule/fields/product.field.yml +65 -0
  91. package/main/default/objects/pepsico_ch_sync_rule/fields/remark.field.yml +7 -0
  92. package/main/default/objects/pepsico_ch_sync_rule/fields/spot_check.field.yml +12 -0
  93. package/main/default/objects/pepsico_ch_sync_rule/listviews/all.listview.yml +24 -0
  94. package/main/default/objects/pepsico_ch_sync_rule/pepsico_ch_sync_rule.object.yml +19 -0
  95. package/main/default/objects/pepsico_ch_sync_rule/permissions/admin.permission.yml +15 -0
  96. package/main/default/objects/pepsico_ch_sync_rule/permissions/user.permission.yml +14 -0
  97. package/main/default/objects/pepsico_ch_tag_sync_log/fields/action.field.yml +6 -0
  98. package/main/default/objects/pepsico_ch_tag_sync_log/fields/changed_at.field.yml +6 -0
  99. package/main/default/objects/pepsico_ch_tag_sync_log/fields/duration.field.yml +6 -0
  100. package/main/default/objects/pepsico_ch_tag_sync_log/fields/error_code.field.yml +6 -0
  101. package/main/default/objects/pepsico_ch_tag_sync_log/fields/error_msg.field.yml +6 -0
  102. package/main/default/objects/pepsico_ch_tag_sync_log/fields/expired_date.field.yml +6 -0
  103. package/main/default/objects/pepsico_ch_tag_sync_log/fields/name.field.yml +7 -0
  104. package/main/default/objects/pepsico_ch_tag_sync_log/fields/parent_tag_val_id.field.yml +6 -0
  105. package/main/default/objects/pepsico_ch_tag_sync_log/fields/request_id.field.yml +7 -0
  106. package/main/default/objects/pepsico_ch_tag_sync_log/fields/result.field.yml +6 -0
  107. package/main/default/objects/pepsico_ch_tag_sync_log/fields/source_ip.field.yml +6 -0
  108. package/main/default/objects/pepsico_ch_tag_sync_log/fields/space.field.yml +6 -0
  109. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_id.field.yml +6 -0
  110. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_val_id.field.yml +7 -0
  111. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_val_name.field.yml +6 -0
  112. package/main/default/objects/pepsico_ch_tag_sync_log/listviews/all.listview.yml +21 -0
  113. package/main/default/objects/pepsico_ch_tag_sync_log/pepsico_ch_tag_sync_log.object.yml +16 -0
  114. package/main/default/objects/pepsico_ch_tag_sync_log/permissions/admin.permission.yml +15 -0
  115. package/main/default/objects/pepsico_ch_tag_sync_log/permissions/user.permission.yml +14 -0
  116. package/main/default/objects/pepsico_ch_tag_sync_request/fields/changed_at.field.yml +6 -0
  117. package/main/default/objects/pepsico_ch_tag_sync_request/fields/duration.field.yml +6 -0
  118. package/main/default/objects/pepsico_ch_tag_sync_request/fields/expired_date.field.yml +6 -0
  119. package/main/default/objects/pepsico_ch_tag_sync_request/fields/item_count.field.yml +6 -0
  120. package/main/default/objects/pepsico_ch_tag_sync_request/fields/name.field.yml +7 -0
  121. package/main/default/objects/pepsico_ch_tag_sync_request/fields/request_id.field.yml +7 -0
  122. package/main/default/objects/pepsico_ch_tag_sync_request/fields/response.field.yml +9 -0
  123. package/main/default/objects/pepsico_ch_tag_sync_request/fields/result_code.field.yml +6 -0
  124. package/main/default/objects/pepsico_ch_tag_sync_request/fields/source_ip.field.yml +6 -0
  125. package/main/default/objects/pepsico_ch_tag_sync_request/fields/space.field.yml +6 -0
  126. package/main/default/objects/pepsico_ch_tag_sync_request/fields/tag_id.field.yml +6 -0
  127. package/main/default/objects/pepsico_ch_tag_sync_request/fields/tag_label.field.yml +6 -0
  128. package/main/default/objects/pepsico_ch_tag_sync_request/listviews/all.listview.yml +19 -0
  129. package/main/default/objects/pepsico_ch_tag_sync_request/pepsico_ch_tag_sync_request.object.yml +16 -0
  130. package/main/default/objects/pepsico_ch_tag_sync_request/permissions/admin.permission.yml +15 -0
  131. package/main/default/objects/pepsico_ch_tag_sync_request/permissions/user.permission.yml +14 -0
  132. package/main/default/objects/pepsico_material/fields/material_type_label.field.yml +10 -0
  133. package/main/default/objects/pepsico_material_approval/buttons/pepsico_confirm_online.button.yml +78 -1
  134. package/main/default/objects/pepsico_material_approval/buttons/pepsico_modify_pls.button.yml +1 -1
  135. package/main/default/objects/pepsico_material_approval/fields/available_channels.field.yml +2 -0
  136. package/main/default/objects/pepsico_material_approval/fields/available_channels_label.field.yml +10 -0
  137. package/main/default/objects/pepsico_material_approval/fields/ch_material_group.field.yml +56 -0
  138. package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml +14 -0
  139. package/main/default/objects/pepsico_material_approval/fields/ch_sync_enabled.field.yml +11 -0
  140. package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +55 -0
  141. package/main/default/objects/pepsico_material_approval/fields/content_rule.field.yml +2 -0
  142. package/main/default/objects/pepsico_material_approval/fields/content_rule_label.field.yml +10 -0
  143. package/main/default/objects/pepsico_material_approval/fields/ec_check_food_name.field.yml +2 -2
  144. package/main/default/objects/pepsico_material_approval/fields/ec_check_ingredients.field.yml +2 -2
  145. package/main/default/objects/pepsico_material_approval/fields/ec_check_net_content.field.yml +2 -2
  146. package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_address.field.yml +2 -2
  147. package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_name.field.yml +2 -2
  148. package/main/default/objects/pepsico_material_approval/fields/ec_check_shelf_life.field.yml +2 -2
  149. package/main/default/objects/pepsico_material_approval/fields/ec_check_standard_code.field.yml +2 -2
  150. package/main/default/objects/pepsico_material_approval/fields/ec_check_storage_condition.field.yml +2 -2
  151. package/main/default/objects/pepsico_material_approval/fields/ec_has_detail_page.field.yml +1 -1
  152. package/main/default/objects/pepsico_material_approval/fields/ec_producers.field.yml +1 -1
  153. package/main/default/objects/pepsico_material_approval/fields/ec_qc_production_email.field.yml +2 -2
  154. package/main/default/objects/pepsico_material_approval/fields/ec_related_approval.field.yml +1 -1
  155. package/main/default/objects/pepsico_material_approval/fields/effective_date.field.yml +2 -0
  156. package/main/default/objects/pepsico_material_approval/fields/expiry_date.field.yml +2 -0
  157. package/main/default/objects/pepsico_material_approval/fields/form_version.field.yml +6 -2
  158. package/main/default/objects/pepsico_material_approval/fields/has_nutrition_table.field.yml +1 -1
  159. package/main/default/objects/pepsico_material_approval/fields/material_editable.field.yml +78 -0
  160. package/main/default/objects/pepsico_material_approval/fields/material_type.field.yml +2 -0
  161. package/main/default/objects/pepsico_material_approval/fields/material_type_label.field.yml +10 -0
  162. package/main/default/objects/pepsico_material_approval/fields/pls_file.field.yml +1 -1
  163. package/main/default/objects/pepsico_material_approval/fields/pls_km_files.field.yml +2 -5
  164. package/main/default/objects/pepsico_material_approval/fields/pls_upload_files.field.yml +1 -1
  165. package/main/default/objects/pepsico_material_approval/fields/product_label.field.yml +10 -0
  166. package/main/default/objects/pepsico_material_approval_data/fields/guding_pass.field.yml +9 -1
  167. package/main/default/objects/pepsico_material_data/fields/guding_pass.field.yml +9 -1
  168. package/main/default/objects/picklist_options/fields/ch_changed_at.field.yml +8 -0
  169. package/main/default/objects/picklist_options/picklist_options.object.yml +7 -0
  170. package/main/default/tabs/object_pepsico_ch_material_group_rule.tab.yml +8 -0
  171. package/main/default/tabs/object_pepsico_ch_sync_rule.tab.yml +8 -0
  172. package/main/default/triggers/pepsico_material_approval_tag_label.trigger.yml +80 -0
  173. package/main/default/triggers/pepsico_material_tag_label.trigger.yml +77 -0
  174. package/package.json +1 -1
  175. package/scripts/audit-legacy-tags.js +246 -0
  176. package/scripts/probe-content-hub-tags.js +134 -0
  177. package/main/default/objects/pepsico_material_approval/fields/has_detail_page.field.yml +0 -18
@@ -8,6 +8,8 @@ options:
8
8
  value: 图片
9
9
  - label: 视频
10
10
  value: 视频
11
+ - label: 压缩包
12
+ value: 压缩包
11
13
  required: true
12
14
  sort_no: 200
13
15
  type: select
@@ -0,0 +1,6 @@
1
+ name: pepsico_material_approval
2
+ group: 通用
3
+ label: 素材审批单
4
+ reference_to: pepsico_material_approval
5
+ sort_no: 120
6
+ type: lookup
@@ -0,0 +1,11 @@
1
+ name: push_status
2
+ description: 调用 Content Hub 推送接口的结果
3
+ group: 通用
4
+ label: 推送结果
5
+ options:
6
+ - label: 成功
7
+ value: success
8
+ - label: 失败
9
+ value: failed
10
+ sort_no: 320
11
+ type: select
@@ -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: mov
15
- value: mov
16
- - label: mp4
17
- value: mp4
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,6 @@
1
+ name: active
2
+ defaultValue: true
3
+ group: 通用
4
+ label: 启用
5
+ sort_no: 120
6
+ type: boolean
@@ -0,0 +1,73 @@
1
+ name: classification
2
+ amis:
3
+ type: tree-select
4
+ multiple: true
5
+ enableNodePath: true
6
+ hideRoot: true
7
+ showIcon: false
8
+ initiallyOpen: false
9
+ clearable: true
10
+ onlyLeaf: false
11
+ description: ''
12
+ searchable: true
13
+ label: 分类
14
+ showOutline: false
15
+ unfoldedLevel: 2
16
+ showRadio: false
17
+ hideNodePathLabel: false
18
+ source:
19
+ url: /graphql
20
+ method: post
21
+ requestAdaptor: |-
22
+ api.data = {
23
+ query: `
24
+ query{
25
+ picklists(filters: [["code", "=", "classification"]]){
26
+ options: _related_picklist_options_picklist(filters: [["enable", "=", true]], sort: "sort_no desc"){
27
+ label: name, value, , parent: parent__expand{value}
28
+ }
29
+ }
30
+ }
31
+ `}
32
+ adaptor: |+
33
+ const pOptions = payload.data.picklists[0].options;
34
+ let depth = 0;
35
+ function getChildren(value) {
36
+ depth++;
37
+ // 控制递归次数;
38
+ if (depth > 2000) {
39
+ console.log('递归次数过多,请检查数据:', depth, pOptions)
40
+ return [];
41
+ }
42
+ return _.map(_.filter(pOptions, (op) => {
43
+ if (value == null) {
44
+ return op.parent == null
45
+ }
46
+ return op.parent && op.parent.value === value;
47
+ }), item => {
48
+ return {
49
+ ...item,
50
+ children: getChildren(item.value || item.label)
51
+ };
52
+ });
53
+ }
54
+ const options = getChildren(null);
55
+ return { options }
56
+
57
+ messages: {}
58
+ cache: 86400000
59
+ pathSeparator: '-'
60
+ autoCheckChildren: true
61
+ joinValues: false
62
+ delimiter: ''
63
+ withChildren: true
64
+ cascade: true
65
+ data_type: text
66
+ description: 审批单的分类是所选节点本身或其下级时命中; 不填表示不限分类
67
+ group: 匹配条件
68
+ is_wide: true
69
+ label: 分类
70
+ multiple: true
71
+ required: false
72
+ sort_no: 210
73
+ type: select
@@ -0,0 +1,9 @@
1
+ name: name
2
+ group: 通用
3
+ is_name: true
4
+ is_wide: true
5
+ label: 规则名称
6
+ required: true
7
+ searchable: true
8
+ sort_no: 100
9
+ type: text
@@ -0,0 +1,10 @@
1
+ name: orgs
2
+ description: 审批单的发起人部门是所选部门本身或其下级时命中
3
+ group: 匹配条件
4
+ is_wide: true
5
+ label: 发起人部门
6
+ multiple: true
7
+ reference_to: organizations
8
+ required: true
9
+ sort_no: 200
10
+ type: lookup
@@ -0,0 +1,10 @@
1
+ name: priority
2
+ defaultValue: 100
3
+ description: 数字越小越先匹配; 多条规则都能命中时, 以最先命中的那条为准
4
+ group: 通用
5
+ label: 优先级
6
+ precision: 0
7
+ required: true
8
+ scale: 0
9
+ sort_no: 110
10
+ type: number
@@ -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
@@ -0,0 +1,7 @@
1
+ name: remark
2
+ group: 通用
3
+ is_wide: true
4
+ label: 备注
5
+ rows: 3
6
+ sort_no: 300
7
+ type: textarea
@@ -0,0 +1,20 @@
1
+ name: all
2
+ columns:
3
+ - field: priority
4
+ - field: name
5
+ wrap: true
6
+ - field: orgs
7
+ wrap: true
8
+ - field: classification
9
+ wrap: true
10
+ - field: query_mode
11
+ - field: active
12
+ filter_scope: space
13
+ filters: []
14
+ is_enable: true
15
+ label: 所有
16
+ shared: true
17
+ shared_to: space
18
+ sort:
19
+ - field_name: priority
20
+ order: asc
@@ -0,0 +1,19 @@
1
+ name: pepsico_ch_material_group_rule
2
+ custom: true
3
+ description: 决定填单时「Content Hub 素材组」下拉怎么查。按优先级取第一条命中(发起人部门 + 分类)的启用规则, 按规则上选的查询方式查; 都不命中时按品牌/产品查。
4
+ enable_api: true
5
+ enable_audit: true
6
+ enable_dataloader: true
7
+ enable_enhanced_lookup: true
8
+ enable_inline_edit: true
9
+ enable_lock_detail: true
10
+ enable_workflow: false
11
+ enable_trash: false
12
+ field_groups:
13
+ - group_name: 通用
14
+ - group_name: 匹配条件
15
+ - group_name: 查询方式
16
+ icon: hierarchy
17
+ is_enable: true
18
+ label: Content Hub 素材组查询规则
19
+ version: 2
@@ -0,0 +1,15 @@
1
+ name: pepsico_ch_material_group_rule.admin
2
+ allowCreate: true
3
+ allowCreateFiles: true
4
+ allowDelete: true
5
+ allowDeleteFiles: true
6
+ allowEdit: true
7
+ allowEditFiles: true
8
+ allowRead: true
9
+ allowReadFiles: true
10
+ modifyAllFiles: true
11
+ modifyAllRecords: true
12
+ permission_set_id: admin
13
+ viewAllFiles: true
14
+ viewAllRecords: true
15
+ field_permissions: []
@@ -0,0 +1,14 @@
1
+ name: pepsico_ch_material_group_rule.user
2
+ allowCreate: false
3
+ allowCreateFiles: false
4
+ allowDelete: false
5
+ allowDeleteFiles: false
6
+ allowEdit: false
7
+ allowEditFiles: false
8
+ allowRead: false
9
+ allowReadFiles: false
10
+ modifyAllRecords: false
11
+ permission_set_id: user
12
+ viewAllFiles: false
13
+ viewAllRecords: false
14
+ field_permissions: []
@@ -0,0 +1,6 @@
1
+ name: active
2
+ defaultValue: true
3
+ group: 通用
4
+ label: 启用
5
+ sort_no: 120
6
+ type: boolean
@@ -0,0 +1,73 @@
1
+ name: classification
2
+ amis:
3
+ type: tree-select
4
+ multiple: true
5
+ enableNodePath: true
6
+ hideRoot: true
7
+ showIcon: false
8
+ initiallyOpen: false
9
+ clearable: true
10
+ onlyLeaf: false
11
+ description: ''
12
+ searchable: true
13
+ label: 分类
14
+ showOutline: false
15
+ unfoldedLevel: 2
16
+ showRadio: false
17
+ hideNodePathLabel: false
18
+ source:
19
+ url: /graphql
20
+ method: post
21
+ requestAdaptor: |-
22
+ api.data = {
23
+ query: `
24
+ query{
25
+ picklists(filters: [["code", "=", "classification"]]){
26
+ options: _related_picklist_options_picklist(filters: [["enable", "=", true]], sort: "sort_no desc"){
27
+ label: name, value, , parent: parent__expand{value}
28
+ }
29
+ }
30
+ }
31
+ `}
32
+ adaptor: |+
33
+ const pOptions = payload.data.picklists[0].options;
34
+ let depth = 0;
35
+ function getChildren(value) {
36
+ depth++;
37
+ // 控制递归次数;
38
+ if (depth > 2000) {
39
+ console.log('递归次数过多,请检查数据:', depth, pOptions)
40
+ return [];
41
+ }
42
+ return _.map(_.filter(pOptions, (op) => {
43
+ if (value == null) {
44
+ return op.parent == null
45
+ }
46
+ return op.parent && op.parent.value === value;
47
+ }), item => {
48
+ return {
49
+ ...item,
50
+ children: getChildren(item.value || item.label)
51
+ };
52
+ });
53
+ }
54
+ const options = getChildren(null);
55
+ return { options }
56
+
57
+ messages: {}
58
+ cache: 86400000
59
+ pathSeparator: '-'
60
+ autoCheckChildren: true
61
+ joinValues: false
62
+ delimiter: ''
63
+ withChildren: true
64
+ cascade: true
65
+ data_type: text
66
+ description: 审批单的分类是所选节点本身或其下级时命中; 不填表示不限
67
+ group: 匹配条件
68
+ is_wide: true
69
+ label: 分类
70
+ multiple: true
71
+ required: false
72
+ sort_no: 210
73
+ type: select
@@ -0,0 +1,67 @@
1
+ name: kol_classification
2
+ amis:
3
+ type: tree-select
4
+ multiple: true
5
+ joinValues: false
6
+ enableNodePath: false
7
+ hideRoot: true
8
+ showIcon: true
9
+ initiallyOpen: false
10
+ clearable: true
11
+ onlyLeaf: false
12
+ searchable: true
13
+ label: KOL 分类
14
+ showOutline: false
15
+ unfoldedLevel: 2
16
+ showRadio: false
17
+ hideNodePathLabel: false
18
+ source:
19
+ url: /graphql
20
+ method: post
21
+ requestAdaptor: |-
22
+ api.data = {
23
+ query: `
24
+ query{
25
+ picklists(filters: [["code", "=", "kol_classification"]]){
26
+ options: _related_picklist_options_picklist(filters: [["enable", "=", true]], sort: "sort_no desc"){
27
+ label: name, value, , parent: parent__expand{value}
28
+ }
29
+ }
30
+ }
31
+ `}
32
+ adaptor: |+
33
+ const pOptions = payload.data.picklists[0].options;
34
+ let depth = 0;
35
+ function getChildren(value) {
36
+ depth++;
37
+ // 控制递归次数;
38
+ if (depth > 2000) {
39
+ console.log('递归次数过多,请检查数据:', depth, pOptions)
40
+ return [];
41
+ }
42
+ return _.map(_.filter(pOptions, (op) => {
43
+ if (value == null) {
44
+ return op.parent == null
45
+ }
46
+ return op.parent && op.parent.value === value;
47
+ }), item => {
48
+ return {
49
+ ...item,
50
+ children: getChildren(item.value || item.label)
51
+ };
52
+ });
53
+ }
54
+ const options = getChildren(null);
55
+ return { options }
56
+
57
+ messages: {}
58
+ cache: 86400000
59
+ data_type: text
60
+ description: 审批单的 KOL 分类(粉丝量级)是所选项之一时命中; 不填表示不限
61
+ group: 匹配条件
62
+ is_wide: true
63
+ label: KOL 分类
64
+ multiple: true
65
+ required: false
66
+ sort_no: 230
67
+ type: select
@@ -0,0 +1,9 @@
1
+ name: name
2
+ group: 通用
3
+ is_name: true
4
+ is_wide: true
5
+ label: 规则名称
6
+ required: true
7
+ searchable: true
8
+ sort_no: 100
9
+ type: text
@@ -0,0 +1,11 @@
1
+ name: need_sync
2
+ group: 结果
3
+ label: 是否同步到 Content Hub
4
+ options:
5
+ - label: 同步
6
+ value: sync
7
+ - label: 不同步
8
+ value: not_sync
9
+ required: true
10
+ sort_no: 300
11
+ type: select
@@ -0,0 +1,10 @@
1
+ name: orgs
2
+ description: 审批单的发起人部门是所选部门本身或其下级部门时命中; 不填表示不限
3
+ group: 匹配条件
4
+ is_wide: true
5
+ label: 发起人部门
6
+ multiple: true
7
+ reference_to: organizations
8
+ required: false
9
+ sort_no: 200
10
+ type: lookup
@@ -0,0 +1,10 @@
1
+ name: priority
2
+ defaultValue: 100
3
+ description: 数字越小越先匹配; 多条规则都能命中时, 以最先命中的那条为准
4
+ group: 通用
5
+ label: 优先级
6
+ precision: 0
7
+ required: true
8
+ scale: 0
9
+ sort_no: 110
10
+ type: number
@@ -0,0 +1,65 @@
1
+ name: product
2
+ amis:
3
+ type: tree-select
4
+ label: 品牌/产品
5
+ multiple: true
6
+ clearable: true
7
+ enableNodePath: true
8
+ showIcon: false
9
+ initiallyOpen: false
10
+ source:
11
+ url: /graphql
12
+ method: post
13
+ requestAdaptor: |-
14
+ api.data = { query:`
15
+ query{
16
+ picklists(filters: [["code", "=", "223321001114213"]]){
17
+ options: _related_picklist_options_picklist(filters: [["enable", "=", true]], sort: "sort_no desc"){
18
+ label: name, value, , parent: parent__expand{value}
19
+ }
20
+ }
21
+ }
22
+ `}
23
+ adaptor: |+
24
+ const pOptions = payload.data.picklists[0].options;
25
+ let depth = 0;
26
+ function getChildren(value) {
27
+ depth++;
28
+ // 控制递归次数;
29
+ if (depth > 2000) {
30
+ console.log('递归次数过多,请检查数据:', depth, pOptions)
31
+ return [];
32
+ }
33
+ return _.map(_.filter(pOptions, (op) => {
34
+ if (value == null) {
35
+ return op.parent == null
36
+ }
37
+ return op.parent && op.parent.value === value;
38
+ }), item => {
39
+ return {
40
+ ...item,
41
+ children: getChildren(item.value || item.label)
42
+ };
43
+ });
44
+ }
45
+ const options = getChildren(null);
46
+ return { options }
47
+
48
+ messages: {}
49
+ sendOn: ''
50
+ cache: 86400000
51
+ autoCheckChildren: true
52
+ pathSeparator: '-'
53
+ joinValues: false
54
+ delimiter: ''
55
+ withChildren: true
56
+ cascade: true
57
+ data_type: text
58
+ description: 审批单的品牌/产品是所选节点本身或其下级时命中, 如只选品牌「乐事」即命中乐事下所有产品; 不填表示不限
59
+ group: 匹配条件
60
+ is_wide: true
61
+ label: 品牌/产品
62
+ multiple: true
63
+ required: false
64
+ sort_no: 220
65
+ type: select
@@ -0,0 +1,7 @@
1
+ name: remark
2
+ group: 通用
3
+ is_wide: true
4
+ label: 备注
5
+ rows: 3
6
+ sort_no: 130
7
+ type: textarea
@@ -0,0 +1,12 @@
1
+ name: spot_check
2
+ description: 「抽查核准」匹配靠素材抽查核准后推送的单据(跳过审核的 KOL 尾部等); 「非抽查」匹配确认上线时推送的单据; 不填表示两种都匹配。只影响填单时带出的默认值
3
+ group: 匹配条件
4
+ label: 抽查
5
+ options:
6
+ - label: 抽查核准
7
+ value: approved
8
+ - label: 非抽查
9
+ value: none
10
+ required: false
11
+ sort_no: 250
12
+ type: select
@@ -0,0 +1,24 @@
1
+ name: all
2
+ columns:
3
+ - field: priority
4
+ - field: name
5
+ wrap: true
6
+ - field: need_sync
7
+ - field: orgs
8
+ wrap: true
9
+ - field: classification
10
+ wrap: true
11
+ - field: product
12
+ wrap: true
13
+ - field: kol_classification
14
+ - field: spot_check
15
+ - field: active
16
+ filter_scope: space
17
+ filters: []
18
+ is_enable: true
19
+ label: 所有
20
+ shared: true
21
+ shared_to: space
22
+ sort:
23
+ - field_name: priority
24
+ order: asc
@@ -0,0 +1,19 @@
1
+ name: pepsico_ch_sync_rule
2
+ custom: true
3
+ description: 判断审批单是否需要推送到 Content Hub。按优先级从小到大匹配, 命中的第一条规则决定结果; 没有命中任何规则时不推送。
4
+ enable_api: true
5
+ enable_audit: true
6
+ enable_dataloader: true
7
+ enable_enhanced_lookup: true
8
+ enable_inline_edit: true
9
+ enable_lock_detail: true
10
+ enable_workflow: false
11
+ enable_trash: false
12
+ field_groups:
13
+ - group_name: 通用
14
+ - group_name: 匹配条件
15
+ - group_name: 结果
16
+ icon: approval
17
+ is_enable: true
18
+ label: Content Hub 同步规则
19
+ version: 2
@@ -0,0 +1,15 @@
1
+ name: pepsico_ch_sync_rule.admin
2
+ allowCreate: true
3
+ allowCreateFiles: true
4
+ allowDelete: true
5
+ allowDeleteFiles: true
6
+ allowEdit: true
7
+ allowEditFiles: true
8
+ allowRead: true
9
+ allowReadFiles: true
10
+ modifyAllFiles: true
11
+ modifyAllRecords: true
12
+ permission_set_id: admin
13
+ viewAllFiles: true
14
+ viewAllRecords: true
15
+ field_permissions: []
@@ -0,0 +1,14 @@
1
+ name: pepsico_ch_sync_rule.user
2
+ allowCreate: false
3
+ allowCreateFiles: false
4
+ allowDelete: false
5
+ allowDeleteFiles: false
6
+ allowEdit: false
7
+ allowEditFiles: false
8
+ allowRead: false
9
+ allowReadFiles: false
10
+ modifyAllRecords: false
11
+ permission_set_id: user
12
+ viewAllFiles: false
13
+ viewAllRecords: false
14
+ field_permissions: []