@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 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";
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 [D, a] of t)
5
- E[D] = a;
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 a = (await $b24.callMethod("event.offline.list", {
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 для удаления:", a);
107
+ console.log("PROCESS_ID для удаления:", r);
108
108
  let n = {};
109
- a.forEach((u, b) => {
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, D, a, n, s, u, b;
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 ((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", {
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 (i = i.getData().result.item, console.log("Данные смарт процесса до изменения:", i), i.id == ((n = l.EVENT_DATA.FIELDS) == null ? void 0 : n.ID)) {
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: 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
148
+ title: a.title + "123"
155
149
  }
156
150
  });
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);
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 i = await $b24.callMethod("crm.deal.get", {
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 (i = i.getData().result, console.log("Данные сделки до изменения:", i), i.ID == ((u = l.EVENT_DATA.FIELDS) == null ? void 0 : u.ID)) {
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: i.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 (i) {
176
- console.error("Ошибка при обновлении сущности:", i), i = !0;
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
- }, L = { class: "Subscriptions" }, k = { key: 0 }, v = ["disabled"], w = {
179
+ }, v = { class: "Subscriptions" }, k = { key: 0 }, L = ["disabled"], C = {
186
180
  class: "switch tooltipParent",
187
181
  style: { top: "12px" }
188
- }, C = { key: 0 }, V = {
182
+ }, w = { key: 0 }, V = {
189
183
  key: 0,
190
184
  class: "main"
191
- }, O = ["onClick"], R = ["onClick"], M = ["href"], y = {
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, D, a, n) {
202
- return r(), o("div", L, [
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 ? (r(), o("div", k, [
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, v),
219
- e("label", w, [
212
+ }, "Обновить", 8, L),
213
+ e("label", C, [
220
214
  A(e("input", {
221
215
  type: "checkbox",
222
- "onUpdate:modelValue": t[3] || (t[3] = (s) => a.autoRefresh = 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, a.autoRefresh]
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
- a.entities.list.length > 0 ? (r(), o("div", C, [
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(a.entities.total), 1)
230
+ p(" Всего измененных сущностей " + d(r.entities.total), 1)
237
231
  ]),
238
- a.entities.list.length ? (r(), o("table", V, [
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
- (r(!0), o(T, null, _(a.entities.list, (s, u) => {
254
- var b, i, c, h;
255
- return r(), o("tr", {
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_")) ? (r(), o("button", {
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, R)) : f("", !0)
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
- (i = s.EVENT_DATA.FIELDS) != null && i.ID && s.EVENT_NAME == "ONCRMDEALUPDATE" ? (r(), o("a", {
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((h = s.EVENT_DATA.FIELDS) == null ? void 0 : h.ID), 9, M)) : f("", !0)
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
- ])) : (r(), o("div", F, "Список сущностей пуст."))
284
+ ])) : (o(), i("div", F, "Список сущностей пуст."))
291
285
  ])) : f("", !0),
292
- l.tabs.tab2 ? (r(), o("div", Y, [
286
+ l.tabs.tab2 ? (o(), i("div", Y, [
293
287
  e("div", null, [
294
288
  t[11] || (t[11] = e("h3", null, "Подписаны на события:", -1)),
295
- a.subscribedEvents.length ? (r(), o("table", U, [
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
- (r(!0), o(T, null, _(a.subscribedEvents, (s) => (r(), o("tr", {
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
- ])) : (r(), o("p", x, "Подписок на события нет."))
312
+ ])) : (o(), i("p", x, "Подписок на события нет."))
319
313
  ]),
320
314
  e("div", null, [
321
315
  t[13] || (t[13] = e("h3", null, "На какие события можно подписаться:", -1)),
322
- a.events.length ? (r(), o("table", B, [
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
- (r(!0), o(T, null, _(a.events, (s) => (r(), o("tr", { key: s }, [
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
- ])) : (r(), o("p", j, "Список событий пуст."))
335
+ ])) : (o(), i("p", j, "Список событий пуст."))
342
336
  ])
343
337
  ])) : f("", !0),
344
- l.tabs.tab3 ? (r(), o("div", q)) : f("", !0)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andrey4emk/npm-app-front-b24",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
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",