@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 i, openBlock as o, createElementVNode as e, createCommentVNode as f, withDirectives as g, vModelCheckbox as A, createTextVNode as p, toDisplayString as c, Fragment as D, renderList as T, normalizeClass as S } from "vue";
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 [h, r] of t)
5
- E[h] = r;
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 r = (await $b24.callMethod("event.offline.list", {
104
+ let a = (await $b24.callMethod("event.offline.list", {
105
105
  start: 0
106
- })).getData().result.map((d) => d.PROCESS_ID).filter((d) => d);
107
- console.log("PROCESS_ID для удаления:", r);
106
+ })).getData().result.map((u) => u.PROCESS_ID).filter((u) => u);
107
+ console.log("PROCESS_ID для удаления:", a);
108
108
  let n = {};
109
- r.forEach((d, b) => {
109
+ a.forEach((u, b) => {
110
110
  n[`clear_${b}`] = {
111
111
  method: "event.offline.clear",
112
112
  params: {
113
- process_id: d
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, h, r, n, s, d, b;
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 ((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", {
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 (a = a.getData().result.item, console.log("Данные смарт процесса до изменения:", a), a.id == ((n = l.EVENT_DATA.FIELDS) == null ? void 0 : n.ID)) {
144
- let u = await $b24.callMethod("crm.item.update", {
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: a.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("Результат обновления смарт процесса:", u.getData()), u = u.getData().result.item, console.log("updateResult:", u), u.id === a.id ? console.log("Сущность успешно обновлена.") : (console.error("Ошибка при обновлении сущности."), t = !0);
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 a = await $b24.callMethod("crm.deal.get", {
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 (a = a.getData().result, console.log("Данные сделки до изменения:", a), a.ID == ((d = l.EVENT_DATA.FIELDS) == null ? void 0 : d.ID)) {
159
- let u = await $b24.callMethod("crm.deal.update", {
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: a.TITLE
168
+ TITLE: i.TITLE
163
169
  }
164
170
  });
165
- console.log("Результат обновления сделки:", u.getData()), u = u.getData().result, u === !0 ? console.log("Сущность успешно обновлена.") : (console.error("Ошибка при обновлении сущности."), t = !0);
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 (a) {
170
- console.error("Ошибка при обновлении сущности:", a), a = !0;
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
- }, v = { class: "Subscriptions" }, k = { key: 0 }, L = ["disabled"], C = {
185
+ }, L = { class: "Subscriptions" }, k = { key: 0 }, v = ["disabled"], w = {
180
186
  class: "switch tooltipParent",
181
187
  style: { top: "12px" }
182
- }, w = { key: 0 }, V = {
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, h, r, n) {
196
- return o(), i("div", v, [
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 ? (o(), i("div", k, [
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, L),
213
- e("label", C, [
214
- g(e("input", {
218
+ }, "Обновить", 8, v),
219
+ e("label", w, [
220
+ A(e("input", {
215
221
  type: "checkbox",
216
- "onUpdate:modelValue": t[3] || (t[3] = (s) => r.autoRefresh = 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
- [A, r.autoRefresh]
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
- r.entities.list.length > 0 ? (o(), i("div", w, [
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(" Всего измененных сущностей " + c(r.entities.total), 1)
236
+ p(" Всего измененных сущностей " + d(a.entities.total), 1)
231
237
  ]),
232
- r.entities.list.length ? (o(), i("table", V, [
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
- (o(!0), i(D, null, T(r.entities.list, (s, d) => {
248
- var b, a, u, _;
249
- return o(), i("tr", {
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, c(d + 1), 1),
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_")) ? (o(), i("button", {
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, c(s.PROCESS_ID), 1),
265
- e("td", null, c(s.EVENT_NAME), 1),
270
+ e("td", null, d(s.PROCESS_ID), 1),
271
+ e("td", null, d(s.EVENT_NAME), 1),
266
272
  e("td", null, [
267
- (a = s.EVENT_DATA.FIELDS) != null && a.ID && s.EVENT_NAME == "ONCRMDEALUPDATE" ? (o(), i("a", {
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/" + ((u = s.EVENT_DATA.FIELDS) == null ? void 0 : u.ID) + "/",
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
- }, c((_ = s.EVENT_DATA.FIELDS) == null ? void 0 : _.ID), 9, M)) : f("", !0)
278
+ }, d((h = s.EVENT_DATA.FIELDS) == null ? void 0 : h.ID), 9, M)) : f("", !0)
273
279
  ]),
274
- e("td", null, c(s.EVENT_DATA), 1),
275
- e("td", null, c(s.EVENT_ADDITIONAL.user_id), 1),
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, c(s), 1)
284
+ e("span", P, d(s), 1)
279
285
  ])
280
286
  ]);
281
287
  }), 128))
282
288
  ])
283
289
  ])) : f("", !0)
284
- ])) : (o(), i("div", F, "Список сущностей пуст."))
290
+ ])) : (r(), o("div", F, "Список сущностей пуст."))
285
291
  ])) : f("", !0),
286
- l.tabs.tab2 ? (o(), i("div", Y, [
292
+ l.tabs.tab2 ? (r(), o("div", Y, [
287
293
  e("div", null, [
288
294
  t[11] || (t[11] = e("h3", null, "Подписаны на события:", -1)),
289
- r.subscribedEvents.length ? (o(), i("table", U, [
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
- (o(!0), i(D, null, T(r.subscribedEvents, (s) => (o(), i("tr", {
305
+ (r(!0), o(T, null, _(a.subscribedEvents, (s) => (r(), o("tr", {
300
306
  key: s.id
301
307
  }, [
302
- e("td", null, c(s.event), 1),
303
- e("td", null, c(s.connector_id), 1),
304
- e("td", null, c(s.offline), 1),
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: (d) => n.unbindSubscribedEvents(s)
313
+ onClick: (u) => n.unbindSubscribedEvents(s)
308
314
  }, "Отписаться от событий", 8, $)
309
315
  ])
310
316
  ]))), 128))
311
317
  ])
312
- ])) : (o(), i("p", x, "Подписок на события нет."))
318
+ ])) : (r(), o("p", x, "Подписок на события нет."))
313
319
  ]),
314
320
  e("div", null, [
315
321
  t[13] || (t[13] = e("h3", null, "На какие события можно подписаться:", -1)),
316
- r.events.length ? (o(), i("table", B, [
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
- (o(!0), i(D, null, T(r.events, (s) => (o(), i("tr", { key: s }, [
325
- e("td", null, c(s), 1),
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: (d) => n.subscribeToEvents(s),
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
- ])) : (o(), i("p", j, "Список событий пуст."))
341
+ ])) : (r(), o("p", j, "Список событий пуст."))
336
342
  ])
337
343
  ])) : f("", !0),
338
- l.tabs.tab3 ? (o(), i("div", q)) : f("", !0)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andrey4emk/npm-app-front-b24",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Vue 3 Subscriptions component for Bitrix24",
5
5
  "main": "dist/npm-app-front-b24.umd.js",
6
6
  "module": "dist/npm-app-front-b24.es.js",