CRM forms
Build
git submodule init
git submodule update
bash ./npm.sh i
npm run serve
npm run dev
npm run build
npm run lint
npm run lint:js
npm run list:style
npm run lintfix
webpack plugin
npm i -D path fs-extra widget-crm-form
const path = require('path');
const fs = require('fs-extra');
const CrmCopyPlugin = require('widget-crm-form');
module.exports = {
plugins: [
new CrmCopyPlugin(fs, {
widget: path.resolve(__dirname, 'widget'),
src: path.resolve(__dirname, 'node_modules/widget-crm-form/dist'),
dest: path.resolve(__dirname, 'widget/app')
})
]
}
html
Ініціалізація на сайті
js module
import timestamp from 'widget-crm-form/dist/timestamp';
!window.WidgetApp && (function(u, f, d, w, t) {
var s=d.createElement('script');
s.async=true;
s.src=u+'crm-form.js?t='+t;
d.head.appendChild(s);
w.onload=function(){f&&w.WidgetApp.addFonts();};
}(`/widget/app/${timestamp}/`, false, document, window, (Date.now() / 180000 | 0)));
php
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/widget/app/widget-timestamp.php");
?>
<!-- додається на сайт одноразово -->
<script>
!window.WidgetApp && (function(u, f, d, w, t) {
var s=d.createElement('script');
s.async=true;
s.src=u+'crm-form.js?t='+t;
d.head.appendChild(s);
w.onload=function(){f&&w.WidgetApp.addFonts();};
}('/widget/app/<?php echo $widget_timestamp; ?>/',true,document,window,(Date.now()/180000|0)));
</script>
javascript API
window.WidgetApp.crmFormsPopup(id: number, saved?: any)
window.WidgetApp.crmFormsPopupSelect(items: { id: number; name: string; }[]);
window.WidgetApp.crmFormsStatic(el: HTMLElement, id: number, saved?: any);
window.WidgetApp.addresses(el: HTMLElement, params, filters: boolean, parcerLockerSelect?: boolean);
window.WidgetApp.addFonts();
HTMLElement
Форма в попапі
<button data-form-id='560'>Написати в відділ Сервіс</button>
<button data-form-id='561'>Написати нам повідомлення</button>
<button data-form-id='562'>Задати питання</button>
<button data-form-id='562' data-form-saved='{ "answerList[44]": { "disabled": true, "value": "sdfsdfsdf" }}'>Задати питання</button>
Селект форм в попапі
<button data-form-items='[{"id": 560, "name": "Написати в відділ Сервіс"},{"id": 561, "name": "Написати нам повідомлення"},{"id": 562, "name": "Задати питання"}]'>Тематика звернення</button>
Форма в розмітці
<div data-form-id='560' data-type='static'></div>
<div data-form-id='560' data-type='static' data-form-saved='{ "answerList[44]": { "disabled": true, "value": "sdfsdfsdf" }}'></div>
Відгуки - картка товару
<div data-reviews='855757' data-page='product'></div>
Форма керування воблерами
<div data-wobblers></div>
B2B addresses APP
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/widget/app/widget-timestamp.php");
?>
<script>
(function(u, d, w, t) {
var s=d.createElement('script');
s.async=true;
s.src=u+'nuxt-addresses.js?t='+t;
d.head.appendChild(s);
}('/widget/app/<?php echo $widget_timestamp; ?>/',document,window,(Date.now()/180000|0)));
</script>
<div data-addresses></div>
© 2024