@steedos-labs/content-compliance 0.7.2 → 0.7.4

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 (72) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/index.d.ts +2 -0
  3. package/lib/actions/index.js +2 -0
  4. package/lib/actions/index.js.map +1 -1
  5. package/lib/actions/postponeReview.d.ts +7 -0
  6. package/lib/actions/postponeReview.js +30 -0
  7. package/lib/actions/postponeReview.js.map +1 -0
  8. package/lib/actions/urgentApproval.d.ts +14 -0
  9. package/lib/actions/urgentApproval.js +51 -0
  10. package/lib/actions/urgentApproval.js.map +1 -0
  11. package/lib/index.js +100 -52
  12. package/lib/index.js.map +1 -1
  13. package/lib/methods/approval_engine.d.ts +1 -0
  14. package/lib/methods/approval_engine.js +363 -100
  15. package/lib/methods/approval_engine.js.map +1 -1
  16. package/lib/methods/consts.d.ts +4 -0
  17. package/lib/methods/consts.js.map +1 -1
  18. package/lib/methods/index.d.ts +1 -0
  19. package/lib/methods/index.js +1 -0
  20. package/lib/methods/index.js.map +1 -1
  21. package/lib/methods/notification.d.ts +1 -0
  22. package/lib/methods/notification.js +109 -6
  23. package/lib/methods/notification.js.map +1 -1
  24. package/lib/methods/urgent.d.ts +19 -0
  25. package/lib/methods/urgent.js +253 -0
  26. package/lib/methods/urgent.js.map +1 -0
  27. package/main/default/applications/pepsico_content_review.app.yml +24 -102
  28. package/main/default/objects/pepsico_approval_process/fields/approved.field.yml +3 -0
  29. package/main/default/objects/pepsico_material_approval/buttons/pepsico_postpone_review.button.yml +145 -0
  30. package/main/default/objects/pepsico_material_approval/buttons/pepsico_urgent_review.button.yml +156 -0
  31. package/main/default/objects/pepsico_material_approval/fields/is_urgent.field.yml +9 -0
  32. package/main/default/objects/pepsico_material_approval/fields/review_postponed_users.field.yml +15 -0
  33. package/main/default/objects/pepsico_material_approval/fields/urgent_at.field.yml +8 -0
  34. package/main/default/objects/pepsico_material_approval/fields/urgent_name_tag.field.yml +8 -0
  35. package/main/default/objects/pepsico_material_approval/fields/urgent_times.field.yml +9 -0
  36. package/main/default/objects/pepsico_material_approval/listviews/all.listview.yml +4 -0
  37. package/main/default/objects/pepsico_material_approval/listviews/collaboration.listview.yml +4 -0
  38. package/main/default/objects/pepsico_material_approval/listviews/handle.listview.yml +8 -0
  39. package/main/default/objects/pepsico_material_approval/listviews/handle_postpone.listview.yml +89 -0
  40. package/main/default/objects/pepsico_review_postpone/fields/department_type.field.yml +29 -0
  41. package/main/default/objects/pepsico_review_postpone/fields/is_marker.field.yml +7 -0
  42. package/main/default/objects/pepsico_review_postpone/fields/notification_sent.field.yml +6 -0
  43. package/main/default/objects/pepsico_review_postpone/fields/pepsico_material_approval.field.yml +10 -0
  44. package/main/default/objects/pepsico_review_postpone/fields/postpone_by.field.yml +7 -0
  45. package/main/default/objects/pepsico_review_postpone/fields/postpone_date.field.yml +6 -0
  46. package/main/default/objects/pepsico_review_postpone/fields/postpone_reason.field.yml +6 -0
  47. package/main/default/objects/pepsico_review_postpone/fields/postponed_user_ids.field.yml +6 -0
  48. package/main/default/objects/pepsico_review_postpone/fields/visible_after.field.yml +6 -0
  49. package/main/default/objects/pepsico_review_postpone/listviews/all.listview.yml +21 -0
  50. package/main/default/objects/pepsico_review_postpone/listviews/mine.listview.yml +16 -0
  51. package/main/default/objects/pepsico_review_postpone/pepsico_review_postpone.object.yml +16 -0
  52. package/main/default/objects/pepsico_review_postpone/permissions/admin.permission.yml +9 -0
  53. package/main/default/objects/pepsico_review_postpone/permissions/pepsico_submit.permission.yml +10 -0
  54. package/main/default/objects/pepsico_review_postpone/permissions/user.permission.yml +9 -0
  55. package/main/default/objects/pepsico_urgent_log/fields/approval.field.yml +7 -0
  56. package/main/default/objects/pepsico_urgent_log/fields/approval_name.field.yml +6 -0
  57. package/main/default/objects/pepsico_urgent_log/fields/half.field.yml +7 -0
  58. package/main/default/objects/pepsico_urgent_log/fields/operator.field.yml +7 -0
  59. package/main/default/objects/pepsico_urgent_log/fields/space.field.yml +6 -0
  60. package/main/default/objects/pepsico_urgent_log/fields/year.field.yml +6 -0
  61. package/main/default/objects/pepsico_urgent_log/pepsico_urgent_log.object.yml +16 -0
  62. package/main/default/objects/pepsico_urgent_quota/fields/h1_used.field.yml +7 -0
  63. package/main/default/objects/pepsico_urgent_quota/fields/h2_used.field.yml +7 -0
  64. package/main/default/objects/pepsico_urgent_quota/fields/space.field.yml +6 -0
  65. package/main/default/objects/pepsico_urgent_quota/fields/user.field.yml +7 -0
  66. package/main/default/objects/pepsico_urgent_quota/fields/year.field.yml +6 -0
  67. package/main/default/objects/pepsico_urgent_quota/pepsico_urgent_quota.object.yml +16 -0
  68. package/main/default/pages/pepsico_content_review_detail.page.amis.json +14 -6
  69. package/main/default/restrictionRules/pepsico_material_approval.restrictionRule.yml +1 -1
  70. package/main/default/tabs/object_pepsico_urgent_log.tab.yml +14 -0
  71. package/main/default/tabs/object_pepsico_urgent_quota.tab.yml +14 -0
  72. package/package.json +1 -1
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doUrgent = exports.canUrgent = exports.getUrgentQuota = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var consts_1 = require("./consts");
6
+ var HALF_YEAR_QUOTA = 6;
7
+ var getUrgentQuota = function (ctx, userId, space) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
8
+ var now, year, half, quota, h1_used, h2_used, available, used, total, h1_remaining;
9
+ return tslib_1.__generator(this, function (_a) {
10
+ switch (_a.label) {
11
+ case 0:
12
+ now = new Date();
13
+ year = now.getFullYear();
14
+ half = now.getMonth() < 6 ? 1 : 2;
15
+ return [4, ctx.getObject('pepsico_urgent_quota').findOne({
16
+ filters: [['user', '=', userId], ['space', '=', space], ['year', '=', year]]
17
+ })];
18
+ case 1:
19
+ quota = _a.sent();
20
+ h1_used = (quota === null || quota === void 0 ? void 0 : quota.h1_used) || 0;
21
+ h2_used = (quota === null || quota === void 0 ? void 0 : quota.h2_used) || 0;
22
+ if (half === 1) {
23
+ used = h1_used;
24
+ total = HALF_YEAR_QUOTA;
25
+ available = Math.max(0, HALF_YEAR_QUOTA - h1_used);
26
+ }
27
+ else {
28
+ h1_remaining = Math.max(0, HALF_YEAR_QUOTA - h1_used);
29
+ total = HALF_YEAR_QUOTA + h1_remaining;
30
+ used = h2_used;
31
+ available = Math.max(0, total - h2_used);
32
+ }
33
+ return [2, { available: available, used: used, total: total, year: year, half: half }];
34
+ }
35
+ });
36
+ }); };
37
+ exports.getUrgentQuota = getUrgentQuota;
38
+ var canUrgent = function (ctx, approvalId, userId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
39
+ var approval, reviewSteps, postponedUsers, quota;
40
+ return tslib_1.__generator(this, function (_a) {
41
+ switch (_a.label) {
42
+ case 0: return [4, ctx.getObject('pepsico_material_approval').findOne(approvalId)];
43
+ case 1:
44
+ approval = _a.sent();
45
+ if (!approval) {
46
+ return [2, { canUrgent: false, reason: '审批单不存在' }];
47
+ }
48
+ if (approval.is_urgent) {
49
+ return [2, { canUrgent: false, reason: '该审批单已处于加急状态' }];
50
+ }
51
+ if (approval.owner !== userId) {
52
+ return [2, { canUrgent: false, reason: '只有发起人可以加急' }];
53
+ }
54
+ reviewSteps = [consts_1.Step.departmental_review, consts_1.Step.personnel_review];
55
+ if (!reviewSteps.includes(approval.current_step)) {
56
+ return [2, { canUrgent: false, reason: '当前步骤不支持加急' }];
57
+ }
58
+ postponedUsers = approval.review_postponed_users || [];
59
+ if (postponedUsers.length > 0) {
60
+ return [2, { canUrgent: false, reason: '存在延后审核人,无法加急' }];
61
+ }
62
+ return [4, (0, exports.getUrgentQuota)(ctx, userId, approval.space)];
63
+ case 2:
64
+ quota = _a.sent();
65
+ if (quota.available <= 0) {
66
+ return [2, { canUrgent: false, reason: '暂无加急次数', quota: quota }];
67
+ }
68
+ return [2, { canUrgent: true, quota: quota }];
69
+ }
70
+ });
71
+ }); };
72
+ exports.canUrgent = canUrgent;
73
+ var sendUrgentNotification = function (ctx, space, approvalId, approvalName, fromUserId, toUserId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
74
+ var error_1, spaceUsers, spaceUsers_1, spaceUsers_1_1, spaceUser, error_2, e_1_1, error_3;
75
+ var e_1, _a;
76
+ return tslib_1.__generator(this, function (_b) {
77
+ switch (_b.label) {
78
+ case 0:
79
+ _b.trys.push([0, 2, , 3]);
80
+ return [4, ctx.broker.call('notifications.add', {
81
+ message: {
82
+ name: "[\u52A0\u6025] ".concat(approvalName),
83
+ body: '发起人已标记为加急审核,请优先处理',
84
+ related_to: {
85
+ o: 'pepsico_material_approval',
86
+ ids: [approvalId]
87
+ },
88
+ related_name: approvalName,
89
+ from: fromUserId,
90
+ space: space
91
+ },
92
+ from: fromUserId,
93
+ to: toUserId
94
+ })];
95
+ case 1:
96
+ _b.sent();
97
+ return [3, 3];
98
+ case 2:
99
+ error_1 = _b.sent();
100
+ console.log('[urgent] sendUrgentNotification notification error', error_1);
101
+ return [3, 3];
102
+ case 3:
103
+ _b.trys.push([3, 15, , 16]);
104
+ return [4, ctx.getObject('space_users').find({
105
+ filters: [['user', '=', toUserId], ['space', '=', space]]
106
+ })];
107
+ case 4:
108
+ spaceUsers = _b.sent();
109
+ _b.label = 5;
110
+ case 5:
111
+ _b.trys.push([5, 12, 13, 14]);
112
+ spaceUsers_1 = tslib_1.__values(spaceUsers), spaceUsers_1_1 = spaceUsers_1.next();
113
+ _b.label = 6;
114
+ case 6:
115
+ if (!!spaceUsers_1_1.done) return [3, 11];
116
+ spaceUser = spaceUsers_1_1.value;
117
+ if (!spaceUser.email) return [3, 10];
118
+ _b.label = 7;
119
+ case 7:
120
+ _b.trys.push([7, 9, , 10]);
121
+ return [4, ctx.broker.call('@builder6/email.send', {
122
+ to: spaceUser.email,
123
+ subject: "[\u52A0\u6025\u5BA1\u6838] ".concat(approvalName),
124
+ html: "\n <p>\u60A8\u6709\u4E00\u4EFD\u5BA1\u6279\u5355\u88AB\u6807\u8BB0\u4E3A<strong>\u52A0\u6025\u5BA1\u6838</strong>\uFF0C\u8BF7\u4F18\u5148\u5904\u7406\u3002</p>\n <a href=\"".concat(process.env.ROOT_URL, "/app/pepsico_content_review/pepsico_material_approval/view/").concat(approvalId, "?side_object=pepsico_material_approval&side_listview_id=pending\">").concat(approvalName, "</a>\n ")
125
+ })];
126
+ case 8:
127
+ _b.sent();
128
+ return [3, 10];
129
+ case 9:
130
+ error_2 = _b.sent();
131
+ console.log('[urgent] sendUrgentNotification email error', error_2);
132
+ return [3, 10];
133
+ case 10:
134
+ spaceUsers_1_1 = spaceUsers_1.next();
135
+ return [3, 6];
136
+ case 11: return [3, 14];
137
+ case 12:
138
+ e_1_1 = _b.sent();
139
+ e_1 = { error: e_1_1 };
140
+ return [3, 14];
141
+ case 13:
142
+ try {
143
+ if (spaceUsers_1_1 && !spaceUsers_1_1.done && (_a = spaceUsers_1.return)) _a.call(spaceUsers_1);
144
+ }
145
+ finally { if (e_1) throw e_1.error; }
146
+ return [7];
147
+ case 14: return [3, 16];
148
+ case 15:
149
+ error_3 = _b.sent();
150
+ console.log('[urgent] sendUrgentNotification spaceUsers error', error_3);
151
+ return [3, 16];
152
+ case 16: return [2];
153
+ }
154
+ });
155
+ }); };
156
+ var doUrgent = function (ctx, approvalId, userId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
157
+ var check, approval, _a, year, half, used, total, existingQuota, updateField, pendingApprovers, pendingApprovers_1, pendingApprovers_1_1, approverId, e_2_1, newUsed, newAvailable;
158
+ var _b, e_2, _c;
159
+ return tslib_1.__generator(this, function (_d) {
160
+ switch (_d.label) {
161
+ case 0: return [4, (0, exports.canUrgent)(ctx, approvalId, userId)];
162
+ case 1:
163
+ check = _d.sent();
164
+ if (!check.canUrgent) {
165
+ throw new Error(check.reason);
166
+ }
167
+ return [4, ctx.getObject('pepsico_material_approval').findOne(approvalId)];
168
+ case 2:
169
+ approval = _d.sent();
170
+ _a = check.quota, year = _a.year, half = _a.half, used = _a.used, total = _a.total;
171
+ return [4, ctx.getObject('pepsico_urgent_quota').findOne({
172
+ filters: [['user', '=', userId], ['space', '=', approval.space], ['year', '=', year]]
173
+ })];
174
+ case 3:
175
+ existingQuota = _d.sent();
176
+ updateField = half === 1 ? 'h1_used' : 'h2_used';
177
+ if (!existingQuota) return [3, 5];
178
+ return [4, ctx.getObject('pepsico_urgent_quota').directUpdate(existingQuota._id, (_b = {},
179
+ _b[updateField] = (existingQuota[updateField] || 0) + 1,
180
+ _b))];
181
+ case 4:
182
+ _d.sent();
183
+ return [3, 7];
184
+ case 5: return [4, ctx.getObject('pepsico_urgent_quota').insert({
185
+ user: userId,
186
+ space: approval.space,
187
+ year: year,
188
+ h1_used: half === 1 ? 1 : 0,
189
+ h2_used: half === 2 ? 1 : 0
190
+ })];
191
+ case 6:
192
+ _d.sent();
193
+ _d.label = 7;
194
+ case 7: return [4, ctx.getObject('pepsico_material_approval').directUpdate(approvalId, {
195
+ is_urgent: true,
196
+ urgent_times: (approval.urgent_times || 0) + 1,
197
+ urgent_at: new Date()
198
+ })];
199
+ case 8:
200
+ _d.sent();
201
+ return [4, ctx.getObject('pepsico_urgent_log').insert({
202
+ approval: approvalId,
203
+ approval_name: approval.name,
204
+ operator: userId,
205
+ space: approval.space,
206
+ year: year,
207
+ half: half
208
+ })];
209
+ case 9:
210
+ _d.sent();
211
+ pendingApprovers = Array.isArray(approval.person_pending_approve)
212
+ ? approval.person_pending_approve
213
+ : [];
214
+ _d.label = 10;
215
+ case 10:
216
+ _d.trys.push([10, 15, 16, 17]);
217
+ pendingApprovers_1 = tslib_1.__values(pendingApprovers), pendingApprovers_1_1 = pendingApprovers_1.next();
218
+ _d.label = 11;
219
+ case 11:
220
+ if (!!pendingApprovers_1_1.done) return [3, 14];
221
+ approverId = pendingApprovers_1_1.value;
222
+ return [4, sendUrgentNotification(ctx, approval.space, approvalId, approval.name, userId, approverId)];
223
+ case 12:
224
+ _d.sent();
225
+ _d.label = 13;
226
+ case 13:
227
+ pendingApprovers_1_1 = pendingApprovers_1.next();
228
+ return [3, 11];
229
+ case 14: return [3, 17];
230
+ case 15:
231
+ e_2_1 = _d.sent();
232
+ e_2 = { error: e_2_1 };
233
+ return [3, 17];
234
+ case 16:
235
+ try {
236
+ if (pendingApprovers_1_1 && !pendingApprovers_1_1.done && (_c = pendingApprovers_1.return)) _c.call(pendingApprovers_1);
237
+ }
238
+ finally { if (e_2) throw e_2.error; }
239
+ return [7];
240
+ case 17:
241
+ newUsed = used + 1;
242
+ newAvailable = Math.max(0, total - newUsed);
243
+ return [2, {
244
+ message: "\u52A0\u6025\u6210\u529F\uFF01\u5DF2\u4F7F\u7528 ".concat(newUsed, " \u6B21\uFF0C\u5269\u4F59 ").concat(newAvailable, " \u6B21"),
245
+ used: newUsed,
246
+ available: newAvailable,
247
+ total: total
248
+ }];
249
+ }
250
+ });
251
+ }); };
252
+ exports.doUrgent = doUrgent;
253
+ //# sourceMappingURL=urgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urgent.js","sourceRoot":"","sources":["../../src/methods/urgent.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,9 @@ tab_groups:
50
50
  - group_name: 知识库
51
51
  default_open: true
52
52
  id: 知识库
53
+ - group_name: 审批管理
54
+ default_open: false
55
+ id: 审批管理
53
56
  tab_items:
54
57
  object_pepsico_material_approval:
55
58
  group: 内容审核
@@ -96,6 +99,21 @@ tab_items:
96
99
  object_pepsico_km_homo:
97
100
  group: 知识库
98
101
  index: 16
102
+ object_pepsico_approval_share:
103
+ group: 审批管理
104
+ index: 2000
105
+ object_pepsico_approval_admin_log:
106
+ group: 审批管理
107
+ index: 2001
108
+ pepsico_approval_transfer:
109
+ group: 审批管理
110
+ index: 2002
111
+ object_pepsico_urgent_quota:
112
+ group: 审批管理
113
+ index: 2003
114
+ object_pepsico_urgent_log:
115
+ group: 审批管理
116
+ index: 2004
99
117
  tabs:
100
118
  - object_pepsico_material_approval
101
119
  - process_delegation_rules
@@ -114,105 +132,9 @@ tabs:
114
132
  - object_pepsico_km_files
115
133
  - object_pepsico_km_update
116
134
  - object_pepsico_km_homo
117
- visible: true
118
- visibleOnVariables:
119
- - label: 表单字段
120
- children:
121
- - label: 名称
122
- value: name
123
- - label: API 名称
124
- value: code
125
- - label: 图标
126
- value: icon_slds
127
- - label: 排序
128
- value: sort
129
- - label: 描述
130
- value: description
131
- - label: tab_groups.$.group_name
132
- value: tab_groups.$.group_name
133
- - label: tab_groups.$.default_open
134
- value: tab_groups.$.default_open
135
- - label: 在桌面中显示此应用
136
- value: is_creator
137
- - label: 在手机上显示此应用
138
- value: mobile
139
- - label: 启用
140
- value: visible
141
- - label: 显示左侧导航
142
- value: showSidebar
143
- - label: 自定义导航
144
- value: nav_schema
145
- - label: 外部链接
146
- value: url
147
- - label: 使用IE打开(需使用Steedos桌面客户端)
148
- value: is_use_ie
149
- - label: 使用iframe打开
150
- value: is_use_iframe
151
- - label: 在新窗口打开
152
- value: is_new_window
153
- - label: 链接脚本
154
- value: on_click
155
- - label: 验证域名
156
- value: auth_name
157
- - label: API 密钥
158
- value: secret
159
- - label: 桌面主菜单(已作废)
160
- value: objects
161
- - label: 手机主菜单(已作废)
162
- value: mobile_objects
163
- - label: 显示公式
164
- value: visible_on
165
- - label: 启用自定义导航
166
- value: enable_nav_schema
167
- - label: 系统
168
- value: is_system
169
- - label: from_code_id
170
- value: from_code_id
171
- - label: 所有者
172
- value: owner
173
- - label: 已锁定
174
- value: locked
175
- - label: 主分部
176
- value: company_id
177
- - label: 所属分部
178
- value: company_ids
179
- - label: 申请单审批状态
180
- value: instance_state
181
- - label: 创建时间
182
- value: created
183
- - label: 创建人
184
- value: created_by
185
- - label: 修改时间
186
- value: modified
187
- - label: 修改人
188
- value: modified_by
189
- - label: 全局变量
190
- children:
191
- - label: 用户ID
192
- value: 'global[''userId'']'
193
- - label: 工作区ID
194
- value: 'global[''spaceId'']'
195
- - label: 用户
196
- children:
197
- - label: 姓名
198
- value: 'global[''user''][''name'']'
199
- - label: 邮件
200
- value: 'global[''user''][''email'']'
201
- - label: 语言
202
- value: 'global[''user''][''language'']'
203
- - label: 简档
204
- value: 'global[''user''][''profile'']'
205
- - label: 权限集
206
- value: 'global[''user''][''roles'']'
207
- - label: 主部门ID
208
- value: 'global[''user''][''organization''][''_id'']'
209
- - label: 部门(含上级)
210
- value: 'global[''user''][''organizations_parents'']'
211
- - label: 主分部ID
212
- value: 'global[''user''][''company_id'']'
213
- - label: 分部(多选)
214
- value: 'global[''user''][''company_ids'']'
215
- - label: 人员ID
216
- value: 'global[''user''][''spaceUserId'']'
217
- - label: 是否是工作区管理员
218
- value: 'global[''user''][''is_space_admin'']'
135
+ - object_pepsico_approval_share
136
+ - object_pepsico_approval_admin_log
137
+ - pepsico_approval_transfer
138
+ - object_pepsico_urgent_quota
139
+ - object_pepsico_urgent_log
140
+ visible: true
@@ -26,6 +26,9 @@ options:
26
26
  - label: Bypass
27
27
  value: pass
28
28
  color: '#02355a'
29
+ - label: 延后审核
30
+ value: postpone_review
31
+ color: '#f5a623'
29
32
  required: false
30
33
  sort_no: 100
31
34
  type: select
@@ -0,0 +1,145 @@
1
+ name: pepsico_postpone_review
2
+ amis_schema: |-
3
+ {
4
+ "type": "service",
5
+ "body": [
6
+ {
7
+ "type": "button",
8
+ "label": "延后审核",
9
+ "id": "u:pepsico_postpone_review",
10
+ "editorState": "default",
11
+ "visibleOn": "${(current_step == 'departmental_review' || current_step == 'personnel_review') && !ARRAYINCLUDES(person_pending_approve, context.user.user) && ARRAYINCLUDES(person_approved, context.user.user) && formFactor != 'SMALL'}",
12
+ "onEvent": {
13
+ "click": {
14
+ "weight": 0,
15
+ "actions": [
16
+ {
17
+ "ignoreError": false,
18
+ "actionType": "dialog",
19
+ "dialog": {
20
+ "type": "dialog",
21
+ "title": "延后审核",
22
+ "body": [
23
+ {
24
+ "type": "alert",
25
+ "body": "延后审核仅对下次再次分配到您所在部门时生效:届时该审批单将延迟3天可见,通知也将延迟发送。请填写延后原因。",
26
+ "level": "warning",
27
+ "id": "u:postpone_review_alert"
28
+ },
29
+ {
30
+ "type": "textarea",
31
+ "label": "延后原因",
32
+ "name": "postpone_reason",
33
+ "id": "u:postpone_review_reason",
34
+ "placeholder": "请填写延后原因(必填)",
35
+ "required": true,
36
+ "validations": {
37
+ "isRequired": true
38
+ },
39
+ "validationErrors": {
40
+ "isRequired": "请填写延后原因"
41
+ }
42
+ }
43
+ ],
44
+ "id": "u:postpone_review_dialog",
45
+ "actions": [
46
+ {
47
+ "type": "button",
48
+ "actionType": "cancel",
49
+ "label": "取消",
50
+ "id": "u:postpone_review_cancel"
51
+ },
52
+ {
53
+ "type": "button",
54
+ "actionType": "confirm",
55
+ "label": "确定延后",
56
+ "primary": true,
57
+ "id": "u:postpone_review_confirm",
58
+ "editorState": "default",
59
+ "onEvent": {
60
+ "click": {
61
+ "weight": 0,
62
+ "actions": [
63
+ {
64
+ "ignoreError": false,
65
+ "actionType": "disabled",
66
+ "componentId": "u:postpone_review_confirm"
67
+ },
68
+ {
69
+ "ignoreError": false,
70
+ "actionType": "ajax",
71
+ "outputVar": "responseResult",
72
+ "options": {},
73
+ "api": {
74
+ "url": "/api/pepsico-content/approve/postpone-review/${recordId}",
75
+ "method": "post",
76
+ "requestAdaptor": "\napi.data = {postpone_reason: context.postpone_reason}\n\n\nreturn api;",
77
+ "adaptor": "",
78
+ "messages": {}
79
+ }
80
+ },
81
+ {
82
+ "actionType": "broadcast",
83
+ "args": {
84
+ "eventName": "@data.changed.pepsico_material_approval"
85
+ },
86
+ "data": {
87
+ "objectName": "pepsico_material_approval"
88
+ }
89
+ },
90
+ {
91
+ "actionType": "reload",
92
+ "componentId": "listview_pepsico_review_postpone",
93
+ "groupType": "component"
94
+ },
95
+ {
96
+ "ignoreError": false,
97
+ "actionType": "enabled",
98
+ "componentId": "u:postpone_review_confirm"
99
+ }
100
+ ]
101
+ }
102
+ }
103
+ }
104
+ ],
105
+ "showCloseButton": true,
106
+ "closeOnOutside": false,
107
+ "closeOnEsc": false,
108
+ "showErrorMsg": true,
109
+ "showLoading": true,
110
+ "draggable": false,
111
+ "actionType": "dialog",
112
+ "size": "md"
113
+ }
114
+ }
115
+ ]
116
+ }
117
+ }
118
+ }
119
+ ],
120
+ "regions": [
121
+ "body"
122
+ ],
123
+ "data": {
124
+ "context": {},
125
+ "dataComponentId": "",
126
+ "record_id": "",
127
+ "record": {},
128
+ "permissions": {}
129
+ },
130
+ "id": "u:pepsico_postpone_review_service",
131
+ "bodyClassName": "p-0",
132
+ "dsType": "api",
133
+ "asideResizor": false,
134
+ "editorState": "default",
135
+ "pullRefresh": {
136
+ "disabled": true
137
+ },
138
+ "definitions": {}
139
+ }
140
+ is_enable: true
141
+ label: 延后审核
142
+ locked: false
143
+ 'on': record_only
144
+ type: amis_button
145
+ visible: true