123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "/";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 1);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "./resources/assets/dcat/extra/grid-extend.js":
- /*!****************************************************!*\
- !*** ./resources/assets/dcat/extra/grid-extend.js ***!
- \****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- (function (w, $) {
- var Dcat = w.Dcat;
- function Tree(opts) {
- this.options = $.extend({
- button: null,
- table: null,
- url: '',
- perPage: '',
- showNextPage: '',
- pageQueryName: '',
- parentIdQueryName: '',
- tierQueryName: '',
- showIcon: 'fa-angle-right',
- hideIcon: 'fa-angle-down',
- loadMoreIcon: '<i class="feather icon-more-horizontal"></i>'
- }, opts);
- this.key = this.tier = this.row = this.data = this._req = null;
- this._init();
- }
- Tree.prototype = {
- _init: function _init() {
- this._bindClick();
- },
- _bindClick: function _bindClick() {
- var _this = this,
- opts = _this.options;
- $(opts.button).off('click').click(function () {
- if (_this._req) {
- return;
- }
- var $this = $(this),
- _i = $("i", this),
- shown = _i.hasClass(opts.showIcon);
- _this.key = $this.data('key');
- _this.tier = $this.data('tier');
- _this.row = $this.closest('tr');
- if ($this.data('inserted') == '0') {
- _this._request(1);
- $this.data('inserted', 1);
- }
- _i.toggleClass(opts.showIcon + ' ' + opts.hideIcon);
- var children = [];
- getChildren(_this.row.nextAll(), _this.row).forEach(function (v) {
- if (getTier(v) !== _this.tier + 1) {
- return;
- }
- children.push(v);
- shown ? $(v).show() : $(v).hide();
- });
- children.forEach(function (v) {
- if (shown) {
- return;
- }
- var icon = $(v).find('a[data-tier=' + getTier(v) + '] i');
- if (icon.hasClass(opts.hideIcon)) {
- icon.parent().click();
- }
- });
- });
- },
- _request: function _request(page, after) {
- var _this = this,
- row = _this.row,
- key = _this.key,
- tier = _this.tier,
- tableSelector = _this.options.table;
- if (_this._req) {
- return;
- }
- _this._req = 1;
- Dcat.loading();
- var data = {
- _token: Dcat.token
- };
- data[_this.options.parentIdQueryName] = key;
- data[_this.options.tierQueryName] = tier + 1;
- data[_this.options.pageQueryName.replace(':key', key)] = page;
- $.ajax({
- url: _this.options.url,
- type: 'GET',
- data: data,
- headers: {
- 'X-PJAX': true
- },
- success: function success(resp) {
- after && after();
- Dcat.loading(false);
- _this._req = 0; // 获取最后一行
- var children = getChildren(row.nextAll(), row);
- row = children.length ? $(children.pop()) : row;
- var _body = $('<div>' + resp + '</div>'),
- _tbody = _body.find(tableSelector + ' tbody'),
- lastPage = _body.find('last-page').text(),
- nextPage = _body.find('next-page').text(); // 标记子节点行
- _tbody.find('tr').each(function (_, v) {
- $(v).attr('data-tier', tier + 1);
- });
- if (_this.options.showNextPage && _tbody.find('tr').length == _this.options.perPage && lastPage >= page) {
- // 加载更多
- var loadMore = $("<tr data-tier=\"".concat(tier + 1, "\" data-page=\"").concat(nextPage, "\">\n <td colspan=\"").concat(row.find('td').length, "\" align=\"center\" style=\"cursor: pointer\"> \n <a href=\"#\" style=\"font-size: 1.5rem\">").concat(_this.options.loadMoreIcon, "</a> \n </td>\n </tr>"));
- row.after(loadMore); // 加载更多
- loadMore.click(function () {
- var _t = $(this);
- _this._request(_t.data('page'), function () {
- _t.remove();
- });
- });
- } // 附加子节点
- row.after(_tbody.html()); // 附加子节点js脚本以及触发子节点js脚本执行
- _body.find('script').each(function (_, v) {
- row.after(v);
- }); // 主动触发ready事件,执行子节点附带的js脚本
- Dcat.triggerReady();
- },
- error: function error(a, b, c) {
- after && after();
- Dcat.loading(false);
- _this._req = 0;
- if (a.status != 404) {
- Dcat.handleAjaxError(a, b, c);
- }
- }
- });
- }
- };
- function Orderable(opts) {
- this.options = $.extend({
- button: null,
- url: ''
- }, opts);
- this.direction = this.key = this.tier = this.row = this._req = null;
- this._init();
- }
- Orderable.prototype = {
- _init: function _init() {
- this._bindClick();
- },
- _bindClick: function _bindClick() {
- var _this = this;
- $(_this.options.button).off('click').click(function () {
- if (_this._req) {
- return;
- }
- _this._req = 1;
- Dcat.loading();
- var $this = $(this);
- _this.key = $this.data('id');
- _this.direction = $this.data('direction');
- _this.row = $this.closest('tr');
- _this.tier = getTier(_this.row);
- _this._request();
- });
- },
- _request: function _request() {
- var _this = this,
- key = _this.key,
- row = _this.row,
- tier = _this.tier,
- direction = _this.direction,
- prevAll = row.prevAll(),
- nextAll = row.nextAll(),
- prev = row.prevAll('tr').first(),
- next = row.nextAll('tr').first();
- $.ajax({
- type: 'POST',
- url: _this.options.url.replace(':key', key),
- data: {
- _method: 'PUT',
- _token: Dcat.token,
- _orderable: direction
- },
- success: function success(data) {
- Dcat.loading(false);
- _this._req = 0;
- if (!data.status) {
- return data.message && Dcat.warning(data.message);
- }
- Dcat.success(data.message);
- if (direction) {
- var prevRow = sibling(prevAll, tier);
- if (swapable(prevRow, tier) && prev.length && getTier(prev) >= tier) {
- prevRow.before(row); // 把所有子节点上移
- getChildren(nextAll, row).forEach(function (v) {
- prevRow.before(v);
- });
- }
- } else {
- var nextRow = sibling(nextAll, tier),
- nextRowChildren = nextRow ? getChildren(nextRow.nextAll(), nextRow) : [];
- if (swapable(nextRow, tier) && next.length && getTier(next) >= tier) {
- nextAll = row.nextAll();
- if (nextRowChildren.length) {
- nextRow = $(nextRowChildren.pop());
- } // 把所有子节点下移
- var all = [];
- getChildren(nextAll, row).forEach(function (v) {
- all.unshift(v);
- });
- all.forEach(function (v) {
- nextRow.after(v);
- });
- nextRow.after(row);
- }
- }
- },
- error: function error(a, b, c) {
- _this._req = 0;
- Dcat.loading(false);
- Dcat.handleAjaxError(a, b, c);
- }
- });
- }
- };
- function isTr(v) {
- return $(v).prop('tagName').toLocaleLowerCase() === 'tr';
- }
- function getTier(v) {
- return parseInt($(v).data('tier') || 0);
- }
- function isChildren(parent, child) {
- return getTier(child) > getTier(parent);
- }
- function getChildren(all, parent) {
- var arr = [],
- isBreak = false,
- firstTr;
- all.each(function (_, v) {
- // 过滤非tr标签
- if (!isTr(v) || isBreak) return;
- firstTr || (firstTr = $(v)); // 非连续的子节点
- if (firstTr && !isChildren(parent, firstTr)) {
- return;
- }
- if (isChildren(parent, v)) {
- arr.push(v);
- } else {
- isBreak = true;
- }
- });
- return arr;
- }
- function swapable(_o, tier) {
- if (_o && _o.length && tier === getTier(_o)) {
- return true;
- }
- }
- function sibling(all, tier) {
- var next;
- all.each(function (_, v) {
- if (getTier(v) === tier && !next && isTr(v)) {
- next = $(v);
- }
- });
- return next;
- }
- Dcat.grid.Tree = function (opts) {
- return new Tree(opts);
- };
- Dcat.grid.Orderable = function (opts) {
- return new Orderable(opts);
- };
- })(window, jQuery);
- /***/ }),
- /***/ 1:
- /*!**********************************************************!*\
- !*** multi ./resources/assets/dcat/extra/grid-extend.js ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(/*! D:\php-project\laravel\laraveladmin\github-test\pck-dcat-admin\dcat-admin\resources\assets\dcat\extra\grid-extend.js */"./resources/assets/dcat/extra/grid-extend.js");
- /***/ })
- /******/ });
|