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