'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var DelBox = function () { function DelBox(_ref) { var box = _ref.box; _classCallCheck(this, DelBox); this.arr = []; this.domArr = []; this.box = box; } /** * addDelBox 添加可删除的盒子 * @param str - 内容ID(唯一ID,用于去重) * @param box - *父级盒子选择器 * @param template - 模板函数 (str,i,arr_key) * @param arr - 数据存放的数组变量 ('key'|'buy'|..) */ _createClass(DelBox, [{ key: 'addDelBox', value: function addDelBox() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref2$str = _ref2.str, str = _ref2$str === undefined ? '默认内容' : _ref2$str, _ref2$k = _ref2.k, k = _ref2$k === undefined ? 'key' : _ref2$k; var tempArr = this.arr; var tempDom = this.domArr; if (tempArr.indexOf(k) === -1) { var pDom = this.toJqDom(this.box); var tempContent = this.toJqDom(this.createDefaultTemp(str, tempArr.length, k)); pDom.append(tempContent); tempDom.push(tempContent); tempArr.push(k); } this.arr = tempArr; this.domArr = tempDom; } /** * createDefaultTemp 默认可删除标签模板 * @param s - 内容 * @param i - 数组变量 index * @param k - 数组变量 key * @return {string} */ }, { key: 'createDefaultTemp', value: function createDefaultTemp(s, i, k) { var _this = this; if(s === '其他') { s = k } var temp = document.createElement('div'); temp.innerHTML = '
' + s + '
'; var child = this.toJqDom(temp.children); var close = document.createElement('i'); close.className = 'iconfont icon-guanbi'; close.onclick = function () { _this.del(k); }; child.append(close); return child; } /** * toJqDom 顾名思义,转化为Jq对象 * @param selector * @return {*} */ }, { key: 'toJqDom', value: function toJqDom(selector) { if (selector instanceof jQuery) { return selector; } return $(selector); } }, { key: 'add', value: function add(s, k) { this.addDelBox({ str: s, k: k }); } }, { key: 'clear', value: function clear(other) { var _this2 = this; if ((typeof other === 'undefined' ? 'undefined' : _typeof(other)) !== 'object') { return false; } other.forEach(function (v) { return _this2.del(v); }); } }, { key: 'del', value: function del(s) { var _this3 = this; var index = s; if (typeof s !== 'number') { index = this.arr.indexOf(s); } if (index !== -1) { this.arr = this.arr.filter(function (v) { return v !== _this3.arr[index]; }); var d = this.domArr.splice(index, 1)[0]; if(d) { d.remove(); } } } }]); return DelBox; }();