@andrey4emk/npm-app-front-b24 0.1.8 → 0.1.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.
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createElementBlock as
|
|
1
|
+
import { createElementBlock as o, openBlock as r, createElementVNode as e, createCommentVNode as f, withDirectives as A, vModelCheckbox as g, createTextVNode as p, toDisplayString as d, Fragment as T, renderList as _, normalizeClass as S } from "vue";
|
|
2
2
|
const N = (l, t) => {
|
|
3
3
|
const E = l.__vccOpts || l;
|
|
4
|
-
for (const [
|
|
5
|
-
E[
|
|
4
|
+
for (const [D, a] of t)
|
|
5
|
+
E[D] = a;
|
|
6
6
|
return E;
|
|
7
7
|
}, m = {
|
|
8
8
|
name: "Subscriptions",
|
|
@@ -101,16 +101,16 @@ const N = (l, t) => {
|
|
|
101
101
|
let l = this.entities.total / 50 + 1;
|
|
102
102
|
console.log("Всего страниц для удаления:", l);
|
|
103
103
|
for (let E = 1; E <= l; E++) {
|
|
104
|
-
let
|
|
104
|
+
let a = (await $b24.callMethod("event.offline.list", {
|
|
105
105
|
start: 0
|
|
106
|
-
})).getData().result.map((
|
|
107
|
-
console.log("PROCESS_ID для удаления:",
|
|
106
|
+
})).getData().result.map((u) => u.PROCESS_ID).filter((u) => u);
|
|
107
|
+
console.log("PROCESS_ID для удаления:", a);
|
|
108
108
|
let n = {};
|
|
109
|
-
|
|
109
|
+
a.forEach((u, b) => {
|
|
110
110
|
n[`clear_${b}`] = {
|
|
111
111
|
method: "event.offline.clear",
|
|
112
112
|
params: {
|
|
113
|
-
process_id:
|
|
113
|
+
process_id: u
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
116
|
}), console.log("batchCommands:", n);
|
|
@@ -131,43 +131,49 @@ const N = (l, t) => {
|
|
|
131
131
|
}, 3e3);
|
|
132
132
|
},
|
|
133
133
|
async entityUpdate(l) {
|
|
134
|
-
var E,
|
|
134
|
+
var E, D, a, n, s, u, b;
|
|
135
135
|
let t = !1;
|
|
136
136
|
console.log("Запущена функция entityUpdate для изменения сущности с ID:", (E = l.EVENT_DATA.FIELDS) == null ? void 0 : E.ID);
|
|
137
137
|
try {
|
|
138
|
-
if ((
|
|
139
|
-
let
|
|
138
|
+
if ((D = l.EVENT_DATA.FIELDS) != null && D.ENTITY_TYPE_ID && ((a = l.EVENT_DATA.FIELDS) == null ? void 0 : a.ENTITY_TYPE_ID) > 0) {
|
|
139
|
+
let i = await $b24.callMethod("crm.item.get", {
|
|
140
140
|
entityTypeId: l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,
|
|
141
141
|
id: l.EVENT_DATA.FIELDS.ID
|
|
142
142
|
});
|
|
143
|
-
if (
|
|
144
|
-
let
|
|
143
|
+
if (i = i.getData().result.item, console.log("Данные смарт процесса до изменения:", i), i.id == ((n = l.EVENT_DATA.FIELDS) == null ? void 0 : n.ID)) {
|
|
144
|
+
let c = await $b24.callMethod("crm.item.update", {
|
|
145
145
|
entityTypeId: l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,
|
|
146
146
|
id: l.EVENT_DATA.FIELDS.ID,
|
|
147
147
|
fields: {
|
|
148
|
-
title:
|
|
148
|
+
title: i.title + " "
|
|
149
|
+
}
|
|
150
|
+
}), h = await $b24.callMethod("crm.item.update", {
|
|
151
|
+
entityTypeId: l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,
|
|
152
|
+
id: l.EVENT_DATA.FIELDS.ID,
|
|
153
|
+
fields: {
|
|
154
|
+
title: i.title
|
|
149
155
|
}
|
|
150
156
|
});
|
|
151
|
-
console.log("Результат обновления смарт процесса:",
|
|
157
|
+
console.log("Результат обновления смарт процесса:", c.getData()), h = h.getData().result.item, console.log("updateResult:", h), h.id === i.id ? (console.log("Сущность успешно обновлена."), t = !0) : (console.error("Ошибка при обновлении сущности."), t = !0);
|
|
152
158
|
} else
|
|
153
159
|
t = !0;
|
|
154
160
|
} else {
|
|
155
|
-
let
|
|
161
|
+
let i = await $b24.callMethod("crm.deal.get", {
|
|
156
162
|
id: (s = l.EVENT_DATA.FIELDS) == null ? void 0 : s.ID
|
|
157
163
|
});
|
|
158
|
-
if (
|
|
159
|
-
let
|
|
164
|
+
if (i = i.getData().result, console.log("Данные сделки до изменения:", i), i.ID == ((u = l.EVENT_DATA.FIELDS) == null ? void 0 : u.ID)) {
|
|
165
|
+
let c = await $b24.callMethod("crm.deal.update", {
|
|
160
166
|
id: (b = l.EVENT_DATA.FIELDS) == null ? void 0 : b.ID,
|
|
161
167
|
fields: {
|
|
162
|
-
TITLE:
|
|
168
|
+
TITLE: i.TITLE
|
|
163
169
|
}
|
|
164
170
|
});
|
|
165
|
-
console.log("Результат обновления сделки:",
|
|
171
|
+
console.log("Результат обновления сделки:", c.getData()), c = c.getData().result, c === !0 ? console.log("Сущность успешно обновлена.") : (console.error("Ошибка при обновлении сущности."), t = !0);
|
|
166
172
|
} else
|
|
167
173
|
t = !0;
|
|
168
174
|
}
|
|
169
|
-
} catch (
|
|
170
|
-
console.error("Ошибка при обновлении сущности:",
|
|
175
|
+
} catch (i) {
|
|
176
|
+
console.error("Ошибка при обновлении сущности:", i), i = !0;
|
|
171
177
|
}
|
|
172
178
|
t || await this.deleteOfflineEntities(l);
|
|
173
179
|
}
|
|
@@ -176,10 +182,10 @@ const N = (l, t) => {
|
|
|
176
182
|
mounted() {
|
|
177
183
|
this.getSubscribedEvents(), this.eventsList(), this.loadOfflineEntitiesList(), this.autoRefreshEntities();
|
|
178
184
|
}
|
|
179
|
-
},
|
|
185
|
+
}, L = { class: "Subscriptions" }, k = { key: 0 }, v = ["disabled"], w = {
|
|
180
186
|
class: "switch tooltipParent",
|
|
181
187
|
style: { top: "12px" }
|
|
182
|
-
},
|
|
188
|
+
}, C = { key: 0 }, V = {
|
|
183
189
|
key: 0,
|
|
184
190
|
class: "main"
|
|
185
191
|
}, O = ["onClick"], R = ["onClick"], M = ["href"], y = {
|
|
@@ -192,8 +198,8 @@ const N = (l, t) => {
|
|
|
192
198
|
key: 0,
|
|
193
199
|
class: "main"
|
|
194
200
|
}, z = ["onClick", "disabled"], j = { key: 1 }, q = { key: 2 };
|
|
195
|
-
function G(l, t, E,
|
|
196
|
-
return
|
|
201
|
+
function G(l, t, E, D, a, n) {
|
|
202
|
+
return r(), o("div", L, [
|
|
197
203
|
t[14] || (t[14] = e("h1", null, "Страница подписок", -1)),
|
|
198
204
|
e("button", {
|
|
199
205
|
onClick: t[0] || (t[0] = (s) => l.selectTab("tab1"))
|
|
@@ -204,32 +210,32 @@ function G(l, t, E, h, r, n) {
|
|
|
204
210
|
t[15] || (t[15] = e("br", null, null, -1)),
|
|
205
211
|
t[16] || (t[16] = e("br", null, null, -1)),
|
|
206
212
|
t[17] || (t[17] = e("br", null, null, -1)),
|
|
207
|
-
l.tabs.tab1 ? (
|
|
213
|
+
l.tabs.tab1 ? (r(), o("div", k, [
|
|
208
214
|
e("div", null, [
|
|
209
215
|
e("button", {
|
|
210
216
|
onClick: t[2] || (t[2] = (...s) => n.loadOfflineEntitiesList && n.loadOfflineEntitiesList(...s)),
|
|
211
217
|
disabled: l.loading
|
|
212
|
-
}, "Обновить", 8,
|
|
213
|
-
e("label",
|
|
214
|
-
|
|
218
|
+
}, "Обновить", 8, v),
|
|
219
|
+
e("label", w, [
|
|
220
|
+
A(e("input", {
|
|
215
221
|
type: "checkbox",
|
|
216
|
-
"onUpdate:modelValue": t[3] || (t[3] = (s) =>
|
|
222
|
+
"onUpdate:modelValue": t[3] || (t[3] = (s) => a.autoRefresh = s),
|
|
217
223
|
onChange: t[4] || (t[4] = (...s) => n.autoRefreshEntities && n.autoRefreshEntities(...s))
|
|
218
224
|
}, null, 544), [
|
|
219
|
-
[
|
|
225
|
+
[g, a.autoRefresh]
|
|
220
226
|
]),
|
|
221
227
|
t[6] || (t[6] = e("span", { class: "slider" }, null, -1)),
|
|
222
228
|
t[7] || (t[7] = e("span", { class: "tooltip" }, "Автообновление каждые 3 секунды", -1))
|
|
223
229
|
])
|
|
224
230
|
]),
|
|
225
|
-
|
|
231
|
+
a.entities.list.length > 0 ? (r(), o("div", C, [
|
|
226
232
|
e("p", null, [
|
|
227
233
|
e("button", {
|
|
228
234
|
onClick: t[5] || (t[5] = (...s) => n.deleteOfflineEntitiesAll && n.deleteOfflineEntitiesAll(...s))
|
|
229
235
|
}, "Удалить все"),
|
|
230
|
-
p(" Всего измененных сущностей " +
|
|
236
|
+
p(" Всего измененных сущностей " + d(a.entities.total), 1)
|
|
231
237
|
]),
|
|
232
|
-
|
|
238
|
+
a.entities.list.length ? (r(), o("table", V, [
|
|
233
239
|
t[9] || (t[9] = e("thead", null, [
|
|
234
240
|
e("tr", null, [
|
|
235
241
|
e("th", null, "#"),
|
|
@@ -244,49 +250,49 @@ function G(l, t, E, h, r, n) {
|
|
|
244
250
|
])
|
|
245
251
|
], -1)),
|
|
246
252
|
e("tbody", null, [
|
|
247
|
-
(
|
|
248
|
-
var b,
|
|
249
|
-
return
|
|
253
|
+
(r(!0), o(T, null, _(a.entities.list, (s, u) => {
|
|
254
|
+
var b, i, c, h;
|
|
255
|
+
return r(), o("tr", {
|
|
250
256
|
key: s.PROCESS_ID + "-" + s.ID
|
|
251
257
|
}, [
|
|
252
|
-
e("td", null,
|
|
258
|
+
e("td", null, d(u + 1), 1),
|
|
253
259
|
e("td", null, [
|
|
254
260
|
e("button", {
|
|
255
261
|
onClick: (I) => n.deleteOfflineEntities(s)
|
|
256
262
|
}, "Удалить", 8, O)
|
|
257
263
|
]),
|
|
258
264
|
e("td", null, [
|
|
259
|
-
(b = s.EVENT_DATA.FIELDS) != null && b.ID && (s.EVENT_NAME == "ONCRMDEALUPDATE" || s.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_")) ? (
|
|
265
|
+
(b = s.EVENT_DATA.FIELDS) != null && b.ID && (s.EVENT_NAME == "ONCRMDEALUPDATE" || s.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_")) ? (r(), o("button", {
|
|
260
266
|
key: 0,
|
|
261
267
|
onClick: (I) => n.entityUpdate(s)
|
|
262
268
|
}, "Изменить", 8, R)) : f("", !0)
|
|
263
269
|
]),
|
|
264
|
-
e("td", null,
|
|
265
|
-
e("td", null,
|
|
270
|
+
e("td", null, d(s.PROCESS_ID), 1),
|
|
271
|
+
e("td", null, d(s.EVENT_NAME), 1),
|
|
266
272
|
e("td", null, [
|
|
267
|
-
(
|
|
273
|
+
(i = s.EVENT_DATA.FIELDS) != null && i.ID && s.EVENT_NAME == "ONCRMDEALUPDATE" ? (r(), o("a", {
|
|
268
274
|
key: 0,
|
|
269
|
-
href: "https://repacheb.bitrix24.ru/crm/deal/details/" + ((
|
|
275
|
+
href: "https://repacheb.bitrix24.ru/crm/deal/details/" + ((c = s.EVENT_DATA.FIELDS) == null ? void 0 : c.ID) + "/",
|
|
270
276
|
target: "_blank",
|
|
271
277
|
rel: "noopener noreferrer"
|
|
272
|
-
},
|
|
278
|
+
}, d((h = s.EVENT_DATA.FIELDS) == null ? void 0 : h.ID), 9, M)) : f("", !0)
|
|
273
279
|
]),
|
|
274
|
-
e("td", null,
|
|
275
|
-
e("td", null,
|
|
280
|
+
e("td", null, d(s.EVENT_DATA), 1),
|
|
281
|
+
e("td", null, d(s.EVENT_ADDITIONAL.user_id), 1),
|
|
276
282
|
e("td", y, [
|
|
277
283
|
t[8] || (t[8] = e("span", null, "Подробней", -1)),
|
|
278
|
-
e("span", P,
|
|
284
|
+
e("span", P, d(s), 1)
|
|
279
285
|
])
|
|
280
286
|
]);
|
|
281
287
|
}), 128))
|
|
282
288
|
])
|
|
283
289
|
])) : f("", !0)
|
|
284
|
-
])) : (
|
|
290
|
+
])) : (r(), o("div", F, "Список сущностей пуст."))
|
|
285
291
|
])) : f("", !0),
|
|
286
|
-
l.tabs.tab2 ? (
|
|
292
|
+
l.tabs.tab2 ? (r(), o("div", Y, [
|
|
287
293
|
e("div", null, [
|
|
288
294
|
t[11] || (t[11] = e("h3", null, "Подписаны на события:", -1)),
|
|
289
|
-
|
|
295
|
+
a.subscribedEvents.length ? (r(), o("table", U, [
|
|
290
296
|
t[10] || (t[10] = e("thead", null, [
|
|
291
297
|
e("tr", null, [
|
|
292
298
|
e("th", null, "Событие"),
|
|
@@ -296,24 +302,24 @@ function G(l, t, E, h, r, n) {
|
|
|
296
302
|
])
|
|
297
303
|
], -1)),
|
|
298
304
|
e("tbody", null, [
|
|
299
|
-
(
|
|
305
|
+
(r(!0), o(T, null, _(a.subscribedEvents, (s) => (r(), o("tr", {
|
|
300
306
|
key: s.id
|
|
301
307
|
}, [
|
|
302
|
-
e("td", null,
|
|
303
|
-
e("td", null,
|
|
304
|
-
e("td", null,
|
|
308
|
+
e("td", null, d(s.event), 1),
|
|
309
|
+
e("td", null, d(s.connector_id), 1),
|
|
310
|
+
e("td", null, d(s.offline), 1),
|
|
305
311
|
e("td", null, [
|
|
306
312
|
e("button", {
|
|
307
|
-
onClick: (
|
|
313
|
+
onClick: (u) => n.unbindSubscribedEvents(s)
|
|
308
314
|
}, "Отписаться от событий", 8, $)
|
|
309
315
|
])
|
|
310
316
|
]))), 128))
|
|
311
317
|
])
|
|
312
|
-
])) : (
|
|
318
|
+
])) : (r(), o("p", x, "Подписок на события нет."))
|
|
313
319
|
]),
|
|
314
320
|
e("div", null, [
|
|
315
321
|
t[13] || (t[13] = e("h3", null, "На какие события можно подписаться:", -1)),
|
|
316
|
-
|
|
322
|
+
a.events.length ? (r(), o("table", B, [
|
|
317
323
|
t[12] || (t[12] = e("thead", null, [
|
|
318
324
|
e("tr", null, [
|
|
319
325
|
e("th", null, "Событие"),
|
|
@@ -321,21 +327,21 @@ function G(l, t, E, h, r, n) {
|
|
|
321
327
|
])
|
|
322
328
|
], -1)),
|
|
323
329
|
e("tbody", null, [
|
|
324
|
-
(
|
|
325
|
-
e("td", null,
|
|
330
|
+
(r(!0), o(T, null, _(a.events, (s) => (r(), o("tr", { key: s }, [
|
|
331
|
+
e("td", null, d(s), 1),
|
|
326
332
|
e("td", null, [
|
|
327
333
|
e("button", {
|
|
328
|
-
onClick: (
|
|
334
|
+
onClick: (u) => n.subscribeToEvents(s),
|
|
329
335
|
disabled: n.isSubscribed(s),
|
|
330
336
|
class: S({ "disabled-button": n.isSubscribed(s) })
|
|
331
337
|
}, "Подписаться", 10, z)
|
|
332
338
|
])
|
|
333
339
|
]))), 128))
|
|
334
340
|
])
|
|
335
|
-
])) : (
|
|
341
|
+
])) : (r(), o("p", j, "Список событий пуст."))
|
|
336
342
|
])
|
|
337
343
|
])) : f("", !0),
|
|
338
|
-
l.tabs.tab3 ? (
|
|
344
|
+
l.tabs.tab3 ? (r(), o("div", q)) : f("", !0)
|
|
339
345
|
]);
|
|
340
346
|
}
|
|
341
347
|
const H = /* @__PURE__ */ N(m, [["render", G]]), K = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(d,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(d=typeof globalThis<"u"?globalThis:d||self,e(d.NpmAppFrontB24={},d.Vue))})(this,function(d,e){"use strict";const f=(l,t)=>{const c=l.__vccOpts||l;for(const[m,s]of t)c[m]=s;return c},V={name:"Subscriptions",data(){return{events:[],subscribedEvents:[],entities:{list:[],total:0},autoRefresh:!0,auth_connector:""}},computed:{},methods:{pause(l){return new Promise(t=>setTimeout(t,l))},async eventsList(){console.log("Запускаем eventsList");try{let l=await $b24.callMethod("events",{});this.events=l.getData().result}catch(l){console.error("Ошибка при получении списка событий:",l)}},async subscribeToEvents(l){try{await $b24.callMethod("event.bind",{event:l,event_type:"offline",auth_connector:this.auth_connector}),console.log(`Подписались на событие ${l}.`)}catch(t){console.error("Ошибка при подписке на события:",t)}await this.pause(1e3),await this.getSubscribedEvents()},async getSubscribedEvents(){try{let l=await $b24.callMethod("event.get",{});this.subscribedEvents=l.getData().result,console.log("Подписанные события:",this.subscribedEvents)}catch(l){console.error("Ошибка при получении подписанных событий:",l)}},async unbindSubscribedEvents(l){try{await $b24.callMethod("event.unbind",{event:l.event,event_type:l.offline==1?"offline":"online",auth_connector:l.connector_id}),await this.pause(1e3),await this.getSubscribedEvents()}catch(t){console.error("Ошибка при отписке от событий:",t)}},async loadOfflineEntitiesList(){let t=await $b24.callListMethod("event.offline.list",{start:0,auth_connector:this.auth_connector});this.entities.list=t.getData(),this.entities.total=t.getData().length},async deleteOfflineEntities(l){let t=await $b24.callMethod("event.offline.clear",{process_id:l.PROCESS_ID,id:[l.ID],auth_connector:this.auth_connector});console.log("Удалили сущности из оффлан событий:",t.getData()),await this.pause(1e3),await this.loadOfflineEntitiesList()},async deleteOfflineEntitiesAll(){if(!confirm("Вы уверены, что хотите удалить все НЕ обработанные сущности? Это действие необратимо!"))return;let l=this.entities.total/50+1;console.log("Всего страниц для удаления:",l);for(let c=1;c<=l;c++){let s=(await $b24.callMethod("event.offline.list",{start:0})).getData().result.map(a=>a.PROCESS_ID).filter(a=>a);console.log("PROCESS_ID для удаления:",s);let o={};s.forEach((a,E)=>{o[`clear_${E}`]={method:"event.offline.clear",params:{process_id:a}}}),console.log("batchCommands:",o);let n=await $b24.callBatch(o);console.log("Результат batch удаления сущностей:",n.getData())}let t=await $b24.callMethod("event.offline.clear",{process_id:""});console.log("Результат финального удаления сущностей с пустым PROCESS_ID:",t.getData()),await this.pause(500),await this.loadOfflineEntitiesList()},isSubscribed(l){return this.subscribedEvents.some(t=>t.event==l)},autoRefreshEntities(){this.autoRefresh&&setTimeout(async()=>{await this.loadOfflineEntitiesList(),this.autoRefreshEntities()},3e3)},async entityUpdate(l){var c,m,s,o,n,a,E;let t=!1;console.log("Запущена функция entityUpdate для изменения сущности с ID:",(c=l.EVENT_DATA.FIELDS)==null?void 0:c.ID);try{if((m=l.EVENT_DATA.FIELDS)!=null&&m.ENTITY_TYPE_ID&&((s=l.EVENT_DATA.FIELDS)==null?void 0:s.ENTITY_TYPE_ID)>0){let r=await $b24.callMethod("crm.item.get",{entityTypeId:l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,id:l.EVENT_DATA.FIELDS.ID});if(r=r.getData().result.item,console.log("Данные смарт процесса до изменения:",r),r.id==((o=l.EVENT_DATA.FIELDS)==null?void 0:o.ID)){let i=await $b24.callMethod("crm.item.update",{entityTypeId:l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,id:l.EVENT_DATA.FIELDS.ID,fields:{title:r.title}});console.log("Результат обновления смарт процесса:",i.getData()),i=i.getData().result.item,console.log("updateResult:",i),i.id===r.id?console.log("Сущность успешно обновлена."):(console.error("Ошибка при обновлении сущности."),t=!0)}else t=!0}else{let r=await $b24.callMethod("crm.deal.get",{id:(n=l.EVENT_DATA.FIELDS)==null?void 0:n.ID});if(r=r.getData().result,console.log("Данные сделки до изменения:",r),r.ID==((a=l.EVENT_DATA.FIELDS)==null?void 0:a.ID)){let i=await $b24.callMethod("crm.deal.update",{id:(E=l.EVENT_DATA.FIELDS)==null?void 0:E.ID,fields:{TITLE:r.TITLE}});console.log("Результат обновления сделки:",i.getData()),i=i.getData().result,i===!0?console.log("Сущность успешно обновлена."):(console.error("Ошибка при обновлении сущности."),t=!0)}else t=!0}}catch(r){console.error("Ошибка при обновлении сущности:",r),r=!0}t||await this.deleteOfflineEntities(l)}},watch:{},mounted(){this.getSubscribedEvents(),this.eventsList(),this.loadOfflineEntitiesList(),this.autoRefreshEntities()}},h={class:"Subscriptions"},D={key:0},p=["disabled"],T={class:"switch tooltipParent",style:{top:"12px"}},k={key:0},_={key:0,class:"main"},g=["onClick"],u=["onClick"],S=["href"],A={class:"tooltipParent",style:{}},I={class:"tooltip"},B={key:1},y={key:1},C={key:0,class:"main"},L=["onClick"],w={key:1},O={key:0,class:"main"},M=["onClick","disabled"],R={key:1},F={key:2};function P(l,t,c,m,s,o){return e.openBlock(),e.createElementBlock("div",h,[t[14]||(t[14]=e.createElementVNode("h1",null,"Страница подписок",-1)),e.createElementVNode("button",{onClick:t[0]||(t[0]=n=>l.selectTab("tab1"))},"Сущности"),e.createElementVNode("button",{onClick:t[1]||(t[1]=n=>l.selectTab("tab2"))},"События"),t[15]||(t[15]=e.createElementVNode("br",null,null,-1)),t[16]||(t[16]=e.createElementVNode("br",null,null,-1)),t[17]||(t[17]=e.createElementVNode("br",null,null,-1)),l.tabs.tab1?(e.openBlock(),e.createElementBlock("div",D,[e.createElementVNode("div",null,[e.createElementVNode("button",{onClick:t[2]||(t[2]=(...n)=>o.loadOfflineEntitiesList&&o.loadOfflineEntitiesList(...n)),disabled:l.loading},"Обновить",8,p),e.createElementVNode("label",T,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=n=>s.autoRefresh=n),onChange:t[4]||(t[4]=(...n)=>o.autoRefreshEntities&&o.autoRefreshEntities(...n))},null,544),[[e.vModelCheckbox,s.autoRefresh]]),t[6]||(t[6]=e.createElementVNode("span",{class:"slider"},null,-1)),t[7]||(t[7]=e.createElementVNode("span",{class:"tooltip"},"Автообновление каждые 3 секунды",-1))])]),s.entities.list.length>0?(e.openBlock(),e.createElementBlock("div",k,[e.createElementVNode("p",null,[e.createElementVNode("button",{onClick:t[5]||(t[5]=(...n)=>o.deleteOfflineEntitiesAll&&o.deleteOfflineEntitiesAll(...n))},"Удалить все"),e.createTextVNode(" Всего измененных сущностей "+e.toDisplayString(s.entities.total),1)]),s.entities.list.length?(e.openBlock(),e.createElementBlock("table",_,[t[9]||(t[9]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"#"),e.createElementVNode("th",null,"Удалить"),e.createElementVNode("th",null,"Обновить"),e.createElementVNode("th",null,"PROCESS_ID"),e.createElementVNode("th",null,"EVENT_NAME"),e.createElementVNode("th",null,"Ссылка"),e.createElementVNode("th",null,"EVENT_DATA"),e.createElementVNode("th",null,"who_update"),e.createElementVNode("th",null,"entity")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.entities.list,(n,a)=>{var E,r,i,b;return e.openBlock(),e.createElementBlock("tr",{key:n.PROCESS_ID+"-"+n.ID},[e.createElementVNode("td",null,e.toDisplayString(a+1),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:U=>o.deleteOfflineEntities(n)},"Удалить",8,g)]),e.createElementVNode("td",null,[(E=n.EVENT_DATA.FIELDS)!=null&&E.ID&&(n.EVENT_NAME=="ONCRMDEALUPDATE"||n.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_"))?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:U=>o.entityUpdate(n)},"Изменить",8,u)):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,e.toDisplayString(n.PROCESS_ID),1),e.createElementVNode("td",null,e.toDisplayString(n.EVENT_NAME),1),e.createElementVNode("td",null,[(r=n.EVENT_DATA.FIELDS)!=null&&r.ID&&n.EVENT_NAME=="ONCRMDEALUPDATE"?(e.openBlock(),e.createElementBlock("a",{key:0,href:"https://repacheb.bitrix24.ru/crm/deal/details/"+((i=n.EVENT_DATA.FIELDS)==null?void 0:i.ID)+"/",target:"_blank",rel:"noopener noreferrer"},e.toDisplayString((b=n.EVENT_DATA.FIELDS)==null?void 0:b.ID),9,S)):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,e.toDisplayString(n.EVENT_DATA),1),e.createElementVNode("td",null,e.toDisplayString(n.EVENT_ADDITIONAL.user_id),1),e.createElementVNode("td",A,[t[8]||(t[8]=e.createElementVNode("span",null,"Подробней",-1)),e.createElementVNode("span",I,e.toDisplayString(n),1)])])}),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",B,"Список сущностей пуст."))])):e.createCommentVNode("",!0),l.tabs.tab2?(e.openBlock(),e.createElementBlock("div",y,[e.createElementVNode("div",null,[t[11]||(t[11]=e.createElementVNode("h3",null,"Подписаны на события:",-1)),s.subscribedEvents.length?(e.openBlock(),e.createElementBlock("table",C,[t[10]||(t[10]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Событие"),e.createElementVNode("th",null,"connector_id"),e.createElementVNode("th",null,"offline"),e.createElementVNode("th",null,"Отписаться")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.subscribedEvents,n=>(e.openBlock(),e.createElementBlock("tr",{key:n.id},[e.createElementVNode("td",null,e.toDisplayString(n.event),1),e.createElementVNode("td",null,e.toDisplayString(n.connector_id),1),e.createElementVNode("td",null,e.toDisplayString(n.offline),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:a=>o.unbindSubscribedEvents(n)},"Отписаться от событий",8,L)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",w,"Подписок на события нет."))]),e.createElementVNode("div",null,[t[13]||(t[13]=e.createElementVNode("h3",null,"На какие события можно подписаться:",-1)),s.events.length?(e.openBlock(),e.createElementBlock("table",O,[t[12]||(t[12]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Событие"),e.createElementVNode("th",null,"Подписаться")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.events,n=>(e.openBlock(),e.createElementBlock("tr",{key:n},[e.createElementVNode("td",null,e.toDisplayString(n),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:a=>o.subscribeToEvents(n),disabled:o.isSubscribed(n),class:e.normalizeClass({"disabled-button":o.isSubscribed(n)})},"Подписаться",10,M)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",R,"Список событий пуст."))])])):e.createCommentVNode("",!0),l.tabs.tab3?(e.openBlock(),e.createElementBlock("div",F)):e.createCommentVNode("",!0)])}const N=f(V,[["render",P]]),Y={install(l,t={}){l.component("Subscriptions",N),t.b24&&(l.config.globalProperties.$b24=t.b24)}};d.Subscriptions=N,d.default=Y,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(d,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(d=typeof globalThis<"u"?globalThis:d||self,e(d.NpmAppFrontB24={},d.Vue))})(this,function(d,e){"use strict";const D=(l,t)=>{const a=l.__vccOpts||l;for(const[N,r]of t)a[N]=r;return a},V={name:"Subscriptions",data(){return{events:[],subscribedEvents:[],entities:{list:[],total:0},autoRefresh:!0,auth_connector:""}},computed:{},methods:{pause(l){return new Promise(t=>setTimeout(t,l))},async eventsList(){console.log("Запускаем eventsList");try{let l=await $b24.callMethod("events",{});this.events=l.getData().result}catch(l){console.error("Ошибка при получении списка событий:",l)}},async subscribeToEvents(l){try{await $b24.callMethod("event.bind",{event:l,event_type:"offline",auth_connector:this.auth_connector}),console.log(`Подписались на событие ${l}.`)}catch(t){console.error("Ошибка при подписке на события:",t)}await this.pause(1e3),await this.getSubscribedEvents()},async getSubscribedEvents(){try{let l=await $b24.callMethod("event.get",{});this.subscribedEvents=l.getData().result,console.log("Подписанные события:",this.subscribedEvents)}catch(l){console.error("Ошибка при получении подписанных событий:",l)}},async unbindSubscribedEvents(l){try{await $b24.callMethod("event.unbind",{event:l.event,event_type:l.offline==1?"offline":"online",auth_connector:l.connector_id}),await this.pause(1e3),await this.getSubscribedEvents()}catch(t){console.error("Ошибка при отписке от событий:",t)}},async loadOfflineEntitiesList(){let t=await $b24.callListMethod("event.offline.list",{start:0,auth_connector:this.auth_connector});this.entities.list=t.getData(),this.entities.total=t.getData().length},async deleteOfflineEntities(l){let t=await $b24.callMethod("event.offline.clear",{process_id:l.PROCESS_ID,id:[l.ID],auth_connector:this.auth_connector});console.log("Удалили сущности из оффлан событий:",t.getData()),await this.pause(1e3),await this.loadOfflineEntitiesList()},async deleteOfflineEntitiesAll(){if(!confirm("Вы уверены, что хотите удалить все НЕ обработанные сущности? Это действие необратимо!"))return;let l=this.entities.total/50+1;console.log("Всего страниц для удаления:",l);for(let a=1;a<=l;a++){let r=(await $b24.callMethod("event.offline.list",{start:0})).getData().result.map(i=>i.PROCESS_ID).filter(i=>i);console.log("PROCESS_ID для удаления:",r);let n={};r.forEach((i,E)=>{n[`clear_${E}`]={method:"event.offline.clear",params:{process_id:i}}}),console.log("batchCommands:",n);let o=await $b24.callBatch(n);console.log("Результат batch удаления сущностей:",o.getData())}let t=await $b24.callMethod("event.offline.clear",{process_id:""});console.log("Результат финального удаления сущностей с пустым PROCESS_ID:",t.getData()),await this.pause(500),await this.loadOfflineEntitiesList()},isSubscribed(l){return this.subscribedEvents.some(t=>t.event==l)},autoRefreshEntities(){this.autoRefresh&&setTimeout(async()=>{await this.loadOfflineEntitiesList(),this.autoRefreshEntities()},3e3)},async entityUpdate(l){var a,N,r,n,o,i,E;let t=!1;console.log("Запущена функция entityUpdate для изменения сущности с ID:",(a=l.EVENT_DATA.FIELDS)==null?void 0:a.ID);try{if((N=l.EVENT_DATA.FIELDS)!=null&&N.ENTITY_TYPE_ID&&((r=l.EVENT_DATA.FIELDS)==null?void 0:r.ENTITY_TYPE_ID)>0){let s=await $b24.callMethod("crm.item.get",{entityTypeId:l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,id:l.EVENT_DATA.FIELDS.ID});if(s=s.getData().result.item,console.log("Данные смарт процесса до изменения:",s),s.id==((n=l.EVENT_DATA.FIELDS)==null?void 0:n.ID)){let c=await $b24.callMethod("crm.item.update",{entityTypeId:l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,id:l.EVENT_DATA.FIELDS.ID,fields:{title:s.title+" "}}),m=await $b24.callMethod("crm.item.update",{entityTypeId:l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,id:l.EVENT_DATA.FIELDS.ID,fields:{title:s.title}});console.log("Результат обновления смарт процесса:",c.getData()),m=m.getData().result.item,console.log("updateResult:",m),m.id===s.id?(console.log("Сущность успешно обновлена."),t=!0):(console.error("Ошибка при обновлении сущности."),t=!0)}else t=!0}else{let s=await $b24.callMethod("crm.deal.get",{id:(o=l.EVENT_DATA.FIELDS)==null?void 0:o.ID});if(s=s.getData().result,console.log("Данные сделки до изменения:",s),s.ID==((i=l.EVENT_DATA.FIELDS)==null?void 0:i.ID)){let c=await $b24.callMethod("crm.deal.update",{id:(E=l.EVENT_DATA.FIELDS)==null?void 0:E.ID,fields:{TITLE:s.TITLE}});console.log("Результат обновления сделки:",c.getData()),c=c.getData().result,c===!0?console.log("Сущность успешно обновлена."):(console.error("Ошибка при обновлении сущности."),t=!0)}else t=!0}}catch(s){console.error("Ошибка при обновлении сущности:",s),s=!0}t||await this.deleteOfflineEntities(l)}},watch:{},mounted(){this.getSubscribedEvents(),this.eventsList(),this.loadOfflineEntitiesList(),this.autoRefreshEntities()}},f={class:"Subscriptions"},h={key:0},p=["disabled"],T={class:"switch tooltipParent",style:{top:"12px"}},_={key:0},k={key:0,class:"main"},g=["onClick"],u=["onClick"],I=["href"],S={class:"tooltipParent",style:{}},A={class:"tooltip"},B={key:1},y={key:1},L={key:0,class:"main"},C=["onClick"],w={key:1},M={key:0,class:"main"},O=["onClick","disabled"],R={key:1},F={key:2};function P(l,t,a,N,r,n){return e.openBlock(),e.createElementBlock("div",f,[t[14]||(t[14]=e.createElementVNode("h1",null,"Страница подписок",-1)),e.createElementVNode("button",{onClick:t[0]||(t[0]=o=>l.selectTab("tab1"))},"Сущности"),e.createElementVNode("button",{onClick:t[1]||(t[1]=o=>l.selectTab("tab2"))},"События"),t[15]||(t[15]=e.createElementVNode("br",null,null,-1)),t[16]||(t[16]=e.createElementVNode("br",null,null,-1)),t[17]||(t[17]=e.createElementVNode("br",null,null,-1)),l.tabs.tab1?(e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("div",null,[e.createElementVNode("button",{onClick:t[2]||(t[2]=(...o)=>n.loadOfflineEntitiesList&&n.loadOfflineEntitiesList(...o)),disabled:l.loading},"Обновить",8,p),e.createElementVNode("label",T,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=o=>r.autoRefresh=o),onChange:t[4]||(t[4]=(...o)=>n.autoRefreshEntities&&n.autoRefreshEntities(...o))},null,544),[[e.vModelCheckbox,r.autoRefresh]]),t[6]||(t[6]=e.createElementVNode("span",{class:"slider"},null,-1)),t[7]||(t[7]=e.createElementVNode("span",{class:"tooltip"},"Автообновление каждые 3 секунды",-1))])]),r.entities.list.length>0?(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("p",null,[e.createElementVNode("button",{onClick:t[5]||(t[5]=(...o)=>n.deleteOfflineEntitiesAll&&n.deleteOfflineEntitiesAll(...o))},"Удалить все"),e.createTextVNode(" Всего измененных сущностей "+e.toDisplayString(r.entities.total),1)]),r.entities.list.length?(e.openBlock(),e.createElementBlock("table",k,[t[9]||(t[9]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"#"),e.createElementVNode("th",null,"Удалить"),e.createElementVNode("th",null,"Обновить"),e.createElementVNode("th",null,"PROCESS_ID"),e.createElementVNode("th",null,"EVENT_NAME"),e.createElementVNode("th",null,"Ссылка"),e.createElementVNode("th",null,"EVENT_DATA"),e.createElementVNode("th",null,"who_update"),e.createElementVNode("th",null,"entity")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.entities.list,(o,i)=>{var E,s,c,m;return e.openBlock(),e.createElementBlock("tr",{key:o.PROCESS_ID+"-"+o.ID},[e.createElementVNode("td",null,e.toDisplayString(i+1),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:U=>n.deleteOfflineEntities(o)},"Удалить",8,g)]),e.createElementVNode("td",null,[(E=o.EVENT_DATA.FIELDS)!=null&&E.ID&&(o.EVENT_NAME=="ONCRMDEALUPDATE"||o.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_"))?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:U=>n.entityUpdate(o)},"Изменить",8,u)):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,e.toDisplayString(o.PROCESS_ID),1),e.createElementVNode("td",null,e.toDisplayString(o.EVENT_NAME),1),e.createElementVNode("td",null,[(s=o.EVENT_DATA.FIELDS)!=null&&s.ID&&o.EVENT_NAME=="ONCRMDEALUPDATE"?(e.openBlock(),e.createElementBlock("a",{key:0,href:"https://repacheb.bitrix24.ru/crm/deal/details/"+((c=o.EVENT_DATA.FIELDS)==null?void 0:c.ID)+"/",target:"_blank",rel:"noopener noreferrer"},e.toDisplayString((m=o.EVENT_DATA.FIELDS)==null?void 0:m.ID),9,I)):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,e.toDisplayString(o.EVENT_DATA),1),e.createElementVNode("td",null,e.toDisplayString(o.EVENT_ADDITIONAL.user_id),1),e.createElementVNode("td",S,[t[8]||(t[8]=e.createElementVNode("span",null,"Подробней",-1)),e.createElementVNode("span",A,e.toDisplayString(o),1)])])}),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",B,"Список сущностей пуст."))])):e.createCommentVNode("",!0),l.tabs.tab2?(e.openBlock(),e.createElementBlock("div",y,[e.createElementVNode("div",null,[t[11]||(t[11]=e.createElementVNode("h3",null,"Подписаны на события:",-1)),r.subscribedEvents.length?(e.openBlock(),e.createElementBlock("table",L,[t[10]||(t[10]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Событие"),e.createElementVNode("th",null,"connector_id"),e.createElementVNode("th",null,"offline"),e.createElementVNode("th",null,"Отписаться")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.subscribedEvents,o=>(e.openBlock(),e.createElementBlock("tr",{key:o.id},[e.createElementVNode("td",null,e.toDisplayString(o.event),1),e.createElementVNode("td",null,e.toDisplayString(o.connector_id),1),e.createElementVNode("td",null,e.toDisplayString(o.offline),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:i=>n.unbindSubscribedEvents(o)},"Отписаться от событий",8,C)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",w,"Подписок на события нет."))]),e.createElementVNode("div",null,[t[13]||(t[13]=e.createElementVNode("h3",null,"На какие события можно подписаться:",-1)),r.events.length?(e.openBlock(),e.createElementBlock("table",M,[t[12]||(t[12]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Событие"),e.createElementVNode("th",null,"Подписаться")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.events,o=>(e.openBlock(),e.createElementBlock("tr",{key:o},[e.createElementVNode("td",null,e.toDisplayString(o),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:i=>n.subscribeToEvents(o),disabled:n.isSubscribed(o),class:e.normalizeClass({"disabled-button":n.isSubscribed(o)})},"Подписаться",10,O)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",R,"Список событий пуст."))])])):e.createCommentVNode("",!0),l.tabs.tab3?(e.openBlock(),e.createElementBlock("div",F)):e.createCommentVNode("",!0)])}const b=D(V,[["render",P]]),Y={install(l,t={}){l.component("Subscriptions",b),t.b24&&(l.config.globalProperties.$b24=t.b24)}};d.Subscriptions=b,d.default=Y,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED