@steedos-labs/content-compliance 1.0.1 → 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.
Files changed (41) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/contentHubFillOnSave.d.ts +5 -0
  3. package/lib/actions/contentHubFillOnSave.js +49 -0
  4. package/lib/actions/contentHubFillOnSave.js.map +1 -0
  5. package/lib/actions/contentHubMaterialGroups.js +19 -35
  6. package/lib/actions/contentHubMaterialGroups.js.map +1 -1
  7. package/lib/actions/contentHubSyncPreview.js +23 -19
  8. package/lib/actions/contentHubSyncPreview.js.map +1 -1
  9. package/lib/actions/index.d.ts +1 -0
  10. package/lib/actions/index.js +1 -0
  11. package/lib/actions/index.js.map +1 -1
  12. package/lib/methods/__tests__/contentHubFormFill.test.d.ts +1 -0
  13. package/lib/methods/__tests__/contentHubFormFill.test.js +274 -0
  14. package/lib/methods/__tests__/contentHubFormFill.test.js.map +1 -0
  15. package/lib/methods/__tests__/contentHubPush.test.js +211 -6
  16. package/lib/methods/__tests__/contentHubPush.test.js.map +1 -1
  17. package/lib/methods/content_hub.js +13 -3
  18. package/lib/methods/content_hub.js.map +1 -1
  19. package/lib/methods/content_hub_form_fill.d.ts +2 -0
  20. package/lib/methods/content_hub_form_fill.js +75 -0
  21. package/lib/methods/content_hub_form_fill.js.map +1 -0
  22. package/lib/methods/content_hub_material_group.d.ts +1 -0
  23. package/lib/methods/content_hub_material_group.js +14 -1
  24. package/lib/methods/content_hub_material_group.js.map +1 -1
  25. package/lib/methods/content_hub_material_group_rule.d.ts +9 -0
  26. package/lib/methods/content_hub_material_group_rule.js +62 -1
  27. package/lib/methods/content_hub_material_group_rule.js.map +1 -1
  28. package/lib/methods/content_hub_sync_rule.d.ts +4 -0
  29. package/lib/methods/content_hub_sync_rule.js +29 -1
  30. package/lib/methods/content_hub_sync_rule.js.map +1 -1
  31. package/lib/methods/content_hub_uploader.d.ts +24 -0
  32. package/lib/methods/content_hub_uploader.js +281 -0
  33. package/lib/methods/content_hub_uploader.js.map +1 -0
  34. package/main/default/objects/pepsico_material_approval/fields/ch_material_group.field.yml +5 -12
  35. package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml +5 -3
  36. package/main/default/objects/pepsico_material_approval/fields/ch_sync_enabled.field.yml +10 -0
  37. package/main/default/objects/pepsico_material_approval/fields/ch_sync_manual.field.yml +12 -0
  38. package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +4 -12
  39. package/main/default/objects/pepsico_material_approval/fields/ch_uploader_notified_group.field.yml +11 -0
  40. package/main/default/triggers/pepsico_material_approval_content_hub.trigger.yml +26 -0
  41. package/package.json +1 -1
@@ -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
- const pick = (v) => _.isPlainObject(v) ? (v.value || v._id) : v;
36
- const str = (v) => { const raw = pick(v); return _.isArray(raw) ? _.map(raw, pick).join(',') : (raw || ''); };
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'
@@ -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,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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-labs/content-compliance",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "内容审核系统",
5
5
  "main": "package.service.js",
6
6
  "scripts": {