@andrey4emk/npm-app-front-b24 0.1.14 → 0.1.16
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,9 +1,9 @@
|
|
|
1
|
-
import { createElementBlock as o, openBlock as r, createElementVNode as e, createCommentVNode as f, withDirectives as
|
|
1
|
+
import { createElementBlock as o, openBlock as r, createElementVNode as e, createCommentVNode as f, withDirectives as I, vModelCheckbox as g, createTextVNode as p, toDisplayString as u, Fragment as D, renderList as T, normalizeClass as S } from "vue";
|
|
2
2
|
const m = (l, t) => {
|
|
3
|
-
const
|
|
4
|
-
for (const [
|
|
5
|
-
E
|
|
6
|
-
return
|
|
3
|
+
const b = l.__vccOpts || l;
|
|
4
|
+
for (const [E, n] of t)
|
|
5
|
+
b[E] = n;
|
|
6
|
+
return b;
|
|
7
7
|
}, N = {
|
|
8
8
|
name: "Subscriptions",
|
|
9
9
|
// props: {
|
|
@@ -73,17 +73,16 @@ const m = (l, t) => {
|
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
75
|
async loadOfflineEntitiesList() {
|
|
76
|
-
console.log("Запустили loadOfflineEntitiesList");
|
|
77
76
|
let t = await $b24.callListMethod(
|
|
78
77
|
"event.offline.list",
|
|
79
78
|
{
|
|
80
79
|
start: 0,
|
|
81
80
|
auth_connector: this.auth_connector
|
|
82
81
|
// clear: 0,
|
|
83
|
-
},
|
|
84
|
-
(E) => {
|
|
85
|
-
console.log(`Загрузка: ${E.toFixed(0)}%`, "debug");
|
|
86
82
|
}
|
|
83
|
+
// (progress) => {
|
|
84
|
+
// console.log(`Загрузка: ${progress.toFixed(0)}%`);
|
|
85
|
+
// }
|
|
87
86
|
);
|
|
88
87
|
this.entities.list = t.getData(), this.entities.total = t.getData().length;
|
|
89
88
|
},
|
|
@@ -101,13 +100,13 @@ const m = (l, t) => {
|
|
|
101
100
|
let l = this.entities.total / 50 + 1;
|
|
102
101
|
console.log("Всего страниц для удаления:", l);
|
|
103
102
|
for (let t = 1; t <= l; t++) {
|
|
104
|
-
let
|
|
103
|
+
let E = (await $b24.callMethod("event.offline.list", {
|
|
105
104
|
start: 0
|
|
106
105
|
})).getData().result.map((s) => s.PROCESS_ID).filter((s) => s);
|
|
107
|
-
console.log("PROCESS_ID для удаления:",
|
|
106
|
+
console.log("PROCESS_ID для удаления:", E);
|
|
108
107
|
let n = {};
|
|
109
|
-
|
|
110
|
-
n[`clear_${
|
|
108
|
+
E.forEach((s, c) => {
|
|
109
|
+
n[`clear_${c}`] = {
|
|
111
110
|
method: "event.offline.clear",
|
|
112
111
|
params: {
|
|
113
112
|
process_id: s
|
|
@@ -136,11 +135,11 @@ const m = (l, t) => {
|
|
|
136
135
|
}, 3e3);
|
|
137
136
|
},
|
|
138
137
|
async entityUpdate(l) {
|
|
139
|
-
var
|
|
138
|
+
var b, E, n, i, s, c, h;
|
|
140
139
|
let t = !1;
|
|
141
|
-
console.log("Запущена функция entityUpdate для изменения сущности с ID:", (
|
|
140
|
+
console.log("Запущена функция entityUpdate для изменения сущности с ID:", (b = l.EVENT_DATA.FIELDS) == null ? void 0 : b.ID);
|
|
142
141
|
try {
|
|
143
|
-
if ((
|
|
142
|
+
if ((E = l.EVENT_DATA.FIELDS) != null && E.ENTITY_TYPE_ID && ((n = l.EVENT_DATA.FIELDS) == null ? void 0 : n.ENTITY_TYPE_ID) > 0) {
|
|
144
143
|
let a = await $b24.callMethod("crm.item.get", {
|
|
145
144
|
entityTypeId: l.EVENT_DATA.FIELDS.ENTITY_TYPE_ID,
|
|
146
145
|
id: l.EVENT_DATA.FIELDS.ID
|
|
@@ -160,7 +159,7 @@ const m = (l, t) => {
|
|
|
160
159
|
let a = await $b24.callMethod("crm.deal.get", {
|
|
161
160
|
id: (s = l.EVENT_DATA.FIELDS) == null ? void 0 : s.ID
|
|
162
161
|
});
|
|
163
|
-
if (a = a.getData().result, console.log("Данные сделки до изменения:", a), a.ID == ((
|
|
162
|
+
if (a = a.getData().result, console.log("Данные сделки до изменения:", a), a.ID == ((c = l.EVENT_DATA.FIELDS) == null ? void 0 : c.ID)) {
|
|
164
163
|
let d = await $b24.callMethod("crm.deal.update", {
|
|
165
164
|
id: (h = l.EVENT_DATA.FIELDS) == null ? void 0 : h.ID,
|
|
166
165
|
fields: {
|
|
@@ -184,7 +183,7 @@ const m = (l, t) => {
|
|
|
184
183
|
}, k = { class: "Subscriptions" }, v = { key: 0 }, L = ["disabled"], C = {
|
|
185
184
|
class: "switch tooltipParent",
|
|
186
185
|
style: { top: "12px" }
|
|
187
|
-
},
|
|
186
|
+
}, w = { key: 0 }, O = {
|
|
188
187
|
key: 0,
|
|
189
188
|
class: "main"
|
|
190
189
|
}, V = ["onClick"], y = ["onClick"], M = ["href"], R = {
|
|
@@ -197,7 +196,7 @@ const m = (l, t) => {
|
|
|
197
196
|
key: 0,
|
|
198
197
|
class: "main"
|
|
199
198
|
}, z = ["onClick", "disabled"], j = { key: 1 }, q = { key: 2 };
|
|
200
|
-
function G(l, t,
|
|
199
|
+
function G(l, t, b, E, n, i) {
|
|
201
200
|
return r(), o("div", k, [
|
|
202
201
|
t[15] || (t[15] = e("h1", null, "Страница подписок", -1)),
|
|
203
202
|
e("button", {
|
|
@@ -216,18 +215,18 @@ function G(l, t, E, c, n, i) {
|
|
|
216
215
|
disabled: l.loading
|
|
217
216
|
}, "Обновить", 8, L),
|
|
218
217
|
e("label", C, [
|
|
219
|
-
|
|
218
|
+
I(e("input", {
|
|
220
219
|
type: "checkbox",
|
|
221
220
|
"onUpdate:modelValue": t[3] || (t[3] = (s) => n.autoRefresh = s),
|
|
222
221
|
onChange: t[4] || (t[4] = (...s) => i.autoRefreshEntities && i.autoRefreshEntities(...s))
|
|
223
222
|
}, null, 544), [
|
|
224
|
-
[
|
|
223
|
+
[g, n.autoRefresh]
|
|
225
224
|
]),
|
|
226
225
|
t[7] || (t[7] = e("span", { class: "slider" }, null, -1)),
|
|
227
226
|
t[8] || (t[8] = e("span", { class: "tooltip" }, "Автообновление каждые 3 секунды", -1))
|
|
228
227
|
])
|
|
229
228
|
]),
|
|
230
|
-
n.entities.list.length > 0 ? (r(), o("div",
|
|
229
|
+
n.entities.list.length > 0 ? (r(), o("div", w, [
|
|
231
230
|
e("p", null, [
|
|
232
231
|
e("button", {
|
|
233
232
|
onClick: t[5] || (t[5] = (...s) => i.deleteOfflineEntitiesAll && i.deleteOfflineEntitiesAll(...s))
|
|
@@ -237,7 +236,7 @@ function G(l, t, E, c, n, i) {
|
|
|
237
236
|
}, "Удалить все пустые"),
|
|
238
237
|
p(" Всего измененных сущностей " + u(n.entities.total), 1)
|
|
239
238
|
]),
|
|
240
|
-
n.entities.list.length ? (r(), o("table",
|
|
239
|
+
n.entities.list.length ? (r(), o("table", O, [
|
|
241
240
|
t[10] || (t[10] = e("thead", null, [
|
|
242
241
|
e("tr", null, [
|
|
243
242
|
e("th", null, "#"),
|
|
@@ -252,12 +251,12 @@ function G(l, t, E, c, n, i) {
|
|
|
252
251
|
])
|
|
253
252
|
], -1)),
|
|
254
253
|
e("tbody", null, [
|
|
255
|
-
(r(!0), o(D, null, T(n.entities.list, (s,
|
|
254
|
+
(r(!0), o(D, null, T(n.entities.list, (s, c) => {
|
|
256
255
|
var h, a, d, _;
|
|
257
256
|
return r(), o("tr", {
|
|
258
257
|
key: s.PROCESS_ID + "-" + s.ID
|
|
259
258
|
}, [
|
|
260
|
-
e("td", null, u(
|
|
259
|
+
e("td", null, u(c + 1), 1),
|
|
261
260
|
e("td", null, [
|
|
262
261
|
e("button", {
|
|
263
262
|
onClick: (A) => i.deleteOfflineEntities(s)
|
|
@@ -312,7 +311,7 @@ function G(l, t, E, c, n, i) {
|
|
|
312
311
|
e("td", null, u(s.offline), 1),
|
|
313
312
|
e("td", null, [
|
|
314
313
|
e("button", {
|
|
315
|
-
onClick: (
|
|
314
|
+
onClick: (c) => i.unbindSubscribedEvents(s)
|
|
316
315
|
}, "Отписаться от событий", 8, x)
|
|
317
316
|
])
|
|
318
317
|
]))), 128))
|
|
@@ -333,7 +332,7 @@ function G(l, t, E, c, n, i) {
|
|
|
333
332
|
e("td", null, u(s), 1),
|
|
334
333
|
e("td", null, [
|
|
335
334
|
e("button", {
|
|
336
|
-
onClick: (
|
|
335
|
+
onClick: (c) => i.subscribeToEvents(s),
|
|
337
336
|
disabled: i.isSubscribed(s),
|
|
338
337
|
class: S({ "disabled-button": i.isSubscribed(s) })
|
|
339
338
|
}, "Подписаться", 10, z)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.NpmAppFrontB24={},c.Vue))})(this,function(c,e){"use strict";const f=(l,t)=>{const a=l.__vccOpts||l;for(const[d,o]of t)a[d]=o;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(){console.log("Запустили loadOfflineEntitiesList");let t=await $b24.callListMethod("event.offline.list",{start:0,auth_connector:this.auth_connector},a=>{console.log(`Загрузка: ${a.toFixed(0)}%`,"debug")});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 t=1;t<=l;t++){let d=(await $b24.callMethod("event.offline.list",{start:0})).getData().result.map(n=>n.PROCESS_ID).filter(n=>n);console.log("PROCESS_ID для удаления:",d);let o={};d.forEach((n,E)=>{o[`clear_${E}`]={method:"event.offline.clear",params:{process_id:n}}}),console.log("batchCommands:",o);let s=await $b24.callBatch(o);console.log("Результат batch удаления сущностей:",s.getData())}await this.pause(500),await this.loadOfflineEntitiesList()},async deleteOfflineEntitiesAllEmpty(){if(!confirm("Вы уверены, что хотите удалить все пустые НЕ обработанные сущности? Это действие необратимо!"))return;let l=await $b24.callMethod("event.offline.clear",{process_id:""});console.log("Результат удаления сущностей с пустым PROCESS_ID:",l.getData())},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,d,o,s,n,E,m;let t=!1;console.log("Запущена функция entityUpdate для изменения сущности с ID:",(a=l.EVENT_DATA.FIELDS)==null?void 0:a.ID);try{if((d=l.EVENT_DATA.FIELDS)!=null&&d.ENTITY_TYPE_ID&&((o=l.EVENT_DATA.FIELDS)==null?void 0:o.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==((s=l.EVENT_DATA.FIELDS)==null?void 0:s.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+"123"}});console.log("Результат обновления смарт процесса:",i.getData()),i.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==((E=l.EVENT_DATA.FIELDS)==null?void 0:E.ID)){let i=await $b24.callMethod("crm.deal.update",{id:(m=l.EVENT_DATA.FIELDS)==null?void 0:m.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()}},D={class:"Subscriptions"},h={key:0},p=["disabled"],T={class:"switch tooltipParent",style:{top:"12px"}},k={key:0},g={key:0,class:"main"},_=["onClick"],u=["onClick"],A=["href"],S={class:"tooltipParent",style:{}},I={class:"tooltip"},y={key:1},B={key:1},C={key:0,class:"main"},L=["onClick"],O={key:1},w={key:0,class:"main"},M=["onClick","disabled"],R={key:1},F={key:2};function P(l,t,a,d,o,s){return e.openBlock(),e.createElementBlock("div",D,[t[15]||(t[15]=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[16]||(t[16]=e.createElementVNode("br",null,null,-1)),t[17]||(t[17]=e.createElementVNode("br",null,null,-1)),t[18]||(t[18]=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]=(...n)=>s.loadOfflineEntitiesList&&s.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=>o.autoRefresh=n),onChange:t[4]||(t[4]=(...n)=>s.autoRefreshEntities&&s.autoRefreshEntities(...n))},null,544),[[e.vModelCheckbox,o.autoRefresh]]),t[7]||(t[7]=e.createElementVNode("span",{class:"slider"},null,-1)),t[8]||(t[8]=e.createElementVNode("span",{class:"tooltip"},"Автообновление каждые 3 секунды",-1))])]),o.entities.list.length>0?(e.openBlock(),e.createElementBlock("div",k,[e.createElementVNode("p",null,[e.createElementVNode("button",{onClick:t[5]||(t[5]=(...n)=>s.deleteOfflineEntitiesAll&&s.deleteOfflineEntitiesAll(...n))},"Удалить все"),e.createElementVNode("button",{onClick:t[6]||(t[6]=(...n)=>s.deleteOfflineEntitiesAllEmpty&&s.deleteOfflineEntitiesAllEmpty(...n))},"Удалить все пустые"),e.createTextVNode(" Всего измененных сущностей "+e.toDisplayString(o.entities.total),1)]),o.entities.list.length?(e.openBlock(),e.createElementBlock("table",g,[t[10]||(t[10]=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(o.entities.list,(n,E)=>{var m,r,i,b;return e.openBlock(),e.createElementBlock("tr",{key:n.PROCESS_ID+"-"+n.ID},[e.createElementVNode("td",null,e.toDisplayString(E+1),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:U=>s.deleteOfflineEntities(n)},"Удалить",8,_)]),e.createElementVNode("td",null,[(m=n.EVENT_DATA.FIELDS)!=null&&m.ID&&(n.EVENT_NAME=="ONCRMDEALUPDATE"||n.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_"))?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:U=>s.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,A)):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",S,[t[9]||(t[9]=e.createElementVNode("span",null,"Подробней",-1)),e.createElementVNode("span",I,e.toDisplayString(n),1)])])}),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",y,"Список сущностей пуст."))])):e.createCommentVNode("",!0),l.tabs.tab2?(e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("div",null,[t[12]||(t[12]=e.createElementVNode("h3",null,"Подписаны на события:",-1)),o.subscribedEvents.length?(e.openBlock(),e.createElementBlock("table",C,[t[11]||(t[11]=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(o.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:E=>s.unbindSubscribedEvents(n)},"Отписаться от событий",8,L)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",O,"Подписок на события нет."))]),e.createElementVNode("div",null,[t[14]||(t[14]=e.createElementVNode("h3",null,"На какие события можно подписаться:",-1)),o.events.length?(e.openBlock(),e.createElementBlock("table",w,[t[13]||(t[13]=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(o.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:E=>s.subscribeToEvents(n),disabled:s.isSubscribed(n),class:e.normalizeClass({"disabled-button":s.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)}};c.Subscriptions=N,c.default=Y,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(a,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.NpmAppFrontB24={},a.Vue))})(this,function(a,e){"use strict";const f=(l,t)=>{const E=l.__vccOpts||l;for(const[c,o]of t)E[c]=o;return E},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 t=1;t<=l;t++){let c=(await $b24.callMethod("event.offline.list",{start:0})).getData().result.map(n=>n.PROCESS_ID).filter(n=>n);console.log("PROCESS_ID для удаления:",c);let o={};c.forEach((n,d)=>{o[`clear_${d}`]={method:"event.offline.clear",params:{process_id:n}}}),console.log("batchCommands:",o);let s=await $b24.callBatch(o);console.log("Результат batch удаления сущностей:",s.getData())}await this.pause(500),await this.loadOfflineEntitiesList()},async deleteOfflineEntitiesAllEmpty(){if(!confirm("Вы уверены, что хотите удалить все пустые НЕ обработанные сущности? Это действие необратимо!"))return;let l=await $b24.callMethod("event.offline.clear",{process_id:""});console.log("Результат удаления сущностей с пустым PROCESS_ID:",l.getData())},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 E,c,o,s,n,d,m;let t=!1;console.log("Запущена функция entityUpdate для изменения сущности с ID:",(E=l.EVENT_DATA.FIELDS)==null?void 0:E.ID);try{if((c=l.EVENT_DATA.FIELDS)!=null&&c.ENTITY_TYPE_ID&&((o=l.EVENT_DATA.FIELDS)==null?void 0:o.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==((s=l.EVENT_DATA.FIELDS)==null?void 0:s.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+"123"}});console.log("Результат обновления смарт процесса:",i.getData()),i.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==((d=l.EVENT_DATA.FIELDS)==null?void 0:d.ID)){let i=await $b24.callMethod("crm.deal.update",{id:(m=l.EVENT_DATA.FIELDS)==null?void 0:m.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()}},D={class:"Subscriptions"},h={key:0},p=["disabled"],T={class:"switch tooltipParent",style:{top:"12px"}},k={key:0},_={key:0,class:"main"},g=["onClick"],u=["onClick"],A=["href"],S={class:"tooltipParent",style:{}},I={class:"tooltip"},y={key:1},B={key:1},C={key:0,class:"main"},L=["onClick"],O={key:1},w={key:0,class:"main"},M=["onClick","disabled"],R={key:1},F={key:2};function P(l,t,E,c,o,s){return e.openBlock(),e.createElementBlock("div",D,[t[15]||(t[15]=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[16]||(t[16]=e.createElementVNode("br",null,null,-1)),t[17]||(t[17]=e.createElementVNode("br",null,null,-1)),t[18]||(t[18]=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]=(...n)=>s.loadOfflineEntitiesList&&s.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=>o.autoRefresh=n),onChange:t[4]||(t[4]=(...n)=>s.autoRefreshEntities&&s.autoRefreshEntities(...n))},null,544),[[e.vModelCheckbox,o.autoRefresh]]),t[7]||(t[7]=e.createElementVNode("span",{class:"slider"},null,-1)),t[8]||(t[8]=e.createElementVNode("span",{class:"tooltip"},"Автообновление каждые 3 секунды",-1))])]),o.entities.list.length>0?(e.openBlock(),e.createElementBlock("div",k,[e.createElementVNode("p",null,[e.createElementVNode("button",{onClick:t[5]||(t[5]=(...n)=>s.deleteOfflineEntitiesAll&&s.deleteOfflineEntitiesAll(...n))},"Удалить все"),e.createElementVNode("button",{onClick:t[6]||(t[6]=(...n)=>s.deleteOfflineEntitiesAllEmpty&&s.deleteOfflineEntitiesAllEmpty(...n))},"Удалить все пустые"),e.createTextVNode(" Всего измененных сущностей "+e.toDisplayString(o.entities.total),1)]),o.entities.list.length?(e.openBlock(),e.createElementBlock("table",_,[t[10]||(t[10]=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(o.entities.list,(n,d)=>{var m,r,i,b;return e.openBlock(),e.createElementBlock("tr",{key:n.PROCESS_ID+"-"+n.ID},[e.createElementVNode("td",null,e.toDisplayString(d+1),1),e.createElementVNode("td",null,[e.createElementVNode("button",{onClick:U=>s.deleteOfflineEntities(n)},"Удалить",8,g)]),e.createElementVNode("td",null,[(m=n.EVENT_DATA.FIELDS)!=null&&m.ID&&(n.EVENT_NAME=="ONCRMDEALUPDATE"||n.EVENT_NAME.includes("ONCRMDYNAMICITEMUPDATE_"))?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:U=>s.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,A)):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",S,[t[9]||(t[9]=e.createElementVNode("span",null,"Подробней",-1)),e.createElementVNode("span",I,e.toDisplayString(n),1)])])}),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",y,"Список сущностей пуст."))])):e.createCommentVNode("",!0),l.tabs.tab2?(e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("div",null,[t[12]||(t[12]=e.createElementVNode("h3",null,"Подписаны на события:",-1)),o.subscribedEvents.length?(e.openBlock(),e.createElementBlock("table",C,[t[11]||(t[11]=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(o.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:d=>s.unbindSubscribedEvents(n)},"Отписаться от событий",8,L)])]))),128))])])):(e.openBlock(),e.createElementBlock("p",O,"Подписок на события нет."))]),e.createElementVNode("div",null,[t[14]||(t[14]=e.createElementVNode("h3",null,"На какие события можно подписаться:",-1)),o.events.length?(e.openBlock(),e.createElementBlock("table",w,[t[13]||(t[13]=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(o.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:d=>s.subscribeToEvents(n),disabled:s.isSubscribed(n),class:e.normalizeClass({"disabled-button":s.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)}};a.Subscriptions=N,a.default=Y,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED