@steedos-labs/content-compliance 0.8.8 → 0.8.10
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/bypassApproval.js +18 -0
- package/lib/actions/bypassApproval.js.map +1 -1
- package/lib/actions/bypassMaterial.js +12 -0
- package/lib/actions/bypassMaterial.js.map +1 -1
- package/lib/index.js +153 -0
- package/lib/index.js.map +1 -1
- package/lib/methods/AI.d.ts +6 -0
- package/lib/methods/AI.js +116 -15
- package/lib/methods/AI.js.map +1 -1
- package/lib/methods/__tests__/plsReview.test.d.ts +1 -0
- package/lib/methods/__tests__/plsReview.test.js +736 -0
- package/lib/methods/__tests__/plsReview.test.js.map +1 -0
- package/lib/methods/__tests__/postponeReview.test.js +21 -0
- package/lib/methods/__tests__/postponeReview.test.js.map +1 -1
- package/lib/methods/__tests__/qcParallelReview.test.d.ts +1 -0
- package/lib/methods/__tests__/qcParallelReview.test.js +53 -0
- package/lib/methods/__tests__/qcParallelReview.test.js.map +1 -0
- package/lib/methods/__tests__/qcPreReview.test.d.ts +1 -0
- package/lib/methods/__tests__/qcPreReview.test.js +65 -0
- package/lib/methods/__tests__/qcPreReview.test.js.map +1 -0
- package/lib/methods/approval_engine.d.ts +4 -0
- package/lib/methods/approval_engine.js +388 -221
- package/lib/methods/approval_engine.js.map +1 -1
- package/lib/methods/consts.d.ts +35 -0
- package/lib/methods/consts.js +2 -0
- package/lib/methods/consts.js.map +1 -1
- package/lib/methods/material.js +13 -0
- package/lib/methods/material.js.map +1 -1
- package/lib/methods/pls.d.ts +37 -0
- package/lib/methods/pls.js +480 -130
- package/lib/methods/pls.js.map +1 -1
- package/lib/pages/__tests__/aiReviewCardStyles.test.d.ts +1 -0
- package/lib/pages/__tests__/aiReviewCardStyles.test.js +36 -0
- package/lib/pages/__tests__/aiReviewCardStyles.test.js.map +1 -0
- package/lib/pages/__tests__/aiReviewChineseColons.test.d.ts +1 -0
- package/lib/pages/__tests__/aiReviewChineseColons.test.js +132 -0
- package/lib/pages/__tests__/aiReviewChineseColons.test.js.map +1 -0
- package/lib/pages/__tests__/clientCssCacheVersion.test.d.ts +1 -0
- package/lib/pages/__tests__/clientCssCacheVersion.test.js +31 -0
- package/lib/pages/__tests__/clientCssCacheVersion.test.js.map +1 -0
- package/lib/pages/__tests__/materialDetailAIReviewFilter.test.d.ts +1 -0
- package/lib/pages/__tests__/materialDetailAIReviewFilter.test.js +51 -0
- package/lib/pages/__tests__/materialDetailAIReviewFilter.test.js.map +1 -0
- package/lib/pages/__tests__/plsReviewCardStyles.test.d.ts +1 -0
- package/lib/pages/__tests__/plsReviewCardStyles.test.js +98 -0
- package/lib/pages/__tests__/plsReviewCardStyles.test.js.map +1 -0
- package/lib/pages/__tests__/plsReviewPage.test.d.ts +1 -0
- package/lib/pages/__tests__/plsReviewPage.test.js +338 -0
- package/lib/pages/__tests__/plsReviewPage.test.js.map +1 -0
- package/main/default/applications/pepsico_content_setting.app.yml +4 -0
- package/main/default/client/pepsico_content.client.js +8 -3
- package/main/default/objects/ai_process_detail/ai_process_detail.object.yml +1 -0
- package/main/default/objects/ai_process_detail/fields/pls_extracted_data.field.yml +9 -0
- package/main/default/objects/ai_process_detail/fields/pls_file_ids.field.yml +9 -0
- package/main/default/objects/ai_process_detail/fields/pls_product_name_matched.field.yml +9 -0
- package/main/default/objects/ai_process_detail/fields/pls_rule_unique_matched.field.yml +9 -0
- package/main/default/objects/pepesio_ch__c/fields/company_id.field.yml +14 -0
- package/main/default/objects/pepesio_ch__c/fields/company_ids.field.yml +16 -0
- package/main/default/objects/pepesio_ch__c/fields/created.field.yml +10 -0
- package/main/default/objects/pepesio_ch__c/fields/created_by.field.yml +9 -0
- package/main/default/objects/pepesio_ch__c/fields/file_name.field.yml +8 -0
- package/main/default/objects/pepesio_ch__c/fields/instance_state.field.yml +25 -0
- package/main/default/objects/pepesio_ch__c/fields/locked.field.yml +12 -0
- package/main/default/objects/pepesio_ch__c/fields/material_type.field.yml +10 -0
- package/main/default/objects/pepesio_ch__c/fields/media_type.field.yml +13 -0
- package/main/default/objects/pepesio_ch__c/fields/modified.field.yml +10 -0
- package/main/default/objects/pepesio_ch__c/fields/modified_by.field.yml +9 -0
- package/main/default/objects/pepesio_ch__c/fields/name.field.yml +11 -0
- package/main/default/objects/pepesio_ch__c/fields/owner.field.yml +12 -0
- package/main/default/objects/pepesio_ch__c/fields/product.field.yml +10 -0
- package/main/default/objects/pepesio_ch__c/fields/time.field.yml +8 -0
- package/main/default/objects/pepesio_ch__c/fields/type.field.yml +22 -0
- package/main/default/objects/pepesio_ch__c/listviews/all.listview.yml +21 -0
- package/main/default/objects/pepesio_ch__c/listviews/recent.listview.yml +11 -0
- package/main/default/objects/pepesio_ch__c/pepesio_ch__c.object.yml +31 -0
- package/main/default/objects/pepesio_ch__c/permissions/admin.permission.yml +9 -0
- package/main/default/objects/pepesio_ch__c/permissions/user.permission.yml +9 -0
- package/main/default/objects/pepsico_ai_review/buttons/pepsico_adopt.button.yml +15 -3
- package/main/default/objects/pepsico_ai_review/fields/is_active.field.yml +7 -0
- package/main/default/objects/pepsico_ai_review/fields/pepsico_material_approval.field.yml +7 -0
- package/main/default/objects/pepsico_ai_review/fields/pls_file.field.yml +7 -0
- package/main/default/objects/pepsico_ai_review/fields/review_type.field.yml +12 -0
- package/main/default/objects/pepsico_approval_process/fields/type.field.yml +5 -1
- package/main/default/objects/pepsico_km_pls/fields/allergen_statement.field.yml +9 -0
- package/main/default/objects/pepsico_km_pls/fields/ingredient_list.field.yml +9 -0
- package/main/default/objects/pepsico_km_pls/listviews/all.listview.yml +6 -0
- package/main/default/objects/pepsico_km_pls_file/listviews/lookup.listview.yml +19 -0
- package/main/default/objects/pepsico_km_pls_file/permissions/user.permission.yml +2 -2
- package/main/default/objects/pepsico_material/fields/pre_qc_approval_status.field.yml +16 -0
- package/main/default/objects/pepsico_material/fields/qc_approval_status.field.yml +16 -0
- package/main/default/objects/pepsico_material/fields/qc_bypass_reason.field.yml +11 -0
- package/main/default/objects/pepsico_material/fields/qc_bypassed.field.yml +12 -0
- package/main/default/objects/pepsico_material/fields/qc_bypassed_at.field.yml +11 -0
- package/main/default/objects/pepsico_material/fields/qc_bypassed_by.field.yml +12 -0
- package/main/default/objects/pepsico_material/listviews/all.listview.yml +1 -0
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_modify_pls.button.yml +70 -0
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_postpone_review.button.yml +62 -37
- package/main/default/objects/pepsico_material_approval/buttons/pre_review_approve.button.yml +1 -1
- package/main/default/objects/pepsico_material_approval/buttons/pre_review_reject.button.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/approved_flows.field.yml +2 -2
- package/main/default/objects/pepsico_material_approval/fields/assistance.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/ca_assistance.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/classification.field.yml +15 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_food_name.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_ingredients.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_net_content.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_address.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_name.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_shelf_life.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_standard_code.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_check_storage_condition.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_has_detail_page.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_producers.$.field.yml +5 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_producers.$.producer_address.field.yml +7 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_producers.$.producer_name.field.yml +7 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_producers.field.yml +16 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_qc_production_email.field.yml +16 -0
- package/main/default/objects/pepsico_material_approval/fields/ec_related_approval.field.yml +9 -0
- package/main/default/objects/pepsico_material_approval/fields/form_version.field.yml +10 -0
- package/main/default/objects/pepsico_material_approval/fields/handler_preca.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/handler_preguding.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/handler_prens.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/handler_preqc.field.yml +22 -0
- package/main/default/objects/pepsico_material_approval/fields/handler_presra.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/handler_qc.field.yml +20 -0
- package/main/default/objects/pepsico_material_approval/fields/has_nutrition_table.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/legal_assistance.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/ns_assistance.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/pls_file.field.yml +2 -2
- package/main/default/objects/pepsico_material_approval/fields/pls_km_files.field.yml +28 -0
- package/main/default/objects/pepsico_material_approval/fields/pls_upload_files.field.yml +21 -0
- package/main/default/objects/pepsico_material_approval/fields/pre_ca_reviewer.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/pre_ns_reviewer.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/pre_qc_approval_status.field.yml +17 -0
- package/main/default/objects/pepsico_material_approval/fields/pre_qc_materials_quantity.field.yml +21 -0
- package/main/default/objects/pepsico_material_approval/fields/pre_qc_reviewer.field.yml +19 -0
- package/main/default/objects/pepsico_material_approval/fields/pre_reviewer.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/pre_sra_reviewer.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/fields/product.field.yml +15 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_approval_status.field.yml +18 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_assistance.field.yml +22 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_bypass_reason.field.yml +8 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_bypassed.field.yml +12 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_bypassed_at.field.yml +8 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_bypassed_by.field.yml +8 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_materials_quantity.field.yml +21 -0
- package/main/default/objects/pepsico_material_approval/fields/qc_reviewer.field.yml +22 -0
- package/main/default/objects/pepsico_material_approval/fields/sra_assistance.field.yml +1 -1
- package/main/default/objects/pepsico_material_approval/listviews/all.listview.yml +2 -0
- package/main/default/objects/pepsico_material_approval/pepsico_material_approval.object.yml +4 -0
- package/main/default/objects/pepsico_pls_change_log/fields/after_pls_files.field.yml +9 -0
- package/main/default/objects/pepsico_pls_change_log/fields/after_pls_names.field.yml +7 -0
- package/main/default/objects/pepsico_pls_change_log/fields/approval.field.yml +7 -0
- package/main/default/objects/pepsico_pls_change_log/fields/approval_name.field.yml +6 -0
- package/main/default/objects/pepsico_pls_change_log/fields/before_pls_files.field.yml +9 -0
- package/main/default/objects/pepsico_pls_change_log/fields/before_pls_names.field.yml +7 -0
- package/main/default/objects/pepsico_pls_change_log/fields/material.field.yml +8 -0
- package/main/default/objects/pepsico_pls_change_log/fields/operator.field.yml +7 -0
- package/main/default/objects/pepsico_pls_change_log/fields/scene.field.yml +13 -0
- package/main/default/objects/pepsico_pls_change_log/fields/source.field.yml +14 -0
- package/main/default/objects/pepsico_pls_change_log/fields/space.field.yml +6 -0
- package/main/default/objects/pepsico_pls_change_log/listviews/all.listview.yml +25 -0
- package/main/default/objects/pepsico_pls_change_log/pepsico_pls_change_log.object.yml +16 -0
- package/main/default/objects/pepsico_pls_change_log/permissions/admin.permission.yml +15 -0
- package/main/default/objects/pepsico_pls_change_log/permissions/user.permission.yml +14 -0
- package/main/default/objects/pepsico_review_postpone/fields/department_type.field.yml +4 -0
- package/main/default/objects/pepsico_reviewer/fields/pre_qc_reviewer.field.yml +10 -0
- package/main/default/objects/pepsico_reviewer/fields/qc_assistance.field.yml +14 -0
- package/main/default/objects/pepsico_reviewer/fields/qc_reviewer.field.yml +12 -0
- package/main/default/objects/pepsico_reviewer/listviews/all.listview.yml +4 -0
- package/main/default/pages/pepsico_content_review_detail.page.amis.json +19 -1
- package/main/default/pages/pepsico_material_detail.page.amis.json +698 -52
- package/main/default/pages/pepsico_material_detail_mobile.page.amis.json +332 -8
- package/main/default/tabs/object_pepsico_pls_change_log.tab.yml +14 -0
- package/main/default/triggers/pepsico_material_approval_change.trigger.yml +3 -0
- package/package.json +1 -1
- package/public/content-review/amis.css +344 -9
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var fs = require("node:fs");
|
|
5
|
+
var path = require("node:path");
|
|
6
|
+
var pageDirectory = path.resolve(__dirname, '../../../main/default/pages');
|
|
7
|
+
var loadPage = function (name) { return JSON.parse(fs.readFileSync(path.join(pageDirectory, name), 'utf8')); };
|
|
8
|
+
var loadAmisButton = function (relativePath) {
|
|
9
|
+
var e_1, _a;
|
|
10
|
+
var source = fs.readFileSync(path.resolve(pageDirectory, '..', 'objects', relativePath), 'utf8');
|
|
11
|
+
var schemaLines = [];
|
|
12
|
+
try {
|
|
13
|
+
for (var _b = tslib_1.__values(source.slice(source.indexOf('amis_schema: |-') + 'amis_schema: |-'.length).split('\n').slice(1)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
14
|
+
var line = _c.value;
|
|
15
|
+
if (line && !line.startsWith(' ')) {
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
schemaLines.push(line.slice(2));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
22
|
+
finally {
|
|
23
|
+
try {
|
|
24
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
25
|
+
}
|
|
26
|
+
finally { if (e_1) throw e_1.error; }
|
|
27
|
+
}
|
|
28
|
+
return JSON.parse(schemaLines.join('\n'));
|
|
29
|
+
};
|
|
30
|
+
var collect = function (node, predicate, result) {
|
|
31
|
+
if (result === void 0) { result = []; }
|
|
32
|
+
if (Array.isArray(node)) {
|
|
33
|
+
node.forEach(function (item) { return collect(item, predicate, result); });
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
if (!node || typeof node !== 'object') {
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
var schema = node;
|
|
40
|
+
if (predicate(schema)) {
|
|
41
|
+
result.push(schema);
|
|
42
|
+
}
|
|
43
|
+
Object.values(schema).forEach(function (value) { return collect(value, predicate, result); });
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
var pages = [
|
|
47
|
+
loadPage('pepsico_material_detail.page.amis.json'),
|
|
48
|
+
loadPage('pepsico_material_detail_mobile.page.amis.json')
|
|
49
|
+
];
|
|
50
|
+
var contentReviewCss = fs.readFileSync(path.resolve(pageDirectory, '../../../public/content-review/amis.css'), 'utf8');
|
|
51
|
+
var services = pages.flatMap(function (page) { return collect(page, function (schema) { return schema.type === 'service'
|
|
52
|
+
&& schema.api === '/api/pepsico-content/pls-review/material/${recordId}'; }); });
|
|
53
|
+
var permissionServices = pages.flatMap(function (page) { return collect(page, function (schema) { return schema.type === 'service'
|
|
54
|
+
&& schema.api === '/api/pepsico-content/review-permissions/material/${recordId}'; }); });
|
|
55
|
+
var tabsSchemas = pages.flatMap(function (page) { return collect(page, function (schema) { return schema.type === 'tabs'; }); });
|
|
56
|
+
var findOne = function (node, predicate) {
|
|
57
|
+
var matches = collect(node, predicate);
|
|
58
|
+
expect(matches).toHaveLength(1);
|
|
59
|
+
return matches[0];
|
|
60
|
+
};
|
|
61
|
+
describe('PLS review page schema', function () {
|
|
62
|
+
it('preserves the full-height layout through the review permissions service', function () {
|
|
63
|
+
expect(permissionServices).toHaveLength(3);
|
|
64
|
+
permissionServices.forEach(function (service) {
|
|
65
|
+
expect(String(service.className || '').split(/\s+/)).toContain('h-full');
|
|
66
|
+
expect(findOne(service.body, function (schema) { return schema.type === 'tabs'; })).toBeTruthy();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
it('keeps the existing comments room configuration independent from review permissions', function () {
|
|
70
|
+
var roomProviders = pages.flatMap(function (page) { return collect(page, function (schema) { return schema.type === 'rooms-provider'; }); });
|
|
71
|
+
expect(roomProviders).toHaveLength(2);
|
|
72
|
+
roomProviders.forEach(function (provider) {
|
|
73
|
+
expect(provider.baseUrl).toBe('${context.rootUrl}');
|
|
74
|
+
var comments = findOne(provider.body, function (schema) { return schema.type === 'rooms-comments'; });
|
|
75
|
+
expect(comments.roomId).toBe('objects:pepsico_material:${recordId}');
|
|
76
|
+
expect(comments.visibleOn).toBeUndefined();
|
|
77
|
+
expect(comments.hiddenOn).toBeUndefined();
|
|
78
|
+
expect(comments.disabledOn).toBeUndefined();
|
|
79
|
+
expect(JSON.stringify(provider)).not.toMatch(/canAdopt|hasPLSFile/);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it('shows PLS tabs only when the approval has a PLS lookup value', function () {
|
|
83
|
+
expect(tabsSchemas).toHaveLength(3);
|
|
84
|
+
expect(permissionServices).toHaveLength(3);
|
|
85
|
+
permissionServices.forEach(function (service) {
|
|
86
|
+
var tabs = findOne(service.body, function (schema) { return schema.type === 'tabs'; });
|
|
87
|
+
var plsTab = findOne(tabs.tabs, function (schema) { return schema.title === 'PLS意见'; });
|
|
88
|
+
expect(plsTab.visibleOn).toBe('${hasPLSFile}');
|
|
89
|
+
expect(collect(tabs, function (schema) {
|
|
90
|
+
return schema.type === 'service'
|
|
91
|
+
&& schema.api === '/api/pepsico-content/review-permissions/material/${recordId}';
|
|
92
|
+
})).toHaveLength(0);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('keeps all three PLS tabs grouped by file and review', function () {
|
|
96
|
+
expect(services).toHaveLength(3);
|
|
97
|
+
services.forEach(function (service) {
|
|
98
|
+
var groupEach = findOne(service.body, function (schema) {
|
|
99
|
+
return schema.type === 'each' && schema.source === '${groups}';
|
|
100
|
+
});
|
|
101
|
+
expect(collect(groupEach.items, function (schema) {
|
|
102
|
+
return schema.type === 'cards' && schema.source === '${reviews}';
|
|
103
|
+
})).toHaveLength(1);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
it('opens each PLS file in a right-side read-only drawer', function () {
|
|
107
|
+
services.forEach(function (service) {
|
|
108
|
+
var header = findOne(service.body, function (schema) {
|
|
109
|
+
return schema.className === 'pepsico-pls-review-group-header';
|
|
110
|
+
});
|
|
111
|
+
var fileButton = findOne(header, function (schema) {
|
|
112
|
+
return schema.className === 'pepsico-pls-review-file-button';
|
|
113
|
+
});
|
|
114
|
+
expect(fileButton.type).toBe('button');
|
|
115
|
+
expect(fileButton.label).toBe('${plsName}');
|
|
116
|
+
expect(fileButton.level).toBe('link');
|
|
117
|
+
expect(fileButton.actionType).toBe('drawer');
|
|
118
|
+
expect(fileButton.drawer.position).toBe('right');
|
|
119
|
+
expect(fileButton.drawer.closeOnOutside).toBe(true);
|
|
120
|
+
expect(fileButton.drawer.actions).toEqual([]);
|
|
121
|
+
var plsForm = findOne(fileButton.drawer.body, function (schema) {
|
|
122
|
+
return schema.type === 'steedos-object-form';
|
|
123
|
+
});
|
|
124
|
+
expect(plsForm.objectApiName).toBe('pepsico_km_pls_file');
|
|
125
|
+
expect(plsForm.recordId).toBe('${plsFileId}');
|
|
126
|
+
expect(plsForm.mode).toBe('read');
|
|
127
|
+
expect(collect(header, function (schema) {
|
|
128
|
+
return typeof schema.tpl === 'string' && schema.tpl.includes('PLS 文件:');
|
|
129
|
+
})).toHaveLength(0);
|
|
130
|
+
var modifyButton = findOne(header, function (schema) { return schema.label === '修改PLS文件'; });
|
|
131
|
+
expect(modifyButton.visibleOn).toBe('${canManage}');
|
|
132
|
+
expect(modifyButton.actionType).toBe('dialog');
|
|
133
|
+
expect(modifyButton.level).toBe('default');
|
|
134
|
+
expect(modifyButton.size).toBeUndefined();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
it('uses the AI Cards structure for grouped PLS reviews', function () {
|
|
138
|
+
services.forEach(function (service) {
|
|
139
|
+
var cards = findOne(service.body, function (schema) {
|
|
140
|
+
return schema.type === 'cards' && schema.source === '${reviews}';
|
|
141
|
+
});
|
|
142
|
+
expect(cards.className).toContain('pepsico_ai_review-card');
|
|
143
|
+
expect(cards.className).toContain('pepsico-pls-review-cards');
|
|
144
|
+
expect(cards.columnsCount).toBe(1);
|
|
145
|
+
expect(cards.card.media).toEqual({
|
|
146
|
+
type: 'image',
|
|
147
|
+
url: '${evidence_image}',
|
|
148
|
+
position: 'left'
|
|
149
|
+
});
|
|
150
|
+
expect(cards.card.bodyClassName).toBe('pepsico_ai_review-card-body');
|
|
151
|
+
var templates = collect(cards.card, function (schema) { return typeof schema.tpl === 'string'; })
|
|
152
|
+
.map(function (schema) { return schema.tpl; });
|
|
153
|
+
expect(templates).toEqual(expect.arrayContaining([
|
|
154
|
+
'<b>素材内容:</b>${name}',
|
|
155
|
+
'<b>提醒类型:</b>${rule_category}',
|
|
156
|
+
'<b>提醒原因:</b>${reason}'
|
|
157
|
+
]));
|
|
158
|
+
expect(templates.some(function (tpl) { return tpl.includes('规则原文'); })).toBe(false);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
it('opens a native two-step wizard with the approved copy and APIs', function () {
|
|
162
|
+
services.forEach(function (service) {
|
|
163
|
+
var modifyButton = findOne(service.body, function (schema) { return schema.label === '修改PLS文件'; });
|
|
164
|
+
expect(modifyButton.dialog.title).toBe('');
|
|
165
|
+
expect(modifyButton.dialog.showCloseButton).toBe(true);
|
|
166
|
+
var wizard = findOne(modifyButton.dialog.body, function (schema) { return schema.type === 'wizard'; });
|
|
167
|
+
expect(wizard.className).toContain('pepsico-pls-review-wizard');
|
|
168
|
+
expect(wizard.mode).toBe('horizontal');
|
|
169
|
+
expect(wizard.steps).toHaveLength(2);
|
|
170
|
+
expect(wizard.steps.map(function (step) { return step.title; })).toEqual([
|
|
171
|
+
'选择或上传 PLS文件',
|
|
172
|
+
'确认应用新PLS文件规则'
|
|
173
|
+
]);
|
|
174
|
+
expect(wizard.actionNextLabel).toBe('下一步');
|
|
175
|
+
expect(wizard.actionNextSaveLabel).toBe('下一步');
|
|
176
|
+
expect(wizard.actionFinishLabel).toBe('应用新的PLS文件重新审核');
|
|
177
|
+
expect(wizard.steps[0].api.url).toBe('/api/pepsico-content/pls-file/upload');
|
|
178
|
+
expect(wizard.steps[1].api.url).toBe('/api/pepsico-content/pls-review/apply-source');
|
|
179
|
+
expect(wizard.steps[0].api.sendOn).toContain('!newPlsFileId');
|
|
180
|
+
expect(wizard.steps[0].api.sendOn).toContain('newPlsUploadedFileId');
|
|
181
|
+
expect(wizard.steps[0].api.sendOn).toContain('uploadedPlsFile[0]');
|
|
182
|
+
expect(wizard.steps[0].api.adaptor).toContain('newPlsUploadedFileId');
|
|
183
|
+
expect(wizard.steps[0].api.adaptor).toContain('payload.error');
|
|
184
|
+
expect(wizard.steps[0].api.requestAdaptor).toContain('approvalId: context.approvalId');
|
|
185
|
+
expect(wizard.steps[1].api.adaptor).toContain('payload.error');
|
|
186
|
+
expect(wizard.steps[1].api.requestAdaptor).toContain("throw new Error('请选择或上传PLS文件')");
|
|
187
|
+
expect(wizard.steps[1].api.requestAdaptor).toContain('materialId: context.materialId');
|
|
188
|
+
expect(wizard.steps[1].api.adaptor).toContain('请稍后刷新页面进行确认');
|
|
189
|
+
expect(wizard.steps[1].api.requestAdaptor).toContain('sourceMode: context.plsSourceMode');
|
|
190
|
+
var schemas = collect(wizard, function () { return true; });
|
|
191
|
+
var existingPlsSelect = findOne(wizard, function (schema) {
|
|
192
|
+
return schema.type === 'steedos-field' && schema.name === 'selectedPlsFile';
|
|
193
|
+
});
|
|
194
|
+
expect(existingPlsSelect.type).toBe('steedos-field');
|
|
195
|
+
expect(existingPlsSelect.className).toBe('pepsico-pls-source-field');
|
|
196
|
+
expect(existingPlsSelect.source).toBeUndefined();
|
|
197
|
+
expect(existingPlsSelect.config).toMatchObject({
|
|
198
|
+
type: 'lookup',
|
|
199
|
+
name: 'selectedPlsFile',
|
|
200
|
+
reference_to: 'pepsico_km_pls_file',
|
|
201
|
+
enable_enhanced_lookup: true,
|
|
202
|
+
filters: [['is_active', '!=', false]],
|
|
203
|
+
amis: {
|
|
204
|
+
joinValues: false,
|
|
205
|
+
extractValue: false
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
var uploadedPlsInput = findOne(wizard, function (schema) {
|
|
209
|
+
return schema.type === 'input-file' && schema.label === '上传本地PLS文件';
|
|
210
|
+
});
|
|
211
|
+
expect(uploadedPlsInput.className).toBe('pepsico-pls-source-field');
|
|
212
|
+
expect(schemas.some(function (schema) { return schema.tpl === '<b>当前PLS文件:</b>${plsName}'; })).toBe(true);
|
|
213
|
+
expect(schemas.some(function (schema) {
|
|
214
|
+
return schema.tpl === '<b>新的PLS文件:</b>${plsSourceMode === "existing" ? (selectedPlsFile.name || selectedPlsFile.label || selectedPlsFile) : newPlsFileName}';
|
|
215
|
+
})).toBe(true);
|
|
216
|
+
expect(schemas.some(function (schema) {
|
|
217
|
+
return schema.body === '应用后,当前 PLS 文件关联的意见将失效,并按新的PLS文件规则重新生成对应意见。';
|
|
218
|
+
})).toBe(true);
|
|
219
|
+
expect(collect(wizard.steps[1].body, function (schema) {
|
|
220
|
+
return schema.className === 'pepsico-pls-source-summary';
|
|
221
|
+
})).toHaveLength(2);
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
it('uses the compact dialog and the exact AI adoption workflow', function () {
|
|
225
|
+
var aiAdoptButton = findOne(pages[0], function (schema) { return schema.id === 'u:pepsico_adopt'; });
|
|
226
|
+
var aiThreadAction = findOne(aiAdoptButton.onEvent.click.actions, function (schema) {
|
|
227
|
+
return schema.outputVar === 'responseResult';
|
|
228
|
+
});
|
|
229
|
+
expect(aiThreadAction.api.requestAdaptor).toContain('filter(Boolean)');
|
|
230
|
+
expect(aiThreadAction.api.requestAdaptor).toContain("typeof file === 'string'");
|
|
231
|
+
expect(aiThreadAction.api.requestAdaptor).toContain('file.value || file._id');
|
|
232
|
+
expect(aiThreadAction.api.requestAdaptor).not.toContain('evidence_image_file.length ?');
|
|
233
|
+
var adoptionButtons = pages.flatMap(function (page) { return collect(page, function (schema) {
|
|
234
|
+
return schema.label === '采纳' && schema.confirmText === aiAdoptButton.confirmText;
|
|
235
|
+
}); });
|
|
236
|
+
var expectCommentToast = function (button) {
|
|
237
|
+
var actions = button.onEvent.click.actions;
|
|
238
|
+
var commentIndex = actions.findIndex(function (action) {
|
|
239
|
+
var _a, _b;
|
|
240
|
+
return action.actionType === 'ajax'
|
|
241
|
+
&& ((_b = (_a = action.api) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.includes('/threads'));
|
|
242
|
+
});
|
|
243
|
+
expect(commentIndex).toBeGreaterThanOrEqual(0);
|
|
244
|
+
expect(actions[commentIndex].ignoreError).toBe(false);
|
|
245
|
+
expect(actions[commentIndex + 1]).toMatchObject({
|
|
246
|
+
ignoreError: false,
|
|
247
|
+
actionType: 'toast',
|
|
248
|
+
args: {
|
|
249
|
+
msgType: 'success',
|
|
250
|
+
position: 'top-right',
|
|
251
|
+
msg: '意见已采纳到评论区,请确认'
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
};
|
|
255
|
+
expect(adoptionButtons).toHaveLength(5);
|
|
256
|
+
adoptionButtons.forEach(function (button) {
|
|
257
|
+
expect(button.visibleOn).toBe('${canAdopt}');
|
|
258
|
+
var threadAction = findOne(button.onEvent.click.actions, function (schema) {
|
|
259
|
+
return schema.outputVar === 'responseResult';
|
|
260
|
+
});
|
|
261
|
+
expect(threadAction.api.requestAdaptor).toBe(aiThreadAction.api.requestAdaptor);
|
|
262
|
+
expectCommentToast(button);
|
|
263
|
+
});
|
|
264
|
+
var executeAdaptor = function (requestAdaptor, context) {
|
|
265
|
+
return new Function('api', 'context', 'Amis', requestAdaptor)({}, context, { uuidv4: function () { return 'generated-id'; } });
|
|
266
|
+
};
|
|
267
|
+
var mixedAttachments = [
|
|
268
|
+
{ value: null },
|
|
269
|
+
null,
|
|
270
|
+
{},
|
|
271
|
+
{ value: 'valid-value' },
|
|
272
|
+
{ _id: 'valid-id' },
|
|
273
|
+
'valid-string'
|
|
274
|
+
];
|
|
275
|
+
expect(executeAdaptor(aiThreadAction.api.requestAdaptor, {
|
|
276
|
+
evidence_image_file: mixedAttachments
|
|
277
|
+
}).data.comment.attachmentIds).toEqual(['valid-value', 'valid-id', 'valid-string']);
|
|
278
|
+
var objectAdoptButton = findOne(loadAmisButton('pepsico_ai_review/buttons/pepsico_adopt.button.yml'), function (schema) { return schema.id === 'u:pepsico_adopt'; });
|
|
279
|
+
var objectThreadAction = findOne(objectAdoptButton.onEvent.click.actions, function (schema) {
|
|
280
|
+
return schema.outputVar === 'responseResult';
|
|
281
|
+
});
|
|
282
|
+
expect(objectAdoptButton.visibleOn).toBe('${canAdopt}');
|
|
283
|
+
expectCommentToast(objectAdoptButton);
|
|
284
|
+
expect(executeAdaptor(objectThreadAction.api.requestAdaptor, {
|
|
285
|
+
record: { _display: { evidence_image_file: mixedAttachments } }
|
|
286
|
+
}).data.comment.attachmentIds).toEqual(['valid-value', 'valid-id', 'valid-string']);
|
|
287
|
+
expect(permissionServices).toHaveLength(3);
|
|
288
|
+
permissionServices.forEach(function (service) {
|
|
289
|
+
expect(collect(service.body, function (schema) {
|
|
290
|
+
return schema.type === 'steedos-object-related-listview'
|
|
291
|
+
&& schema.relatedObjectApiName === 'pepsico_ai_review';
|
|
292
|
+
})).toHaveLength(1);
|
|
293
|
+
});
|
|
294
|
+
services.forEach(function (service) {
|
|
295
|
+
var modifyButton = findOne(service.body, function (schema) { return schema.label === '修改PLS文件'; });
|
|
296
|
+
expect(modifyButton.dialog.size).toBe('md');
|
|
297
|
+
expect(modifyButton.dialog.className).toContain('pepsico-pls-review-dialog');
|
|
298
|
+
var adoptButton = findOne(service.body, function (schema) {
|
|
299
|
+
return schema.label === '采纳' && schema.className === 'pepsico-adopt mr-4';
|
|
300
|
+
});
|
|
301
|
+
expect(adoptButton.confirmText).toBe(aiAdoptButton.confirmText);
|
|
302
|
+
expect(adoptButton.onEvent).toEqual(aiAdoptButton.onEvent);
|
|
303
|
+
expect(adoptButton.actionType).toBeUndefined();
|
|
304
|
+
expect(adoptButton.api).toBeUndefined();
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
it('removes the old always-visible source controls', function () {
|
|
308
|
+
services.forEach(function (service) {
|
|
309
|
+
expect(collect(service.body, function (schema) {
|
|
310
|
+
return typeof schema.className === 'string'
|
|
311
|
+
&& schema.className.includes('pepsico-pls-review-actions');
|
|
312
|
+
})).toHaveLength(0);
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
it('expands AI opinions only when the desktop comments panel is absent', function () {
|
|
316
|
+
var noCommentsGrid = findOne(pages[0], function (schema) {
|
|
317
|
+
return schema.type === 'grid'
|
|
318
|
+
&& typeof schema.visibleOn === 'string'
|
|
319
|
+
&& schema.visibleOn.includes('created_by === context.userId');
|
|
320
|
+
});
|
|
321
|
+
var commentsGrid = findOne(pages[0], function (schema) {
|
|
322
|
+
return schema.type === 'grid'
|
|
323
|
+
&& collect(schema, function (child) {
|
|
324
|
+
return typeof child.className === 'string'
|
|
325
|
+
&& child.className.includes('material-detail-comments-panel');
|
|
326
|
+
}).length === 1;
|
|
327
|
+
});
|
|
328
|
+
expect(noCommentsGrid.className).toContain('material-detail-no-comments');
|
|
329
|
+
expect(commentsGrid.className).not.toContain('material-detail-no-comments');
|
|
330
|
+
expect(contentReviewCss).toContain([
|
|
331
|
+
'.antd-Drawer-body .material-detail-no-comments .pepsico_ai_review-tab-content {',
|
|
332
|
+
' width: 100%;',
|
|
333
|
+
' position: initial;',
|
|
334
|
+
'}'
|
|
335
|
+
].join('\n'));
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
//# sourceMappingURL=plsReviewPage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plsReviewPage.test.js","sourceRoot":"","sources":["../../../src/pages/__tests__/plsReviewPage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,9 @@ tab_items:
|
|
|
117
117
|
object_pepsico_mail_visit_log:
|
|
118
118
|
group: 业务日志
|
|
119
119
|
index: 20
|
|
120
|
+
object_pepsico_pls_change_log:
|
|
121
|
+
group: 业务日志
|
|
122
|
+
index: 29
|
|
120
123
|
admin_logs:
|
|
121
124
|
group: 系统信息
|
|
122
125
|
index: 21
|
|
@@ -157,6 +160,7 @@ tabs:
|
|
|
157
160
|
- object_pepsico_spot_check_report
|
|
158
161
|
- object_pepsico_mail_send_log
|
|
159
162
|
- object_pepsico_mail_visit_log
|
|
163
|
+
- object_pepsico_pls_change_log
|
|
160
164
|
- admin_logs
|
|
161
165
|
- admin_steedos_packages
|
|
162
166
|
- operation_logs
|
|
@@ -13,7 +13,14 @@ document.title = "内容审核";
|
|
|
13
13
|
// document.head.appendChild(link);
|
|
14
14
|
|
|
15
15
|
var today = new Date();
|
|
16
|
-
var
|
|
16
|
+
var fallbackV = today.getFullYear().toString()
|
|
17
|
+
+ (today.getMonth() + 1).toString().padStart(2, '0')
|
|
18
|
+
+ today.getDate().toString().padStart(2, '0')
|
|
19
|
+
+ today.getHours().toString().padStart(2, '0')
|
|
20
|
+
+ today.getMinutes().toString().padStart(2, '0');
|
|
21
|
+
var v = window.__meteor_runtime_config__ && window.__meteor_runtime_config__.autoupdateVersion
|
|
22
|
+
? window.__meteor_runtime_config__.autoupdateVersion
|
|
23
|
+
: fallbackV;
|
|
17
24
|
|
|
18
25
|
loadCss(Steedos.absoluteUrl('/content-review/topic.css?v='+v));
|
|
19
26
|
loadCss(Steedos.absoluteUrl('/content-review/amis.css?v='+v));
|
|
@@ -56,5 +63,3 @@ if(false){
|
|
|
56
63
|
}, {});
|
|
57
64
|
})
|
|
58
65
|
}
|
|
59
|
-
|
|
60
|
-
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: company_ids
|
|
2
|
+
amis:
|
|
3
|
+
id: 'u:9e1464ea0def'
|
|
4
|
+
description: ''
|
|
5
|
+
enable_thousands: true
|
|
6
|
+
group: 通用
|
|
7
|
+
hidden: false
|
|
8
|
+
index: true
|
|
9
|
+
inlineHelpText: ''
|
|
10
|
+
label: 所属分部
|
|
11
|
+
multiple: true
|
|
12
|
+
reference_to: company
|
|
13
|
+
sort_no: 550
|
|
14
|
+
sortable: true
|
|
15
|
+
type: lookup
|
|
16
|
+
visible_on: '{{false}}'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: instance_state
|
|
2
|
+
amis:
|
|
3
|
+
id: 'u:6ecc9e437b0f'
|
|
4
|
+
description: ''
|
|
5
|
+
enable_thousands: true
|
|
6
|
+
group: 通用
|
|
7
|
+
inlineHelpText: ''
|
|
8
|
+
label: 申请单审批状态
|
|
9
|
+
options:
|
|
10
|
+
- label: 草稿
|
|
11
|
+
value: draft
|
|
12
|
+
- label: 进行中
|
|
13
|
+
value: pending
|
|
14
|
+
- label: 已完成
|
|
15
|
+
value: completed
|
|
16
|
+
- label: 已核准
|
|
17
|
+
value: approved
|
|
18
|
+
- label: 已驳回
|
|
19
|
+
value: rejected
|
|
20
|
+
- label: 已取消
|
|
21
|
+
value: terminated
|
|
22
|
+
readonly: true
|
|
23
|
+
sort_no: 600
|
|
24
|
+
type: select
|
|
25
|
+
visible_on: '{{false}}'
|