"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _vue = require("vue"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _scroll = _interopRequireDefault(require("./scroll")); var _components = require("../../../components"); var tableProps = function tableProps() { return { loading: { type: Boolean, default: undefined }, request: { type: Function, default: undefined }, bodyStyle: { type: Object, default: {} }, params: { type: Object, default: function _default() {} }, dataSource: { type: Array, default: function _default() { return []; } }, defaultParams: { type: Object, default: function _default() { return { pageIndex: 0, pageSize: 12 }; } } }; }; var JScrollTable = (0, _vue.defineComponent)({ name: 'JScrollTable', slots: ['prev'], props: tableProps(), setup: function setup(props, _ref) { var slots = _ref.slots, emit = _ref.emit, expose = _ref.expose; var _dataSource = (0, _vue.ref)([]); var pageIndex = (0, _vue.ref)(0); var pageSize = (0, _vue.ref)(6); var total = (0, _vue.ref)(0); var _loading = (0, _vue.ref)(true); var handleSearch = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_params, isRest) { var _props$defaultParams, resp, obj, _resp$result, _resp$result2, _resp$result3, _resp$result4, _resp$result5, _resp$result6; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _loading.value = props.loading !== undefined ? props.loading : true; if (props.request) { _context.next = 5; break; } _dataSource.value = (props === null || props === void 0 ? void 0 : props.dataSource) || []; _context.next = 9; break; case 5: _context.next = 7; return props.request((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({ pageIndex: 0, pageSize: 12 }, props.defaultParams), _params), {}, { terms: [].concat((0, _toConsumableArray2.default)(((_props$defaultParams = props.defaultParams) === null || _props$defaultParams === void 0 ? void 0 : _props$defaultParams.terms) || []), (0, _toConsumableArray2.default)((_params === null || _params === void 0 ? void 0 : _params.terms) || [])) })); case 7: resp = _context.sent; if (resp.status === 200) { obj = Array.isArray(resp.result) ? resp.result[0] : resp.result; if (obj) { if (isRest) { _dataSource.value = (0, _toConsumableArray2.default)(obj.data); pageIndex.value = ((_resp$result = resp.result) === null || _resp$result === void 0 ? void 0 : _resp$result.pageIndex) || 0; pageSize.value = ((_resp$result2 = resp.result) === null || _resp$result2 === void 0 ? void 0 : _resp$result2.pageSize) || 6; total.value = ((_resp$result3 = resp.result) === null || _resp$result3 === void 0 ? void 0 : _resp$result3.total) || 0; } else { _dataSource.value = [].concat((0, _toConsumableArray2.default)(_dataSource.value), (0, _toConsumableArray2.default)(obj.data)); pageIndex.value = ((_resp$result4 = resp.result) === null || _resp$result4 === void 0 ? void 0 : _resp$result4.pageIndex) || 0; pageSize.value = ((_resp$result5 = resp.result) === null || _resp$result5 === void 0 ? void 0 : _resp$result5.pageSize) || 6; total.value = ((_resp$result6 = resp.result) === null || _resp$result6 === void 0 ? void 0 : _resp$result6.total) || 0; } } } else { _dataSource.value = []; } case 9: _loading.value = props.loading !== undefined ? props.loading : false; case 10: case "end": return _context.stop(); } }, _callee); })); return function handleSearch(_x, _x2) { return _ref2.apply(this, arguments); }; }(); (0, _vue.watch)(function () { return props.params; }, function (newValue) { handleSearch(newValue, true); }, { deep: true, immediate: true }); (0, _vue.watch)(function () { return props.dataSource; }, function () { if (props.dataSource && !props.request) { handleSearch(props.params); } }, { deep: true, immediate: true }); var onReachBottom = function onReachBottom(scrollTop) { if (total.value > _dataSource.value.length) { pageIndex.value += 1; handleSearch((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props.params), {}, { pageIndex: pageIndex.value })); } }; /** * 刷新数据 * @param _params */ var reload = function reload(_params) { handleSearch((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _params), {}, { pageSize: 12, pageIndex: 0 }), true); }; return function () { return (0, _vue.createVNode)(_components.Spin, { "spinning": _loading.value }, { default: function _default() { return [(0, _vue.createVNode)(_scroll.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, { "total": total.value, "dataSource": _dataSource.value, "onReachBottom": onReachBottom }), { default: function _default() { return [(0, _objectSpread2.default)({}, slots)]; } })]; } }); }; } }); var _default2 = JScrollTable; exports.default = _default2;